1//===----------------------------------------------------------------------===// 2// 3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4// See https://llvm.org/LICENSE.txt for license information. 5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6// 7//===----------------------------------------------------------------------===// 8// Automatically generated file, do not edit! 9//===----------------------------------------------------------------------===// 10 11def A2_abs : HInst< 12(outs IntRegs:$Rd32), 13(ins IntRegs:$Rs32), 14"$Rd32 = abs($Rs32)", 15tc_d61dfdc3, TypeS_2op>, Enc_5e2823 { 16let Inst{13-5} = 0b000000100; 17let Inst{31-21} = 0b10001100100; 18let hasNewValue = 1; 19let opNewValue = 0; 20let prefersSlot3 = 1; 21} 22def A2_absp : HInst< 23(outs DoubleRegs:$Rdd32), 24(ins DoubleRegs:$Rss32), 25"$Rdd32 = abs($Rss32)", 26tc_d61dfdc3, TypeS_2op>, Enc_b9c5fb { 27let Inst{13-5} = 0b000000110; 28let Inst{31-21} = 0b10000000100; 29let prefersSlot3 = 1; 30} 31def A2_abssat : HInst< 32(outs IntRegs:$Rd32), 33(ins IntRegs:$Rs32), 34"$Rd32 = abs($Rs32):sat", 35tc_d61dfdc3, TypeS_2op>, Enc_5e2823 { 36let Inst{13-5} = 0b000000101; 37let Inst{31-21} = 0b10001100100; 38let hasNewValue = 1; 39let opNewValue = 0; 40let prefersSlot3 = 1; 41let Defs = [USR_OVF]; 42} 43def A2_add : HInst< 44(outs IntRegs:$Rd32), 45(ins IntRegs:$Rs32, IntRegs:$Rt32), 46"$Rd32 = add($Rs32,$Rt32)", 47tc_713b66bf, TypeALU32_3op>, Enc_5ab2be, PredNewRel, ImmRegRel { 48let Inst{7-5} = 0b000; 49let Inst{13-13} = 0b0; 50let Inst{31-21} = 0b11110011000; 51let hasNewValue = 1; 52let opNewValue = 0; 53let BaseOpcode = "A2_add"; 54let CextOpcode = "A2_add"; 55let InputType = "reg"; 56let isCommutable = 1; 57let isPredicable = 1; 58} 59def A2_addh_h16_hh : HInst< 60(outs IntRegs:$Rd32), 61(ins IntRegs:$Rt32, IntRegs:$Rs32), 62"$Rd32 = add($Rt32.h,$Rs32.h):<<16", 63tc_01d44cb2, TypeALU64>, Enc_bd6011 { 64let Inst{7-5} = 0b011; 65let Inst{13-13} = 0b0; 66let Inst{31-21} = 0b11010101010; 67let hasNewValue = 1; 68let opNewValue = 0; 69let prefersSlot3 = 1; 70} 71def A2_addh_h16_hl : HInst< 72(outs IntRegs:$Rd32), 73(ins IntRegs:$Rt32, IntRegs:$Rs32), 74"$Rd32 = add($Rt32.h,$Rs32.l):<<16", 75tc_01d44cb2, TypeALU64>, Enc_bd6011 { 76let Inst{7-5} = 0b010; 77let Inst{13-13} = 0b0; 78let Inst{31-21} = 0b11010101010; 79let hasNewValue = 1; 80let opNewValue = 0; 81let prefersSlot3 = 1; 82} 83def A2_addh_h16_lh : HInst< 84(outs IntRegs:$Rd32), 85(ins IntRegs:$Rt32, IntRegs:$Rs32), 86"$Rd32 = add($Rt32.l,$Rs32.h):<<16", 87tc_01d44cb2, TypeALU64>, Enc_bd6011 { 88let Inst{7-5} = 0b001; 89let Inst{13-13} = 0b0; 90let Inst{31-21} = 0b11010101010; 91let hasNewValue = 1; 92let opNewValue = 0; 93let prefersSlot3 = 1; 94} 95def A2_addh_h16_ll : HInst< 96(outs IntRegs:$Rd32), 97(ins IntRegs:$Rt32, IntRegs:$Rs32), 98"$Rd32 = add($Rt32.l,$Rs32.l):<<16", 99tc_01d44cb2, TypeALU64>, Enc_bd6011 { 100let Inst{7-5} = 0b000; 101let Inst{13-13} = 0b0; 102let Inst{31-21} = 0b11010101010; 103let hasNewValue = 1; 104let opNewValue = 0; 105let prefersSlot3 = 1; 106} 107def A2_addh_h16_sat_hh : HInst< 108(outs IntRegs:$Rd32), 109(ins IntRegs:$Rt32, IntRegs:$Rs32), 110"$Rd32 = add($Rt32.h,$Rs32.h):sat:<<16", 111tc_8a825db2, TypeALU64>, Enc_bd6011 { 112let Inst{7-5} = 0b111; 113let Inst{13-13} = 0b0; 114let Inst{31-21} = 0b11010101010; 115let hasNewValue = 1; 116let opNewValue = 0; 117let prefersSlot3 = 1; 118let Defs = [USR_OVF]; 119} 120def A2_addh_h16_sat_hl : HInst< 121(outs IntRegs:$Rd32), 122(ins IntRegs:$Rt32, IntRegs:$Rs32), 123"$Rd32 = add($Rt32.h,$Rs32.l):sat:<<16", 124tc_8a825db2, TypeALU64>, Enc_bd6011 { 125let Inst{7-5} = 0b110; 126let Inst{13-13} = 0b0; 127let Inst{31-21} = 0b11010101010; 128let hasNewValue = 1; 129let opNewValue = 0; 130let prefersSlot3 = 1; 131let Defs = [USR_OVF]; 132} 133def A2_addh_h16_sat_lh : HInst< 134(outs IntRegs:$Rd32), 135(ins IntRegs:$Rt32, IntRegs:$Rs32), 136"$Rd32 = add($Rt32.l,$Rs32.h):sat:<<16", 137tc_8a825db2, TypeALU64>, Enc_bd6011 { 138let Inst{7-5} = 0b101; 139let Inst{13-13} = 0b0; 140let Inst{31-21} = 0b11010101010; 141let hasNewValue = 1; 142let opNewValue = 0; 143let prefersSlot3 = 1; 144let Defs = [USR_OVF]; 145} 146def A2_addh_h16_sat_ll : HInst< 147(outs IntRegs:$Rd32), 148(ins IntRegs:$Rt32, IntRegs:$Rs32), 149"$Rd32 = add($Rt32.l,$Rs32.l):sat:<<16", 150tc_8a825db2, TypeALU64>, Enc_bd6011 { 151let Inst{7-5} = 0b100; 152let Inst{13-13} = 0b0; 153let Inst{31-21} = 0b11010101010; 154let hasNewValue = 1; 155let opNewValue = 0; 156let prefersSlot3 = 1; 157let Defs = [USR_OVF]; 158} 159def A2_addh_l16_hl : HInst< 160(outs IntRegs:$Rd32), 161(ins IntRegs:$Rt32, IntRegs:$Rs32), 162"$Rd32 = add($Rt32.l,$Rs32.h)", 163tc_f34c1c21, TypeALU64>, Enc_bd6011 { 164let Inst{7-5} = 0b010; 165let Inst{13-13} = 0b0; 166let Inst{31-21} = 0b11010101000; 167let hasNewValue = 1; 168let opNewValue = 0; 169let prefersSlot3 = 1; 170} 171def A2_addh_l16_ll : HInst< 172(outs IntRegs:$Rd32), 173(ins IntRegs:$Rt32, IntRegs:$Rs32), 174"$Rd32 = add($Rt32.l,$Rs32.l)", 175tc_f34c1c21, TypeALU64>, Enc_bd6011 { 176let Inst{7-5} = 0b000; 177let Inst{13-13} = 0b0; 178let Inst{31-21} = 0b11010101000; 179let hasNewValue = 1; 180let opNewValue = 0; 181let prefersSlot3 = 1; 182} 183def A2_addh_l16_sat_hl : HInst< 184(outs IntRegs:$Rd32), 185(ins IntRegs:$Rt32, IntRegs:$Rs32), 186"$Rd32 = add($Rt32.l,$Rs32.h):sat", 187tc_8a825db2, TypeALU64>, Enc_bd6011 { 188let Inst{7-5} = 0b110; 189let Inst{13-13} = 0b0; 190let Inst{31-21} = 0b11010101000; 191let hasNewValue = 1; 192let opNewValue = 0; 193let prefersSlot3 = 1; 194let Defs = [USR_OVF]; 195} 196def A2_addh_l16_sat_ll : HInst< 197(outs IntRegs:$Rd32), 198(ins IntRegs:$Rt32, IntRegs:$Rs32), 199"$Rd32 = add($Rt32.l,$Rs32.l):sat", 200tc_8a825db2, TypeALU64>, Enc_bd6011 { 201let Inst{7-5} = 0b100; 202let Inst{13-13} = 0b0; 203let Inst{31-21} = 0b11010101000; 204let hasNewValue = 1; 205let opNewValue = 0; 206let prefersSlot3 = 1; 207let Defs = [USR_OVF]; 208} 209def A2_addi : HInst< 210(outs IntRegs:$Rd32), 211(ins IntRegs:$Rs32, s32_0Imm:$Ii), 212"$Rd32 = add($Rs32,#$Ii)", 213tc_713b66bf, TypeALU32_ADDI>, Enc_cb9321, PredNewRel, ImmRegRel { 214let Inst{31-28} = 0b1011; 215let hasNewValue = 1; 216let opNewValue = 0; 217let BaseOpcode = "A2_addi"; 218let CextOpcode = "A2_add"; 219let InputType = "imm"; 220let isAdd = 1; 221let isPredicable = 1; 222let isExtendable = 1; 223let opExtendable = 2; 224let isExtentSigned = 1; 225let opExtentBits = 16; 226let opExtentAlign = 0; 227} 228def A2_addp : HInst< 229(outs DoubleRegs:$Rdd32), 230(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 231"$Rdd32 = add($Rss32,$Rtt32)", 232tc_5da50c4b, TypeALU64>, Enc_a56825 { 233let Inst{7-5} = 0b111; 234let Inst{13-13} = 0b0; 235let Inst{31-21} = 0b11010011000; 236let isAdd = 1; 237let isCommutable = 1; 238} 239def A2_addpsat : HInst< 240(outs DoubleRegs:$Rdd32), 241(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 242"$Rdd32 = add($Rss32,$Rtt32):sat", 243tc_8a825db2, TypeALU64>, Enc_a56825 { 244let Inst{7-5} = 0b101; 245let Inst{13-13} = 0b0; 246let Inst{31-21} = 0b11010011011; 247let prefersSlot3 = 1; 248let Defs = [USR_OVF]; 249let isCommutable = 1; 250} 251def A2_addsat : HInst< 252(outs IntRegs:$Rd32), 253(ins IntRegs:$Rs32, IntRegs:$Rt32), 254"$Rd32 = add($Rs32,$Rt32):sat", 255tc_95a33176, TypeALU32_3op>, Enc_5ab2be { 256let Inst{7-5} = 0b000; 257let Inst{13-13} = 0b0; 258let Inst{31-21} = 0b11110110010; 259let hasNewValue = 1; 260let opNewValue = 0; 261let prefersSlot3 = 1; 262let Defs = [USR_OVF]; 263let InputType = "reg"; 264let isCommutable = 1; 265} 266def A2_addsp : HInst< 267(outs DoubleRegs:$Rdd32), 268(ins IntRegs:$Rs32, DoubleRegs:$Rtt32), 269"$Rdd32 = add($Rs32,$Rtt32)", 270tc_01d44cb2, TypeALU64> { 271let isPseudo = 1; 272} 273def A2_addsph : HInst< 274(outs DoubleRegs:$Rdd32), 275(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 276"$Rdd32 = add($Rss32,$Rtt32):raw:hi", 277tc_01d44cb2, TypeALU64>, Enc_a56825 { 278let Inst{7-5} = 0b111; 279let Inst{13-13} = 0b0; 280let Inst{31-21} = 0b11010011011; 281let prefersSlot3 = 1; 282} 283def A2_addspl : HInst< 284(outs DoubleRegs:$Rdd32), 285(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 286"$Rdd32 = add($Rss32,$Rtt32):raw:lo", 287tc_01d44cb2, TypeALU64>, Enc_a56825 { 288let Inst{7-5} = 0b110; 289let Inst{13-13} = 0b0; 290let Inst{31-21} = 0b11010011011; 291let prefersSlot3 = 1; 292} 293def A2_and : HInst< 294(outs IntRegs:$Rd32), 295(ins IntRegs:$Rs32, IntRegs:$Rt32), 296"$Rd32 = and($Rs32,$Rt32)", 297tc_713b66bf, TypeALU32_3op>, Enc_5ab2be, PredNewRel, ImmRegRel { 298let Inst{7-5} = 0b000; 299let Inst{13-13} = 0b0; 300let Inst{31-21} = 0b11110001000; 301let hasNewValue = 1; 302let opNewValue = 0; 303let BaseOpcode = "A2_and"; 304let CextOpcode = "A2_and"; 305let InputType = "reg"; 306let isCommutable = 1; 307let isPredicable = 1; 308} 309def A2_andir : HInst< 310(outs IntRegs:$Rd32), 311(ins IntRegs:$Rs32, s32_0Imm:$Ii), 312"$Rd32 = and($Rs32,#$Ii)", 313tc_713b66bf, TypeALU32_2op>, Enc_140c83, ImmRegRel { 314let Inst{31-22} = 0b0111011000; 315let hasNewValue = 1; 316let opNewValue = 0; 317let CextOpcode = "A2_and"; 318let InputType = "imm"; 319let isExtendable = 1; 320let opExtendable = 2; 321let isExtentSigned = 1; 322let opExtentBits = 10; 323let opExtentAlign = 0; 324} 325def A2_andp : HInst< 326(outs DoubleRegs:$Rdd32), 327(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 328"$Rdd32 = and($Rss32,$Rtt32)", 329tc_5da50c4b, TypeALU64>, Enc_a56825 { 330let Inst{7-5} = 0b000; 331let Inst{13-13} = 0b0; 332let Inst{31-21} = 0b11010011111; 333let isCommutable = 1; 334} 335def A2_aslh : HInst< 336(outs IntRegs:$Rd32), 337(ins IntRegs:$Rs32), 338"$Rd32 = aslh($Rs32)", 339tc_c57d9f39, TypeALU32_2op>, Enc_5e2823, PredNewRel { 340let Inst{13-5} = 0b000000000; 341let Inst{31-21} = 0b01110000000; 342let hasNewValue = 1; 343let opNewValue = 0; 344let BaseOpcode = "A2_aslh"; 345let isPredicable = 1; 346} 347def A2_asrh : HInst< 348(outs IntRegs:$Rd32), 349(ins IntRegs:$Rs32), 350"$Rd32 = asrh($Rs32)", 351tc_c57d9f39, TypeALU32_2op>, Enc_5e2823, PredNewRel { 352let Inst{13-5} = 0b000000000; 353let Inst{31-21} = 0b01110000001; 354let hasNewValue = 1; 355let opNewValue = 0; 356let BaseOpcode = "A2_asrh"; 357let isPredicable = 1; 358} 359def A2_combine_hh : HInst< 360(outs IntRegs:$Rd32), 361(ins IntRegs:$Rt32, IntRegs:$Rs32), 362"$Rd32 = combine($Rt32.h,$Rs32.h)", 363tc_713b66bf, TypeALU32_3op>, Enc_bd6011 { 364let Inst{7-5} = 0b000; 365let Inst{13-13} = 0b0; 366let Inst{31-21} = 0b11110011100; 367let hasNewValue = 1; 368let opNewValue = 0; 369let InputType = "reg"; 370} 371def A2_combine_hl : HInst< 372(outs IntRegs:$Rd32), 373(ins IntRegs:$Rt32, IntRegs:$Rs32), 374"$Rd32 = combine($Rt32.h,$Rs32.l)", 375tc_713b66bf, TypeALU32_3op>, Enc_bd6011 { 376let Inst{7-5} = 0b000; 377let Inst{13-13} = 0b0; 378let Inst{31-21} = 0b11110011101; 379let hasNewValue = 1; 380let opNewValue = 0; 381let InputType = "reg"; 382} 383def A2_combine_lh : HInst< 384(outs IntRegs:$Rd32), 385(ins IntRegs:$Rt32, IntRegs:$Rs32), 386"$Rd32 = combine($Rt32.l,$Rs32.h)", 387tc_713b66bf, TypeALU32_3op>, Enc_bd6011 { 388let Inst{7-5} = 0b000; 389let Inst{13-13} = 0b0; 390let Inst{31-21} = 0b11110011110; 391let hasNewValue = 1; 392let opNewValue = 0; 393let InputType = "reg"; 394} 395def A2_combine_ll : HInst< 396(outs IntRegs:$Rd32), 397(ins IntRegs:$Rt32, IntRegs:$Rs32), 398"$Rd32 = combine($Rt32.l,$Rs32.l)", 399tc_713b66bf, TypeALU32_3op>, Enc_bd6011 { 400let Inst{7-5} = 0b000; 401let Inst{13-13} = 0b0; 402let Inst{31-21} = 0b11110011111; 403let hasNewValue = 1; 404let opNewValue = 0; 405let InputType = "reg"; 406} 407def A2_combineii : HInst< 408(outs DoubleRegs:$Rdd32), 409(ins s32_0Imm:$Ii, s8_0Imm:$II), 410"$Rdd32 = combine(#$Ii,#$II)", 411tc_713b66bf, TypeALU32_2op>, Enc_18c338 { 412let Inst{31-23} = 0b011111000; 413let isAsCheapAsAMove = 1; 414let isMoveImm = 1; 415let isReMaterializable = 1; 416let isExtendable = 1; 417let opExtendable = 1; 418let isExtentSigned = 1; 419let opExtentBits = 8; 420let opExtentAlign = 0; 421} 422def A2_combinew : HInst< 423(outs DoubleRegs:$Rdd32), 424(ins IntRegs:$Rs32, IntRegs:$Rt32), 425"$Rdd32 = combine($Rs32,$Rt32)", 426tc_713b66bf, TypeALU32_3op>, Enc_be32a5, PredNewRel { 427let Inst{7-5} = 0b000; 428let Inst{13-13} = 0b0; 429let Inst{31-21} = 0b11110101000; 430let BaseOpcode = "A2_combinew"; 431let InputType = "reg"; 432let isPredicable = 1; 433} 434def A2_max : HInst< 435(outs IntRegs:$Rd32), 436(ins IntRegs:$Rs32, IntRegs:$Rt32), 437"$Rd32 = max($Rs32,$Rt32)", 438tc_8a825db2, TypeALU64>, Enc_5ab2be { 439let Inst{7-5} = 0b000; 440let Inst{13-13} = 0b0; 441let Inst{31-21} = 0b11010101110; 442let hasNewValue = 1; 443let opNewValue = 0; 444let prefersSlot3 = 1; 445} 446def A2_maxp : HInst< 447(outs DoubleRegs:$Rdd32), 448(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 449"$Rdd32 = max($Rss32,$Rtt32)", 450tc_8a825db2, TypeALU64>, Enc_a56825 { 451let Inst{7-5} = 0b100; 452let Inst{13-13} = 0b0; 453let Inst{31-21} = 0b11010011110; 454let prefersSlot3 = 1; 455} 456def A2_maxu : HInst< 457(outs IntRegs:$Rd32), 458(ins IntRegs:$Rs32, IntRegs:$Rt32), 459"$Rd32 = maxu($Rs32,$Rt32)", 460tc_8a825db2, TypeALU64>, Enc_5ab2be { 461let Inst{7-5} = 0b100; 462let Inst{13-13} = 0b0; 463let Inst{31-21} = 0b11010101110; 464let hasNewValue = 1; 465let opNewValue = 0; 466let prefersSlot3 = 1; 467} 468def A2_maxup : HInst< 469(outs DoubleRegs:$Rdd32), 470(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 471"$Rdd32 = maxu($Rss32,$Rtt32)", 472tc_8a825db2, TypeALU64>, Enc_a56825 { 473let Inst{7-5} = 0b101; 474let Inst{13-13} = 0b0; 475let Inst{31-21} = 0b11010011110; 476let prefersSlot3 = 1; 477} 478def A2_min : HInst< 479(outs IntRegs:$Rd32), 480(ins IntRegs:$Rt32, IntRegs:$Rs32), 481"$Rd32 = min($Rt32,$Rs32)", 482tc_8a825db2, TypeALU64>, Enc_bd6011 { 483let Inst{7-5} = 0b000; 484let Inst{13-13} = 0b0; 485let Inst{31-21} = 0b11010101101; 486let hasNewValue = 1; 487let opNewValue = 0; 488let prefersSlot3 = 1; 489} 490def A2_minp : HInst< 491(outs DoubleRegs:$Rdd32), 492(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 493"$Rdd32 = min($Rtt32,$Rss32)", 494tc_8a825db2, TypeALU64>, Enc_ea23e4 { 495let Inst{7-5} = 0b110; 496let Inst{13-13} = 0b0; 497let Inst{31-21} = 0b11010011101; 498let prefersSlot3 = 1; 499} 500def A2_minu : HInst< 501(outs IntRegs:$Rd32), 502(ins IntRegs:$Rt32, IntRegs:$Rs32), 503"$Rd32 = minu($Rt32,$Rs32)", 504tc_8a825db2, TypeALU64>, Enc_bd6011 { 505let Inst{7-5} = 0b100; 506let Inst{13-13} = 0b0; 507let Inst{31-21} = 0b11010101101; 508let hasNewValue = 1; 509let opNewValue = 0; 510let prefersSlot3 = 1; 511} 512def A2_minup : HInst< 513(outs DoubleRegs:$Rdd32), 514(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 515"$Rdd32 = minu($Rtt32,$Rss32)", 516tc_8a825db2, TypeALU64>, Enc_ea23e4 { 517let Inst{7-5} = 0b111; 518let Inst{13-13} = 0b0; 519let Inst{31-21} = 0b11010011101; 520let prefersSlot3 = 1; 521} 522def A2_neg : HInst< 523(outs IntRegs:$Rd32), 524(ins IntRegs:$Rs32), 525"$Rd32 = neg($Rs32)", 526tc_c57d9f39, TypeALU32_2op> { 527let hasNewValue = 1; 528let opNewValue = 0; 529let isPseudo = 1; 530let isCodeGenOnly = 1; 531} 532def A2_negp : HInst< 533(outs DoubleRegs:$Rdd32), 534(ins DoubleRegs:$Rss32), 535"$Rdd32 = neg($Rss32)", 536tc_9f6cd987, TypeS_2op>, Enc_b9c5fb { 537let Inst{13-5} = 0b000000101; 538let Inst{31-21} = 0b10000000100; 539} 540def A2_negsat : HInst< 541(outs IntRegs:$Rd32), 542(ins IntRegs:$Rs32), 543"$Rd32 = neg($Rs32):sat", 544tc_d61dfdc3, TypeS_2op>, Enc_5e2823 { 545let Inst{13-5} = 0b000000110; 546let Inst{31-21} = 0b10001100100; 547let hasNewValue = 1; 548let opNewValue = 0; 549let prefersSlot3 = 1; 550let Defs = [USR_OVF]; 551} 552def A2_nop : HInst< 553(outs), 554(ins), 555"nop", 556tc_b837298f, TypeALU32_2op>, Enc_e3b0c4 { 557let Inst{13-0} = 0b00000000000000; 558let Inst{31-16} = 0b0111111100000000; 559} 560def A2_not : HInst< 561(outs IntRegs:$Rd32), 562(ins IntRegs:$Rs32), 563"$Rd32 = not($Rs32)", 564tc_c57d9f39, TypeALU32_2op> { 565let hasNewValue = 1; 566let opNewValue = 0; 567let isPseudo = 1; 568let isCodeGenOnly = 1; 569} 570def A2_notp : HInst< 571(outs DoubleRegs:$Rdd32), 572(ins DoubleRegs:$Rss32), 573"$Rdd32 = not($Rss32)", 574tc_9f6cd987, TypeS_2op>, Enc_b9c5fb { 575let Inst{13-5} = 0b000000100; 576let Inst{31-21} = 0b10000000100; 577} 578def A2_or : HInst< 579(outs IntRegs:$Rd32), 580(ins IntRegs:$Rs32, IntRegs:$Rt32), 581"$Rd32 = or($Rs32,$Rt32)", 582tc_713b66bf, TypeALU32_3op>, Enc_5ab2be, PredNewRel, ImmRegRel { 583let Inst{7-5} = 0b000; 584let Inst{13-13} = 0b0; 585let Inst{31-21} = 0b11110001001; 586let hasNewValue = 1; 587let opNewValue = 0; 588let BaseOpcode = "A2_or"; 589let CextOpcode = "A2_or"; 590let InputType = "reg"; 591let isCommutable = 1; 592let isPredicable = 1; 593} 594def A2_orir : HInst< 595(outs IntRegs:$Rd32), 596(ins IntRegs:$Rs32, s32_0Imm:$Ii), 597"$Rd32 = or($Rs32,#$Ii)", 598tc_713b66bf, TypeALU32_2op>, Enc_140c83, ImmRegRel { 599let Inst{31-22} = 0b0111011010; 600let hasNewValue = 1; 601let opNewValue = 0; 602let CextOpcode = "A2_or"; 603let InputType = "imm"; 604let isExtendable = 1; 605let opExtendable = 2; 606let isExtentSigned = 1; 607let opExtentBits = 10; 608let opExtentAlign = 0; 609} 610def A2_orp : HInst< 611(outs DoubleRegs:$Rdd32), 612(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 613"$Rdd32 = or($Rss32,$Rtt32)", 614tc_5da50c4b, TypeALU64>, Enc_a56825 { 615let Inst{7-5} = 0b010; 616let Inst{13-13} = 0b0; 617let Inst{31-21} = 0b11010011111; 618let isCommutable = 1; 619} 620def A2_paddf : HInst< 621(outs IntRegs:$Rd32), 622(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 623"if (!$Pu4) $Rd32 = add($Rs32,$Rt32)", 624tc_1c2c7a4a, TypeALU32_3op>, Enc_ea4c54, PredNewRel, ImmRegRel { 625let Inst{7-7} = 0b1; 626let Inst{13-13} = 0b0; 627let Inst{31-21} = 0b11111011000; 628let isPredicated = 1; 629let isPredicatedFalse = 1; 630let hasNewValue = 1; 631let opNewValue = 0; 632let BaseOpcode = "A2_add"; 633let CextOpcode = "A2_add"; 634let InputType = "reg"; 635} 636def A2_paddfnew : HInst< 637(outs IntRegs:$Rd32), 638(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 639"if (!$Pu4.new) $Rd32 = add($Rs32,$Rt32)", 640tc_442395f3, TypeALU32_3op>, Enc_ea4c54, PredNewRel, ImmRegRel { 641let Inst{7-7} = 0b1; 642let Inst{13-13} = 0b1; 643let Inst{31-21} = 0b11111011000; 644let isPredicated = 1; 645let isPredicatedFalse = 1; 646let hasNewValue = 1; 647let opNewValue = 0; 648let isPredicatedNew = 1; 649let BaseOpcode = "A2_add"; 650let CextOpcode = "A2_add"; 651let InputType = "reg"; 652} 653def A2_paddif : HInst< 654(outs IntRegs:$Rd32), 655(ins PredRegs:$Pu4, IntRegs:$Rs32, s32_0Imm:$Ii), 656"if (!$Pu4) $Rd32 = add($Rs32,#$Ii)", 657tc_1c2c7a4a, TypeALU32_2op>, Enc_e38e1f, PredNewRel, ImmRegRel { 658let Inst{13-13} = 0b0; 659let Inst{31-23} = 0b011101001; 660let isPredicated = 1; 661let isPredicatedFalse = 1; 662let hasNewValue = 1; 663let opNewValue = 0; 664let BaseOpcode = "A2_addi"; 665let CextOpcode = "A2_add"; 666let InputType = "imm"; 667let isExtendable = 1; 668let opExtendable = 3; 669let isExtentSigned = 1; 670let opExtentBits = 8; 671let opExtentAlign = 0; 672} 673def A2_paddifnew : HInst< 674(outs IntRegs:$Rd32), 675(ins PredRegs:$Pu4, IntRegs:$Rs32, s32_0Imm:$Ii), 676"if (!$Pu4.new) $Rd32 = add($Rs32,#$Ii)", 677tc_442395f3, TypeALU32_2op>, Enc_e38e1f, PredNewRel, ImmRegRel { 678let Inst{13-13} = 0b1; 679let Inst{31-23} = 0b011101001; 680let isPredicated = 1; 681let isPredicatedFalse = 1; 682let hasNewValue = 1; 683let opNewValue = 0; 684let isPredicatedNew = 1; 685let BaseOpcode = "A2_addi"; 686let CextOpcode = "A2_add"; 687let InputType = "imm"; 688let isExtendable = 1; 689let opExtendable = 3; 690let isExtentSigned = 1; 691let opExtentBits = 8; 692let opExtentAlign = 0; 693} 694def A2_paddit : HInst< 695(outs IntRegs:$Rd32), 696(ins PredRegs:$Pu4, IntRegs:$Rs32, s32_0Imm:$Ii), 697"if ($Pu4) $Rd32 = add($Rs32,#$Ii)", 698tc_1c2c7a4a, TypeALU32_2op>, Enc_e38e1f, PredNewRel, ImmRegRel { 699let Inst{13-13} = 0b0; 700let Inst{31-23} = 0b011101000; 701let isPredicated = 1; 702let hasNewValue = 1; 703let opNewValue = 0; 704let BaseOpcode = "A2_addi"; 705let CextOpcode = "A2_add"; 706let InputType = "imm"; 707let isExtendable = 1; 708let opExtendable = 3; 709let isExtentSigned = 1; 710let opExtentBits = 8; 711let opExtentAlign = 0; 712} 713def A2_padditnew : HInst< 714(outs IntRegs:$Rd32), 715(ins PredRegs:$Pu4, IntRegs:$Rs32, s32_0Imm:$Ii), 716"if ($Pu4.new) $Rd32 = add($Rs32,#$Ii)", 717tc_442395f3, TypeALU32_2op>, Enc_e38e1f, PredNewRel, ImmRegRel { 718let Inst{13-13} = 0b1; 719let Inst{31-23} = 0b011101000; 720let isPredicated = 1; 721let hasNewValue = 1; 722let opNewValue = 0; 723let isPredicatedNew = 1; 724let BaseOpcode = "A2_addi"; 725let CextOpcode = "A2_add"; 726let InputType = "imm"; 727let isExtendable = 1; 728let opExtendable = 3; 729let isExtentSigned = 1; 730let opExtentBits = 8; 731let opExtentAlign = 0; 732} 733def A2_paddt : HInst< 734(outs IntRegs:$Rd32), 735(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 736"if ($Pu4) $Rd32 = add($Rs32,$Rt32)", 737tc_1c2c7a4a, TypeALU32_3op>, Enc_ea4c54, PredNewRel, ImmRegRel { 738let Inst{7-7} = 0b0; 739let Inst{13-13} = 0b0; 740let Inst{31-21} = 0b11111011000; 741let isPredicated = 1; 742let hasNewValue = 1; 743let opNewValue = 0; 744let BaseOpcode = "A2_add"; 745let CextOpcode = "A2_add"; 746let InputType = "reg"; 747} 748def A2_paddtnew : HInst< 749(outs IntRegs:$Rd32), 750(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 751"if ($Pu4.new) $Rd32 = add($Rs32,$Rt32)", 752tc_442395f3, TypeALU32_3op>, Enc_ea4c54, PredNewRel, ImmRegRel { 753let Inst{7-7} = 0b0; 754let Inst{13-13} = 0b1; 755let Inst{31-21} = 0b11111011000; 756let isPredicated = 1; 757let hasNewValue = 1; 758let opNewValue = 0; 759let isPredicatedNew = 1; 760let BaseOpcode = "A2_add"; 761let CextOpcode = "A2_add"; 762let InputType = "reg"; 763} 764def A2_pandf : HInst< 765(outs IntRegs:$Rd32), 766(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 767"if (!$Pu4) $Rd32 = and($Rs32,$Rt32)", 768tc_1c2c7a4a, TypeALU32_3op>, Enc_ea4c54, PredNewRel { 769let Inst{7-7} = 0b1; 770let Inst{13-13} = 0b0; 771let Inst{31-21} = 0b11111001000; 772let isPredicated = 1; 773let isPredicatedFalse = 1; 774let hasNewValue = 1; 775let opNewValue = 0; 776let BaseOpcode = "A2_and"; 777} 778def A2_pandfnew : HInst< 779(outs IntRegs:$Rd32), 780(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 781"if (!$Pu4.new) $Rd32 = and($Rs32,$Rt32)", 782tc_442395f3, TypeALU32_3op>, Enc_ea4c54, PredNewRel { 783let Inst{7-7} = 0b1; 784let Inst{13-13} = 0b1; 785let Inst{31-21} = 0b11111001000; 786let isPredicated = 1; 787let isPredicatedFalse = 1; 788let hasNewValue = 1; 789let opNewValue = 0; 790let isPredicatedNew = 1; 791let BaseOpcode = "A2_and"; 792} 793def A2_pandt : HInst< 794(outs IntRegs:$Rd32), 795(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 796"if ($Pu4) $Rd32 = and($Rs32,$Rt32)", 797tc_1c2c7a4a, TypeALU32_3op>, Enc_ea4c54, PredNewRel { 798let Inst{7-7} = 0b0; 799let Inst{13-13} = 0b0; 800let Inst{31-21} = 0b11111001000; 801let isPredicated = 1; 802let hasNewValue = 1; 803let opNewValue = 0; 804let BaseOpcode = "A2_and"; 805} 806def A2_pandtnew : HInst< 807(outs IntRegs:$Rd32), 808(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 809"if ($Pu4.new) $Rd32 = and($Rs32,$Rt32)", 810tc_442395f3, TypeALU32_3op>, Enc_ea4c54, PredNewRel { 811let Inst{7-7} = 0b0; 812let Inst{13-13} = 0b1; 813let Inst{31-21} = 0b11111001000; 814let isPredicated = 1; 815let hasNewValue = 1; 816let opNewValue = 0; 817let isPredicatedNew = 1; 818let BaseOpcode = "A2_and"; 819} 820def A2_porf : HInst< 821(outs IntRegs:$Rd32), 822(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 823"if (!$Pu4) $Rd32 = or($Rs32,$Rt32)", 824tc_1c2c7a4a, TypeALU32_3op>, Enc_ea4c54, PredNewRel { 825let Inst{7-7} = 0b1; 826let Inst{13-13} = 0b0; 827let Inst{31-21} = 0b11111001001; 828let isPredicated = 1; 829let isPredicatedFalse = 1; 830let hasNewValue = 1; 831let opNewValue = 0; 832let BaseOpcode = "A2_or"; 833} 834def A2_porfnew : HInst< 835(outs IntRegs:$Rd32), 836(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 837"if (!$Pu4.new) $Rd32 = or($Rs32,$Rt32)", 838tc_442395f3, TypeALU32_3op>, Enc_ea4c54, PredNewRel { 839let Inst{7-7} = 0b1; 840let Inst{13-13} = 0b1; 841let Inst{31-21} = 0b11111001001; 842let isPredicated = 1; 843let isPredicatedFalse = 1; 844let hasNewValue = 1; 845let opNewValue = 0; 846let isPredicatedNew = 1; 847let BaseOpcode = "A2_or"; 848} 849def A2_port : HInst< 850(outs IntRegs:$Rd32), 851(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 852"if ($Pu4) $Rd32 = or($Rs32,$Rt32)", 853tc_1c2c7a4a, TypeALU32_3op>, Enc_ea4c54, PredNewRel { 854let Inst{7-7} = 0b0; 855let Inst{13-13} = 0b0; 856let Inst{31-21} = 0b11111001001; 857let isPredicated = 1; 858let hasNewValue = 1; 859let opNewValue = 0; 860let BaseOpcode = "A2_or"; 861} 862def A2_portnew : HInst< 863(outs IntRegs:$Rd32), 864(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 865"if ($Pu4.new) $Rd32 = or($Rs32,$Rt32)", 866tc_442395f3, TypeALU32_3op>, Enc_ea4c54, PredNewRel { 867let Inst{7-7} = 0b0; 868let Inst{13-13} = 0b1; 869let Inst{31-21} = 0b11111001001; 870let isPredicated = 1; 871let hasNewValue = 1; 872let opNewValue = 0; 873let isPredicatedNew = 1; 874let BaseOpcode = "A2_or"; 875} 876def A2_psubf : HInst< 877(outs IntRegs:$Rd32), 878(ins PredRegs:$Pu4, IntRegs:$Rt32, IntRegs:$Rs32), 879"if (!$Pu4) $Rd32 = sub($Rt32,$Rs32)", 880tc_1c2c7a4a, TypeALU32_3op>, Enc_9b0bc1, PredNewRel { 881let Inst{7-7} = 0b1; 882let Inst{13-13} = 0b0; 883let Inst{31-21} = 0b11111011001; 884let isPredicated = 1; 885let isPredicatedFalse = 1; 886let hasNewValue = 1; 887let opNewValue = 0; 888let BaseOpcode = "A2_sub"; 889} 890def A2_psubfnew : HInst< 891(outs IntRegs:$Rd32), 892(ins PredRegs:$Pu4, IntRegs:$Rt32, IntRegs:$Rs32), 893"if (!$Pu4.new) $Rd32 = sub($Rt32,$Rs32)", 894tc_442395f3, TypeALU32_3op>, Enc_9b0bc1, PredNewRel { 895let Inst{7-7} = 0b1; 896let Inst{13-13} = 0b1; 897let Inst{31-21} = 0b11111011001; 898let isPredicated = 1; 899let isPredicatedFalse = 1; 900let hasNewValue = 1; 901let opNewValue = 0; 902let isPredicatedNew = 1; 903let BaseOpcode = "A2_sub"; 904} 905def A2_psubt : HInst< 906(outs IntRegs:$Rd32), 907(ins PredRegs:$Pu4, IntRegs:$Rt32, IntRegs:$Rs32), 908"if ($Pu4) $Rd32 = sub($Rt32,$Rs32)", 909tc_1c2c7a4a, TypeALU32_3op>, Enc_9b0bc1, PredNewRel { 910let Inst{7-7} = 0b0; 911let Inst{13-13} = 0b0; 912let Inst{31-21} = 0b11111011001; 913let isPredicated = 1; 914let hasNewValue = 1; 915let opNewValue = 0; 916let BaseOpcode = "A2_sub"; 917} 918def A2_psubtnew : HInst< 919(outs IntRegs:$Rd32), 920(ins PredRegs:$Pu4, IntRegs:$Rt32, IntRegs:$Rs32), 921"if ($Pu4.new) $Rd32 = sub($Rt32,$Rs32)", 922tc_442395f3, TypeALU32_3op>, Enc_9b0bc1, PredNewRel { 923let Inst{7-7} = 0b0; 924let Inst{13-13} = 0b1; 925let Inst{31-21} = 0b11111011001; 926let isPredicated = 1; 927let hasNewValue = 1; 928let opNewValue = 0; 929let isPredicatedNew = 1; 930let BaseOpcode = "A2_sub"; 931} 932def A2_pxorf : HInst< 933(outs IntRegs:$Rd32), 934(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 935"if (!$Pu4) $Rd32 = xor($Rs32,$Rt32)", 936tc_1c2c7a4a, TypeALU32_3op>, Enc_ea4c54, PredNewRel { 937let Inst{7-7} = 0b1; 938let Inst{13-13} = 0b0; 939let Inst{31-21} = 0b11111001011; 940let isPredicated = 1; 941let isPredicatedFalse = 1; 942let hasNewValue = 1; 943let opNewValue = 0; 944let BaseOpcode = "A2_xor"; 945} 946def A2_pxorfnew : HInst< 947(outs IntRegs:$Rd32), 948(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 949"if (!$Pu4.new) $Rd32 = xor($Rs32,$Rt32)", 950tc_442395f3, TypeALU32_3op>, Enc_ea4c54, PredNewRel { 951let Inst{7-7} = 0b1; 952let Inst{13-13} = 0b1; 953let Inst{31-21} = 0b11111001011; 954let isPredicated = 1; 955let isPredicatedFalse = 1; 956let hasNewValue = 1; 957let opNewValue = 0; 958let isPredicatedNew = 1; 959let BaseOpcode = "A2_xor"; 960} 961def A2_pxort : HInst< 962(outs IntRegs:$Rd32), 963(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 964"if ($Pu4) $Rd32 = xor($Rs32,$Rt32)", 965tc_1c2c7a4a, TypeALU32_3op>, Enc_ea4c54, PredNewRel { 966let Inst{7-7} = 0b0; 967let Inst{13-13} = 0b0; 968let Inst{31-21} = 0b11111001011; 969let isPredicated = 1; 970let hasNewValue = 1; 971let opNewValue = 0; 972let BaseOpcode = "A2_xor"; 973} 974def A2_pxortnew : HInst< 975(outs IntRegs:$Rd32), 976(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 977"if ($Pu4.new) $Rd32 = xor($Rs32,$Rt32)", 978tc_442395f3, TypeALU32_3op>, Enc_ea4c54, PredNewRel { 979let Inst{7-7} = 0b0; 980let Inst{13-13} = 0b1; 981let Inst{31-21} = 0b11111001011; 982let isPredicated = 1; 983let hasNewValue = 1; 984let opNewValue = 0; 985let isPredicatedNew = 1; 986let BaseOpcode = "A2_xor"; 987} 988def A2_roundsat : HInst< 989(outs IntRegs:$Rd32), 990(ins DoubleRegs:$Rss32), 991"$Rd32 = round($Rss32):sat", 992tc_d61dfdc3, TypeS_2op>, Enc_90cd8b { 993let Inst{13-5} = 0b000000001; 994let Inst{31-21} = 0b10001000110; 995let hasNewValue = 1; 996let opNewValue = 0; 997let prefersSlot3 = 1; 998let Defs = [USR_OVF]; 999} 1000def A2_sat : HInst< 1001(outs IntRegs:$Rd32), 1002(ins DoubleRegs:$Rss32), 1003"$Rd32 = sat($Rss32)", 1004tc_9f6cd987, TypeS_2op>, Enc_90cd8b { 1005let Inst{13-5} = 0b000000000; 1006let Inst{31-21} = 0b10001000110; 1007let hasNewValue = 1; 1008let opNewValue = 0; 1009let Defs = [USR_OVF]; 1010} 1011def A2_satb : HInst< 1012(outs IntRegs:$Rd32), 1013(ins IntRegs:$Rs32), 1014"$Rd32 = satb($Rs32)", 1015tc_9f6cd987, TypeS_2op>, Enc_5e2823 { 1016let Inst{13-5} = 0b000000111; 1017let Inst{31-21} = 0b10001100110; 1018let hasNewValue = 1; 1019let opNewValue = 0; 1020let Defs = [USR_OVF]; 1021} 1022def A2_sath : HInst< 1023(outs IntRegs:$Rd32), 1024(ins IntRegs:$Rs32), 1025"$Rd32 = sath($Rs32)", 1026tc_9f6cd987, TypeS_2op>, Enc_5e2823 { 1027let Inst{13-5} = 0b000000100; 1028let Inst{31-21} = 0b10001100110; 1029let hasNewValue = 1; 1030let opNewValue = 0; 1031let Defs = [USR_OVF]; 1032} 1033def A2_satub : HInst< 1034(outs IntRegs:$Rd32), 1035(ins IntRegs:$Rs32), 1036"$Rd32 = satub($Rs32)", 1037tc_9f6cd987, TypeS_2op>, Enc_5e2823 { 1038let Inst{13-5} = 0b000000110; 1039let Inst{31-21} = 0b10001100110; 1040let hasNewValue = 1; 1041let opNewValue = 0; 1042let Defs = [USR_OVF]; 1043} 1044def A2_satuh : HInst< 1045(outs IntRegs:$Rd32), 1046(ins IntRegs:$Rs32), 1047"$Rd32 = satuh($Rs32)", 1048tc_9f6cd987, TypeS_2op>, Enc_5e2823 { 1049let Inst{13-5} = 0b000000101; 1050let Inst{31-21} = 0b10001100110; 1051let hasNewValue = 1; 1052let opNewValue = 0; 1053let Defs = [USR_OVF]; 1054} 1055def A2_sub : HInst< 1056(outs IntRegs:$Rd32), 1057(ins IntRegs:$Rt32, IntRegs:$Rs32), 1058"$Rd32 = sub($Rt32,$Rs32)", 1059tc_713b66bf, TypeALU32_3op>, Enc_bd6011, PredNewRel, ImmRegRel { 1060let Inst{7-5} = 0b000; 1061let Inst{13-13} = 0b0; 1062let Inst{31-21} = 0b11110011001; 1063let hasNewValue = 1; 1064let opNewValue = 0; 1065let BaseOpcode = "A2_sub"; 1066let CextOpcode = "A2_sub"; 1067let InputType = "reg"; 1068let isPredicable = 1; 1069} 1070def A2_subh_h16_hh : HInst< 1071(outs IntRegs:$Rd32), 1072(ins IntRegs:$Rt32, IntRegs:$Rs32), 1073"$Rd32 = sub($Rt32.h,$Rs32.h):<<16", 1074tc_01d44cb2, TypeALU64>, Enc_bd6011 { 1075let Inst{7-5} = 0b011; 1076let Inst{13-13} = 0b0; 1077let Inst{31-21} = 0b11010101011; 1078let hasNewValue = 1; 1079let opNewValue = 0; 1080let prefersSlot3 = 1; 1081} 1082def A2_subh_h16_hl : HInst< 1083(outs IntRegs:$Rd32), 1084(ins IntRegs:$Rt32, IntRegs:$Rs32), 1085"$Rd32 = sub($Rt32.h,$Rs32.l):<<16", 1086tc_01d44cb2, TypeALU64>, Enc_bd6011 { 1087let Inst{7-5} = 0b010; 1088let Inst{13-13} = 0b0; 1089let Inst{31-21} = 0b11010101011; 1090let hasNewValue = 1; 1091let opNewValue = 0; 1092let prefersSlot3 = 1; 1093} 1094def A2_subh_h16_lh : HInst< 1095(outs IntRegs:$Rd32), 1096(ins IntRegs:$Rt32, IntRegs:$Rs32), 1097"$Rd32 = sub($Rt32.l,$Rs32.h):<<16", 1098tc_01d44cb2, TypeALU64>, Enc_bd6011 { 1099let Inst{7-5} = 0b001; 1100let Inst{13-13} = 0b0; 1101let Inst{31-21} = 0b11010101011; 1102let hasNewValue = 1; 1103let opNewValue = 0; 1104let prefersSlot3 = 1; 1105} 1106def A2_subh_h16_ll : HInst< 1107(outs IntRegs:$Rd32), 1108(ins IntRegs:$Rt32, IntRegs:$Rs32), 1109"$Rd32 = sub($Rt32.l,$Rs32.l):<<16", 1110tc_01d44cb2, TypeALU64>, Enc_bd6011 { 1111let Inst{7-5} = 0b000; 1112let Inst{13-13} = 0b0; 1113let Inst{31-21} = 0b11010101011; 1114let hasNewValue = 1; 1115let opNewValue = 0; 1116let prefersSlot3 = 1; 1117} 1118def A2_subh_h16_sat_hh : HInst< 1119(outs IntRegs:$Rd32), 1120(ins IntRegs:$Rt32, IntRegs:$Rs32), 1121"$Rd32 = sub($Rt32.h,$Rs32.h):sat:<<16", 1122tc_8a825db2, TypeALU64>, Enc_bd6011 { 1123let Inst{7-5} = 0b111; 1124let Inst{13-13} = 0b0; 1125let Inst{31-21} = 0b11010101011; 1126let hasNewValue = 1; 1127let opNewValue = 0; 1128let prefersSlot3 = 1; 1129let Defs = [USR_OVF]; 1130} 1131def A2_subh_h16_sat_hl : HInst< 1132(outs IntRegs:$Rd32), 1133(ins IntRegs:$Rt32, IntRegs:$Rs32), 1134"$Rd32 = sub($Rt32.h,$Rs32.l):sat:<<16", 1135tc_8a825db2, TypeALU64>, Enc_bd6011 { 1136let Inst{7-5} = 0b110; 1137let Inst{13-13} = 0b0; 1138let Inst{31-21} = 0b11010101011; 1139let hasNewValue = 1; 1140let opNewValue = 0; 1141let prefersSlot3 = 1; 1142let Defs = [USR_OVF]; 1143} 1144def A2_subh_h16_sat_lh : HInst< 1145(outs IntRegs:$Rd32), 1146(ins IntRegs:$Rt32, IntRegs:$Rs32), 1147"$Rd32 = sub($Rt32.l,$Rs32.h):sat:<<16", 1148tc_8a825db2, TypeALU64>, Enc_bd6011 { 1149let Inst{7-5} = 0b101; 1150let Inst{13-13} = 0b0; 1151let Inst{31-21} = 0b11010101011; 1152let hasNewValue = 1; 1153let opNewValue = 0; 1154let prefersSlot3 = 1; 1155let Defs = [USR_OVF]; 1156} 1157def A2_subh_h16_sat_ll : HInst< 1158(outs IntRegs:$Rd32), 1159(ins IntRegs:$Rt32, IntRegs:$Rs32), 1160"$Rd32 = sub($Rt32.l,$Rs32.l):sat:<<16", 1161tc_8a825db2, TypeALU64>, Enc_bd6011 { 1162let Inst{7-5} = 0b100; 1163let Inst{13-13} = 0b0; 1164let Inst{31-21} = 0b11010101011; 1165let hasNewValue = 1; 1166let opNewValue = 0; 1167let prefersSlot3 = 1; 1168let Defs = [USR_OVF]; 1169} 1170def A2_subh_l16_hl : HInst< 1171(outs IntRegs:$Rd32), 1172(ins IntRegs:$Rt32, IntRegs:$Rs32), 1173"$Rd32 = sub($Rt32.l,$Rs32.h)", 1174tc_f34c1c21, TypeALU64>, Enc_bd6011 { 1175let Inst{7-5} = 0b010; 1176let Inst{13-13} = 0b0; 1177let Inst{31-21} = 0b11010101001; 1178let hasNewValue = 1; 1179let opNewValue = 0; 1180let prefersSlot3 = 1; 1181} 1182def A2_subh_l16_ll : HInst< 1183(outs IntRegs:$Rd32), 1184(ins IntRegs:$Rt32, IntRegs:$Rs32), 1185"$Rd32 = sub($Rt32.l,$Rs32.l)", 1186tc_f34c1c21, TypeALU64>, Enc_bd6011 { 1187let Inst{7-5} = 0b000; 1188let Inst{13-13} = 0b0; 1189let Inst{31-21} = 0b11010101001; 1190let hasNewValue = 1; 1191let opNewValue = 0; 1192let prefersSlot3 = 1; 1193} 1194def A2_subh_l16_sat_hl : HInst< 1195(outs IntRegs:$Rd32), 1196(ins IntRegs:$Rt32, IntRegs:$Rs32), 1197"$Rd32 = sub($Rt32.l,$Rs32.h):sat", 1198tc_8a825db2, TypeALU64>, Enc_bd6011 { 1199let Inst{7-5} = 0b110; 1200let Inst{13-13} = 0b0; 1201let Inst{31-21} = 0b11010101001; 1202let hasNewValue = 1; 1203let opNewValue = 0; 1204let prefersSlot3 = 1; 1205let Defs = [USR_OVF]; 1206} 1207def A2_subh_l16_sat_ll : HInst< 1208(outs IntRegs:$Rd32), 1209(ins IntRegs:$Rt32, IntRegs:$Rs32), 1210"$Rd32 = sub($Rt32.l,$Rs32.l):sat", 1211tc_8a825db2, TypeALU64>, Enc_bd6011 { 1212let Inst{7-5} = 0b100; 1213let Inst{13-13} = 0b0; 1214let Inst{31-21} = 0b11010101001; 1215let hasNewValue = 1; 1216let opNewValue = 0; 1217let prefersSlot3 = 1; 1218let Defs = [USR_OVF]; 1219} 1220def A2_subp : HInst< 1221(outs DoubleRegs:$Rdd32), 1222(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 1223"$Rdd32 = sub($Rtt32,$Rss32)", 1224tc_5da50c4b, TypeALU64>, Enc_ea23e4 { 1225let Inst{7-5} = 0b111; 1226let Inst{13-13} = 0b0; 1227let Inst{31-21} = 0b11010011001; 1228} 1229def A2_subri : HInst< 1230(outs IntRegs:$Rd32), 1231(ins s32_0Imm:$Ii, IntRegs:$Rs32), 1232"$Rd32 = sub(#$Ii,$Rs32)", 1233tc_713b66bf, TypeALU32_2op>, Enc_140c83, PredNewRel, ImmRegRel { 1234let Inst{31-22} = 0b0111011001; 1235let hasNewValue = 1; 1236let opNewValue = 0; 1237let CextOpcode = "A2_sub"; 1238let InputType = "imm"; 1239let isExtendable = 1; 1240let opExtendable = 1; 1241let isExtentSigned = 1; 1242let opExtentBits = 10; 1243let opExtentAlign = 0; 1244} 1245def A2_subsat : HInst< 1246(outs IntRegs:$Rd32), 1247(ins IntRegs:$Rt32, IntRegs:$Rs32), 1248"$Rd32 = sub($Rt32,$Rs32):sat", 1249tc_95a33176, TypeALU32_3op>, Enc_bd6011 { 1250let Inst{7-5} = 0b000; 1251let Inst{13-13} = 0b0; 1252let Inst{31-21} = 0b11110110110; 1253let hasNewValue = 1; 1254let opNewValue = 0; 1255let prefersSlot3 = 1; 1256let Defs = [USR_OVF]; 1257let InputType = "reg"; 1258} 1259def A2_svaddh : HInst< 1260(outs IntRegs:$Rd32), 1261(ins IntRegs:$Rs32, IntRegs:$Rt32), 1262"$Rd32 = vaddh($Rs32,$Rt32)", 1263tc_713b66bf, TypeALU32_3op>, Enc_5ab2be { 1264let Inst{7-5} = 0b000; 1265let Inst{13-13} = 0b0; 1266let Inst{31-21} = 0b11110110000; 1267let hasNewValue = 1; 1268let opNewValue = 0; 1269let InputType = "reg"; 1270let isCommutable = 1; 1271} 1272def A2_svaddhs : HInst< 1273(outs IntRegs:$Rd32), 1274(ins IntRegs:$Rs32, IntRegs:$Rt32), 1275"$Rd32 = vaddh($Rs32,$Rt32):sat", 1276tc_95a33176, TypeALU32_3op>, Enc_5ab2be { 1277let Inst{7-5} = 0b000; 1278let Inst{13-13} = 0b0; 1279let Inst{31-21} = 0b11110110001; 1280let hasNewValue = 1; 1281let opNewValue = 0; 1282let prefersSlot3 = 1; 1283let Defs = [USR_OVF]; 1284let InputType = "reg"; 1285let isCommutable = 1; 1286} 1287def A2_svadduhs : HInst< 1288(outs IntRegs:$Rd32), 1289(ins IntRegs:$Rs32, IntRegs:$Rt32), 1290"$Rd32 = vadduh($Rs32,$Rt32):sat", 1291tc_95a33176, TypeALU32_3op>, Enc_5ab2be { 1292let Inst{7-5} = 0b000; 1293let Inst{13-13} = 0b0; 1294let Inst{31-21} = 0b11110110011; 1295let hasNewValue = 1; 1296let opNewValue = 0; 1297let prefersSlot3 = 1; 1298let Defs = [USR_OVF]; 1299let InputType = "reg"; 1300let isCommutable = 1; 1301} 1302def A2_svavgh : HInst< 1303(outs IntRegs:$Rd32), 1304(ins IntRegs:$Rs32, IntRegs:$Rt32), 1305"$Rd32 = vavgh($Rs32,$Rt32)", 1306tc_8b5bd4f5, TypeALU32_3op>, Enc_5ab2be { 1307let Inst{7-5} = 0b000; 1308let Inst{13-13} = 0b0; 1309let Inst{31-21} = 0b11110111000; 1310let hasNewValue = 1; 1311let opNewValue = 0; 1312let prefersSlot3 = 1; 1313let InputType = "reg"; 1314let isCommutable = 1; 1315} 1316def A2_svavghs : HInst< 1317(outs IntRegs:$Rd32), 1318(ins IntRegs:$Rs32, IntRegs:$Rt32), 1319"$Rd32 = vavgh($Rs32,$Rt32):rnd", 1320tc_84a7500d, TypeALU32_3op>, Enc_5ab2be { 1321let Inst{7-5} = 0b000; 1322let Inst{13-13} = 0b0; 1323let Inst{31-21} = 0b11110111001; 1324let hasNewValue = 1; 1325let opNewValue = 0; 1326let prefersSlot3 = 1; 1327let InputType = "reg"; 1328let isCommutable = 1; 1329} 1330def A2_svnavgh : HInst< 1331(outs IntRegs:$Rd32), 1332(ins IntRegs:$Rt32, IntRegs:$Rs32), 1333"$Rd32 = vnavgh($Rt32,$Rs32)", 1334tc_8b5bd4f5, TypeALU32_3op>, Enc_bd6011 { 1335let Inst{7-5} = 0b000; 1336let Inst{13-13} = 0b0; 1337let Inst{31-21} = 0b11110111011; 1338let hasNewValue = 1; 1339let opNewValue = 0; 1340let prefersSlot3 = 1; 1341let InputType = "reg"; 1342} 1343def A2_svsubh : HInst< 1344(outs IntRegs:$Rd32), 1345(ins IntRegs:$Rt32, IntRegs:$Rs32), 1346"$Rd32 = vsubh($Rt32,$Rs32)", 1347tc_713b66bf, TypeALU32_3op>, Enc_bd6011 { 1348let Inst{7-5} = 0b000; 1349let Inst{13-13} = 0b0; 1350let Inst{31-21} = 0b11110110100; 1351let hasNewValue = 1; 1352let opNewValue = 0; 1353let InputType = "reg"; 1354} 1355def A2_svsubhs : HInst< 1356(outs IntRegs:$Rd32), 1357(ins IntRegs:$Rt32, IntRegs:$Rs32), 1358"$Rd32 = vsubh($Rt32,$Rs32):sat", 1359tc_95a33176, TypeALU32_3op>, Enc_bd6011 { 1360let Inst{7-5} = 0b000; 1361let Inst{13-13} = 0b0; 1362let Inst{31-21} = 0b11110110101; 1363let hasNewValue = 1; 1364let opNewValue = 0; 1365let prefersSlot3 = 1; 1366let Defs = [USR_OVF]; 1367let InputType = "reg"; 1368} 1369def A2_svsubuhs : HInst< 1370(outs IntRegs:$Rd32), 1371(ins IntRegs:$Rt32, IntRegs:$Rs32), 1372"$Rd32 = vsubuh($Rt32,$Rs32):sat", 1373tc_95a33176, TypeALU32_3op>, Enc_bd6011 { 1374let Inst{7-5} = 0b000; 1375let Inst{13-13} = 0b0; 1376let Inst{31-21} = 0b11110110111; 1377let hasNewValue = 1; 1378let opNewValue = 0; 1379let prefersSlot3 = 1; 1380let Defs = [USR_OVF]; 1381let InputType = "reg"; 1382} 1383def A2_swiz : HInst< 1384(outs IntRegs:$Rd32), 1385(ins IntRegs:$Rs32), 1386"$Rd32 = swiz($Rs32)", 1387tc_9f6cd987, TypeS_2op>, Enc_5e2823 { 1388let Inst{13-5} = 0b000000111; 1389let Inst{31-21} = 0b10001100100; 1390let hasNewValue = 1; 1391let opNewValue = 0; 1392} 1393def A2_sxtb : HInst< 1394(outs IntRegs:$Rd32), 1395(ins IntRegs:$Rs32), 1396"$Rd32 = sxtb($Rs32)", 1397tc_c57d9f39, TypeALU32_2op>, Enc_5e2823, PredNewRel { 1398let Inst{13-5} = 0b000000000; 1399let Inst{31-21} = 0b01110000101; 1400let hasNewValue = 1; 1401let opNewValue = 0; 1402let BaseOpcode = "A2_sxtb"; 1403let isPredicable = 1; 1404} 1405def A2_sxth : HInst< 1406(outs IntRegs:$Rd32), 1407(ins IntRegs:$Rs32), 1408"$Rd32 = sxth($Rs32)", 1409tc_c57d9f39, TypeALU32_2op>, Enc_5e2823, PredNewRel { 1410let Inst{13-5} = 0b000000000; 1411let Inst{31-21} = 0b01110000111; 1412let hasNewValue = 1; 1413let opNewValue = 0; 1414let BaseOpcode = "A2_sxth"; 1415let isPredicable = 1; 1416} 1417def A2_sxtw : HInst< 1418(outs DoubleRegs:$Rdd32), 1419(ins IntRegs:$Rs32), 1420"$Rdd32 = sxtw($Rs32)", 1421tc_9f6cd987, TypeS_2op>, Enc_3a3d62 { 1422let Inst{13-5} = 0b000000000; 1423let Inst{31-21} = 0b10000100010; 1424} 1425def A2_tfr : HInst< 1426(outs IntRegs:$Rd32), 1427(ins IntRegs:$Rs32), 1428"$Rd32 = $Rs32", 1429tc_c57d9f39, TypeALU32_2op>, Enc_5e2823, PredNewRel { 1430let Inst{13-5} = 0b000000000; 1431let Inst{31-21} = 0b01110000011; 1432let hasNewValue = 1; 1433let opNewValue = 0; 1434let BaseOpcode = "A2_tfr"; 1435let InputType = "reg"; 1436let isPredicable = 1; 1437} 1438def A2_tfrcrr : HInst< 1439(outs IntRegs:$Rd32), 1440(ins CtrRegs:$Cs32), 1441"$Rd32 = $Cs32", 1442tc_7476d766, TypeCR>, Enc_0cb018 { 1443let Inst{13-5} = 0b000000000; 1444let Inst{31-21} = 0b01101010000; 1445let hasNewValue = 1; 1446let opNewValue = 0; 1447} 1448def A2_tfrf : HInst< 1449(outs IntRegs:$Rd32), 1450(ins PredRegs:$Pu4, IntRegs:$Rs32), 1451"if (!$Pu4) $Rd32 = $Rs32", 1452tc_1c2c7a4a, TypeALU32_2op>, PredNewRel, ImmRegRel { 1453let isPredicated = 1; 1454let isPredicatedFalse = 1; 1455let hasNewValue = 1; 1456let opNewValue = 0; 1457let BaseOpcode = "A2_tfr"; 1458let CextOpcode = "A2_tfr"; 1459let InputType = "reg"; 1460let isPseudo = 1; 1461let isCodeGenOnly = 1; 1462} 1463def A2_tfrfnew : HInst< 1464(outs IntRegs:$Rd32), 1465(ins PredRegs:$Pu4, IntRegs:$Rs32), 1466"if (!$Pu4.new) $Rd32 = $Rs32", 1467tc_442395f3, TypeALU32_2op>, PredNewRel, ImmRegRel { 1468let isPredicated = 1; 1469let isPredicatedFalse = 1; 1470let hasNewValue = 1; 1471let opNewValue = 0; 1472let isPredicatedNew = 1; 1473let BaseOpcode = "A2_tfr"; 1474let CextOpcode = "A2_tfr"; 1475let InputType = "reg"; 1476let isPseudo = 1; 1477let isCodeGenOnly = 1; 1478} 1479def A2_tfrih : HInst< 1480(outs IntRegs:$Rx32), 1481(ins IntRegs:$Rx32in, u16_0Imm:$Ii), 1482"$Rx32.h = #$Ii", 1483tc_713b66bf, TypeALU32_2op>, Enc_51436c { 1484let Inst{21-21} = 0b1; 1485let Inst{31-24} = 0b01110010; 1486let hasNewValue = 1; 1487let opNewValue = 0; 1488let Constraints = "$Rx32 = $Rx32in"; 1489} 1490def A2_tfril : HInst< 1491(outs IntRegs:$Rx32), 1492(ins IntRegs:$Rx32in, u16_0Imm:$Ii), 1493"$Rx32.l = #$Ii", 1494tc_713b66bf, TypeALU32_2op>, Enc_51436c { 1495let Inst{21-21} = 0b1; 1496let Inst{31-24} = 0b01110001; 1497let hasNewValue = 1; 1498let opNewValue = 0; 1499let Constraints = "$Rx32 = $Rx32in"; 1500} 1501def A2_tfrp : HInst< 1502(outs DoubleRegs:$Rdd32), 1503(ins DoubleRegs:$Rss32), 1504"$Rdd32 = $Rss32", 1505tc_713b66bf, TypeALU32_2op>, PredNewRel { 1506let BaseOpcode = "A2_tfrp"; 1507let isPredicable = 1; 1508let isPseudo = 1; 1509} 1510def A2_tfrpf : HInst< 1511(outs DoubleRegs:$Rdd32), 1512(ins PredRegs:$Pu4, DoubleRegs:$Rss32), 1513"if (!$Pu4) $Rdd32 = $Rss32", 1514tc_713b66bf, TypeALU32_2op>, PredNewRel { 1515let isPredicated = 1; 1516let isPredicatedFalse = 1; 1517let BaseOpcode = "A2_tfrp"; 1518let isPseudo = 1; 1519} 1520def A2_tfrpfnew : HInst< 1521(outs DoubleRegs:$Rdd32), 1522(ins PredRegs:$Pu4, DoubleRegs:$Rss32), 1523"if (!$Pu4.new) $Rdd32 = $Rss32", 1524tc_86173609, TypeALU32_2op>, PredNewRel { 1525let isPredicated = 1; 1526let isPredicatedFalse = 1; 1527let isPredicatedNew = 1; 1528let BaseOpcode = "A2_tfrp"; 1529let isPseudo = 1; 1530} 1531def A2_tfrpi : HInst< 1532(outs DoubleRegs:$Rdd32), 1533(ins s8_0Imm:$Ii), 1534"$Rdd32 = #$Ii", 1535tc_713b66bf, TypeALU64> { 1536let isAsCheapAsAMove = 1; 1537let isMoveImm = 1; 1538let isReMaterializable = 1; 1539let isPseudo = 1; 1540} 1541def A2_tfrpt : HInst< 1542(outs DoubleRegs:$Rdd32), 1543(ins PredRegs:$Pu4, DoubleRegs:$Rss32), 1544"if ($Pu4) $Rdd32 = $Rss32", 1545tc_713b66bf, TypeALU32_2op>, PredNewRel { 1546let isPredicated = 1; 1547let BaseOpcode = "A2_tfrp"; 1548let isPseudo = 1; 1549} 1550def A2_tfrptnew : HInst< 1551(outs DoubleRegs:$Rdd32), 1552(ins PredRegs:$Pu4, DoubleRegs:$Rss32), 1553"if ($Pu4.new) $Rdd32 = $Rss32", 1554tc_86173609, TypeALU32_2op>, PredNewRel { 1555let isPredicated = 1; 1556let isPredicatedNew = 1; 1557let BaseOpcode = "A2_tfrp"; 1558let isPseudo = 1; 1559} 1560def A2_tfrrcr : HInst< 1561(outs CtrRegs:$Cd32), 1562(ins IntRegs:$Rs32), 1563"$Cd32 = $Rs32", 1564tc_49fdfd4b, TypeCR>, Enc_bd811a { 1565let Inst{13-5} = 0b000000000; 1566let Inst{31-21} = 0b01100010001; 1567let hasNewValue = 1; 1568let opNewValue = 0; 1569} 1570def A2_tfrsi : HInst< 1571(outs IntRegs:$Rd32), 1572(ins s32_0Imm:$Ii), 1573"$Rd32 = #$Ii", 1574tc_c57d9f39, TypeALU32_2op>, Enc_5e87ce, PredNewRel, ImmRegRel { 1575let Inst{21-21} = 0b0; 1576let Inst{31-24} = 0b01111000; 1577let hasNewValue = 1; 1578let opNewValue = 0; 1579let BaseOpcode = "A2_tfrsi"; 1580let CextOpcode = "A2_tfr"; 1581let InputType = "imm"; 1582let isAsCheapAsAMove = 1; 1583let isMoveImm = 1; 1584let isPredicable = 1; 1585let isReMaterializable = 1; 1586let isExtendable = 1; 1587let opExtendable = 1; 1588let isExtentSigned = 1; 1589let opExtentBits = 16; 1590let opExtentAlign = 0; 1591} 1592def A2_tfrt : HInst< 1593(outs IntRegs:$Rd32), 1594(ins PredRegs:$Pu4, IntRegs:$Rs32), 1595"if ($Pu4) $Rd32 = $Rs32", 1596tc_1c2c7a4a, TypeALU32_2op>, PredNewRel, ImmRegRel { 1597let isPredicated = 1; 1598let hasNewValue = 1; 1599let opNewValue = 0; 1600let BaseOpcode = "A2_tfr"; 1601let CextOpcode = "A2_tfr"; 1602let InputType = "reg"; 1603let isPseudo = 1; 1604let isCodeGenOnly = 1; 1605} 1606def A2_tfrtnew : HInst< 1607(outs IntRegs:$Rd32), 1608(ins PredRegs:$Pu4, IntRegs:$Rs32), 1609"if ($Pu4.new) $Rd32 = $Rs32", 1610tc_442395f3, TypeALU32_2op>, PredNewRel, ImmRegRel { 1611let isPredicated = 1; 1612let hasNewValue = 1; 1613let opNewValue = 0; 1614let isPredicatedNew = 1; 1615let BaseOpcode = "A2_tfr"; 1616let CextOpcode = "A2_tfr"; 1617let InputType = "reg"; 1618let isPseudo = 1; 1619let isCodeGenOnly = 1; 1620} 1621def A2_vabsh : HInst< 1622(outs DoubleRegs:$Rdd32), 1623(ins DoubleRegs:$Rss32), 1624"$Rdd32 = vabsh($Rss32)", 1625tc_d61dfdc3, TypeS_2op>, Enc_b9c5fb { 1626let Inst{13-5} = 0b000000100; 1627let Inst{31-21} = 0b10000000010; 1628let prefersSlot3 = 1; 1629} 1630def A2_vabshsat : HInst< 1631(outs DoubleRegs:$Rdd32), 1632(ins DoubleRegs:$Rss32), 1633"$Rdd32 = vabsh($Rss32):sat", 1634tc_d61dfdc3, TypeS_2op>, Enc_b9c5fb { 1635let Inst{13-5} = 0b000000101; 1636let Inst{31-21} = 0b10000000010; 1637let prefersSlot3 = 1; 1638let Defs = [USR_OVF]; 1639} 1640def A2_vabsw : HInst< 1641(outs DoubleRegs:$Rdd32), 1642(ins DoubleRegs:$Rss32), 1643"$Rdd32 = vabsw($Rss32)", 1644tc_d61dfdc3, TypeS_2op>, Enc_b9c5fb { 1645let Inst{13-5} = 0b000000110; 1646let Inst{31-21} = 0b10000000010; 1647let prefersSlot3 = 1; 1648} 1649def A2_vabswsat : HInst< 1650(outs DoubleRegs:$Rdd32), 1651(ins DoubleRegs:$Rss32), 1652"$Rdd32 = vabsw($Rss32):sat", 1653tc_d61dfdc3, TypeS_2op>, Enc_b9c5fb { 1654let Inst{13-5} = 0b000000111; 1655let Inst{31-21} = 0b10000000010; 1656let prefersSlot3 = 1; 1657let Defs = [USR_OVF]; 1658} 1659def A2_vaddb_map : HInst< 1660(outs DoubleRegs:$Rdd32), 1661(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1662"$Rdd32 = vaddb($Rss32,$Rtt32)", 1663tc_5da50c4b, TypeMAPPING> { 1664let isPseudo = 1; 1665let isCodeGenOnly = 1; 1666} 1667def A2_vaddh : HInst< 1668(outs DoubleRegs:$Rdd32), 1669(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1670"$Rdd32 = vaddh($Rss32,$Rtt32)", 1671tc_5da50c4b, TypeALU64>, Enc_a56825 { 1672let Inst{7-5} = 0b010; 1673let Inst{13-13} = 0b0; 1674let Inst{31-21} = 0b11010011000; 1675} 1676def A2_vaddhs : HInst< 1677(outs DoubleRegs:$Rdd32), 1678(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1679"$Rdd32 = vaddh($Rss32,$Rtt32):sat", 1680tc_8a825db2, TypeALU64>, Enc_a56825 { 1681let Inst{7-5} = 0b011; 1682let Inst{13-13} = 0b0; 1683let Inst{31-21} = 0b11010011000; 1684let prefersSlot3 = 1; 1685let Defs = [USR_OVF]; 1686} 1687def A2_vaddub : HInst< 1688(outs DoubleRegs:$Rdd32), 1689(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1690"$Rdd32 = vaddub($Rss32,$Rtt32)", 1691tc_5da50c4b, TypeALU64>, Enc_a56825 { 1692let Inst{7-5} = 0b000; 1693let Inst{13-13} = 0b0; 1694let Inst{31-21} = 0b11010011000; 1695} 1696def A2_vaddubs : HInst< 1697(outs DoubleRegs:$Rdd32), 1698(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1699"$Rdd32 = vaddub($Rss32,$Rtt32):sat", 1700tc_8a825db2, TypeALU64>, Enc_a56825 { 1701let Inst{7-5} = 0b001; 1702let Inst{13-13} = 0b0; 1703let Inst{31-21} = 0b11010011000; 1704let prefersSlot3 = 1; 1705let Defs = [USR_OVF]; 1706} 1707def A2_vadduhs : HInst< 1708(outs DoubleRegs:$Rdd32), 1709(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1710"$Rdd32 = vadduh($Rss32,$Rtt32):sat", 1711tc_8a825db2, TypeALU64>, Enc_a56825 { 1712let Inst{7-5} = 0b100; 1713let Inst{13-13} = 0b0; 1714let Inst{31-21} = 0b11010011000; 1715let prefersSlot3 = 1; 1716let Defs = [USR_OVF]; 1717} 1718def A2_vaddw : HInst< 1719(outs DoubleRegs:$Rdd32), 1720(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1721"$Rdd32 = vaddw($Rss32,$Rtt32)", 1722tc_5da50c4b, TypeALU64>, Enc_a56825 { 1723let Inst{7-5} = 0b101; 1724let Inst{13-13} = 0b0; 1725let Inst{31-21} = 0b11010011000; 1726} 1727def A2_vaddws : HInst< 1728(outs DoubleRegs:$Rdd32), 1729(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1730"$Rdd32 = vaddw($Rss32,$Rtt32):sat", 1731tc_8a825db2, TypeALU64>, Enc_a56825 { 1732let Inst{7-5} = 0b110; 1733let Inst{13-13} = 0b0; 1734let Inst{31-21} = 0b11010011000; 1735let prefersSlot3 = 1; 1736let Defs = [USR_OVF]; 1737} 1738def A2_vavgh : HInst< 1739(outs DoubleRegs:$Rdd32), 1740(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1741"$Rdd32 = vavgh($Rss32,$Rtt32)", 1742tc_f098b237, TypeALU64>, Enc_a56825 { 1743let Inst{7-5} = 0b010; 1744let Inst{13-13} = 0b0; 1745let Inst{31-21} = 0b11010011010; 1746let prefersSlot3 = 1; 1747} 1748def A2_vavghcr : HInst< 1749(outs DoubleRegs:$Rdd32), 1750(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1751"$Rdd32 = vavgh($Rss32,$Rtt32):crnd", 1752tc_0dfac0a7, TypeALU64>, Enc_a56825 { 1753let Inst{7-5} = 0b100; 1754let Inst{13-13} = 0b0; 1755let Inst{31-21} = 0b11010011010; 1756let prefersSlot3 = 1; 1757} 1758def A2_vavghr : HInst< 1759(outs DoubleRegs:$Rdd32), 1760(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1761"$Rdd32 = vavgh($Rss32,$Rtt32):rnd", 1762tc_20131976, TypeALU64>, Enc_a56825 { 1763let Inst{7-5} = 0b011; 1764let Inst{13-13} = 0b0; 1765let Inst{31-21} = 0b11010011010; 1766let prefersSlot3 = 1; 1767} 1768def A2_vavgub : HInst< 1769(outs DoubleRegs:$Rdd32), 1770(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1771"$Rdd32 = vavgub($Rss32,$Rtt32)", 1772tc_f098b237, TypeALU64>, Enc_a56825 { 1773let Inst{7-5} = 0b000; 1774let Inst{13-13} = 0b0; 1775let Inst{31-21} = 0b11010011010; 1776let prefersSlot3 = 1; 1777} 1778def A2_vavgubr : HInst< 1779(outs DoubleRegs:$Rdd32), 1780(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1781"$Rdd32 = vavgub($Rss32,$Rtt32):rnd", 1782tc_20131976, TypeALU64>, Enc_a56825 { 1783let Inst{7-5} = 0b001; 1784let Inst{13-13} = 0b0; 1785let Inst{31-21} = 0b11010011010; 1786let prefersSlot3 = 1; 1787} 1788def A2_vavguh : HInst< 1789(outs DoubleRegs:$Rdd32), 1790(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1791"$Rdd32 = vavguh($Rss32,$Rtt32)", 1792tc_f098b237, TypeALU64>, Enc_a56825 { 1793let Inst{7-5} = 0b101; 1794let Inst{13-13} = 0b0; 1795let Inst{31-21} = 0b11010011010; 1796let prefersSlot3 = 1; 1797} 1798def A2_vavguhr : HInst< 1799(outs DoubleRegs:$Rdd32), 1800(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1801"$Rdd32 = vavguh($Rss32,$Rtt32):rnd", 1802tc_20131976, TypeALU64>, Enc_a56825 { 1803let Inst{7-5} = 0b110; 1804let Inst{13-13} = 0b0; 1805let Inst{31-21} = 0b11010011010; 1806let prefersSlot3 = 1; 1807} 1808def A2_vavguw : HInst< 1809(outs DoubleRegs:$Rdd32), 1810(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1811"$Rdd32 = vavguw($Rss32,$Rtt32)", 1812tc_f098b237, TypeALU64>, Enc_a56825 { 1813let Inst{7-5} = 0b011; 1814let Inst{13-13} = 0b0; 1815let Inst{31-21} = 0b11010011011; 1816let prefersSlot3 = 1; 1817} 1818def A2_vavguwr : HInst< 1819(outs DoubleRegs:$Rdd32), 1820(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1821"$Rdd32 = vavguw($Rss32,$Rtt32):rnd", 1822tc_20131976, TypeALU64>, Enc_a56825 { 1823let Inst{7-5} = 0b100; 1824let Inst{13-13} = 0b0; 1825let Inst{31-21} = 0b11010011011; 1826let prefersSlot3 = 1; 1827} 1828def A2_vavgw : HInst< 1829(outs DoubleRegs:$Rdd32), 1830(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1831"$Rdd32 = vavgw($Rss32,$Rtt32)", 1832tc_f098b237, TypeALU64>, Enc_a56825 { 1833let Inst{7-5} = 0b000; 1834let Inst{13-13} = 0b0; 1835let Inst{31-21} = 0b11010011011; 1836let prefersSlot3 = 1; 1837} 1838def A2_vavgwcr : HInst< 1839(outs DoubleRegs:$Rdd32), 1840(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1841"$Rdd32 = vavgw($Rss32,$Rtt32):crnd", 1842tc_0dfac0a7, TypeALU64>, Enc_a56825 { 1843let Inst{7-5} = 0b010; 1844let Inst{13-13} = 0b0; 1845let Inst{31-21} = 0b11010011011; 1846let prefersSlot3 = 1; 1847} 1848def A2_vavgwr : HInst< 1849(outs DoubleRegs:$Rdd32), 1850(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1851"$Rdd32 = vavgw($Rss32,$Rtt32):rnd", 1852tc_20131976, TypeALU64>, Enc_a56825 { 1853let Inst{7-5} = 0b001; 1854let Inst{13-13} = 0b0; 1855let Inst{31-21} = 0b11010011011; 1856let prefersSlot3 = 1; 1857} 1858def A2_vcmpbeq : HInst< 1859(outs PredRegs:$Pd4), 1860(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1861"$Pd4 = vcmpb.eq($Rss32,$Rtt32)", 1862tc_4a55d03c, TypeALU64>, Enc_fcf7a7 { 1863let Inst{7-2} = 0b110000; 1864let Inst{13-13} = 0b0; 1865let Inst{31-21} = 0b11010010000; 1866} 1867def A2_vcmpbgtu : HInst< 1868(outs PredRegs:$Pd4), 1869(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1870"$Pd4 = vcmpb.gtu($Rss32,$Rtt32)", 1871tc_4a55d03c, TypeALU64>, Enc_fcf7a7 { 1872let Inst{7-2} = 0b111000; 1873let Inst{13-13} = 0b0; 1874let Inst{31-21} = 0b11010010000; 1875} 1876def A2_vcmpheq : HInst< 1877(outs PredRegs:$Pd4), 1878(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1879"$Pd4 = vcmph.eq($Rss32,$Rtt32)", 1880tc_4a55d03c, TypeALU64>, Enc_fcf7a7 { 1881let Inst{7-2} = 0b011000; 1882let Inst{13-13} = 0b0; 1883let Inst{31-21} = 0b11010010000; 1884} 1885def A2_vcmphgt : HInst< 1886(outs PredRegs:$Pd4), 1887(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1888"$Pd4 = vcmph.gt($Rss32,$Rtt32)", 1889tc_4a55d03c, TypeALU64>, Enc_fcf7a7 { 1890let Inst{7-2} = 0b100000; 1891let Inst{13-13} = 0b0; 1892let Inst{31-21} = 0b11010010000; 1893} 1894def A2_vcmphgtu : HInst< 1895(outs PredRegs:$Pd4), 1896(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1897"$Pd4 = vcmph.gtu($Rss32,$Rtt32)", 1898tc_4a55d03c, TypeALU64>, Enc_fcf7a7 { 1899let Inst{7-2} = 0b101000; 1900let Inst{13-13} = 0b0; 1901let Inst{31-21} = 0b11010010000; 1902} 1903def A2_vcmpweq : HInst< 1904(outs PredRegs:$Pd4), 1905(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1906"$Pd4 = vcmpw.eq($Rss32,$Rtt32)", 1907tc_4a55d03c, TypeALU64>, Enc_fcf7a7 { 1908let Inst{7-2} = 0b000000; 1909let Inst{13-13} = 0b0; 1910let Inst{31-21} = 0b11010010000; 1911} 1912def A2_vcmpwgt : HInst< 1913(outs PredRegs:$Pd4), 1914(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1915"$Pd4 = vcmpw.gt($Rss32,$Rtt32)", 1916tc_4a55d03c, TypeALU64>, Enc_fcf7a7 { 1917let Inst{7-2} = 0b001000; 1918let Inst{13-13} = 0b0; 1919let Inst{31-21} = 0b11010010000; 1920} 1921def A2_vcmpwgtu : HInst< 1922(outs PredRegs:$Pd4), 1923(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 1924"$Pd4 = vcmpw.gtu($Rss32,$Rtt32)", 1925tc_4a55d03c, TypeALU64>, Enc_fcf7a7 { 1926let Inst{7-2} = 0b010000; 1927let Inst{13-13} = 0b0; 1928let Inst{31-21} = 0b11010010000; 1929} 1930def A2_vconj : HInst< 1931(outs DoubleRegs:$Rdd32), 1932(ins DoubleRegs:$Rss32), 1933"$Rdd32 = vconj($Rss32):sat", 1934tc_d61dfdc3, TypeS_2op>, Enc_b9c5fb { 1935let Inst{13-5} = 0b000000111; 1936let Inst{31-21} = 0b10000000100; 1937let prefersSlot3 = 1; 1938let Defs = [USR_OVF]; 1939} 1940def A2_vmaxb : HInst< 1941(outs DoubleRegs:$Rdd32), 1942(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 1943"$Rdd32 = vmaxb($Rtt32,$Rss32)", 1944tc_8a825db2, TypeALU64>, Enc_ea23e4 { 1945let Inst{7-5} = 0b110; 1946let Inst{13-13} = 0b0; 1947let Inst{31-21} = 0b11010011110; 1948let prefersSlot3 = 1; 1949} 1950def A2_vmaxh : HInst< 1951(outs DoubleRegs:$Rdd32), 1952(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 1953"$Rdd32 = vmaxh($Rtt32,$Rss32)", 1954tc_8a825db2, TypeALU64>, Enc_ea23e4 { 1955let Inst{7-5} = 0b001; 1956let Inst{13-13} = 0b0; 1957let Inst{31-21} = 0b11010011110; 1958let prefersSlot3 = 1; 1959} 1960def A2_vmaxub : HInst< 1961(outs DoubleRegs:$Rdd32), 1962(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 1963"$Rdd32 = vmaxub($Rtt32,$Rss32)", 1964tc_8a825db2, TypeALU64>, Enc_ea23e4 { 1965let Inst{7-5} = 0b000; 1966let Inst{13-13} = 0b0; 1967let Inst{31-21} = 0b11010011110; 1968let prefersSlot3 = 1; 1969} 1970def A2_vmaxuh : HInst< 1971(outs DoubleRegs:$Rdd32), 1972(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 1973"$Rdd32 = vmaxuh($Rtt32,$Rss32)", 1974tc_8a825db2, TypeALU64>, Enc_ea23e4 { 1975let Inst{7-5} = 0b010; 1976let Inst{13-13} = 0b0; 1977let Inst{31-21} = 0b11010011110; 1978let prefersSlot3 = 1; 1979} 1980def A2_vmaxuw : HInst< 1981(outs DoubleRegs:$Rdd32), 1982(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 1983"$Rdd32 = vmaxuw($Rtt32,$Rss32)", 1984tc_8a825db2, TypeALU64>, Enc_ea23e4 { 1985let Inst{7-5} = 0b101; 1986let Inst{13-13} = 0b0; 1987let Inst{31-21} = 0b11010011101; 1988let prefersSlot3 = 1; 1989} 1990def A2_vmaxw : HInst< 1991(outs DoubleRegs:$Rdd32), 1992(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 1993"$Rdd32 = vmaxw($Rtt32,$Rss32)", 1994tc_8a825db2, TypeALU64>, Enc_ea23e4 { 1995let Inst{7-5} = 0b011; 1996let Inst{13-13} = 0b0; 1997let Inst{31-21} = 0b11010011110; 1998let prefersSlot3 = 1; 1999} 2000def A2_vminb : HInst< 2001(outs DoubleRegs:$Rdd32), 2002(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2003"$Rdd32 = vminb($Rtt32,$Rss32)", 2004tc_8a825db2, TypeALU64>, Enc_ea23e4 { 2005let Inst{7-5} = 0b111; 2006let Inst{13-13} = 0b0; 2007let Inst{31-21} = 0b11010011110; 2008let prefersSlot3 = 1; 2009} 2010def A2_vminh : HInst< 2011(outs DoubleRegs:$Rdd32), 2012(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2013"$Rdd32 = vminh($Rtt32,$Rss32)", 2014tc_8a825db2, TypeALU64>, Enc_ea23e4 { 2015let Inst{7-5} = 0b001; 2016let Inst{13-13} = 0b0; 2017let Inst{31-21} = 0b11010011101; 2018let prefersSlot3 = 1; 2019} 2020def A2_vminub : HInst< 2021(outs DoubleRegs:$Rdd32), 2022(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2023"$Rdd32 = vminub($Rtt32,$Rss32)", 2024tc_8a825db2, TypeALU64>, Enc_ea23e4 { 2025let Inst{7-5} = 0b000; 2026let Inst{13-13} = 0b0; 2027let Inst{31-21} = 0b11010011101; 2028let prefersSlot3 = 1; 2029} 2030def A2_vminuh : HInst< 2031(outs DoubleRegs:$Rdd32), 2032(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2033"$Rdd32 = vminuh($Rtt32,$Rss32)", 2034tc_8a825db2, TypeALU64>, Enc_ea23e4 { 2035let Inst{7-5} = 0b010; 2036let Inst{13-13} = 0b0; 2037let Inst{31-21} = 0b11010011101; 2038let prefersSlot3 = 1; 2039} 2040def A2_vminuw : HInst< 2041(outs DoubleRegs:$Rdd32), 2042(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2043"$Rdd32 = vminuw($Rtt32,$Rss32)", 2044tc_8a825db2, TypeALU64>, Enc_ea23e4 { 2045let Inst{7-5} = 0b100; 2046let Inst{13-13} = 0b0; 2047let Inst{31-21} = 0b11010011101; 2048let prefersSlot3 = 1; 2049} 2050def A2_vminw : HInst< 2051(outs DoubleRegs:$Rdd32), 2052(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2053"$Rdd32 = vminw($Rtt32,$Rss32)", 2054tc_8a825db2, TypeALU64>, Enc_ea23e4 { 2055let Inst{7-5} = 0b011; 2056let Inst{13-13} = 0b0; 2057let Inst{31-21} = 0b11010011101; 2058let prefersSlot3 = 1; 2059} 2060def A2_vnavgh : HInst< 2061(outs DoubleRegs:$Rdd32), 2062(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2063"$Rdd32 = vnavgh($Rtt32,$Rss32)", 2064tc_f098b237, TypeALU64>, Enc_ea23e4 { 2065let Inst{7-5} = 0b000; 2066let Inst{13-13} = 0b0; 2067let Inst{31-21} = 0b11010011100; 2068let prefersSlot3 = 1; 2069} 2070def A2_vnavghcr : HInst< 2071(outs DoubleRegs:$Rdd32), 2072(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2073"$Rdd32 = vnavgh($Rtt32,$Rss32):crnd:sat", 2074tc_0dfac0a7, TypeALU64>, Enc_ea23e4 { 2075let Inst{7-5} = 0b010; 2076let Inst{13-13} = 0b0; 2077let Inst{31-21} = 0b11010011100; 2078let prefersSlot3 = 1; 2079let Defs = [USR_OVF]; 2080} 2081def A2_vnavghr : HInst< 2082(outs DoubleRegs:$Rdd32), 2083(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2084"$Rdd32 = vnavgh($Rtt32,$Rss32):rnd:sat", 2085tc_0dfac0a7, TypeALU64>, Enc_ea23e4 { 2086let Inst{7-5} = 0b001; 2087let Inst{13-13} = 0b0; 2088let Inst{31-21} = 0b11010011100; 2089let prefersSlot3 = 1; 2090let Defs = [USR_OVF]; 2091} 2092def A2_vnavgw : HInst< 2093(outs DoubleRegs:$Rdd32), 2094(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2095"$Rdd32 = vnavgw($Rtt32,$Rss32)", 2096tc_f098b237, TypeALU64>, Enc_ea23e4 { 2097let Inst{7-5} = 0b011; 2098let Inst{13-13} = 0b0; 2099let Inst{31-21} = 0b11010011100; 2100let prefersSlot3 = 1; 2101} 2102def A2_vnavgwcr : HInst< 2103(outs DoubleRegs:$Rdd32), 2104(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2105"$Rdd32 = vnavgw($Rtt32,$Rss32):crnd:sat", 2106tc_0dfac0a7, TypeALU64>, Enc_ea23e4 { 2107let Inst{7-5} = 0b110; 2108let Inst{13-13} = 0b0; 2109let Inst{31-21} = 0b11010011100; 2110let prefersSlot3 = 1; 2111let Defs = [USR_OVF]; 2112} 2113def A2_vnavgwr : HInst< 2114(outs DoubleRegs:$Rdd32), 2115(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2116"$Rdd32 = vnavgw($Rtt32,$Rss32):rnd:sat", 2117tc_0dfac0a7, TypeALU64>, Enc_ea23e4 { 2118let Inst{7-5} = 0b100; 2119let Inst{13-13} = 0b0; 2120let Inst{31-21} = 0b11010011100; 2121let prefersSlot3 = 1; 2122let Defs = [USR_OVF]; 2123} 2124def A2_vraddub : HInst< 2125(outs DoubleRegs:$Rdd32), 2126(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 2127"$Rdd32 = vraddub($Rss32,$Rtt32)", 2128tc_c21d7447, TypeM>, Enc_a56825 { 2129let Inst{7-5} = 0b001; 2130let Inst{13-13} = 0b0; 2131let Inst{31-21} = 0b11101000010; 2132let prefersSlot3 = 1; 2133} 2134def A2_vraddub_acc : HInst< 2135(outs DoubleRegs:$Rxx32), 2136(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 2137"$Rxx32 += vraddub($Rss32,$Rtt32)", 2138tc_7f8ae742, TypeM>, Enc_88c16c { 2139let Inst{7-5} = 0b001; 2140let Inst{13-13} = 0b0; 2141let Inst{31-21} = 0b11101010010; 2142let prefersSlot3 = 1; 2143let Constraints = "$Rxx32 = $Rxx32in"; 2144} 2145def A2_vrsadub : HInst< 2146(outs DoubleRegs:$Rdd32), 2147(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 2148"$Rdd32 = vrsadub($Rss32,$Rtt32)", 2149tc_c21d7447, TypeM>, Enc_a56825 { 2150let Inst{7-5} = 0b010; 2151let Inst{13-13} = 0b0; 2152let Inst{31-21} = 0b11101000010; 2153let prefersSlot3 = 1; 2154} 2155def A2_vrsadub_acc : HInst< 2156(outs DoubleRegs:$Rxx32), 2157(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 2158"$Rxx32 += vrsadub($Rss32,$Rtt32)", 2159tc_7f8ae742, TypeM>, Enc_88c16c { 2160let Inst{7-5} = 0b010; 2161let Inst{13-13} = 0b0; 2162let Inst{31-21} = 0b11101010010; 2163let prefersSlot3 = 1; 2164let Constraints = "$Rxx32 = $Rxx32in"; 2165} 2166def A2_vsubb_map : HInst< 2167(outs DoubleRegs:$Rdd32), 2168(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 2169"$Rdd32 = vsubb($Rss32,$Rtt32)", 2170tc_5da50c4b, TypeMAPPING> { 2171let isPseudo = 1; 2172let isCodeGenOnly = 1; 2173} 2174def A2_vsubh : HInst< 2175(outs DoubleRegs:$Rdd32), 2176(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2177"$Rdd32 = vsubh($Rtt32,$Rss32)", 2178tc_5da50c4b, TypeALU64>, Enc_ea23e4 { 2179let Inst{7-5} = 0b010; 2180let Inst{13-13} = 0b0; 2181let Inst{31-21} = 0b11010011001; 2182} 2183def A2_vsubhs : HInst< 2184(outs DoubleRegs:$Rdd32), 2185(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2186"$Rdd32 = vsubh($Rtt32,$Rss32):sat", 2187tc_8a825db2, TypeALU64>, Enc_ea23e4 { 2188let Inst{7-5} = 0b011; 2189let Inst{13-13} = 0b0; 2190let Inst{31-21} = 0b11010011001; 2191let prefersSlot3 = 1; 2192let Defs = [USR_OVF]; 2193} 2194def A2_vsubub : HInst< 2195(outs DoubleRegs:$Rdd32), 2196(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2197"$Rdd32 = vsubub($Rtt32,$Rss32)", 2198tc_5da50c4b, TypeALU64>, Enc_ea23e4 { 2199let Inst{7-5} = 0b000; 2200let Inst{13-13} = 0b0; 2201let Inst{31-21} = 0b11010011001; 2202} 2203def A2_vsububs : HInst< 2204(outs DoubleRegs:$Rdd32), 2205(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2206"$Rdd32 = vsubub($Rtt32,$Rss32):sat", 2207tc_8a825db2, TypeALU64>, Enc_ea23e4 { 2208let Inst{7-5} = 0b001; 2209let Inst{13-13} = 0b0; 2210let Inst{31-21} = 0b11010011001; 2211let prefersSlot3 = 1; 2212let Defs = [USR_OVF]; 2213} 2214def A2_vsubuhs : HInst< 2215(outs DoubleRegs:$Rdd32), 2216(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2217"$Rdd32 = vsubuh($Rtt32,$Rss32):sat", 2218tc_8a825db2, TypeALU64>, Enc_ea23e4 { 2219let Inst{7-5} = 0b100; 2220let Inst{13-13} = 0b0; 2221let Inst{31-21} = 0b11010011001; 2222let prefersSlot3 = 1; 2223let Defs = [USR_OVF]; 2224} 2225def A2_vsubw : HInst< 2226(outs DoubleRegs:$Rdd32), 2227(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2228"$Rdd32 = vsubw($Rtt32,$Rss32)", 2229tc_5da50c4b, TypeALU64>, Enc_ea23e4 { 2230let Inst{7-5} = 0b101; 2231let Inst{13-13} = 0b0; 2232let Inst{31-21} = 0b11010011001; 2233} 2234def A2_vsubws : HInst< 2235(outs DoubleRegs:$Rdd32), 2236(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2237"$Rdd32 = vsubw($Rtt32,$Rss32):sat", 2238tc_8a825db2, TypeALU64>, Enc_ea23e4 { 2239let Inst{7-5} = 0b110; 2240let Inst{13-13} = 0b0; 2241let Inst{31-21} = 0b11010011001; 2242let prefersSlot3 = 1; 2243let Defs = [USR_OVF]; 2244} 2245def A2_xor : HInst< 2246(outs IntRegs:$Rd32), 2247(ins IntRegs:$Rs32, IntRegs:$Rt32), 2248"$Rd32 = xor($Rs32,$Rt32)", 2249tc_713b66bf, TypeALU32_3op>, Enc_5ab2be, PredNewRel { 2250let Inst{7-5} = 0b000; 2251let Inst{13-13} = 0b0; 2252let Inst{31-21} = 0b11110001011; 2253let hasNewValue = 1; 2254let opNewValue = 0; 2255let BaseOpcode = "A2_xor"; 2256let InputType = "reg"; 2257let isCommutable = 1; 2258let isPredicable = 1; 2259} 2260def A2_xorp : HInst< 2261(outs DoubleRegs:$Rdd32), 2262(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 2263"$Rdd32 = xor($Rss32,$Rtt32)", 2264tc_5da50c4b, TypeALU64>, Enc_a56825 { 2265let Inst{7-5} = 0b100; 2266let Inst{13-13} = 0b0; 2267let Inst{31-21} = 0b11010011111; 2268let isCommutable = 1; 2269} 2270def A2_zxtb : HInst< 2271(outs IntRegs:$Rd32), 2272(ins IntRegs:$Rs32), 2273"$Rd32 = zxtb($Rs32)", 2274tc_713b66bf, TypeALU32_2op>, PredNewRel { 2275let hasNewValue = 1; 2276let opNewValue = 0; 2277let BaseOpcode = "A2_zxtb"; 2278let isPredicable = 1; 2279let isPseudo = 1; 2280let isCodeGenOnly = 1; 2281} 2282def A2_zxth : HInst< 2283(outs IntRegs:$Rd32), 2284(ins IntRegs:$Rs32), 2285"$Rd32 = zxth($Rs32)", 2286tc_c57d9f39, TypeALU32_2op>, Enc_5e2823, PredNewRel { 2287let Inst{13-5} = 0b000000000; 2288let Inst{31-21} = 0b01110000110; 2289let hasNewValue = 1; 2290let opNewValue = 0; 2291let BaseOpcode = "A2_zxth"; 2292let isPredicable = 1; 2293} 2294def A4_addp_c : HInst< 2295(outs DoubleRegs:$Rdd32, PredRegs:$Px4), 2296(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32, PredRegs:$Px4in), 2297"$Rdd32 = add($Rss32,$Rtt32,$Px4):carry", 2298tc_1d41f8b7, TypeS_3op>, Enc_2b3f60 { 2299let Inst{7-7} = 0b0; 2300let Inst{13-13} = 0b0; 2301let Inst{31-21} = 0b11000010110; 2302let isPredicateLate = 1; 2303let Constraints = "$Px4 = $Px4in"; 2304} 2305def A4_andn : HInst< 2306(outs IntRegs:$Rd32), 2307(ins IntRegs:$Rt32, IntRegs:$Rs32), 2308"$Rd32 = and($Rt32,~$Rs32)", 2309tc_713b66bf, TypeALU32_3op>, Enc_bd6011 { 2310let Inst{7-5} = 0b000; 2311let Inst{13-13} = 0b0; 2312let Inst{31-21} = 0b11110001100; 2313let hasNewValue = 1; 2314let opNewValue = 0; 2315let InputType = "reg"; 2316} 2317def A4_andnp : HInst< 2318(outs DoubleRegs:$Rdd32), 2319(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2320"$Rdd32 = and($Rtt32,~$Rss32)", 2321tc_5da50c4b, TypeALU64>, Enc_ea23e4 { 2322let Inst{7-5} = 0b001; 2323let Inst{13-13} = 0b0; 2324let Inst{31-21} = 0b11010011111; 2325} 2326def A4_bitsplit : HInst< 2327(outs DoubleRegs:$Rdd32), 2328(ins IntRegs:$Rs32, IntRegs:$Rt32), 2329"$Rdd32 = bitsplit($Rs32,$Rt32)", 2330tc_f34c1c21, TypeALU64>, Enc_be32a5 { 2331let Inst{7-5} = 0b000; 2332let Inst{13-13} = 0b0; 2333let Inst{31-21} = 0b11010100001; 2334let prefersSlot3 = 1; 2335} 2336def A4_bitspliti : HInst< 2337(outs DoubleRegs:$Rdd32), 2338(ins IntRegs:$Rs32, u5_0Imm:$Ii), 2339"$Rdd32 = bitsplit($Rs32,#$Ii)", 2340tc_f34c1c21, TypeS_2op>, Enc_311abd { 2341let Inst{7-5} = 0b100; 2342let Inst{13-13} = 0b0; 2343let Inst{31-21} = 0b10001000110; 2344let prefersSlot3 = 1; 2345} 2346def A4_boundscheck : HInst< 2347(outs PredRegs:$Pd4), 2348(ins IntRegs:$Rs32, DoubleRegs:$Rtt32), 2349"$Pd4 = boundscheck($Rs32,$Rtt32)", 2350tc_4a55d03c, TypeALU64> { 2351let isPseudo = 1; 2352} 2353def A4_boundscheck_hi : HInst< 2354(outs PredRegs:$Pd4), 2355(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 2356"$Pd4 = boundscheck($Rss32,$Rtt32):raw:hi", 2357tc_4a55d03c, TypeALU64>, Enc_fcf7a7 { 2358let Inst{7-2} = 0b101000; 2359let Inst{13-13} = 0b1; 2360let Inst{31-21} = 0b11010010000; 2361} 2362def A4_boundscheck_lo : HInst< 2363(outs PredRegs:$Pd4), 2364(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 2365"$Pd4 = boundscheck($Rss32,$Rtt32):raw:lo", 2366tc_4a55d03c, TypeALU64>, Enc_fcf7a7 { 2367let Inst{7-2} = 0b100000; 2368let Inst{13-13} = 0b1; 2369let Inst{31-21} = 0b11010010000; 2370} 2371def A4_cmpbeq : HInst< 2372(outs PredRegs:$Pd4), 2373(ins IntRegs:$Rs32, IntRegs:$Rt32), 2374"$Pd4 = cmpb.eq($Rs32,$Rt32)", 2375tc_4a55d03c, TypeS_3op>, Enc_c2b48e, ImmRegRel { 2376let Inst{7-2} = 0b110000; 2377let Inst{13-13} = 0b0; 2378let Inst{31-21} = 0b11000111110; 2379let CextOpcode = "A4_cmpbeq"; 2380let InputType = "reg"; 2381let isCommutable = 1; 2382let isCompare = 1; 2383} 2384def A4_cmpbeqi : HInst< 2385(outs PredRegs:$Pd4), 2386(ins IntRegs:$Rs32, u8_0Imm:$Ii), 2387"$Pd4 = cmpb.eq($Rs32,#$Ii)", 2388tc_a1297125, TypeALU64>, Enc_08d755, ImmRegRel { 2389let Inst{4-2} = 0b000; 2390let Inst{13-13} = 0b0; 2391let Inst{31-21} = 0b11011101000; 2392let CextOpcode = "A4_cmpbeq"; 2393let InputType = "imm"; 2394let isCommutable = 1; 2395let isCompare = 1; 2396} 2397def A4_cmpbgt : HInst< 2398(outs PredRegs:$Pd4), 2399(ins IntRegs:$Rs32, IntRegs:$Rt32), 2400"$Pd4 = cmpb.gt($Rs32,$Rt32)", 2401tc_4a55d03c, TypeS_3op>, Enc_c2b48e, ImmRegRel { 2402let Inst{7-2} = 0b010000; 2403let Inst{13-13} = 0b0; 2404let Inst{31-21} = 0b11000111110; 2405let CextOpcode = "A4_cmpbgt"; 2406let InputType = "reg"; 2407let isCompare = 1; 2408} 2409def A4_cmpbgti : HInst< 2410(outs PredRegs:$Pd4), 2411(ins IntRegs:$Rs32, s8_0Imm:$Ii), 2412"$Pd4 = cmpb.gt($Rs32,#$Ii)", 2413tc_a1297125, TypeALU64>, Enc_08d755, ImmRegRel { 2414let Inst{4-2} = 0b000; 2415let Inst{13-13} = 0b0; 2416let Inst{31-21} = 0b11011101001; 2417let CextOpcode = "A4_cmpbgt"; 2418let InputType = "imm"; 2419let isCompare = 1; 2420} 2421def A4_cmpbgtu : HInst< 2422(outs PredRegs:$Pd4), 2423(ins IntRegs:$Rs32, IntRegs:$Rt32), 2424"$Pd4 = cmpb.gtu($Rs32,$Rt32)", 2425tc_4a55d03c, TypeS_3op>, Enc_c2b48e, ImmRegRel { 2426let Inst{7-2} = 0b111000; 2427let Inst{13-13} = 0b0; 2428let Inst{31-21} = 0b11000111110; 2429let CextOpcode = "A4_cmpbgtu"; 2430let InputType = "reg"; 2431let isCompare = 1; 2432} 2433def A4_cmpbgtui : HInst< 2434(outs PredRegs:$Pd4), 2435(ins IntRegs:$Rs32, u32_0Imm:$Ii), 2436"$Pd4 = cmpb.gtu($Rs32,#$Ii)", 2437tc_a1297125, TypeALU64>, Enc_02553a, ImmRegRel { 2438let Inst{4-2} = 0b000; 2439let Inst{13-12} = 0b00; 2440let Inst{31-21} = 0b11011101010; 2441let CextOpcode = "A4_cmpbgtu"; 2442let InputType = "imm"; 2443let isCompare = 1; 2444let isExtendable = 1; 2445let opExtendable = 2; 2446let isExtentSigned = 0; 2447let opExtentBits = 7; 2448let opExtentAlign = 0; 2449} 2450def A4_cmpheq : HInst< 2451(outs PredRegs:$Pd4), 2452(ins IntRegs:$Rs32, IntRegs:$Rt32), 2453"$Pd4 = cmph.eq($Rs32,$Rt32)", 2454tc_4a55d03c, TypeS_3op>, Enc_c2b48e, ImmRegRel { 2455let Inst{7-2} = 0b011000; 2456let Inst{13-13} = 0b0; 2457let Inst{31-21} = 0b11000111110; 2458let CextOpcode = "A4_cmpheq"; 2459let InputType = "reg"; 2460let isCommutable = 1; 2461let isCompare = 1; 2462} 2463def A4_cmpheqi : HInst< 2464(outs PredRegs:$Pd4), 2465(ins IntRegs:$Rs32, s32_0Imm:$Ii), 2466"$Pd4 = cmph.eq($Rs32,#$Ii)", 2467tc_a1297125, TypeALU64>, Enc_08d755, ImmRegRel { 2468let Inst{4-2} = 0b010; 2469let Inst{13-13} = 0b0; 2470let Inst{31-21} = 0b11011101000; 2471let CextOpcode = "A4_cmpheq"; 2472let InputType = "imm"; 2473let isCommutable = 1; 2474let isCompare = 1; 2475let isExtendable = 1; 2476let opExtendable = 2; 2477let isExtentSigned = 1; 2478let opExtentBits = 8; 2479let opExtentAlign = 0; 2480} 2481def A4_cmphgt : HInst< 2482(outs PredRegs:$Pd4), 2483(ins IntRegs:$Rs32, IntRegs:$Rt32), 2484"$Pd4 = cmph.gt($Rs32,$Rt32)", 2485tc_4a55d03c, TypeS_3op>, Enc_c2b48e, ImmRegRel { 2486let Inst{7-2} = 0b100000; 2487let Inst{13-13} = 0b0; 2488let Inst{31-21} = 0b11000111110; 2489let CextOpcode = "A4_cmphgt"; 2490let InputType = "reg"; 2491let isCompare = 1; 2492} 2493def A4_cmphgti : HInst< 2494(outs PredRegs:$Pd4), 2495(ins IntRegs:$Rs32, s32_0Imm:$Ii), 2496"$Pd4 = cmph.gt($Rs32,#$Ii)", 2497tc_a1297125, TypeALU64>, Enc_08d755, ImmRegRel { 2498let Inst{4-2} = 0b010; 2499let Inst{13-13} = 0b0; 2500let Inst{31-21} = 0b11011101001; 2501let CextOpcode = "A4_cmphgt"; 2502let InputType = "imm"; 2503let isCompare = 1; 2504let isExtendable = 1; 2505let opExtendable = 2; 2506let isExtentSigned = 1; 2507let opExtentBits = 8; 2508let opExtentAlign = 0; 2509} 2510def A4_cmphgtu : HInst< 2511(outs PredRegs:$Pd4), 2512(ins IntRegs:$Rs32, IntRegs:$Rt32), 2513"$Pd4 = cmph.gtu($Rs32,$Rt32)", 2514tc_4a55d03c, TypeS_3op>, Enc_c2b48e, ImmRegRel { 2515let Inst{7-2} = 0b101000; 2516let Inst{13-13} = 0b0; 2517let Inst{31-21} = 0b11000111110; 2518let CextOpcode = "A4_cmphgtu"; 2519let InputType = "reg"; 2520let isCompare = 1; 2521} 2522def A4_cmphgtui : HInst< 2523(outs PredRegs:$Pd4), 2524(ins IntRegs:$Rs32, u32_0Imm:$Ii), 2525"$Pd4 = cmph.gtu($Rs32,#$Ii)", 2526tc_a1297125, TypeALU64>, Enc_02553a, ImmRegRel { 2527let Inst{4-2} = 0b010; 2528let Inst{13-12} = 0b00; 2529let Inst{31-21} = 0b11011101010; 2530let CextOpcode = "A4_cmphgtu"; 2531let InputType = "imm"; 2532let isCompare = 1; 2533let isExtendable = 1; 2534let opExtendable = 2; 2535let isExtentSigned = 0; 2536let opExtentBits = 7; 2537let opExtentAlign = 0; 2538} 2539def A4_combineii : HInst< 2540(outs DoubleRegs:$Rdd32), 2541(ins s8_0Imm:$Ii, u32_0Imm:$II), 2542"$Rdd32 = combine(#$Ii,#$II)", 2543tc_713b66bf, TypeALU32_2op>, Enc_f0cca7 { 2544let Inst{31-21} = 0b01111100100; 2545let isExtendable = 1; 2546let opExtendable = 2; 2547let isExtentSigned = 0; 2548let opExtentBits = 6; 2549let opExtentAlign = 0; 2550} 2551def A4_combineir : HInst< 2552(outs DoubleRegs:$Rdd32), 2553(ins s32_0Imm:$Ii, IntRegs:$Rs32), 2554"$Rdd32 = combine(#$Ii,$Rs32)", 2555tc_713b66bf, TypeALU32_2op>, Enc_9cdba7 { 2556let Inst{13-13} = 0b1; 2557let Inst{31-21} = 0b01110011001; 2558let isExtendable = 1; 2559let opExtendable = 1; 2560let isExtentSigned = 1; 2561let opExtentBits = 8; 2562let opExtentAlign = 0; 2563} 2564def A4_combineri : HInst< 2565(outs DoubleRegs:$Rdd32), 2566(ins IntRegs:$Rs32, s32_0Imm:$Ii), 2567"$Rdd32 = combine($Rs32,#$Ii)", 2568tc_713b66bf, TypeALU32_2op>, Enc_9cdba7 { 2569let Inst{13-13} = 0b1; 2570let Inst{31-21} = 0b01110011000; 2571let isExtendable = 1; 2572let opExtendable = 2; 2573let isExtentSigned = 1; 2574let opExtentBits = 8; 2575let opExtentAlign = 0; 2576} 2577def A4_cround_ri : HInst< 2578(outs IntRegs:$Rd32), 2579(ins IntRegs:$Rs32, u5_0Imm:$Ii), 2580"$Rd32 = cround($Rs32,#$Ii)", 2581tc_0dfac0a7, TypeS_2op>, Enc_a05677 { 2582let Inst{7-5} = 0b000; 2583let Inst{13-13} = 0b0; 2584let Inst{31-21} = 0b10001100111; 2585let hasNewValue = 1; 2586let opNewValue = 0; 2587let prefersSlot3 = 1; 2588} 2589def A4_cround_rr : HInst< 2590(outs IntRegs:$Rd32), 2591(ins IntRegs:$Rs32, IntRegs:$Rt32), 2592"$Rd32 = cround($Rs32,$Rt32)", 2593tc_0dfac0a7, TypeS_3op>, Enc_5ab2be { 2594let Inst{7-5} = 0b000; 2595let Inst{13-13} = 0b0; 2596let Inst{31-21} = 0b11000110110; 2597let hasNewValue = 1; 2598let opNewValue = 0; 2599let prefersSlot3 = 1; 2600} 2601def A4_ext : HInst< 2602(outs), 2603(ins u26_6Imm:$Ii), 2604"immext(#$Ii)", 2605tc_112d30d6, TypeEXTENDER>, Enc_2b518f { 2606let Inst{31-28} = 0b0000; 2607} 2608def A4_modwrapu : HInst< 2609(outs IntRegs:$Rd32), 2610(ins IntRegs:$Rs32, IntRegs:$Rt32), 2611"$Rd32 = modwrap($Rs32,$Rt32)", 2612tc_8a825db2, TypeALU64>, Enc_5ab2be { 2613let Inst{7-5} = 0b111; 2614let Inst{13-13} = 0b0; 2615let Inst{31-21} = 0b11010011111; 2616let hasNewValue = 1; 2617let opNewValue = 0; 2618let prefersSlot3 = 1; 2619} 2620def A4_orn : HInst< 2621(outs IntRegs:$Rd32), 2622(ins IntRegs:$Rt32, IntRegs:$Rs32), 2623"$Rd32 = or($Rt32,~$Rs32)", 2624tc_713b66bf, TypeALU32_3op>, Enc_bd6011 { 2625let Inst{7-5} = 0b000; 2626let Inst{13-13} = 0b0; 2627let Inst{31-21} = 0b11110001101; 2628let hasNewValue = 1; 2629let opNewValue = 0; 2630let InputType = "reg"; 2631} 2632def A4_ornp : HInst< 2633(outs DoubleRegs:$Rdd32), 2634(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 2635"$Rdd32 = or($Rtt32,~$Rss32)", 2636tc_5da50c4b, TypeALU64>, Enc_ea23e4 { 2637let Inst{7-5} = 0b011; 2638let Inst{13-13} = 0b0; 2639let Inst{31-21} = 0b11010011111; 2640} 2641def A4_paslhf : HInst< 2642(outs IntRegs:$Rd32), 2643(ins PredRegs:$Pu4, IntRegs:$Rs32), 2644"if (!$Pu4) $Rd32 = aslh($Rs32)", 2645tc_713b66bf, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2646let Inst{7-5} = 0b000; 2647let Inst{13-10} = 0b1010; 2648let Inst{31-21} = 0b01110000000; 2649let isPredicated = 1; 2650let isPredicatedFalse = 1; 2651let hasNewValue = 1; 2652let opNewValue = 0; 2653let BaseOpcode = "A2_aslh"; 2654} 2655def A4_paslhfnew : HInst< 2656(outs IntRegs:$Rd32), 2657(ins PredRegs:$Pu4, IntRegs:$Rs32), 2658"if (!$Pu4.new) $Rd32 = aslh($Rs32)", 2659tc_86173609, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2660let Inst{7-5} = 0b000; 2661let Inst{13-10} = 0b1011; 2662let Inst{31-21} = 0b01110000000; 2663let isPredicated = 1; 2664let isPredicatedFalse = 1; 2665let hasNewValue = 1; 2666let opNewValue = 0; 2667let isPredicatedNew = 1; 2668let BaseOpcode = "A2_aslh"; 2669} 2670def A4_paslht : HInst< 2671(outs IntRegs:$Rd32), 2672(ins PredRegs:$Pu4, IntRegs:$Rs32), 2673"if ($Pu4) $Rd32 = aslh($Rs32)", 2674tc_713b66bf, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2675let Inst{7-5} = 0b000; 2676let Inst{13-10} = 0b1000; 2677let Inst{31-21} = 0b01110000000; 2678let isPredicated = 1; 2679let hasNewValue = 1; 2680let opNewValue = 0; 2681let BaseOpcode = "A2_aslh"; 2682} 2683def A4_paslhtnew : HInst< 2684(outs IntRegs:$Rd32), 2685(ins PredRegs:$Pu4, IntRegs:$Rs32), 2686"if ($Pu4.new) $Rd32 = aslh($Rs32)", 2687tc_86173609, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2688let Inst{7-5} = 0b000; 2689let Inst{13-10} = 0b1001; 2690let Inst{31-21} = 0b01110000000; 2691let isPredicated = 1; 2692let hasNewValue = 1; 2693let opNewValue = 0; 2694let isPredicatedNew = 1; 2695let BaseOpcode = "A2_aslh"; 2696} 2697def A4_pasrhf : HInst< 2698(outs IntRegs:$Rd32), 2699(ins PredRegs:$Pu4, IntRegs:$Rs32), 2700"if (!$Pu4) $Rd32 = asrh($Rs32)", 2701tc_713b66bf, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2702let Inst{7-5} = 0b000; 2703let Inst{13-10} = 0b1010; 2704let Inst{31-21} = 0b01110000001; 2705let isPredicated = 1; 2706let isPredicatedFalse = 1; 2707let hasNewValue = 1; 2708let opNewValue = 0; 2709let BaseOpcode = "A2_asrh"; 2710} 2711def A4_pasrhfnew : HInst< 2712(outs IntRegs:$Rd32), 2713(ins PredRegs:$Pu4, IntRegs:$Rs32), 2714"if (!$Pu4.new) $Rd32 = asrh($Rs32)", 2715tc_86173609, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2716let Inst{7-5} = 0b000; 2717let Inst{13-10} = 0b1011; 2718let Inst{31-21} = 0b01110000001; 2719let isPredicated = 1; 2720let isPredicatedFalse = 1; 2721let hasNewValue = 1; 2722let opNewValue = 0; 2723let isPredicatedNew = 1; 2724let BaseOpcode = "A2_asrh"; 2725} 2726def A4_pasrht : HInst< 2727(outs IntRegs:$Rd32), 2728(ins PredRegs:$Pu4, IntRegs:$Rs32), 2729"if ($Pu4) $Rd32 = asrh($Rs32)", 2730tc_713b66bf, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2731let Inst{7-5} = 0b000; 2732let Inst{13-10} = 0b1000; 2733let Inst{31-21} = 0b01110000001; 2734let isPredicated = 1; 2735let hasNewValue = 1; 2736let opNewValue = 0; 2737let BaseOpcode = "A2_asrh"; 2738} 2739def A4_pasrhtnew : HInst< 2740(outs IntRegs:$Rd32), 2741(ins PredRegs:$Pu4, IntRegs:$Rs32), 2742"if ($Pu4.new) $Rd32 = asrh($Rs32)", 2743tc_86173609, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2744let Inst{7-5} = 0b000; 2745let Inst{13-10} = 0b1001; 2746let Inst{31-21} = 0b01110000001; 2747let isPredicated = 1; 2748let hasNewValue = 1; 2749let opNewValue = 0; 2750let isPredicatedNew = 1; 2751let BaseOpcode = "A2_asrh"; 2752} 2753def A4_psxtbf : HInst< 2754(outs IntRegs:$Rd32), 2755(ins PredRegs:$Pu4, IntRegs:$Rs32), 2756"if (!$Pu4) $Rd32 = sxtb($Rs32)", 2757tc_713b66bf, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2758let Inst{7-5} = 0b000; 2759let Inst{13-10} = 0b1010; 2760let Inst{31-21} = 0b01110000101; 2761let isPredicated = 1; 2762let isPredicatedFalse = 1; 2763let hasNewValue = 1; 2764let opNewValue = 0; 2765let BaseOpcode = "A2_sxtb"; 2766} 2767def A4_psxtbfnew : HInst< 2768(outs IntRegs:$Rd32), 2769(ins PredRegs:$Pu4, IntRegs:$Rs32), 2770"if (!$Pu4.new) $Rd32 = sxtb($Rs32)", 2771tc_86173609, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2772let Inst{7-5} = 0b000; 2773let Inst{13-10} = 0b1011; 2774let Inst{31-21} = 0b01110000101; 2775let isPredicated = 1; 2776let isPredicatedFalse = 1; 2777let hasNewValue = 1; 2778let opNewValue = 0; 2779let isPredicatedNew = 1; 2780let BaseOpcode = "A2_sxtb"; 2781} 2782def A4_psxtbt : HInst< 2783(outs IntRegs:$Rd32), 2784(ins PredRegs:$Pu4, IntRegs:$Rs32), 2785"if ($Pu4) $Rd32 = sxtb($Rs32)", 2786tc_713b66bf, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2787let Inst{7-5} = 0b000; 2788let Inst{13-10} = 0b1000; 2789let Inst{31-21} = 0b01110000101; 2790let isPredicated = 1; 2791let hasNewValue = 1; 2792let opNewValue = 0; 2793let BaseOpcode = "A2_sxtb"; 2794} 2795def A4_psxtbtnew : HInst< 2796(outs IntRegs:$Rd32), 2797(ins PredRegs:$Pu4, IntRegs:$Rs32), 2798"if ($Pu4.new) $Rd32 = sxtb($Rs32)", 2799tc_86173609, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2800let Inst{7-5} = 0b000; 2801let Inst{13-10} = 0b1001; 2802let Inst{31-21} = 0b01110000101; 2803let isPredicated = 1; 2804let hasNewValue = 1; 2805let opNewValue = 0; 2806let isPredicatedNew = 1; 2807let BaseOpcode = "A2_sxtb"; 2808} 2809def A4_psxthf : HInst< 2810(outs IntRegs:$Rd32), 2811(ins PredRegs:$Pu4, IntRegs:$Rs32), 2812"if (!$Pu4) $Rd32 = sxth($Rs32)", 2813tc_713b66bf, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2814let Inst{7-5} = 0b000; 2815let Inst{13-10} = 0b1010; 2816let Inst{31-21} = 0b01110000111; 2817let isPredicated = 1; 2818let isPredicatedFalse = 1; 2819let hasNewValue = 1; 2820let opNewValue = 0; 2821let BaseOpcode = "A2_sxth"; 2822} 2823def A4_psxthfnew : HInst< 2824(outs IntRegs:$Rd32), 2825(ins PredRegs:$Pu4, IntRegs:$Rs32), 2826"if (!$Pu4.new) $Rd32 = sxth($Rs32)", 2827tc_86173609, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2828let Inst{7-5} = 0b000; 2829let Inst{13-10} = 0b1011; 2830let Inst{31-21} = 0b01110000111; 2831let isPredicated = 1; 2832let isPredicatedFalse = 1; 2833let hasNewValue = 1; 2834let opNewValue = 0; 2835let isPredicatedNew = 1; 2836let BaseOpcode = "A2_sxth"; 2837} 2838def A4_psxtht : HInst< 2839(outs IntRegs:$Rd32), 2840(ins PredRegs:$Pu4, IntRegs:$Rs32), 2841"if ($Pu4) $Rd32 = sxth($Rs32)", 2842tc_713b66bf, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2843let Inst{7-5} = 0b000; 2844let Inst{13-10} = 0b1000; 2845let Inst{31-21} = 0b01110000111; 2846let isPredicated = 1; 2847let hasNewValue = 1; 2848let opNewValue = 0; 2849let BaseOpcode = "A2_sxth"; 2850} 2851def A4_psxthtnew : HInst< 2852(outs IntRegs:$Rd32), 2853(ins PredRegs:$Pu4, IntRegs:$Rs32), 2854"if ($Pu4.new) $Rd32 = sxth($Rs32)", 2855tc_86173609, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2856let Inst{7-5} = 0b000; 2857let Inst{13-10} = 0b1001; 2858let Inst{31-21} = 0b01110000111; 2859let isPredicated = 1; 2860let hasNewValue = 1; 2861let opNewValue = 0; 2862let isPredicatedNew = 1; 2863let BaseOpcode = "A2_sxth"; 2864} 2865def A4_pzxtbf : HInst< 2866(outs IntRegs:$Rd32), 2867(ins PredRegs:$Pu4, IntRegs:$Rs32), 2868"if (!$Pu4) $Rd32 = zxtb($Rs32)", 2869tc_713b66bf, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2870let Inst{7-5} = 0b000; 2871let Inst{13-10} = 0b1010; 2872let Inst{31-21} = 0b01110000100; 2873let isPredicated = 1; 2874let isPredicatedFalse = 1; 2875let hasNewValue = 1; 2876let opNewValue = 0; 2877let BaseOpcode = "A2_zxtb"; 2878} 2879def A4_pzxtbfnew : HInst< 2880(outs IntRegs:$Rd32), 2881(ins PredRegs:$Pu4, IntRegs:$Rs32), 2882"if (!$Pu4.new) $Rd32 = zxtb($Rs32)", 2883tc_86173609, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2884let Inst{7-5} = 0b000; 2885let Inst{13-10} = 0b1011; 2886let Inst{31-21} = 0b01110000100; 2887let isPredicated = 1; 2888let isPredicatedFalse = 1; 2889let hasNewValue = 1; 2890let opNewValue = 0; 2891let isPredicatedNew = 1; 2892let BaseOpcode = "A2_zxtb"; 2893} 2894def A4_pzxtbt : HInst< 2895(outs IntRegs:$Rd32), 2896(ins PredRegs:$Pu4, IntRegs:$Rs32), 2897"if ($Pu4) $Rd32 = zxtb($Rs32)", 2898tc_713b66bf, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2899let Inst{7-5} = 0b000; 2900let Inst{13-10} = 0b1000; 2901let Inst{31-21} = 0b01110000100; 2902let isPredicated = 1; 2903let hasNewValue = 1; 2904let opNewValue = 0; 2905let BaseOpcode = "A2_zxtb"; 2906} 2907def A4_pzxtbtnew : HInst< 2908(outs IntRegs:$Rd32), 2909(ins PredRegs:$Pu4, IntRegs:$Rs32), 2910"if ($Pu4.new) $Rd32 = zxtb($Rs32)", 2911tc_86173609, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2912let Inst{7-5} = 0b000; 2913let Inst{13-10} = 0b1001; 2914let Inst{31-21} = 0b01110000100; 2915let isPredicated = 1; 2916let hasNewValue = 1; 2917let opNewValue = 0; 2918let isPredicatedNew = 1; 2919let BaseOpcode = "A2_zxtb"; 2920} 2921def A4_pzxthf : HInst< 2922(outs IntRegs:$Rd32), 2923(ins PredRegs:$Pu4, IntRegs:$Rs32), 2924"if (!$Pu4) $Rd32 = zxth($Rs32)", 2925tc_713b66bf, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2926let Inst{7-5} = 0b000; 2927let Inst{13-10} = 0b1010; 2928let Inst{31-21} = 0b01110000110; 2929let isPredicated = 1; 2930let isPredicatedFalse = 1; 2931let hasNewValue = 1; 2932let opNewValue = 0; 2933let BaseOpcode = "A2_zxth"; 2934} 2935def A4_pzxthfnew : HInst< 2936(outs IntRegs:$Rd32), 2937(ins PredRegs:$Pu4, IntRegs:$Rs32), 2938"if (!$Pu4.new) $Rd32 = zxth($Rs32)", 2939tc_86173609, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2940let Inst{7-5} = 0b000; 2941let Inst{13-10} = 0b1011; 2942let Inst{31-21} = 0b01110000110; 2943let isPredicated = 1; 2944let isPredicatedFalse = 1; 2945let hasNewValue = 1; 2946let opNewValue = 0; 2947let isPredicatedNew = 1; 2948let BaseOpcode = "A2_zxth"; 2949} 2950def A4_pzxtht : HInst< 2951(outs IntRegs:$Rd32), 2952(ins PredRegs:$Pu4, IntRegs:$Rs32), 2953"if ($Pu4) $Rd32 = zxth($Rs32)", 2954tc_713b66bf, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2955let Inst{7-5} = 0b000; 2956let Inst{13-10} = 0b1000; 2957let Inst{31-21} = 0b01110000110; 2958let isPredicated = 1; 2959let hasNewValue = 1; 2960let opNewValue = 0; 2961let BaseOpcode = "A2_zxth"; 2962} 2963def A4_pzxthtnew : HInst< 2964(outs IntRegs:$Rd32), 2965(ins PredRegs:$Pu4, IntRegs:$Rs32), 2966"if ($Pu4.new) $Rd32 = zxth($Rs32)", 2967tc_86173609, TypeALU32_2op>, Enc_fb6577, PredNewRel { 2968let Inst{7-5} = 0b000; 2969let Inst{13-10} = 0b1001; 2970let Inst{31-21} = 0b01110000110; 2971let isPredicated = 1; 2972let hasNewValue = 1; 2973let opNewValue = 0; 2974let isPredicatedNew = 1; 2975let BaseOpcode = "A2_zxth"; 2976} 2977def A4_rcmpeq : HInst< 2978(outs IntRegs:$Rd32), 2979(ins IntRegs:$Rs32, IntRegs:$Rt32), 2980"$Rd32 = cmp.eq($Rs32,$Rt32)", 2981tc_713b66bf, TypeALU32_3op>, Enc_5ab2be, ImmRegRel { 2982let Inst{7-5} = 0b000; 2983let Inst{13-13} = 0b0; 2984let Inst{31-21} = 0b11110011010; 2985let hasNewValue = 1; 2986let opNewValue = 0; 2987let CextOpcode = "A4_rcmpeq"; 2988let InputType = "reg"; 2989let isCommutable = 1; 2990} 2991def A4_rcmpeqi : HInst< 2992(outs IntRegs:$Rd32), 2993(ins IntRegs:$Rs32, s32_0Imm:$Ii), 2994"$Rd32 = cmp.eq($Rs32,#$Ii)", 2995tc_713b66bf, TypeALU32_2op>, Enc_b8c967, ImmRegRel { 2996let Inst{13-13} = 0b1; 2997let Inst{31-21} = 0b01110011010; 2998let hasNewValue = 1; 2999let opNewValue = 0; 3000let CextOpcode = "A4_rcmpeqi"; 3001let InputType = "imm"; 3002let isExtendable = 1; 3003let opExtendable = 2; 3004let isExtentSigned = 1; 3005let opExtentBits = 8; 3006let opExtentAlign = 0; 3007} 3008def A4_rcmpneq : HInst< 3009(outs IntRegs:$Rd32), 3010(ins IntRegs:$Rs32, IntRegs:$Rt32), 3011"$Rd32 = !cmp.eq($Rs32,$Rt32)", 3012tc_713b66bf, TypeALU32_3op>, Enc_5ab2be, ImmRegRel { 3013let Inst{7-5} = 0b000; 3014let Inst{13-13} = 0b0; 3015let Inst{31-21} = 0b11110011011; 3016let hasNewValue = 1; 3017let opNewValue = 0; 3018let CextOpcode = "A4_rcmpneq"; 3019let InputType = "reg"; 3020let isCommutable = 1; 3021} 3022def A4_rcmpneqi : HInst< 3023(outs IntRegs:$Rd32), 3024(ins IntRegs:$Rs32, s32_0Imm:$Ii), 3025"$Rd32 = !cmp.eq($Rs32,#$Ii)", 3026tc_713b66bf, TypeALU32_2op>, Enc_b8c967, ImmRegRel { 3027let Inst{13-13} = 0b1; 3028let Inst{31-21} = 0b01110011011; 3029let hasNewValue = 1; 3030let opNewValue = 0; 3031let CextOpcode = "A4_rcmpeqi"; 3032let InputType = "imm"; 3033let isExtendable = 1; 3034let opExtendable = 2; 3035let isExtentSigned = 1; 3036let opExtentBits = 8; 3037let opExtentAlign = 0; 3038} 3039def A4_round_ri : HInst< 3040(outs IntRegs:$Rd32), 3041(ins IntRegs:$Rs32, u5_0Imm:$Ii), 3042"$Rd32 = round($Rs32,#$Ii)", 3043tc_0dfac0a7, TypeS_2op>, Enc_a05677 { 3044let Inst{7-5} = 0b100; 3045let Inst{13-13} = 0b0; 3046let Inst{31-21} = 0b10001100111; 3047let hasNewValue = 1; 3048let opNewValue = 0; 3049let prefersSlot3 = 1; 3050} 3051def A4_round_ri_sat : HInst< 3052(outs IntRegs:$Rd32), 3053(ins IntRegs:$Rs32, u5_0Imm:$Ii), 3054"$Rd32 = round($Rs32,#$Ii):sat", 3055tc_0dfac0a7, TypeS_2op>, Enc_a05677 { 3056let Inst{7-5} = 0b110; 3057let Inst{13-13} = 0b0; 3058let Inst{31-21} = 0b10001100111; 3059let hasNewValue = 1; 3060let opNewValue = 0; 3061let prefersSlot3 = 1; 3062let Defs = [USR_OVF]; 3063} 3064def A4_round_rr : HInst< 3065(outs IntRegs:$Rd32), 3066(ins IntRegs:$Rs32, IntRegs:$Rt32), 3067"$Rd32 = round($Rs32,$Rt32)", 3068tc_0dfac0a7, TypeS_3op>, Enc_5ab2be { 3069let Inst{7-5} = 0b100; 3070let Inst{13-13} = 0b0; 3071let Inst{31-21} = 0b11000110110; 3072let hasNewValue = 1; 3073let opNewValue = 0; 3074let prefersSlot3 = 1; 3075} 3076def A4_round_rr_sat : HInst< 3077(outs IntRegs:$Rd32), 3078(ins IntRegs:$Rs32, IntRegs:$Rt32), 3079"$Rd32 = round($Rs32,$Rt32):sat", 3080tc_0dfac0a7, TypeS_3op>, Enc_5ab2be { 3081let Inst{7-5} = 0b110; 3082let Inst{13-13} = 0b0; 3083let Inst{31-21} = 0b11000110110; 3084let hasNewValue = 1; 3085let opNewValue = 0; 3086let prefersSlot3 = 1; 3087let Defs = [USR_OVF]; 3088} 3089def A4_subp_c : HInst< 3090(outs DoubleRegs:$Rdd32, PredRegs:$Px4), 3091(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32, PredRegs:$Px4in), 3092"$Rdd32 = sub($Rss32,$Rtt32,$Px4):carry", 3093tc_1d41f8b7, TypeS_3op>, Enc_2b3f60 { 3094let Inst{7-7} = 0b0; 3095let Inst{13-13} = 0b0; 3096let Inst{31-21} = 0b11000010111; 3097let isPredicateLate = 1; 3098let Constraints = "$Px4 = $Px4in"; 3099} 3100def A4_tfrcpp : HInst< 3101(outs DoubleRegs:$Rdd32), 3102(ins CtrRegs64:$Css32), 3103"$Rdd32 = $Css32", 3104tc_7476d766, TypeCR>, Enc_667b39 { 3105let Inst{13-5} = 0b000000000; 3106let Inst{31-21} = 0b01101000000; 3107} 3108def A4_tfrpcp : HInst< 3109(outs CtrRegs64:$Cdd32), 3110(ins DoubleRegs:$Rss32), 3111"$Cdd32 = $Rss32", 3112tc_49fdfd4b, TypeCR>, Enc_0ed752 { 3113let Inst{13-5} = 0b000000000; 3114let Inst{31-21} = 0b01100011001; 3115} 3116def A4_tlbmatch : HInst< 3117(outs PredRegs:$Pd4), 3118(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 3119"$Pd4 = tlbmatch($Rss32,$Rt32)", 3120tc_d68dca5c, TypeALU64>, Enc_03833b { 3121let Inst{7-2} = 0b011000; 3122let Inst{13-13} = 0b1; 3123let Inst{31-21} = 0b11010010000; 3124let isPredicateLate = 1; 3125} 3126def A4_vcmpbeq_any : HInst< 3127(outs PredRegs:$Pd4), 3128(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 3129"$Pd4 = any8(vcmpb.eq($Rss32,$Rtt32))", 3130tc_4a55d03c, TypeALU64>, Enc_fcf7a7 { 3131let Inst{7-2} = 0b000000; 3132let Inst{13-13} = 0b1; 3133let Inst{31-21} = 0b11010010000; 3134} 3135def A4_vcmpbeqi : HInst< 3136(outs PredRegs:$Pd4), 3137(ins DoubleRegs:$Rss32, u8_0Imm:$Ii), 3138"$Pd4 = vcmpb.eq($Rss32,#$Ii)", 3139tc_a1297125, TypeALU64>, Enc_0d8adb { 3140let Inst{4-2} = 0b000; 3141let Inst{13-13} = 0b0; 3142let Inst{31-21} = 0b11011100000; 3143} 3144def A4_vcmpbgt : HInst< 3145(outs PredRegs:$Pd4), 3146(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 3147"$Pd4 = vcmpb.gt($Rss32,$Rtt32)", 3148tc_4a55d03c, TypeALU64>, Enc_fcf7a7 { 3149let Inst{7-2} = 0b010000; 3150let Inst{13-13} = 0b1; 3151let Inst{31-21} = 0b11010010000; 3152} 3153def A4_vcmpbgti : HInst< 3154(outs PredRegs:$Pd4), 3155(ins DoubleRegs:$Rss32, s8_0Imm:$Ii), 3156"$Pd4 = vcmpb.gt($Rss32,#$Ii)", 3157tc_a1297125, TypeALU64>, Enc_0d8adb { 3158let Inst{4-2} = 0b000; 3159let Inst{13-13} = 0b0; 3160let Inst{31-21} = 0b11011100001; 3161} 3162def A4_vcmpbgtui : HInst< 3163(outs PredRegs:$Pd4), 3164(ins DoubleRegs:$Rss32, u7_0Imm:$Ii), 3165"$Pd4 = vcmpb.gtu($Rss32,#$Ii)", 3166tc_a1297125, TypeALU64>, Enc_3680c2 { 3167let Inst{4-2} = 0b000; 3168let Inst{13-12} = 0b00; 3169let Inst{31-21} = 0b11011100010; 3170} 3171def A4_vcmpheqi : HInst< 3172(outs PredRegs:$Pd4), 3173(ins DoubleRegs:$Rss32, s8_0Imm:$Ii), 3174"$Pd4 = vcmph.eq($Rss32,#$Ii)", 3175tc_a1297125, TypeALU64>, Enc_0d8adb { 3176let Inst{4-2} = 0b010; 3177let Inst{13-13} = 0b0; 3178let Inst{31-21} = 0b11011100000; 3179} 3180def A4_vcmphgti : HInst< 3181(outs PredRegs:$Pd4), 3182(ins DoubleRegs:$Rss32, s8_0Imm:$Ii), 3183"$Pd4 = vcmph.gt($Rss32,#$Ii)", 3184tc_a1297125, TypeALU64>, Enc_0d8adb { 3185let Inst{4-2} = 0b010; 3186let Inst{13-13} = 0b0; 3187let Inst{31-21} = 0b11011100001; 3188} 3189def A4_vcmphgtui : HInst< 3190(outs PredRegs:$Pd4), 3191(ins DoubleRegs:$Rss32, u7_0Imm:$Ii), 3192"$Pd4 = vcmph.gtu($Rss32,#$Ii)", 3193tc_a1297125, TypeALU64>, Enc_3680c2 { 3194let Inst{4-2} = 0b010; 3195let Inst{13-12} = 0b00; 3196let Inst{31-21} = 0b11011100010; 3197} 3198def A4_vcmpweqi : HInst< 3199(outs PredRegs:$Pd4), 3200(ins DoubleRegs:$Rss32, s8_0Imm:$Ii), 3201"$Pd4 = vcmpw.eq($Rss32,#$Ii)", 3202tc_a1297125, TypeALU64>, Enc_0d8adb { 3203let Inst{4-2} = 0b100; 3204let Inst{13-13} = 0b0; 3205let Inst{31-21} = 0b11011100000; 3206} 3207def A4_vcmpwgti : HInst< 3208(outs PredRegs:$Pd4), 3209(ins DoubleRegs:$Rss32, s8_0Imm:$Ii), 3210"$Pd4 = vcmpw.gt($Rss32,#$Ii)", 3211tc_a1297125, TypeALU64>, Enc_0d8adb { 3212let Inst{4-2} = 0b100; 3213let Inst{13-13} = 0b0; 3214let Inst{31-21} = 0b11011100001; 3215} 3216def A4_vcmpwgtui : HInst< 3217(outs PredRegs:$Pd4), 3218(ins DoubleRegs:$Rss32, u7_0Imm:$Ii), 3219"$Pd4 = vcmpw.gtu($Rss32,#$Ii)", 3220tc_a1297125, TypeALU64>, Enc_3680c2 { 3221let Inst{4-2} = 0b100; 3222let Inst{13-12} = 0b00; 3223let Inst{31-21} = 0b11011100010; 3224} 3225def A4_vrmaxh : HInst< 3226(outs DoubleRegs:$Rxx32), 3227(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32), 3228"$Rxx32 = vrmaxh($Rss32,$Ru32)", 3229tc_788b1d09, TypeS_3op>, Enc_412ff0 { 3230let Inst{7-5} = 0b001; 3231let Inst{13-13} = 0b0; 3232let Inst{31-21} = 0b11001011001; 3233let prefersSlot3 = 1; 3234let Constraints = "$Rxx32 = $Rxx32in"; 3235} 3236def A4_vrmaxuh : HInst< 3237(outs DoubleRegs:$Rxx32), 3238(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32), 3239"$Rxx32 = vrmaxuh($Rss32,$Ru32)", 3240tc_788b1d09, TypeS_3op>, Enc_412ff0 { 3241let Inst{7-5} = 0b001; 3242let Inst{13-13} = 0b1; 3243let Inst{31-21} = 0b11001011001; 3244let prefersSlot3 = 1; 3245let Constraints = "$Rxx32 = $Rxx32in"; 3246} 3247def A4_vrmaxuw : HInst< 3248(outs DoubleRegs:$Rxx32), 3249(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32), 3250"$Rxx32 = vrmaxuw($Rss32,$Ru32)", 3251tc_788b1d09, TypeS_3op>, Enc_412ff0 { 3252let Inst{7-5} = 0b010; 3253let Inst{13-13} = 0b1; 3254let Inst{31-21} = 0b11001011001; 3255let prefersSlot3 = 1; 3256let Constraints = "$Rxx32 = $Rxx32in"; 3257} 3258def A4_vrmaxw : HInst< 3259(outs DoubleRegs:$Rxx32), 3260(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32), 3261"$Rxx32 = vrmaxw($Rss32,$Ru32)", 3262tc_788b1d09, TypeS_3op>, Enc_412ff0 { 3263let Inst{7-5} = 0b010; 3264let Inst{13-13} = 0b0; 3265let Inst{31-21} = 0b11001011001; 3266let prefersSlot3 = 1; 3267let Constraints = "$Rxx32 = $Rxx32in"; 3268} 3269def A4_vrminh : HInst< 3270(outs DoubleRegs:$Rxx32), 3271(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32), 3272"$Rxx32 = vrminh($Rss32,$Ru32)", 3273tc_788b1d09, TypeS_3op>, Enc_412ff0 { 3274let Inst{7-5} = 0b101; 3275let Inst{13-13} = 0b0; 3276let Inst{31-21} = 0b11001011001; 3277let prefersSlot3 = 1; 3278let Constraints = "$Rxx32 = $Rxx32in"; 3279} 3280def A4_vrminuh : HInst< 3281(outs DoubleRegs:$Rxx32), 3282(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32), 3283"$Rxx32 = vrminuh($Rss32,$Ru32)", 3284tc_788b1d09, TypeS_3op>, Enc_412ff0 { 3285let Inst{7-5} = 0b101; 3286let Inst{13-13} = 0b1; 3287let Inst{31-21} = 0b11001011001; 3288let prefersSlot3 = 1; 3289let Constraints = "$Rxx32 = $Rxx32in"; 3290} 3291def A4_vrminuw : HInst< 3292(outs DoubleRegs:$Rxx32), 3293(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32), 3294"$Rxx32 = vrminuw($Rss32,$Ru32)", 3295tc_788b1d09, TypeS_3op>, Enc_412ff0 { 3296let Inst{7-5} = 0b110; 3297let Inst{13-13} = 0b1; 3298let Inst{31-21} = 0b11001011001; 3299let prefersSlot3 = 1; 3300let Constraints = "$Rxx32 = $Rxx32in"; 3301} 3302def A4_vrminw : HInst< 3303(outs DoubleRegs:$Rxx32), 3304(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32), 3305"$Rxx32 = vrminw($Rss32,$Ru32)", 3306tc_788b1d09, TypeS_3op>, Enc_412ff0 { 3307let Inst{7-5} = 0b110; 3308let Inst{13-13} = 0b0; 3309let Inst{31-21} = 0b11001011001; 3310let prefersSlot3 = 1; 3311let Constraints = "$Rxx32 = $Rxx32in"; 3312} 3313def A5_ACS : HInst< 3314(outs DoubleRegs:$Rxx32, PredRegs:$Pe4), 3315(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 3316"$Rxx32,$Pe4 = vacsh($Rss32,$Rtt32)", 3317tc_38e0bae9, TypeM>, Enc_831a7d, Requires<[HasV55]> { 3318let Inst{7-7} = 0b0; 3319let Inst{13-13} = 0b0; 3320let Inst{31-21} = 0b11101010101; 3321let isPredicateLate = 1; 3322let prefersSlot3 = 1; 3323let Defs = [USR_OVF]; 3324let Constraints = "$Rxx32 = $Rxx32in"; 3325} 3326def A5_vaddhubs : HInst< 3327(outs IntRegs:$Rd32), 3328(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 3329"$Rd32 = vaddhub($Rss32,$Rtt32):sat", 3330tc_0dfac0a7, TypeS_3op>, Enc_d2216a { 3331let Inst{7-5} = 0b001; 3332let Inst{13-13} = 0b0; 3333let Inst{31-21} = 0b11000001010; 3334let hasNewValue = 1; 3335let opNewValue = 0; 3336let prefersSlot3 = 1; 3337let Defs = [USR_OVF]; 3338} 3339def A6_vcmpbeq_notany : HInst< 3340(outs PredRegs:$Pd4), 3341(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 3342"$Pd4 = !any8(vcmpb.eq($Rss32,$Rtt32))", 3343tc_407e96f9, TypeALU64>, Enc_fcf7a7, Requires<[HasV65]> { 3344let Inst{7-2} = 0b001000; 3345let Inst{13-13} = 0b1; 3346let Inst{31-21} = 0b11010010000; 3347} 3348def A6_vminub_RdP : HInst< 3349(outs DoubleRegs:$Rdd32, PredRegs:$Pe4), 3350(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 3351"$Rdd32,$Pe4 = vminub($Rtt32,$Rss32)", 3352tc_7401744f, TypeM>, Enc_d2c7f1, Requires<[HasV62]> { 3353let Inst{7-7} = 0b0; 3354let Inst{13-13} = 0b0; 3355let Inst{31-21} = 0b11101010111; 3356let isPredicateLate = 1; 3357let prefersSlot3 = 1; 3358} 3359def A7_clip : HInst< 3360(outs IntRegs:$Rd32), 3361(ins IntRegs:$Rs32, u5_0Imm:$Ii), 3362"$Rd32 = clip($Rs32,#$Ii)", 3363tc_407e96f9, TypeS_2op>, Enc_a05677, Requires<[HasV67,UseAudio]> { 3364let Inst{7-5} = 0b101; 3365let Inst{13-13} = 0b0; 3366let Inst{31-21} = 0b10001000110; 3367let hasNewValue = 1; 3368let opNewValue = 0; 3369} 3370def A7_croundd_ri : HInst< 3371(outs DoubleRegs:$Rdd32), 3372(ins DoubleRegs:$Rss32, u6_0Imm:$Ii), 3373"$Rdd32 = cround($Rss32,#$Ii)", 3374tc_9b3c0462, TypeS_2op>, Enc_5eac98, Requires<[HasV67,UseAudio]> { 3375let Inst{7-5} = 0b010; 3376let Inst{31-21} = 0b10001100111; 3377let prefersSlot3 = 1; 3378} 3379def A7_croundd_rr : HInst< 3380(outs DoubleRegs:$Rdd32), 3381(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 3382"$Rdd32 = cround($Rss32,$Rt32)", 3383tc_9b3c0462, TypeS_3op>, Enc_927852, Requires<[HasV67,UseAudio]> { 3384let Inst{7-5} = 0b010; 3385let Inst{13-13} = 0b0; 3386let Inst{31-21} = 0b11000110110; 3387let prefersSlot3 = 1; 3388} 3389def A7_vclip : HInst< 3390(outs DoubleRegs:$Rdd32), 3391(ins DoubleRegs:$Rss32, u5_0Imm:$Ii), 3392"$Rdd32 = vclip($Rss32,#$Ii)", 3393tc_407e96f9, TypeS_2op>, Enc_7e5a82, Requires<[HasV67,UseAudio]> { 3394let Inst{7-5} = 0b110; 3395let Inst{13-13} = 0b0; 3396let Inst{31-21} = 0b10001000110; 3397} 3398def C2_all8 : HInst< 3399(outs PredRegs:$Pd4), 3400(ins PredRegs:$Ps4), 3401"$Pd4 = all8($Ps4)", 3402tc_151bf368, TypeCR>, Enc_65d691 { 3403let Inst{13-2} = 0b000000000000; 3404let Inst{31-18} = 0b01101011101000; 3405} 3406def C2_and : HInst< 3407(outs PredRegs:$Pd4), 3408(ins PredRegs:$Pt4, PredRegs:$Ps4), 3409"$Pd4 = and($Pt4,$Ps4)", 3410tc_651cbe02, TypeCR>, Enc_454a26 { 3411let Inst{7-2} = 0b000000; 3412let Inst{13-10} = 0b0000; 3413let Inst{31-18} = 0b01101011000000; 3414} 3415def C2_andn : HInst< 3416(outs PredRegs:$Pd4), 3417(ins PredRegs:$Pt4, PredRegs:$Ps4), 3418"$Pd4 = and($Pt4,!$Ps4)", 3419tc_651cbe02, TypeCR>, Enc_454a26 { 3420let Inst{7-2} = 0b000000; 3421let Inst{13-10} = 0b0000; 3422let Inst{31-18} = 0b01101011011000; 3423} 3424def C2_any8 : HInst< 3425(outs PredRegs:$Pd4), 3426(ins PredRegs:$Ps4), 3427"$Pd4 = any8($Ps4)", 3428tc_151bf368, TypeCR>, Enc_65d691 { 3429let Inst{13-2} = 0b000000000000; 3430let Inst{31-18} = 0b01101011100000; 3431} 3432def C2_bitsclr : HInst< 3433(outs PredRegs:$Pd4), 3434(ins IntRegs:$Rs32, IntRegs:$Rt32), 3435"$Pd4 = bitsclr($Rs32,$Rt32)", 3436tc_4a55d03c, TypeS_3op>, Enc_c2b48e { 3437let Inst{7-2} = 0b000000; 3438let Inst{13-13} = 0b0; 3439let Inst{31-21} = 0b11000111100; 3440} 3441def C2_bitsclri : HInst< 3442(outs PredRegs:$Pd4), 3443(ins IntRegs:$Rs32, u6_0Imm:$Ii), 3444"$Pd4 = bitsclr($Rs32,#$Ii)", 3445tc_a1297125, TypeS_2op>, Enc_5d6c34 { 3446let Inst{7-2} = 0b000000; 3447let Inst{31-21} = 0b10000101100; 3448} 3449def C2_bitsset : HInst< 3450(outs PredRegs:$Pd4), 3451(ins IntRegs:$Rs32, IntRegs:$Rt32), 3452"$Pd4 = bitsset($Rs32,$Rt32)", 3453tc_4a55d03c, TypeS_3op>, Enc_c2b48e { 3454let Inst{7-2} = 0b000000; 3455let Inst{13-13} = 0b0; 3456let Inst{31-21} = 0b11000111010; 3457} 3458def C2_ccombinewf : HInst< 3459(outs DoubleRegs:$Rdd32), 3460(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 3461"if (!$Pu4) $Rdd32 = combine($Rs32,$Rt32)", 3462tc_1c2c7a4a, TypeALU32_3op>, Enc_cb4b4e, PredNewRel { 3463let Inst{7-7} = 0b1; 3464let Inst{13-13} = 0b0; 3465let Inst{31-21} = 0b11111101000; 3466let isPredicated = 1; 3467let isPredicatedFalse = 1; 3468let BaseOpcode = "A2_combinew"; 3469} 3470def C2_ccombinewnewf : HInst< 3471(outs DoubleRegs:$Rdd32), 3472(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 3473"if (!$Pu4.new) $Rdd32 = combine($Rs32,$Rt32)", 3474tc_442395f3, TypeALU32_3op>, Enc_cb4b4e, PredNewRel { 3475let Inst{7-7} = 0b1; 3476let Inst{13-13} = 0b1; 3477let Inst{31-21} = 0b11111101000; 3478let isPredicated = 1; 3479let isPredicatedFalse = 1; 3480let isPredicatedNew = 1; 3481let BaseOpcode = "A2_combinew"; 3482} 3483def C2_ccombinewnewt : HInst< 3484(outs DoubleRegs:$Rdd32), 3485(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 3486"if ($Pu4.new) $Rdd32 = combine($Rs32,$Rt32)", 3487tc_442395f3, TypeALU32_3op>, Enc_cb4b4e, PredNewRel { 3488let Inst{7-7} = 0b0; 3489let Inst{13-13} = 0b1; 3490let Inst{31-21} = 0b11111101000; 3491let isPredicated = 1; 3492let isPredicatedNew = 1; 3493let BaseOpcode = "A2_combinew"; 3494} 3495def C2_ccombinewt : HInst< 3496(outs DoubleRegs:$Rdd32), 3497(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 3498"if ($Pu4) $Rdd32 = combine($Rs32,$Rt32)", 3499tc_1c2c7a4a, TypeALU32_3op>, Enc_cb4b4e, PredNewRel { 3500let Inst{7-7} = 0b0; 3501let Inst{13-13} = 0b0; 3502let Inst{31-21} = 0b11111101000; 3503let isPredicated = 1; 3504let BaseOpcode = "A2_combinew"; 3505} 3506def C2_cmoveif : HInst< 3507(outs IntRegs:$Rd32), 3508(ins PredRegs:$Pu4, s32_0Imm:$Ii), 3509"if (!$Pu4) $Rd32 = #$Ii", 3510tc_713b66bf, TypeALU32_2op>, Enc_cda00a, PredNewRel, ImmRegRel { 3511let Inst{13-13} = 0b0; 3512let Inst{20-20} = 0b0; 3513let Inst{31-23} = 0b011111101; 3514let isPredicated = 1; 3515let isPredicatedFalse = 1; 3516let hasNewValue = 1; 3517let opNewValue = 0; 3518let BaseOpcode = "A2_tfrsi"; 3519let CextOpcode = "A2_tfr"; 3520let InputType = "imm"; 3521let isMoveImm = 1; 3522let isExtendable = 1; 3523let opExtendable = 2; 3524let isExtentSigned = 1; 3525let opExtentBits = 12; 3526let opExtentAlign = 0; 3527} 3528def C2_cmoveit : HInst< 3529(outs IntRegs:$Rd32), 3530(ins PredRegs:$Pu4, s32_0Imm:$Ii), 3531"if ($Pu4) $Rd32 = #$Ii", 3532tc_713b66bf, TypeALU32_2op>, Enc_cda00a, PredNewRel, ImmRegRel { 3533let Inst{13-13} = 0b0; 3534let Inst{20-20} = 0b0; 3535let Inst{31-23} = 0b011111100; 3536let isPredicated = 1; 3537let hasNewValue = 1; 3538let opNewValue = 0; 3539let BaseOpcode = "A2_tfrsi"; 3540let CextOpcode = "A2_tfr"; 3541let InputType = "imm"; 3542let isMoveImm = 1; 3543let isExtendable = 1; 3544let opExtendable = 2; 3545let isExtentSigned = 1; 3546let opExtentBits = 12; 3547let opExtentAlign = 0; 3548} 3549def C2_cmovenewif : HInst< 3550(outs IntRegs:$Rd32), 3551(ins PredRegs:$Pu4, s32_0Imm:$Ii), 3552"if (!$Pu4.new) $Rd32 = #$Ii", 3553tc_86173609, TypeALU32_2op>, Enc_cda00a, PredNewRel, ImmRegRel { 3554let Inst{13-13} = 0b1; 3555let Inst{20-20} = 0b0; 3556let Inst{31-23} = 0b011111101; 3557let isPredicated = 1; 3558let isPredicatedFalse = 1; 3559let hasNewValue = 1; 3560let opNewValue = 0; 3561let isPredicatedNew = 1; 3562let BaseOpcode = "A2_tfrsi"; 3563let CextOpcode = "A2_tfr"; 3564let InputType = "imm"; 3565let isMoveImm = 1; 3566let isExtendable = 1; 3567let opExtendable = 2; 3568let isExtentSigned = 1; 3569let opExtentBits = 12; 3570let opExtentAlign = 0; 3571} 3572def C2_cmovenewit : HInst< 3573(outs IntRegs:$Rd32), 3574(ins PredRegs:$Pu4, s32_0Imm:$Ii), 3575"if ($Pu4.new) $Rd32 = #$Ii", 3576tc_86173609, TypeALU32_2op>, Enc_cda00a, PredNewRel, ImmRegRel { 3577let Inst{13-13} = 0b1; 3578let Inst{20-20} = 0b0; 3579let Inst{31-23} = 0b011111100; 3580let isPredicated = 1; 3581let hasNewValue = 1; 3582let opNewValue = 0; 3583let isPredicatedNew = 1; 3584let BaseOpcode = "A2_tfrsi"; 3585let CextOpcode = "A2_tfr"; 3586let InputType = "imm"; 3587let isMoveImm = 1; 3588let isExtendable = 1; 3589let opExtendable = 2; 3590let isExtentSigned = 1; 3591let opExtentBits = 12; 3592let opExtentAlign = 0; 3593} 3594def C2_cmpeq : HInst< 3595(outs PredRegs:$Pd4), 3596(ins IntRegs:$Rs32, IntRegs:$Rt32), 3597"$Pd4 = cmp.eq($Rs32,$Rt32)", 3598tc_9c52f549, TypeALU32_3op>, Enc_c2b48e, ImmRegRel { 3599let Inst{7-2} = 0b000000; 3600let Inst{13-13} = 0b0; 3601let Inst{31-21} = 0b11110010000; 3602let CextOpcode = "C2_cmpeq"; 3603let InputType = "reg"; 3604let isCommutable = 1; 3605let isCompare = 1; 3606} 3607def C2_cmpeqi : HInst< 3608(outs PredRegs:$Pd4), 3609(ins IntRegs:$Rs32, s32_0Imm:$Ii), 3610"$Pd4 = cmp.eq($Rs32,#$Ii)", 3611tc_d33e5eee, TypeALU32_2op>, Enc_bd0b33, ImmRegRel { 3612let Inst{4-2} = 0b000; 3613let Inst{31-22} = 0b0111010100; 3614let CextOpcode = "C2_cmpeq"; 3615let InputType = "imm"; 3616let isCompare = 1; 3617let isExtendable = 1; 3618let opExtendable = 2; 3619let isExtentSigned = 1; 3620let opExtentBits = 10; 3621let opExtentAlign = 0; 3622} 3623def C2_cmpeqp : HInst< 3624(outs PredRegs:$Pd4), 3625(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 3626"$Pd4 = cmp.eq($Rss32,$Rtt32)", 3627tc_4a55d03c, TypeALU64>, Enc_fcf7a7 { 3628let Inst{7-2} = 0b000000; 3629let Inst{13-13} = 0b0; 3630let Inst{31-21} = 0b11010010100; 3631let isCommutable = 1; 3632let isCompare = 1; 3633} 3634def C2_cmpgei : HInst< 3635(outs PredRegs:$Pd4), 3636(ins IntRegs:$Rs32, s8_0Imm:$Ii), 3637"$Pd4 = cmp.ge($Rs32,#$Ii)", 3638tc_d33e5eee, TypeALU32_2op> { 3639let isCompare = 1; 3640let isPseudo = 1; 3641} 3642def C2_cmpgeui : HInst< 3643(outs PredRegs:$Pd4), 3644(ins IntRegs:$Rs32, u8_0Imm:$Ii), 3645"$Pd4 = cmp.geu($Rs32,#$Ii)", 3646tc_d33e5eee, TypeALU32_2op> { 3647let isCompare = 1; 3648let isPseudo = 1; 3649} 3650def C2_cmpgt : HInst< 3651(outs PredRegs:$Pd4), 3652(ins IntRegs:$Rs32, IntRegs:$Rt32), 3653"$Pd4 = cmp.gt($Rs32,$Rt32)", 3654tc_9c52f549, TypeALU32_3op>, Enc_c2b48e, ImmRegRel { 3655let Inst{7-2} = 0b000000; 3656let Inst{13-13} = 0b0; 3657let Inst{31-21} = 0b11110010010; 3658let CextOpcode = "C2_cmpgt"; 3659let InputType = "reg"; 3660let isCompare = 1; 3661} 3662def C2_cmpgti : HInst< 3663(outs PredRegs:$Pd4), 3664(ins IntRegs:$Rs32, s32_0Imm:$Ii), 3665"$Pd4 = cmp.gt($Rs32,#$Ii)", 3666tc_d33e5eee, TypeALU32_2op>, Enc_bd0b33, ImmRegRel { 3667let Inst{4-2} = 0b000; 3668let Inst{31-22} = 0b0111010101; 3669let CextOpcode = "C2_cmpgt"; 3670let InputType = "imm"; 3671let isCompare = 1; 3672let isExtendable = 1; 3673let opExtendable = 2; 3674let isExtentSigned = 1; 3675let opExtentBits = 10; 3676let opExtentAlign = 0; 3677} 3678def C2_cmpgtp : HInst< 3679(outs PredRegs:$Pd4), 3680(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 3681"$Pd4 = cmp.gt($Rss32,$Rtt32)", 3682tc_4a55d03c, TypeALU64>, Enc_fcf7a7 { 3683let Inst{7-2} = 0b010000; 3684let Inst{13-13} = 0b0; 3685let Inst{31-21} = 0b11010010100; 3686let isCompare = 1; 3687} 3688def C2_cmpgtu : HInst< 3689(outs PredRegs:$Pd4), 3690(ins IntRegs:$Rs32, IntRegs:$Rt32), 3691"$Pd4 = cmp.gtu($Rs32,$Rt32)", 3692tc_9c52f549, TypeALU32_3op>, Enc_c2b48e, ImmRegRel { 3693let Inst{7-2} = 0b000000; 3694let Inst{13-13} = 0b0; 3695let Inst{31-21} = 0b11110010011; 3696let CextOpcode = "C2_cmpgtu"; 3697let InputType = "reg"; 3698let isCompare = 1; 3699} 3700def C2_cmpgtui : HInst< 3701(outs PredRegs:$Pd4), 3702(ins IntRegs:$Rs32, u32_0Imm:$Ii), 3703"$Pd4 = cmp.gtu($Rs32,#$Ii)", 3704tc_d33e5eee, TypeALU32_2op>, Enc_c0cdde, ImmRegRel { 3705let Inst{4-2} = 0b000; 3706let Inst{31-21} = 0b01110101100; 3707let CextOpcode = "C2_cmpgtu"; 3708let InputType = "imm"; 3709let isCompare = 1; 3710let isExtendable = 1; 3711let opExtendable = 2; 3712let isExtentSigned = 0; 3713let opExtentBits = 9; 3714let opExtentAlign = 0; 3715} 3716def C2_cmpgtup : HInst< 3717(outs PredRegs:$Pd4), 3718(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 3719"$Pd4 = cmp.gtu($Rss32,$Rtt32)", 3720tc_4a55d03c, TypeALU64>, Enc_fcf7a7 { 3721let Inst{7-2} = 0b100000; 3722let Inst{13-13} = 0b0; 3723let Inst{31-21} = 0b11010010100; 3724let isCompare = 1; 3725} 3726def C2_cmplt : HInst< 3727(outs PredRegs:$Pd4), 3728(ins IntRegs:$Rs32, IntRegs:$Rt32), 3729"$Pd4 = cmp.lt($Rs32,$Rt32)", 3730tc_d33e5eee, TypeALU32_3op> { 3731let isCompare = 1; 3732let isPseudo = 1; 3733let isCodeGenOnly = 1; 3734} 3735def C2_cmpltu : HInst< 3736(outs PredRegs:$Pd4), 3737(ins IntRegs:$Rs32, IntRegs:$Rt32), 3738"$Pd4 = cmp.ltu($Rs32,$Rt32)", 3739tc_d33e5eee, TypeALU32_3op> { 3740let isCompare = 1; 3741let isPseudo = 1; 3742let isCodeGenOnly = 1; 3743} 3744def C2_mask : HInst< 3745(outs DoubleRegs:$Rdd32), 3746(ins PredRegs:$Pt4), 3747"$Rdd32 = mask($Pt4)", 3748tc_9f6cd987, TypeS_2op>, Enc_78e566 { 3749let Inst{7-5} = 0b000; 3750let Inst{13-10} = 0b0000; 3751let Inst{31-16} = 0b1000011000000000; 3752} 3753def C2_mux : HInst< 3754(outs IntRegs:$Rd32), 3755(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32), 3756"$Rd32 = mux($Pu4,$Rs32,$Rt32)", 3757tc_1c2c7a4a, TypeALU32_3op>, Enc_ea4c54 { 3758let Inst{7-7} = 0b0; 3759let Inst{13-13} = 0b0; 3760let Inst{31-21} = 0b11110100000; 3761let hasNewValue = 1; 3762let opNewValue = 0; 3763let InputType = "reg"; 3764} 3765def C2_muxii : HInst< 3766(outs IntRegs:$Rd32), 3767(ins PredRegs:$Pu4, s32_0Imm:$Ii, s8_0Imm:$II), 3768"$Rd32 = mux($Pu4,#$Ii,#$II)", 3769tc_1c2c7a4a, TypeALU32_2op>, Enc_830e5d { 3770let Inst{31-25} = 0b0111101; 3771let hasNewValue = 1; 3772let opNewValue = 0; 3773let isExtendable = 1; 3774let opExtendable = 2; 3775let isExtentSigned = 1; 3776let opExtentBits = 8; 3777let opExtentAlign = 0; 3778} 3779def C2_muxir : HInst< 3780(outs IntRegs:$Rd32), 3781(ins PredRegs:$Pu4, IntRegs:$Rs32, s32_0Imm:$Ii), 3782"$Rd32 = mux($Pu4,$Rs32,#$Ii)", 3783tc_1c2c7a4a, TypeALU32_2op>, Enc_e38e1f { 3784let Inst{13-13} = 0b0; 3785let Inst{31-23} = 0b011100110; 3786let hasNewValue = 1; 3787let opNewValue = 0; 3788let InputType = "imm"; 3789let isExtendable = 1; 3790let opExtendable = 3; 3791let isExtentSigned = 1; 3792let opExtentBits = 8; 3793let opExtentAlign = 0; 3794} 3795def C2_muxri : HInst< 3796(outs IntRegs:$Rd32), 3797(ins PredRegs:$Pu4, s32_0Imm:$Ii, IntRegs:$Rs32), 3798"$Rd32 = mux($Pu4,#$Ii,$Rs32)", 3799tc_1c2c7a4a, TypeALU32_2op>, Enc_e38e1f { 3800let Inst{13-13} = 0b0; 3801let Inst{31-23} = 0b011100111; 3802let hasNewValue = 1; 3803let opNewValue = 0; 3804let InputType = "imm"; 3805let isExtendable = 1; 3806let opExtendable = 2; 3807let isExtentSigned = 1; 3808let opExtentBits = 8; 3809let opExtentAlign = 0; 3810} 3811def C2_not : HInst< 3812(outs PredRegs:$Pd4), 3813(ins PredRegs:$Ps4), 3814"$Pd4 = not($Ps4)", 3815tc_151bf368, TypeCR>, Enc_65d691 { 3816let Inst{13-2} = 0b000000000000; 3817let Inst{31-18} = 0b01101011110000; 3818} 3819def C2_or : HInst< 3820(outs PredRegs:$Pd4), 3821(ins PredRegs:$Pt4, PredRegs:$Ps4), 3822"$Pd4 = or($Pt4,$Ps4)", 3823tc_651cbe02, TypeCR>, Enc_454a26 { 3824let Inst{7-2} = 0b000000; 3825let Inst{13-10} = 0b0000; 3826let Inst{31-18} = 0b01101011001000; 3827} 3828def C2_orn : HInst< 3829(outs PredRegs:$Pd4), 3830(ins PredRegs:$Pt4, PredRegs:$Ps4), 3831"$Pd4 = or($Pt4,!$Ps4)", 3832tc_651cbe02, TypeCR>, Enc_454a26 { 3833let Inst{7-2} = 0b000000; 3834let Inst{13-10} = 0b0000; 3835let Inst{31-18} = 0b01101011111000; 3836} 3837def C2_pxfer_map : HInst< 3838(outs PredRegs:$Pd4), 3839(ins PredRegs:$Ps4), 3840"$Pd4 = $Ps4", 3841tc_651cbe02, TypeMAPPING> { 3842let isPseudo = 1; 3843let isCodeGenOnly = 1; 3844} 3845def C2_tfrpr : HInst< 3846(outs IntRegs:$Rd32), 3847(ins PredRegs:$Ps4), 3848"$Rd32 = $Ps4", 3849tc_9f6cd987, TypeS_2op>, Enc_f5e933 { 3850let Inst{13-5} = 0b000000000; 3851let Inst{31-18} = 0b10001001010000; 3852let hasNewValue = 1; 3853let opNewValue = 0; 3854} 3855def C2_tfrrp : HInst< 3856(outs PredRegs:$Pd4), 3857(ins IntRegs:$Rs32), 3858"$Pd4 = $Rs32", 3859tc_55b33fda, TypeS_2op>, Enc_48b75f { 3860let Inst{13-2} = 0b000000000000; 3861let Inst{31-21} = 0b10000101010; 3862} 3863def C2_vitpack : HInst< 3864(outs IntRegs:$Rd32), 3865(ins PredRegs:$Ps4, PredRegs:$Pt4), 3866"$Rd32 = vitpack($Ps4,$Pt4)", 3867tc_f34c1c21, TypeS_2op>, Enc_527412 { 3868let Inst{7-5} = 0b000; 3869let Inst{13-10} = 0b0000; 3870let Inst{31-18} = 0b10001001000000; 3871let hasNewValue = 1; 3872let opNewValue = 0; 3873let prefersSlot3 = 1; 3874} 3875def C2_vmux : HInst< 3876(outs DoubleRegs:$Rdd32), 3877(ins PredRegs:$Pu4, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 3878"$Rdd32 = vmux($Pu4,$Rss32,$Rtt32)", 3879tc_6fc5dbea, TypeALU64>, Enc_329361 { 3880let Inst{7-7} = 0b0; 3881let Inst{13-13} = 0b0; 3882let Inst{31-21} = 0b11010001000; 3883} 3884def C2_xor : HInst< 3885(outs PredRegs:$Pd4), 3886(ins PredRegs:$Ps4, PredRegs:$Pt4), 3887"$Pd4 = xor($Ps4,$Pt4)", 3888tc_651cbe02, TypeCR>, Enc_284ebb { 3889let Inst{7-2} = 0b000000; 3890let Inst{13-10} = 0b0000; 3891let Inst{31-18} = 0b01101011010000; 3892} 3893def C4_addipc : HInst< 3894(outs IntRegs:$Rd32), 3895(ins u32_0Imm:$Ii), 3896"$Rd32 = add(pc,#$Ii)", 3897tc_3edca78f, TypeCR>, Enc_607661 { 3898let Inst{6-5} = 0b00; 3899let Inst{13-13} = 0b0; 3900let Inst{31-16} = 0b0110101001001001; 3901let hasNewValue = 1; 3902let opNewValue = 0; 3903let isExtendable = 1; 3904let opExtendable = 1; 3905let isExtentSigned = 0; 3906let opExtentBits = 6; 3907let opExtentAlign = 0; 3908} 3909def C4_and_and : HInst< 3910(outs PredRegs:$Pd4), 3911(ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4), 3912"$Pd4 = and($Ps4,and($Pt4,$Pu4))", 3913tc_a7a13fac, TypeCR>, Enc_9ac432 { 3914let Inst{5-2} = 0b0000; 3915let Inst{13-10} = 0b0000; 3916let Inst{31-18} = 0b01101011000100; 3917} 3918def C4_and_andn : HInst< 3919(outs PredRegs:$Pd4), 3920(ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4), 3921"$Pd4 = and($Ps4,and($Pt4,!$Pu4))", 3922tc_a7a13fac, TypeCR>, Enc_9ac432 { 3923let Inst{5-2} = 0b0000; 3924let Inst{13-10} = 0b0000; 3925let Inst{31-18} = 0b01101011100100; 3926} 3927def C4_and_or : HInst< 3928(outs PredRegs:$Pd4), 3929(ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4), 3930"$Pd4 = and($Ps4,or($Pt4,$Pu4))", 3931tc_a7a13fac, TypeCR>, Enc_9ac432 { 3932let Inst{5-2} = 0b0000; 3933let Inst{13-10} = 0b0000; 3934let Inst{31-18} = 0b01101011001100; 3935} 3936def C4_and_orn : HInst< 3937(outs PredRegs:$Pd4), 3938(ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4), 3939"$Pd4 = and($Ps4,or($Pt4,!$Pu4))", 3940tc_a7a13fac, TypeCR>, Enc_9ac432 { 3941let Inst{5-2} = 0b0000; 3942let Inst{13-10} = 0b0000; 3943let Inst{31-18} = 0b01101011101100; 3944} 3945def C4_cmplte : HInst< 3946(outs PredRegs:$Pd4), 3947(ins IntRegs:$Rs32, IntRegs:$Rt32), 3948"$Pd4 = !cmp.gt($Rs32,$Rt32)", 3949tc_9c52f549, TypeALU32_3op>, Enc_c2b48e, ImmRegRel { 3950let Inst{7-2} = 0b000100; 3951let Inst{13-13} = 0b0; 3952let Inst{31-21} = 0b11110010010; 3953let CextOpcode = "C4_cmplte"; 3954let InputType = "reg"; 3955let isCompare = 1; 3956} 3957def C4_cmpltei : HInst< 3958(outs PredRegs:$Pd4), 3959(ins IntRegs:$Rs32, s32_0Imm:$Ii), 3960"$Pd4 = !cmp.gt($Rs32,#$Ii)", 3961tc_d33e5eee, TypeALU32_2op>, Enc_bd0b33, ImmRegRel { 3962let Inst{4-2} = 0b100; 3963let Inst{31-22} = 0b0111010101; 3964let CextOpcode = "C4_cmplte"; 3965let InputType = "imm"; 3966let isCompare = 1; 3967let isExtendable = 1; 3968let opExtendable = 2; 3969let isExtentSigned = 1; 3970let opExtentBits = 10; 3971let opExtentAlign = 0; 3972} 3973def C4_cmplteu : HInst< 3974(outs PredRegs:$Pd4), 3975(ins IntRegs:$Rs32, IntRegs:$Rt32), 3976"$Pd4 = !cmp.gtu($Rs32,$Rt32)", 3977tc_9c52f549, TypeALU32_3op>, Enc_c2b48e, ImmRegRel { 3978let Inst{7-2} = 0b000100; 3979let Inst{13-13} = 0b0; 3980let Inst{31-21} = 0b11110010011; 3981let CextOpcode = "C4_cmplteu"; 3982let InputType = "reg"; 3983let isCompare = 1; 3984} 3985def C4_cmplteui : HInst< 3986(outs PredRegs:$Pd4), 3987(ins IntRegs:$Rs32, u32_0Imm:$Ii), 3988"$Pd4 = !cmp.gtu($Rs32,#$Ii)", 3989tc_d33e5eee, TypeALU32_2op>, Enc_c0cdde, ImmRegRel { 3990let Inst{4-2} = 0b100; 3991let Inst{31-21} = 0b01110101100; 3992let CextOpcode = "C4_cmplteu"; 3993let InputType = "imm"; 3994let isCompare = 1; 3995let isExtendable = 1; 3996let opExtendable = 2; 3997let isExtentSigned = 0; 3998let opExtentBits = 9; 3999let opExtentAlign = 0; 4000} 4001def C4_cmpneq : HInst< 4002(outs PredRegs:$Pd4), 4003(ins IntRegs:$Rs32, IntRegs:$Rt32), 4004"$Pd4 = !cmp.eq($Rs32,$Rt32)", 4005tc_9c52f549, TypeALU32_3op>, Enc_c2b48e, ImmRegRel { 4006let Inst{7-2} = 0b000100; 4007let Inst{13-13} = 0b0; 4008let Inst{31-21} = 0b11110010000; 4009let CextOpcode = "C4_cmpneq"; 4010let InputType = "reg"; 4011let isCommutable = 1; 4012let isCompare = 1; 4013} 4014def C4_cmpneqi : HInst< 4015(outs PredRegs:$Pd4), 4016(ins IntRegs:$Rs32, s32_0Imm:$Ii), 4017"$Pd4 = !cmp.eq($Rs32,#$Ii)", 4018tc_d33e5eee, TypeALU32_2op>, Enc_bd0b33, ImmRegRel { 4019let Inst{4-2} = 0b100; 4020let Inst{31-22} = 0b0111010100; 4021let CextOpcode = "C4_cmpneq"; 4022let InputType = "imm"; 4023let isCompare = 1; 4024let isExtendable = 1; 4025let opExtendable = 2; 4026let isExtentSigned = 1; 4027let opExtentBits = 10; 4028let opExtentAlign = 0; 4029} 4030def C4_fastcorner9 : HInst< 4031(outs PredRegs:$Pd4), 4032(ins PredRegs:$Ps4, PredRegs:$Pt4), 4033"$Pd4 = fastcorner9($Ps4,$Pt4)", 4034tc_651cbe02, TypeCR>, Enc_284ebb { 4035let Inst{7-2} = 0b100100; 4036let Inst{13-10} = 0b1000; 4037let Inst{31-18} = 0b01101011000000; 4038} 4039def C4_fastcorner9_not : HInst< 4040(outs PredRegs:$Pd4), 4041(ins PredRegs:$Ps4, PredRegs:$Pt4), 4042"$Pd4 = !fastcorner9($Ps4,$Pt4)", 4043tc_651cbe02, TypeCR>, Enc_284ebb { 4044let Inst{7-2} = 0b100100; 4045let Inst{13-10} = 0b1000; 4046let Inst{31-18} = 0b01101011000100; 4047} 4048def C4_nbitsclr : HInst< 4049(outs PredRegs:$Pd4), 4050(ins IntRegs:$Rs32, IntRegs:$Rt32), 4051"$Pd4 = !bitsclr($Rs32,$Rt32)", 4052tc_4a55d03c, TypeS_3op>, Enc_c2b48e { 4053let Inst{7-2} = 0b000000; 4054let Inst{13-13} = 0b0; 4055let Inst{31-21} = 0b11000111101; 4056} 4057def C4_nbitsclri : HInst< 4058(outs PredRegs:$Pd4), 4059(ins IntRegs:$Rs32, u6_0Imm:$Ii), 4060"$Pd4 = !bitsclr($Rs32,#$Ii)", 4061tc_a1297125, TypeS_2op>, Enc_5d6c34 { 4062let Inst{7-2} = 0b000000; 4063let Inst{31-21} = 0b10000101101; 4064} 4065def C4_nbitsset : HInst< 4066(outs PredRegs:$Pd4), 4067(ins IntRegs:$Rs32, IntRegs:$Rt32), 4068"$Pd4 = !bitsset($Rs32,$Rt32)", 4069tc_4a55d03c, TypeS_3op>, Enc_c2b48e { 4070let Inst{7-2} = 0b000000; 4071let Inst{13-13} = 0b0; 4072let Inst{31-21} = 0b11000111011; 4073} 4074def C4_or_and : HInst< 4075(outs PredRegs:$Pd4), 4076(ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4), 4077"$Pd4 = or($Ps4,and($Pt4,$Pu4))", 4078tc_a7a13fac, TypeCR>, Enc_9ac432 { 4079let Inst{5-2} = 0b0000; 4080let Inst{13-10} = 0b0000; 4081let Inst{31-18} = 0b01101011010100; 4082} 4083def C4_or_andn : HInst< 4084(outs PredRegs:$Pd4), 4085(ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4), 4086"$Pd4 = or($Ps4,and($Pt4,!$Pu4))", 4087tc_a7a13fac, TypeCR>, Enc_9ac432 { 4088let Inst{5-2} = 0b0000; 4089let Inst{13-10} = 0b0000; 4090let Inst{31-18} = 0b01101011110100; 4091} 4092def C4_or_or : HInst< 4093(outs PredRegs:$Pd4), 4094(ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4), 4095"$Pd4 = or($Ps4,or($Pt4,$Pu4))", 4096tc_a7a13fac, TypeCR>, Enc_9ac432 { 4097let Inst{5-2} = 0b0000; 4098let Inst{13-10} = 0b0000; 4099let Inst{31-18} = 0b01101011011100; 4100} 4101def C4_or_orn : HInst< 4102(outs PredRegs:$Pd4), 4103(ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4), 4104"$Pd4 = or($Ps4,or($Pt4,!$Pu4))", 4105tc_a7a13fac, TypeCR>, Enc_9ac432 { 4106let Inst{5-2} = 0b0000; 4107let Inst{13-10} = 0b0000; 4108let Inst{31-18} = 0b01101011111100; 4109} 4110def F2_conv_d2df : HInst< 4111(outs DoubleRegs:$Rdd32), 4112(ins DoubleRegs:$Rss32), 4113"$Rdd32 = convert_d2df($Rss32)", 4114tc_9783714b, TypeS_2op>, Enc_b9c5fb { 4115let Inst{13-5} = 0b000000011; 4116let Inst{31-21} = 0b10000000111; 4117let isFP = 1; 4118let Uses = [USR]; 4119} 4120def F2_conv_d2sf : HInst< 4121(outs IntRegs:$Rd32), 4122(ins DoubleRegs:$Rss32), 4123"$Rd32 = convert_d2sf($Rss32)", 4124tc_9783714b, TypeS_2op>, Enc_90cd8b { 4125let Inst{13-5} = 0b000000001; 4126let Inst{31-21} = 0b10001000010; 4127let hasNewValue = 1; 4128let opNewValue = 0; 4129let isFP = 1; 4130let Uses = [USR]; 4131} 4132def F2_conv_df2d : HInst< 4133(outs DoubleRegs:$Rdd32), 4134(ins DoubleRegs:$Rss32), 4135"$Rdd32 = convert_df2d($Rss32)", 4136tc_9783714b, TypeS_2op>, Enc_b9c5fb { 4137let Inst{13-5} = 0b000000000; 4138let Inst{31-21} = 0b10000000111; 4139let isFP = 1; 4140let Uses = [USR]; 4141} 4142def F2_conv_df2d_chop : HInst< 4143(outs DoubleRegs:$Rdd32), 4144(ins DoubleRegs:$Rss32), 4145"$Rdd32 = convert_df2d($Rss32):chop", 4146tc_9783714b, TypeS_2op>, Enc_b9c5fb { 4147let Inst{13-5} = 0b000000110; 4148let Inst{31-21} = 0b10000000111; 4149let isFP = 1; 4150let Uses = [USR]; 4151} 4152def F2_conv_df2sf : HInst< 4153(outs IntRegs:$Rd32), 4154(ins DoubleRegs:$Rss32), 4155"$Rd32 = convert_df2sf($Rss32)", 4156tc_9783714b, TypeS_2op>, Enc_90cd8b { 4157let Inst{13-5} = 0b000000001; 4158let Inst{31-21} = 0b10001000000; 4159let hasNewValue = 1; 4160let opNewValue = 0; 4161let isFP = 1; 4162let Uses = [USR]; 4163} 4164def F2_conv_df2ud : HInst< 4165(outs DoubleRegs:$Rdd32), 4166(ins DoubleRegs:$Rss32), 4167"$Rdd32 = convert_df2ud($Rss32)", 4168tc_9783714b, TypeS_2op>, Enc_b9c5fb { 4169let Inst{13-5} = 0b000000001; 4170let Inst{31-21} = 0b10000000111; 4171let isFP = 1; 4172let Uses = [USR]; 4173} 4174def F2_conv_df2ud_chop : HInst< 4175(outs DoubleRegs:$Rdd32), 4176(ins DoubleRegs:$Rss32), 4177"$Rdd32 = convert_df2ud($Rss32):chop", 4178tc_9783714b, TypeS_2op>, Enc_b9c5fb { 4179let Inst{13-5} = 0b000000111; 4180let Inst{31-21} = 0b10000000111; 4181let isFP = 1; 4182let Uses = [USR]; 4183} 4184def F2_conv_df2uw : HInst< 4185(outs IntRegs:$Rd32), 4186(ins DoubleRegs:$Rss32), 4187"$Rd32 = convert_df2uw($Rss32)", 4188tc_9783714b, TypeS_2op>, Enc_90cd8b { 4189let Inst{13-5} = 0b000000001; 4190let Inst{31-21} = 0b10001000011; 4191let hasNewValue = 1; 4192let opNewValue = 0; 4193let isFP = 1; 4194let Uses = [USR]; 4195} 4196def F2_conv_df2uw_chop : HInst< 4197(outs IntRegs:$Rd32), 4198(ins DoubleRegs:$Rss32), 4199"$Rd32 = convert_df2uw($Rss32):chop", 4200tc_9783714b, TypeS_2op>, Enc_90cd8b { 4201let Inst{13-5} = 0b000000001; 4202let Inst{31-21} = 0b10001000101; 4203let hasNewValue = 1; 4204let opNewValue = 0; 4205let isFP = 1; 4206let Uses = [USR]; 4207} 4208def F2_conv_df2w : HInst< 4209(outs IntRegs:$Rd32), 4210(ins DoubleRegs:$Rss32), 4211"$Rd32 = convert_df2w($Rss32)", 4212tc_9783714b, TypeS_2op>, Enc_90cd8b { 4213let Inst{13-5} = 0b000000001; 4214let Inst{31-21} = 0b10001000100; 4215let hasNewValue = 1; 4216let opNewValue = 0; 4217let isFP = 1; 4218let Uses = [USR]; 4219} 4220def F2_conv_df2w_chop : HInst< 4221(outs IntRegs:$Rd32), 4222(ins DoubleRegs:$Rss32), 4223"$Rd32 = convert_df2w($Rss32):chop", 4224tc_9783714b, TypeS_2op>, Enc_90cd8b { 4225let Inst{13-5} = 0b000000001; 4226let Inst{31-21} = 0b10001000111; 4227let hasNewValue = 1; 4228let opNewValue = 0; 4229let isFP = 1; 4230let Uses = [USR]; 4231} 4232def F2_conv_sf2d : HInst< 4233(outs DoubleRegs:$Rdd32), 4234(ins IntRegs:$Rs32), 4235"$Rdd32 = convert_sf2d($Rs32)", 4236tc_9783714b, TypeS_2op>, Enc_3a3d62 { 4237let Inst{13-5} = 0b000000100; 4238let Inst{31-21} = 0b10000100100; 4239let isFP = 1; 4240let Uses = [USR]; 4241} 4242def F2_conv_sf2d_chop : HInst< 4243(outs DoubleRegs:$Rdd32), 4244(ins IntRegs:$Rs32), 4245"$Rdd32 = convert_sf2d($Rs32):chop", 4246tc_9783714b, TypeS_2op>, Enc_3a3d62 { 4247let Inst{13-5} = 0b000000110; 4248let Inst{31-21} = 0b10000100100; 4249let isFP = 1; 4250let Uses = [USR]; 4251} 4252def F2_conv_sf2df : HInst< 4253(outs DoubleRegs:$Rdd32), 4254(ins IntRegs:$Rs32), 4255"$Rdd32 = convert_sf2df($Rs32)", 4256tc_9783714b, TypeS_2op>, Enc_3a3d62 { 4257let Inst{13-5} = 0b000000000; 4258let Inst{31-21} = 0b10000100100; 4259let isFP = 1; 4260let Uses = [USR]; 4261} 4262def F2_conv_sf2ud : HInst< 4263(outs DoubleRegs:$Rdd32), 4264(ins IntRegs:$Rs32), 4265"$Rdd32 = convert_sf2ud($Rs32)", 4266tc_9783714b, TypeS_2op>, Enc_3a3d62 { 4267let Inst{13-5} = 0b000000011; 4268let Inst{31-21} = 0b10000100100; 4269let isFP = 1; 4270let Uses = [USR]; 4271} 4272def F2_conv_sf2ud_chop : HInst< 4273(outs DoubleRegs:$Rdd32), 4274(ins IntRegs:$Rs32), 4275"$Rdd32 = convert_sf2ud($Rs32):chop", 4276tc_9783714b, TypeS_2op>, Enc_3a3d62 { 4277let Inst{13-5} = 0b000000101; 4278let Inst{31-21} = 0b10000100100; 4279let isFP = 1; 4280let Uses = [USR]; 4281} 4282def F2_conv_sf2uw : HInst< 4283(outs IntRegs:$Rd32), 4284(ins IntRegs:$Rs32), 4285"$Rd32 = convert_sf2uw($Rs32)", 4286tc_9783714b, TypeS_2op>, Enc_5e2823 { 4287let Inst{13-5} = 0b000000000; 4288let Inst{31-21} = 0b10001011011; 4289let hasNewValue = 1; 4290let opNewValue = 0; 4291let isFP = 1; 4292let Uses = [USR]; 4293} 4294def F2_conv_sf2uw_chop : HInst< 4295(outs IntRegs:$Rd32), 4296(ins IntRegs:$Rs32), 4297"$Rd32 = convert_sf2uw($Rs32):chop", 4298tc_9783714b, TypeS_2op>, Enc_5e2823 { 4299let Inst{13-5} = 0b000000001; 4300let Inst{31-21} = 0b10001011011; 4301let hasNewValue = 1; 4302let opNewValue = 0; 4303let isFP = 1; 4304let Uses = [USR]; 4305} 4306def F2_conv_sf2w : HInst< 4307(outs IntRegs:$Rd32), 4308(ins IntRegs:$Rs32), 4309"$Rd32 = convert_sf2w($Rs32)", 4310tc_9783714b, TypeS_2op>, Enc_5e2823 { 4311let Inst{13-5} = 0b000000000; 4312let Inst{31-21} = 0b10001011100; 4313let hasNewValue = 1; 4314let opNewValue = 0; 4315let isFP = 1; 4316let Uses = [USR]; 4317} 4318def F2_conv_sf2w_chop : HInst< 4319(outs IntRegs:$Rd32), 4320(ins IntRegs:$Rs32), 4321"$Rd32 = convert_sf2w($Rs32):chop", 4322tc_9783714b, TypeS_2op>, Enc_5e2823 { 4323let Inst{13-5} = 0b000000001; 4324let Inst{31-21} = 0b10001011100; 4325let hasNewValue = 1; 4326let opNewValue = 0; 4327let isFP = 1; 4328let Uses = [USR]; 4329} 4330def F2_conv_ud2df : HInst< 4331(outs DoubleRegs:$Rdd32), 4332(ins DoubleRegs:$Rss32), 4333"$Rdd32 = convert_ud2df($Rss32)", 4334tc_9783714b, TypeS_2op>, Enc_b9c5fb { 4335let Inst{13-5} = 0b000000010; 4336let Inst{31-21} = 0b10000000111; 4337let isFP = 1; 4338let Uses = [USR]; 4339} 4340def F2_conv_ud2sf : HInst< 4341(outs IntRegs:$Rd32), 4342(ins DoubleRegs:$Rss32), 4343"$Rd32 = convert_ud2sf($Rss32)", 4344tc_9783714b, TypeS_2op>, Enc_90cd8b { 4345let Inst{13-5} = 0b000000001; 4346let Inst{31-21} = 0b10001000001; 4347let hasNewValue = 1; 4348let opNewValue = 0; 4349let isFP = 1; 4350let Uses = [USR]; 4351} 4352def F2_conv_uw2df : HInst< 4353(outs DoubleRegs:$Rdd32), 4354(ins IntRegs:$Rs32), 4355"$Rdd32 = convert_uw2df($Rs32)", 4356tc_9783714b, TypeS_2op>, Enc_3a3d62 { 4357let Inst{13-5} = 0b000000001; 4358let Inst{31-21} = 0b10000100100; 4359let isFP = 1; 4360let Uses = [USR]; 4361} 4362def F2_conv_uw2sf : HInst< 4363(outs IntRegs:$Rd32), 4364(ins IntRegs:$Rs32), 4365"$Rd32 = convert_uw2sf($Rs32)", 4366tc_9783714b, TypeS_2op>, Enc_5e2823 { 4367let Inst{13-5} = 0b000000000; 4368let Inst{31-21} = 0b10001011001; 4369let hasNewValue = 1; 4370let opNewValue = 0; 4371let isFP = 1; 4372let Uses = [USR]; 4373} 4374def F2_conv_w2df : HInst< 4375(outs DoubleRegs:$Rdd32), 4376(ins IntRegs:$Rs32), 4377"$Rdd32 = convert_w2df($Rs32)", 4378tc_9783714b, TypeS_2op>, Enc_3a3d62 { 4379let Inst{13-5} = 0b000000010; 4380let Inst{31-21} = 0b10000100100; 4381let isFP = 1; 4382let Uses = [USR]; 4383} 4384def F2_conv_w2sf : HInst< 4385(outs IntRegs:$Rd32), 4386(ins IntRegs:$Rs32), 4387"$Rd32 = convert_w2sf($Rs32)", 4388tc_9783714b, TypeS_2op>, Enc_5e2823 { 4389let Inst{13-5} = 0b000000000; 4390let Inst{31-21} = 0b10001011010; 4391let hasNewValue = 1; 4392let opNewValue = 0; 4393let isFP = 1; 4394let Uses = [USR]; 4395} 4396def F2_dfadd : HInst< 4397(outs DoubleRegs:$Rdd32), 4398(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 4399"$Rdd32 = dfadd($Rss32,$Rtt32)", 4400tc_f0e8e832, TypeM>, Enc_a56825, Requires<[HasV66]> { 4401let Inst{7-5} = 0b011; 4402let Inst{13-13} = 0b0; 4403let Inst{31-21} = 0b11101000000; 4404let isFP = 1; 4405let Uses = [USR]; 4406} 4407def F2_dfclass : HInst< 4408(outs PredRegs:$Pd4), 4409(ins DoubleRegs:$Rss32, u5_0Imm:$Ii), 4410"$Pd4 = dfclass($Rss32,#$Ii)", 4411tc_a1297125, TypeALU64>, Enc_1f19b5 { 4412let Inst{4-2} = 0b100; 4413let Inst{13-10} = 0b0000; 4414let Inst{31-21} = 0b11011100100; 4415let isFP = 1; 4416let Uses = [USR]; 4417} 4418def F2_dfcmpeq : HInst< 4419(outs PredRegs:$Pd4), 4420(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 4421"$Pd4 = dfcmp.eq($Rss32,$Rtt32)", 4422tc_4a55d03c, TypeALU64>, Enc_fcf7a7 { 4423let Inst{7-2} = 0b000000; 4424let Inst{13-13} = 0b0; 4425let Inst{31-21} = 0b11010010111; 4426let isFP = 1; 4427let Uses = [USR]; 4428let isCompare = 1; 4429} 4430def F2_dfcmpge : HInst< 4431(outs PredRegs:$Pd4), 4432(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 4433"$Pd4 = dfcmp.ge($Rss32,$Rtt32)", 4434tc_4a55d03c, TypeALU64>, Enc_fcf7a7 { 4435let Inst{7-2} = 0b010000; 4436let Inst{13-13} = 0b0; 4437let Inst{31-21} = 0b11010010111; 4438let isFP = 1; 4439let Uses = [USR]; 4440let isCompare = 1; 4441} 4442def F2_dfcmpgt : HInst< 4443(outs PredRegs:$Pd4), 4444(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 4445"$Pd4 = dfcmp.gt($Rss32,$Rtt32)", 4446tc_4a55d03c, TypeALU64>, Enc_fcf7a7 { 4447let Inst{7-2} = 0b001000; 4448let Inst{13-13} = 0b0; 4449let Inst{31-21} = 0b11010010111; 4450let isFP = 1; 4451let Uses = [USR]; 4452let isCompare = 1; 4453} 4454def F2_dfcmpuo : HInst< 4455(outs PredRegs:$Pd4), 4456(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 4457"$Pd4 = dfcmp.uo($Rss32,$Rtt32)", 4458tc_4a55d03c, TypeALU64>, Enc_fcf7a7 { 4459let Inst{7-2} = 0b011000; 4460let Inst{13-13} = 0b0; 4461let Inst{31-21} = 0b11010010111; 4462let isFP = 1; 4463let Uses = [USR]; 4464let isCompare = 1; 4465} 4466def F2_dfimm_n : HInst< 4467(outs DoubleRegs:$Rdd32), 4468(ins u10_0Imm:$Ii), 4469"$Rdd32 = dfmake(#$Ii):neg", 4470tc_65279839, TypeALU64>, Enc_e6c957 { 4471let Inst{20-16} = 0b00000; 4472let Inst{31-22} = 0b1101100101; 4473let prefersSlot3 = 1; 4474} 4475def F2_dfimm_p : HInst< 4476(outs DoubleRegs:$Rdd32), 4477(ins u10_0Imm:$Ii), 4478"$Rdd32 = dfmake(#$Ii):pos", 4479tc_65279839, TypeALU64>, Enc_e6c957 { 4480let Inst{20-16} = 0b00000; 4481let Inst{31-22} = 0b1101100100; 4482let prefersSlot3 = 1; 4483} 4484def F2_dfmax : HInst< 4485(outs DoubleRegs:$Rdd32), 4486(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 4487"$Rdd32 = dfmax($Rss32,$Rtt32)", 4488tc_9b3c0462, TypeM>, Enc_a56825, Requires<[HasV67]> { 4489let Inst{7-5} = 0b011; 4490let Inst{13-13} = 0b0; 4491let Inst{31-21} = 0b11101000001; 4492let isFP = 1; 4493let prefersSlot3 = 1; 4494let Uses = [USR]; 4495} 4496def F2_dfmin : HInst< 4497(outs DoubleRegs:$Rdd32), 4498(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 4499"$Rdd32 = dfmin($Rss32,$Rtt32)", 4500tc_9b3c0462, TypeM>, Enc_a56825, Requires<[HasV67]> { 4501let Inst{7-5} = 0b011; 4502let Inst{13-13} = 0b0; 4503let Inst{31-21} = 0b11101000110; 4504let isFP = 1; 4505let prefersSlot3 = 1; 4506let Uses = [USR]; 4507} 4508def F2_dfmpyfix : HInst< 4509(outs DoubleRegs:$Rdd32), 4510(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 4511"$Rdd32 = dfmpyfix($Rss32,$Rtt32)", 4512tc_f0e8e832, TypeM>, Enc_a56825, Requires<[HasV67]> { 4513let Inst{7-5} = 0b011; 4514let Inst{13-13} = 0b0; 4515let Inst{31-21} = 0b11101000010; 4516let isFP = 1; 4517let Uses = [USR]; 4518} 4519def F2_dfmpyhh : HInst< 4520(outs DoubleRegs:$Rxx32), 4521(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 4522"$Rxx32 += dfmpyhh($Rss32,$Rtt32)", 4523tc_0a195f2c, TypeM>, Enc_88c16c, Requires<[HasV67]> { 4524let Inst{7-5} = 0b011; 4525let Inst{13-13} = 0b0; 4526let Inst{31-21} = 0b11101010100; 4527let isFP = 1; 4528let Uses = [USR]; 4529let Constraints = "$Rxx32 = $Rxx32in"; 4530} 4531def F2_dfmpylh : HInst< 4532(outs DoubleRegs:$Rxx32), 4533(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 4534"$Rxx32 += dfmpylh($Rss32,$Rtt32)", 4535tc_01e1be3b, TypeM>, Enc_88c16c, Requires<[HasV67]> { 4536let Inst{7-5} = 0b011; 4537let Inst{13-13} = 0b0; 4538let Inst{31-21} = 0b11101010000; 4539let prefersSlot3 = 1; 4540let Constraints = "$Rxx32 = $Rxx32in"; 4541} 4542def F2_dfmpyll : HInst< 4543(outs DoubleRegs:$Rdd32), 4544(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 4545"$Rdd32 = dfmpyll($Rss32,$Rtt32)", 4546tc_556f6577, TypeM>, Enc_a56825, Requires<[HasV67]> { 4547let Inst{7-5} = 0b011; 4548let Inst{13-13} = 0b0; 4549let Inst{31-21} = 0b11101000101; 4550let prefersSlot3 = 1; 4551} 4552def F2_dfsub : HInst< 4553(outs DoubleRegs:$Rdd32), 4554(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 4555"$Rdd32 = dfsub($Rss32,$Rtt32)", 4556tc_f0e8e832, TypeM>, Enc_a56825, Requires<[HasV66]> { 4557let Inst{7-5} = 0b011; 4558let Inst{13-13} = 0b0; 4559let Inst{31-21} = 0b11101000100; 4560let isFP = 1; 4561let Uses = [USR]; 4562} 4563def F2_sfadd : HInst< 4564(outs IntRegs:$Rd32), 4565(ins IntRegs:$Rs32, IntRegs:$Rt32), 4566"$Rd32 = sfadd($Rs32,$Rt32)", 4567tc_02fe1c65, TypeM>, Enc_5ab2be { 4568let Inst{7-5} = 0b000; 4569let Inst{13-13} = 0b0; 4570let Inst{31-21} = 0b11101011000; 4571let hasNewValue = 1; 4572let opNewValue = 0; 4573let isFP = 1; 4574let Uses = [USR]; 4575let isCommutable = 1; 4576} 4577def F2_sfclass : HInst< 4578(outs PredRegs:$Pd4), 4579(ins IntRegs:$Rs32, u5_0Imm:$Ii), 4580"$Pd4 = sfclass($Rs32,#$Ii)", 4581tc_a1297125, TypeS_2op>, Enc_83ee64 { 4582let Inst{7-2} = 0b000000; 4583let Inst{13-13} = 0b0; 4584let Inst{31-21} = 0b10000101111; 4585let isFP = 1; 4586let Uses = [USR]; 4587} 4588def F2_sfcmpeq : HInst< 4589(outs PredRegs:$Pd4), 4590(ins IntRegs:$Rs32, IntRegs:$Rt32), 4591"$Pd4 = sfcmp.eq($Rs32,$Rt32)", 4592tc_4a55d03c, TypeS_3op>, Enc_c2b48e { 4593let Inst{7-2} = 0b011000; 4594let Inst{13-13} = 0b0; 4595let Inst{31-21} = 0b11000111111; 4596let isFP = 1; 4597let Uses = [USR]; 4598let isCompare = 1; 4599} 4600def F2_sfcmpge : HInst< 4601(outs PredRegs:$Pd4), 4602(ins IntRegs:$Rs32, IntRegs:$Rt32), 4603"$Pd4 = sfcmp.ge($Rs32,$Rt32)", 4604tc_4a55d03c, TypeS_3op>, Enc_c2b48e { 4605let Inst{7-2} = 0b000000; 4606let Inst{13-13} = 0b0; 4607let Inst{31-21} = 0b11000111111; 4608let isFP = 1; 4609let Uses = [USR]; 4610let isCompare = 1; 4611} 4612def F2_sfcmpgt : HInst< 4613(outs PredRegs:$Pd4), 4614(ins IntRegs:$Rs32, IntRegs:$Rt32), 4615"$Pd4 = sfcmp.gt($Rs32,$Rt32)", 4616tc_4a55d03c, TypeS_3op>, Enc_c2b48e { 4617let Inst{7-2} = 0b100000; 4618let Inst{13-13} = 0b0; 4619let Inst{31-21} = 0b11000111111; 4620let isFP = 1; 4621let Uses = [USR]; 4622let isCompare = 1; 4623} 4624def F2_sfcmpuo : HInst< 4625(outs PredRegs:$Pd4), 4626(ins IntRegs:$Rs32, IntRegs:$Rt32), 4627"$Pd4 = sfcmp.uo($Rs32,$Rt32)", 4628tc_4a55d03c, TypeS_3op>, Enc_c2b48e { 4629let Inst{7-2} = 0b001000; 4630let Inst{13-13} = 0b0; 4631let Inst{31-21} = 0b11000111111; 4632let isFP = 1; 4633let Uses = [USR]; 4634let isCompare = 1; 4635} 4636def F2_sffixupd : HInst< 4637(outs IntRegs:$Rd32), 4638(ins IntRegs:$Rs32, IntRegs:$Rt32), 4639"$Rd32 = sffixupd($Rs32,$Rt32)", 4640tc_02fe1c65, TypeM>, Enc_5ab2be { 4641let Inst{7-5} = 0b001; 4642let Inst{13-13} = 0b0; 4643let Inst{31-21} = 0b11101011110; 4644let hasNewValue = 1; 4645let opNewValue = 0; 4646let isFP = 1; 4647} 4648def F2_sffixupn : HInst< 4649(outs IntRegs:$Rd32), 4650(ins IntRegs:$Rs32, IntRegs:$Rt32), 4651"$Rd32 = sffixupn($Rs32,$Rt32)", 4652tc_02fe1c65, TypeM>, Enc_5ab2be { 4653let Inst{7-5} = 0b000; 4654let Inst{13-13} = 0b0; 4655let Inst{31-21} = 0b11101011110; 4656let hasNewValue = 1; 4657let opNewValue = 0; 4658let isFP = 1; 4659} 4660def F2_sffixupr : HInst< 4661(outs IntRegs:$Rd32), 4662(ins IntRegs:$Rs32), 4663"$Rd32 = sffixupr($Rs32)", 4664tc_9783714b, TypeS_2op>, Enc_5e2823 { 4665let Inst{13-5} = 0b000000000; 4666let Inst{31-21} = 0b10001011101; 4667let hasNewValue = 1; 4668let opNewValue = 0; 4669let isFP = 1; 4670} 4671def F2_sffma : HInst< 4672(outs IntRegs:$Rx32), 4673(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 4674"$Rx32 += sfmpy($Rs32,$Rt32)", 4675tc_9e72dc89, TypeM>, Enc_2ae154 { 4676let Inst{7-5} = 0b100; 4677let Inst{13-13} = 0b0; 4678let Inst{31-21} = 0b11101111000; 4679let hasNewValue = 1; 4680let opNewValue = 0; 4681let isFP = 1; 4682let Uses = [USR]; 4683let Constraints = "$Rx32 = $Rx32in"; 4684} 4685def F2_sffma_lib : HInst< 4686(outs IntRegs:$Rx32), 4687(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 4688"$Rx32 += sfmpy($Rs32,$Rt32):lib", 4689tc_9e72dc89, TypeM>, Enc_2ae154 { 4690let Inst{7-5} = 0b110; 4691let Inst{13-13} = 0b0; 4692let Inst{31-21} = 0b11101111000; 4693let hasNewValue = 1; 4694let opNewValue = 0; 4695let isFP = 1; 4696let Uses = [USR]; 4697let Constraints = "$Rx32 = $Rx32in"; 4698} 4699def F2_sffma_sc : HInst< 4700(outs IntRegs:$Rx32), 4701(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32, PredRegs:$Pu4), 4702"$Rx32 += sfmpy($Rs32,$Rt32,$Pu4):scale", 4703tc_9edb7c77, TypeM>, Enc_437f33 { 4704let Inst{7-7} = 0b1; 4705let Inst{13-13} = 0b0; 4706let Inst{31-21} = 0b11101111011; 4707let hasNewValue = 1; 4708let opNewValue = 0; 4709let isFP = 1; 4710let Uses = [USR]; 4711let Constraints = "$Rx32 = $Rx32in"; 4712} 4713def F2_sffms : HInst< 4714(outs IntRegs:$Rx32), 4715(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 4716"$Rx32 -= sfmpy($Rs32,$Rt32)", 4717tc_9e72dc89, TypeM>, Enc_2ae154 { 4718let Inst{7-5} = 0b101; 4719let Inst{13-13} = 0b0; 4720let Inst{31-21} = 0b11101111000; 4721let hasNewValue = 1; 4722let opNewValue = 0; 4723let isFP = 1; 4724let Uses = [USR]; 4725let Constraints = "$Rx32 = $Rx32in"; 4726} 4727def F2_sffms_lib : HInst< 4728(outs IntRegs:$Rx32), 4729(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 4730"$Rx32 -= sfmpy($Rs32,$Rt32):lib", 4731tc_9e72dc89, TypeM>, Enc_2ae154 { 4732let Inst{7-5} = 0b111; 4733let Inst{13-13} = 0b0; 4734let Inst{31-21} = 0b11101111000; 4735let hasNewValue = 1; 4736let opNewValue = 0; 4737let isFP = 1; 4738let Uses = [USR]; 4739let Constraints = "$Rx32 = $Rx32in"; 4740} 4741def F2_sfimm_n : HInst< 4742(outs IntRegs:$Rd32), 4743(ins u10_0Imm:$Ii), 4744"$Rd32 = sfmake(#$Ii):neg", 4745tc_65279839, TypeALU64>, Enc_6c9440 { 4746let Inst{20-16} = 0b00000; 4747let Inst{31-22} = 0b1101011001; 4748let hasNewValue = 1; 4749let opNewValue = 0; 4750let prefersSlot3 = 1; 4751} 4752def F2_sfimm_p : HInst< 4753(outs IntRegs:$Rd32), 4754(ins u10_0Imm:$Ii), 4755"$Rd32 = sfmake(#$Ii):pos", 4756tc_65279839, TypeALU64>, Enc_6c9440 { 4757let Inst{20-16} = 0b00000; 4758let Inst{31-22} = 0b1101011000; 4759let hasNewValue = 1; 4760let opNewValue = 0; 4761let prefersSlot3 = 1; 4762} 4763def F2_sfinvsqrta : HInst< 4764(outs IntRegs:$Rd32, PredRegs:$Pe4), 4765(ins IntRegs:$Rs32), 4766"$Rd32,$Pe4 = sfinvsqrta($Rs32)", 4767tc_7f7f45f5, TypeS_2op>, Enc_890909 { 4768let Inst{13-7} = 0b0000000; 4769let Inst{31-21} = 0b10001011111; 4770let hasNewValue = 1; 4771let opNewValue = 0; 4772let isFP = 1; 4773let isPredicateLate = 1; 4774} 4775def F2_sfmax : HInst< 4776(outs IntRegs:$Rd32), 4777(ins IntRegs:$Rs32, IntRegs:$Rt32), 4778"$Rd32 = sfmax($Rs32,$Rt32)", 4779tc_c20701f0, TypeM>, Enc_5ab2be { 4780let Inst{7-5} = 0b000; 4781let Inst{13-13} = 0b0; 4782let Inst{31-21} = 0b11101011100; 4783let hasNewValue = 1; 4784let opNewValue = 0; 4785let isFP = 1; 4786let prefersSlot3 = 1; 4787let Uses = [USR]; 4788} 4789def F2_sfmin : HInst< 4790(outs IntRegs:$Rd32), 4791(ins IntRegs:$Rs32, IntRegs:$Rt32), 4792"$Rd32 = sfmin($Rs32,$Rt32)", 4793tc_c20701f0, TypeM>, Enc_5ab2be { 4794let Inst{7-5} = 0b001; 4795let Inst{13-13} = 0b0; 4796let Inst{31-21} = 0b11101011100; 4797let hasNewValue = 1; 4798let opNewValue = 0; 4799let isFP = 1; 4800let prefersSlot3 = 1; 4801let Uses = [USR]; 4802} 4803def F2_sfmpy : HInst< 4804(outs IntRegs:$Rd32), 4805(ins IntRegs:$Rs32, IntRegs:$Rt32), 4806"$Rd32 = sfmpy($Rs32,$Rt32)", 4807tc_02fe1c65, TypeM>, Enc_5ab2be { 4808let Inst{7-5} = 0b000; 4809let Inst{13-13} = 0b0; 4810let Inst{31-21} = 0b11101011010; 4811let hasNewValue = 1; 4812let opNewValue = 0; 4813let isFP = 1; 4814let Uses = [USR]; 4815let isCommutable = 1; 4816} 4817def F2_sfrecipa : HInst< 4818(outs IntRegs:$Rd32, PredRegs:$Pe4), 4819(ins IntRegs:$Rs32, IntRegs:$Rt32), 4820"$Rd32,$Pe4 = sfrecipa($Rs32,$Rt32)", 4821tc_f7569068, TypeM>, Enc_a94f3b { 4822let Inst{7-7} = 0b1; 4823let Inst{13-13} = 0b0; 4824let Inst{31-21} = 0b11101011111; 4825let hasNewValue = 1; 4826let opNewValue = 0; 4827let isFP = 1; 4828let isPredicateLate = 1; 4829} 4830def F2_sfsub : HInst< 4831(outs IntRegs:$Rd32), 4832(ins IntRegs:$Rs32, IntRegs:$Rt32), 4833"$Rd32 = sfsub($Rs32,$Rt32)", 4834tc_02fe1c65, TypeM>, Enc_5ab2be { 4835let Inst{7-5} = 0b001; 4836let Inst{13-13} = 0b0; 4837let Inst{31-21} = 0b11101011000; 4838let hasNewValue = 1; 4839let opNewValue = 0; 4840let isFP = 1; 4841let Uses = [USR]; 4842} 4843def G4_tfrgcpp : HInst< 4844(outs DoubleRegs:$Rdd32), 4845(ins GuestRegs64:$Gss32), 4846"$Rdd32 = $Gss32", 4847tc_fae9dfa5, TypeCR>, Enc_0aa344 { 4848let Inst{13-5} = 0b000000000; 4849let Inst{31-21} = 0b01101000001; 4850} 4851def G4_tfrgcrr : HInst< 4852(outs IntRegs:$Rd32), 4853(ins GuestRegs:$Gs32), 4854"$Rd32 = $Gs32", 4855tc_fae9dfa5, TypeCR>, Enc_44271f { 4856let Inst{13-5} = 0b000000000; 4857let Inst{31-21} = 0b01101010001; 4858let hasNewValue = 1; 4859let opNewValue = 0; 4860} 4861def G4_tfrgpcp : HInst< 4862(outs GuestRegs64:$Gdd32), 4863(ins DoubleRegs:$Rss32), 4864"$Gdd32 = $Rss32", 4865tc_6ae3426b, TypeCR>, Enc_ed5027 { 4866let Inst{13-5} = 0b000000000; 4867let Inst{31-21} = 0b01100011000; 4868let hasNewValue = 1; 4869let opNewValue = 0; 4870} 4871def G4_tfrgrcr : HInst< 4872(outs GuestRegs:$Gd32), 4873(ins IntRegs:$Rs32), 4874"$Gd32 = $Rs32", 4875tc_6ae3426b, TypeCR>, Enc_621fba { 4876let Inst{13-5} = 0b000000000; 4877let Inst{31-21} = 0b01100010000; 4878let hasNewValue = 1; 4879let opNewValue = 0; 4880} 4881def J2_call : HInst< 4882(outs), 4883(ins a30_2Imm:$Ii), 4884"call $Ii", 4885tc_44fffc58, TypeJ>, Enc_81ac1d, PredRel { 4886let Inst{0-0} = 0b0; 4887let Inst{31-25} = 0b0101101; 4888let isCall = 1; 4889let prefersSlot3 = 1; 4890let cofRelax2 = 1; 4891let cofMax1 = 1; 4892let Uses = [R29]; 4893let Defs = [PC, R31]; 4894let BaseOpcode = "J2_call"; 4895let hasSideEffects = 1; 4896let isPredicable = 1; 4897let isExtendable = 1; 4898let opExtendable = 0; 4899let isExtentSigned = 1; 4900let opExtentBits = 24; 4901let opExtentAlign = 2; 4902} 4903def J2_callf : HInst< 4904(outs), 4905(ins PredRegs:$Pu4, a30_2Imm:$Ii), 4906"if (!$Pu4) call $Ii", 4907tc_69bfb303, TypeJ>, Enc_daea09, PredRel { 4908let Inst{0-0} = 0b0; 4909let Inst{12-10} = 0b000; 4910let Inst{21-21} = 0b1; 4911let Inst{31-24} = 0b01011101; 4912let isPredicated = 1; 4913let isPredicatedFalse = 1; 4914let isCall = 1; 4915let prefersSlot3 = 1; 4916let cofRelax1 = 1; 4917let cofRelax2 = 1; 4918let cofMax1 = 1; 4919let Uses = [R29]; 4920let Defs = [PC, R31]; 4921let BaseOpcode = "J2_call"; 4922let hasSideEffects = 1; 4923let isTaken = Inst{12}; 4924let isExtendable = 1; 4925let opExtendable = 1; 4926let isExtentSigned = 1; 4927let opExtentBits = 17; 4928let opExtentAlign = 2; 4929} 4930def J2_callr : HInst< 4931(outs), 4932(ins IntRegs:$Rs32), 4933"callr $Rs32", 4934tc_362b0be2, TypeJ>, Enc_ecbcc8 { 4935let Inst{13-0} = 0b00000000000000; 4936let Inst{31-21} = 0b01010000101; 4937let isCall = 1; 4938let prefersSlot3 = 1; 4939let cofMax1 = 1; 4940let Uses = [R29]; 4941let Defs = [PC, R31]; 4942let hasSideEffects = 1; 4943} 4944def J2_callrf : HInst< 4945(outs), 4946(ins PredRegs:$Pu4, IntRegs:$Rs32), 4947"if (!$Pu4) callr $Rs32", 4948tc_dc51281d, TypeJ>, Enc_88d4d9 { 4949let Inst{7-0} = 0b00000000; 4950let Inst{13-10} = 0b0000; 4951let Inst{31-21} = 0b01010001001; 4952let isPredicated = 1; 4953let isPredicatedFalse = 1; 4954let isCall = 1; 4955let prefersSlot3 = 1; 4956let cofMax1 = 1; 4957let Uses = [R29]; 4958let Defs = [PC, R31]; 4959let hasSideEffects = 1; 4960let isTaken = Inst{12}; 4961} 4962def J2_callrh : HInst< 4963(outs), 4964(ins IntRegs:$Rs32), 4965"callrh $Rs32", 4966tc_95f43c5e, TypeJ>, Enc_ecbcc8, Requires<[HasV73]> { 4967let Inst{13-0} = 0b00000000000000; 4968let Inst{31-21} = 0b01010000110; 4969let isCall = 1; 4970let prefersSlot3 = 1; 4971let cofMax1 = 1; 4972let Defs = [PC, R31]; 4973} 4974def J2_callrt : HInst< 4975(outs), 4976(ins PredRegs:$Pu4, IntRegs:$Rs32), 4977"if ($Pu4) callr $Rs32", 4978tc_dc51281d, TypeJ>, Enc_88d4d9 { 4979let Inst{7-0} = 0b00000000; 4980let Inst{13-10} = 0b0000; 4981let Inst{31-21} = 0b01010001000; 4982let isPredicated = 1; 4983let isCall = 1; 4984let prefersSlot3 = 1; 4985let cofMax1 = 1; 4986let Uses = [R29]; 4987let Defs = [PC, R31]; 4988let hasSideEffects = 1; 4989let isTaken = Inst{12}; 4990} 4991def J2_callt : HInst< 4992(outs), 4993(ins PredRegs:$Pu4, a30_2Imm:$Ii), 4994"if ($Pu4) call $Ii", 4995tc_69bfb303, TypeJ>, Enc_daea09, PredRel { 4996let Inst{0-0} = 0b0; 4997let Inst{12-10} = 0b000; 4998let Inst{21-21} = 0b0; 4999let Inst{31-24} = 0b01011101; 5000let isPredicated = 1; 5001let isCall = 1; 5002let prefersSlot3 = 1; 5003let cofRelax1 = 1; 5004let cofRelax2 = 1; 5005let cofMax1 = 1; 5006let Uses = [R29]; 5007let Defs = [PC, R31]; 5008let BaseOpcode = "J2_call"; 5009let hasSideEffects = 1; 5010let isTaken = Inst{12}; 5011let isExtendable = 1; 5012let opExtendable = 1; 5013let isExtentSigned = 1; 5014let opExtentBits = 17; 5015let opExtentAlign = 2; 5016} 5017def J2_endloop0 : HInst< 5018(outs), 5019(ins), 5020"endloop0", 5021tc_23708a21, TypeJ> { 5022let Uses = [LC0, SA0]; 5023let Defs = [LC0, P3, PC, USR]; 5024let isBranch = 1; 5025let isTerminator = 1; 5026let isPseudo = 1; 5027} 5028def J2_endloop01 : HInst< 5029(outs), 5030(ins), 5031"endloop01", 5032tc_23708a21, TypeJ> { 5033let Uses = [LC0, LC1, SA0, SA1]; 5034let Defs = [LC0, LC1, P3, PC, USR]; 5035let isPseudo = 1; 5036} 5037def J2_endloop1 : HInst< 5038(outs), 5039(ins), 5040"endloop1", 5041tc_23708a21, TypeJ> { 5042let Uses = [LC1, SA1]; 5043let Defs = [LC1, PC]; 5044let isBranch = 1; 5045let isTerminator = 1; 5046let isPseudo = 1; 5047} 5048def J2_jump : HInst< 5049(outs), 5050(ins b30_2Imm:$Ii), 5051"jump $Ii", 5052tc_decdde8a, TypeJ>, Enc_81ac1d, PredNewRel { 5053let Inst{0-0} = 0b0; 5054let Inst{31-25} = 0b0101100; 5055let isTerminator = 1; 5056let isBranch = 1; 5057let cofRelax2 = 1; 5058let cofMax1 = 1; 5059let Defs = [PC]; 5060let BaseOpcode = "J2_jump"; 5061let InputType = "imm"; 5062let isBarrier = 1; 5063let isPredicable = 1; 5064let isExtendable = 1; 5065let opExtendable = 0; 5066let isExtentSigned = 1; 5067let opExtentBits = 24; 5068let opExtentAlign = 2; 5069} 5070def J2_jumpf : HInst< 5071(outs), 5072(ins PredRegs:$Pu4, b30_2Imm:$Ii), 5073"if (!$Pu4) jump:nt $Ii", 5074tc_56a124a7, TypeJ>, Enc_daea09, PredNewRel { 5075let Inst{0-0} = 0b0; 5076let Inst{12-10} = 0b000; 5077let Inst{21-21} = 0b1; 5078let Inst{31-24} = 0b01011100; 5079let isPredicated = 1; 5080let isPredicatedFalse = 1; 5081let isTerminator = 1; 5082let isBranch = 1; 5083let cofRelax1 = 1; 5084let cofRelax2 = 1; 5085let cofMax1 = 1; 5086let Defs = [PC]; 5087let BaseOpcode = "J2_jump"; 5088let InputType = "imm"; 5089let isTaken = Inst{12}; 5090let isExtendable = 1; 5091let opExtendable = 1; 5092let isExtentSigned = 1; 5093let opExtentBits = 17; 5094let opExtentAlign = 2; 5095} 5096def J2_jumpf_nopred_map : HInst< 5097(outs), 5098(ins PredRegs:$Pu4, b15_2Imm:$Ii), 5099"if (!$Pu4) jump $Ii", 5100tc_56a124a7, TypeMAPPING>, Requires<[HasV60]> { 5101let isPseudo = 1; 5102let isCodeGenOnly = 1; 5103} 5104def J2_jumpfnew : HInst< 5105(outs), 5106(ins PredRegs:$Pu4, b30_2Imm:$Ii), 5107"if (!$Pu4.new) jump:nt $Ii", 5108tc_eeda4109, TypeJ>, Enc_daea09, PredNewRel { 5109let Inst{0-0} = 0b0; 5110let Inst{12-10} = 0b010; 5111let Inst{21-21} = 0b1; 5112let Inst{31-24} = 0b01011100; 5113let isPredicated = 1; 5114let isPredicatedFalse = 1; 5115let isTerminator = 1; 5116let isBranch = 1; 5117let isPredicatedNew = 1; 5118let cofRelax1 = 1; 5119let cofRelax2 = 1; 5120let cofMax1 = 1; 5121let Defs = [PC]; 5122let BaseOpcode = "J2_jump"; 5123let InputType = "imm"; 5124let isTaken = Inst{12}; 5125let isExtendable = 1; 5126let opExtendable = 1; 5127let isExtentSigned = 1; 5128let opExtentBits = 17; 5129let opExtentAlign = 2; 5130} 5131def J2_jumpfnewpt : HInst< 5132(outs), 5133(ins PredRegs:$Pu4, b30_2Imm:$Ii), 5134"if (!$Pu4.new) jump:t $Ii", 5135tc_eeda4109, TypeJ>, Enc_daea09, PredNewRel { 5136let Inst{0-0} = 0b0; 5137let Inst{12-10} = 0b110; 5138let Inst{21-21} = 0b1; 5139let Inst{31-24} = 0b01011100; 5140let isPredicated = 1; 5141let isPredicatedFalse = 1; 5142let isTerminator = 1; 5143let isBranch = 1; 5144let isPredicatedNew = 1; 5145let cofRelax1 = 1; 5146let cofRelax2 = 1; 5147let cofMax1 = 1; 5148let Defs = [PC]; 5149let BaseOpcode = "J2_jump"; 5150let InputType = "imm"; 5151let isTaken = Inst{12}; 5152let isExtendable = 1; 5153let opExtendable = 1; 5154let isExtentSigned = 1; 5155let opExtentBits = 17; 5156let opExtentAlign = 2; 5157} 5158def J2_jumpfpt : HInst< 5159(outs), 5160(ins PredRegs:$Pu4, b30_2Imm:$Ii), 5161"if (!$Pu4) jump:t $Ii", 5162tc_711c805f, TypeJ>, Enc_daea09, Requires<[HasV60]>, PredNewRel { 5163let Inst{0-0} = 0b0; 5164let Inst{12-10} = 0b100; 5165let Inst{21-21} = 0b1; 5166let Inst{31-24} = 0b01011100; 5167let isPredicated = 1; 5168let isPredicatedFalse = 1; 5169let isTerminator = 1; 5170let isBranch = 1; 5171let cofRelax1 = 1; 5172let cofRelax2 = 1; 5173let cofMax1 = 1; 5174let Defs = [PC]; 5175let BaseOpcode = "J2_jump"; 5176let InputType = "imm"; 5177let isTaken = Inst{12}; 5178let isExtendable = 1; 5179let opExtendable = 1; 5180let isExtentSigned = 1; 5181let opExtentBits = 17; 5182let opExtentAlign = 2; 5183} 5184def J2_jumpr : HInst< 5185(outs), 5186(ins IntRegs:$Rs32), 5187"jumpr $Rs32", 5188tc_60e324ff, TypeJ>, Enc_ecbcc8, PredNewRel { 5189let Inst{13-0} = 0b00000000000000; 5190let Inst{31-21} = 0b01010010100; 5191let isTerminator = 1; 5192let isIndirectBranch = 1; 5193let isBranch = 1; 5194let cofMax1 = 1; 5195let Defs = [PC]; 5196let BaseOpcode = "J2_jumpr"; 5197let InputType = "reg"; 5198let isBarrier = 1; 5199let isPredicable = 1; 5200} 5201def J2_jumprf : HInst< 5202(outs), 5203(ins PredRegs:$Pu4, IntRegs:$Rs32), 5204"if (!$Pu4) jumpr:nt $Rs32", 5205tc_2f573607, TypeJ>, Enc_88d4d9, PredNewRel { 5206let Inst{7-0} = 0b00000000; 5207let Inst{13-10} = 0b0000; 5208let Inst{31-21} = 0b01010011011; 5209let isPredicated = 1; 5210let isPredicatedFalse = 1; 5211let isTerminator = 1; 5212let isIndirectBranch = 1; 5213let isBranch = 1; 5214let cofMax1 = 1; 5215let Defs = [PC]; 5216let BaseOpcode = "J2_jumpr"; 5217let InputType = "reg"; 5218let isTaken = Inst{12}; 5219} 5220def J2_jumprf_nopred_map : HInst< 5221(outs), 5222(ins PredRegs:$Pu4, IntRegs:$Rs32), 5223"if (!$Pu4) jumpr $Rs32", 5224tc_2f573607, TypeMAPPING>, Requires<[HasV60]> { 5225let isPseudo = 1; 5226let isCodeGenOnly = 1; 5227} 5228def J2_jumprfnew : HInst< 5229(outs), 5230(ins PredRegs:$Pu4, IntRegs:$Rs32), 5231"if (!$Pu4.new) jumpr:nt $Rs32", 5232tc_ed03645c, TypeJ>, Enc_88d4d9, PredNewRel { 5233let Inst{7-0} = 0b00000000; 5234let Inst{13-10} = 0b0010; 5235let Inst{31-21} = 0b01010011011; 5236let isPredicated = 1; 5237let isPredicatedFalse = 1; 5238let isTerminator = 1; 5239let isIndirectBranch = 1; 5240let isBranch = 1; 5241let isPredicatedNew = 1; 5242let cofMax1 = 1; 5243let Defs = [PC]; 5244let BaseOpcode = "J2_jumpr"; 5245let InputType = "reg"; 5246let isTaken = Inst{12}; 5247} 5248def J2_jumprfnewpt : HInst< 5249(outs), 5250(ins PredRegs:$Pu4, IntRegs:$Rs32), 5251"if (!$Pu4.new) jumpr:t $Rs32", 5252tc_ed03645c, TypeJ>, Enc_88d4d9, PredNewRel { 5253let Inst{7-0} = 0b00000000; 5254let Inst{13-10} = 0b0110; 5255let Inst{31-21} = 0b01010011011; 5256let isPredicated = 1; 5257let isPredicatedFalse = 1; 5258let isTerminator = 1; 5259let isIndirectBranch = 1; 5260let isBranch = 1; 5261let isPredicatedNew = 1; 5262let cofMax1 = 1; 5263let Defs = [PC]; 5264let BaseOpcode = "J2_jumpr"; 5265let InputType = "reg"; 5266let isTaken = Inst{12}; 5267} 5268def J2_jumprfpt : HInst< 5269(outs), 5270(ins PredRegs:$Pu4, IntRegs:$Rs32), 5271"if (!$Pu4) jumpr:t $Rs32", 5272tc_42ff66ba, TypeJ>, Enc_88d4d9, Requires<[HasV60]>, PredNewRel { 5273let Inst{7-0} = 0b00000000; 5274let Inst{13-10} = 0b0100; 5275let Inst{31-21} = 0b01010011011; 5276let isPredicated = 1; 5277let isPredicatedFalse = 1; 5278let isTerminator = 1; 5279let isIndirectBranch = 1; 5280let isBranch = 1; 5281let cofMax1 = 1; 5282let Defs = [PC]; 5283let BaseOpcode = "J2_jumpr"; 5284let InputType = "reg"; 5285let isTaken = Inst{12}; 5286} 5287def J2_jumprgtez : HInst< 5288(outs), 5289(ins IntRegs:$Rs32, b13_2Imm:$Ii), 5290"if ($Rs32>=#0) jump:nt $Ii", 5291tc_57a55b54, TypeCR>, Enc_0fa531 { 5292let Inst{0-0} = 0b0; 5293let Inst{12-12} = 0b0; 5294let Inst{31-22} = 0b0110000101; 5295let isPredicated = 1; 5296let isTerminator = 1; 5297let isBranch = 1; 5298let isPredicatedNew = 1; 5299let cofRelax1 = 1; 5300let cofRelax2 = 1; 5301let cofMax1 = 1; 5302let Defs = [PC]; 5303let isTaken = Inst{12}; 5304} 5305def J2_jumprgtezpt : HInst< 5306(outs), 5307(ins IntRegs:$Rs32, b13_2Imm:$Ii), 5308"if ($Rs32>=#0) jump:t $Ii", 5309tc_57a55b54, TypeCR>, Enc_0fa531 { 5310let Inst{0-0} = 0b0; 5311let Inst{12-12} = 0b1; 5312let Inst{31-22} = 0b0110000101; 5313let isPredicated = 1; 5314let isTerminator = 1; 5315let isBranch = 1; 5316let isPredicatedNew = 1; 5317let cofRelax1 = 1; 5318let cofRelax2 = 1; 5319let cofMax1 = 1; 5320let Defs = [PC]; 5321let isTaken = Inst{12}; 5322} 5323def J2_jumprh : HInst< 5324(outs), 5325(ins IntRegs:$Rs32), 5326"jumprh $Rs32", 5327tc_f97707c1, TypeJ>, Enc_ecbcc8, Requires<[HasV73]> { 5328let Inst{13-0} = 0b00000000000000; 5329let Inst{31-21} = 0b01010010110; 5330let isTerminator = 1; 5331let isIndirectBranch = 1; 5332let isBranch = 1; 5333let cofMax1 = 1; 5334let Defs = [PC]; 5335} 5336def J2_jumprltez : HInst< 5337(outs), 5338(ins IntRegs:$Rs32, b13_2Imm:$Ii), 5339"if ($Rs32<=#0) jump:nt $Ii", 5340tc_57a55b54, TypeCR>, Enc_0fa531 { 5341let Inst{0-0} = 0b0; 5342let Inst{12-12} = 0b0; 5343let Inst{31-22} = 0b0110000111; 5344let isPredicated = 1; 5345let isTerminator = 1; 5346let isBranch = 1; 5347let isPredicatedNew = 1; 5348let cofRelax1 = 1; 5349let cofRelax2 = 1; 5350let cofMax1 = 1; 5351let Defs = [PC]; 5352let isTaken = Inst{12}; 5353} 5354def J2_jumprltezpt : HInst< 5355(outs), 5356(ins IntRegs:$Rs32, b13_2Imm:$Ii), 5357"if ($Rs32<=#0) jump:t $Ii", 5358tc_57a55b54, TypeCR>, Enc_0fa531 { 5359let Inst{0-0} = 0b0; 5360let Inst{12-12} = 0b1; 5361let Inst{31-22} = 0b0110000111; 5362let isPredicated = 1; 5363let isTerminator = 1; 5364let isBranch = 1; 5365let isPredicatedNew = 1; 5366let cofRelax1 = 1; 5367let cofRelax2 = 1; 5368let cofMax1 = 1; 5369let Defs = [PC]; 5370let isTaken = Inst{12}; 5371} 5372def J2_jumprnz : HInst< 5373(outs), 5374(ins IntRegs:$Rs32, b13_2Imm:$Ii), 5375"if ($Rs32==#0) jump:nt $Ii", 5376tc_57a55b54, TypeCR>, Enc_0fa531 { 5377let Inst{0-0} = 0b0; 5378let Inst{12-12} = 0b0; 5379let Inst{31-22} = 0b0110000110; 5380let isPredicated = 1; 5381let isTerminator = 1; 5382let isBranch = 1; 5383let isPredicatedNew = 1; 5384let cofRelax1 = 1; 5385let cofRelax2 = 1; 5386let cofMax1 = 1; 5387let Defs = [PC]; 5388let isTaken = Inst{12}; 5389} 5390def J2_jumprnzpt : HInst< 5391(outs), 5392(ins IntRegs:$Rs32, b13_2Imm:$Ii), 5393"if ($Rs32==#0) jump:t $Ii", 5394tc_57a55b54, TypeCR>, Enc_0fa531 { 5395let Inst{0-0} = 0b0; 5396let Inst{12-12} = 0b1; 5397let Inst{31-22} = 0b0110000110; 5398let isPredicated = 1; 5399let isTerminator = 1; 5400let isBranch = 1; 5401let isPredicatedNew = 1; 5402let cofRelax1 = 1; 5403let cofRelax2 = 1; 5404let cofMax1 = 1; 5405let Defs = [PC]; 5406let isTaken = Inst{12}; 5407} 5408def J2_jumprt : HInst< 5409(outs), 5410(ins PredRegs:$Pu4, IntRegs:$Rs32), 5411"if ($Pu4) jumpr:nt $Rs32", 5412tc_2f573607, TypeJ>, Enc_88d4d9, PredNewRel { 5413let Inst{7-0} = 0b00000000; 5414let Inst{13-10} = 0b0000; 5415let Inst{31-21} = 0b01010011010; 5416let isPredicated = 1; 5417let isTerminator = 1; 5418let isIndirectBranch = 1; 5419let isBranch = 1; 5420let cofMax1 = 1; 5421let Defs = [PC]; 5422let BaseOpcode = "J2_jumpr"; 5423let InputType = "reg"; 5424let isTaken = Inst{12}; 5425} 5426def J2_jumprt_nopred_map : HInst< 5427(outs), 5428(ins PredRegs:$Pu4, IntRegs:$Rs32), 5429"if ($Pu4) jumpr $Rs32", 5430tc_2f573607, TypeMAPPING>, Requires<[HasV60]> { 5431let isPseudo = 1; 5432let isCodeGenOnly = 1; 5433} 5434def J2_jumprtnew : HInst< 5435(outs), 5436(ins PredRegs:$Pu4, IntRegs:$Rs32), 5437"if ($Pu4.new) jumpr:nt $Rs32", 5438tc_ed03645c, TypeJ>, Enc_88d4d9, PredNewRel { 5439let Inst{7-0} = 0b00000000; 5440let Inst{13-10} = 0b0010; 5441let Inst{31-21} = 0b01010011010; 5442let isPredicated = 1; 5443let isTerminator = 1; 5444let isIndirectBranch = 1; 5445let isBranch = 1; 5446let isPredicatedNew = 1; 5447let cofMax1 = 1; 5448let Defs = [PC]; 5449let BaseOpcode = "J2_jumpr"; 5450let InputType = "reg"; 5451let isTaken = Inst{12}; 5452} 5453def J2_jumprtnewpt : HInst< 5454(outs), 5455(ins PredRegs:$Pu4, IntRegs:$Rs32), 5456"if ($Pu4.new) jumpr:t $Rs32", 5457tc_ed03645c, TypeJ>, Enc_88d4d9, PredNewRel { 5458let Inst{7-0} = 0b00000000; 5459let Inst{13-10} = 0b0110; 5460let Inst{31-21} = 0b01010011010; 5461let isPredicated = 1; 5462let isTerminator = 1; 5463let isIndirectBranch = 1; 5464let isBranch = 1; 5465let isPredicatedNew = 1; 5466let cofMax1 = 1; 5467let Defs = [PC]; 5468let BaseOpcode = "J2_jumpr"; 5469let InputType = "reg"; 5470let isTaken = Inst{12}; 5471} 5472def J2_jumprtpt : HInst< 5473(outs), 5474(ins PredRegs:$Pu4, IntRegs:$Rs32), 5475"if ($Pu4) jumpr:t $Rs32", 5476tc_42ff66ba, TypeJ>, Enc_88d4d9, Requires<[HasV60]>, PredNewRel { 5477let Inst{7-0} = 0b00000000; 5478let Inst{13-10} = 0b0100; 5479let Inst{31-21} = 0b01010011010; 5480let isPredicated = 1; 5481let isTerminator = 1; 5482let isIndirectBranch = 1; 5483let isBranch = 1; 5484let cofMax1 = 1; 5485let Defs = [PC]; 5486let BaseOpcode = "J2_jumpr"; 5487let InputType = "reg"; 5488let isTaken = Inst{12}; 5489} 5490def J2_jumprz : HInst< 5491(outs), 5492(ins IntRegs:$Rs32, b13_2Imm:$Ii), 5493"if ($Rs32!=#0) jump:nt $Ii", 5494tc_57a55b54, TypeCR>, Enc_0fa531 { 5495let Inst{0-0} = 0b0; 5496let Inst{12-12} = 0b0; 5497let Inst{31-22} = 0b0110000100; 5498let isPredicated = 1; 5499let isTerminator = 1; 5500let isBranch = 1; 5501let isPredicatedNew = 1; 5502let cofRelax1 = 1; 5503let cofRelax2 = 1; 5504let cofMax1 = 1; 5505let Defs = [PC]; 5506let isTaken = Inst{12}; 5507} 5508def J2_jumprzpt : HInst< 5509(outs), 5510(ins IntRegs:$Rs32, b13_2Imm:$Ii), 5511"if ($Rs32!=#0) jump:t $Ii", 5512tc_57a55b54, TypeCR>, Enc_0fa531 { 5513let Inst{0-0} = 0b0; 5514let Inst{12-12} = 0b1; 5515let Inst{31-22} = 0b0110000100; 5516let isPredicated = 1; 5517let isTerminator = 1; 5518let isBranch = 1; 5519let isPredicatedNew = 1; 5520let cofRelax1 = 1; 5521let cofRelax2 = 1; 5522let cofMax1 = 1; 5523let Defs = [PC]; 5524let isTaken = Inst{12}; 5525} 5526def J2_jumpt : HInst< 5527(outs), 5528(ins PredRegs:$Pu4, b30_2Imm:$Ii), 5529"if ($Pu4) jump:nt $Ii", 5530tc_56a124a7, TypeJ>, Enc_daea09, PredNewRel { 5531let Inst{0-0} = 0b0; 5532let Inst{12-10} = 0b000; 5533let Inst{21-21} = 0b0; 5534let Inst{31-24} = 0b01011100; 5535let isPredicated = 1; 5536let isTerminator = 1; 5537let isBranch = 1; 5538let cofRelax1 = 1; 5539let cofRelax2 = 1; 5540let cofMax1 = 1; 5541let Defs = [PC]; 5542let BaseOpcode = "J2_jump"; 5543let InputType = "imm"; 5544let isTaken = Inst{12}; 5545let isExtendable = 1; 5546let opExtendable = 1; 5547let isExtentSigned = 1; 5548let opExtentBits = 17; 5549let opExtentAlign = 2; 5550} 5551def J2_jumpt_nopred_map : HInst< 5552(outs), 5553(ins PredRegs:$Pu4, b15_2Imm:$Ii), 5554"if ($Pu4) jump $Ii", 5555tc_56a124a7, TypeMAPPING>, Requires<[HasV60]> { 5556let isPseudo = 1; 5557let isCodeGenOnly = 1; 5558} 5559def J2_jumptnew : HInst< 5560(outs), 5561(ins PredRegs:$Pu4, b30_2Imm:$Ii), 5562"if ($Pu4.new) jump:nt $Ii", 5563tc_eeda4109, TypeJ>, Enc_daea09, PredNewRel { 5564let Inst{0-0} = 0b0; 5565let Inst{12-10} = 0b010; 5566let Inst{21-21} = 0b0; 5567let Inst{31-24} = 0b01011100; 5568let isPredicated = 1; 5569let isTerminator = 1; 5570let isBranch = 1; 5571let isPredicatedNew = 1; 5572let cofRelax1 = 1; 5573let cofRelax2 = 1; 5574let cofMax1 = 1; 5575let Defs = [PC]; 5576let BaseOpcode = "J2_jump"; 5577let InputType = "imm"; 5578let isTaken = Inst{12}; 5579let isExtendable = 1; 5580let opExtendable = 1; 5581let isExtentSigned = 1; 5582let opExtentBits = 17; 5583let opExtentAlign = 2; 5584} 5585def J2_jumptnewpt : HInst< 5586(outs), 5587(ins PredRegs:$Pu4, b30_2Imm:$Ii), 5588"if ($Pu4.new) jump:t $Ii", 5589tc_eeda4109, TypeJ>, Enc_daea09, PredNewRel { 5590let Inst{0-0} = 0b0; 5591let Inst{12-10} = 0b110; 5592let Inst{21-21} = 0b0; 5593let Inst{31-24} = 0b01011100; 5594let isPredicated = 1; 5595let isTerminator = 1; 5596let isBranch = 1; 5597let isPredicatedNew = 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_jumptpt : HInst< 5612(outs), 5613(ins PredRegs:$Pu4, b30_2Imm:$Ii), 5614"if ($Pu4) jump:t $Ii", 5615tc_711c805f, TypeJ>, Enc_daea09, Requires<[HasV60]>, PredNewRel { 5616let Inst{0-0} = 0b0; 5617let Inst{12-10} = 0b100; 5618let Inst{21-21} = 0b0; 5619let Inst{31-24} = 0b01011100; 5620let isPredicated = 1; 5621let isTerminator = 1; 5622let isBranch = 1; 5623let cofRelax1 = 1; 5624let cofRelax2 = 1; 5625let cofMax1 = 1; 5626let Defs = [PC]; 5627let BaseOpcode = "J2_jump"; 5628let InputType = "imm"; 5629let isTaken = Inst{12}; 5630let isExtendable = 1; 5631let opExtendable = 1; 5632let isExtentSigned = 1; 5633let opExtentBits = 17; 5634let opExtentAlign = 2; 5635} 5636def J2_loop0i : HInst< 5637(outs), 5638(ins b30_2Imm:$Ii, u10_0Imm:$II), 5639"loop0($Ii,#$II)", 5640tc_1248597c, TypeCR>, Enc_4dc228 { 5641let Inst{2-2} = 0b0; 5642let Inst{13-13} = 0b0; 5643let Inst{31-21} = 0b01101001000; 5644let cofRelax1 = 1; 5645let cofRelax2 = 1; 5646let Defs = [LC0, SA0, USR]; 5647let isExtendable = 1; 5648let opExtendable = 0; 5649let isExtentSigned = 1; 5650let opExtentBits = 9; 5651let opExtentAlign = 2; 5652} 5653def J2_loop0r : HInst< 5654(outs), 5655(ins b30_2Imm:$Ii, IntRegs:$Rs32), 5656"loop0($Ii,$Rs32)", 5657tc_9406230a, TypeCR>, Enc_864a5a { 5658let Inst{2-0} = 0b000; 5659let Inst{7-5} = 0b000; 5660let Inst{13-13} = 0b0; 5661let Inst{31-21} = 0b01100000000; 5662let cofRelax1 = 1; 5663let cofRelax2 = 1; 5664let Defs = [LC0, SA0, USR]; 5665let isExtendable = 1; 5666let opExtendable = 0; 5667let isExtentSigned = 1; 5668let opExtentBits = 9; 5669let opExtentAlign = 2; 5670} 5671def J2_loop1i : HInst< 5672(outs), 5673(ins b30_2Imm:$Ii, u10_0Imm:$II), 5674"loop1($Ii,#$II)", 5675tc_1248597c, TypeCR>, Enc_4dc228 { 5676let Inst{2-2} = 0b0; 5677let Inst{13-13} = 0b0; 5678let Inst{31-21} = 0b01101001001; 5679let cofRelax1 = 1; 5680let cofRelax2 = 1; 5681let Defs = [LC1, SA1]; 5682let isExtendable = 1; 5683let opExtendable = 0; 5684let isExtentSigned = 1; 5685let opExtentBits = 9; 5686let opExtentAlign = 2; 5687} 5688def J2_loop1r : HInst< 5689(outs), 5690(ins b30_2Imm:$Ii, IntRegs:$Rs32), 5691"loop1($Ii,$Rs32)", 5692tc_9406230a, TypeCR>, Enc_864a5a { 5693let Inst{2-0} = 0b000; 5694let Inst{7-5} = 0b000; 5695let Inst{13-13} = 0b0; 5696let Inst{31-21} = 0b01100000001; 5697let cofRelax1 = 1; 5698let cofRelax2 = 1; 5699let Defs = [LC1, SA1]; 5700let isExtendable = 1; 5701let opExtendable = 0; 5702let isExtentSigned = 1; 5703let opExtentBits = 9; 5704let opExtentAlign = 2; 5705} 5706def J2_pause : HInst< 5707(outs), 5708(ins u10_0Imm:$Ii), 5709"pause(#$Ii)", 5710tc_d57d649c, TypeJ>, Enc_bea5da { 5711let Inst{1-0} = 0b00; 5712let Inst{7-5} = 0b000; 5713let Inst{13-13} = 0b0; 5714let Inst{31-18} = 0b01010100010000; 5715let isSolo = 1; 5716} 5717def J2_ploop1si : HInst< 5718(outs), 5719(ins b30_2Imm:$Ii, u10_0Imm:$II), 5720"p3 = sp1loop0($Ii,#$II)", 5721tc_4abdbdc6, TypeCR>, Enc_4dc228 { 5722let Inst{2-2} = 0b0; 5723let Inst{13-13} = 0b0; 5724let Inst{31-21} = 0b01101001101; 5725let isPredicateLate = 1; 5726let cofRelax1 = 1; 5727let cofRelax2 = 1; 5728let Defs = [LC0, P3, SA0, USR]; 5729let isExtendable = 1; 5730let opExtendable = 0; 5731let isExtentSigned = 1; 5732let opExtentBits = 9; 5733let opExtentAlign = 2; 5734} 5735def J2_ploop1sr : HInst< 5736(outs), 5737(ins b30_2Imm:$Ii, IntRegs:$Rs32), 5738"p3 = sp1loop0($Ii,$Rs32)", 5739tc_6d861a95, TypeCR>, Enc_864a5a { 5740let Inst{2-0} = 0b000; 5741let Inst{7-5} = 0b000; 5742let Inst{13-13} = 0b0; 5743let Inst{31-21} = 0b01100000101; 5744let isPredicateLate = 1; 5745let cofRelax1 = 1; 5746let cofRelax2 = 1; 5747let Defs = [LC0, P3, SA0, USR]; 5748let isExtendable = 1; 5749let opExtendable = 0; 5750let isExtentSigned = 1; 5751let opExtentBits = 9; 5752let opExtentAlign = 2; 5753} 5754def J2_ploop2si : HInst< 5755(outs), 5756(ins b30_2Imm:$Ii, u10_0Imm:$II), 5757"p3 = sp2loop0($Ii,#$II)", 5758tc_4abdbdc6, TypeCR>, Enc_4dc228 { 5759let Inst{2-2} = 0b0; 5760let Inst{13-13} = 0b0; 5761let Inst{31-21} = 0b01101001110; 5762let isPredicateLate = 1; 5763let cofRelax1 = 1; 5764let cofRelax2 = 1; 5765let Defs = [LC0, P3, SA0, USR]; 5766let isExtendable = 1; 5767let opExtendable = 0; 5768let isExtentSigned = 1; 5769let opExtentBits = 9; 5770let opExtentAlign = 2; 5771} 5772def J2_ploop2sr : HInst< 5773(outs), 5774(ins b30_2Imm:$Ii, IntRegs:$Rs32), 5775"p3 = sp2loop0($Ii,$Rs32)", 5776tc_6d861a95, TypeCR>, Enc_864a5a { 5777let Inst{2-0} = 0b000; 5778let Inst{7-5} = 0b000; 5779let Inst{13-13} = 0b0; 5780let Inst{31-21} = 0b01100000110; 5781let isPredicateLate = 1; 5782let cofRelax1 = 1; 5783let cofRelax2 = 1; 5784let Defs = [LC0, P3, SA0, USR]; 5785let isExtendable = 1; 5786let opExtendable = 0; 5787let isExtentSigned = 1; 5788let opExtentBits = 9; 5789let opExtentAlign = 2; 5790} 5791def J2_ploop3si : HInst< 5792(outs), 5793(ins b30_2Imm:$Ii, u10_0Imm:$II), 5794"p3 = sp3loop0($Ii,#$II)", 5795tc_4abdbdc6, TypeCR>, Enc_4dc228 { 5796let Inst{2-2} = 0b0; 5797let Inst{13-13} = 0b0; 5798let Inst{31-21} = 0b01101001111; 5799let isPredicateLate = 1; 5800let cofRelax1 = 1; 5801let cofRelax2 = 1; 5802let Defs = [LC0, P3, SA0, USR]; 5803let isExtendable = 1; 5804let opExtendable = 0; 5805let isExtentSigned = 1; 5806let opExtentBits = 9; 5807let opExtentAlign = 2; 5808} 5809def J2_ploop3sr : HInst< 5810(outs), 5811(ins b30_2Imm:$Ii, IntRegs:$Rs32), 5812"p3 = sp3loop0($Ii,$Rs32)", 5813tc_6d861a95, TypeCR>, Enc_864a5a { 5814let Inst{2-0} = 0b000; 5815let Inst{7-5} = 0b000; 5816let Inst{13-13} = 0b0; 5817let Inst{31-21} = 0b01100000111; 5818let isPredicateLate = 1; 5819let cofRelax1 = 1; 5820let cofRelax2 = 1; 5821let Defs = [LC0, P3, SA0, USR]; 5822let isExtendable = 1; 5823let opExtendable = 0; 5824let isExtentSigned = 1; 5825let opExtentBits = 9; 5826let opExtentAlign = 2; 5827} 5828def J2_rte : HInst< 5829(outs), 5830(ins), 5831"rte", 5832tc_b9bec29e, TypeJ>, Enc_e3b0c4 { 5833let Inst{13-0} = 0b00000000000000; 5834let Inst{31-16} = 0b0101011111100000; 5835let Uses = [ELR]; 5836let Defs = [PC]; 5837} 5838def J2_trap0 : HInst< 5839(outs), 5840(ins u8_0Imm:$Ii), 5841"trap0(#$Ii)", 5842tc_45f9d1be, TypeJ>, Enc_a51a9a { 5843let Inst{1-0} = 0b00; 5844let Inst{7-5} = 0b000; 5845let Inst{13-13} = 0b0; 5846let Inst{31-16} = 0b0101010000000000; 5847let isSolo = 1; 5848let hasSideEffects = 1; 5849} 5850def J2_trap1 : HInst< 5851(outs IntRegs:$Rx32), 5852(ins IntRegs:$Rx32in, u8_0Imm:$Ii), 5853"trap1($Rx32,#$Ii)", 5854tc_53c851ab, TypeJ>, Enc_33f8ba, Requires<[HasV65]> { 5855let Inst{1-0} = 0b00; 5856let Inst{7-5} = 0b000; 5857let Inst{13-13} = 0b0; 5858let Inst{31-21} = 0b01010100100; 5859let hasNewValue = 1; 5860let opNewValue = 0; 5861let isSolo = 1; 5862let Uses = [CCR, GOSP]; 5863let Defs = [CCR, GOSP, PC]; 5864let hasSideEffects = 1; 5865let Constraints = "$Rx32 = $Rx32in"; 5866} 5867def J2_trap1_noregmap : HInst< 5868(outs), 5869(ins u8_0Imm:$Ii), 5870"trap1(#$Ii)", 5871tc_53c851ab, TypeMAPPING>, Requires<[HasV65]> { 5872let hasSideEffects = 1; 5873let isPseudo = 1; 5874let isCodeGenOnly = 1; 5875} 5876def J2_unpause : HInst< 5877(outs), 5878(ins), 5879"unpause", 5880tc_33e7e673, TypeJ>, Enc_e3b0c4, Requires<[HasV73]> { 5881let Inst{13-0} = 0b01000000000000; 5882let Inst{31-16} = 0b0101011111100000; 5883let isSolo = 1; 5884} 5885def J4_cmpeq_f_jumpnv_nt : HInst< 5886(outs), 5887(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), 5888"if (!cmp.eq($Ns8.new,$Rt32)) jump:nt $Ii", 5889tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel { 5890let Inst{0-0} = 0b0; 5891let Inst{13-13} = 0b0; 5892let Inst{19-19} = 0b0; 5893let Inst{31-22} = 0b0010000001; 5894let isPredicated = 1; 5895let isPredicatedFalse = 1; 5896let isTerminator = 1; 5897let isBranch = 1; 5898let isNewValue = 1; 5899let cofMax1 = 1; 5900let isRestrictNoSlot1Store = 1; 5901let Defs = [PC]; 5902let BaseOpcode = "J4_cmpeqr"; 5903let isTaken = Inst{13}; 5904let isExtendable = 1; 5905let opExtendable = 2; 5906let isExtentSigned = 1; 5907let opExtentBits = 11; 5908let opExtentAlign = 2; 5909let opNewValue = 0; 5910} 5911def J4_cmpeq_f_jumpnv_t : HInst< 5912(outs), 5913(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), 5914"if (!cmp.eq($Ns8.new,$Rt32)) jump:t $Ii", 5915tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel { 5916let Inst{0-0} = 0b0; 5917let Inst{13-13} = 0b1; 5918let Inst{19-19} = 0b0; 5919let Inst{31-22} = 0b0010000001; 5920let isPredicated = 1; 5921let isPredicatedFalse = 1; 5922let isTerminator = 1; 5923let isBranch = 1; 5924let isNewValue = 1; 5925let cofMax1 = 1; 5926let isRestrictNoSlot1Store = 1; 5927let Defs = [PC]; 5928let BaseOpcode = "J4_cmpeqr"; 5929let isTaken = Inst{13}; 5930let isExtendable = 1; 5931let opExtendable = 2; 5932let isExtentSigned = 1; 5933let opExtentBits = 11; 5934let opExtentAlign = 2; 5935let opNewValue = 0; 5936} 5937def J4_cmpeq_fp0_jump_nt : HInst< 5938(outs), 5939(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 5940"p0 = cmp.eq($Rs16,$Rt16); if (!p0.new) jump:nt $Ii", 5941tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 5942let Inst{0-0} = 0b0; 5943let Inst{13-12} = 0b00; 5944let Inst{31-22} = 0b0001010001; 5945let isPredicated = 1; 5946let isPredicatedFalse = 1; 5947let isTerminator = 1; 5948let isBranch = 1; 5949let isPredicatedNew = 1; 5950let cofRelax1 = 1; 5951let cofRelax2 = 1; 5952let cofMax1 = 1; 5953let Uses = [P0]; 5954let Defs = [P0, PC]; 5955let BaseOpcode = "J4_cmpeqp0"; 5956let isTaken = Inst{13}; 5957let isExtendable = 1; 5958let opExtendable = 2; 5959let isExtentSigned = 1; 5960let opExtentBits = 11; 5961let opExtentAlign = 2; 5962} 5963def J4_cmpeq_fp0_jump_t : HInst< 5964(outs), 5965(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 5966"p0 = cmp.eq($Rs16,$Rt16); if (!p0.new) jump:t $Ii", 5967tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 5968let Inst{0-0} = 0b0; 5969let Inst{13-12} = 0b10; 5970let Inst{31-22} = 0b0001010001; 5971let isPredicated = 1; 5972let isPredicatedFalse = 1; 5973let isTerminator = 1; 5974let isBranch = 1; 5975let isPredicatedNew = 1; 5976let cofRelax1 = 1; 5977let cofRelax2 = 1; 5978let cofMax1 = 1; 5979let Uses = [P0]; 5980let Defs = [P0, PC]; 5981let BaseOpcode = "J4_cmpeqp0"; 5982let isTaken = Inst{13}; 5983let isExtendable = 1; 5984let opExtendable = 2; 5985let isExtentSigned = 1; 5986let opExtentBits = 11; 5987let opExtentAlign = 2; 5988} 5989def J4_cmpeq_fp1_jump_nt : HInst< 5990(outs), 5991(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 5992"p1 = cmp.eq($Rs16,$Rt16); if (!p1.new) jump:nt $Ii", 5993tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 5994let Inst{0-0} = 0b0; 5995let Inst{13-12} = 0b01; 5996let Inst{31-22} = 0b0001010001; 5997let isPredicated = 1; 5998let isPredicatedFalse = 1; 5999let isTerminator = 1; 6000let isBranch = 1; 6001let isPredicatedNew = 1; 6002let cofRelax1 = 1; 6003let cofRelax2 = 1; 6004let cofMax1 = 1; 6005let Uses = [P1]; 6006let Defs = [P1, PC]; 6007let BaseOpcode = "J4_cmpeqp1"; 6008let isTaken = Inst{13}; 6009let isExtendable = 1; 6010let opExtendable = 2; 6011let isExtentSigned = 1; 6012let opExtentBits = 11; 6013let opExtentAlign = 2; 6014} 6015def J4_cmpeq_fp1_jump_t : HInst< 6016(outs), 6017(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 6018"p1 = cmp.eq($Rs16,$Rt16); if (!p1.new) jump:t $Ii", 6019tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 6020let Inst{0-0} = 0b0; 6021let Inst{13-12} = 0b11; 6022let Inst{31-22} = 0b0001010001; 6023let isPredicated = 1; 6024let isPredicatedFalse = 1; 6025let isTerminator = 1; 6026let isBranch = 1; 6027let isPredicatedNew = 1; 6028let cofRelax1 = 1; 6029let cofRelax2 = 1; 6030let cofMax1 = 1; 6031let Uses = [P1]; 6032let Defs = [P1, PC]; 6033let BaseOpcode = "J4_cmpeqp1"; 6034let isTaken = Inst{13}; 6035let isExtendable = 1; 6036let opExtendable = 2; 6037let isExtentSigned = 1; 6038let opExtentBits = 11; 6039let opExtentAlign = 2; 6040} 6041def J4_cmpeq_t_jumpnv_nt : HInst< 6042(outs), 6043(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), 6044"if (cmp.eq($Ns8.new,$Rt32)) jump:nt $Ii", 6045tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel { 6046let Inst{0-0} = 0b0; 6047let Inst{13-13} = 0b0; 6048let Inst{19-19} = 0b0; 6049let Inst{31-22} = 0b0010000000; 6050let isPredicated = 1; 6051let isTerminator = 1; 6052let isBranch = 1; 6053let isNewValue = 1; 6054let cofMax1 = 1; 6055let isRestrictNoSlot1Store = 1; 6056let Defs = [PC]; 6057let BaseOpcode = "J4_cmpeqr"; 6058let isTaken = Inst{13}; 6059let isExtendable = 1; 6060let opExtendable = 2; 6061let isExtentSigned = 1; 6062let opExtentBits = 11; 6063let opExtentAlign = 2; 6064let opNewValue = 0; 6065} 6066def J4_cmpeq_t_jumpnv_t : HInst< 6067(outs), 6068(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), 6069"if (cmp.eq($Ns8.new,$Rt32)) jump:t $Ii", 6070tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel { 6071let Inst{0-0} = 0b0; 6072let Inst{13-13} = 0b1; 6073let Inst{19-19} = 0b0; 6074let Inst{31-22} = 0b0010000000; 6075let isPredicated = 1; 6076let isTerminator = 1; 6077let isBranch = 1; 6078let isNewValue = 1; 6079let cofMax1 = 1; 6080let isRestrictNoSlot1Store = 1; 6081let Defs = [PC]; 6082let BaseOpcode = "J4_cmpeqr"; 6083let isTaken = Inst{13}; 6084let isExtendable = 1; 6085let opExtendable = 2; 6086let isExtentSigned = 1; 6087let opExtentBits = 11; 6088let opExtentAlign = 2; 6089let opNewValue = 0; 6090} 6091def J4_cmpeq_tp0_jump_nt : HInst< 6092(outs), 6093(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 6094"p0 = cmp.eq($Rs16,$Rt16); if (p0.new) jump:nt $Ii", 6095tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 6096let Inst{0-0} = 0b0; 6097let Inst{13-12} = 0b00; 6098let Inst{31-22} = 0b0001010000; 6099let isPredicated = 1; 6100let isTerminator = 1; 6101let isBranch = 1; 6102let isPredicatedNew = 1; 6103let cofRelax1 = 1; 6104let cofRelax2 = 1; 6105let cofMax1 = 1; 6106let Uses = [P0]; 6107let Defs = [P0, PC]; 6108let BaseOpcode = "J4_cmpeqp0"; 6109let isTaken = Inst{13}; 6110let isExtendable = 1; 6111let opExtendable = 2; 6112let isExtentSigned = 1; 6113let opExtentBits = 11; 6114let opExtentAlign = 2; 6115} 6116def J4_cmpeq_tp0_jump_t : HInst< 6117(outs), 6118(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 6119"p0 = cmp.eq($Rs16,$Rt16); if (p0.new) jump:t $Ii", 6120tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 6121let Inst{0-0} = 0b0; 6122let Inst{13-12} = 0b10; 6123let Inst{31-22} = 0b0001010000; 6124let isPredicated = 1; 6125let isTerminator = 1; 6126let isBranch = 1; 6127let isPredicatedNew = 1; 6128let cofRelax1 = 1; 6129let cofRelax2 = 1; 6130let cofMax1 = 1; 6131let Uses = [P0]; 6132let Defs = [P0, PC]; 6133let BaseOpcode = "J4_cmpeqp0"; 6134let isTaken = Inst{13}; 6135let isExtendable = 1; 6136let opExtendable = 2; 6137let isExtentSigned = 1; 6138let opExtentBits = 11; 6139let opExtentAlign = 2; 6140} 6141def J4_cmpeq_tp1_jump_nt : HInst< 6142(outs), 6143(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 6144"p1 = cmp.eq($Rs16,$Rt16); if (p1.new) jump:nt $Ii", 6145tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 6146let Inst{0-0} = 0b0; 6147let Inst{13-12} = 0b01; 6148let Inst{31-22} = 0b0001010000; 6149let isPredicated = 1; 6150let isTerminator = 1; 6151let isBranch = 1; 6152let isPredicatedNew = 1; 6153let cofRelax1 = 1; 6154let cofRelax2 = 1; 6155let cofMax1 = 1; 6156let Uses = [P1]; 6157let Defs = [P1, PC]; 6158let BaseOpcode = "J4_cmpeqp1"; 6159let isTaken = Inst{13}; 6160let isExtendable = 1; 6161let opExtendable = 2; 6162let isExtentSigned = 1; 6163let opExtentBits = 11; 6164let opExtentAlign = 2; 6165} 6166def J4_cmpeq_tp1_jump_t : HInst< 6167(outs), 6168(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 6169"p1 = cmp.eq($Rs16,$Rt16); if (p1.new) jump:t $Ii", 6170tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 6171let Inst{0-0} = 0b0; 6172let Inst{13-12} = 0b11; 6173let Inst{31-22} = 0b0001010000; 6174let isPredicated = 1; 6175let isTerminator = 1; 6176let isBranch = 1; 6177let isPredicatedNew = 1; 6178let cofRelax1 = 1; 6179let cofRelax2 = 1; 6180let cofMax1 = 1; 6181let Uses = [P1]; 6182let Defs = [P1, PC]; 6183let BaseOpcode = "J4_cmpeqp1"; 6184let isTaken = Inst{13}; 6185let isExtendable = 1; 6186let opExtendable = 2; 6187let isExtentSigned = 1; 6188let opExtentBits = 11; 6189let opExtentAlign = 2; 6190} 6191def J4_cmpeqi_f_jumpnv_nt : HInst< 6192(outs), 6193(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii), 6194"if (!cmp.eq($Ns8.new,#$II)) jump:nt $Ii", 6195tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel { 6196let Inst{0-0} = 0b0; 6197let Inst{13-13} = 0b0; 6198let Inst{19-19} = 0b0; 6199let Inst{31-22} = 0b0010010001; 6200let isPredicated = 1; 6201let isPredicatedFalse = 1; 6202let isTerminator = 1; 6203let isBranch = 1; 6204let isNewValue = 1; 6205let cofMax1 = 1; 6206let isRestrictNoSlot1Store = 1; 6207let Defs = [PC]; 6208let BaseOpcode = "J4_cmpeqi"; 6209let isTaken = Inst{13}; 6210let isExtendable = 1; 6211let opExtendable = 2; 6212let isExtentSigned = 1; 6213let opExtentBits = 11; 6214let opExtentAlign = 2; 6215let opNewValue = 0; 6216} 6217def J4_cmpeqi_f_jumpnv_t : HInst< 6218(outs), 6219(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii), 6220"if (!cmp.eq($Ns8.new,#$II)) jump:t $Ii", 6221tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel { 6222let Inst{0-0} = 0b0; 6223let Inst{13-13} = 0b1; 6224let Inst{19-19} = 0b0; 6225let Inst{31-22} = 0b0010010001; 6226let isPredicated = 1; 6227let isPredicatedFalse = 1; 6228let isTerminator = 1; 6229let isBranch = 1; 6230let isNewValue = 1; 6231let cofMax1 = 1; 6232let isRestrictNoSlot1Store = 1; 6233let Defs = [PC]; 6234let BaseOpcode = "J4_cmpeqi"; 6235let isTaken = Inst{13}; 6236let isExtendable = 1; 6237let opExtendable = 2; 6238let isExtentSigned = 1; 6239let opExtentBits = 11; 6240let opExtentAlign = 2; 6241let opNewValue = 0; 6242} 6243def J4_cmpeqi_fp0_jump_nt : HInst< 6244(outs), 6245(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 6246"p0 = cmp.eq($Rs16,#$II); if (!p0.new) jump:nt $Ii", 6247tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 6248let Inst{0-0} = 0b0; 6249let Inst{13-13} = 0b0; 6250let Inst{31-22} = 0b0001000001; 6251let isPredicated = 1; 6252let isPredicatedFalse = 1; 6253let isTerminator = 1; 6254let isBranch = 1; 6255let isPredicatedNew = 1; 6256let cofRelax1 = 1; 6257let cofRelax2 = 1; 6258let cofMax1 = 1; 6259let Uses = [P0]; 6260let Defs = [P0, PC]; 6261let BaseOpcode = "J4_cmpeqip0"; 6262let isTaken = Inst{13}; 6263let isExtendable = 1; 6264let opExtendable = 2; 6265let isExtentSigned = 1; 6266let opExtentBits = 11; 6267let opExtentAlign = 2; 6268} 6269def J4_cmpeqi_fp0_jump_t : HInst< 6270(outs), 6271(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 6272"p0 = cmp.eq($Rs16,#$II); if (!p0.new) jump:t $Ii", 6273tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 6274let Inst{0-0} = 0b0; 6275let Inst{13-13} = 0b1; 6276let Inst{31-22} = 0b0001000001; 6277let isPredicated = 1; 6278let isPredicatedFalse = 1; 6279let isTerminator = 1; 6280let isBranch = 1; 6281let isPredicatedNew = 1; 6282let cofRelax1 = 1; 6283let cofRelax2 = 1; 6284let cofMax1 = 1; 6285let Uses = [P0]; 6286let Defs = [P0, PC]; 6287let BaseOpcode = "J4_cmpeqip0"; 6288let isTaken = Inst{13}; 6289let isExtendable = 1; 6290let opExtendable = 2; 6291let isExtentSigned = 1; 6292let opExtentBits = 11; 6293let opExtentAlign = 2; 6294} 6295def J4_cmpeqi_fp1_jump_nt : HInst< 6296(outs), 6297(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 6298"p1 = cmp.eq($Rs16,#$II); if (!p1.new) jump:nt $Ii", 6299tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 6300let Inst{0-0} = 0b0; 6301let Inst{13-13} = 0b0; 6302let Inst{31-22} = 0b0001001001; 6303let isPredicated = 1; 6304let isPredicatedFalse = 1; 6305let isTerminator = 1; 6306let isBranch = 1; 6307let isPredicatedNew = 1; 6308let cofRelax1 = 1; 6309let cofRelax2 = 1; 6310let cofMax1 = 1; 6311let Uses = [P1]; 6312let Defs = [P1, PC]; 6313let BaseOpcode = "J4_cmpeqip1"; 6314let isTaken = Inst{13}; 6315let isExtendable = 1; 6316let opExtendable = 2; 6317let isExtentSigned = 1; 6318let opExtentBits = 11; 6319let opExtentAlign = 2; 6320} 6321def J4_cmpeqi_fp1_jump_t : HInst< 6322(outs), 6323(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 6324"p1 = cmp.eq($Rs16,#$II); if (!p1.new) jump:t $Ii", 6325tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 6326let Inst{0-0} = 0b0; 6327let Inst{13-13} = 0b1; 6328let Inst{31-22} = 0b0001001001; 6329let isPredicated = 1; 6330let isPredicatedFalse = 1; 6331let isTerminator = 1; 6332let isBranch = 1; 6333let isPredicatedNew = 1; 6334let cofRelax1 = 1; 6335let cofRelax2 = 1; 6336let cofMax1 = 1; 6337let Uses = [P1]; 6338let Defs = [P1, PC]; 6339let BaseOpcode = "J4_cmpeqip1"; 6340let isTaken = Inst{13}; 6341let isExtendable = 1; 6342let opExtendable = 2; 6343let isExtentSigned = 1; 6344let opExtentBits = 11; 6345let opExtentAlign = 2; 6346} 6347def J4_cmpeqi_t_jumpnv_nt : HInst< 6348(outs), 6349(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii), 6350"if (cmp.eq($Ns8.new,#$II)) jump:nt $Ii", 6351tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel { 6352let Inst{0-0} = 0b0; 6353let Inst{13-13} = 0b0; 6354let Inst{19-19} = 0b0; 6355let Inst{31-22} = 0b0010010000; 6356let isPredicated = 1; 6357let isTerminator = 1; 6358let isBranch = 1; 6359let isNewValue = 1; 6360let cofMax1 = 1; 6361let isRestrictNoSlot1Store = 1; 6362let Defs = [PC]; 6363let BaseOpcode = "J4_cmpeqi"; 6364let isTaken = Inst{13}; 6365let isExtendable = 1; 6366let opExtendable = 2; 6367let isExtentSigned = 1; 6368let opExtentBits = 11; 6369let opExtentAlign = 2; 6370let opNewValue = 0; 6371} 6372def J4_cmpeqi_t_jumpnv_t : HInst< 6373(outs), 6374(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii), 6375"if (cmp.eq($Ns8.new,#$II)) jump:t $Ii", 6376tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel { 6377let Inst{0-0} = 0b0; 6378let Inst{13-13} = 0b1; 6379let Inst{19-19} = 0b0; 6380let Inst{31-22} = 0b0010010000; 6381let isPredicated = 1; 6382let isTerminator = 1; 6383let isBranch = 1; 6384let isNewValue = 1; 6385let cofMax1 = 1; 6386let isRestrictNoSlot1Store = 1; 6387let Defs = [PC]; 6388let BaseOpcode = "J4_cmpeqi"; 6389let isTaken = Inst{13}; 6390let isExtendable = 1; 6391let opExtendable = 2; 6392let isExtentSigned = 1; 6393let opExtentBits = 11; 6394let opExtentAlign = 2; 6395let opNewValue = 0; 6396} 6397def J4_cmpeqi_tp0_jump_nt : HInst< 6398(outs), 6399(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 6400"p0 = cmp.eq($Rs16,#$II); if (p0.new) jump:nt $Ii", 6401tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 6402let Inst{0-0} = 0b0; 6403let Inst{13-13} = 0b0; 6404let Inst{31-22} = 0b0001000000; 6405let isPredicated = 1; 6406let isTerminator = 1; 6407let isBranch = 1; 6408let isPredicatedNew = 1; 6409let cofRelax1 = 1; 6410let cofRelax2 = 1; 6411let cofMax1 = 1; 6412let Uses = [P0]; 6413let Defs = [P0, PC]; 6414let BaseOpcode = "J4_cmpeqip0"; 6415let isTaken = Inst{13}; 6416let isExtendable = 1; 6417let opExtendable = 2; 6418let isExtentSigned = 1; 6419let opExtentBits = 11; 6420let opExtentAlign = 2; 6421} 6422def J4_cmpeqi_tp0_jump_t : HInst< 6423(outs), 6424(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 6425"p0 = cmp.eq($Rs16,#$II); if (p0.new) jump:t $Ii", 6426tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 6427let Inst{0-0} = 0b0; 6428let Inst{13-13} = 0b1; 6429let Inst{31-22} = 0b0001000000; 6430let isPredicated = 1; 6431let isTerminator = 1; 6432let isBranch = 1; 6433let isPredicatedNew = 1; 6434let cofRelax1 = 1; 6435let cofRelax2 = 1; 6436let cofMax1 = 1; 6437let Uses = [P0]; 6438let Defs = [P0, PC]; 6439let BaseOpcode = "J4_cmpeqip0"; 6440let isTaken = Inst{13}; 6441let isExtendable = 1; 6442let opExtendable = 2; 6443let isExtentSigned = 1; 6444let opExtentBits = 11; 6445let opExtentAlign = 2; 6446} 6447def J4_cmpeqi_tp1_jump_nt : HInst< 6448(outs), 6449(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 6450"p1 = cmp.eq($Rs16,#$II); if (p1.new) jump:nt $Ii", 6451tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 6452let Inst{0-0} = 0b0; 6453let Inst{13-13} = 0b0; 6454let Inst{31-22} = 0b0001001000; 6455let isPredicated = 1; 6456let isTerminator = 1; 6457let isBranch = 1; 6458let isPredicatedNew = 1; 6459let cofRelax1 = 1; 6460let cofRelax2 = 1; 6461let cofMax1 = 1; 6462let Uses = [P1]; 6463let Defs = [P1, PC]; 6464let BaseOpcode = "J4_cmpeqip1"; 6465let isTaken = Inst{13}; 6466let isExtendable = 1; 6467let opExtendable = 2; 6468let isExtentSigned = 1; 6469let opExtentBits = 11; 6470let opExtentAlign = 2; 6471} 6472def J4_cmpeqi_tp1_jump_t : HInst< 6473(outs), 6474(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 6475"p1 = cmp.eq($Rs16,#$II); if (p1.new) jump:t $Ii", 6476tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 6477let Inst{0-0} = 0b0; 6478let Inst{13-13} = 0b1; 6479let Inst{31-22} = 0b0001001000; 6480let isPredicated = 1; 6481let isTerminator = 1; 6482let isBranch = 1; 6483let isPredicatedNew = 1; 6484let cofRelax1 = 1; 6485let cofRelax2 = 1; 6486let cofMax1 = 1; 6487let Uses = [P1]; 6488let Defs = [P1, PC]; 6489let BaseOpcode = "J4_cmpeqip1"; 6490let isTaken = Inst{13}; 6491let isExtendable = 1; 6492let opExtendable = 2; 6493let isExtentSigned = 1; 6494let opExtentBits = 11; 6495let opExtentAlign = 2; 6496} 6497def J4_cmpeqn1_f_jumpnv_nt : HInst< 6498(outs), 6499(ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii), 6500"if (!cmp.eq($Ns8.new,#$n1)) jump:nt $Ii", 6501tc_f6e2aff9, TypeNCJ>, Enc_e90a15, PredRel { 6502let Inst{0-0} = 0b0; 6503let Inst{13-8} = 0b000000; 6504let Inst{19-19} = 0b0; 6505let Inst{31-22} = 0b0010011001; 6506let isPredicated = 1; 6507let isPredicatedFalse = 1; 6508let isTerminator = 1; 6509let isBranch = 1; 6510let isNewValue = 1; 6511let cofMax1 = 1; 6512let isRestrictNoSlot1Store = 1; 6513let Defs = [PC]; 6514let BaseOpcode = "J4_cmpeqn1r"; 6515let isTaken = Inst{13}; 6516let isExtendable = 1; 6517let opExtendable = 2; 6518let isExtentSigned = 1; 6519let opExtentBits = 11; 6520let opExtentAlign = 2; 6521let opNewValue = 0; 6522} 6523def J4_cmpeqn1_f_jumpnv_t : HInst< 6524(outs), 6525(ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii), 6526"if (!cmp.eq($Ns8.new,#$n1)) jump:t $Ii", 6527tc_f6e2aff9, TypeNCJ>, Enc_5a18b3, PredRel { 6528let Inst{0-0} = 0b0; 6529let Inst{13-8} = 0b100000; 6530let Inst{19-19} = 0b0; 6531let Inst{31-22} = 0b0010011001; 6532let isPredicated = 1; 6533let isPredicatedFalse = 1; 6534let isTerminator = 1; 6535let isBranch = 1; 6536let isNewValue = 1; 6537let cofMax1 = 1; 6538let isRestrictNoSlot1Store = 1; 6539let Defs = [PC]; 6540let BaseOpcode = "J4_cmpeqn1r"; 6541let isTaken = Inst{13}; 6542let isExtendable = 1; 6543let opExtendable = 2; 6544let isExtentSigned = 1; 6545let opExtentBits = 11; 6546let opExtentAlign = 2; 6547let opNewValue = 0; 6548} 6549def J4_cmpeqn1_fp0_jump_nt : HInst< 6550(outs), 6551(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 6552"p0 = cmp.eq($Rs16,#$n1); if (!p0.new) jump:nt $Ii", 6553tc_24f426ab, TypeCJ>, Enc_1de724, PredRel { 6554let Inst{0-0} = 0b0; 6555let Inst{13-8} = 0b000000; 6556let Inst{31-22} = 0b0001000111; 6557let isPredicated = 1; 6558let isPredicatedFalse = 1; 6559let isTerminator = 1; 6560let isBranch = 1; 6561let isPredicatedNew = 1; 6562let cofRelax1 = 1; 6563let cofRelax2 = 1; 6564let cofMax1 = 1; 6565let Uses = [P0]; 6566let Defs = [P0, PC]; 6567let BaseOpcode = "J4_cmpeqn1p0"; 6568let isTaken = Inst{13}; 6569let isExtendable = 1; 6570let opExtendable = 2; 6571let isExtentSigned = 1; 6572let opExtentBits = 11; 6573let opExtentAlign = 2; 6574} 6575def J4_cmpeqn1_fp0_jump_t : HInst< 6576(outs), 6577(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 6578"p0 = cmp.eq($Rs16,#$n1); if (!p0.new) jump:t $Ii", 6579tc_24f426ab, TypeCJ>, Enc_14640c, PredRel { 6580let Inst{0-0} = 0b0; 6581let Inst{13-8} = 0b100000; 6582let Inst{31-22} = 0b0001000111; 6583let isPredicated = 1; 6584let isPredicatedFalse = 1; 6585let isTerminator = 1; 6586let isBranch = 1; 6587let isPredicatedNew = 1; 6588let cofRelax1 = 1; 6589let cofRelax2 = 1; 6590let cofMax1 = 1; 6591let Uses = [P0]; 6592let Defs = [P0, PC]; 6593let BaseOpcode = "J4_cmpeqn1p0"; 6594let isTaken = Inst{13}; 6595let isExtendable = 1; 6596let opExtendable = 2; 6597let isExtentSigned = 1; 6598let opExtentBits = 11; 6599let opExtentAlign = 2; 6600} 6601def J4_cmpeqn1_fp1_jump_nt : HInst< 6602(outs), 6603(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 6604"p1 = cmp.eq($Rs16,#$n1); if (!p1.new) jump:nt $Ii", 6605tc_24f426ab, TypeCJ>, Enc_668704, PredRel { 6606let Inst{0-0} = 0b0; 6607let Inst{13-8} = 0b000000; 6608let Inst{31-22} = 0b0001001111; 6609let isPredicated = 1; 6610let isPredicatedFalse = 1; 6611let isTerminator = 1; 6612let isBranch = 1; 6613let isPredicatedNew = 1; 6614let cofRelax1 = 1; 6615let cofRelax2 = 1; 6616let cofMax1 = 1; 6617let Uses = [P1]; 6618let Defs = [P1, PC]; 6619let BaseOpcode = "J4_cmpeqn1p1"; 6620let isTaken = Inst{13}; 6621let isExtendable = 1; 6622let opExtendable = 2; 6623let isExtentSigned = 1; 6624let opExtentBits = 11; 6625let opExtentAlign = 2; 6626} 6627def J4_cmpeqn1_fp1_jump_t : HInst< 6628(outs), 6629(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 6630"p1 = cmp.eq($Rs16,#$n1); if (!p1.new) jump:t $Ii", 6631tc_24f426ab, TypeCJ>, Enc_800e04, PredRel { 6632let Inst{0-0} = 0b0; 6633let Inst{13-8} = 0b100000; 6634let Inst{31-22} = 0b0001001111; 6635let isPredicated = 1; 6636let isPredicatedFalse = 1; 6637let isTerminator = 1; 6638let isBranch = 1; 6639let isPredicatedNew = 1; 6640let cofRelax1 = 1; 6641let cofRelax2 = 1; 6642let cofMax1 = 1; 6643let Uses = [P1]; 6644let Defs = [P1, PC]; 6645let BaseOpcode = "J4_cmpeqn1p1"; 6646let isTaken = Inst{13}; 6647let isExtendable = 1; 6648let opExtendable = 2; 6649let isExtentSigned = 1; 6650let opExtentBits = 11; 6651let opExtentAlign = 2; 6652} 6653def J4_cmpeqn1_t_jumpnv_nt : HInst< 6654(outs), 6655(ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii), 6656"if (cmp.eq($Ns8.new,#$n1)) jump:nt $Ii", 6657tc_f6e2aff9, TypeNCJ>, Enc_4aca3a, PredRel { 6658let Inst{0-0} = 0b0; 6659let Inst{13-8} = 0b000000; 6660let Inst{19-19} = 0b0; 6661let Inst{31-22} = 0b0010011000; 6662let isPredicated = 1; 6663let isTerminator = 1; 6664let isBranch = 1; 6665let isNewValue = 1; 6666let cofMax1 = 1; 6667let isRestrictNoSlot1Store = 1; 6668let Defs = [PC]; 6669let BaseOpcode = "J4_cmpeqn1r"; 6670let isTaken = Inst{13}; 6671let isExtendable = 1; 6672let opExtendable = 2; 6673let isExtentSigned = 1; 6674let opExtentBits = 11; 6675let opExtentAlign = 2; 6676let opNewValue = 0; 6677} 6678def J4_cmpeqn1_t_jumpnv_t : HInst< 6679(outs), 6680(ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii), 6681"if (cmp.eq($Ns8.new,#$n1)) jump:t $Ii", 6682tc_f6e2aff9, TypeNCJ>, Enc_f7ea77, PredRel { 6683let Inst{0-0} = 0b0; 6684let Inst{13-8} = 0b100000; 6685let Inst{19-19} = 0b0; 6686let Inst{31-22} = 0b0010011000; 6687let isPredicated = 1; 6688let isTerminator = 1; 6689let isBranch = 1; 6690let isNewValue = 1; 6691let cofMax1 = 1; 6692let isRestrictNoSlot1Store = 1; 6693let Defs = [PC]; 6694let BaseOpcode = "J4_cmpeqn1r"; 6695let isTaken = Inst{13}; 6696let isExtendable = 1; 6697let opExtendable = 2; 6698let isExtentSigned = 1; 6699let opExtentBits = 11; 6700let opExtentAlign = 2; 6701let opNewValue = 0; 6702} 6703def J4_cmpeqn1_tp0_jump_nt : HInst< 6704(outs), 6705(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 6706"p0 = cmp.eq($Rs16,#$n1); if (p0.new) jump:nt $Ii", 6707tc_24f426ab, TypeCJ>, Enc_405228, PredRel { 6708let Inst{0-0} = 0b0; 6709let Inst{13-8} = 0b000000; 6710let Inst{31-22} = 0b0001000110; 6711let isPredicated = 1; 6712let isTerminator = 1; 6713let isBranch = 1; 6714let isPredicatedNew = 1; 6715let cofRelax1 = 1; 6716let cofRelax2 = 1; 6717let cofMax1 = 1; 6718let Uses = [P0]; 6719let Defs = [P0, PC]; 6720let BaseOpcode = "J4_cmpeqn1p0"; 6721let isTaken = Inst{13}; 6722let isExtendable = 1; 6723let opExtendable = 2; 6724let isExtentSigned = 1; 6725let opExtentBits = 11; 6726let opExtentAlign = 2; 6727} 6728def J4_cmpeqn1_tp0_jump_t : HInst< 6729(outs), 6730(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 6731"p0 = cmp.eq($Rs16,#$n1); if (p0.new) jump:t $Ii", 6732tc_24f426ab, TypeCJ>, Enc_3a2484, PredRel { 6733let Inst{0-0} = 0b0; 6734let Inst{13-8} = 0b100000; 6735let Inst{31-22} = 0b0001000110; 6736let isPredicated = 1; 6737let isTerminator = 1; 6738let isBranch = 1; 6739let isPredicatedNew = 1; 6740let cofRelax1 = 1; 6741let cofRelax2 = 1; 6742let cofMax1 = 1; 6743let Uses = [P0]; 6744let Defs = [P0, PC]; 6745let BaseOpcode = "J4_cmpeqn1p0"; 6746let isTaken = Inst{13}; 6747let isExtendable = 1; 6748let opExtendable = 2; 6749let isExtentSigned = 1; 6750let opExtentBits = 11; 6751let opExtentAlign = 2; 6752} 6753def J4_cmpeqn1_tp1_jump_nt : HInst< 6754(outs), 6755(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 6756"p1 = cmp.eq($Rs16,#$n1); if (p1.new) jump:nt $Ii", 6757tc_24f426ab, TypeCJ>, Enc_736575, PredRel { 6758let Inst{0-0} = 0b0; 6759let Inst{13-8} = 0b000000; 6760let Inst{31-22} = 0b0001001110; 6761let isPredicated = 1; 6762let isTerminator = 1; 6763let isBranch = 1; 6764let isPredicatedNew = 1; 6765let cofRelax1 = 1; 6766let cofRelax2 = 1; 6767let cofMax1 = 1; 6768let Uses = [P1]; 6769let Defs = [P1, PC]; 6770let BaseOpcode = "J4_cmpeqn1p1"; 6771let isTaken = Inst{13}; 6772let isExtendable = 1; 6773let opExtendable = 2; 6774let isExtentSigned = 1; 6775let opExtentBits = 11; 6776let opExtentAlign = 2; 6777} 6778def J4_cmpeqn1_tp1_jump_t : HInst< 6779(outs), 6780(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 6781"p1 = cmp.eq($Rs16,#$n1); if (p1.new) jump:t $Ii", 6782tc_24f426ab, TypeCJ>, Enc_8e583a, PredRel { 6783let Inst{0-0} = 0b0; 6784let Inst{13-8} = 0b100000; 6785let Inst{31-22} = 0b0001001110; 6786let isPredicated = 1; 6787let isTerminator = 1; 6788let isBranch = 1; 6789let isPredicatedNew = 1; 6790let cofRelax1 = 1; 6791let cofRelax2 = 1; 6792let cofMax1 = 1; 6793let Uses = [P1]; 6794let Defs = [P1, PC]; 6795let BaseOpcode = "J4_cmpeqn1p1"; 6796let isTaken = Inst{13}; 6797let isExtendable = 1; 6798let opExtendable = 2; 6799let isExtentSigned = 1; 6800let opExtentBits = 11; 6801let opExtentAlign = 2; 6802} 6803def J4_cmpgt_f_jumpnv_nt : HInst< 6804(outs), 6805(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), 6806"if (!cmp.gt($Ns8.new,$Rt32)) jump:nt $Ii", 6807tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel { 6808let Inst{0-0} = 0b0; 6809let Inst{13-13} = 0b0; 6810let Inst{19-19} = 0b0; 6811let Inst{31-22} = 0b0010000011; 6812let isPredicated = 1; 6813let isPredicatedFalse = 1; 6814let isTerminator = 1; 6815let isBranch = 1; 6816let isNewValue = 1; 6817let cofMax1 = 1; 6818let isRestrictNoSlot1Store = 1; 6819let Defs = [PC]; 6820let BaseOpcode = "J4_cmpgtr"; 6821let isTaken = Inst{13}; 6822let isExtendable = 1; 6823let opExtendable = 2; 6824let isExtentSigned = 1; 6825let opExtentBits = 11; 6826let opExtentAlign = 2; 6827let opNewValue = 0; 6828} 6829def J4_cmpgt_f_jumpnv_t : HInst< 6830(outs), 6831(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), 6832"if (!cmp.gt($Ns8.new,$Rt32)) jump:t $Ii", 6833tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel { 6834let Inst{0-0} = 0b0; 6835let Inst{13-13} = 0b1; 6836let Inst{19-19} = 0b0; 6837let Inst{31-22} = 0b0010000011; 6838let isPredicated = 1; 6839let isPredicatedFalse = 1; 6840let isTerminator = 1; 6841let isBranch = 1; 6842let isNewValue = 1; 6843let cofMax1 = 1; 6844let isRestrictNoSlot1Store = 1; 6845let Defs = [PC]; 6846let BaseOpcode = "J4_cmpgtr"; 6847let isTaken = Inst{13}; 6848let isExtendable = 1; 6849let opExtendable = 2; 6850let isExtentSigned = 1; 6851let opExtentBits = 11; 6852let opExtentAlign = 2; 6853let opNewValue = 0; 6854} 6855def J4_cmpgt_fp0_jump_nt : HInst< 6856(outs), 6857(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 6858"p0 = cmp.gt($Rs16,$Rt16); if (!p0.new) jump:nt $Ii", 6859tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 6860let Inst{0-0} = 0b0; 6861let Inst{13-12} = 0b00; 6862let Inst{31-22} = 0b0001010011; 6863let isPredicated = 1; 6864let isPredicatedFalse = 1; 6865let isTerminator = 1; 6866let isBranch = 1; 6867let isPredicatedNew = 1; 6868let cofRelax1 = 1; 6869let cofRelax2 = 1; 6870let cofMax1 = 1; 6871let Uses = [P0]; 6872let Defs = [P0, PC]; 6873let BaseOpcode = "J4_cmpgtp0"; 6874let isTaken = Inst{13}; 6875let isExtendable = 1; 6876let opExtendable = 2; 6877let isExtentSigned = 1; 6878let opExtentBits = 11; 6879let opExtentAlign = 2; 6880} 6881def J4_cmpgt_fp0_jump_t : HInst< 6882(outs), 6883(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 6884"p0 = cmp.gt($Rs16,$Rt16); if (!p0.new) jump:t $Ii", 6885tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 6886let Inst{0-0} = 0b0; 6887let Inst{13-12} = 0b10; 6888let Inst{31-22} = 0b0001010011; 6889let isPredicated = 1; 6890let isPredicatedFalse = 1; 6891let isTerminator = 1; 6892let isBranch = 1; 6893let isPredicatedNew = 1; 6894let cofRelax1 = 1; 6895let cofRelax2 = 1; 6896let cofMax1 = 1; 6897let Uses = [P0]; 6898let Defs = [P0, PC]; 6899let BaseOpcode = "J4_cmpgtp0"; 6900let isTaken = Inst{13}; 6901let isExtendable = 1; 6902let opExtendable = 2; 6903let isExtentSigned = 1; 6904let opExtentBits = 11; 6905let opExtentAlign = 2; 6906} 6907def J4_cmpgt_fp1_jump_nt : HInst< 6908(outs), 6909(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 6910"p1 = cmp.gt($Rs16,$Rt16); if (!p1.new) jump:nt $Ii", 6911tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 6912let Inst{0-0} = 0b0; 6913let Inst{13-12} = 0b01; 6914let Inst{31-22} = 0b0001010011; 6915let isPredicated = 1; 6916let isPredicatedFalse = 1; 6917let isTerminator = 1; 6918let isBranch = 1; 6919let isPredicatedNew = 1; 6920let cofRelax1 = 1; 6921let cofRelax2 = 1; 6922let cofMax1 = 1; 6923let Uses = [P1]; 6924let Defs = [P1, PC]; 6925let BaseOpcode = "J4_cmpgtp1"; 6926let isTaken = Inst{13}; 6927let isExtendable = 1; 6928let opExtendable = 2; 6929let isExtentSigned = 1; 6930let opExtentBits = 11; 6931let opExtentAlign = 2; 6932} 6933def J4_cmpgt_fp1_jump_t : HInst< 6934(outs), 6935(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 6936"p1 = cmp.gt($Rs16,$Rt16); if (!p1.new) jump:t $Ii", 6937tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 6938let Inst{0-0} = 0b0; 6939let Inst{13-12} = 0b11; 6940let Inst{31-22} = 0b0001010011; 6941let isPredicated = 1; 6942let isPredicatedFalse = 1; 6943let isTerminator = 1; 6944let isBranch = 1; 6945let isPredicatedNew = 1; 6946let cofRelax1 = 1; 6947let cofRelax2 = 1; 6948let cofMax1 = 1; 6949let Uses = [P1]; 6950let Defs = [P1, PC]; 6951let BaseOpcode = "J4_cmpgtp1"; 6952let isTaken = Inst{13}; 6953let isExtendable = 1; 6954let opExtendable = 2; 6955let isExtentSigned = 1; 6956let opExtentBits = 11; 6957let opExtentAlign = 2; 6958} 6959def J4_cmpgt_t_jumpnv_nt : HInst< 6960(outs), 6961(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), 6962"if (cmp.gt($Ns8.new,$Rt32)) jump:nt $Ii", 6963tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel { 6964let Inst{0-0} = 0b0; 6965let Inst{13-13} = 0b0; 6966let Inst{19-19} = 0b0; 6967let Inst{31-22} = 0b0010000010; 6968let isPredicated = 1; 6969let isTerminator = 1; 6970let isBranch = 1; 6971let isNewValue = 1; 6972let cofMax1 = 1; 6973let isRestrictNoSlot1Store = 1; 6974let Defs = [PC]; 6975let BaseOpcode = "J4_cmpgtr"; 6976let isTaken = Inst{13}; 6977let isExtendable = 1; 6978let opExtendable = 2; 6979let isExtentSigned = 1; 6980let opExtentBits = 11; 6981let opExtentAlign = 2; 6982let opNewValue = 0; 6983} 6984def J4_cmpgt_t_jumpnv_t : HInst< 6985(outs), 6986(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), 6987"if (cmp.gt($Ns8.new,$Rt32)) jump:t $Ii", 6988tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel { 6989let Inst{0-0} = 0b0; 6990let Inst{13-13} = 0b1; 6991let Inst{19-19} = 0b0; 6992let Inst{31-22} = 0b0010000010; 6993let isPredicated = 1; 6994let isTerminator = 1; 6995let isBranch = 1; 6996let isNewValue = 1; 6997let cofMax1 = 1; 6998let isRestrictNoSlot1Store = 1; 6999let Defs = [PC]; 7000let BaseOpcode = "J4_cmpgtr"; 7001let isTaken = Inst{13}; 7002let isExtendable = 1; 7003let opExtendable = 2; 7004let isExtentSigned = 1; 7005let opExtentBits = 11; 7006let opExtentAlign = 2; 7007let opNewValue = 0; 7008} 7009def J4_cmpgt_tp0_jump_nt : HInst< 7010(outs), 7011(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 7012"p0 = cmp.gt($Rs16,$Rt16); if (p0.new) jump:nt $Ii", 7013tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 7014let Inst{0-0} = 0b0; 7015let Inst{13-12} = 0b00; 7016let Inst{31-22} = 0b0001010010; 7017let isPredicated = 1; 7018let isTerminator = 1; 7019let isBranch = 1; 7020let isPredicatedNew = 1; 7021let cofRelax1 = 1; 7022let cofRelax2 = 1; 7023let cofMax1 = 1; 7024let Uses = [P0]; 7025let Defs = [P0, PC]; 7026let BaseOpcode = "J4_cmpgtp0"; 7027let isTaken = Inst{13}; 7028let isExtendable = 1; 7029let opExtendable = 2; 7030let isExtentSigned = 1; 7031let opExtentBits = 11; 7032let opExtentAlign = 2; 7033} 7034def J4_cmpgt_tp0_jump_t : HInst< 7035(outs), 7036(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 7037"p0 = cmp.gt($Rs16,$Rt16); if (p0.new) jump:t $Ii", 7038tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 7039let Inst{0-0} = 0b0; 7040let Inst{13-12} = 0b10; 7041let Inst{31-22} = 0b0001010010; 7042let isPredicated = 1; 7043let isTerminator = 1; 7044let isBranch = 1; 7045let isPredicatedNew = 1; 7046let cofRelax1 = 1; 7047let cofRelax2 = 1; 7048let cofMax1 = 1; 7049let Uses = [P0]; 7050let Defs = [P0, PC]; 7051let BaseOpcode = "J4_cmpgtp0"; 7052let isTaken = Inst{13}; 7053let isExtendable = 1; 7054let opExtendable = 2; 7055let isExtentSigned = 1; 7056let opExtentBits = 11; 7057let opExtentAlign = 2; 7058} 7059def J4_cmpgt_tp1_jump_nt : HInst< 7060(outs), 7061(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 7062"p1 = cmp.gt($Rs16,$Rt16); if (p1.new) jump:nt $Ii", 7063tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 7064let Inst{0-0} = 0b0; 7065let Inst{13-12} = 0b01; 7066let Inst{31-22} = 0b0001010010; 7067let isPredicated = 1; 7068let isTerminator = 1; 7069let isBranch = 1; 7070let isPredicatedNew = 1; 7071let cofRelax1 = 1; 7072let cofRelax2 = 1; 7073let cofMax1 = 1; 7074let Uses = [P1]; 7075let Defs = [P1, PC]; 7076let BaseOpcode = "J4_cmpgtp1"; 7077let isTaken = Inst{13}; 7078let isExtendable = 1; 7079let opExtendable = 2; 7080let isExtentSigned = 1; 7081let opExtentBits = 11; 7082let opExtentAlign = 2; 7083} 7084def J4_cmpgt_tp1_jump_t : HInst< 7085(outs), 7086(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 7087"p1 = cmp.gt($Rs16,$Rt16); if (p1.new) jump:t $Ii", 7088tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 7089let Inst{0-0} = 0b0; 7090let Inst{13-12} = 0b11; 7091let Inst{31-22} = 0b0001010010; 7092let isPredicated = 1; 7093let isTerminator = 1; 7094let isBranch = 1; 7095let isPredicatedNew = 1; 7096let cofRelax1 = 1; 7097let cofRelax2 = 1; 7098let cofMax1 = 1; 7099let Uses = [P1]; 7100let Defs = [P1, PC]; 7101let BaseOpcode = "J4_cmpgtp1"; 7102let isTaken = Inst{13}; 7103let isExtendable = 1; 7104let opExtendable = 2; 7105let isExtentSigned = 1; 7106let opExtentBits = 11; 7107let opExtentAlign = 2; 7108} 7109def J4_cmpgti_f_jumpnv_nt : HInst< 7110(outs), 7111(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii), 7112"if (!cmp.gt($Ns8.new,#$II)) jump:nt $Ii", 7113tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel { 7114let Inst{0-0} = 0b0; 7115let Inst{13-13} = 0b0; 7116let Inst{19-19} = 0b0; 7117let Inst{31-22} = 0b0010010011; 7118let isPredicated = 1; 7119let isPredicatedFalse = 1; 7120let isTerminator = 1; 7121let isBranch = 1; 7122let isNewValue = 1; 7123let cofMax1 = 1; 7124let isRestrictNoSlot1Store = 1; 7125let Defs = [PC]; 7126let BaseOpcode = "J4_cmpgtir"; 7127let isTaken = Inst{13}; 7128let isExtendable = 1; 7129let opExtendable = 2; 7130let isExtentSigned = 1; 7131let opExtentBits = 11; 7132let opExtentAlign = 2; 7133let opNewValue = 0; 7134} 7135def J4_cmpgti_f_jumpnv_t : HInst< 7136(outs), 7137(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii), 7138"if (!cmp.gt($Ns8.new,#$II)) jump:t $Ii", 7139tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel { 7140let Inst{0-0} = 0b0; 7141let Inst{13-13} = 0b1; 7142let Inst{19-19} = 0b0; 7143let Inst{31-22} = 0b0010010011; 7144let isPredicated = 1; 7145let isPredicatedFalse = 1; 7146let isTerminator = 1; 7147let isBranch = 1; 7148let isNewValue = 1; 7149let cofMax1 = 1; 7150let isRestrictNoSlot1Store = 1; 7151let Defs = [PC]; 7152let BaseOpcode = "J4_cmpgtir"; 7153let isTaken = Inst{13}; 7154let isExtendable = 1; 7155let opExtendable = 2; 7156let isExtentSigned = 1; 7157let opExtentBits = 11; 7158let opExtentAlign = 2; 7159let opNewValue = 0; 7160} 7161def J4_cmpgti_fp0_jump_nt : HInst< 7162(outs), 7163(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 7164"p0 = cmp.gt($Rs16,#$II); if (!p0.new) jump:nt $Ii", 7165tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 7166let Inst{0-0} = 0b0; 7167let Inst{13-13} = 0b0; 7168let Inst{31-22} = 0b0001000011; 7169let isPredicated = 1; 7170let isPredicatedFalse = 1; 7171let isTerminator = 1; 7172let isBranch = 1; 7173let isPredicatedNew = 1; 7174let cofRelax1 = 1; 7175let cofRelax2 = 1; 7176let cofMax1 = 1; 7177let Uses = [P0]; 7178let Defs = [P0, PC]; 7179let BaseOpcode = "J4_cmpgtip0"; 7180let isTaken = Inst{13}; 7181let isExtendable = 1; 7182let opExtendable = 2; 7183let isExtentSigned = 1; 7184let opExtentBits = 11; 7185let opExtentAlign = 2; 7186} 7187def J4_cmpgti_fp0_jump_t : HInst< 7188(outs), 7189(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 7190"p0 = cmp.gt($Rs16,#$II); if (!p0.new) jump:t $Ii", 7191tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 7192let Inst{0-0} = 0b0; 7193let Inst{13-13} = 0b1; 7194let Inst{31-22} = 0b0001000011; 7195let isPredicated = 1; 7196let isPredicatedFalse = 1; 7197let isTerminator = 1; 7198let isBranch = 1; 7199let isPredicatedNew = 1; 7200let cofRelax1 = 1; 7201let cofRelax2 = 1; 7202let cofMax1 = 1; 7203let Uses = [P0]; 7204let Defs = [P0, PC]; 7205let BaseOpcode = "J4_cmpgtip0"; 7206let isTaken = Inst{13}; 7207let isExtendable = 1; 7208let opExtendable = 2; 7209let isExtentSigned = 1; 7210let opExtentBits = 11; 7211let opExtentAlign = 2; 7212} 7213def J4_cmpgti_fp1_jump_nt : HInst< 7214(outs), 7215(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 7216"p1 = cmp.gt($Rs16,#$II); if (!p1.new) jump:nt $Ii", 7217tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 7218let Inst{0-0} = 0b0; 7219let Inst{13-13} = 0b0; 7220let Inst{31-22} = 0b0001001011; 7221let isPredicated = 1; 7222let isPredicatedFalse = 1; 7223let isTerminator = 1; 7224let isBranch = 1; 7225let isPredicatedNew = 1; 7226let cofRelax1 = 1; 7227let cofRelax2 = 1; 7228let cofMax1 = 1; 7229let Uses = [P1]; 7230let Defs = [P1, PC]; 7231let BaseOpcode = "J4_cmpgtip1"; 7232let isTaken = Inst{13}; 7233let isExtendable = 1; 7234let opExtendable = 2; 7235let isExtentSigned = 1; 7236let opExtentBits = 11; 7237let opExtentAlign = 2; 7238} 7239def J4_cmpgti_fp1_jump_t : HInst< 7240(outs), 7241(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 7242"p1 = cmp.gt($Rs16,#$II); if (!p1.new) jump:t $Ii", 7243tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 7244let Inst{0-0} = 0b0; 7245let Inst{13-13} = 0b1; 7246let Inst{31-22} = 0b0001001011; 7247let isPredicated = 1; 7248let isPredicatedFalse = 1; 7249let isTerminator = 1; 7250let isBranch = 1; 7251let isPredicatedNew = 1; 7252let cofRelax1 = 1; 7253let cofRelax2 = 1; 7254let cofMax1 = 1; 7255let Uses = [P1]; 7256let Defs = [P1, PC]; 7257let BaseOpcode = "J4_cmpgtip1"; 7258let isTaken = Inst{13}; 7259let isExtendable = 1; 7260let opExtendable = 2; 7261let isExtentSigned = 1; 7262let opExtentBits = 11; 7263let opExtentAlign = 2; 7264} 7265def J4_cmpgti_t_jumpnv_nt : HInst< 7266(outs), 7267(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii), 7268"if (cmp.gt($Ns8.new,#$II)) jump:nt $Ii", 7269tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel { 7270let Inst{0-0} = 0b0; 7271let Inst{13-13} = 0b0; 7272let Inst{19-19} = 0b0; 7273let Inst{31-22} = 0b0010010010; 7274let isPredicated = 1; 7275let isTerminator = 1; 7276let isBranch = 1; 7277let isNewValue = 1; 7278let cofMax1 = 1; 7279let isRestrictNoSlot1Store = 1; 7280let Defs = [PC]; 7281let BaseOpcode = "J4_cmpgtir"; 7282let isTaken = Inst{13}; 7283let isExtendable = 1; 7284let opExtendable = 2; 7285let isExtentSigned = 1; 7286let opExtentBits = 11; 7287let opExtentAlign = 2; 7288let opNewValue = 0; 7289} 7290def J4_cmpgti_t_jumpnv_t : HInst< 7291(outs), 7292(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii), 7293"if (cmp.gt($Ns8.new,#$II)) jump:t $Ii", 7294tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel { 7295let Inst{0-0} = 0b0; 7296let Inst{13-13} = 0b1; 7297let Inst{19-19} = 0b0; 7298let Inst{31-22} = 0b0010010010; 7299let isPredicated = 1; 7300let isTerminator = 1; 7301let isBranch = 1; 7302let isNewValue = 1; 7303let cofMax1 = 1; 7304let isRestrictNoSlot1Store = 1; 7305let Defs = [PC]; 7306let BaseOpcode = "J4_cmpgtir"; 7307let isTaken = Inst{13}; 7308let isExtendable = 1; 7309let opExtendable = 2; 7310let isExtentSigned = 1; 7311let opExtentBits = 11; 7312let opExtentAlign = 2; 7313let opNewValue = 0; 7314} 7315def J4_cmpgti_tp0_jump_nt : HInst< 7316(outs), 7317(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 7318"p0 = cmp.gt($Rs16,#$II); if (p0.new) jump:nt $Ii", 7319tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 7320let Inst{0-0} = 0b0; 7321let Inst{13-13} = 0b0; 7322let Inst{31-22} = 0b0001000010; 7323let isPredicated = 1; 7324let isTerminator = 1; 7325let isBranch = 1; 7326let isPredicatedNew = 1; 7327let cofRelax1 = 1; 7328let cofRelax2 = 1; 7329let cofMax1 = 1; 7330let Uses = [P0]; 7331let Defs = [P0, PC]; 7332let BaseOpcode = "J4_cmpgtip0"; 7333let isTaken = Inst{13}; 7334let isExtendable = 1; 7335let opExtendable = 2; 7336let isExtentSigned = 1; 7337let opExtentBits = 11; 7338let opExtentAlign = 2; 7339} 7340def J4_cmpgti_tp0_jump_t : HInst< 7341(outs), 7342(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 7343"p0 = cmp.gt($Rs16,#$II); if (p0.new) jump:t $Ii", 7344tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 7345let Inst{0-0} = 0b0; 7346let Inst{13-13} = 0b1; 7347let Inst{31-22} = 0b0001000010; 7348let isPredicated = 1; 7349let isTerminator = 1; 7350let isBranch = 1; 7351let isPredicatedNew = 1; 7352let cofRelax1 = 1; 7353let cofRelax2 = 1; 7354let cofMax1 = 1; 7355let Uses = [P0]; 7356let Defs = [P0, PC]; 7357let BaseOpcode = "J4_cmpgtip0"; 7358let isTaken = Inst{13}; 7359let isExtendable = 1; 7360let opExtendable = 2; 7361let isExtentSigned = 1; 7362let opExtentBits = 11; 7363let opExtentAlign = 2; 7364} 7365def J4_cmpgti_tp1_jump_nt : HInst< 7366(outs), 7367(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 7368"p1 = cmp.gt($Rs16,#$II); if (p1.new) jump:nt $Ii", 7369tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 7370let Inst{0-0} = 0b0; 7371let Inst{13-13} = 0b0; 7372let Inst{31-22} = 0b0001001010; 7373let isPredicated = 1; 7374let isTerminator = 1; 7375let isBranch = 1; 7376let isPredicatedNew = 1; 7377let cofRelax1 = 1; 7378let cofRelax2 = 1; 7379let cofMax1 = 1; 7380let Uses = [P1]; 7381let Defs = [P1, PC]; 7382let BaseOpcode = "J4_cmpgtip1"; 7383let isTaken = Inst{13}; 7384let isExtendable = 1; 7385let opExtendable = 2; 7386let isExtentSigned = 1; 7387let opExtentBits = 11; 7388let opExtentAlign = 2; 7389} 7390def J4_cmpgti_tp1_jump_t : HInst< 7391(outs), 7392(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 7393"p1 = cmp.gt($Rs16,#$II); if (p1.new) jump:t $Ii", 7394tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 7395let Inst{0-0} = 0b0; 7396let Inst{13-13} = 0b1; 7397let Inst{31-22} = 0b0001001010; 7398let isPredicated = 1; 7399let isTerminator = 1; 7400let isBranch = 1; 7401let isPredicatedNew = 1; 7402let cofRelax1 = 1; 7403let cofRelax2 = 1; 7404let cofMax1 = 1; 7405let Uses = [P1]; 7406let Defs = [P1, PC]; 7407let BaseOpcode = "J4_cmpgtip1"; 7408let isTaken = Inst{13}; 7409let isExtendable = 1; 7410let opExtendable = 2; 7411let isExtentSigned = 1; 7412let opExtentBits = 11; 7413let opExtentAlign = 2; 7414} 7415def J4_cmpgtn1_f_jumpnv_nt : HInst< 7416(outs), 7417(ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii), 7418"if (!cmp.gt($Ns8.new,#$n1)) jump:nt $Ii", 7419tc_f6e2aff9, TypeNCJ>, Enc_3694bd, PredRel { 7420let Inst{0-0} = 0b0; 7421let Inst{13-8} = 0b000000; 7422let Inst{19-19} = 0b0; 7423let Inst{31-22} = 0b0010011011; 7424let isPredicated = 1; 7425let isPredicatedFalse = 1; 7426let isTerminator = 1; 7427let isBranch = 1; 7428let isNewValue = 1; 7429let cofMax1 = 1; 7430let isRestrictNoSlot1Store = 1; 7431let Defs = [PC]; 7432let BaseOpcode = "J4_cmpgtn1r"; 7433let isTaken = Inst{13}; 7434let isExtendable = 1; 7435let opExtendable = 2; 7436let isExtentSigned = 1; 7437let opExtentBits = 11; 7438let opExtentAlign = 2; 7439let opNewValue = 0; 7440} 7441def J4_cmpgtn1_f_jumpnv_t : HInst< 7442(outs), 7443(ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii), 7444"if (!cmp.gt($Ns8.new,#$n1)) jump:t $Ii", 7445tc_f6e2aff9, TypeNCJ>, Enc_a6853f, PredRel { 7446let Inst{0-0} = 0b0; 7447let Inst{13-8} = 0b100000; 7448let Inst{19-19} = 0b0; 7449let Inst{31-22} = 0b0010011011; 7450let isPredicated = 1; 7451let isPredicatedFalse = 1; 7452let isTerminator = 1; 7453let isBranch = 1; 7454let isNewValue = 1; 7455let cofMax1 = 1; 7456let isRestrictNoSlot1Store = 1; 7457let Defs = [PC]; 7458let BaseOpcode = "J4_cmpgtn1r"; 7459let isTaken = Inst{13}; 7460let isExtendable = 1; 7461let opExtendable = 2; 7462let isExtentSigned = 1; 7463let opExtentBits = 11; 7464let opExtentAlign = 2; 7465let opNewValue = 0; 7466} 7467def J4_cmpgtn1_fp0_jump_nt : HInst< 7468(outs), 7469(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 7470"p0 = cmp.gt($Rs16,#$n1); if (!p0.new) jump:nt $Ii", 7471tc_24f426ab, TypeCJ>, Enc_a42857, PredRel { 7472let Inst{0-0} = 0b0; 7473let Inst{13-8} = 0b000001; 7474let Inst{31-22} = 0b0001000111; 7475let isPredicated = 1; 7476let isPredicatedFalse = 1; 7477let isTerminator = 1; 7478let isBranch = 1; 7479let isPredicatedNew = 1; 7480let cofRelax1 = 1; 7481let cofRelax2 = 1; 7482let cofMax1 = 1; 7483let Uses = [P0]; 7484let Defs = [P0, PC]; 7485let BaseOpcode = "J4_cmpgtn1p0"; 7486let isTaken = Inst{13}; 7487let isExtendable = 1; 7488let opExtendable = 2; 7489let isExtentSigned = 1; 7490let opExtentBits = 11; 7491let opExtentAlign = 2; 7492} 7493def J4_cmpgtn1_fp0_jump_t : HInst< 7494(outs), 7495(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 7496"p0 = cmp.gt($Rs16,#$n1); if (!p0.new) jump:t $Ii", 7497tc_24f426ab, TypeCJ>, Enc_f6fe0b, PredRel { 7498let Inst{0-0} = 0b0; 7499let Inst{13-8} = 0b100001; 7500let Inst{31-22} = 0b0001000111; 7501let isPredicated = 1; 7502let isPredicatedFalse = 1; 7503let isTerminator = 1; 7504let isBranch = 1; 7505let isPredicatedNew = 1; 7506let cofRelax1 = 1; 7507let cofRelax2 = 1; 7508let cofMax1 = 1; 7509let Uses = [P0]; 7510let Defs = [P0, PC]; 7511let BaseOpcode = "J4_cmpgtn1p0"; 7512let isTaken = Inst{13}; 7513let isExtendable = 1; 7514let opExtendable = 2; 7515let isExtentSigned = 1; 7516let opExtentBits = 11; 7517let opExtentAlign = 2; 7518} 7519def J4_cmpgtn1_fp1_jump_nt : HInst< 7520(outs), 7521(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 7522"p1 = cmp.gt($Rs16,#$n1); if (!p1.new) jump:nt $Ii", 7523tc_24f426ab, TypeCJ>, Enc_3e3989, PredRel { 7524let Inst{0-0} = 0b0; 7525let Inst{13-8} = 0b000001; 7526let Inst{31-22} = 0b0001001111; 7527let isPredicated = 1; 7528let isPredicatedFalse = 1; 7529let isTerminator = 1; 7530let isBranch = 1; 7531let isPredicatedNew = 1; 7532let cofRelax1 = 1; 7533let cofRelax2 = 1; 7534let cofMax1 = 1; 7535let Uses = [P1]; 7536let Defs = [P1, PC]; 7537let BaseOpcode = "J4_cmpgtn1p1"; 7538let isTaken = Inst{13}; 7539let isExtendable = 1; 7540let opExtendable = 2; 7541let isExtentSigned = 1; 7542let opExtentBits = 11; 7543let opExtentAlign = 2; 7544} 7545def J4_cmpgtn1_fp1_jump_t : HInst< 7546(outs), 7547(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 7548"p1 = cmp.gt($Rs16,#$n1); if (!p1.new) jump:t $Ii", 7549tc_24f426ab, TypeCJ>, Enc_b909d2, PredRel { 7550let Inst{0-0} = 0b0; 7551let Inst{13-8} = 0b100001; 7552let Inst{31-22} = 0b0001001111; 7553let isPredicated = 1; 7554let isPredicatedFalse = 1; 7555let isTerminator = 1; 7556let isBranch = 1; 7557let isPredicatedNew = 1; 7558let cofRelax1 = 1; 7559let cofRelax2 = 1; 7560let cofMax1 = 1; 7561let Uses = [P1]; 7562let Defs = [P1, PC]; 7563let BaseOpcode = "J4_cmpgtn1p1"; 7564let isTaken = Inst{13}; 7565let isExtendable = 1; 7566let opExtendable = 2; 7567let isExtentSigned = 1; 7568let opExtentBits = 11; 7569let opExtentAlign = 2; 7570} 7571def J4_cmpgtn1_t_jumpnv_nt : HInst< 7572(outs), 7573(ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii), 7574"if (cmp.gt($Ns8.new,#$n1)) jump:nt $Ii", 7575tc_f6e2aff9, TypeNCJ>, Enc_f82302, PredRel { 7576let Inst{0-0} = 0b0; 7577let Inst{13-8} = 0b000000; 7578let Inst{19-19} = 0b0; 7579let Inst{31-22} = 0b0010011010; 7580let isPredicated = 1; 7581let isTerminator = 1; 7582let isBranch = 1; 7583let isNewValue = 1; 7584let cofMax1 = 1; 7585let isRestrictNoSlot1Store = 1; 7586let Defs = [PC]; 7587let BaseOpcode = "J4_cmpgtn1r"; 7588let isTaken = Inst{13}; 7589let isExtendable = 1; 7590let opExtendable = 2; 7591let isExtentSigned = 1; 7592let opExtentBits = 11; 7593let opExtentAlign = 2; 7594let opNewValue = 0; 7595} 7596def J4_cmpgtn1_t_jumpnv_t : HInst< 7597(outs), 7598(ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii), 7599"if (cmp.gt($Ns8.new,#$n1)) jump:t $Ii", 7600tc_f6e2aff9, TypeNCJ>, Enc_6413b6, PredRel { 7601let Inst{0-0} = 0b0; 7602let Inst{13-8} = 0b100000; 7603let Inst{19-19} = 0b0; 7604let Inst{31-22} = 0b0010011010; 7605let isPredicated = 1; 7606let isTerminator = 1; 7607let isBranch = 1; 7608let isNewValue = 1; 7609let cofMax1 = 1; 7610let isRestrictNoSlot1Store = 1; 7611let Defs = [PC]; 7612let BaseOpcode = "J4_cmpgtn1r"; 7613let isTaken = Inst{13}; 7614let isExtendable = 1; 7615let opExtendable = 2; 7616let isExtentSigned = 1; 7617let opExtentBits = 11; 7618let opExtentAlign = 2; 7619let opNewValue = 0; 7620} 7621def J4_cmpgtn1_tp0_jump_nt : HInst< 7622(outs), 7623(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 7624"p0 = cmp.gt($Rs16,#$n1); if (p0.new) jump:nt $Ii", 7625tc_24f426ab, TypeCJ>, Enc_b78edd, PredRel { 7626let Inst{0-0} = 0b0; 7627let Inst{13-8} = 0b000001; 7628let Inst{31-22} = 0b0001000110; 7629let isPredicated = 1; 7630let isTerminator = 1; 7631let isBranch = 1; 7632let isPredicatedNew = 1; 7633let cofRelax1 = 1; 7634let cofRelax2 = 1; 7635let cofMax1 = 1; 7636let Uses = [P0]; 7637let Defs = [P0, PC]; 7638let BaseOpcode = "J4_cmpgtn1p0"; 7639let isTaken = Inst{13}; 7640let isExtendable = 1; 7641let opExtendable = 2; 7642let isExtentSigned = 1; 7643let opExtentBits = 11; 7644let opExtentAlign = 2; 7645} 7646def J4_cmpgtn1_tp0_jump_t : HInst< 7647(outs), 7648(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 7649"p0 = cmp.gt($Rs16,#$n1); if (p0.new) jump:t $Ii", 7650tc_24f426ab, TypeCJ>, Enc_041d7b, PredRel { 7651let Inst{0-0} = 0b0; 7652let Inst{13-8} = 0b100001; 7653let Inst{31-22} = 0b0001000110; 7654let isPredicated = 1; 7655let isTerminator = 1; 7656let isBranch = 1; 7657let isPredicatedNew = 1; 7658let cofRelax1 = 1; 7659let cofRelax2 = 1; 7660let cofMax1 = 1; 7661let Uses = [P0]; 7662let Defs = [P0, PC]; 7663let BaseOpcode = "J4_cmpgtn1p0"; 7664let isTaken = Inst{13}; 7665let isExtendable = 1; 7666let opExtendable = 2; 7667let isExtentSigned = 1; 7668let opExtentBits = 11; 7669let opExtentAlign = 2; 7670} 7671def J4_cmpgtn1_tp1_jump_nt : HInst< 7672(outs), 7673(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 7674"p1 = cmp.gt($Rs16,#$n1); if (p1.new) jump:nt $Ii", 7675tc_24f426ab, TypeCJ>, Enc_b1e1fb, PredRel { 7676let Inst{0-0} = 0b0; 7677let Inst{13-8} = 0b000001; 7678let Inst{31-22} = 0b0001001110; 7679let isPredicated = 1; 7680let isTerminator = 1; 7681let isBranch = 1; 7682let isPredicatedNew = 1; 7683let cofRelax1 = 1; 7684let cofRelax2 = 1; 7685let cofMax1 = 1; 7686let Uses = [P1]; 7687let Defs = [P1, PC]; 7688let BaseOpcode = "J4_cmpgtn1p1"; 7689let isTaken = Inst{13}; 7690let isExtendable = 1; 7691let opExtendable = 2; 7692let isExtentSigned = 1; 7693let opExtentBits = 11; 7694let opExtentAlign = 2; 7695} 7696def J4_cmpgtn1_tp1_jump_t : HInst< 7697(outs), 7698(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii), 7699"p1 = cmp.gt($Rs16,#$n1); if (p1.new) jump:t $Ii", 7700tc_24f426ab, TypeCJ>, Enc_178717, PredRel { 7701let Inst{0-0} = 0b0; 7702let Inst{13-8} = 0b100001; 7703let Inst{31-22} = 0b0001001110; 7704let isPredicated = 1; 7705let isTerminator = 1; 7706let isBranch = 1; 7707let isPredicatedNew = 1; 7708let cofRelax1 = 1; 7709let cofRelax2 = 1; 7710let cofMax1 = 1; 7711let Uses = [P1]; 7712let Defs = [P1, PC]; 7713let BaseOpcode = "J4_cmpgtn1p1"; 7714let isTaken = Inst{13}; 7715let isExtendable = 1; 7716let opExtendable = 2; 7717let isExtentSigned = 1; 7718let opExtentBits = 11; 7719let opExtentAlign = 2; 7720} 7721def J4_cmpgtu_f_jumpnv_nt : HInst< 7722(outs), 7723(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), 7724"if (!cmp.gtu($Ns8.new,$Rt32)) jump:nt $Ii", 7725tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel { 7726let Inst{0-0} = 0b0; 7727let Inst{13-13} = 0b0; 7728let Inst{19-19} = 0b0; 7729let Inst{31-22} = 0b0010000101; 7730let isPredicated = 1; 7731let isPredicatedFalse = 1; 7732let isTerminator = 1; 7733let isBranch = 1; 7734let isNewValue = 1; 7735let cofMax1 = 1; 7736let isRestrictNoSlot1Store = 1; 7737let Defs = [PC]; 7738let BaseOpcode = "J4_cmpgtur"; 7739let isTaken = Inst{13}; 7740let isExtendable = 1; 7741let opExtendable = 2; 7742let isExtentSigned = 1; 7743let opExtentBits = 11; 7744let opExtentAlign = 2; 7745let opNewValue = 0; 7746} 7747def J4_cmpgtu_f_jumpnv_t : HInst< 7748(outs), 7749(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), 7750"if (!cmp.gtu($Ns8.new,$Rt32)) jump:t $Ii", 7751tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel { 7752let Inst{0-0} = 0b0; 7753let Inst{13-13} = 0b1; 7754let Inst{19-19} = 0b0; 7755let Inst{31-22} = 0b0010000101; 7756let isPredicated = 1; 7757let isPredicatedFalse = 1; 7758let isTerminator = 1; 7759let isBranch = 1; 7760let isNewValue = 1; 7761let cofMax1 = 1; 7762let isRestrictNoSlot1Store = 1; 7763let Defs = [PC]; 7764let BaseOpcode = "J4_cmpgtur"; 7765let isTaken = Inst{13}; 7766let isExtendable = 1; 7767let opExtendable = 2; 7768let isExtentSigned = 1; 7769let opExtentBits = 11; 7770let opExtentAlign = 2; 7771let opNewValue = 0; 7772} 7773def J4_cmpgtu_fp0_jump_nt : HInst< 7774(outs), 7775(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 7776"p0 = cmp.gtu($Rs16,$Rt16); if (!p0.new) jump:nt $Ii", 7777tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 7778let Inst{0-0} = 0b0; 7779let Inst{13-12} = 0b00; 7780let Inst{31-22} = 0b0001010101; 7781let isPredicated = 1; 7782let isPredicatedFalse = 1; 7783let isTerminator = 1; 7784let isBranch = 1; 7785let isPredicatedNew = 1; 7786let cofRelax1 = 1; 7787let cofRelax2 = 1; 7788let cofMax1 = 1; 7789let Uses = [P0]; 7790let Defs = [P0, PC]; 7791let BaseOpcode = "J4_cmpgtup0"; 7792let isTaken = Inst{13}; 7793let isExtendable = 1; 7794let opExtendable = 2; 7795let isExtentSigned = 1; 7796let opExtentBits = 11; 7797let opExtentAlign = 2; 7798} 7799def J4_cmpgtu_fp0_jump_t : HInst< 7800(outs), 7801(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 7802"p0 = cmp.gtu($Rs16,$Rt16); if (!p0.new) jump:t $Ii", 7803tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 7804let Inst{0-0} = 0b0; 7805let Inst{13-12} = 0b10; 7806let Inst{31-22} = 0b0001010101; 7807let isPredicated = 1; 7808let isPredicatedFalse = 1; 7809let isTerminator = 1; 7810let isBranch = 1; 7811let isPredicatedNew = 1; 7812let cofRelax1 = 1; 7813let cofRelax2 = 1; 7814let cofMax1 = 1; 7815let Uses = [P0]; 7816let Defs = [P0, PC]; 7817let BaseOpcode = "J4_cmpgtup0"; 7818let isTaken = Inst{13}; 7819let isExtendable = 1; 7820let opExtendable = 2; 7821let isExtentSigned = 1; 7822let opExtentBits = 11; 7823let opExtentAlign = 2; 7824} 7825def J4_cmpgtu_fp1_jump_nt : HInst< 7826(outs), 7827(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 7828"p1 = cmp.gtu($Rs16,$Rt16); if (!p1.new) jump:nt $Ii", 7829tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 7830let Inst{0-0} = 0b0; 7831let Inst{13-12} = 0b01; 7832let Inst{31-22} = 0b0001010101; 7833let isPredicated = 1; 7834let isPredicatedFalse = 1; 7835let isTerminator = 1; 7836let isBranch = 1; 7837let isPredicatedNew = 1; 7838let cofRelax1 = 1; 7839let cofRelax2 = 1; 7840let cofMax1 = 1; 7841let Uses = [P1]; 7842let Defs = [P1, PC]; 7843let BaseOpcode = "J4_cmpgtup1"; 7844let isTaken = Inst{13}; 7845let isExtendable = 1; 7846let opExtendable = 2; 7847let isExtentSigned = 1; 7848let opExtentBits = 11; 7849let opExtentAlign = 2; 7850} 7851def J4_cmpgtu_fp1_jump_t : HInst< 7852(outs), 7853(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 7854"p1 = cmp.gtu($Rs16,$Rt16); if (!p1.new) jump:t $Ii", 7855tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 7856let Inst{0-0} = 0b0; 7857let Inst{13-12} = 0b11; 7858let Inst{31-22} = 0b0001010101; 7859let isPredicated = 1; 7860let isPredicatedFalse = 1; 7861let isTerminator = 1; 7862let isBranch = 1; 7863let isPredicatedNew = 1; 7864let cofRelax1 = 1; 7865let cofRelax2 = 1; 7866let cofMax1 = 1; 7867let Uses = [P1]; 7868let Defs = [P1, PC]; 7869let BaseOpcode = "J4_cmpgtup1"; 7870let isTaken = Inst{13}; 7871let isExtendable = 1; 7872let opExtendable = 2; 7873let isExtentSigned = 1; 7874let opExtentBits = 11; 7875let opExtentAlign = 2; 7876} 7877def J4_cmpgtu_t_jumpnv_nt : HInst< 7878(outs), 7879(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), 7880"if (cmp.gtu($Ns8.new,$Rt32)) jump:nt $Ii", 7881tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel { 7882let Inst{0-0} = 0b0; 7883let Inst{13-13} = 0b0; 7884let Inst{19-19} = 0b0; 7885let Inst{31-22} = 0b0010000100; 7886let isPredicated = 1; 7887let isTerminator = 1; 7888let isBranch = 1; 7889let isNewValue = 1; 7890let cofMax1 = 1; 7891let isRestrictNoSlot1Store = 1; 7892let Defs = [PC]; 7893let BaseOpcode = "J4_cmpgtur"; 7894let isTaken = Inst{13}; 7895let isExtendable = 1; 7896let opExtendable = 2; 7897let isExtentSigned = 1; 7898let opExtentBits = 11; 7899let opExtentAlign = 2; 7900let opNewValue = 0; 7901} 7902def J4_cmpgtu_t_jumpnv_t : HInst< 7903(outs), 7904(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), 7905"if (cmp.gtu($Ns8.new,$Rt32)) jump:t $Ii", 7906tc_24e109c7, TypeNCJ>, Enc_c9a18e, PredRel { 7907let Inst{0-0} = 0b0; 7908let Inst{13-13} = 0b1; 7909let Inst{19-19} = 0b0; 7910let Inst{31-22} = 0b0010000100; 7911let isPredicated = 1; 7912let isTerminator = 1; 7913let isBranch = 1; 7914let isNewValue = 1; 7915let cofMax1 = 1; 7916let isRestrictNoSlot1Store = 1; 7917let Defs = [PC]; 7918let BaseOpcode = "J4_cmpgtur"; 7919let isTaken = Inst{13}; 7920let isExtendable = 1; 7921let opExtendable = 2; 7922let isExtentSigned = 1; 7923let opExtentBits = 11; 7924let opExtentAlign = 2; 7925let opNewValue = 0; 7926} 7927def J4_cmpgtu_tp0_jump_nt : HInst< 7928(outs), 7929(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 7930"p0 = cmp.gtu($Rs16,$Rt16); if (p0.new) jump:nt $Ii", 7931tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 7932let Inst{0-0} = 0b0; 7933let Inst{13-12} = 0b00; 7934let Inst{31-22} = 0b0001010100; 7935let isPredicated = 1; 7936let isTerminator = 1; 7937let isBranch = 1; 7938let isPredicatedNew = 1; 7939let cofRelax1 = 1; 7940let cofRelax2 = 1; 7941let cofMax1 = 1; 7942let Uses = [P0]; 7943let Defs = [P0, PC]; 7944let BaseOpcode = "J4_cmpgtup0"; 7945let isTaken = Inst{13}; 7946let isExtendable = 1; 7947let opExtendable = 2; 7948let isExtentSigned = 1; 7949let opExtentBits = 11; 7950let opExtentAlign = 2; 7951} 7952def J4_cmpgtu_tp0_jump_t : HInst< 7953(outs), 7954(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 7955"p0 = cmp.gtu($Rs16,$Rt16); if (p0.new) jump:t $Ii", 7956tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 7957let Inst{0-0} = 0b0; 7958let Inst{13-12} = 0b10; 7959let Inst{31-22} = 0b0001010100; 7960let isPredicated = 1; 7961let isTerminator = 1; 7962let isBranch = 1; 7963let isPredicatedNew = 1; 7964let cofRelax1 = 1; 7965let cofRelax2 = 1; 7966let cofMax1 = 1; 7967let Uses = [P0]; 7968let Defs = [P0, PC]; 7969let BaseOpcode = "J4_cmpgtup0"; 7970let isTaken = Inst{13}; 7971let isExtendable = 1; 7972let opExtendable = 2; 7973let isExtentSigned = 1; 7974let opExtentBits = 11; 7975let opExtentAlign = 2; 7976} 7977def J4_cmpgtu_tp1_jump_nt : HInst< 7978(outs), 7979(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 7980"p1 = cmp.gtu($Rs16,$Rt16); if (p1.new) jump:nt $Ii", 7981tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 7982let Inst{0-0} = 0b0; 7983let Inst{13-12} = 0b01; 7984let Inst{31-22} = 0b0001010100; 7985let isPredicated = 1; 7986let isTerminator = 1; 7987let isBranch = 1; 7988let isPredicatedNew = 1; 7989let cofRelax1 = 1; 7990let cofRelax2 = 1; 7991let cofMax1 = 1; 7992let Uses = [P1]; 7993let Defs = [P1, PC]; 7994let BaseOpcode = "J4_cmpgtup1"; 7995let isTaken = Inst{13}; 7996let isExtendable = 1; 7997let opExtendable = 2; 7998let isExtentSigned = 1; 7999let opExtentBits = 11; 8000let opExtentAlign = 2; 8001} 8002def J4_cmpgtu_tp1_jump_t : HInst< 8003(outs), 8004(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii), 8005"p1 = cmp.gtu($Rs16,$Rt16); if (p1.new) jump:t $Ii", 8006tc_9e27f2f9, TypeCJ>, Enc_6a5972, PredRel { 8007let Inst{0-0} = 0b0; 8008let Inst{13-12} = 0b11; 8009let Inst{31-22} = 0b0001010100; 8010let isPredicated = 1; 8011let isTerminator = 1; 8012let isBranch = 1; 8013let isPredicatedNew = 1; 8014let cofRelax1 = 1; 8015let cofRelax2 = 1; 8016let cofMax1 = 1; 8017let Uses = [P1]; 8018let Defs = [P1, PC]; 8019let BaseOpcode = "J4_cmpgtup1"; 8020let isTaken = Inst{13}; 8021let isExtendable = 1; 8022let opExtendable = 2; 8023let isExtentSigned = 1; 8024let opExtentBits = 11; 8025let opExtentAlign = 2; 8026} 8027def J4_cmpgtui_f_jumpnv_nt : HInst< 8028(outs), 8029(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii), 8030"if (!cmp.gtu($Ns8.new,#$II)) jump:nt $Ii", 8031tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel { 8032let Inst{0-0} = 0b0; 8033let Inst{13-13} = 0b0; 8034let Inst{19-19} = 0b0; 8035let Inst{31-22} = 0b0010010101; 8036let isPredicated = 1; 8037let isPredicatedFalse = 1; 8038let isTerminator = 1; 8039let isBranch = 1; 8040let isNewValue = 1; 8041let cofMax1 = 1; 8042let isRestrictNoSlot1Store = 1; 8043let Defs = [PC]; 8044let BaseOpcode = "J4_cmpgtuir"; 8045let isTaken = Inst{13}; 8046let isExtendable = 1; 8047let opExtendable = 2; 8048let isExtentSigned = 1; 8049let opExtentBits = 11; 8050let opExtentAlign = 2; 8051let opNewValue = 0; 8052} 8053def J4_cmpgtui_f_jumpnv_t : HInst< 8054(outs), 8055(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii), 8056"if (!cmp.gtu($Ns8.new,#$II)) jump:t $Ii", 8057tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel { 8058let Inst{0-0} = 0b0; 8059let Inst{13-13} = 0b1; 8060let Inst{19-19} = 0b0; 8061let Inst{31-22} = 0b0010010101; 8062let isPredicated = 1; 8063let isPredicatedFalse = 1; 8064let isTerminator = 1; 8065let isBranch = 1; 8066let isNewValue = 1; 8067let cofMax1 = 1; 8068let isRestrictNoSlot1Store = 1; 8069let Defs = [PC]; 8070let BaseOpcode = "J4_cmpgtuir"; 8071let isTaken = Inst{13}; 8072let isExtendable = 1; 8073let opExtendable = 2; 8074let isExtentSigned = 1; 8075let opExtentBits = 11; 8076let opExtentAlign = 2; 8077let opNewValue = 0; 8078} 8079def J4_cmpgtui_fp0_jump_nt : HInst< 8080(outs), 8081(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 8082"p0 = cmp.gtu($Rs16,#$II); if (!p0.new) jump:nt $Ii", 8083tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 8084let Inst{0-0} = 0b0; 8085let Inst{13-13} = 0b0; 8086let Inst{31-22} = 0b0001000101; 8087let isPredicated = 1; 8088let isPredicatedFalse = 1; 8089let isTerminator = 1; 8090let isBranch = 1; 8091let isPredicatedNew = 1; 8092let cofRelax1 = 1; 8093let cofRelax2 = 1; 8094let cofMax1 = 1; 8095let Uses = [P0]; 8096let Defs = [P0, PC]; 8097let BaseOpcode = "J4_cmpgtuip0"; 8098let isTaken = Inst{13}; 8099let isExtendable = 1; 8100let opExtendable = 2; 8101let isExtentSigned = 1; 8102let opExtentBits = 11; 8103let opExtentAlign = 2; 8104} 8105def J4_cmpgtui_fp0_jump_t : HInst< 8106(outs), 8107(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 8108"p0 = cmp.gtu($Rs16,#$II); if (!p0.new) jump:t $Ii", 8109tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 8110let Inst{0-0} = 0b0; 8111let Inst{13-13} = 0b1; 8112let Inst{31-22} = 0b0001000101; 8113let isPredicated = 1; 8114let isPredicatedFalse = 1; 8115let isTerminator = 1; 8116let isBranch = 1; 8117let isPredicatedNew = 1; 8118let cofRelax1 = 1; 8119let cofRelax2 = 1; 8120let cofMax1 = 1; 8121let Uses = [P0]; 8122let Defs = [P0, PC]; 8123let BaseOpcode = "J4_cmpgtuip0"; 8124let isTaken = Inst{13}; 8125let isExtendable = 1; 8126let opExtendable = 2; 8127let isExtentSigned = 1; 8128let opExtentBits = 11; 8129let opExtentAlign = 2; 8130} 8131def J4_cmpgtui_fp1_jump_nt : HInst< 8132(outs), 8133(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 8134"p1 = cmp.gtu($Rs16,#$II); if (!p1.new) jump:nt $Ii", 8135tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 8136let Inst{0-0} = 0b0; 8137let Inst{13-13} = 0b0; 8138let Inst{31-22} = 0b0001001101; 8139let isPredicated = 1; 8140let isPredicatedFalse = 1; 8141let isTerminator = 1; 8142let isBranch = 1; 8143let isPredicatedNew = 1; 8144let cofRelax1 = 1; 8145let cofRelax2 = 1; 8146let cofMax1 = 1; 8147let Uses = [P1]; 8148let Defs = [P1, PC]; 8149let BaseOpcode = "J4_cmpgtuip1"; 8150let isTaken = Inst{13}; 8151let isExtendable = 1; 8152let opExtendable = 2; 8153let isExtentSigned = 1; 8154let opExtentBits = 11; 8155let opExtentAlign = 2; 8156} 8157def J4_cmpgtui_fp1_jump_t : HInst< 8158(outs), 8159(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 8160"p1 = cmp.gtu($Rs16,#$II); if (!p1.new) jump:t $Ii", 8161tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 8162let Inst{0-0} = 0b0; 8163let Inst{13-13} = 0b1; 8164let Inst{31-22} = 0b0001001101; 8165let isPredicated = 1; 8166let isPredicatedFalse = 1; 8167let isTerminator = 1; 8168let isBranch = 1; 8169let isPredicatedNew = 1; 8170let cofRelax1 = 1; 8171let cofRelax2 = 1; 8172let cofMax1 = 1; 8173let Uses = [P1]; 8174let Defs = [P1, PC]; 8175let BaseOpcode = "J4_cmpgtuip1"; 8176let isTaken = Inst{13}; 8177let isExtendable = 1; 8178let opExtendable = 2; 8179let isExtentSigned = 1; 8180let opExtentBits = 11; 8181let opExtentAlign = 2; 8182} 8183def J4_cmpgtui_t_jumpnv_nt : HInst< 8184(outs), 8185(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii), 8186"if (cmp.gtu($Ns8.new,#$II)) jump:nt $Ii", 8187tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel { 8188let Inst{0-0} = 0b0; 8189let Inst{13-13} = 0b0; 8190let Inst{19-19} = 0b0; 8191let Inst{31-22} = 0b0010010100; 8192let isPredicated = 1; 8193let isTerminator = 1; 8194let isBranch = 1; 8195let isNewValue = 1; 8196let cofMax1 = 1; 8197let isRestrictNoSlot1Store = 1; 8198let Defs = [PC]; 8199let BaseOpcode = "J4_cmpgtuir"; 8200let isTaken = Inst{13}; 8201let isExtendable = 1; 8202let opExtendable = 2; 8203let isExtentSigned = 1; 8204let opExtentBits = 11; 8205let opExtentAlign = 2; 8206let opNewValue = 0; 8207} 8208def J4_cmpgtui_t_jumpnv_t : HInst< 8209(outs), 8210(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii), 8211"if (cmp.gtu($Ns8.new,#$II)) jump:t $Ii", 8212tc_f6e2aff9, TypeNCJ>, Enc_eafd18, PredRel { 8213let Inst{0-0} = 0b0; 8214let Inst{13-13} = 0b1; 8215let Inst{19-19} = 0b0; 8216let Inst{31-22} = 0b0010010100; 8217let isPredicated = 1; 8218let isTerminator = 1; 8219let isBranch = 1; 8220let isNewValue = 1; 8221let cofMax1 = 1; 8222let isRestrictNoSlot1Store = 1; 8223let Defs = [PC]; 8224let BaseOpcode = "J4_cmpgtuir"; 8225let isTaken = Inst{13}; 8226let isExtendable = 1; 8227let opExtendable = 2; 8228let isExtentSigned = 1; 8229let opExtentBits = 11; 8230let opExtentAlign = 2; 8231let opNewValue = 0; 8232} 8233def J4_cmpgtui_tp0_jump_nt : HInst< 8234(outs), 8235(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 8236"p0 = cmp.gtu($Rs16,#$II); if (p0.new) jump:nt $Ii", 8237tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 8238let Inst{0-0} = 0b0; 8239let Inst{13-13} = 0b0; 8240let Inst{31-22} = 0b0001000100; 8241let isPredicated = 1; 8242let isTerminator = 1; 8243let isBranch = 1; 8244let isPredicatedNew = 1; 8245let cofRelax1 = 1; 8246let cofRelax2 = 1; 8247let cofMax1 = 1; 8248let Uses = [P0]; 8249let Defs = [P0, PC]; 8250let BaseOpcode = "J4_cmpgtuip0"; 8251let isTaken = Inst{13}; 8252let isExtendable = 1; 8253let opExtendable = 2; 8254let isExtentSigned = 1; 8255let opExtentBits = 11; 8256let opExtentAlign = 2; 8257} 8258def J4_cmpgtui_tp0_jump_t : HInst< 8259(outs), 8260(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 8261"p0 = cmp.gtu($Rs16,#$II); if (p0.new) jump:t $Ii", 8262tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 8263let Inst{0-0} = 0b0; 8264let Inst{13-13} = 0b1; 8265let Inst{31-22} = 0b0001000100; 8266let isPredicated = 1; 8267let isTerminator = 1; 8268let isBranch = 1; 8269let isPredicatedNew = 1; 8270let cofRelax1 = 1; 8271let cofRelax2 = 1; 8272let cofMax1 = 1; 8273let Uses = [P0]; 8274let Defs = [P0, PC]; 8275let BaseOpcode = "J4_cmpgtuip0"; 8276let isTaken = Inst{13}; 8277let isExtendable = 1; 8278let opExtendable = 2; 8279let isExtentSigned = 1; 8280let opExtentBits = 11; 8281let opExtentAlign = 2; 8282} 8283def J4_cmpgtui_tp1_jump_nt : HInst< 8284(outs), 8285(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 8286"p1 = cmp.gtu($Rs16,#$II); if (p1.new) jump:nt $Ii", 8287tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 8288let Inst{0-0} = 0b0; 8289let Inst{13-13} = 0b0; 8290let Inst{31-22} = 0b0001001100; 8291let isPredicated = 1; 8292let isTerminator = 1; 8293let isBranch = 1; 8294let isPredicatedNew = 1; 8295let cofRelax1 = 1; 8296let cofRelax2 = 1; 8297let cofMax1 = 1; 8298let Uses = [P1]; 8299let Defs = [P1, PC]; 8300let BaseOpcode = "J4_cmpgtuip1"; 8301let isTaken = Inst{13}; 8302let isExtendable = 1; 8303let opExtendable = 2; 8304let isExtentSigned = 1; 8305let opExtentBits = 11; 8306let opExtentAlign = 2; 8307} 8308def J4_cmpgtui_tp1_jump_t : HInst< 8309(outs), 8310(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii), 8311"p1 = cmp.gtu($Rs16,#$II); if (p1.new) jump:t $Ii", 8312tc_24f426ab, TypeCJ>, Enc_14d27a, PredRel { 8313let Inst{0-0} = 0b0; 8314let Inst{13-13} = 0b1; 8315let Inst{31-22} = 0b0001001100; 8316let isPredicated = 1; 8317let isTerminator = 1; 8318let isBranch = 1; 8319let isPredicatedNew = 1; 8320let cofRelax1 = 1; 8321let cofRelax2 = 1; 8322let cofMax1 = 1; 8323let Uses = [P1]; 8324let Defs = [P1, PC]; 8325let BaseOpcode = "J4_cmpgtuip1"; 8326let isTaken = Inst{13}; 8327let isExtendable = 1; 8328let opExtendable = 2; 8329let isExtentSigned = 1; 8330let opExtentBits = 11; 8331let opExtentAlign = 2; 8332} 8333def J4_cmplt_f_jumpnv_nt : HInst< 8334(outs), 8335(ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii), 8336"if (!cmp.gt($Rt32,$Ns8.new)) jump:nt $Ii", 8337tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel { 8338let Inst{0-0} = 0b0; 8339let Inst{13-13} = 0b0; 8340let Inst{19-19} = 0b0; 8341let Inst{31-22} = 0b0010000111; 8342let isPredicated = 1; 8343let isPredicatedFalse = 1; 8344let isTerminator = 1; 8345let isBranch = 1; 8346let isNewValue = 1; 8347let cofMax1 = 1; 8348let isRestrictNoSlot1Store = 1; 8349let Defs = [PC]; 8350let BaseOpcode = "J4_cmpltr"; 8351let isTaken = Inst{13}; 8352let isExtendable = 1; 8353let opExtendable = 2; 8354let isExtentSigned = 1; 8355let opExtentBits = 11; 8356let opExtentAlign = 2; 8357let opNewValue = 1; 8358} 8359def J4_cmplt_f_jumpnv_t : HInst< 8360(outs), 8361(ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii), 8362"if (!cmp.gt($Rt32,$Ns8.new)) jump:t $Ii", 8363tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel { 8364let Inst{0-0} = 0b0; 8365let Inst{13-13} = 0b1; 8366let Inst{19-19} = 0b0; 8367let Inst{31-22} = 0b0010000111; 8368let isPredicated = 1; 8369let isPredicatedFalse = 1; 8370let isTerminator = 1; 8371let isBranch = 1; 8372let isNewValue = 1; 8373let cofMax1 = 1; 8374let isRestrictNoSlot1Store = 1; 8375let Defs = [PC]; 8376let BaseOpcode = "J4_cmpltr"; 8377let isTaken = Inst{13}; 8378let isExtendable = 1; 8379let opExtendable = 2; 8380let isExtentSigned = 1; 8381let opExtentBits = 11; 8382let opExtentAlign = 2; 8383let opNewValue = 1; 8384} 8385def J4_cmplt_t_jumpnv_nt : HInst< 8386(outs), 8387(ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii), 8388"if (cmp.gt($Rt32,$Ns8.new)) jump:nt $Ii", 8389tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel { 8390let Inst{0-0} = 0b0; 8391let Inst{13-13} = 0b0; 8392let Inst{19-19} = 0b0; 8393let Inst{31-22} = 0b0010000110; 8394let isPredicated = 1; 8395let isTerminator = 1; 8396let isBranch = 1; 8397let isNewValue = 1; 8398let cofMax1 = 1; 8399let isRestrictNoSlot1Store = 1; 8400let Defs = [PC]; 8401let BaseOpcode = "J4_cmpltr"; 8402let isTaken = Inst{13}; 8403let isExtendable = 1; 8404let opExtendable = 2; 8405let isExtentSigned = 1; 8406let opExtentBits = 11; 8407let opExtentAlign = 2; 8408let opNewValue = 1; 8409} 8410def J4_cmplt_t_jumpnv_t : HInst< 8411(outs), 8412(ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii), 8413"if (cmp.gt($Rt32,$Ns8.new)) jump:t $Ii", 8414tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel { 8415let Inst{0-0} = 0b0; 8416let Inst{13-13} = 0b1; 8417let Inst{19-19} = 0b0; 8418let Inst{31-22} = 0b0010000110; 8419let isPredicated = 1; 8420let isTerminator = 1; 8421let isBranch = 1; 8422let isNewValue = 1; 8423let cofMax1 = 1; 8424let isRestrictNoSlot1Store = 1; 8425let Defs = [PC]; 8426let BaseOpcode = "J4_cmpltr"; 8427let isTaken = Inst{13}; 8428let isExtendable = 1; 8429let opExtendable = 2; 8430let isExtentSigned = 1; 8431let opExtentBits = 11; 8432let opExtentAlign = 2; 8433let opNewValue = 1; 8434} 8435def J4_cmpltu_f_jumpnv_nt : HInst< 8436(outs), 8437(ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii), 8438"if (!cmp.gtu($Rt32,$Ns8.new)) jump:nt $Ii", 8439tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel { 8440let Inst{0-0} = 0b0; 8441let Inst{13-13} = 0b0; 8442let Inst{19-19} = 0b0; 8443let Inst{31-22} = 0b0010001001; 8444let isPredicated = 1; 8445let isPredicatedFalse = 1; 8446let isTerminator = 1; 8447let isBranch = 1; 8448let isNewValue = 1; 8449let cofMax1 = 1; 8450let isRestrictNoSlot1Store = 1; 8451let Defs = [PC]; 8452let BaseOpcode = "J4_cmpltur"; 8453let isTaken = Inst{13}; 8454let isExtendable = 1; 8455let opExtendable = 2; 8456let isExtentSigned = 1; 8457let opExtentBits = 11; 8458let opExtentAlign = 2; 8459let opNewValue = 1; 8460} 8461def J4_cmpltu_f_jumpnv_t : HInst< 8462(outs), 8463(ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii), 8464"if (!cmp.gtu($Rt32,$Ns8.new)) jump:t $Ii", 8465tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel { 8466let Inst{0-0} = 0b0; 8467let Inst{13-13} = 0b1; 8468let Inst{19-19} = 0b0; 8469let Inst{31-22} = 0b0010001001; 8470let isPredicated = 1; 8471let isPredicatedFalse = 1; 8472let isTerminator = 1; 8473let isBranch = 1; 8474let isNewValue = 1; 8475let cofMax1 = 1; 8476let isRestrictNoSlot1Store = 1; 8477let Defs = [PC]; 8478let BaseOpcode = "J4_cmpltur"; 8479let isTaken = Inst{13}; 8480let isExtendable = 1; 8481let opExtendable = 2; 8482let isExtentSigned = 1; 8483let opExtentBits = 11; 8484let opExtentAlign = 2; 8485let opNewValue = 1; 8486} 8487def J4_cmpltu_t_jumpnv_nt : HInst< 8488(outs), 8489(ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii), 8490"if (cmp.gtu($Rt32,$Ns8.new)) jump:nt $Ii", 8491tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel { 8492let Inst{0-0} = 0b0; 8493let Inst{13-13} = 0b0; 8494let Inst{19-19} = 0b0; 8495let Inst{31-22} = 0b0010001000; 8496let isPredicated = 1; 8497let isTerminator = 1; 8498let isBranch = 1; 8499let isNewValue = 1; 8500let cofMax1 = 1; 8501let isRestrictNoSlot1Store = 1; 8502let Defs = [PC]; 8503let BaseOpcode = "J4_cmpltur"; 8504let isTaken = Inst{13}; 8505let isExtendable = 1; 8506let opExtendable = 2; 8507let isExtentSigned = 1; 8508let opExtentBits = 11; 8509let opExtentAlign = 2; 8510let opNewValue = 1; 8511} 8512def J4_cmpltu_t_jumpnv_t : HInst< 8513(outs), 8514(ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii), 8515"if (cmp.gtu($Rt32,$Ns8.new)) jump:t $Ii", 8516tc_975a4e54, TypeNCJ>, Enc_5de85f, PredRel { 8517let Inst{0-0} = 0b0; 8518let Inst{13-13} = 0b1; 8519let Inst{19-19} = 0b0; 8520let Inst{31-22} = 0b0010001000; 8521let isPredicated = 1; 8522let isTerminator = 1; 8523let isBranch = 1; 8524let isNewValue = 1; 8525let cofMax1 = 1; 8526let isRestrictNoSlot1Store = 1; 8527let Defs = [PC]; 8528let BaseOpcode = "J4_cmpltur"; 8529let isTaken = Inst{13}; 8530let isExtendable = 1; 8531let opExtendable = 2; 8532let isExtentSigned = 1; 8533let opExtentBits = 11; 8534let opExtentAlign = 2; 8535let opNewValue = 1; 8536} 8537def J4_hintjumpr : HInst< 8538(outs), 8539(ins IntRegs:$Rs32), 8540"hintjr($Rs32)", 8541tc_e60def48, TypeJ>, Enc_ecbcc8 { 8542let Inst{13-0} = 0b00000000000000; 8543let Inst{31-21} = 0b01010010101; 8544let isTerminator = 1; 8545let isIndirectBranch = 1; 8546let isBranch = 1; 8547let cofRelax1 = 1; 8548let cofRelax2 = 1; 8549let cofMax1 = 1; 8550} 8551def J4_jumpseti : HInst< 8552(outs GeneralSubRegs:$Rd16), 8553(ins u6_0Imm:$II, b30_2Imm:$Ii), 8554"$Rd16 = #$II ; jump $Ii", 8555tc_5502c366, TypeCJ>, Enc_9e4c3f { 8556let Inst{0-0} = 0b0; 8557let Inst{31-22} = 0b0001011000; 8558let hasNewValue = 1; 8559let opNewValue = 0; 8560let isTerminator = 1; 8561let isBranch = 1; 8562let cofRelax2 = 1; 8563let cofMax1 = 1; 8564let Defs = [PC]; 8565let isExtendable = 1; 8566let opExtendable = 2; 8567let isExtentSigned = 1; 8568let opExtentBits = 11; 8569let opExtentAlign = 2; 8570} 8571def J4_jumpsetr : HInst< 8572(outs GeneralSubRegs:$Rd16), 8573(ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii), 8574"$Rd16 = $Rs16 ; jump $Ii", 8575tc_5502c366, TypeCJ>, Enc_66bce1 { 8576let Inst{0-0} = 0b0; 8577let Inst{13-12} = 0b00; 8578let Inst{31-22} = 0b0001011100; 8579let hasNewValue = 1; 8580let opNewValue = 0; 8581let isTerminator = 1; 8582let isBranch = 1; 8583let cofRelax2 = 1; 8584let cofMax1 = 1; 8585let Defs = [PC]; 8586let isExtendable = 1; 8587let opExtendable = 2; 8588let isExtentSigned = 1; 8589let opExtentBits = 11; 8590let opExtentAlign = 2; 8591} 8592def J4_tstbit0_f_jumpnv_nt : HInst< 8593(outs), 8594(ins IntRegs:$Ns8, b30_2Imm:$Ii), 8595"if (!tstbit($Ns8.new,#0)) jump:nt $Ii", 8596tc_7b9187d3, TypeNCJ>, Enc_69d63b { 8597let Inst{0-0} = 0b0; 8598let Inst{13-8} = 0b000000; 8599let Inst{19-19} = 0b0; 8600let Inst{31-22} = 0b0010010111; 8601let isPredicated = 1; 8602let isPredicatedFalse = 1; 8603let isTerminator = 1; 8604let isBranch = 1; 8605let isNewValue = 1; 8606let cofMax1 = 1; 8607let isRestrictNoSlot1Store = 1; 8608let Defs = [PC]; 8609let isTaken = Inst{13}; 8610let isExtendable = 1; 8611let opExtendable = 1; 8612let isExtentSigned = 1; 8613let opExtentBits = 11; 8614let opExtentAlign = 2; 8615let opNewValue = 0; 8616} 8617def J4_tstbit0_f_jumpnv_t : HInst< 8618(outs), 8619(ins IntRegs:$Ns8, b30_2Imm:$Ii), 8620"if (!tstbit($Ns8.new,#0)) jump:t $Ii", 8621tc_7b9187d3, TypeNCJ>, Enc_69d63b { 8622let Inst{0-0} = 0b0; 8623let Inst{13-8} = 0b100000; 8624let Inst{19-19} = 0b0; 8625let Inst{31-22} = 0b0010010111; 8626let isPredicated = 1; 8627let isPredicatedFalse = 1; 8628let isTerminator = 1; 8629let isBranch = 1; 8630let isNewValue = 1; 8631let cofMax1 = 1; 8632let isRestrictNoSlot1Store = 1; 8633let Defs = [PC]; 8634let isTaken = Inst{13}; 8635let isExtendable = 1; 8636let opExtendable = 1; 8637let isExtentSigned = 1; 8638let opExtentBits = 11; 8639let opExtentAlign = 2; 8640let opNewValue = 0; 8641} 8642def J4_tstbit0_fp0_jump_nt : HInst< 8643(outs), 8644(ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii), 8645"p0 = tstbit($Rs16,#0); if (!p0.new) jump:nt $Ii", 8646tc_f999c66e, TypeCJ>, Enc_ad1c74 { 8647let Inst{0-0} = 0b0; 8648let Inst{13-8} = 0b000011; 8649let Inst{31-22} = 0b0001000111; 8650let isPredicated = 1; 8651let isPredicatedFalse = 1; 8652let isTerminator = 1; 8653let isBranch = 1; 8654let isPredicatedNew = 1; 8655let cofRelax1 = 1; 8656let cofRelax2 = 1; 8657let cofMax1 = 1; 8658let Uses = [P0]; 8659let Defs = [P0, PC]; 8660let isTaken = Inst{13}; 8661let isExtendable = 1; 8662let opExtendable = 1; 8663let isExtentSigned = 1; 8664let opExtentBits = 11; 8665let opExtentAlign = 2; 8666} 8667def J4_tstbit0_fp0_jump_t : HInst< 8668(outs), 8669(ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii), 8670"p0 = tstbit($Rs16,#0); if (!p0.new) jump:t $Ii", 8671tc_f999c66e, TypeCJ>, Enc_ad1c74 { 8672let Inst{0-0} = 0b0; 8673let Inst{13-8} = 0b100011; 8674let Inst{31-22} = 0b0001000111; 8675let isPredicated = 1; 8676let isPredicatedFalse = 1; 8677let isTerminator = 1; 8678let isBranch = 1; 8679let isPredicatedNew = 1; 8680let cofRelax1 = 1; 8681let cofRelax2 = 1; 8682let cofMax1 = 1; 8683let Uses = [P0]; 8684let Defs = [P0, PC]; 8685let isTaken = Inst{13}; 8686let isExtendable = 1; 8687let opExtendable = 1; 8688let isExtentSigned = 1; 8689let opExtentBits = 11; 8690let opExtentAlign = 2; 8691} 8692def J4_tstbit0_fp1_jump_nt : HInst< 8693(outs), 8694(ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii), 8695"p1 = tstbit($Rs16,#0); if (!p1.new) jump:nt $Ii", 8696tc_f999c66e, TypeCJ>, Enc_ad1c74 { 8697let Inst{0-0} = 0b0; 8698let Inst{13-8} = 0b000011; 8699let Inst{31-22} = 0b0001001111; 8700let isPredicated = 1; 8701let isPredicatedFalse = 1; 8702let isTerminator = 1; 8703let isBranch = 1; 8704let isPredicatedNew = 1; 8705let cofRelax1 = 1; 8706let cofRelax2 = 1; 8707let cofMax1 = 1; 8708let Uses = [P1]; 8709let Defs = [P1, PC]; 8710let isTaken = Inst{13}; 8711let isExtendable = 1; 8712let opExtendable = 1; 8713let isExtentSigned = 1; 8714let opExtentBits = 11; 8715let opExtentAlign = 2; 8716} 8717def J4_tstbit0_fp1_jump_t : HInst< 8718(outs), 8719(ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii), 8720"p1 = tstbit($Rs16,#0); if (!p1.new) jump:t $Ii", 8721tc_f999c66e, TypeCJ>, Enc_ad1c74 { 8722let Inst{0-0} = 0b0; 8723let Inst{13-8} = 0b100011; 8724let Inst{31-22} = 0b0001001111; 8725let isPredicated = 1; 8726let isPredicatedFalse = 1; 8727let isTerminator = 1; 8728let isBranch = 1; 8729let isPredicatedNew = 1; 8730let cofRelax1 = 1; 8731let cofRelax2 = 1; 8732let cofMax1 = 1; 8733let Uses = [P1]; 8734let Defs = [P1, PC]; 8735let isTaken = Inst{13}; 8736let isExtendable = 1; 8737let opExtendable = 1; 8738let isExtentSigned = 1; 8739let opExtentBits = 11; 8740let opExtentAlign = 2; 8741} 8742def J4_tstbit0_t_jumpnv_nt : HInst< 8743(outs), 8744(ins IntRegs:$Ns8, b30_2Imm:$Ii), 8745"if (tstbit($Ns8.new,#0)) jump:nt $Ii", 8746tc_7b9187d3, TypeNCJ>, Enc_69d63b { 8747let Inst{0-0} = 0b0; 8748let Inst{13-8} = 0b000000; 8749let Inst{19-19} = 0b0; 8750let Inst{31-22} = 0b0010010110; 8751let isPredicated = 1; 8752let isTerminator = 1; 8753let isBranch = 1; 8754let isNewValue = 1; 8755let cofMax1 = 1; 8756let isRestrictNoSlot1Store = 1; 8757let Defs = [PC]; 8758let isTaken = Inst{13}; 8759let isExtendable = 1; 8760let opExtendable = 1; 8761let isExtentSigned = 1; 8762let opExtentBits = 11; 8763let opExtentAlign = 2; 8764let opNewValue = 0; 8765} 8766def J4_tstbit0_t_jumpnv_t : HInst< 8767(outs), 8768(ins IntRegs:$Ns8, b30_2Imm:$Ii), 8769"if (tstbit($Ns8.new,#0)) jump:t $Ii", 8770tc_7b9187d3, TypeNCJ>, Enc_69d63b { 8771let Inst{0-0} = 0b0; 8772let Inst{13-8} = 0b100000; 8773let Inst{19-19} = 0b0; 8774let Inst{31-22} = 0b0010010110; 8775let isPredicated = 1; 8776let isTerminator = 1; 8777let isBranch = 1; 8778let isNewValue = 1; 8779let cofMax1 = 1; 8780let isRestrictNoSlot1Store = 1; 8781let Defs = [PC]; 8782let isTaken = Inst{13}; 8783let isExtendable = 1; 8784let opExtendable = 1; 8785let isExtentSigned = 1; 8786let opExtentBits = 11; 8787let opExtentAlign = 2; 8788let opNewValue = 0; 8789} 8790def J4_tstbit0_tp0_jump_nt : HInst< 8791(outs), 8792(ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii), 8793"p0 = tstbit($Rs16,#0); if (p0.new) jump:nt $Ii", 8794tc_f999c66e, TypeCJ>, Enc_ad1c74 { 8795let Inst{0-0} = 0b0; 8796let Inst{13-8} = 0b000011; 8797let Inst{31-22} = 0b0001000110; 8798let isPredicated = 1; 8799let isTerminator = 1; 8800let isBranch = 1; 8801let isPredicatedNew = 1; 8802let cofRelax1 = 1; 8803let cofRelax2 = 1; 8804let cofMax1 = 1; 8805let Uses = [P0]; 8806let Defs = [P0, PC]; 8807let isTaken = Inst{13}; 8808let isExtendable = 1; 8809let opExtendable = 1; 8810let isExtentSigned = 1; 8811let opExtentBits = 11; 8812let opExtentAlign = 2; 8813} 8814def J4_tstbit0_tp0_jump_t : HInst< 8815(outs), 8816(ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii), 8817"p0 = tstbit($Rs16,#0); if (p0.new) jump:t $Ii", 8818tc_f999c66e, TypeCJ>, Enc_ad1c74 { 8819let Inst{0-0} = 0b0; 8820let Inst{13-8} = 0b100011; 8821let Inst{31-22} = 0b0001000110; 8822let isPredicated = 1; 8823let isTerminator = 1; 8824let isBranch = 1; 8825let isPredicatedNew = 1; 8826let cofRelax1 = 1; 8827let cofRelax2 = 1; 8828let cofMax1 = 1; 8829let Uses = [P0]; 8830let Defs = [P0, PC]; 8831let isTaken = Inst{13}; 8832let isExtendable = 1; 8833let opExtendable = 1; 8834let isExtentSigned = 1; 8835let opExtentBits = 11; 8836let opExtentAlign = 2; 8837} 8838def J4_tstbit0_tp1_jump_nt : HInst< 8839(outs), 8840(ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii), 8841"p1 = tstbit($Rs16,#0); if (p1.new) jump:nt $Ii", 8842tc_f999c66e, TypeCJ>, Enc_ad1c74 { 8843let Inst{0-0} = 0b0; 8844let Inst{13-8} = 0b000011; 8845let Inst{31-22} = 0b0001001110; 8846let isPredicated = 1; 8847let isTerminator = 1; 8848let isBranch = 1; 8849let isPredicatedNew = 1; 8850let cofRelax1 = 1; 8851let cofRelax2 = 1; 8852let cofMax1 = 1; 8853let Uses = [P1]; 8854let Defs = [P1, PC]; 8855let isTaken = Inst{13}; 8856let isExtendable = 1; 8857let opExtendable = 1; 8858let isExtentSigned = 1; 8859let opExtentBits = 11; 8860let opExtentAlign = 2; 8861} 8862def J4_tstbit0_tp1_jump_t : HInst< 8863(outs), 8864(ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii), 8865"p1 = tstbit($Rs16,#0); if (p1.new) jump:t $Ii", 8866tc_f999c66e, TypeCJ>, Enc_ad1c74 { 8867let Inst{0-0} = 0b0; 8868let Inst{13-8} = 0b100011; 8869let Inst{31-22} = 0b0001001110; 8870let isPredicated = 1; 8871let isTerminator = 1; 8872let isBranch = 1; 8873let isPredicatedNew = 1; 8874let cofRelax1 = 1; 8875let cofRelax2 = 1; 8876let cofMax1 = 1; 8877let Uses = [P1]; 8878let Defs = [P1, PC]; 8879let isTaken = Inst{13}; 8880let isExtendable = 1; 8881let opExtendable = 1; 8882let isExtentSigned = 1; 8883let opExtentBits = 11; 8884let opExtentAlign = 2; 8885} 8886def L2_deallocframe : HInst< 8887(outs DoubleRegs:$Rdd32), 8888(ins IntRegs:$Rs32), 8889"$Rdd32 = deallocframe($Rs32):raw", 8890tc_e9170fb7, TypeLD>, Enc_3a3d62 { 8891let Inst{13-5} = 0b000000000; 8892let Inst{31-21} = 0b10010000000; 8893let accessSize = DoubleWordAccess; 8894let mayLoad = 1; 8895let Uses = [FRAMEKEY]; 8896let Defs = [R29]; 8897} 8898def L2_loadalignb_io : HInst< 8899(outs DoubleRegs:$Ryy32), 8900(ins DoubleRegs:$Ryy32in, IntRegs:$Rs32, s32_0Imm:$Ii), 8901"$Ryy32 = memb_fifo($Rs32+#$Ii)", 8902tc_fedb7e19, TypeLD>, Enc_a27588 { 8903let Inst{24-21} = 0b0100; 8904let Inst{31-27} = 0b10010; 8905let addrMode = BaseImmOffset; 8906let accessSize = ByteAccess; 8907let mayLoad = 1; 8908let isExtendable = 1; 8909let opExtendable = 3; 8910let isExtentSigned = 1; 8911let opExtentBits = 11; 8912let opExtentAlign = 0; 8913let Constraints = "$Ryy32 = $Ryy32in"; 8914} 8915def L2_loadalignb_pbr : HInst< 8916(outs DoubleRegs:$Ryy32, IntRegs:$Rx32), 8917(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2), 8918"$Ryy32 = memb_fifo($Rx32++$Mu2:brev)", 8919tc_1c7522a8, TypeLD>, Enc_1f5d8f { 8920let Inst{12-5} = 0b00000000; 8921let Inst{31-21} = 0b10011110100; 8922let addrMode = PostInc; 8923let accessSize = ByteAccess; 8924let mayLoad = 1; 8925let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in"; 8926} 8927def L2_loadalignb_pci : HInst< 8928(outs DoubleRegs:$Ryy32, IntRegs:$Rx32), 8929(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2), 8930"$Ryy32 = memb_fifo($Rx32++#$Ii:circ($Mu2))", 8931tc_76bb5435, TypeLD>, Enc_74aef2 { 8932let Inst{12-9} = 0b0000; 8933let Inst{31-21} = 0b10011000100; 8934let addrMode = PostInc; 8935let accessSize = ByteAccess; 8936let mayLoad = 1; 8937let Uses = [CS]; 8938let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in"; 8939} 8940def L2_loadalignb_pcr : HInst< 8941(outs DoubleRegs:$Ryy32, IntRegs:$Rx32), 8942(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2), 8943"$Ryy32 = memb_fifo($Rx32++I:circ($Mu2))", 8944tc_1c7522a8, TypeLD>, Enc_1f5d8f { 8945let Inst{12-5} = 0b00010000; 8946let Inst{31-21} = 0b10011000100; 8947let addrMode = PostInc; 8948let accessSize = ByteAccess; 8949let mayLoad = 1; 8950let Uses = [CS]; 8951let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in"; 8952} 8953def L2_loadalignb_pi : HInst< 8954(outs DoubleRegs:$Ryy32, IntRegs:$Rx32), 8955(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, s4_0Imm:$Ii), 8956"$Ryy32 = memb_fifo($Rx32++#$Ii)", 8957tc_1c7522a8, TypeLD>, Enc_6b197f { 8958let Inst{13-9} = 0b00000; 8959let Inst{31-21} = 0b10011010100; 8960let addrMode = PostInc; 8961let accessSize = ByteAccess; 8962let mayLoad = 1; 8963let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in"; 8964} 8965def L2_loadalignb_pr : HInst< 8966(outs DoubleRegs:$Ryy32, IntRegs:$Rx32), 8967(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2), 8968"$Ryy32 = memb_fifo($Rx32++$Mu2)", 8969tc_1c7522a8, TypeLD>, Enc_1f5d8f { 8970let Inst{12-5} = 0b00000000; 8971let Inst{31-21} = 0b10011100100; 8972let addrMode = PostInc; 8973let accessSize = ByteAccess; 8974let mayLoad = 1; 8975let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in"; 8976} 8977def L2_loadalignb_zomap : HInst< 8978(outs DoubleRegs:$Ryy32), 8979(ins DoubleRegs:$Ryy32in, IntRegs:$Rs32), 8980"$Ryy32 = memb_fifo($Rs32)", 8981tc_fedb7e19, TypeMAPPING> { 8982let isPseudo = 1; 8983let isCodeGenOnly = 1; 8984let Constraints = "$Ryy32 = $Ryy32in"; 8985} 8986def L2_loadalignh_io : HInst< 8987(outs DoubleRegs:$Ryy32), 8988(ins DoubleRegs:$Ryy32in, IntRegs:$Rs32, s31_1Imm:$Ii), 8989"$Ryy32 = memh_fifo($Rs32+#$Ii)", 8990tc_fedb7e19, TypeLD>, Enc_5cd7e9 { 8991let Inst{24-21} = 0b0010; 8992let Inst{31-27} = 0b10010; 8993let addrMode = BaseImmOffset; 8994let accessSize = HalfWordAccess; 8995let mayLoad = 1; 8996let isExtendable = 1; 8997let opExtendable = 3; 8998let isExtentSigned = 1; 8999let opExtentBits = 12; 9000let opExtentAlign = 1; 9001let Constraints = "$Ryy32 = $Ryy32in"; 9002} 9003def L2_loadalignh_pbr : HInst< 9004(outs DoubleRegs:$Ryy32, IntRegs:$Rx32), 9005(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2), 9006"$Ryy32 = memh_fifo($Rx32++$Mu2:brev)", 9007tc_1c7522a8, TypeLD>, Enc_1f5d8f { 9008let Inst{12-5} = 0b00000000; 9009let Inst{31-21} = 0b10011110010; 9010let addrMode = PostInc; 9011let accessSize = HalfWordAccess; 9012let mayLoad = 1; 9013let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in"; 9014} 9015def L2_loadalignh_pci : HInst< 9016(outs DoubleRegs:$Ryy32, IntRegs:$Rx32), 9017(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2), 9018"$Ryy32 = memh_fifo($Rx32++#$Ii:circ($Mu2))", 9019tc_76bb5435, TypeLD>, Enc_9e2e1c { 9020let Inst{12-9} = 0b0000; 9021let Inst{31-21} = 0b10011000010; 9022let addrMode = PostInc; 9023let accessSize = HalfWordAccess; 9024let mayLoad = 1; 9025let Uses = [CS]; 9026let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in"; 9027} 9028def L2_loadalignh_pcr : HInst< 9029(outs DoubleRegs:$Ryy32, IntRegs:$Rx32), 9030(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2), 9031"$Ryy32 = memh_fifo($Rx32++I:circ($Mu2))", 9032tc_1c7522a8, TypeLD>, Enc_1f5d8f { 9033let Inst{12-5} = 0b00010000; 9034let Inst{31-21} = 0b10011000010; 9035let addrMode = PostInc; 9036let accessSize = HalfWordAccess; 9037let mayLoad = 1; 9038let Uses = [CS]; 9039let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in"; 9040} 9041def L2_loadalignh_pi : HInst< 9042(outs DoubleRegs:$Ryy32, IntRegs:$Rx32), 9043(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, s4_1Imm:$Ii), 9044"$Ryy32 = memh_fifo($Rx32++#$Ii)", 9045tc_1c7522a8, TypeLD>, Enc_bd1cbc { 9046let Inst{13-9} = 0b00000; 9047let Inst{31-21} = 0b10011010010; 9048let addrMode = PostInc; 9049let accessSize = HalfWordAccess; 9050let mayLoad = 1; 9051let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in"; 9052} 9053def L2_loadalignh_pr : HInst< 9054(outs DoubleRegs:$Ryy32, IntRegs:$Rx32), 9055(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2), 9056"$Ryy32 = memh_fifo($Rx32++$Mu2)", 9057tc_1c7522a8, TypeLD>, Enc_1f5d8f { 9058let Inst{12-5} = 0b00000000; 9059let Inst{31-21} = 0b10011100010; 9060let addrMode = PostInc; 9061let accessSize = HalfWordAccess; 9062let mayLoad = 1; 9063let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in"; 9064} 9065def L2_loadalignh_zomap : HInst< 9066(outs DoubleRegs:$Ryy32), 9067(ins DoubleRegs:$Ryy32in, IntRegs:$Rs32), 9068"$Ryy32 = memh_fifo($Rs32)", 9069tc_fedb7e19, TypeMAPPING> { 9070let isPseudo = 1; 9071let isCodeGenOnly = 1; 9072let Constraints = "$Ryy32 = $Ryy32in"; 9073} 9074def L2_loadbsw2_io : HInst< 9075(outs IntRegs:$Rd32), 9076(ins IntRegs:$Rs32, s31_1Imm:$Ii), 9077"$Rd32 = membh($Rs32+#$Ii)", 9078tc_4222e6bf, TypeLD>, Enc_de0214 { 9079let Inst{24-21} = 0b0001; 9080let Inst{31-27} = 0b10010; 9081let hasNewValue = 1; 9082let opNewValue = 0; 9083let addrMode = BaseImmOffset; 9084let accessSize = HalfWordAccess; 9085let mayLoad = 1; 9086let isExtendable = 1; 9087let opExtendable = 2; 9088let isExtentSigned = 1; 9089let opExtentBits = 12; 9090let opExtentAlign = 1; 9091} 9092def L2_loadbsw2_pbr : HInst< 9093(outs IntRegs:$Rd32, IntRegs:$Rx32), 9094(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9095"$Rd32 = membh($Rx32++$Mu2:brev)", 9096tc_075c8dd8, TypeLD>, Enc_74d4e5 { 9097let Inst{12-5} = 0b00000000; 9098let Inst{31-21} = 0b10011110001; 9099let hasNewValue = 1; 9100let opNewValue = 0; 9101let addrMode = PostInc; 9102let accessSize = HalfWordAccess; 9103let mayLoad = 1; 9104let Constraints = "$Rx32 = $Rx32in"; 9105} 9106def L2_loadbsw2_pci : HInst< 9107(outs IntRegs:$Rd32, IntRegs:$Rx32), 9108(ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2), 9109"$Rd32 = membh($Rx32++#$Ii:circ($Mu2))", 9110tc_5ceb2f9e, TypeLD>, Enc_e83554 { 9111let Inst{12-9} = 0b0000; 9112let Inst{31-21} = 0b10011000001; 9113let hasNewValue = 1; 9114let opNewValue = 0; 9115let addrMode = PostInc; 9116let accessSize = HalfWordAccess; 9117let mayLoad = 1; 9118let Uses = [CS]; 9119let Constraints = "$Rx32 = $Rx32in"; 9120} 9121def L2_loadbsw2_pcr : HInst< 9122(outs IntRegs:$Rd32, IntRegs:$Rx32), 9123(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9124"$Rd32 = membh($Rx32++I:circ($Mu2))", 9125tc_075c8dd8, TypeLD>, Enc_74d4e5 { 9126let Inst{12-5} = 0b00010000; 9127let Inst{31-21} = 0b10011000001; 9128let hasNewValue = 1; 9129let opNewValue = 0; 9130let addrMode = PostInc; 9131let accessSize = HalfWordAccess; 9132let mayLoad = 1; 9133let Uses = [CS]; 9134let Constraints = "$Rx32 = $Rx32in"; 9135} 9136def L2_loadbsw2_pi : HInst< 9137(outs IntRegs:$Rd32, IntRegs:$Rx32), 9138(ins IntRegs:$Rx32in, s4_1Imm:$Ii), 9139"$Rd32 = membh($Rx32++#$Ii)", 9140tc_075c8dd8, TypeLD>, Enc_152467 { 9141let Inst{13-9} = 0b00000; 9142let Inst{31-21} = 0b10011010001; 9143let hasNewValue = 1; 9144let opNewValue = 0; 9145let addrMode = PostInc; 9146let accessSize = HalfWordAccess; 9147let mayLoad = 1; 9148let Constraints = "$Rx32 = $Rx32in"; 9149} 9150def L2_loadbsw2_pr : HInst< 9151(outs IntRegs:$Rd32, IntRegs:$Rx32), 9152(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9153"$Rd32 = membh($Rx32++$Mu2)", 9154tc_075c8dd8, TypeLD>, Enc_74d4e5 { 9155let Inst{12-5} = 0b00000000; 9156let Inst{31-21} = 0b10011100001; 9157let hasNewValue = 1; 9158let opNewValue = 0; 9159let addrMode = PostInc; 9160let accessSize = HalfWordAccess; 9161let mayLoad = 1; 9162let Constraints = "$Rx32 = $Rx32in"; 9163} 9164def L2_loadbsw2_zomap : HInst< 9165(outs IntRegs:$Rd32), 9166(ins IntRegs:$Rs32), 9167"$Rd32 = membh($Rs32)", 9168tc_4222e6bf, TypeMAPPING> { 9169let hasNewValue = 1; 9170let opNewValue = 0; 9171let isPseudo = 1; 9172let isCodeGenOnly = 1; 9173} 9174def L2_loadbsw4_io : HInst< 9175(outs DoubleRegs:$Rdd32), 9176(ins IntRegs:$Rs32, s30_2Imm:$Ii), 9177"$Rdd32 = membh($Rs32+#$Ii)", 9178tc_4222e6bf, TypeLD>, Enc_2d7491 { 9179let Inst{24-21} = 0b0111; 9180let Inst{31-27} = 0b10010; 9181let addrMode = BaseImmOffset; 9182let accessSize = WordAccess; 9183let mayLoad = 1; 9184let isExtendable = 1; 9185let opExtendable = 2; 9186let isExtentSigned = 1; 9187let opExtentBits = 13; 9188let opExtentAlign = 2; 9189} 9190def L2_loadbsw4_pbr : HInst< 9191(outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 9192(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9193"$Rdd32 = membh($Rx32++$Mu2:brev)", 9194tc_075c8dd8, TypeLD>, Enc_7eee72 { 9195let Inst{12-5} = 0b00000000; 9196let Inst{31-21} = 0b10011110111; 9197let addrMode = PostInc; 9198let accessSize = WordAccess; 9199let mayLoad = 1; 9200let Constraints = "$Rx32 = $Rx32in"; 9201} 9202def L2_loadbsw4_pci : HInst< 9203(outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 9204(ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2), 9205"$Rdd32 = membh($Rx32++#$Ii:circ($Mu2))", 9206tc_5ceb2f9e, TypeLD>, Enc_70b24b { 9207let Inst{12-9} = 0b0000; 9208let Inst{31-21} = 0b10011000111; 9209let addrMode = PostInc; 9210let accessSize = WordAccess; 9211let mayLoad = 1; 9212let Uses = [CS]; 9213let Constraints = "$Rx32 = $Rx32in"; 9214} 9215def L2_loadbsw4_pcr : HInst< 9216(outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 9217(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9218"$Rdd32 = membh($Rx32++I:circ($Mu2))", 9219tc_075c8dd8, TypeLD>, Enc_7eee72 { 9220let Inst{12-5} = 0b00010000; 9221let Inst{31-21} = 0b10011000111; 9222let addrMode = PostInc; 9223let accessSize = WordAccess; 9224let mayLoad = 1; 9225let Uses = [CS]; 9226let Constraints = "$Rx32 = $Rx32in"; 9227} 9228def L2_loadbsw4_pi : HInst< 9229(outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 9230(ins IntRegs:$Rx32in, s4_2Imm:$Ii), 9231"$Rdd32 = membh($Rx32++#$Ii)", 9232tc_075c8dd8, TypeLD>, Enc_71f1b4 { 9233let Inst{13-9} = 0b00000; 9234let Inst{31-21} = 0b10011010111; 9235let addrMode = PostInc; 9236let accessSize = WordAccess; 9237let mayLoad = 1; 9238let Constraints = "$Rx32 = $Rx32in"; 9239} 9240def L2_loadbsw4_pr : HInst< 9241(outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 9242(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9243"$Rdd32 = membh($Rx32++$Mu2)", 9244tc_075c8dd8, TypeLD>, Enc_7eee72 { 9245let Inst{12-5} = 0b00000000; 9246let Inst{31-21} = 0b10011100111; 9247let addrMode = PostInc; 9248let accessSize = WordAccess; 9249let mayLoad = 1; 9250let Constraints = "$Rx32 = $Rx32in"; 9251} 9252def L2_loadbsw4_zomap : HInst< 9253(outs DoubleRegs:$Rdd32), 9254(ins IntRegs:$Rs32), 9255"$Rdd32 = membh($Rs32)", 9256tc_4222e6bf, TypeMAPPING> { 9257let isPseudo = 1; 9258let isCodeGenOnly = 1; 9259} 9260def L2_loadbzw2_io : HInst< 9261(outs IntRegs:$Rd32), 9262(ins IntRegs:$Rs32, s31_1Imm:$Ii), 9263"$Rd32 = memubh($Rs32+#$Ii)", 9264tc_4222e6bf, TypeLD>, Enc_de0214 { 9265let Inst{24-21} = 0b0011; 9266let Inst{31-27} = 0b10010; 9267let hasNewValue = 1; 9268let opNewValue = 0; 9269let addrMode = BaseImmOffset; 9270let accessSize = HalfWordAccess; 9271let mayLoad = 1; 9272let isExtendable = 1; 9273let opExtendable = 2; 9274let isExtentSigned = 1; 9275let opExtentBits = 12; 9276let opExtentAlign = 1; 9277} 9278def L2_loadbzw2_pbr : HInst< 9279(outs IntRegs:$Rd32, IntRegs:$Rx32), 9280(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9281"$Rd32 = memubh($Rx32++$Mu2:brev)", 9282tc_075c8dd8, TypeLD>, Enc_74d4e5 { 9283let Inst{12-5} = 0b00000000; 9284let Inst{31-21} = 0b10011110011; 9285let hasNewValue = 1; 9286let opNewValue = 0; 9287let addrMode = PostInc; 9288let accessSize = HalfWordAccess; 9289let mayLoad = 1; 9290let Constraints = "$Rx32 = $Rx32in"; 9291} 9292def L2_loadbzw2_pci : HInst< 9293(outs IntRegs:$Rd32, IntRegs:$Rx32), 9294(ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2), 9295"$Rd32 = memubh($Rx32++#$Ii:circ($Mu2))", 9296tc_5ceb2f9e, TypeLD>, Enc_e83554 { 9297let Inst{12-9} = 0b0000; 9298let Inst{31-21} = 0b10011000011; 9299let hasNewValue = 1; 9300let opNewValue = 0; 9301let addrMode = PostInc; 9302let accessSize = HalfWordAccess; 9303let mayLoad = 1; 9304let Uses = [CS]; 9305let Constraints = "$Rx32 = $Rx32in"; 9306} 9307def L2_loadbzw2_pcr : HInst< 9308(outs IntRegs:$Rd32, IntRegs:$Rx32), 9309(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9310"$Rd32 = memubh($Rx32++I:circ($Mu2))", 9311tc_075c8dd8, TypeLD>, Enc_74d4e5 { 9312let Inst{12-5} = 0b00010000; 9313let Inst{31-21} = 0b10011000011; 9314let hasNewValue = 1; 9315let opNewValue = 0; 9316let addrMode = PostInc; 9317let accessSize = HalfWordAccess; 9318let mayLoad = 1; 9319let Uses = [CS]; 9320let Constraints = "$Rx32 = $Rx32in"; 9321} 9322def L2_loadbzw2_pi : HInst< 9323(outs IntRegs:$Rd32, IntRegs:$Rx32), 9324(ins IntRegs:$Rx32in, s4_1Imm:$Ii), 9325"$Rd32 = memubh($Rx32++#$Ii)", 9326tc_075c8dd8, TypeLD>, Enc_152467 { 9327let Inst{13-9} = 0b00000; 9328let Inst{31-21} = 0b10011010011; 9329let hasNewValue = 1; 9330let opNewValue = 0; 9331let addrMode = PostInc; 9332let accessSize = HalfWordAccess; 9333let mayLoad = 1; 9334let Constraints = "$Rx32 = $Rx32in"; 9335} 9336def L2_loadbzw2_pr : HInst< 9337(outs IntRegs:$Rd32, IntRegs:$Rx32), 9338(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9339"$Rd32 = memubh($Rx32++$Mu2)", 9340tc_075c8dd8, TypeLD>, Enc_74d4e5 { 9341let Inst{12-5} = 0b00000000; 9342let Inst{31-21} = 0b10011100011; 9343let hasNewValue = 1; 9344let opNewValue = 0; 9345let addrMode = PostInc; 9346let accessSize = HalfWordAccess; 9347let mayLoad = 1; 9348let Constraints = "$Rx32 = $Rx32in"; 9349} 9350def L2_loadbzw2_zomap : HInst< 9351(outs IntRegs:$Rd32), 9352(ins IntRegs:$Rs32), 9353"$Rd32 = memubh($Rs32)", 9354tc_4222e6bf, TypeMAPPING> { 9355let hasNewValue = 1; 9356let opNewValue = 0; 9357let isPseudo = 1; 9358let isCodeGenOnly = 1; 9359} 9360def L2_loadbzw4_io : HInst< 9361(outs DoubleRegs:$Rdd32), 9362(ins IntRegs:$Rs32, s30_2Imm:$Ii), 9363"$Rdd32 = memubh($Rs32+#$Ii)", 9364tc_4222e6bf, TypeLD>, Enc_2d7491 { 9365let Inst{24-21} = 0b0101; 9366let Inst{31-27} = 0b10010; 9367let addrMode = BaseImmOffset; 9368let accessSize = WordAccess; 9369let mayLoad = 1; 9370let isExtendable = 1; 9371let opExtendable = 2; 9372let isExtentSigned = 1; 9373let opExtentBits = 13; 9374let opExtentAlign = 2; 9375} 9376def L2_loadbzw4_pbr : HInst< 9377(outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 9378(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9379"$Rdd32 = memubh($Rx32++$Mu2:brev)", 9380tc_075c8dd8, TypeLD>, Enc_7eee72 { 9381let Inst{12-5} = 0b00000000; 9382let Inst{31-21} = 0b10011110101; 9383let addrMode = PostInc; 9384let accessSize = WordAccess; 9385let mayLoad = 1; 9386let Constraints = "$Rx32 = $Rx32in"; 9387} 9388def L2_loadbzw4_pci : HInst< 9389(outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 9390(ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2), 9391"$Rdd32 = memubh($Rx32++#$Ii:circ($Mu2))", 9392tc_5ceb2f9e, TypeLD>, Enc_70b24b { 9393let Inst{12-9} = 0b0000; 9394let Inst{31-21} = 0b10011000101; 9395let addrMode = PostInc; 9396let accessSize = WordAccess; 9397let mayLoad = 1; 9398let Uses = [CS]; 9399let Constraints = "$Rx32 = $Rx32in"; 9400} 9401def L2_loadbzw4_pcr : HInst< 9402(outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 9403(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9404"$Rdd32 = memubh($Rx32++I:circ($Mu2))", 9405tc_075c8dd8, TypeLD>, Enc_7eee72 { 9406let Inst{12-5} = 0b00010000; 9407let Inst{31-21} = 0b10011000101; 9408let addrMode = PostInc; 9409let accessSize = WordAccess; 9410let mayLoad = 1; 9411let Uses = [CS]; 9412let Constraints = "$Rx32 = $Rx32in"; 9413} 9414def L2_loadbzw4_pi : HInst< 9415(outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 9416(ins IntRegs:$Rx32in, s4_2Imm:$Ii), 9417"$Rdd32 = memubh($Rx32++#$Ii)", 9418tc_075c8dd8, TypeLD>, Enc_71f1b4 { 9419let Inst{13-9} = 0b00000; 9420let Inst{31-21} = 0b10011010101; 9421let addrMode = PostInc; 9422let accessSize = WordAccess; 9423let mayLoad = 1; 9424let Constraints = "$Rx32 = $Rx32in"; 9425} 9426def L2_loadbzw4_pr : HInst< 9427(outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 9428(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9429"$Rdd32 = memubh($Rx32++$Mu2)", 9430tc_075c8dd8, TypeLD>, Enc_7eee72 { 9431let Inst{12-5} = 0b00000000; 9432let Inst{31-21} = 0b10011100101; 9433let addrMode = PostInc; 9434let accessSize = WordAccess; 9435let mayLoad = 1; 9436let Constraints = "$Rx32 = $Rx32in"; 9437} 9438def L2_loadbzw4_zomap : HInst< 9439(outs DoubleRegs:$Rdd32), 9440(ins IntRegs:$Rs32), 9441"$Rdd32 = memubh($Rs32)", 9442tc_4222e6bf, TypeMAPPING> { 9443let isPseudo = 1; 9444let isCodeGenOnly = 1; 9445} 9446def L2_loadrb_io : HInst< 9447(outs IntRegs:$Rd32), 9448(ins IntRegs:$Rs32, s32_0Imm:$Ii), 9449"$Rd32 = memb($Rs32+#$Ii)", 9450tc_4222e6bf, TypeLD>, Enc_211aaa, AddrModeRel, PostInc_BaseImm { 9451let Inst{24-21} = 0b1000; 9452let Inst{31-27} = 0b10010; 9453let hasNewValue = 1; 9454let opNewValue = 0; 9455let addrMode = BaseImmOffset; 9456let accessSize = ByteAccess; 9457let mayLoad = 1; 9458let BaseOpcode = "L2_loadrb_io"; 9459let CextOpcode = "L2_loadrb"; 9460let isPredicable = 1; 9461let isExtendable = 1; 9462let opExtendable = 2; 9463let isExtentSigned = 1; 9464let opExtentBits = 11; 9465let opExtentAlign = 0; 9466} 9467def L2_loadrb_pbr : HInst< 9468(outs IntRegs:$Rd32, IntRegs:$Rx32), 9469(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9470"$Rd32 = memb($Rx32++$Mu2:brev)", 9471tc_075c8dd8, TypeLD>, Enc_74d4e5 { 9472let Inst{12-5} = 0b00000000; 9473let Inst{31-21} = 0b10011111000; 9474let hasNewValue = 1; 9475let opNewValue = 0; 9476let addrMode = PostInc; 9477let accessSize = ByteAccess; 9478let mayLoad = 1; 9479let Constraints = "$Rx32 = $Rx32in"; 9480} 9481def L2_loadrb_pci : HInst< 9482(outs IntRegs:$Rd32, IntRegs:$Rx32), 9483(ins IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2), 9484"$Rd32 = memb($Rx32++#$Ii:circ($Mu2))", 9485tc_5ceb2f9e, TypeLD>, Enc_e0a47a { 9486let Inst{12-9} = 0b0000; 9487let Inst{31-21} = 0b10011001000; 9488let hasNewValue = 1; 9489let opNewValue = 0; 9490let addrMode = PostInc; 9491let accessSize = ByteAccess; 9492let mayLoad = 1; 9493let Uses = [CS]; 9494let Constraints = "$Rx32 = $Rx32in"; 9495} 9496def L2_loadrb_pcr : HInst< 9497(outs IntRegs:$Rd32, IntRegs:$Rx32), 9498(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9499"$Rd32 = memb($Rx32++I:circ($Mu2))", 9500tc_075c8dd8, TypeLD>, Enc_74d4e5 { 9501let Inst{12-5} = 0b00010000; 9502let Inst{31-21} = 0b10011001000; 9503let hasNewValue = 1; 9504let opNewValue = 0; 9505let addrMode = PostInc; 9506let accessSize = ByteAccess; 9507let mayLoad = 1; 9508let Uses = [CS]; 9509let Constraints = "$Rx32 = $Rx32in"; 9510} 9511def L2_loadrb_pi : HInst< 9512(outs IntRegs:$Rd32, IntRegs:$Rx32), 9513(ins IntRegs:$Rx32in, s4_0Imm:$Ii), 9514"$Rd32 = memb($Rx32++#$Ii)", 9515tc_075c8dd8, TypeLD>, Enc_222336, PredNewRel, PostInc_BaseImm { 9516let Inst{13-9} = 0b00000; 9517let Inst{31-21} = 0b10011011000; 9518let hasNewValue = 1; 9519let opNewValue = 0; 9520let addrMode = PostInc; 9521let accessSize = ByteAccess; 9522let mayLoad = 1; 9523let BaseOpcode = "L2_loadrb_pi"; 9524let CextOpcode = "L2_loadrb"; 9525let isPredicable = 1; 9526let Constraints = "$Rx32 = $Rx32in"; 9527} 9528def L2_loadrb_pr : HInst< 9529(outs IntRegs:$Rd32, IntRegs:$Rx32), 9530(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9531"$Rd32 = memb($Rx32++$Mu2)", 9532tc_075c8dd8, TypeLD>, Enc_74d4e5 { 9533let Inst{12-5} = 0b00000000; 9534let Inst{31-21} = 0b10011101000; 9535let hasNewValue = 1; 9536let opNewValue = 0; 9537let addrMode = PostInc; 9538let accessSize = ByteAccess; 9539let mayLoad = 1; 9540let Constraints = "$Rx32 = $Rx32in"; 9541} 9542def L2_loadrb_zomap : HInst< 9543(outs IntRegs:$Rd32), 9544(ins IntRegs:$Rs32), 9545"$Rd32 = memb($Rs32)", 9546tc_4222e6bf, TypeMAPPING> { 9547let hasNewValue = 1; 9548let opNewValue = 0; 9549let isPseudo = 1; 9550let isCodeGenOnly = 1; 9551} 9552def L2_loadrbgp : HInst< 9553(outs IntRegs:$Rd32), 9554(ins u32_0Imm:$Ii), 9555"$Rd32 = memb(gp+#$Ii)", 9556tc_8a6d0d94, TypeV2LDST>, Enc_25bef0, AddrModeRel { 9557let Inst{24-21} = 0b1000; 9558let Inst{31-27} = 0b01001; 9559let hasNewValue = 1; 9560let opNewValue = 0; 9561let accessSize = ByteAccess; 9562let mayLoad = 1; 9563let Uses = [GP]; 9564let BaseOpcode = "L4_loadrb_abs"; 9565let isPredicable = 1; 9566let opExtendable = 1; 9567let isExtentSigned = 0; 9568let opExtentBits = 16; 9569let opExtentAlign = 0; 9570} 9571def L2_loadrd_io : HInst< 9572(outs DoubleRegs:$Rdd32), 9573(ins IntRegs:$Rs32, s29_3Imm:$Ii), 9574"$Rdd32 = memd($Rs32+#$Ii)", 9575tc_4222e6bf, TypeLD>, Enc_fa3ba4, AddrModeRel, PostInc_BaseImm { 9576let Inst{24-21} = 0b1110; 9577let Inst{31-27} = 0b10010; 9578let addrMode = BaseImmOffset; 9579let accessSize = DoubleWordAccess; 9580let mayLoad = 1; 9581let BaseOpcode = "L2_loadrd_io"; 9582let CextOpcode = "L2_loadrd"; 9583let isPredicable = 1; 9584let isExtendable = 1; 9585let opExtendable = 2; 9586let isExtentSigned = 1; 9587let opExtentBits = 14; 9588let opExtentAlign = 3; 9589} 9590def L2_loadrd_pbr : HInst< 9591(outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 9592(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9593"$Rdd32 = memd($Rx32++$Mu2:brev)", 9594tc_075c8dd8, TypeLD>, Enc_7eee72 { 9595let Inst{12-5} = 0b00000000; 9596let Inst{31-21} = 0b10011111110; 9597let addrMode = PostInc; 9598let accessSize = DoubleWordAccess; 9599let mayLoad = 1; 9600let Constraints = "$Rx32 = $Rx32in"; 9601} 9602def L2_loadrd_pci : HInst< 9603(outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 9604(ins IntRegs:$Rx32in, s4_3Imm:$Ii, ModRegs:$Mu2), 9605"$Rdd32 = memd($Rx32++#$Ii:circ($Mu2))", 9606tc_5ceb2f9e, TypeLD>, Enc_b05839 { 9607let Inst{12-9} = 0b0000; 9608let Inst{31-21} = 0b10011001110; 9609let addrMode = PostInc; 9610let accessSize = DoubleWordAccess; 9611let mayLoad = 1; 9612let Uses = [CS]; 9613let Constraints = "$Rx32 = $Rx32in"; 9614} 9615def L2_loadrd_pcr : HInst< 9616(outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 9617(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9618"$Rdd32 = memd($Rx32++I:circ($Mu2))", 9619tc_075c8dd8, TypeLD>, Enc_7eee72 { 9620let Inst{12-5} = 0b00010000; 9621let Inst{31-21} = 0b10011001110; 9622let addrMode = PostInc; 9623let accessSize = DoubleWordAccess; 9624let mayLoad = 1; 9625let Uses = [CS]; 9626let Constraints = "$Rx32 = $Rx32in"; 9627} 9628def L2_loadrd_pi : HInst< 9629(outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 9630(ins IntRegs:$Rx32in, s4_3Imm:$Ii), 9631"$Rdd32 = memd($Rx32++#$Ii)", 9632tc_075c8dd8, TypeLD>, Enc_5bdd42, PredNewRel, PostInc_BaseImm { 9633let Inst{13-9} = 0b00000; 9634let Inst{31-21} = 0b10011011110; 9635let addrMode = PostInc; 9636let accessSize = DoubleWordAccess; 9637let mayLoad = 1; 9638let BaseOpcode = "L2_loadrd_pi"; 9639let CextOpcode = "L2_loadrd"; 9640let isPredicable = 1; 9641let Constraints = "$Rx32 = $Rx32in"; 9642} 9643def L2_loadrd_pr : HInst< 9644(outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 9645(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9646"$Rdd32 = memd($Rx32++$Mu2)", 9647tc_075c8dd8, TypeLD>, Enc_7eee72 { 9648let Inst{12-5} = 0b00000000; 9649let Inst{31-21} = 0b10011101110; 9650let addrMode = PostInc; 9651let accessSize = DoubleWordAccess; 9652let mayLoad = 1; 9653let Constraints = "$Rx32 = $Rx32in"; 9654} 9655def L2_loadrd_zomap : HInst< 9656(outs DoubleRegs:$Rdd32), 9657(ins IntRegs:$Rs32), 9658"$Rdd32 = memd($Rs32)", 9659tc_4222e6bf, TypeMAPPING> { 9660let isPseudo = 1; 9661let isCodeGenOnly = 1; 9662} 9663def L2_loadrdgp : HInst< 9664(outs DoubleRegs:$Rdd32), 9665(ins u29_3Imm:$Ii), 9666"$Rdd32 = memd(gp+#$Ii)", 9667tc_8a6d0d94, TypeV2LDST>, Enc_509701, AddrModeRel { 9668let Inst{24-21} = 0b1110; 9669let Inst{31-27} = 0b01001; 9670let accessSize = DoubleWordAccess; 9671let mayLoad = 1; 9672let Uses = [GP]; 9673let BaseOpcode = "L4_loadrd_abs"; 9674let isPredicable = 1; 9675let opExtendable = 1; 9676let isExtentSigned = 0; 9677let opExtentBits = 19; 9678let opExtentAlign = 3; 9679} 9680def L2_loadrh_io : HInst< 9681(outs IntRegs:$Rd32), 9682(ins IntRegs:$Rs32, s31_1Imm:$Ii), 9683"$Rd32 = memh($Rs32+#$Ii)", 9684tc_4222e6bf, TypeLD>, Enc_de0214, AddrModeRel, PostInc_BaseImm { 9685let Inst{24-21} = 0b1010; 9686let Inst{31-27} = 0b10010; 9687let hasNewValue = 1; 9688let opNewValue = 0; 9689let addrMode = BaseImmOffset; 9690let accessSize = HalfWordAccess; 9691let mayLoad = 1; 9692let BaseOpcode = "L2_loadrh_io"; 9693let CextOpcode = "L2_loadrh"; 9694let isPredicable = 1; 9695let isExtendable = 1; 9696let opExtendable = 2; 9697let isExtentSigned = 1; 9698let opExtentBits = 12; 9699let opExtentAlign = 1; 9700} 9701def L2_loadrh_pbr : HInst< 9702(outs IntRegs:$Rd32, IntRegs:$Rx32), 9703(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9704"$Rd32 = memh($Rx32++$Mu2:brev)", 9705tc_075c8dd8, TypeLD>, Enc_74d4e5 { 9706let Inst{12-5} = 0b00000000; 9707let Inst{31-21} = 0b10011111010; 9708let hasNewValue = 1; 9709let opNewValue = 0; 9710let addrMode = PostInc; 9711let accessSize = HalfWordAccess; 9712let mayLoad = 1; 9713let Constraints = "$Rx32 = $Rx32in"; 9714} 9715def L2_loadrh_pci : HInst< 9716(outs IntRegs:$Rd32, IntRegs:$Rx32), 9717(ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2), 9718"$Rd32 = memh($Rx32++#$Ii:circ($Mu2))", 9719tc_5ceb2f9e, TypeLD>, Enc_e83554 { 9720let Inst{12-9} = 0b0000; 9721let Inst{31-21} = 0b10011001010; 9722let hasNewValue = 1; 9723let opNewValue = 0; 9724let addrMode = PostInc; 9725let accessSize = HalfWordAccess; 9726let mayLoad = 1; 9727let Uses = [CS]; 9728let Constraints = "$Rx32 = $Rx32in"; 9729} 9730def L2_loadrh_pcr : HInst< 9731(outs IntRegs:$Rd32, IntRegs:$Rx32), 9732(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9733"$Rd32 = memh($Rx32++I:circ($Mu2))", 9734tc_075c8dd8, TypeLD>, Enc_74d4e5 { 9735let Inst{12-5} = 0b00010000; 9736let Inst{31-21} = 0b10011001010; 9737let hasNewValue = 1; 9738let opNewValue = 0; 9739let addrMode = PostInc; 9740let accessSize = HalfWordAccess; 9741let mayLoad = 1; 9742let Uses = [CS]; 9743let Constraints = "$Rx32 = $Rx32in"; 9744} 9745def L2_loadrh_pi : HInst< 9746(outs IntRegs:$Rd32, IntRegs:$Rx32), 9747(ins IntRegs:$Rx32in, s4_1Imm:$Ii), 9748"$Rd32 = memh($Rx32++#$Ii)", 9749tc_075c8dd8, TypeLD>, Enc_152467, PredNewRel, PostInc_BaseImm { 9750let Inst{13-9} = 0b00000; 9751let Inst{31-21} = 0b10011011010; 9752let hasNewValue = 1; 9753let opNewValue = 0; 9754let addrMode = PostInc; 9755let accessSize = HalfWordAccess; 9756let mayLoad = 1; 9757let BaseOpcode = "L2_loadrh_pi"; 9758let CextOpcode = "L2_loadrh"; 9759let isPredicable = 1; 9760let Constraints = "$Rx32 = $Rx32in"; 9761} 9762def L2_loadrh_pr : HInst< 9763(outs IntRegs:$Rd32, IntRegs:$Rx32), 9764(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9765"$Rd32 = memh($Rx32++$Mu2)", 9766tc_075c8dd8, TypeLD>, Enc_74d4e5 { 9767let Inst{12-5} = 0b00000000; 9768let Inst{31-21} = 0b10011101010; 9769let hasNewValue = 1; 9770let opNewValue = 0; 9771let addrMode = PostInc; 9772let accessSize = HalfWordAccess; 9773let mayLoad = 1; 9774let Constraints = "$Rx32 = $Rx32in"; 9775} 9776def L2_loadrh_zomap : HInst< 9777(outs IntRegs:$Rd32), 9778(ins IntRegs:$Rs32), 9779"$Rd32 = memh($Rs32)", 9780tc_4222e6bf, TypeMAPPING> { 9781let hasNewValue = 1; 9782let opNewValue = 0; 9783let isPseudo = 1; 9784let isCodeGenOnly = 1; 9785} 9786def L2_loadrhgp : HInst< 9787(outs IntRegs:$Rd32), 9788(ins u31_1Imm:$Ii), 9789"$Rd32 = memh(gp+#$Ii)", 9790tc_8a6d0d94, TypeV2LDST>, Enc_8df4be, AddrModeRel { 9791let Inst{24-21} = 0b1010; 9792let Inst{31-27} = 0b01001; 9793let hasNewValue = 1; 9794let opNewValue = 0; 9795let accessSize = HalfWordAccess; 9796let mayLoad = 1; 9797let Uses = [GP]; 9798let BaseOpcode = "L4_loadrh_abs"; 9799let isPredicable = 1; 9800let opExtendable = 1; 9801let isExtentSigned = 0; 9802let opExtentBits = 17; 9803let opExtentAlign = 1; 9804} 9805def L2_loadri_io : HInst< 9806(outs IntRegs:$Rd32), 9807(ins IntRegs:$Rs32, s30_2Imm:$Ii), 9808"$Rd32 = memw($Rs32+#$Ii)", 9809tc_4222e6bf, TypeLD>, Enc_2a3787, AddrModeRel, PostInc_BaseImm { 9810let Inst{24-21} = 0b1100; 9811let Inst{31-27} = 0b10010; 9812let hasNewValue = 1; 9813let opNewValue = 0; 9814let addrMode = BaseImmOffset; 9815let accessSize = WordAccess; 9816let mayLoad = 1; 9817let BaseOpcode = "L2_loadri_io"; 9818let CextOpcode = "L2_loadri"; 9819let isPredicable = 1; 9820let isExtendable = 1; 9821let opExtendable = 2; 9822let isExtentSigned = 1; 9823let opExtentBits = 13; 9824let opExtentAlign = 2; 9825} 9826def L2_loadri_pbr : HInst< 9827(outs IntRegs:$Rd32, IntRegs:$Rx32), 9828(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9829"$Rd32 = memw($Rx32++$Mu2:brev)", 9830tc_075c8dd8, TypeLD>, Enc_74d4e5 { 9831let Inst{12-5} = 0b00000000; 9832let Inst{31-21} = 0b10011111100; 9833let hasNewValue = 1; 9834let opNewValue = 0; 9835let addrMode = PostInc; 9836let accessSize = WordAccess; 9837let mayLoad = 1; 9838let Constraints = "$Rx32 = $Rx32in"; 9839} 9840def L2_loadri_pci : HInst< 9841(outs IntRegs:$Rd32, IntRegs:$Rx32), 9842(ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2), 9843"$Rd32 = memw($Rx32++#$Ii:circ($Mu2))", 9844tc_5ceb2f9e, TypeLD>, Enc_27fd0e { 9845let Inst{12-9} = 0b0000; 9846let Inst{31-21} = 0b10011001100; 9847let hasNewValue = 1; 9848let opNewValue = 0; 9849let addrMode = PostInc; 9850let accessSize = WordAccess; 9851let mayLoad = 1; 9852let Uses = [CS]; 9853let Constraints = "$Rx32 = $Rx32in"; 9854} 9855def L2_loadri_pcr : HInst< 9856(outs IntRegs:$Rd32, IntRegs:$Rx32), 9857(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9858"$Rd32 = memw($Rx32++I:circ($Mu2))", 9859tc_075c8dd8, TypeLD>, Enc_74d4e5 { 9860let Inst{12-5} = 0b00010000; 9861let Inst{31-21} = 0b10011001100; 9862let hasNewValue = 1; 9863let opNewValue = 0; 9864let addrMode = PostInc; 9865let accessSize = WordAccess; 9866let mayLoad = 1; 9867let Uses = [CS]; 9868let Constraints = "$Rx32 = $Rx32in"; 9869} 9870def L2_loadri_pi : HInst< 9871(outs IntRegs:$Rd32, IntRegs:$Rx32), 9872(ins IntRegs:$Rx32in, s4_2Imm:$Ii), 9873"$Rd32 = memw($Rx32++#$Ii)", 9874tc_075c8dd8, TypeLD>, Enc_3d920a, PredNewRel, PostInc_BaseImm { 9875let Inst{13-9} = 0b00000; 9876let Inst{31-21} = 0b10011011100; 9877let hasNewValue = 1; 9878let opNewValue = 0; 9879let addrMode = PostInc; 9880let accessSize = WordAccess; 9881let mayLoad = 1; 9882let BaseOpcode = "L2_loadri_pi"; 9883let CextOpcode = "L2_loadri"; 9884let isPredicable = 1; 9885let Constraints = "$Rx32 = $Rx32in"; 9886} 9887def L2_loadri_pr : HInst< 9888(outs IntRegs:$Rd32, IntRegs:$Rx32), 9889(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9890"$Rd32 = memw($Rx32++$Mu2)", 9891tc_075c8dd8, TypeLD>, Enc_74d4e5 { 9892let Inst{12-5} = 0b00000000; 9893let Inst{31-21} = 0b10011101100; 9894let hasNewValue = 1; 9895let opNewValue = 0; 9896let addrMode = PostInc; 9897let accessSize = WordAccess; 9898let mayLoad = 1; 9899let Constraints = "$Rx32 = $Rx32in"; 9900} 9901def L2_loadri_zomap : HInst< 9902(outs IntRegs:$Rd32), 9903(ins IntRegs:$Rs32), 9904"$Rd32 = memw($Rs32)", 9905tc_4222e6bf, TypeMAPPING> { 9906let hasNewValue = 1; 9907let opNewValue = 0; 9908let isPseudo = 1; 9909let isCodeGenOnly = 1; 9910} 9911def L2_loadrigp : HInst< 9912(outs IntRegs:$Rd32), 9913(ins u30_2Imm:$Ii), 9914"$Rd32 = memw(gp+#$Ii)", 9915tc_8a6d0d94, TypeV2LDST>, Enc_4f4ed7, AddrModeRel { 9916let Inst{24-21} = 0b1100; 9917let Inst{31-27} = 0b01001; 9918let hasNewValue = 1; 9919let opNewValue = 0; 9920let accessSize = WordAccess; 9921let mayLoad = 1; 9922let Uses = [GP]; 9923let BaseOpcode = "L4_loadri_abs"; 9924let isPredicable = 1; 9925let opExtendable = 1; 9926let isExtentSigned = 0; 9927let opExtentBits = 18; 9928let opExtentAlign = 2; 9929} 9930def L2_loadrub_io : HInst< 9931(outs IntRegs:$Rd32), 9932(ins IntRegs:$Rs32, s32_0Imm:$Ii), 9933"$Rd32 = memub($Rs32+#$Ii)", 9934tc_4222e6bf, TypeLD>, Enc_211aaa, AddrModeRel, PostInc_BaseImm { 9935let Inst{24-21} = 0b1001; 9936let Inst{31-27} = 0b10010; 9937let hasNewValue = 1; 9938let opNewValue = 0; 9939let addrMode = BaseImmOffset; 9940let accessSize = ByteAccess; 9941let mayLoad = 1; 9942let BaseOpcode = "L2_loadrub_io"; 9943let CextOpcode = "L2_loadrub"; 9944let isPredicable = 1; 9945let isExtendable = 1; 9946let opExtendable = 2; 9947let isExtentSigned = 1; 9948let opExtentBits = 11; 9949let opExtentAlign = 0; 9950} 9951def L2_loadrub_pbr : HInst< 9952(outs IntRegs:$Rd32, IntRegs:$Rx32), 9953(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9954"$Rd32 = memub($Rx32++$Mu2:brev)", 9955tc_075c8dd8, TypeLD>, Enc_74d4e5 { 9956let Inst{12-5} = 0b00000000; 9957let Inst{31-21} = 0b10011111001; 9958let hasNewValue = 1; 9959let opNewValue = 0; 9960let addrMode = PostInc; 9961let accessSize = ByteAccess; 9962let mayLoad = 1; 9963let Constraints = "$Rx32 = $Rx32in"; 9964} 9965def L2_loadrub_pci : HInst< 9966(outs IntRegs:$Rd32, IntRegs:$Rx32), 9967(ins IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2), 9968"$Rd32 = memub($Rx32++#$Ii:circ($Mu2))", 9969tc_5ceb2f9e, TypeLD>, Enc_e0a47a { 9970let Inst{12-9} = 0b0000; 9971let Inst{31-21} = 0b10011001001; 9972let hasNewValue = 1; 9973let opNewValue = 0; 9974let addrMode = PostInc; 9975let accessSize = ByteAccess; 9976let mayLoad = 1; 9977let Uses = [CS]; 9978let Constraints = "$Rx32 = $Rx32in"; 9979} 9980def L2_loadrub_pcr : HInst< 9981(outs IntRegs:$Rd32, IntRegs:$Rx32), 9982(ins IntRegs:$Rx32in, ModRegs:$Mu2), 9983"$Rd32 = memub($Rx32++I:circ($Mu2))", 9984tc_075c8dd8, TypeLD>, Enc_74d4e5 { 9985let Inst{12-5} = 0b00010000; 9986let Inst{31-21} = 0b10011001001; 9987let hasNewValue = 1; 9988let opNewValue = 0; 9989let addrMode = PostInc; 9990let accessSize = ByteAccess; 9991let mayLoad = 1; 9992let Uses = [CS]; 9993let Constraints = "$Rx32 = $Rx32in"; 9994} 9995def L2_loadrub_pi : HInst< 9996(outs IntRegs:$Rd32, IntRegs:$Rx32), 9997(ins IntRegs:$Rx32in, s4_0Imm:$Ii), 9998"$Rd32 = memub($Rx32++#$Ii)", 9999tc_075c8dd8, TypeLD>, Enc_222336, PredNewRel, PostInc_BaseImm { 10000let Inst{13-9} = 0b00000; 10001let Inst{31-21} = 0b10011011001; 10002let hasNewValue = 1; 10003let opNewValue = 0; 10004let addrMode = PostInc; 10005let accessSize = ByteAccess; 10006let mayLoad = 1; 10007let BaseOpcode = "L2_loadrub_pi"; 10008let CextOpcode = "L2_loadrub"; 10009let isPredicable = 1; 10010let Constraints = "$Rx32 = $Rx32in"; 10011} 10012def L2_loadrub_pr : HInst< 10013(outs IntRegs:$Rd32, IntRegs:$Rx32), 10014(ins IntRegs:$Rx32in, ModRegs:$Mu2), 10015"$Rd32 = memub($Rx32++$Mu2)", 10016tc_075c8dd8, TypeLD>, Enc_74d4e5 { 10017let Inst{12-5} = 0b00000000; 10018let Inst{31-21} = 0b10011101001; 10019let hasNewValue = 1; 10020let opNewValue = 0; 10021let addrMode = PostInc; 10022let accessSize = ByteAccess; 10023let mayLoad = 1; 10024let Constraints = "$Rx32 = $Rx32in"; 10025} 10026def L2_loadrub_zomap : HInst< 10027(outs IntRegs:$Rd32), 10028(ins IntRegs:$Rs32), 10029"$Rd32 = memub($Rs32)", 10030tc_4222e6bf, TypeMAPPING> { 10031let hasNewValue = 1; 10032let opNewValue = 0; 10033let isPseudo = 1; 10034let isCodeGenOnly = 1; 10035} 10036def L2_loadrubgp : HInst< 10037(outs IntRegs:$Rd32), 10038(ins u32_0Imm:$Ii), 10039"$Rd32 = memub(gp+#$Ii)", 10040tc_8a6d0d94, TypeV2LDST>, Enc_25bef0, AddrModeRel { 10041let Inst{24-21} = 0b1001; 10042let Inst{31-27} = 0b01001; 10043let hasNewValue = 1; 10044let opNewValue = 0; 10045let accessSize = ByteAccess; 10046let mayLoad = 1; 10047let Uses = [GP]; 10048let BaseOpcode = "L4_loadrub_abs"; 10049let isPredicable = 1; 10050let opExtendable = 1; 10051let isExtentSigned = 0; 10052let opExtentBits = 16; 10053let opExtentAlign = 0; 10054} 10055def L2_loadruh_io : HInst< 10056(outs IntRegs:$Rd32), 10057(ins IntRegs:$Rs32, s31_1Imm:$Ii), 10058"$Rd32 = memuh($Rs32+#$Ii)", 10059tc_4222e6bf, TypeLD>, Enc_de0214, AddrModeRel, PostInc_BaseImm { 10060let Inst{24-21} = 0b1011; 10061let Inst{31-27} = 0b10010; 10062let hasNewValue = 1; 10063let opNewValue = 0; 10064let addrMode = BaseImmOffset; 10065let accessSize = HalfWordAccess; 10066let mayLoad = 1; 10067let BaseOpcode = "L2_loadruh_io"; 10068let CextOpcode = "L2_loadruh"; 10069let isPredicable = 1; 10070let isExtendable = 1; 10071let opExtendable = 2; 10072let isExtentSigned = 1; 10073let opExtentBits = 12; 10074let opExtentAlign = 1; 10075} 10076def L2_loadruh_pbr : HInst< 10077(outs IntRegs:$Rd32, IntRegs:$Rx32), 10078(ins IntRegs:$Rx32in, ModRegs:$Mu2), 10079"$Rd32 = memuh($Rx32++$Mu2:brev)", 10080tc_075c8dd8, TypeLD>, Enc_74d4e5 { 10081let Inst{12-5} = 0b00000000; 10082let Inst{31-21} = 0b10011111011; 10083let hasNewValue = 1; 10084let opNewValue = 0; 10085let addrMode = PostInc; 10086let accessSize = HalfWordAccess; 10087let mayLoad = 1; 10088let Constraints = "$Rx32 = $Rx32in"; 10089} 10090def L2_loadruh_pci : HInst< 10091(outs IntRegs:$Rd32, IntRegs:$Rx32), 10092(ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2), 10093"$Rd32 = memuh($Rx32++#$Ii:circ($Mu2))", 10094tc_5ceb2f9e, TypeLD>, Enc_e83554 { 10095let Inst{12-9} = 0b0000; 10096let Inst{31-21} = 0b10011001011; 10097let hasNewValue = 1; 10098let opNewValue = 0; 10099let addrMode = PostInc; 10100let accessSize = HalfWordAccess; 10101let mayLoad = 1; 10102let Uses = [CS]; 10103let Constraints = "$Rx32 = $Rx32in"; 10104} 10105def L2_loadruh_pcr : HInst< 10106(outs IntRegs:$Rd32, IntRegs:$Rx32), 10107(ins IntRegs:$Rx32in, ModRegs:$Mu2), 10108"$Rd32 = memuh($Rx32++I:circ($Mu2))", 10109tc_075c8dd8, TypeLD>, Enc_74d4e5 { 10110let Inst{12-5} = 0b00010000; 10111let Inst{31-21} = 0b10011001011; 10112let hasNewValue = 1; 10113let opNewValue = 0; 10114let addrMode = PostInc; 10115let accessSize = HalfWordAccess; 10116let mayLoad = 1; 10117let Uses = [CS]; 10118let Constraints = "$Rx32 = $Rx32in"; 10119} 10120def L2_loadruh_pi : HInst< 10121(outs IntRegs:$Rd32, IntRegs:$Rx32), 10122(ins IntRegs:$Rx32in, s4_1Imm:$Ii), 10123"$Rd32 = memuh($Rx32++#$Ii)", 10124tc_075c8dd8, TypeLD>, Enc_152467, PredNewRel, PostInc_BaseImm { 10125let Inst{13-9} = 0b00000; 10126let Inst{31-21} = 0b10011011011; 10127let hasNewValue = 1; 10128let opNewValue = 0; 10129let addrMode = PostInc; 10130let accessSize = HalfWordAccess; 10131let mayLoad = 1; 10132let BaseOpcode = "L2_loadruh_pi"; 10133let CextOpcode = "L2_loadruh"; 10134let isPredicable = 1; 10135let Constraints = "$Rx32 = $Rx32in"; 10136} 10137def L2_loadruh_pr : HInst< 10138(outs IntRegs:$Rd32, IntRegs:$Rx32), 10139(ins IntRegs:$Rx32in, ModRegs:$Mu2), 10140"$Rd32 = memuh($Rx32++$Mu2)", 10141tc_075c8dd8, TypeLD>, Enc_74d4e5 { 10142let Inst{12-5} = 0b00000000; 10143let Inst{31-21} = 0b10011101011; 10144let hasNewValue = 1; 10145let opNewValue = 0; 10146let addrMode = PostInc; 10147let accessSize = HalfWordAccess; 10148let mayLoad = 1; 10149let Constraints = "$Rx32 = $Rx32in"; 10150} 10151def L2_loadruh_zomap : HInst< 10152(outs IntRegs:$Rd32), 10153(ins IntRegs:$Rs32), 10154"$Rd32 = memuh($Rs32)", 10155tc_4222e6bf, TypeMAPPING> { 10156let hasNewValue = 1; 10157let opNewValue = 0; 10158let isPseudo = 1; 10159let isCodeGenOnly = 1; 10160} 10161def L2_loadruhgp : HInst< 10162(outs IntRegs:$Rd32), 10163(ins u31_1Imm:$Ii), 10164"$Rd32 = memuh(gp+#$Ii)", 10165tc_8a6d0d94, TypeV2LDST>, Enc_8df4be, AddrModeRel { 10166let Inst{24-21} = 0b1011; 10167let Inst{31-27} = 0b01001; 10168let hasNewValue = 1; 10169let opNewValue = 0; 10170let accessSize = HalfWordAccess; 10171let mayLoad = 1; 10172let Uses = [GP]; 10173let BaseOpcode = "L4_loadruh_abs"; 10174let isPredicable = 1; 10175let opExtendable = 1; 10176let isExtentSigned = 0; 10177let opExtentBits = 17; 10178let opExtentAlign = 1; 10179} 10180def L2_loadw_aq : HInst< 10181(outs IntRegs:$Rd32), 10182(ins IntRegs:$Rs32), 10183"$Rd32 = memw_aq($Rs32)", 10184tc_2471c1c8, TypeLD>, Enc_5e2823, Requires<[HasV68]> { 10185let Inst{13-5} = 0b001000000; 10186let Inst{31-21} = 0b10010010000; 10187let hasNewValue = 1; 10188let opNewValue = 0; 10189let accessSize = WordAccess; 10190let mayLoad = 1; 10191} 10192def L2_loadw_locked : HInst< 10193(outs IntRegs:$Rd32), 10194(ins IntRegs:$Rs32), 10195"$Rd32 = memw_locked($Rs32)", 10196tc_64b00d8a, TypeLD>, Enc_5e2823 { 10197let Inst{13-5} = 0b000000000; 10198let Inst{31-21} = 0b10010010000; 10199let hasNewValue = 1; 10200let opNewValue = 0; 10201let accessSize = WordAccess; 10202let mayLoad = 1; 10203let isSoloAX = 1; 10204} 10205def L2_ploadrbf_io : HInst< 10206(outs IntRegs:$Rd32), 10207(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii), 10208"if (!$Pt4) $Rd32 = memb($Rs32+#$Ii)", 10209tc_fedb7e19, TypeV2LDST>, Enc_a21d47, AddrModeRel { 10210let Inst{13-13} = 0b0; 10211let Inst{31-21} = 0b01000101000; 10212let isPredicated = 1; 10213let isPredicatedFalse = 1; 10214let hasNewValue = 1; 10215let opNewValue = 0; 10216let addrMode = BaseImmOffset; 10217let accessSize = ByteAccess; 10218let mayLoad = 1; 10219let BaseOpcode = "L2_loadrb_io"; 10220let CextOpcode = "L2_loadrb"; 10221let isExtendable = 1; 10222let opExtendable = 3; 10223let isExtentSigned = 0; 10224let opExtentBits = 6; 10225let opExtentAlign = 0; 10226} 10227def L2_ploadrbf_pi : HInst< 10228(outs IntRegs:$Rd32, IntRegs:$Rx32), 10229(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii), 10230"if (!$Pt4) $Rd32 = memb($Rx32++#$Ii)", 10231tc_1c7522a8, TypeLD>, Enc_f4413a, PredNewRel { 10232let Inst{13-11} = 0b101; 10233let Inst{31-21} = 0b10011011000; 10234let isPredicated = 1; 10235let isPredicatedFalse = 1; 10236let hasNewValue = 1; 10237let opNewValue = 0; 10238let addrMode = PostInc; 10239let accessSize = ByteAccess; 10240let mayLoad = 1; 10241let BaseOpcode = "L2_loadrb_pi"; 10242let Constraints = "$Rx32 = $Rx32in"; 10243} 10244def L2_ploadrbf_zomap : HInst< 10245(outs IntRegs:$Rd32), 10246(ins PredRegs:$Pt4, IntRegs:$Rs32), 10247"if (!$Pt4) $Rd32 = memb($Rs32)", 10248tc_fedb7e19, TypeMAPPING> { 10249let hasNewValue = 1; 10250let opNewValue = 0; 10251let isPseudo = 1; 10252let isCodeGenOnly = 1; 10253} 10254def L2_ploadrbfnew_io : HInst< 10255(outs IntRegs:$Rd32), 10256(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii), 10257"if (!$Pt4.new) $Rd32 = memb($Rs32+#$Ii)", 10258tc_075c8dd8, TypeV2LDST>, Enc_a21d47, AddrModeRel { 10259let Inst{13-13} = 0b0; 10260let Inst{31-21} = 0b01000111000; 10261let isPredicated = 1; 10262let isPredicatedFalse = 1; 10263let hasNewValue = 1; 10264let opNewValue = 0; 10265let addrMode = BaseImmOffset; 10266let accessSize = ByteAccess; 10267let isPredicatedNew = 1; 10268let mayLoad = 1; 10269let BaseOpcode = "L2_loadrb_io"; 10270let CextOpcode = "L2_loadrb"; 10271let isExtendable = 1; 10272let opExtendable = 3; 10273let isExtentSigned = 0; 10274let opExtentBits = 6; 10275let opExtentAlign = 0; 10276} 10277def L2_ploadrbfnew_pi : HInst< 10278(outs IntRegs:$Rd32, IntRegs:$Rx32), 10279(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii), 10280"if (!$Pt4.new) $Rd32 = memb($Rx32++#$Ii)", 10281tc_5f2afaf7, TypeLD>, Enc_f4413a, PredNewRel { 10282let Inst{13-11} = 0b111; 10283let Inst{31-21} = 0b10011011000; 10284let isPredicated = 1; 10285let isPredicatedFalse = 1; 10286let hasNewValue = 1; 10287let opNewValue = 0; 10288let addrMode = PostInc; 10289let accessSize = ByteAccess; 10290let isPredicatedNew = 1; 10291let mayLoad = 1; 10292let BaseOpcode = "L2_loadrb_pi"; 10293let Constraints = "$Rx32 = $Rx32in"; 10294} 10295def L2_ploadrbfnew_zomap : HInst< 10296(outs IntRegs:$Rd32), 10297(ins PredRegs:$Pt4, IntRegs:$Rs32), 10298"if (!$Pt4.new) $Rd32 = memb($Rs32)", 10299tc_075c8dd8, TypeMAPPING> { 10300let hasNewValue = 1; 10301let opNewValue = 0; 10302let isPseudo = 1; 10303let isCodeGenOnly = 1; 10304} 10305def L2_ploadrbt_io : HInst< 10306(outs IntRegs:$Rd32), 10307(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii), 10308"if ($Pt4) $Rd32 = memb($Rs32+#$Ii)", 10309tc_fedb7e19, TypeV2LDST>, Enc_a21d47, AddrModeRel { 10310let Inst{13-13} = 0b0; 10311let Inst{31-21} = 0b01000001000; 10312let isPredicated = 1; 10313let hasNewValue = 1; 10314let opNewValue = 0; 10315let addrMode = BaseImmOffset; 10316let accessSize = ByteAccess; 10317let mayLoad = 1; 10318let BaseOpcode = "L2_loadrb_io"; 10319let CextOpcode = "L2_loadrb"; 10320let isExtendable = 1; 10321let opExtendable = 3; 10322let isExtentSigned = 0; 10323let opExtentBits = 6; 10324let opExtentAlign = 0; 10325} 10326def L2_ploadrbt_pi : HInst< 10327(outs IntRegs:$Rd32, IntRegs:$Rx32), 10328(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii), 10329"if ($Pt4) $Rd32 = memb($Rx32++#$Ii)", 10330tc_1c7522a8, TypeLD>, Enc_f4413a, PredNewRel { 10331let Inst{13-11} = 0b100; 10332let Inst{31-21} = 0b10011011000; 10333let isPredicated = 1; 10334let hasNewValue = 1; 10335let opNewValue = 0; 10336let addrMode = PostInc; 10337let accessSize = ByteAccess; 10338let mayLoad = 1; 10339let BaseOpcode = "L2_loadrb_pi"; 10340let Constraints = "$Rx32 = $Rx32in"; 10341} 10342def L2_ploadrbt_zomap : HInst< 10343(outs IntRegs:$Rd32), 10344(ins PredRegs:$Pt4, IntRegs:$Rs32), 10345"if ($Pt4) $Rd32 = memb($Rs32)", 10346tc_fedb7e19, TypeMAPPING> { 10347let hasNewValue = 1; 10348let opNewValue = 0; 10349let isPseudo = 1; 10350let isCodeGenOnly = 1; 10351} 10352def L2_ploadrbtnew_io : HInst< 10353(outs IntRegs:$Rd32), 10354(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii), 10355"if ($Pt4.new) $Rd32 = memb($Rs32+#$Ii)", 10356tc_075c8dd8, TypeV2LDST>, Enc_a21d47, AddrModeRel { 10357let Inst{13-13} = 0b0; 10358let Inst{31-21} = 0b01000011000; 10359let isPredicated = 1; 10360let hasNewValue = 1; 10361let opNewValue = 0; 10362let addrMode = BaseImmOffset; 10363let accessSize = ByteAccess; 10364let isPredicatedNew = 1; 10365let mayLoad = 1; 10366let BaseOpcode = "L2_loadrb_io"; 10367let CextOpcode = "L2_loadrb"; 10368let isExtendable = 1; 10369let opExtendable = 3; 10370let isExtentSigned = 0; 10371let opExtentBits = 6; 10372let opExtentAlign = 0; 10373} 10374def L2_ploadrbtnew_pi : HInst< 10375(outs IntRegs:$Rd32, IntRegs:$Rx32), 10376(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii), 10377"if ($Pt4.new) $Rd32 = memb($Rx32++#$Ii)", 10378tc_5f2afaf7, TypeLD>, Enc_f4413a, PredNewRel { 10379let Inst{13-11} = 0b110; 10380let Inst{31-21} = 0b10011011000; 10381let isPredicated = 1; 10382let hasNewValue = 1; 10383let opNewValue = 0; 10384let addrMode = PostInc; 10385let accessSize = ByteAccess; 10386let isPredicatedNew = 1; 10387let mayLoad = 1; 10388let BaseOpcode = "L2_loadrb_pi"; 10389let Constraints = "$Rx32 = $Rx32in"; 10390} 10391def L2_ploadrbtnew_zomap : HInst< 10392(outs IntRegs:$Rd32), 10393(ins PredRegs:$Pt4, IntRegs:$Rs32), 10394"if ($Pt4.new) $Rd32 = memb($Rs32)", 10395tc_075c8dd8, TypeMAPPING> { 10396let hasNewValue = 1; 10397let opNewValue = 0; 10398let isPseudo = 1; 10399let isCodeGenOnly = 1; 10400} 10401def L2_ploadrdf_io : HInst< 10402(outs DoubleRegs:$Rdd32), 10403(ins PredRegs:$Pt4, IntRegs:$Rs32, u29_3Imm:$Ii), 10404"if (!$Pt4) $Rdd32 = memd($Rs32+#$Ii)", 10405tc_fedb7e19, TypeV2LDST>, Enc_acd6ed, AddrModeRel { 10406let Inst{13-13} = 0b0; 10407let Inst{31-21} = 0b01000101110; 10408let isPredicated = 1; 10409let isPredicatedFalse = 1; 10410let addrMode = BaseImmOffset; 10411let accessSize = DoubleWordAccess; 10412let mayLoad = 1; 10413let BaseOpcode = "L2_loadrd_io"; 10414let CextOpcode = "L2_loadrd"; 10415let isExtendable = 1; 10416let opExtendable = 3; 10417let isExtentSigned = 0; 10418let opExtentBits = 9; 10419let opExtentAlign = 3; 10420} 10421def L2_ploadrdf_pi : HInst< 10422(outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 10423(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_3Imm:$Ii), 10424"if (!$Pt4) $Rdd32 = memd($Rx32++#$Ii)", 10425tc_1c7522a8, TypeLD>, Enc_9d1247, PredNewRel { 10426let Inst{13-11} = 0b101; 10427let Inst{31-21} = 0b10011011110; 10428let isPredicated = 1; 10429let isPredicatedFalse = 1; 10430let addrMode = PostInc; 10431let accessSize = DoubleWordAccess; 10432let mayLoad = 1; 10433let BaseOpcode = "L2_loadrd_pi"; 10434let Constraints = "$Rx32 = $Rx32in"; 10435} 10436def L2_ploadrdf_zomap : HInst< 10437(outs DoubleRegs:$Rdd32), 10438(ins PredRegs:$Pt4, IntRegs:$Rs32), 10439"if (!$Pt4) $Rdd32 = memd($Rs32)", 10440tc_fedb7e19, TypeMAPPING> { 10441let isPseudo = 1; 10442let isCodeGenOnly = 1; 10443} 10444def L2_ploadrdfnew_io : HInst< 10445(outs DoubleRegs:$Rdd32), 10446(ins PredRegs:$Pt4, IntRegs:$Rs32, u29_3Imm:$Ii), 10447"if (!$Pt4.new) $Rdd32 = memd($Rs32+#$Ii)", 10448tc_075c8dd8, TypeV2LDST>, Enc_acd6ed, AddrModeRel { 10449let Inst{13-13} = 0b0; 10450let Inst{31-21} = 0b01000111110; 10451let isPredicated = 1; 10452let isPredicatedFalse = 1; 10453let addrMode = BaseImmOffset; 10454let accessSize = DoubleWordAccess; 10455let isPredicatedNew = 1; 10456let mayLoad = 1; 10457let BaseOpcode = "L2_loadrd_io"; 10458let CextOpcode = "L2_loadrd"; 10459let isExtendable = 1; 10460let opExtendable = 3; 10461let isExtentSigned = 0; 10462let opExtentBits = 9; 10463let opExtentAlign = 3; 10464} 10465def L2_ploadrdfnew_pi : HInst< 10466(outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 10467(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_3Imm:$Ii), 10468"if (!$Pt4.new) $Rdd32 = memd($Rx32++#$Ii)", 10469tc_5f2afaf7, TypeLD>, Enc_9d1247, PredNewRel { 10470let Inst{13-11} = 0b111; 10471let Inst{31-21} = 0b10011011110; 10472let isPredicated = 1; 10473let isPredicatedFalse = 1; 10474let addrMode = PostInc; 10475let accessSize = DoubleWordAccess; 10476let isPredicatedNew = 1; 10477let mayLoad = 1; 10478let BaseOpcode = "L2_loadrd_pi"; 10479let Constraints = "$Rx32 = $Rx32in"; 10480} 10481def L2_ploadrdfnew_zomap : HInst< 10482(outs DoubleRegs:$Rdd32), 10483(ins PredRegs:$Pt4, IntRegs:$Rs32), 10484"if (!$Pt4.new) $Rdd32 = memd($Rs32)", 10485tc_075c8dd8, TypeMAPPING> { 10486let isPseudo = 1; 10487let isCodeGenOnly = 1; 10488} 10489def L2_ploadrdt_io : HInst< 10490(outs DoubleRegs:$Rdd32), 10491(ins PredRegs:$Pt4, IntRegs:$Rs32, u29_3Imm:$Ii), 10492"if ($Pt4) $Rdd32 = memd($Rs32+#$Ii)", 10493tc_fedb7e19, TypeV2LDST>, Enc_acd6ed, AddrModeRel { 10494let Inst{13-13} = 0b0; 10495let Inst{31-21} = 0b01000001110; 10496let isPredicated = 1; 10497let addrMode = BaseImmOffset; 10498let accessSize = DoubleWordAccess; 10499let mayLoad = 1; 10500let BaseOpcode = "L2_loadrd_io"; 10501let CextOpcode = "L2_loadrd"; 10502let isExtendable = 1; 10503let opExtendable = 3; 10504let isExtentSigned = 0; 10505let opExtentBits = 9; 10506let opExtentAlign = 3; 10507} 10508def L2_ploadrdt_pi : HInst< 10509(outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 10510(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_3Imm:$Ii), 10511"if ($Pt4) $Rdd32 = memd($Rx32++#$Ii)", 10512tc_1c7522a8, TypeLD>, Enc_9d1247, PredNewRel { 10513let Inst{13-11} = 0b100; 10514let Inst{31-21} = 0b10011011110; 10515let isPredicated = 1; 10516let addrMode = PostInc; 10517let accessSize = DoubleWordAccess; 10518let mayLoad = 1; 10519let BaseOpcode = "L2_loadrd_pi"; 10520let Constraints = "$Rx32 = $Rx32in"; 10521} 10522def L2_ploadrdt_zomap : HInst< 10523(outs DoubleRegs:$Rdd32), 10524(ins PredRegs:$Pt4, IntRegs:$Rs32), 10525"if ($Pt4) $Rdd32 = memd($Rs32)", 10526tc_fedb7e19, TypeMAPPING> { 10527let isPseudo = 1; 10528let isCodeGenOnly = 1; 10529} 10530def L2_ploadrdtnew_io : HInst< 10531(outs DoubleRegs:$Rdd32), 10532(ins PredRegs:$Pt4, IntRegs:$Rs32, u29_3Imm:$Ii), 10533"if ($Pt4.new) $Rdd32 = memd($Rs32+#$Ii)", 10534tc_075c8dd8, TypeV2LDST>, Enc_acd6ed, AddrModeRel { 10535let Inst{13-13} = 0b0; 10536let Inst{31-21} = 0b01000011110; 10537let isPredicated = 1; 10538let addrMode = BaseImmOffset; 10539let accessSize = DoubleWordAccess; 10540let isPredicatedNew = 1; 10541let mayLoad = 1; 10542let BaseOpcode = "L2_loadrd_io"; 10543let CextOpcode = "L2_loadrd"; 10544let isExtendable = 1; 10545let opExtendable = 3; 10546let isExtentSigned = 0; 10547let opExtentBits = 9; 10548let opExtentAlign = 3; 10549} 10550def L2_ploadrdtnew_pi : HInst< 10551(outs DoubleRegs:$Rdd32, IntRegs:$Rx32), 10552(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_3Imm:$Ii), 10553"if ($Pt4.new) $Rdd32 = memd($Rx32++#$Ii)", 10554tc_5f2afaf7, TypeLD>, Enc_9d1247, PredNewRel { 10555let Inst{13-11} = 0b110; 10556let Inst{31-21} = 0b10011011110; 10557let isPredicated = 1; 10558let addrMode = PostInc; 10559let accessSize = DoubleWordAccess; 10560let isPredicatedNew = 1; 10561let mayLoad = 1; 10562let BaseOpcode = "L2_loadrd_pi"; 10563let Constraints = "$Rx32 = $Rx32in"; 10564} 10565def L2_ploadrdtnew_zomap : HInst< 10566(outs DoubleRegs:$Rdd32), 10567(ins PredRegs:$Pt4, IntRegs:$Rs32), 10568"if ($Pt4.new) $Rdd32 = memd($Rs32)", 10569tc_075c8dd8, TypeMAPPING> { 10570let isPseudo = 1; 10571let isCodeGenOnly = 1; 10572} 10573def L2_ploadrhf_io : HInst< 10574(outs IntRegs:$Rd32), 10575(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii), 10576"if (!$Pt4) $Rd32 = memh($Rs32+#$Ii)", 10577tc_fedb7e19, TypeV2LDST>, Enc_a198f6, AddrModeRel { 10578let Inst{13-13} = 0b0; 10579let Inst{31-21} = 0b01000101010; 10580let isPredicated = 1; 10581let isPredicatedFalse = 1; 10582let hasNewValue = 1; 10583let opNewValue = 0; 10584let addrMode = BaseImmOffset; 10585let accessSize = HalfWordAccess; 10586let mayLoad = 1; 10587let BaseOpcode = "L2_loadrh_io"; 10588let CextOpcode = "L2_loadrh"; 10589let isExtendable = 1; 10590let opExtendable = 3; 10591let isExtentSigned = 0; 10592let opExtentBits = 7; 10593let opExtentAlign = 1; 10594} 10595def L2_ploadrhf_pi : HInst< 10596(outs IntRegs:$Rd32, IntRegs:$Rx32), 10597(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii), 10598"if (!$Pt4) $Rd32 = memh($Rx32++#$Ii)", 10599tc_1c7522a8, TypeLD>, Enc_733b27, PredNewRel { 10600let Inst{13-11} = 0b101; 10601let Inst{31-21} = 0b10011011010; 10602let isPredicated = 1; 10603let isPredicatedFalse = 1; 10604let hasNewValue = 1; 10605let opNewValue = 0; 10606let addrMode = PostInc; 10607let accessSize = HalfWordAccess; 10608let mayLoad = 1; 10609let BaseOpcode = "L2_loadrh_pi"; 10610let Constraints = "$Rx32 = $Rx32in"; 10611} 10612def L2_ploadrhf_zomap : HInst< 10613(outs IntRegs:$Rd32), 10614(ins PredRegs:$Pt4, IntRegs:$Rs32), 10615"if (!$Pt4) $Rd32 = memh($Rs32)", 10616tc_fedb7e19, TypeMAPPING> { 10617let hasNewValue = 1; 10618let opNewValue = 0; 10619let isPseudo = 1; 10620let isCodeGenOnly = 1; 10621} 10622def L2_ploadrhfnew_io : HInst< 10623(outs IntRegs:$Rd32), 10624(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii), 10625"if (!$Pt4.new) $Rd32 = memh($Rs32+#$Ii)", 10626tc_075c8dd8, TypeV2LDST>, Enc_a198f6, AddrModeRel { 10627let Inst{13-13} = 0b0; 10628let Inst{31-21} = 0b01000111010; 10629let isPredicated = 1; 10630let isPredicatedFalse = 1; 10631let hasNewValue = 1; 10632let opNewValue = 0; 10633let addrMode = BaseImmOffset; 10634let accessSize = HalfWordAccess; 10635let isPredicatedNew = 1; 10636let mayLoad = 1; 10637let BaseOpcode = "L2_loadrh_io"; 10638let CextOpcode = "L2_loadrh"; 10639let isExtendable = 1; 10640let opExtendable = 3; 10641let isExtentSigned = 0; 10642let opExtentBits = 7; 10643let opExtentAlign = 1; 10644} 10645def L2_ploadrhfnew_pi : HInst< 10646(outs IntRegs:$Rd32, IntRegs:$Rx32), 10647(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii), 10648"if (!$Pt4.new) $Rd32 = memh($Rx32++#$Ii)", 10649tc_5f2afaf7, TypeLD>, Enc_733b27, PredNewRel { 10650let Inst{13-11} = 0b111; 10651let Inst{31-21} = 0b10011011010; 10652let isPredicated = 1; 10653let isPredicatedFalse = 1; 10654let hasNewValue = 1; 10655let opNewValue = 0; 10656let addrMode = PostInc; 10657let accessSize = HalfWordAccess; 10658let isPredicatedNew = 1; 10659let mayLoad = 1; 10660let BaseOpcode = "L2_loadrh_pi"; 10661let Constraints = "$Rx32 = $Rx32in"; 10662} 10663def L2_ploadrhfnew_zomap : HInst< 10664(outs IntRegs:$Rd32), 10665(ins PredRegs:$Pt4, IntRegs:$Rs32), 10666"if (!$Pt4.new) $Rd32 = memh($Rs32)", 10667tc_075c8dd8, TypeMAPPING> { 10668let hasNewValue = 1; 10669let opNewValue = 0; 10670let isPseudo = 1; 10671let isCodeGenOnly = 1; 10672} 10673def L2_ploadrht_io : HInst< 10674(outs IntRegs:$Rd32), 10675(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii), 10676"if ($Pt4) $Rd32 = memh($Rs32+#$Ii)", 10677tc_fedb7e19, TypeV2LDST>, Enc_a198f6, AddrModeRel { 10678let Inst{13-13} = 0b0; 10679let Inst{31-21} = 0b01000001010; 10680let isPredicated = 1; 10681let hasNewValue = 1; 10682let opNewValue = 0; 10683let addrMode = BaseImmOffset; 10684let accessSize = HalfWordAccess; 10685let mayLoad = 1; 10686let BaseOpcode = "L2_loadrh_io"; 10687let CextOpcode = "L2_loadrh"; 10688let isExtendable = 1; 10689let opExtendable = 3; 10690let isExtentSigned = 0; 10691let opExtentBits = 7; 10692let opExtentAlign = 1; 10693} 10694def L2_ploadrht_pi : HInst< 10695(outs IntRegs:$Rd32, IntRegs:$Rx32), 10696(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii), 10697"if ($Pt4) $Rd32 = memh($Rx32++#$Ii)", 10698tc_1c7522a8, TypeLD>, Enc_733b27, PredNewRel { 10699let Inst{13-11} = 0b100; 10700let Inst{31-21} = 0b10011011010; 10701let isPredicated = 1; 10702let hasNewValue = 1; 10703let opNewValue = 0; 10704let addrMode = PostInc; 10705let accessSize = HalfWordAccess; 10706let mayLoad = 1; 10707let BaseOpcode = "L2_loadrh_pi"; 10708let Constraints = "$Rx32 = $Rx32in"; 10709} 10710def L2_ploadrht_zomap : HInst< 10711(outs IntRegs:$Rd32), 10712(ins PredRegs:$Pt4, IntRegs:$Rs32), 10713"if ($Pt4) $Rd32 = memh($Rs32)", 10714tc_fedb7e19, TypeMAPPING> { 10715let hasNewValue = 1; 10716let opNewValue = 0; 10717let isPseudo = 1; 10718let isCodeGenOnly = 1; 10719} 10720def L2_ploadrhtnew_io : HInst< 10721(outs IntRegs:$Rd32), 10722(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii), 10723"if ($Pt4.new) $Rd32 = memh($Rs32+#$Ii)", 10724tc_075c8dd8, TypeV2LDST>, Enc_a198f6, AddrModeRel { 10725let Inst{13-13} = 0b0; 10726let Inst{31-21} = 0b01000011010; 10727let isPredicated = 1; 10728let hasNewValue = 1; 10729let opNewValue = 0; 10730let addrMode = BaseImmOffset; 10731let accessSize = HalfWordAccess; 10732let isPredicatedNew = 1; 10733let mayLoad = 1; 10734let BaseOpcode = "L2_loadrh_io"; 10735let CextOpcode = "L2_loadrh"; 10736let isExtendable = 1; 10737let opExtendable = 3; 10738let isExtentSigned = 0; 10739let opExtentBits = 7; 10740let opExtentAlign = 1; 10741} 10742def L2_ploadrhtnew_pi : HInst< 10743(outs IntRegs:$Rd32, IntRegs:$Rx32), 10744(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii), 10745"if ($Pt4.new) $Rd32 = memh($Rx32++#$Ii)", 10746tc_5f2afaf7, TypeLD>, Enc_733b27, PredNewRel { 10747let Inst{13-11} = 0b110; 10748let Inst{31-21} = 0b10011011010; 10749let isPredicated = 1; 10750let hasNewValue = 1; 10751let opNewValue = 0; 10752let addrMode = PostInc; 10753let accessSize = HalfWordAccess; 10754let isPredicatedNew = 1; 10755let mayLoad = 1; 10756let BaseOpcode = "L2_loadrh_pi"; 10757let Constraints = "$Rx32 = $Rx32in"; 10758} 10759def L2_ploadrhtnew_zomap : HInst< 10760(outs IntRegs:$Rd32), 10761(ins PredRegs:$Pt4, IntRegs:$Rs32), 10762"if ($Pt4.new) $Rd32 = memh($Rs32)", 10763tc_075c8dd8, TypeMAPPING> { 10764let hasNewValue = 1; 10765let opNewValue = 0; 10766let isPseudo = 1; 10767let isCodeGenOnly = 1; 10768} 10769def L2_ploadrif_io : HInst< 10770(outs IntRegs:$Rd32), 10771(ins PredRegs:$Pt4, IntRegs:$Rs32, u30_2Imm:$Ii), 10772"if (!$Pt4) $Rd32 = memw($Rs32+#$Ii)", 10773tc_fedb7e19, TypeV2LDST>, Enc_f82eaf, AddrModeRel { 10774let Inst{13-13} = 0b0; 10775let Inst{31-21} = 0b01000101100; 10776let isPredicated = 1; 10777let isPredicatedFalse = 1; 10778let hasNewValue = 1; 10779let opNewValue = 0; 10780let addrMode = BaseImmOffset; 10781let accessSize = WordAccess; 10782let mayLoad = 1; 10783let BaseOpcode = "L2_loadri_io"; 10784let CextOpcode = "L2_loadri"; 10785let isExtendable = 1; 10786let opExtendable = 3; 10787let isExtentSigned = 0; 10788let opExtentBits = 8; 10789let opExtentAlign = 2; 10790} 10791def L2_ploadrif_pi : HInst< 10792(outs IntRegs:$Rd32, IntRegs:$Rx32), 10793(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_2Imm:$Ii), 10794"if (!$Pt4) $Rd32 = memw($Rx32++#$Ii)", 10795tc_1c7522a8, TypeLD>, Enc_b97f71, PredNewRel { 10796let Inst{13-11} = 0b101; 10797let Inst{31-21} = 0b10011011100; 10798let isPredicated = 1; 10799let isPredicatedFalse = 1; 10800let hasNewValue = 1; 10801let opNewValue = 0; 10802let addrMode = PostInc; 10803let accessSize = WordAccess; 10804let mayLoad = 1; 10805let BaseOpcode = "L2_loadri_pi"; 10806let Constraints = "$Rx32 = $Rx32in"; 10807} 10808def L2_ploadrif_zomap : HInst< 10809(outs IntRegs:$Rd32), 10810(ins PredRegs:$Pt4, IntRegs:$Rs32), 10811"if (!$Pt4) $Rd32 = memw($Rs32)", 10812tc_fedb7e19, TypeMAPPING> { 10813let hasNewValue = 1; 10814let opNewValue = 0; 10815let isPseudo = 1; 10816let isCodeGenOnly = 1; 10817} 10818def L2_ploadrifnew_io : HInst< 10819(outs IntRegs:$Rd32), 10820(ins PredRegs:$Pt4, IntRegs:$Rs32, u30_2Imm:$Ii), 10821"if (!$Pt4.new) $Rd32 = memw($Rs32+#$Ii)", 10822tc_075c8dd8, TypeV2LDST>, Enc_f82eaf, AddrModeRel { 10823let Inst{13-13} = 0b0; 10824let Inst{31-21} = 0b01000111100; 10825let isPredicated = 1; 10826let isPredicatedFalse = 1; 10827let hasNewValue = 1; 10828let opNewValue = 0; 10829let addrMode = BaseImmOffset; 10830let accessSize = WordAccess; 10831let isPredicatedNew = 1; 10832let mayLoad = 1; 10833let BaseOpcode = "L2_loadri_io"; 10834let CextOpcode = "L2_loadri"; 10835let isExtendable = 1; 10836let opExtendable = 3; 10837let isExtentSigned = 0; 10838let opExtentBits = 8; 10839let opExtentAlign = 2; 10840} 10841def L2_ploadrifnew_pi : HInst< 10842(outs IntRegs:$Rd32, IntRegs:$Rx32), 10843(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_2Imm:$Ii), 10844"if (!$Pt4.new) $Rd32 = memw($Rx32++#$Ii)", 10845tc_5f2afaf7, TypeLD>, Enc_b97f71, PredNewRel { 10846let Inst{13-11} = 0b111; 10847let Inst{31-21} = 0b10011011100; 10848let isPredicated = 1; 10849let isPredicatedFalse = 1; 10850let hasNewValue = 1; 10851let opNewValue = 0; 10852let addrMode = PostInc; 10853let accessSize = WordAccess; 10854let isPredicatedNew = 1; 10855let mayLoad = 1; 10856let BaseOpcode = "L2_loadri_pi"; 10857let Constraints = "$Rx32 = $Rx32in"; 10858} 10859def L2_ploadrifnew_zomap : HInst< 10860(outs IntRegs:$Rd32), 10861(ins PredRegs:$Pt4, IntRegs:$Rs32), 10862"if (!$Pt4.new) $Rd32 = memw($Rs32)", 10863tc_075c8dd8, TypeMAPPING> { 10864let hasNewValue = 1; 10865let opNewValue = 0; 10866let isPseudo = 1; 10867let isCodeGenOnly = 1; 10868} 10869def L2_ploadrit_io : HInst< 10870(outs IntRegs:$Rd32), 10871(ins PredRegs:$Pt4, IntRegs:$Rs32, u30_2Imm:$Ii), 10872"if ($Pt4) $Rd32 = memw($Rs32+#$Ii)", 10873tc_fedb7e19, TypeV2LDST>, Enc_f82eaf, AddrModeRel { 10874let Inst{13-13} = 0b0; 10875let Inst{31-21} = 0b01000001100; 10876let isPredicated = 1; 10877let hasNewValue = 1; 10878let opNewValue = 0; 10879let addrMode = BaseImmOffset; 10880let accessSize = WordAccess; 10881let mayLoad = 1; 10882let BaseOpcode = "L2_loadri_io"; 10883let CextOpcode = "L2_loadri"; 10884let isExtendable = 1; 10885let opExtendable = 3; 10886let isExtentSigned = 0; 10887let opExtentBits = 8; 10888let opExtentAlign = 2; 10889} 10890def L2_ploadrit_pi : HInst< 10891(outs IntRegs:$Rd32, IntRegs:$Rx32), 10892(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_2Imm:$Ii), 10893"if ($Pt4) $Rd32 = memw($Rx32++#$Ii)", 10894tc_1c7522a8, TypeLD>, Enc_b97f71, PredNewRel { 10895let Inst{13-11} = 0b100; 10896let Inst{31-21} = 0b10011011100; 10897let isPredicated = 1; 10898let hasNewValue = 1; 10899let opNewValue = 0; 10900let addrMode = PostInc; 10901let accessSize = WordAccess; 10902let mayLoad = 1; 10903let BaseOpcode = "L2_loadri_pi"; 10904let Constraints = "$Rx32 = $Rx32in"; 10905} 10906def L2_ploadrit_zomap : HInst< 10907(outs IntRegs:$Rd32), 10908(ins PredRegs:$Pt4, IntRegs:$Rs32), 10909"if ($Pt4) $Rd32 = memw($Rs32)", 10910tc_fedb7e19, TypeMAPPING> { 10911let hasNewValue = 1; 10912let opNewValue = 0; 10913let isPseudo = 1; 10914let isCodeGenOnly = 1; 10915} 10916def L2_ploadritnew_io : HInst< 10917(outs IntRegs:$Rd32), 10918(ins PredRegs:$Pt4, IntRegs:$Rs32, u30_2Imm:$Ii), 10919"if ($Pt4.new) $Rd32 = memw($Rs32+#$Ii)", 10920tc_075c8dd8, TypeV2LDST>, Enc_f82eaf, AddrModeRel { 10921let Inst{13-13} = 0b0; 10922let Inst{31-21} = 0b01000011100; 10923let isPredicated = 1; 10924let hasNewValue = 1; 10925let opNewValue = 0; 10926let addrMode = BaseImmOffset; 10927let accessSize = WordAccess; 10928let isPredicatedNew = 1; 10929let mayLoad = 1; 10930let BaseOpcode = "L2_loadri_io"; 10931let CextOpcode = "L2_loadri"; 10932let isExtendable = 1; 10933let opExtendable = 3; 10934let isExtentSigned = 0; 10935let opExtentBits = 8; 10936let opExtentAlign = 2; 10937} 10938def L2_ploadritnew_pi : HInst< 10939(outs IntRegs:$Rd32, IntRegs:$Rx32), 10940(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_2Imm:$Ii), 10941"if ($Pt4.new) $Rd32 = memw($Rx32++#$Ii)", 10942tc_5f2afaf7, TypeLD>, Enc_b97f71, PredNewRel { 10943let Inst{13-11} = 0b110; 10944let Inst{31-21} = 0b10011011100; 10945let isPredicated = 1; 10946let hasNewValue = 1; 10947let opNewValue = 0; 10948let addrMode = PostInc; 10949let accessSize = WordAccess; 10950let isPredicatedNew = 1; 10951let mayLoad = 1; 10952let BaseOpcode = "L2_loadri_pi"; 10953let Constraints = "$Rx32 = $Rx32in"; 10954} 10955def L2_ploadritnew_zomap : HInst< 10956(outs IntRegs:$Rd32), 10957(ins PredRegs:$Pt4, IntRegs:$Rs32), 10958"if ($Pt4.new) $Rd32 = memw($Rs32)", 10959tc_075c8dd8, TypeMAPPING> { 10960let hasNewValue = 1; 10961let opNewValue = 0; 10962let isPseudo = 1; 10963let isCodeGenOnly = 1; 10964} 10965def L2_ploadrubf_io : HInst< 10966(outs IntRegs:$Rd32), 10967(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii), 10968"if (!$Pt4) $Rd32 = memub($Rs32+#$Ii)", 10969tc_fedb7e19, TypeV2LDST>, Enc_a21d47, AddrModeRel { 10970let Inst{13-13} = 0b0; 10971let Inst{31-21} = 0b01000101001; 10972let isPredicated = 1; 10973let isPredicatedFalse = 1; 10974let hasNewValue = 1; 10975let opNewValue = 0; 10976let addrMode = BaseImmOffset; 10977let accessSize = ByteAccess; 10978let mayLoad = 1; 10979let BaseOpcode = "L2_loadrub_io"; 10980let CextOpcode = "L2_loadrub"; 10981let isExtendable = 1; 10982let opExtendable = 3; 10983let isExtentSigned = 0; 10984let opExtentBits = 6; 10985let opExtentAlign = 0; 10986} 10987def L2_ploadrubf_pi : HInst< 10988(outs IntRegs:$Rd32, IntRegs:$Rx32), 10989(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii), 10990"if (!$Pt4) $Rd32 = memub($Rx32++#$Ii)", 10991tc_1c7522a8, TypeLD>, Enc_f4413a, PredNewRel { 10992let Inst{13-11} = 0b101; 10993let Inst{31-21} = 0b10011011001; 10994let isPredicated = 1; 10995let isPredicatedFalse = 1; 10996let hasNewValue = 1; 10997let opNewValue = 0; 10998let addrMode = PostInc; 10999let accessSize = ByteAccess; 11000let mayLoad = 1; 11001let BaseOpcode = "L2_loadrub_pi"; 11002let Constraints = "$Rx32 = $Rx32in"; 11003} 11004def L2_ploadrubf_zomap : HInst< 11005(outs IntRegs:$Rd32), 11006(ins PredRegs:$Pt4, IntRegs:$Rs32), 11007"if (!$Pt4) $Rd32 = memub($Rs32)", 11008tc_fedb7e19, TypeMAPPING> { 11009let hasNewValue = 1; 11010let opNewValue = 0; 11011let isPseudo = 1; 11012let isCodeGenOnly = 1; 11013} 11014def L2_ploadrubfnew_io : HInst< 11015(outs IntRegs:$Rd32), 11016(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii), 11017"if (!$Pt4.new) $Rd32 = memub($Rs32+#$Ii)", 11018tc_075c8dd8, TypeV2LDST>, Enc_a21d47, AddrModeRel { 11019let Inst{13-13} = 0b0; 11020let Inst{31-21} = 0b01000111001; 11021let isPredicated = 1; 11022let isPredicatedFalse = 1; 11023let hasNewValue = 1; 11024let opNewValue = 0; 11025let addrMode = BaseImmOffset; 11026let accessSize = ByteAccess; 11027let isPredicatedNew = 1; 11028let mayLoad = 1; 11029let BaseOpcode = "L2_loadrub_io"; 11030let CextOpcode = "L2_loadrub"; 11031let isExtendable = 1; 11032let opExtendable = 3; 11033let isExtentSigned = 0; 11034let opExtentBits = 6; 11035let opExtentAlign = 0; 11036} 11037def L2_ploadrubfnew_pi : HInst< 11038(outs IntRegs:$Rd32, IntRegs:$Rx32), 11039(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii), 11040"if (!$Pt4.new) $Rd32 = memub($Rx32++#$Ii)", 11041tc_5f2afaf7, TypeLD>, Enc_f4413a, PredNewRel { 11042let Inst{13-11} = 0b111; 11043let Inst{31-21} = 0b10011011001; 11044let isPredicated = 1; 11045let isPredicatedFalse = 1; 11046let hasNewValue = 1; 11047let opNewValue = 0; 11048let addrMode = PostInc; 11049let accessSize = ByteAccess; 11050let isPredicatedNew = 1; 11051let mayLoad = 1; 11052let BaseOpcode = "L2_loadrub_pi"; 11053let Constraints = "$Rx32 = $Rx32in"; 11054} 11055def L2_ploadrubfnew_zomap : HInst< 11056(outs IntRegs:$Rd32), 11057(ins PredRegs:$Pt4, IntRegs:$Rs32), 11058"if (!$Pt4.new) $Rd32 = memub($Rs32)", 11059tc_075c8dd8, TypeMAPPING> { 11060let hasNewValue = 1; 11061let opNewValue = 0; 11062let isPseudo = 1; 11063let isCodeGenOnly = 1; 11064} 11065def L2_ploadrubt_io : HInst< 11066(outs IntRegs:$Rd32), 11067(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii), 11068"if ($Pt4) $Rd32 = memub($Rs32+#$Ii)", 11069tc_fedb7e19, TypeV2LDST>, Enc_a21d47, AddrModeRel { 11070let Inst{13-13} = 0b0; 11071let Inst{31-21} = 0b01000001001; 11072let isPredicated = 1; 11073let hasNewValue = 1; 11074let opNewValue = 0; 11075let addrMode = BaseImmOffset; 11076let accessSize = ByteAccess; 11077let mayLoad = 1; 11078let BaseOpcode = "L2_loadrub_io"; 11079let CextOpcode = "L2_loadrub"; 11080let isExtendable = 1; 11081let opExtendable = 3; 11082let isExtentSigned = 0; 11083let opExtentBits = 6; 11084let opExtentAlign = 0; 11085} 11086def L2_ploadrubt_pi : HInst< 11087(outs IntRegs:$Rd32, IntRegs:$Rx32), 11088(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii), 11089"if ($Pt4) $Rd32 = memub($Rx32++#$Ii)", 11090tc_1c7522a8, TypeLD>, Enc_f4413a, PredNewRel { 11091let Inst{13-11} = 0b100; 11092let Inst{31-21} = 0b10011011001; 11093let isPredicated = 1; 11094let hasNewValue = 1; 11095let opNewValue = 0; 11096let addrMode = PostInc; 11097let accessSize = ByteAccess; 11098let mayLoad = 1; 11099let BaseOpcode = "L2_loadrub_pi"; 11100let Constraints = "$Rx32 = $Rx32in"; 11101} 11102def L2_ploadrubt_zomap : HInst< 11103(outs IntRegs:$Rd32), 11104(ins PredRegs:$Pt4, IntRegs:$Rs32), 11105"if ($Pt4) $Rd32 = memub($Rs32)", 11106tc_fedb7e19, TypeMAPPING> { 11107let hasNewValue = 1; 11108let opNewValue = 0; 11109let isPseudo = 1; 11110let isCodeGenOnly = 1; 11111} 11112def L2_ploadrubtnew_io : HInst< 11113(outs IntRegs:$Rd32), 11114(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii), 11115"if ($Pt4.new) $Rd32 = memub($Rs32+#$Ii)", 11116tc_075c8dd8, TypeV2LDST>, Enc_a21d47, AddrModeRel { 11117let Inst{13-13} = 0b0; 11118let Inst{31-21} = 0b01000011001; 11119let isPredicated = 1; 11120let hasNewValue = 1; 11121let opNewValue = 0; 11122let addrMode = BaseImmOffset; 11123let accessSize = ByteAccess; 11124let isPredicatedNew = 1; 11125let mayLoad = 1; 11126let BaseOpcode = "L2_loadrub_io"; 11127let CextOpcode = "L2_loadrub"; 11128let isExtendable = 1; 11129let opExtendable = 3; 11130let isExtentSigned = 0; 11131let opExtentBits = 6; 11132let opExtentAlign = 0; 11133} 11134def L2_ploadrubtnew_pi : HInst< 11135(outs IntRegs:$Rd32, IntRegs:$Rx32), 11136(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii), 11137"if ($Pt4.new) $Rd32 = memub($Rx32++#$Ii)", 11138tc_5f2afaf7, TypeLD>, Enc_f4413a, PredNewRel { 11139let Inst{13-11} = 0b110; 11140let Inst{31-21} = 0b10011011001; 11141let isPredicated = 1; 11142let hasNewValue = 1; 11143let opNewValue = 0; 11144let addrMode = PostInc; 11145let accessSize = ByteAccess; 11146let isPredicatedNew = 1; 11147let mayLoad = 1; 11148let BaseOpcode = "L2_loadrub_pi"; 11149let Constraints = "$Rx32 = $Rx32in"; 11150} 11151def L2_ploadrubtnew_zomap : HInst< 11152(outs IntRegs:$Rd32), 11153(ins PredRegs:$Pt4, IntRegs:$Rs32), 11154"if ($Pt4.new) $Rd32 = memub($Rs32)", 11155tc_075c8dd8, TypeMAPPING> { 11156let hasNewValue = 1; 11157let opNewValue = 0; 11158let isPseudo = 1; 11159let isCodeGenOnly = 1; 11160} 11161def L2_ploadruhf_io : HInst< 11162(outs IntRegs:$Rd32), 11163(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii), 11164"if (!$Pt4) $Rd32 = memuh($Rs32+#$Ii)", 11165tc_fedb7e19, TypeV2LDST>, Enc_a198f6, AddrModeRel { 11166let Inst{13-13} = 0b0; 11167let Inst{31-21} = 0b01000101011; 11168let isPredicated = 1; 11169let isPredicatedFalse = 1; 11170let hasNewValue = 1; 11171let opNewValue = 0; 11172let addrMode = BaseImmOffset; 11173let accessSize = HalfWordAccess; 11174let mayLoad = 1; 11175let BaseOpcode = "L2_loadruh_io"; 11176let CextOpcode = "L2_loadruh"; 11177let isExtendable = 1; 11178let opExtendable = 3; 11179let isExtentSigned = 0; 11180let opExtentBits = 7; 11181let opExtentAlign = 1; 11182} 11183def L2_ploadruhf_pi : HInst< 11184(outs IntRegs:$Rd32, IntRegs:$Rx32), 11185(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii), 11186"if (!$Pt4) $Rd32 = memuh($Rx32++#$Ii)", 11187tc_1c7522a8, TypeLD>, Enc_733b27, PredNewRel { 11188let Inst{13-11} = 0b101; 11189let Inst{31-21} = 0b10011011011; 11190let isPredicated = 1; 11191let isPredicatedFalse = 1; 11192let hasNewValue = 1; 11193let opNewValue = 0; 11194let addrMode = PostInc; 11195let accessSize = HalfWordAccess; 11196let mayLoad = 1; 11197let BaseOpcode = "L2_loadruh_pi"; 11198let Constraints = "$Rx32 = $Rx32in"; 11199} 11200def L2_ploadruhf_zomap : HInst< 11201(outs IntRegs:$Rd32), 11202(ins PredRegs:$Pt4, IntRegs:$Rs32), 11203"if (!$Pt4) $Rd32 = memuh($Rs32)", 11204tc_fedb7e19, TypeMAPPING> { 11205let hasNewValue = 1; 11206let opNewValue = 0; 11207let isPseudo = 1; 11208let isCodeGenOnly = 1; 11209} 11210def L2_ploadruhfnew_io : HInst< 11211(outs IntRegs:$Rd32), 11212(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii), 11213"if (!$Pt4.new) $Rd32 = memuh($Rs32+#$Ii)", 11214tc_075c8dd8, TypeV2LDST>, Enc_a198f6, AddrModeRel { 11215let Inst{13-13} = 0b0; 11216let Inst{31-21} = 0b01000111011; 11217let isPredicated = 1; 11218let isPredicatedFalse = 1; 11219let hasNewValue = 1; 11220let opNewValue = 0; 11221let addrMode = BaseImmOffset; 11222let accessSize = HalfWordAccess; 11223let isPredicatedNew = 1; 11224let mayLoad = 1; 11225let BaseOpcode = "L2_loadruh_io"; 11226let CextOpcode = "L2_loadruh"; 11227let isExtendable = 1; 11228let opExtendable = 3; 11229let isExtentSigned = 0; 11230let opExtentBits = 7; 11231let opExtentAlign = 1; 11232} 11233def L2_ploadruhfnew_pi : HInst< 11234(outs IntRegs:$Rd32, IntRegs:$Rx32), 11235(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii), 11236"if (!$Pt4.new) $Rd32 = memuh($Rx32++#$Ii)", 11237tc_5f2afaf7, TypeLD>, Enc_733b27, PredNewRel { 11238let Inst{13-11} = 0b111; 11239let Inst{31-21} = 0b10011011011; 11240let isPredicated = 1; 11241let isPredicatedFalse = 1; 11242let hasNewValue = 1; 11243let opNewValue = 0; 11244let addrMode = PostInc; 11245let accessSize = HalfWordAccess; 11246let isPredicatedNew = 1; 11247let mayLoad = 1; 11248let BaseOpcode = "L2_loadruh_pi"; 11249let Constraints = "$Rx32 = $Rx32in"; 11250} 11251def L2_ploadruhfnew_zomap : HInst< 11252(outs IntRegs:$Rd32), 11253(ins PredRegs:$Pt4, IntRegs:$Rs32), 11254"if (!$Pt4.new) $Rd32 = memuh($Rs32)", 11255tc_075c8dd8, TypeMAPPING> { 11256let hasNewValue = 1; 11257let opNewValue = 0; 11258let isPseudo = 1; 11259let isCodeGenOnly = 1; 11260} 11261def L2_ploadruht_io : HInst< 11262(outs IntRegs:$Rd32), 11263(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii), 11264"if ($Pt4) $Rd32 = memuh($Rs32+#$Ii)", 11265tc_fedb7e19, TypeV2LDST>, Enc_a198f6, AddrModeRel { 11266let Inst{13-13} = 0b0; 11267let Inst{31-21} = 0b01000001011; 11268let isPredicated = 1; 11269let hasNewValue = 1; 11270let opNewValue = 0; 11271let addrMode = BaseImmOffset; 11272let accessSize = HalfWordAccess; 11273let mayLoad = 1; 11274let BaseOpcode = "L2_loadruh_io"; 11275let CextOpcode = "L2_loadruh"; 11276let isExtendable = 1; 11277let opExtendable = 3; 11278let isExtentSigned = 0; 11279let opExtentBits = 7; 11280let opExtentAlign = 1; 11281} 11282def L2_ploadruht_pi : HInst< 11283(outs IntRegs:$Rd32, IntRegs:$Rx32), 11284(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii), 11285"if ($Pt4) $Rd32 = memuh($Rx32++#$Ii)", 11286tc_1c7522a8, TypeLD>, Enc_733b27, PredNewRel { 11287let Inst{13-11} = 0b100; 11288let Inst{31-21} = 0b10011011011; 11289let isPredicated = 1; 11290let hasNewValue = 1; 11291let opNewValue = 0; 11292let addrMode = PostInc; 11293let accessSize = HalfWordAccess; 11294let mayLoad = 1; 11295let BaseOpcode = "L2_loadruh_pi"; 11296let Constraints = "$Rx32 = $Rx32in"; 11297} 11298def L2_ploadruht_zomap : HInst< 11299(outs IntRegs:$Rd32), 11300(ins PredRegs:$Pt4, IntRegs:$Rs32), 11301"if ($Pt4) $Rd32 = memuh($Rs32)", 11302tc_fedb7e19, TypeMAPPING> { 11303let hasNewValue = 1; 11304let opNewValue = 0; 11305let isPseudo = 1; 11306let isCodeGenOnly = 1; 11307} 11308def L2_ploadruhtnew_io : HInst< 11309(outs IntRegs:$Rd32), 11310(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii), 11311"if ($Pt4.new) $Rd32 = memuh($Rs32+#$Ii)", 11312tc_075c8dd8, TypeV2LDST>, Enc_a198f6, AddrModeRel { 11313let Inst{13-13} = 0b0; 11314let Inst{31-21} = 0b01000011011; 11315let isPredicated = 1; 11316let hasNewValue = 1; 11317let opNewValue = 0; 11318let addrMode = BaseImmOffset; 11319let accessSize = HalfWordAccess; 11320let isPredicatedNew = 1; 11321let mayLoad = 1; 11322let BaseOpcode = "L2_loadruh_io"; 11323let CextOpcode = "L2_loadruh"; 11324let isExtendable = 1; 11325let opExtendable = 3; 11326let isExtentSigned = 0; 11327let opExtentBits = 7; 11328let opExtentAlign = 1; 11329} 11330def L2_ploadruhtnew_pi : HInst< 11331(outs IntRegs:$Rd32, IntRegs:$Rx32), 11332(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii), 11333"if ($Pt4.new) $Rd32 = memuh($Rx32++#$Ii)", 11334tc_5f2afaf7, TypeLD>, Enc_733b27, PredNewRel { 11335let Inst{13-11} = 0b110; 11336let Inst{31-21} = 0b10011011011; 11337let isPredicated = 1; 11338let hasNewValue = 1; 11339let opNewValue = 0; 11340let addrMode = PostInc; 11341let accessSize = HalfWordAccess; 11342let isPredicatedNew = 1; 11343let mayLoad = 1; 11344let BaseOpcode = "L2_loadruh_pi"; 11345let Constraints = "$Rx32 = $Rx32in"; 11346} 11347def L2_ploadruhtnew_zomap : HInst< 11348(outs IntRegs:$Rd32), 11349(ins PredRegs:$Pt4, IntRegs:$Rs32), 11350"if ($Pt4.new) $Rd32 = memuh($Rs32)", 11351tc_075c8dd8, TypeMAPPING> { 11352let hasNewValue = 1; 11353let opNewValue = 0; 11354let isPseudo = 1; 11355let isCodeGenOnly = 1; 11356} 11357def L4_add_memopb_io : HInst< 11358(outs), 11359(ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32), 11360"memb($Rs32+#$Ii) += $Rt32", 11361tc_9bcfb2ee, TypeV4LDST>, Enc_d44e31 { 11362let Inst{6-5} = 0b00; 11363let Inst{13-13} = 0b0; 11364let Inst{31-21} = 0b00111110000; 11365let addrMode = BaseImmOffset; 11366let accessSize = ByteAccess; 11367let mayLoad = 1; 11368let isRestrictNoSlot1Store = 1; 11369let mayStore = 1; 11370let isExtendable = 1; 11371let opExtendable = 1; 11372let isExtentSigned = 0; 11373let opExtentBits = 6; 11374let opExtentAlign = 0; 11375} 11376def L4_add_memopb_zomap : HInst< 11377(outs), 11378(ins IntRegs:$Rs32, IntRegs:$Rt32), 11379"memb($Rs32) += $Rt32", 11380tc_9bcfb2ee, TypeMAPPING> { 11381let isPseudo = 1; 11382let isCodeGenOnly = 1; 11383} 11384def L4_add_memoph_io : HInst< 11385(outs), 11386(ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 11387"memh($Rs32+#$Ii) += $Rt32", 11388tc_9bcfb2ee, TypeV4LDST>, Enc_163a3c { 11389let Inst{6-5} = 0b00; 11390let Inst{13-13} = 0b0; 11391let Inst{31-21} = 0b00111110001; 11392let addrMode = BaseImmOffset; 11393let accessSize = HalfWordAccess; 11394let mayLoad = 1; 11395let isRestrictNoSlot1Store = 1; 11396let mayStore = 1; 11397let isExtendable = 1; 11398let opExtendable = 1; 11399let isExtentSigned = 0; 11400let opExtentBits = 7; 11401let opExtentAlign = 1; 11402} 11403def L4_add_memoph_zomap : HInst< 11404(outs), 11405(ins IntRegs:$Rs32, IntRegs:$Rt32), 11406"memh($Rs32) += $Rt32", 11407tc_9bcfb2ee, TypeMAPPING> { 11408let isPseudo = 1; 11409let isCodeGenOnly = 1; 11410} 11411def L4_add_memopw_io : HInst< 11412(outs), 11413(ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32), 11414"memw($Rs32+#$Ii) += $Rt32", 11415tc_9bcfb2ee, TypeV4LDST>, Enc_226535 { 11416let Inst{6-5} = 0b00; 11417let Inst{13-13} = 0b0; 11418let Inst{31-21} = 0b00111110010; 11419let addrMode = BaseImmOffset; 11420let accessSize = WordAccess; 11421let mayLoad = 1; 11422let isRestrictNoSlot1Store = 1; 11423let mayStore = 1; 11424let isExtendable = 1; 11425let opExtendable = 1; 11426let isExtentSigned = 0; 11427let opExtentBits = 8; 11428let opExtentAlign = 2; 11429} 11430def L4_add_memopw_zomap : HInst< 11431(outs), 11432(ins IntRegs:$Rs32, IntRegs:$Rt32), 11433"memw($Rs32) += $Rt32", 11434tc_9bcfb2ee, TypeMAPPING> { 11435let isPseudo = 1; 11436let isCodeGenOnly = 1; 11437} 11438def L4_and_memopb_io : HInst< 11439(outs), 11440(ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32), 11441"memb($Rs32+#$Ii) &= $Rt32", 11442tc_9bcfb2ee, TypeV4LDST>, Enc_d44e31 { 11443let Inst{6-5} = 0b10; 11444let Inst{13-13} = 0b0; 11445let Inst{31-21} = 0b00111110000; 11446let addrMode = BaseImmOffset; 11447let accessSize = ByteAccess; 11448let mayLoad = 1; 11449let isRestrictNoSlot1Store = 1; 11450let mayStore = 1; 11451let isExtendable = 1; 11452let opExtendable = 1; 11453let isExtentSigned = 0; 11454let opExtentBits = 6; 11455let opExtentAlign = 0; 11456} 11457def L4_and_memopb_zomap : HInst< 11458(outs), 11459(ins IntRegs:$Rs32, IntRegs:$Rt32), 11460"memb($Rs32) &= $Rt32", 11461tc_9bcfb2ee, TypeMAPPING> { 11462let isPseudo = 1; 11463let isCodeGenOnly = 1; 11464} 11465def L4_and_memoph_io : HInst< 11466(outs), 11467(ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 11468"memh($Rs32+#$Ii) &= $Rt32", 11469tc_9bcfb2ee, TypeV4LDST>, Enc_163a3c { 11470let Inst{6-5} = 0b10; 11471let Inst{13-13} = 0b0; 11472let Inst{31-21} = 0b00111110001; 11473let addrMode = BaseImmOffset; 11474let accessSize = HalfWordAccess; 11475let mayLoad = 1; 11476let isRestrictNoSlot1Store = 1; 11477let mayStore = 1; 11478let isExtendable = 1; 11479let opExtendable = 1; 11480let isExtentSigned = 0; 11481let opExtentBits = 7; 11482let opExtentAlign = 1; 11483} 11484def L4_and_memoph_zomap : HInst< 11485(outs), 11486(ins IntRegs:$Rs32, IntRegs:$Rt32), 11487"memh($Rs32) &= $Rt32", 11488tc_9bcfb2ee, TypeMAPPING> { 11489let isPseudo = 1; 11490let isCodeGenOnly = 1; 11491} 11492def L4_and_memopw_io : HInst< 11493(outs), 11494(ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32), 11495"memw($Rs32+#$Ii) &= $Rt32", 11496tc_9bcfb2ee, TypeV4LDST>, Enc_226535 { 11497let Inst{6-5} = 0b10; 11498let Inst{13-13} = 0b0; 11499let Inst{31-21} = 0b00111110010; 11500let addrMode = BaseImmOffset; 11501let accessSize = WordAccess; 11502let mayLoad = 1; 11503let isRestrictNoSlot1Store = 1; 11504let mayStore = 1; 11505let isExtendable = 1; 11506let opExtendable = 1; 11507let isExtentSigned = 0; 11508let opExtentBits = 8; 11509let opExtentAlign = 2; 11510} 11511def L4_and_memopw_zomap : HInst< 11512(outs), 11513(ins IntRegs:$Rs32, IntRegs:$Rt32), 11514"memw($Rs32) &= $Rt32", 11515tc_9bcfb2ee, TypeMAPPING> { 11516let isPseudo = 1; 11517let isCodeGenOnly = 1; 11518} 11519def L4_iadd_memopb_io : HInst< 11520(outs), 11521(ins IntRegs:$Rs32, u32_0Imm:$Ii, u5_0Imm:$II), 11522"memb($Rs32+#$Ii) += #$II", 11523tc_158aa3f7, TypeV4LDST>, Enc_46c951 { 11524let Inst{6-5} = 0b00; 11525let Inst{13-13} = 0b0; 11526let Inst{31-21} = 0b00111111000; 11527let addrMode = BaseImmOffset; 11528let accessSize = ByteAccess; 11529let mayLoad = 1; 11530let isRestrictNoSlot1Store = 1; 11531let mayStore = 1; 11532let isExtendable = 1; 11533let opExtendable = 1; 11534let isExtentSigned = 0; 11535let opExtentBits = 6; 11536let opExtentAlign = 0; 11537} 11538def L4_iadd_memopb_zomap : HInst< 11539(outs), 11540(ins IntRegs:$Rs32, u5_0Imm:$II), 11541"memb($Rs32) += #$II", 11542tc_158aa3f7, TypeMAPPING> { 11543let isPseudo = 1; 11544let isCodeGenOnly = 1; 11545} 11546def L4_iadd_memoph_io : HInst< 11547(outs), 11548(ins IntRegs:$Rs32, u31_1Imm:$Ii, u5_0Imm:$II), 11549"memh($Rs32+#$Ii) += #$II", 11550tc_158aa3f7, TypeV4LDST>, Enc_e66a97 { 11551let Inst{6-5} = 0b00; 11552let Inst{13-13} = 0b0; 11553let Inst{31-21} = 0b00111111001; 11554let addrMode = BaseImmOffset; 11555let accessSize = HalfWordAccess; 11556let mayLoad = 1; 11557let isRestrictNoSlot1Store = 1; 11558let mayStore = 1; 11559let isExtendable = 1; 11560let opExtendable = 1; 11561let isExtentSigned = 0; 11562let opExtentBits = 7; 11563let opExtentAlign = 1; 11564} 11565def L4_iadd_memoph_zomap : HInst< 11566(outs), 11567(ins IntRegs:$Rs32, u5_0Imm:$II), 11568"memh($Rs32) += #$II", 11569tc_158aa3f7, TypeMAPPING> { 11570let isPseudo = 1; 11571let isCodeGenOnly = 1; 11572} 11573def L4_iadd_memopw_io : HInst< 11574(outs), 11575(ins IntRegs:$Rs32, u30_2Imm:$Ii, u5_0Imm:$II), 11576"memw($Rs32+#$Ii) += #$II", 11577tc_158aa3f7, TypeV4LDST>, Enc_84b2cd { 11578let Inst{6-5} = 0b00; 11579let Inst{13-13} = 0b0; 11580let Inst{31-21} = 0b00111111010; 11581let addrMode = BaseImmOffset; 11582let accessSize = WordAccess; 11583let mayLoad = 1; 11584let isRestrictNoSlot1Store = 1; 11585let mayStore = 1; 11586let isExtendable = 1; 11587let opExtendable = 1; 11588let isExtentSigned = 0; 11589let opExtentBits = 8; 11590let opExtentAlign = 2; 11591} 11592def L4_iadd_memopw_zomap : HInst< 11593(outs), 11594(ins IntRegs:$Rs32, u5_0Imm:$II), 11595"memw($Rs32) += #$II", 11596tc_158aa3f7, TypeMAPPING> { 11597let isPseudo = 1; 11598let isCodeGenOnly = 1; 11599} 11600def L4_iand_memopb_io : HInst< 11601(outs), 11602(ins IntRegs:$Rs32, u32_0Imm:$Ii, u5_0Imm:$II), 11603"memb($Rs32+#$Ii) = clrbit(#$II)", 11604tc_158aa3f7, TypeV4LDST>, Enc_46c951 { 11605let Inst{6-5} = 0b10; 11606let Inst{13-13} = 0b0; 11607let Inst{31-21} = 0b00111111000; 11608let addrMode = BaseImmOffset; 11609let accessSize = ByteAccess; 11610let mayLoad = 1; 11611let isRestrictNoSlot1Store = 1; 11612let mayStore = 1; 11613let isExtendable = 1; 11614let opExtendable = 1; 11615let isExtentSigned = 0; 11616let opExtentBits = 6; 11617let opExtentAlign = 0; 11618} 11619def L4_iand_memopb_zomap : HInst< 11620(outs), 11621(ins IntRegs:$Rs32, u5_0Imm:$II), 11622"memb($Rs32) = clrbit(#$II)", 11623tc_158aa3f7, TypeMAPPING> { 11624let isPseudo = 1; 11625let isCodeGenOnly = 1; 11626} 11627def L4_iand_memoph_io : HInst< 11628(outs), 11629(ins IntRegs:$Rs32, u31_1Imm:$Ii, u5_0Imm:$II), 11630"memh($Rs32+#$Ii) = clrbit(#$II)", 11631tc_158aa3f7, TypeV4LDST>, Enc_e66a97 { 11632let Inst{6-5} = 0b10; 11633let Inst{13-13} = 0b0; 11634let Inst{31-21} = 0b00111111001; 11635let addrMode = BaseImmOffset; 11636let accessSize = HalfWordAccess; 11637let mayLoad = 1; 11638let isRestrictNoSlot1Store = 1; 11639let mayStore = 1; 11640let isExtendable = 1; 11641let opExtendable = 1; 11642let isExtentSigned = 0; 11643let opExtentBits = 7; 11644let opExtentAlign = 1; 11645} 11646def L4_iand_memoph_zomap : HInst< 11647(outs), 11648(ins IntRegs:$Rs32, u5_0Imm:$II), 11649"memh($Rs32) = clrbit(#$II)", 11650tc_158aa3f7, TypeMAPPING> { 11651let isPseudo = 1; 11652let isCodeGenOnly = 1; 11653} 11654def L4_iand_memopw_io : HInst< 11655(outs), 11656(ins IntRegs:$Rs32, u30_2Imm:$Ii, u5_0Imm:$II), 11657"memw($Rs32+#$Ii) = clrbit(#$II)", 11658tc_158aa3f7, TypeV4LDST>, Enc_84b2cd { 11659let Inst{6-5} = 0b10; 11660let Inst{13-13} = 0b0; 11661let Inst{31-21} = 0b00111111010; 11662let addrMode = BaseImmOffset; 11663let accessSize = WordAccess; 11664let mayLoad = 1; 11665let isRestrictNoSlot1Store = 1; 11666let mayStore = 1; 11667let isExtendable = 1; 11668let opExtendable = 1; 11669let isExtentSigned = 0; 11670let opExtentBits = 8; 11671let opExtentAlign = 2; 11672} 11673def L4_iand_memopw_zomap : HInst< 11674(outs), 11675(ins IntRegs:$Rs32, u5_0Imm:$II), 11676"memw($Rs32) = clrbit(#$II)", 11677tc_158aa3f7, TypeMAPPING> { 11678let isPseudo = 1; 11679let isCodeGenOnly = 1; 11680} 11681def L4_ior_memopb_io : HInst< 11682(outs), 11683(ins IntRegs:$Rs32, u32_0Imm:$Ii, u5_0Imm:$II), 11684"memb($Rs32+#$Ii) = setbit(#$II)", 11685tc_158aa3f7, TypeV4LDST>, Enc_46c951 { 11686let Inst{6-5} = 0b11; 11687let Inst{13-13} = 0b0; 11688let Inst{31-21} = 0b00111111000; 11689let addrMode = BaseImmOffset; 11690let accessSize = ByteAccess; 11691let mayLoad = 1; 11692let isRestrictNoSlot1Store = 1; 11693let mayStore = 1; 11694let isExtendable = 1; 11695let opExtendable = 1; 11696let isExtentSigned = 0; 11697let opExtentBits = 6; 11698let opExtentAlign = 0; 11699} 11700def L4_ior_memopb_zomap : HInst< 11701(outs), 11702(ins IntRegs:$Rs32, u5_0Imm:$II), 11703"memb($Rs32) = setbit(#$II)", 11704tc_158aa3f7, TypeMAPPING> { 11705let isPseudo = 1; 11706let isCodeGenOnly = 1; 11707} 11708def L4_ior_memoph_io : HInst< 11709(outs), 11710(ins IntRegs:$Rs32, u31_1Imm:$Ii, u5_0Imm:$II), 11711"memh($Rs32+#$Ii) = setbit(#$II)", 11712tc_158aa3f7, TypeV4LDST>, Enc_e66a97 { 11713let Inst{6-5} = 0b11; 11714let Inst{13-13} = 0b0; 11715let Inst{31-21} = 0b00111111001; 11716let addrMode = BaseImmOffset; 11717let accessSize = HalfWordAccess; 11718let mayLoad = 1; 11719let isRestrictNoSlot1Store = 1; 11720let mayStore = 1; 11721let isExtendable = 1; 11722let opExtendable = 1; 11723let isExtentSigned = 0; 11724let opExtentBits = 7; 11725let opExtentAlign = 1; 11726} 11727def L4_ior_memoph_zomap : HInst< 11728(outs), 11729(ins IntRegs:$Rs32, u5_0Imm:$II), 11730"memh($Rs32) = setbit(#$II)", 11731tc_158aa3f7, TypeMAPPING> { 11732let isPseudo = 1; 11733let isCodeGenOnly = 1; 11734} 11735def L4_ior_memopw_io : HInst< 11736(outs), 11737(ins IntRegs:$Rs32, u30_2Imm:$Ii, u5_0Imm:$II), 11738"memw($Rs32+#$Ii) = setbit(#$II)", 11739tc_158aa3f7, TypeV4LDST>, Enc_84b2cd { 11740let Inst{6-5} = 0b11; 11741let Inst{13-13} = 0b0; 11742let Inst{31-21} = 0b00111111010; 11743let addrMode = BaseImmOffset; 11744let accessSize = WordAccess; 11745let mayLoad = 1; 11746let isRestrictNoSlot1Store = 1; 11747let mayStore = 1; 11748let isExtendable = 1; 11749let opExtendable = 1; 11750let isExtentSigned = 0; 11751let opExtentBits = 8; 11752let opExtentAlign = 2; 11753} 11754def L4_ior_memopw_zomap : HInst< 11755(outs), 11756(ins IntRegs:$Rs32, u5_0Imm:$II), 11757"memw($Rs32) = setbit(#$II)", 11758tc_158aa3f7, TypeMAPPING> { 11759let isPseudo = 1; 11760let isCodeGenOnly = 1; 11761} 11762def L4_isub_memopb_io : HInst< 11763(outs), 11764(ins IntRegs:$Rs32, u32_0Imm:$Ii, u5_0Imm:$II), 11765"memb($Rs32+#$Ii) -= #$II", 11766tc_158aa3f7, TypeV4LDST>, Enc_46c951 { 11767let Inst{6-5} = 0b01; 11768let Inst{13-13} = 0b0; 11769let Inst{31-21} = 0b00111111000; 11770let addrMode = BaseImmOffset; 11771let accessSize = ByteAccess; 11772let mayLoad = 1; 11773let isRestrictNoSlot1Store = 1; 11774let mayStore = 1; 11775let isExtendable = 1; 11776let opExtendable = 1; 11777let isExtentSigned = 0; 11778let opExtentBits = 6; 11779let opExtentAlign = 0; 11780} 11781def L4_isub_memopb_zomap : HInst< 11782(outs), 11783(ins IntRegs:$Rs32, u5_0Imm:$II), 11784"memb($Rs32) -= #$II", 11785tc_158aa3f7, TypeMAPPING> { 11786let isPseudo = 1; 11787let isCodeGenOnly = 1; 11788} 11789def L4_isub_memoph_io : HInst< 11790(outs), 11791(ins IntRegs:$Rs32, u31_1Imm:$Ii, u5_0Imm:$II), 11792"memh($Rs32+#$Ii) -= #$II", 11793tc_158aa3f7, TypeV4LDST>, Enc_e66a97 { 11794let Inst{6-5} = 0b01; 11795let Inst{13-13} = 0b0; 11796let Inst{31-21} = 0b00111111001; 11797let addrMode = BaseImmOffset; 11798let accessSize = HalfWordAccess; 11799let mayLoad = 1; 11800let isRestrictNoSlot1Store = 1; 11801let mayStore = 1; 11802let isExtendable = 1; 11803let opExtendable = 1; 11804let isExtentSigned = 0; 11805let opExtentBits = 7; 11806let opExtentAlign = 1; 11807} 11808def L4_isub_memoph_zomap : HInst< 11809(outs), 11810(ins IntRegs:$Rs32, u5_0Imm:$II), 11811"memh($Rs32) -= #$II", 11812tc_158aa3f7, TypeMAPPING> { 11813let isPseudo = 1; 11814let isCodeGenOnly = 1; 11815} 11816def L4_isub_memopw_io : HInst< 11817(outs), 11818(ins IntRegs:$Rs32, u30_2Imm:$Ii, u5_0Imm:$II), 11819"memw($Rs32+#$Ii) -= #$II", 11820tc_158aa3f7, TypeV4LDST>, Enc_84b2cd { 11821let Inst{6-5} = 0b01; 11822let Inst{13-13} = 0b0; 11823let Inst{31-21} = 0b00111111010; 11824let addrMode = BaseImmOffset; 11825let accessSize = WordAccess; 11826let mayLoad = 1; 11827let isRestrictNoSlot1Store = 1; 11828let mayStore = 1; 11829let isExtendable = 1; 11830let opExtendable = 1; 11831let isExtentSigned = 0; 11832let opExtentBits = 8; 11833let opExtentAlign = 2; 11834} 11835def L4_isub_memopw_zomap : HInst< 11836(outs), 11837(ins IntRegs:$Rs32, u5_0Imm:$II), 11838"memw($Rs32) -= #$II", 11839tc_158aa3f7, TypeMAPPING> { 11840let isPseudo = 1; 11841let isCodeGenOnly = 1; 11842} 11843def L4_loadalignb_ap : HInst< 11844(outs DoubleRegs:$Ryy32, IntRegs:$Re32), 11845(ins DoubleRegs:$Ryy32in, u32_0Imm:$II), 11846"$Ryy32 = memb_fifo($Re32=#$II)", 11847tc_ac65613f, TypeLD>, Enc_f394d3 { 11848let Inst{7-7} = 0b0; 11849let Inst{13-12} = 0b01; 11850let Inst{31-21} = 0b10011010100; 11851let addrMode = AbsoluteSet; 11852let accessSize = ByteAccess; 11853let mayLoad = 1; 11854let isExtended = 1; 11855let DecoderNamespace = "MustExtend"; 11856let isExtendable = 1; 11857let opExtendable = 3; 11858let isExtentSigned = 0; 11859let opExtentBits = 6; 11860let opExtentAlign = 0; 11861let Constraints = "$Ryy32 = $Ryy32in"; 11862} 11863def L4_loadalignb_ur : HInst< 11864(outs DoubleRegs:$Ryy32), 11865(ins DoubleRegs:$Ryy32in, IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 11866"$Ryy32 = memb_fifo($Rt32<<#$Ii+#$II)", 11867tc_a32e03e7, TypeLD>, Enc_04c959 { 11868let Inst{12-12} = 0b1; 11869let Inst{31-21} = 0b10011100100; 11870let addrMode = BaseLongOffset; 11871let accessSize = ByteAccess; 11872let mayLoad = 1; 11873let isExtended = 1; 11874let InputType = "imm"; 11875let DecoderNamespace = "MustExtend"; 11876let isExtendable = 1; 11877let opExtendable = 4; 11878let isExtentSigned = 0; 11879let opExtentBits = 6; 11880let opExtentAlign = 0; 11881let Constraints = "$Ryy32 = $Ryy32in"; 11882} 11883def L4_loadalignh_ap : HInst< 11884(outs DoubleRegs:$Ryy32, IntRegs:$Re32), 11885(ins DoubleRegs:$Ryy32in, u32_0Imm:$II), 11886"$Ryy32 = memh_fifo($Re32=#$II)", 11887tc_ac65613f, TypeLD>, Enc_f394d3 { 11888let Inst{7-7} = 0b0; 11889let Inst{13-12} = 0b01; 11890let Inst{31-21} = 0b10011010010; 11891let addrMode = AbsoluteSet; 11892let accessSize = HalfWordAccess; 11893let mayLoad = 1; 11894let isExtended = 1; 11895let DecoderNamespace = "MustExtend"; 11896let isExtendable = 1; 11897let opExtendable = 3; 11898let isExtentSigned = 0; 11899let opExtentBits = 6; 11900let opExtentAlign = 0; 11901let Constraints = "$Ryy32 = $Ryy32in"; 11902} 11903def L4_loadalignh_ur : HInst< 11904(outs DoubleRegs:$Ryy32), 11905(ins DoubleRegs:$Ryy32in, IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 11906"$Ryy32 = memh_fifo($Rt32<<#$Ii+#$II)", 11907tc_a32e03e7, TypeLD>, Enc_04c959 { 11908let Inst{12-12} = 0b1; 11909let Inst{31-21} = 0b10011100010; 11910let addrMode = BaseLongOffset; 11911let accessSize = HalfWordAccess; 11912let mayLoad = 1; 11913let isExtended = 1; 11914let InputType = "imm"; 11915let DecoderNamespace = "MustExtend"; 11916let isExtendable = 1; 11917let opExtendable = 4; 11918let isExtentSigned = 0; 11919let opExtentBits = 6; 11920let opExtentAlign = 0; 11921let Constraints = "$Ryy32 = $Ryy32in"; 11922} 11923def L4_loadbsw2_ap : HInst< 11924(outs IntRegs:$Rd32, IntRegs:$Re32), 11925(ins u32_0Imm:$II), 11926"$Rd32 = membh($Re32=#$II)", 11927tc_822c3c68, TypeLD>, Enc_323f2d { 11928let Inst{7-7} = 0b0; 11929let Inst{13-12} = 0b01; 11930let Inst{31-21} = 0b10011010001; 11931let hasNewValue = 1; 11932let opNewValue = 0; 11933let addrMode = AbsoluteSet; 11934let accessSize = HalfWordAccess; 11935let mayLoad = 1; 11936let isExtended = 1; 11937let DecoderNamespace = "MustExtend"; 11938let isExtendable = 1; 11939let opExtendable = 2; 11940let isExtentSigned = 0; 11941let opExtentBits = 6; 11942let opExtentAlign = 0; 11943} 11944def L4_loadbsw2_ur : HInst< 11945(outs IntRegs:$Rd32), 11946(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 11947"$Rd32 = membh($Rt32<<#$Ii+#$II)", 11948tc_abfd9a6d, TypeLD>, Enc_4f677b { 11949let Inst{12-12} = 0b1; 11950let Inst{31-21} = 0b10011100001; 11951let hasNewValue = 1; 11952let opNewValue = 0; 11953let addrMode = BaseLongOffset; 11954let accessSize = HalfWordAccess; 11955let mayLoad = 1; 11956let isExtended = 1; 11957let InputType = "imm"; 11958let DecoderNamespace = "MustExtend"; 11959let isExtendable = 1; 11960let opExtendable = 3; 11961let isExtentSigned = 0; 11962let opExtentBits = 6; 11963let opExtentAlign = 0; 11964} 11965def L4_loadbsw4_ap : HInst< 11966(outs DoubleRegs:$Rdd32, IntRegs:$Re32), 11967(ins u32_0Imm:$II), 11968"$Rdd32 = membh($Re32=#$II)", 11969tc_822c3c68, TypeLD>, Enc_7fa7f6 { 11970let Inst{7-7} = 0b0; 11971let Inst{13-12} = 0b01; 11972let Inst{31-21} = 0b10011010111; 11973let addrMode = AbsoluteSet; 11974let accessSize = WordAccess; 11975let mayLoad = 1; 11976let isExtended = 1; 11977let DecoderNamespace = "MustExtend"; 11978let isExtendable = 1; 11979let opExtendable = 2; 11980let isExtentSigned = 0; 11981let opExtentBits = 6; 11982let opExtentAlign = 0; 11983} 11984def L4_loadbsw4_ur : HInst< 11985(outs DoubleRegs:$Rdd32), 11986(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 11987"$Rdd32 = membh($Rt32<<#$Ii+#$II)", 11988tc_abfd9a6d, TypeLD>, Enc_6185fe { 11989let Inst{12-12} = 0b1; 11990let Inst{31-21} = 0b10011100111; 11991let addrMode = BaseLongOffset; 11992let accessSize = WordAccess; 11993let mayLoad = 1; 11994let isExtended = 1; 11995let InputType = "imm"; 11996let DecoderNamespace = "MustExtend"; 11997let isExtendable = 1; 11998let opExtendable = 3; 11999let isExtentSigned = 0; 12000let opExtentBits = 6; 12001let opExtentAlign = 0; 12002} 12003def L4_loadbzw2_ap : HInst< 12004(outs IntRegs:$Rd32, IntRegs:$Re32), 12005(ins u32_0Imm:$II), 12006"$Rd32 = memubh($Re32=#$II)", 12007tc_822c3c68, TypeLD>, Enc_323f2d { 12008let Inst{7-7} = 0b0; 12009let Inst{13-12} = 0b01; 12010let Inst{31-21} = 0b10011010011; 12011let hasNewValue = 1; 12012let opNewValue = 0; 12013let addrMode = AbsoluteSet; 12014let accessSize = HalfWordAccess; 12015let mayLoad = 1; 12016let isExtended = 1; 12017let DecoderNamespace = "MustExtend"; 12018let isExtendable = 1; 12019let opExtendable = 2; 12020let isExtentSigned = 0; 12021let opExtentBits = 6; 12022let opExtentAlign = 0; 12023} 12024def L4_loadbzw2_ur : HInst< 12025(outs IntRegs:$Rd32), 12026(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 12027"$Rd32 = memubh($Rt32<<#$Ii+#$II)", 12028tc_abfd9a6d, TypeLD>, Enc_4f677b { 12029let Inst{12-12} = 0b1; 12030let Inst{31-21} = 0b10011100011; 12031let hasNewValue = 1; 12032let opNewValue = 0; 12033let addrMode = BaseLongOffset; 12034let accessSize = HalfWordAccess; 12035let mayLoad = 1; 12036let isExtended = 1; 12037let InputType = "imm"; 12038let DecoderNamespace = "MustExtend"; 12039let isExtendable = 1; 12040let opExtendable = 3; 12041let isExtentSigned = 0; 12042let opExtentBits = 6; 12043let opExtentAlign = 0; 12044} 12045def L4_loadbzw4_ap : HInst< 12046(outs DoubleRegs:$Rdd32, IntRegs:$Re32), 12047(ins u32_0Imm:$II), 12048"$Rdd32 = memubh($Re32=#$II)", 12049tc_822c3c68, TypeLD>, Enc_7fa7f6 { 12050let Inst{7-7} = 0b0; 12051let Inst{13-12} = 0b01; 12052let Inst{31-21} = 0b10011010101; 12053let addrMode = AbsoluteSet; 12054let accessSize = WordAccess; 12055let mayLoad = 1; 12056let isExtended = 1; 12057let DecoderNamespace = "MustExtend"; 12058let isExtendable = 1; 12059let opExtendable = 2; 12060let isExtentSigned = 0; 12061let opExtentBits = 6; 12062let opExtentAlign = 0; 12063} 12064def L4_loadbzw4_ur : HInst< 12065(outs DoubleRegs:$Rdd32), 12066(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 12067"$Rdd32 = memubh($Rt32<<#$Ii+#$II)", 12068tc_abfd9a6d, TypeLD>, Enc_6185fe { 12069let Inst{12-12} = 0b1; 12070let Inst{31-21} = 0b10011100101; 12071let addrMode = BaseLongOffset; 12072let accessSize = WordAccess; 12073let mayLoad = 1; 12074let isExtended = 1; 12075let InputType = "imm"; 12076let DecoderNamespace = "MustExtend"; 12077let isExtendable = 1; 12078let opExtendable = 3; 12079let isExtentSigned = 0; 12080let opExtentBits = 6; 12081let opExtentAlign = 0; 12082} 12083def L4_loadd_aq : HInst< 12084(outs DoubleRegs:$Rdd32), 12085(ins IntRegs:$Rs32), 12086"$Rdd32 = memd_aq($Rs32)", 12087tc_2471c1c8, TypeLD>, Enc_3a3d62, Requires<[HasV68]> { 12088let Inst{13-5} = 0b011000000; 12089let Inst{31-21} = 0b10010010000; 12090let accessSize = DoubleWordAccess; 12091let mayLoad = 1; 12092} 12093def L4_loadd_locked : HInst< 12094(outs DoubleRegs:$Rdd32), 12095(ins IntRegs:$Rs32), 12096"$Rdd32 = memd_locked($Rs32)", 12097tc_64b00d8a, TypeLD>, Enc_3a3d62 { 12098let Inst{13-5} = 0b010000000; 12099let Inst{31-21} = 0b10010010000; 12100let accessSize = DoubleWordAccess; 12101let mayLoad = 1; 12102let isSoloAX = 1; 12103} 12104def L4_loadrb_ap : HInst< 12105(outs IntRegs:$Rd32, IntRegs:$Re32), 12106(ins u32_0Imm:$II), 12107"$Rd32 = memb($Re32=#$II)", 12108tc_822c3c68, TypeLD>, Enc_323f2d { 12109let Inst{7-7} = 0b0; 12110let Inst{13-12} = 0b01; 12111let Inst{31-21} = 0b10011011000; 12112let hasNewValue = 1; 12113let opNewValue = 0; 12114let addrMode = AbsoluteSet; 12115let accessSize = ByteAccess; 12116let mayLoad = 1; 12117let isExtended = 1; 12118let DecoderNamespace = "MustExtend"; 12119let isExtendable = 1; 12120let opExtendable = 2; 12121let isExtentSigned = 0; 12122let opExtentBits = 6; 12123let opExtentAlign = 0; 12124} 12125def L4_loadrb_rr : HInst< 12126(outs IntRegs:$Rd32), 12127(ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12128"$Rd32 = memb($Rs32+$Rt32<<#$Ii)", 12129tc_bf2ffc0f, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl { 12130let Inst{6-5} = 0b00; 12131let Inst{31-21} = 0b00111010000; 12132let hasNewValue = 1; 12133let opNewValue = 0; 12134let addrMode = BaseRegOffset; 12135let accessSize = ByteAccess; 12136let mayLoad = 1; 12137let BaseOpcode = "L4_loadrb_rr"; 12138let CextOpcode = "L2_loadrb"; 12139let InputType = "reg"; 12140let isPredicable = 1; 12141} 12142def L4_loadrb_ur : HInst< 12143(outs IntRegs:$Rd32), 12144(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 12145"$Rd32 = memb($Rt32<<#$Ii+#$II)", 12146tc_abfd9a6d, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl { 12147let Inst{12-12} = 0b1; 12148let Inst{31-21} = 0b10011101000; 12149let hasNewValue = 1; 12150let opNewValue = 0; 12151let addrMode = BaseLongOffset; 12152let accessSize = ByteAccess; 12153let mayLoad = 1; 12154let isExtended = 1; 12155let CextOpcode = "L2_loadrb"; 12156let InputType = "imm"; 12157let DecoderNamespace = "MustExtend"; 12158let isExtendable = 1; 12159let opExtendable = 3; 12160let isExtentSigned = 0; 12161let opExtentBits = 6; 12162let opExtentAlign = 0; 12163} 12164def L4_loadrd_ap : HInst< 12165(outs DoubleRegs:$Rdd32, IntRegs:$Re32), 12166(ins u32_0Imm:$II), 12167"$Rdd32 = memd($Re32=#$II)", 12168tc_822c3c68, TypeLD>, Enc_7fa7f6 { 12169let Inst{7-7} = 0b0; 12170let Inst{13-12} = 0b01; 12171let Inst{31-21} = 0b10011011110; 12172let addrMode = AbsoluteSet; 12173let accessSize = DoubleWordAccess; 12174let mayLoad = 1; 12175let isExtended = 1; 12176let DecoderNamespace = "MustExtend"; 12177let isExtendable = 1; 12178let opExtendable = 2; 12179let isExtentSigned = 0; 12180let opExtentBits = 6; 12181let opExtentAlign = 0; 12182} 12183def L4_loadrd_rr : HInst< 12184(outs DoubleRegs:$Rdd32), 12185(ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12186"$Rdd32 = memd($Rs32+$Rt32<<#$Ii)", 12187tc_bf2ffc0f, TypeLD>, Enc_84bff1, AddrModeRel, ImmRegShl { 12188let Inst{6-5} = 0b00; 12189let Inst{31-21} = 0b00111010110; 12190let addrMode = BaseRegOffset; 12191let accessSize = DoubleWordAccess; 12192let mayLoad = 1; 12193let BaseOpcode = "L4_loadrd_rr"; 12194let CextOpcode = "L2_loadrd"; 12195let InputType = "reg"; 12196let isPredicable = 1; 12197} 12198def L4_loadrd_ur : HInst< 12199(outs DoubleRegs:$Rdd32), 12200(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 12201"$Rdd32 = memd($Rt32<<#$Ii+#$II)", 12202tc_abfd9a6d, TypeLD>, Enc_6185fe, AddrModeRel, ImmRegShl { 12203let Inst{12-12} = 0b1; 12204let Inst{31-21} = 0b10011101110; 12205let addrMode = BaseLongOffset; 12206let accessSize = DoubleWordAccess; 12207let mayLoad = 1; 12208let isExtended = 1; 12209let CextOpcode = "L2_loadrd"; 12210let InputType = "imm"; 12211let DecoderNamespace = "MustExtend"; 12212let isExtendable = 1; 12213let opExtendable = 3; 12214let isExtentSigned = 0; 12215let opExtentBits = 6; 12216let opExtentAlign = 0; 12217} 12218def L4_loadrh_ap : HInst< 12219(outs IntRegs:$Rd32, IntRegs:$Re32), 12220(ins u32_0Imm:$II), 12221"$Rd32 = memh($Re32=#$II)", 12222tc_822c3c68, TypeLD>, Enc_323f2d { 12223let Inst{7-7} = 0b0; 12224let Inst{13-12} = 0b01; 12225let Inst{31-21} = 0b10011011010; 12226let hasNewValue = 1; 12227let opNewValue = 0; 12228let addrMode = AbsoluteSet; 12229let accessSize = HalfWordAccess; 12230let mayLoad = 1; 12231let isExtended = 1; 12232let DecoderNamespace = "MustExtend"; 12233let isExtendable = 1; 12234let opExtendable = 2; 12235let isExtentSigned = 0; 12236let opExtentBits = 6; 12237let opExtentAlign = 0; 12238} 12239def L4_loadrh_rr : HInst< 12240(outs IntRegs:$Rd32), 12241(ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12242"$Rd32 = memh($Rs32+$Rt32<<#$Ii)", 12243tc_bf2ffc0f, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl { 12244let Inst{6-5} = 0b00; 12245let Inst{31-21} = 0b00111010010; 12246let hasNewValue = 1; 12247let opNewValue = 0; 12248let addrMode = BaseRegOffset; 12249let accessSize = HalfWordAccess; 12250let mayLoad = 1; 12251let BaseOpcode = "L4_loadrh_rr"; 12252let CextOpcode = "L2_loadrh"; 12253let InputType = "reg"; 12254let isPredicable = 1; 12255} 12256def L4_loadrh_ur : HInst< 12257(outs IntRegs:$Rd32), 12258(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 12259"$Rd32 = memh($Rt32<<#$Ii+#$II)", 12260tc_abfd9a6d, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl { 12261let Inst{12-12} = 0b1; 12262let Inst{31-21} = 0b10011101010; 12263let hasNewValue = 1; 12264let opNewValue = 0; 12265let addrMode = BaseLongOffset; 12266let accessSize = HalfWordAccess; 12267let mayLoad = 1; 12268let isExtended = 1; 12269let CextOpcode = "L2_loadrh"; 12270let InputType = "imm"; 12271let DecoderNamespace = "MustExtend"; 12272let isExtendable = 1; 12273let opExtendable = 3; 12274let isExtentSigned = 0; 12275let opExtentBits = 6; 12276let opExtentAlign = 0; 12277} 12278def L4_loadri_ap : HInst< 12279(outs IntRegs:$Rd32, IntRegs:$Re32), 12280(ins u32_0Imm:$II), 12281"$Rd32 = memw($Re32=#$II)", 12282tc_822c3c68, TypeLD>, Enc_323f2d { 12283let Inst{7-7} = 0b0; 12284let Inst{13-12} = 0b01; 12285let Inst{31-21} = 0b10011011100; 12286let hasNewValue = 1; 12287let opNewValue = 0; 12288let addrMode = AbsoluteSet; 12289let accessSize = WordAccess; 12290let mayLoad = 1; 12291let isExtended = 1; 12292let DecoderNamespace = "MustExtend"; 12293let isExtendable = 1; 12294let opExtendable = 2; 12295let isExtentSigned = 0; 12296let opExtentBits = 6; 12297let opExtentAlign = 0; 12298} 12299def L4_loadri_rr : HInst< 12300(outs IntRegs:$Rd32), 12301(ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12302"$Rd32 = memw($Rs32+$Rt32<<#$Ii)", 12303tc_bf2ffc0f, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl { 12304let Inst{6-5} = 0b00; 12305let Inst{31-21} = 0b00111010100; 12306let hasNewValue = 1; 12307let opNewValue = 0; 12308let addrMode = BaseRegOffset; 12309let accessSize = WordAccess; 12310let mayLoad = 1; 12311let BaseOpcode = "L4_loadri_rr"; 12312let CextOpcode = "L2_loadri"; 12313let InputType = "reg"; 12314let isPredicable = 1; 12315} 12316def L4_loadri_ur : HInst< 12317(outs IntRegs:$Rd32), 12318(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 12319"$Rd32 = memw($Rt32<<#$Ii+#$II)", 12320tc_abfd9a6d, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl { 12321let Inst{12-12} = 0b1; 12322let Inst{31-21} = 0b10011101100; 12323let hasNewValue = 1; 12324let opNewValue = 0; 12325let addrMode = BaseLongOffset; 12326let accessSize = WordAccess; 12327let mayLoad = 1; 12328let isExtended = 1; 12329let CextOpcode = "L2_loadri"; 12330let InputType = "imm"; 12331let DecoderNamespace = "MustExtend"; 12332let isExtendable = 1; 12333let opExtendable = 3; 12334let isExtentSigned = 0; 12335let opExtentBits = 6; 12336let opExtentAlign = 0; 12337} 12338def L4_loadrub_ap : HInst< 12339(outs IntRegs:$Rd32, IntRegs:$Re32), 12340(ins u32_0Imm:$II), 12341"$Rd32 = memub($Re32=#$II)", 12342tc_822c3c68, TypeLD>, Enc_323f2d { 12343let Inst{7-7} = 0b0; 12344let Inst{13-12} = 0b01; 12345let Inst{31-21} = 0b10011011001; 12346let hasNewValue = 1; 12347let opNewValue = 0; 12348let addrMode = AbsoluteSet; 12349let accessSize = ByteAccess; 12350let mayLoad = 1; 12351let isExtended = 1; 12352let DecoderNamespace = "MustExtend"; 12353let isExtendable = 1; 12354let opExtendable = 2; 12355let isExtentSigned = 0; 12356let opExtentBits = 6; 12357let opExtentAlign = 0; 12358} 12359def L4_loadrub_rr : HInst< 12360(outs IntRegs:$Rd32), 12361(ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12362"$Rd32 = memub($Rs32+$Rt32<<#$Ii)", 12363tc_bf2ffc0f, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl { 12364let Inst{6-5} = 0b00; 12365let Inst{31-21} = 0b00111010001; 12366let hasNewValue = 1; 12367let opNewValue = 0; 12368let addrMode = BaseRegOffset; 12369let accessSize = ByteAccess; 12370let mayLoad = 1; 12371let BaseOpcode = "L4_loadrub_rr"; 12372let CextOpcode = "L2_loadrub"; 12373let InputType = "reg"; 12374let isPredicable = 1; 12375} 12376def L4_loadrub_ur : HInst< 12377(outs IntRegs:$Rd32), 12378(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 12379"$Rd32 = memub($Rt32<<#$Ii+#$II)", 12380tc_abfd9a6d, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl { 12381let Inst{12-12} = 0b1; 12382let Inst{31-21} = 0b10011101001; 12383let hasNewValue = 1; 12384let opNewValue = 0; 12385let addrMode = BaseLongOffset; 12386let accessSize = ByteAccess; 12387let mayLoad = 1; 12388let isExtended = 1; 12389let CextOpcode = "L2_loadrub"; 12390let InputType = "imm"; 12391let DecoderNamespace = "MustExtend"; 12392let isExtendable = 1; 12393let opExtendable = 3; 12394let isExtentSigned = 0; 12395let opExtentBits = 6; 12396let opExtentAlign = 0; 12397} 12398def L4_loadruh_ap : HInst< 12399(outs IntRegs:$Rd32, IntRegs:$Re32), 12400(ins u32_0Imm:$II), 12401"$Rd32 = memuh($Re32=#$II)", 12402tc_822c3c68, TypeLD>, Enc_323f2d { 12403let Inst{7-7} = 0b0; 12404let Inst{13-12} = 0b01; 12405let Inst{31-21} = 0b10011011011; 12406let hasNewValue = 1; 12407let opNewValue = 0; 12408let addrMode = AbsoluteSet; 12409let accessSize = HalfWordAccess; 12410let mayLoad = 1; 12411let isExtended = 1; 12412let DecoderNamespace = "MustExtend"; 12413let isExtendable = 1; 12414let opExtendable = 2; 12415let isExtentSigned = 0; 12416let opExtentBits = 6; 12417let opExtentAlign = 0; 12418} 12419def L4_loadruh_rr : HInst< 12420(outs IntRegs:$Rd32), 12421(ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12422"$Rd32 = memuh($Rs32+$Rt32<<#$Ii)", 12423tc_bf2ffc0f, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl { 12424let Inst{6-5} = 0b00; 12425let Inst{31-21} = 0b00111010011; 12426let hasNewValue = 1; 12427let opNewValue = 0; 12428let addrMode = BaseRegOffset; 12429let accessSize = HalfWordAccess; 12430let mayLoad = 1; 12431let BaseOpcode = "L4_loadruh_rr"; 12432let CextOpcode = "L2_loadruh"; 12433let InputType = "reg"; 12434let isPredicable = 1; 12435} 12436def L4_loadruh_ur : HInst< 12437(outs IntRegs:$Rd32), 12438(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II), 12439"$Rd32 = memuh($Rt32<<#$Ii+#$II)", 12440tc_abfd9a6d, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl { 12441let Inst{12-12} = 0b1; 12442let Inst{31-21} = 0b10011101011; 12443let hasNewValue = 1; 12444let opNewValue = 0; 12445let addrMode = BaseLongOffset; 12446let accessSize = HalfWordAccess; 12447let mayLoad = 1; 12448let isExtended = 1; 12449let CextOpcode = "L2_loadruh"; 12450let InputType = "imm"; 12451let DecoderNamespace = "MustExtend"; 12452let isExtendable = 1; 12453let opExtendable = 3; 12454let isExtentSigned = 0; 12455let opExtentBits = 6; 12456let opExtentAlign = 0; 12457} 12458def L4_loadw_phys : HInst< 12459(outs IntRegs:$Rd32), 12460(ins IntRegs:$Rs32, IntRegs:$Rt32), 12461"$Rd32 = memw_phys($Rs32,$Rt32)", 12462tc_ed3f8d2a, TypeLD>, Enc_5ab2be { 12463let Inst{7-5} = 0b000; 12464let Inst{13-13} = 0b1; 12465let Inst{31-21} = 0b10010010000; 12466let hasNewValue = 1; 12467let opNewValue = 0; 12468let accessSize = WordAccess; 12469let mayLoad = 1; 12470let isSolo = 1; 12471} 12472def L4_or_memopb_io : HInst< 12473(outs), 12474(ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32), 12475"memb($Rs32+#$Ii) |= $Rt32", 12476tc_9bcfb2ee, TypeV4LDST>, Enc_d44e31 { 12477let Inst{6-5} = 0b11; 12478let Inst{13-13} = 0b0; 12479let Inst{31-21} = 0b00111110000; 12480let addrMode = BaseImmOffset; 12481let accessSize = ByteAccess; 12482let mayLoad = 1; 12483let isRestrictNoSlot1Store = 1; 12484let mayStore = 1; 12485let isExtendable = 1; 12486let opExtendable = 1; 12487let isExtentSigned = 0; 12488let opExtentBits = 6; 12489let opExtentAlign = 0; 12490} 12491def L4_or_memopb_zomap : HInst< 12492(outs), 12493(ins IntRegs:$Rs32, IntRegs:$Rt32), 12494"memb($Rs32) |= $Rt32", 12495tc_9bcfb2ee, TypeMAPPING> { 12496let isPseudo = 1; 12497let isCodeGenOnly = 1; 12498} 12499def L4_or_memoph_io : HInst< 12500(outs), 12501(ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 12502"memh($Rs32+#$Ii) |= $Rt32", 12503tc_9bcfb2ee, TypeV4LDST>, Enc_163a3c { 12504let Inst{6-5} = 0b11; 12505let Inst{13-13} = 0b0; 12506let Inst{31-21} = 0b00111110001; 12507let addrMode = BaseImmOffset; 12508let accessSize = HalfWordAccess; 12509let mayLoad = 1; 12510let isRestrictNoSlot1Store = 1; 12511let mayStore = 1; 12512let isExtendable = 1; 12513let opExtendable = 1; 12514let isExtentSigned = 0; 12515let opExtentBits = 7; 12516let opExtentAlign = 1; 12517} 12518def L4_or_memoph_zomap : HInst< 12519(outs), 12520(ins IntRegs:$Rs32, IntRegs:$Rt32), 12521"memh($Rs32) |= $Rt32", 12522tc_9bcfb2ee, TypeMAPPING> { 12523let isPseudo = 1; 12524let isCodeGenOnly = 1; 12525} 12526def L4_or_memopw_io : HInst< 12527(outs), 12528(ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32), 12529"memw($Rs32+#$Ii) |= $Rt32", 12530tc_9bcfb2ee, TypeV4LDST>, Enc_226535 { 12531let Inst{6-5} = 0b11; 12532let Inst{13-13} = 0b0; 12533let Inst{31-21} = 0b00111110010; 12534let addrMode = BaseImmOffset; 12535let accessSize = WordAccess; 12536let mayLoad = 1; 12537let isRestrictNoSlot1Store = 1; 12538let mayStore = 1; 12539let isExtendable = 1; 12540let opExtendable = 1; 12541let isExtentSigned = 0; 12542let opExtentBits = 8; 12543let opExtentAlign = 2; 12544} 12545def L4_or_memopw_zomap : HInst< 12546(outs), 12547(ins IntRegs:$Rs32, IntRegs:$Rt32), 12548"memw($Rs32) |= $Rt32", 12549tc_9bcfb2ee, TypeMAPPING> { 12550let isPseudo = 1; 12551let isCodeGenOnly = 1; 12552} 12553def L4_ploadrbf_abs : HInst< 12554(outs IntRegs:$Rd32), 12555(ins PredRegs:$Pt4, u32_0Imm:$Ii), 12556"if (!$Pt4) $Rd32 = memb(#$Ii)", 12557tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel { 12558let Inst{7-5} = 0b100; 12559let Inst{13-11} = 0b101; 12560let Inst{31-21} = 0b10011111000; 12561let isPredicated = 1; 12562let isPredicatedFalse = 1; 12563let hasNewValue = 1; 12564let opNewValue = 0; 12565let addrMode = Absolute; 12566let accessSize = ByteAccess; 12567let mayLoad = 1; 12568let isExtended = 1; 12569let BaseOpcode = "L4_loadrb_abs"; 12570let CextOpcode = "L2_loadrb"; 12571let DecoderNamespace = "MustExtend"; 12572let isExtendable = 1; 12573let opExtendable = 2; 12574let isExtentSigned = 0; 12575let opExtentBits = 6; 12576let opExtentAlign = 0; 12577} 12578def L4_ploadrbf_rr : HInst< 12579(outs IntRegs:$Rd32), 12580(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12581"if (!$Pv4) $Rd32 = memb($Rs32+$Rt32<<#$Ii)", 12582tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel { 12583let Inst{31-21} = 0b00110001000; 12584let isPredicated = 1; 12585let isPredicatedFalse = 1; 12586let hasNewValue = 1; 12587let opNewValue = 0; 12588let addrMode = BaseRegOffset; 12589let accessSize = ByteAccess; 12590let mayLoad = 1; 12591let BaseOpcode = "L4_loadrb_rr"; 12592let CextOpcode = "L2_loadrb"; 12593let InputType = "reg"; 12594} 12595def L4_ploadrbfnew_abs : HInst< 12596(outs IntRegs:$Rd32), 12597(ins PredRegs:$Pt4, u32_0Imm:$Ii), 12598"if (!$Pt4.new) $Rd32 = memb(#$Ii)", 12599tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel { 12600let Inst{7-5} = 0b100; 12601let Inst{13-11} = 0b111; 12602let Inst{31-21} = 0b10011111000; 12603let isPredicated = 1; 12604let isPredicatedFalse = 1; 12605let hasNewValue = 1; 12606let opNewValue = 0; 12607let addrMode = Absolute; 12608let accessSize = ByteAccess; 12609let isPredicatedNew = 1; 12610let mayLoad = 1; 12611let isExtended = 1; 12612let BaseOpcode = "L4_loadrb_abs"; 12613let CextOpcode = "L2_loadrb"; 12614let DecoderNamespace = "MustExtend"; 12615let isExtendable = 1; 12616let opExtendable = 2; 12617let isExtentSigned = 0; 12618let opExtentBits = 6; 12619let opExtentAlign = 0; 12620} 12621def L4_ploadrbfnew_rr : HInst< 12622(outs IntRegs:$Rd32), 12623(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12624"if (!$Pv4.new) $Rd32 = memb($Rs32+$Rt32<<#$Ii)", 12625tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel { 12626let Inst{31-21} = 0b00110011000; 12627let isPredicated = 1; 12628let isPredicatedFalse = 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_ploadrbt_abs : HInst< 12640(outs IntRegs:$Rd32), 12641(ins PredRegs:$Pt4, u32_0Imm:$Ii), 12642"if ($Pt4) $Rd32 = memb(#$Ii)", 12643tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel { 12644let Inst{7-5} = 0b100; 12645let Inst{13-11} = 0b100; 12646let Inst{31-21} = 0b10011111000; 12647let isPredicated = 1; 12648let hasNewValue = 1; 12649let opNewValue = 0; 12650let addrMode = Absolute; 12651let accessSize = ByteAccess; 12652let mayLoad = 1; 12653let isExtended = 1; 12654let BaseOpcode = "L4_loadrb_abs"; 12655let CextOpcode = "L2_loadrb"; 12656let DecoderNamespace = "MustExtend"; 12657let isExtendable = 1; 12658let opExtendable = 2; 12659let isExtentSigned = 0; 12660let opExtentBits = 6; 12661let opExtentAlign = 0; 12662} 12663def L4_ploadrbt_rr : HInst< 12664(outs IntRegs:$Rd32), 12665(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12666"if ($Pv4) $Rd32 = memb($Rs32+$Rt32<<#$Ii)", 12667tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel { 12668let Inst{31-21} = 0b00110000000; 12669let isPredicated = 1; 12670let hasNewValue = 1; 12671let opNewValue = 0; 12672let addrMode = BaseRegOffset; 12673let accessSize = ByteAccess; 12674let mayLoad = 1; 12675let BaseOpcode = "L4_loadrb_rr"; 12676let CextOpcode = "L2_loadrb"; 12677let InputType = "reg"; 12678} 12679def L4_ploadrbtnew_abs : HInst< 12680(outs IntRegs:$Rd32), 12681(ins PredRegs:$Pt4, u32_0Imm:$Ii), 12682"if ($Pt4.new) $Rd32 = memb(#$Ii)", 12683tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel { 12684let Inst{7-5} = 0b100; 12685let Inst{13-11} = 0b110; 12686let Inst{31-21} = 0b10011111000; 12687let isPredicated = 1; 12688let hasNewValue = 1; 12689let opNewValue = 0; 12690let addrMode = Absolute; 12691let accessSize = ByteAccess; 12692let isPredicatedNew = 1; 12693let mayLoad = 1; 12694let isExtended = 1; 12695let BaseOpcode = "L4_loadrb_abs"; 12696let CextOpcode = "L2_loadrb"; 12697let DecoderNamespace = "MustExtend"; 12698let isExtendable = 1; 12699let opExtendable = 2; 12700let isExtentSigned = 0; 12701let opExtentBits = 6; 12702let opExtentAlign = 0; 12703} 12704def L4_ploadrbtnew_rr : HInst< 12705(outs IntRegs:$Rd32), 12706(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12707"if ($Pv4.new) $Rd32 = memb($Rs32+$Rt32<<#$Ii)", 12708tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel { 12709let Inst{31-21} = 0b00110010000; 12710let isPredicated = 1; 12711let hasNewValue = 1; 12712let opNewValue = 0; 12713let addrMode = BaseRegOffset; 12714let accessSize = ByteAccess; 12715let isPredicatedNew = 1; 12716let mayLoad = 1; 12717let BaseOpcode = "L4_loadrb_rr"; 12718let CextOpcode = "L2_loadrb"; 12719let InputType = "reg"; 12720} 12721def L4_ploadrdf_abs : HInst< 12722(outs DoubleRegs:$Rdd32), 12723(ins PredRegs:$Pt4, u32_0Imm:$Ii), 12724"if (!$Pt4) $Rdd32 = memd(#$Ii)", 12725tc_7c6d32e4, TypeLD>, Enc_2a7b91, AddrModeRel { 12726let Inst{7-5} = 0b100; 12727let Inst{13-11} = 0b101; 12728let Inst{31-21} = 0b10011111110; 12729let isPredicated = 1; 12730let isPredicatedFalse = 1; 12731let addrMode = Absolute; 12732let accessSize = DoubleWordAccess; 12733let mayLoad = 1; 12734let isExtended = 1; 12735let BaseOpcode = "L4_loadrd_abs"; 12736let CextOpcode = "L2_loadrd"; 12737let DecoderNamespace = "MustExtend"; 12738let isExtendable = 1; 12739let opExtendable = 2; 12740let isExtentSigned = 0; 12741let opExtentBits = 6; 12742let opExtentAlign = 0; 12743} 12744def L4_ploadrdf_rr : HInst< 12745(outs DoubleRegs:$Rdd32), 12746(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12747"if (!$Pv4) $Rdd32 = memd($Rs32+$Rt32<<#$Ii)", 12748tc_45791fb8, TypeLD>, Enc_98c0b8, AddrModeRel { 12749let Inst{31-21} = 0b00110001110; 12750let isPredicated = 1; 12751let isPredicatedFalse = 1; 12752let addrMode = BaseRegOffset; 12753let accessSize = DoubleWordAccess; 12754let mayLoad = 1; 12755let BaseOpcode = "L4_loadrd_rr"; 12756let CextOpcode = "L2_loadrd"; 12757let InputType = "reg"; 12758} 12759def L4_ploadrdfnew_abs : HInst< 12760(outs DoubleRegs:$Rdd32), 12761(ins PredRegs:$Pt4, u32_0Imm:$Ii), 12762"if (!$Pt4.new) $Rdd32 = memd(#$Ii)", 12763tc_822c3c68, TypeLD>, Enc_2a7b91, AddrModeRel { 12764let Inst{7-5} = 0b100; 12765let Inst{13-11} = 0b111; 12766let Inst{31-21} = 0b10011111110; 12767let isPredicated = 1; 12768let isPredicatedFalse = 1; 12769let addrMode = Absolute; 12770let accessSize = DoubleWordAccess; 12771let isPredicatedNew = 1; 12772let mayLoad = 1; 12773let isExtended = 1; 12774let BaseOpcode = "L4_loadrd_abs"; 12775let CextOpcode = "L2_loadrd"; 12776let DecoderNamespace = "MustExtend"; 12777let isExtendable = 1; 12778let opExtendable = 2; 12779let isExtentSigned = 0; 12780let opExtentBits = 6; 12781let opExtentAlign = 0; 12782} 12783def L4_ploadrdfnew_rr : HInst< 12784(outs DoubleRegs:$Rdd32), 12785(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12786"if (!$Pv4.new) $Rdd32 = memd($Rs32+$Rt32<<#$Ii)", 12787tc_b7c4062a, TypeLD>, Enc_98c0b8, AddrModeRel { 12788let Inst{31-21} = 0b00110011110; 12789let isPredicated = 1; 12790let isPredicatedFalse = 1; 12791let addrMode = BaseRegOffset; 12792let accessSize = DoubleWordAccess; 12793let isPredicatedNew = 1; 12794let mayLoad = 1; 12795let BaseOpcode = "L4_loadrd_rr"; 12796let CextOpcode = "L2_loadrd"; 12797let InputType = "reg"; 12798} 12799def L4_ploadrdt_abs : HInst< 12800(outs DoubleRegs:$Rdd32), 12801(ins PredRegs:$Pt4, u32_0Imm:$Ii), 12802"if ($Pt4) $Rdd32 = memd(#$Ii)", 12803tc_7c6d32e4, TypeLD>, Enc_2a7b91, AddrModeRel { 12804let Inst{7-5} = 0b100; 12805let Inst{13-11} = 0b100; 12806let Inst{31-21} = 0b10011111110; 12807let isPredicated = 1; 12808let addrMode = Absolute; 12809let accessSize = DoubleWordAccess; 12810let mayLoad = 1; 12811let isExtended = 1; 12812let BaseOpcode = "L4_loadrd_abs"; 12813let CextOpcode = "L2_loadrd"; 12814let DecoderNamespace = "MustExtend"; 12815let isExtendable = 1; 12816let opExtendable = 2; 12817let isExtentSigned = 0; 12818let opExtentBits = 6; 12819let opExtentAlign = 0; 12820} 12821def L4_ploadrdt_rr : HInst< 12822(outs DoubleRegs:$Rdd32), 12823(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12824"if ($Pv4) $Rdd32 = memd($Rs32+$Rt32<<#$Ii)", 12825tc_45791fb8, TypeLD>, Enc_98c0b8, AddrModeRel { 12826let Inst{31-21} = 0b00110000110; 12827let isPredicated = 1; 12828let addrMode = BaseRegOffset; 12829let accessSize = DoubleWordAccess; 12830let mayLoad = 1; 12831let BaseOpcode = "L4_loadrd_rr"; 12832let CextOpcode = "L2_loadrd"; 12833let InputType = "reg"; 12834} 12835def L4_ploadrdtnew_abs : HInst< 12836(outs DoubleRegs:$Rdd32), 12837(ins PredRegs:$Pt4, u32_0Imm:$Ii), 12838"if ($Pt4.new) $Rdd32 = memd(#$Ii)", 12839tc_822c3c68, TypeLD>, Enc_2a7b91, AddrModeRel { 12840let Inst{7-5} = 0b100; 12841let Inst{13-11} = 0b110; 12842let Inst{31-21} = 0b10011111110; 12843let isPredicated = 1; 12844let addrMode = Absolute; 12845let accessSize = DoubleWordAccess; 12846let isPredicatedNew = 1; 12847let mayLoad = 1; 12848let isExtended = 1; 12849let BaseOpcode = "L4_loadrd_abs"; 12850let CextOpcode = "L2_loadrd"; 12851let DecoderNamespace = "MustExtend"; 12852let isExtendable = 1; 12853let opExtendable = 2; 12854let isExtentSigned = 0; 12855let opExtentBits = 6; 12856let opExtentAlign = 0; 12857} 12858def L4_ploadrdtnew_rr : HInst< 12859(outs DoubleRegs:$Rdd32), 12860(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12861"if ($Pv4.new) $Rdd32 = memd($Rs32+$Rt32<<#$Ii)", 12862tc_b7c4062a, TypeLD>, Enc_98c0b8, AddrModeRel { 12863let Inst{31-21} = 0b00110010110; 12864let isPredicated = 1; 12865let addrMode = BaseRegOffset; 12866let accessSize = DoubleWordAccess; 12867let isPredicatedNew = 1; 12868let mayLoad = 1; 12869let BaseOpcode = "L4_loadrd_rr"; 12870let CextOpcode = "L2_loadrd"; 12871let InputType = "reg"; 12872} 12873def L4_ploadrhf_abs : HInst< 12874(outs IntRegs:$Rd32), 12875(ins PredRegs:$Pt4, u32_0Imm:$Ii), 12876"if (!$Pt4) $Rd32 = memh(#$Ii)", 12877tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel { 12878let Inst{7-5} = 0b100; 12879let Inst{13-11} = 0b101; 12880let Inst{31-21} = 0b10011111010; 12881let isPredicated = 1; 12882let isPredicatedFalse = 1; 12883let hasNewValue = 1; 12884let opNewValue = 0; 12885let addrMode = Absolute; 12886let accessSize = HalfWordAccess; 12887let mayLoad = 1; 12888let isExtended = 1; 12889let BaseOpcode = "L4_loadrh_abs"; 12890let CextOpcode = "L2_loadrh"; 12891let DecoderNamespace = "MustExtend"; 12892let isExtendable = 1; 12893let opExtendable = 2; 12894let isExtentSigned = 0; 12895let opExtentBits = 6; 12896let opExtentAlign = 0; 12897} 12898def L4_ploadrhf_rr : HInst< 12899(outs IntRegs:$Rd32), 12900(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12901"if (!$Pv4) $Rd32 = memh($Rs32+$Rt32<<#$Ii)", 12902tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel { 12903let Inst{31-21} = 0b00110001010; 12904let isPredicated = 1; 12905let isPredicatedFalse = 1; 12906let hasNewValue = 1; 12907let opNewValue = 0; 12908let addrMode = BaseRegOffset; 12909let accessSize = HalfWordAccess; 12910let mayLoad = 1; 12911let BaseOpcode = "L4_loadrh_rr"; 12912let CextOpcode = "L2_loadrh"; 12913let InputType = "reg"; 12914} 12915def L4_ploadrhfnew_abs : HInst< 12916(outs IntRegs:$Rd32), 12917(ins PredRegs:$Pt4, u32_0Imm:$Ii), 12918"if (!$Pt4.new) $Rd32 = memh(#$Ii)", 12919tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel { 12920let Inst{7-5} = 0b100; 12921let Inst{13-11} = 0b111; 12922let Inst{31-21} = 0b10011111010; 12923let isPredicated = 1; 12924let isPredicatedFalse = 1; 12925let hasNewValue = 1; 12926let opNewValue = 0; 12927let addrMode = Absolute; 12928let accessSize = HalfWordAccess; 12929let isPredicatedNew = 1; 12930let mayLoad = 1; 12931let isExtended = 1; 12932let BaseOpcode = "L4_loadrh_abs"; 12933let CextOpcode = "L2_loadrh"; 12934let DecoderNamespace = "MustExtend"; 12935let isExtendable = 1; 12936let opExtendable = 2; 12937let isExtentSigned = 0; 12938let opExtentBits = 6; 12939let opExtentAlign = 0; 12940} 12941def L4_ploadrhfnew_rr : HInst< 12942(outs IntRegs:$Rd32), 12943(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12944"if (!$Pv4.new) $Rd32 = memh($Rs32+$Rt32<<#$Ii)", 12945tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel { 12946let Inst{31-21} = 0b00110011010; 12947let isPredicated = 1; 12948let isPredicatedFalse = 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_ploadrht_abs : HInst< 12960(outs IntRegs:$Rd32), 12961(ins PredRegs:$Pt4, u32_0Imm:$Ii), 12962"if ($Pt4) $Rd32 = memh(#$Ii)", 12963tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel { 12964let Inst{7-5} = 0b100; 12965let Inst{13-11} = 0b100; 12966let Inst{31-21} = 0b10011111010; 12967let isPredicated = 1; 12968let hasNewValue = 1; 12969let opNewValue = 0; 12970let addrMode = Absolute; 12971let accessSize = HalfWordAccess; 12972let mayLoad = 1; 12973let isExtended = 1; 12974let BaseOpcode = "L4_loadrh_abs"; 12975let CextOpcode = "L2_loadrh"; 12976let DecoderNamespace = "MustExtend"; 12977let isExtendable = 1; 12978let opExtendable = 2; 12979let isExtentSigned = 0; 12980let opExtentBits = 6; 12981let opExtentAlign = 0; 12982} 12983def L4_ploadrht_rr : HInst< 12984(outs IntRegs:$Rd32), 12985(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 12986"if ($Pv4) $Rd32 = memh($Rs32+$Rt32<<#$Ii)", 12987tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel { 12988let Inst{31-21} = 0b00110000010; 12989let isPredicated = 1; 12990let hasNewValue = 1; 12991let opNewValue = 0; 12992let addrMode = BaseRegOffset; 12993let accessSize = HalfWordAccess; 12994let mayLoad = 1; 12995let BaseOpcode = "L4_loadrh_rr"; 12996let CextOpcode = "L2_loadrh"; 12997let InputType = "reg"; 12998} 12999def L4_ploadrhtnew_abs : HInst< 13000(outs IntRegs:$Rd32), 13001(ins PredRegs:$Pt4, u32_0Imm:$Ii), 13002"if ($Pt4.new) $Rd32 = memh(#$Ii)", 13003tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel { 13004let Inst{7-5} = 0b100; 13005let Inst{13-11} = 0b110; 13006let Inst{31-21} = 0b10011111010; 13007let isPredicated = 1; 13008let hasNewValue = 1; 13009let opNewValue = 0; 13010let addrMode = Absolute; 13011let accessSize = HalfWordAccess; 13012let isPredicatedNew = 1; 13013let mayLoad = 1; 13014let isExtended = 1; 13015let BaseOpcode = "L4_loadrh_abs"; 13016let CextOpcode = "L2_loadrh"; 13017let DecoderNamespace = "MustExtend"; 13018let isExtendable = 1; 13019let opExtendable = 2; 13020let isExtentSigned = 0; 13021let opExtentBits = 6; 13022let opExtentAlign = 0; 13023} 13024def L4_ploadrhtnew_rr : HInst< 13025(outs IntRegs:$Rd32), 13026(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 13027"if ($Pv4.new) $Rd32 = memh($Rs32+$Rt32<<#$Ii)", 13028tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel { 13029let Inst{31-21} = 0b00110010010; 13030let isPredicated = 1; 13031let hasNewValue = 1; 13032let opNewValue = 0; 13033let addrMode = BaseRegOffset; 13034let accessSize = HalfWordAccess; 13035let isPredicatedNew = 1; 13036let mayLoad = 1; 13037let BaseOpcode = "L4_loadrh_rr"; 13038let CextOpcode = "L2_loadrh"; 13039let InputType = "reg"; 13040} 13041def L4_ploadrif_abs : HInst< 13042(outs IntRegs:$Rd32), 13043(ins PredRegs:$Pt4, u32_0Imm:$Ii), 13044"if (!$Pt4) $Rd32 = memw(#$Ii)", 13045tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel { 13046let Inst{7-5} = 0b100; 13047let Inst{13-11} = 0b101; 13048let Inst{31-21} = 0b10011111100; 13049let isPredicated = 1; 13050let isPredicatedFalse = 1; 13051let hasNewValue = 1; 13052let opNewValue = 0; 13053let addrMode = Absolute; 13054let accessSize = WordAccess; 13055let mayLoad = 1; 13056let isExtended = 1; 13057let BaseOpcode = "L4_loadri_abs"; 13058let CextOpcode = "L2_loadri"; 13059let DecoderNamespace = "MustExtend"; 13060let isExtendable = 1; 13061let opExtendable = 2; 13062let isExtentSigned = 0; 13063let opExtentBits = 6; 13064let opExtentAlign = 0; 13065} 13066def L4_ploadrif_rr : HInst< 13067(outs IntRegs:$Rd32), 13068(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 13069"if (!$Pv4) $Rd32 = memw($Rs32+$Rt32<<#$Ii)", 13070tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel { 13071let Inst{31-21} = 0b00110001100; 13072let isPredicated = 1; 13073let isPredicatedFalse = 1; 13074let hasNewValue = 1; 13075let opNewValue = 0; 13076let addrMode = BaseRegOffset; 13077let accessSize = WordAccess; 13078let mayLoad = 1; 13079let BaseOpcode = "L4_loadri_rr"; 13080let CextOpcode = "L2_loadri"; 13081let InputType = "reg"; 13082} 13083def L4_ploadrifnew_abs : HInst< 13084(outs IntRegs:$Rd32), 13085(ins PredRegs:$Pt4, u32_0Imm:$Ii), 13086"if (!$Pt4.new) $Rd32 = memw(#$Ii)", 13087tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel { 13088let Inst{7-5} = 0b100; 13089let Inst{13-11} = 0b111; 13090let Inst{31-21} = 0b10011111100; 13091let isPredicated = 1; 13092let isPredicatedFalse = 1; 13093let hasNewValue = 1; 13094let opNewValue = 0; 13095let addrMode = Absolute; 13096let accessSize = WordAccess; 13097let isPredicatedNew = 1; 13098let mayLoad = 1; 13099let isExtended = 1; 13100let BaseOpcode = "L4_loadri_abs"; 13101let CextOpcode = "L2_loadri"; 13102let DecoderNamespace = "MustExtend"; 13103let isExtendable = 1; 13104let opExtendable = 2; 13105let isExtentSigned = 0; 13106let opExtentBits = 6; 13107let opExtentAlign = 0; 13108} 13109def L4_ploadrifnew_rr : HInst< 13110(outs IntRegs:$Rd32), 13111(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 13112"if (!$Pv4.new) $Rd32 = memw($Rs32+$Rt32<<#$Ii)", 13113tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel { 13114let Inst{31-21} = 0b00110011100; 13115let isPredicated = 1; 13116let isPredicatedFalse = 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_ploadrit_abs : HInst< 13128(outs IntRegs:$Rd32), 13129(ins PredRegs:$Pt4, u32_0Imm:$Ii), 13130"if ($Pt4) $Rd32 = memw(#$Ii)", 13131tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel { 13132let Inst{7-5} = 0b100; 13133let Inst{13-11} = 0b100; 13134let Inst{31-21} = 0b10011111100; 13135let isPredicated = 1; 13136let hasNewValue = 1; 13137let opNewValue = 0; 13138let addrMode = Absolute; 13139let accessSize = WordAccess; 13140let mayLoad = 1; 13141let isExtended = 1; 13142let BaseOpcode = "L4_loadri_abs"; 13143let CextOpcode = "L2_loadri"; 13144let DecoderNamespace = "MustExtend"; 13145let isExtendable = 1; 13146let opExtendable = 2; 13147let isExtentSigned = 0; 13148let opExtentBits = 6; 13149let opExtentAlign = 0; 13150} 13151def L4_ploadrit_rr : HInst< 13152(outs IntRegs:$Rd32), 13153(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 13154"if ($Pv4) $Rd32 = memw($Rs32+$Rt32<<#$Ii)", 13155tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel { 13156let Inst{31-21} = 0b00110000100; 13157let isPredicated = 1; 13158let hasNewValue = 1; 13159let opNewValue = 0; 13160let addrMode = BaseRegOffset; 13161let accessSize = WordAccess; 13162let mayLoad = 1; 13163let BaseOpcode = "L4_loadri_rr"; 13164let CextOpcode = "L2_loadri"; 13165let InputType = "reg"; 13166} 13167def L4_ploadritnew_abs : HInst< 13168(outs IntRegs:$Rd32), 13169(ins PredRegs:$Pt4, u32_0Imm:$Ii), 13170"if ($Pt4.new) $Rd32 = memw(#$Ii)", 13171tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel { 13172let Inst{7-5} = 0b100; 13173let Inst{13-11} = 0b110; 13174let Inst{31-21} = 0b10011111100; 13175let isPredicated = 1; 13176let hasNewValue = 1; 13177let opNewValue = 0; 13178let addrMode = Absolute; 13179let accessSize = WordAccess; 13180let isPredicatedNew = 1; 13181let mayLoad = 1; 13182let isExtended = 1; 13183let BaseOpcode = "L4_loadri_abs"; 13184let CextOpcode = "L2_loadri"; 13185let DecoderNamespace = "MustExtend"; 13186let isExtendable = 1; 13187let opExtendable = 2; 13188let isExtentSigned = 0; 13189let opExtentBits = 6; 13190let opExtentAlign = 0; 13191} 13192def L4_ploadritnew_rr : HInst< 13193(outs IntRegs:$Rd32), 13194(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 13195"if ($Pv4.new) $Rd32 = memw($Rs32+$Rt32<<#$Ii)", 13196tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel { 13197let Inst{31-21} = 0b00110010100; 13198let isPredicated = 1; 13199let hasNewValue = 1; 13200let opNewValue = 0; 13201let addrMode = BaseRegOffset; 13202let accessSize = WordAccess; 13203let isPredicatedNew = 1; 13204let mayLoad = 1; 13205let BaseOpcode = "L4_loadri_rr"; 13206let CextOpcode = "L2_loadri"; 13207let InputType = "reg"; 13208} 13209def L4_ploadrubf_abs : HInst< 13210(outs IntRegs:$Rd32), 13211(ins PredRegs:$Pt4, u32_0Imm:$Ii), 13212"if (!$Pt4) $Rd32 = memub(#$Ii)", 13213tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel { 13214let Inst{7-5} = 0b100; 13215let Inst{13-11} = 0b101; 13216let Inst{31-21} = 0b10011111001; 13217let isPredicated = 1; 13218let isPredicatedFalse = 1; 13219let hasNewValue = 1; 13220let opNewValue = 0; 13221let addrMode = Absolute; 13222let accessSize = ByteAccess; 13223let mayLoad = 1; 13224let isExtended = 1; 13225let BaseOpcode = "L4_loadrub_abs"; 13226let CextOpcode = "L2_loadrub"; 13227let DecoderNamespace = "MustExtend"; 13228let isExtendable = 1; 13229let opExtendable = 2; 13230let isExtentSigned = 0; 13231let opExtentBits = 6; 13232let opExtentAlign = 0; 13233} 13234def L4_ploadrubf_rr : HInst< 13235(outs IntRegs:$Rd32), 13236(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 13237"if (!$Pv4) $Rd32 = memub($Rs32+$Rt32<<#$Ii)", 13238tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel { 13239let Inst{31-21} = 0b00110001001; 13240let isPredicated = 1; 13241let isPredicatedFalse = 1; 13242let hasNewValue = 1; 13243let opNewValue = 0; 13244let addrMode = BaseRegOffset; 13245let accessSize = ByteAccess; 13246let mayLoad = 1; 13247let BaseOpcode = "L4_loadrub_rr"; 13248let CextOpcode = "L2_loadrub"; 13249let InputType = "reg"; 13250} 13251def L4_ploadrubfnew_abs : HInst< 13252(outs IntRegs:$Rd32), 13253(ins PredRegs:$Pt4, u32_0Imm:$Ii), 13254"if (!$Pt4.new) $Rd32 = memub(#$Ii)", 13255tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel { 13256let Inst{7-5} = 0b100; 13257let Inst{13-11} = 0b111; 13258let Inst{31-21} = 0b10011111001; 13259let isPredicated = 1; 13260let isPredicatedFalse = 1; 13261let hasNewValue = 1; 13262let opNewValue = 0; 13263let addrMode = Absolute; 13264let accessSize = ByteAccess; 13265let isPredicatedNew = 1; 13266let mayLoad = 1; 13267let isExtended = 1; 13268let BaseOpcode = "L4_loadrub_abs"; 13269let CextOpcode = "L2_loadrub"; 13270let DecoderNamespace = "MustExtend"; 13271let isExtendable = 1; 13272let opExtendable = 2; 13273let isExtentSigned = 0; 13274let opExtentBits = 6; 13275let opExtentAlign = 0; 13276} 13277def L4_ploadrubfnew_rr : HInst< 13278(outs IntRegs:$Rd32), 13279(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 13280"if (!$Pv4.new) $Rd32 = memub($Rs32+$Rt32<<#$Ii)", 13281tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel { 13282let Inst{31-21} = 0b00110011001; 13283let isPredicated = 1; 13284let isPredicatedFalse = 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_ploadrubt_abs : HInst< 13296(outs IntRegs:$Rd32), 13297(ins PredRegs:$Pt4, u32_0Imm:$Ii), 13298"if ($Pt4) $Rd32 = memub(#$Ii)", 13299tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel { 13300let Inst{7-5} = 0b100; 13301let Inst{13-11} = 0b100; 13302let Inst{31-21} = 0b10011111001; 13303let isPredicated = 1; 13304let hasNewValue = 1; 13305let opNewValue = 0; 13306let addrMode = Absolute; 13307let accessSize = ByteAccess; 13308let mayLoad = 1; 13309let isExtended = 1; 13310let BaseOpcode = "L4_loadrub_abs"; 13311let CextOpcode = "L2_loadrub"; 13312let DecoderNamespace = "MustExtend"; 13313let isExtendable = 1; 13314let opExtendable = 2; 13315let isExtentSigned = 0; 13316let opExtentBits = 6; 13317let opExtentAlign = 0; 13318} 13319def L4_ploadrubt_rr : HInst< 13320(outs IntRegs:$Rd32), 13321(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 13322"if ($Pv4) $Rd32 = memub($Rs32+$Rt32<<#$Ii)", 13323tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel { 13324let Inst{31-21} = 0b00110000001; 13325let isPredicated = 1; 13326let hasNewValue = 1; 13327let opNewValue = 0; 13328let addrMode = BaseRegOffset; 13329let accessSize = ByteAccess; 13330let mayLoad = 1; 13331let BaseOpcode = "L4_loadrub_rr"; 13332let CextOpcode = "L2_loadrub"; 13333let InputType = "reg"; 13334} 13335def L4_ploadrubtnew_abs : HInst< 13336(outs IntRegs:$Rd32), 13337(ins PredRegs:$Pt4, u32_0Imm:$Ii), 13338"if ($Pt4.new) $Rd32 = memub(#$Ii)", 13339tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel { 13340let Inst{7-5} = 0b100; 13341let Inst{13-11} = 0b110; 13342let Inst{31-21} = 0b10011111001; 13343let isPredicated = 1; 13344let hasNewValue = 1; 13345let opNewValue = 0; 13346let addrMode = Absolute; 13347let accessSize = ByteAccess; 13348let isPredicatedNew = 1; 13349let mayLoad = 1; 13350let isExtended = 1; 13351let BaseOpcode = "L4_loadrub_abs"; 13352let CextOpcode = "L2_loadrub"; 13353let DecoderNamespace = "MustExtend"; 13354let isExtendable = 1; 13355let opExtendable = 2; 13356let isExtentSigned = 0; 13357let opExtentBits = 6; 13358let opExtentAlign = 0; 13359} 13360def L4_ploadrubtnew_rr : HInst< 13361(outs IntRegs:$Rd32), 13362(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 13363"if ($Pv4.new) $Rd32 = memub($Rs32+$Rt32<<#$Ii)", 13364tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel { 13365let Inst{31-21} = 0b00110010001; 13366let isPredicated = 1; 13367let hasNewValue = 1; 13368let opNewValue = 0; 13369let addrMode = BaseRegOffset; 13370let accessSize = ByteAccess; 13371let isPredicatedNew = 1; 13372let mayLoad = 1; 13373let BaseOpcode = "L4_loadrub_rr"; 13374let CextOpcode = "L2_loadrub"; 13375let InputType = "reg"; 13376} 13377def L4_ploadruhf_abs : HInst< 13378(outs IntRegs:$Rd32), 13379(ins PredRegs:$Pt4, u32_0Imm:$Ii), 13380"if (!$Pt4) $Rd32 = memuh(#$Ii)", 13381tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel { 13382let Inst{7-5} = 0b100; 13383let Inst{13-11} = 0b101; 13384let Inst{31-21} = 0b10011111011; 13385let isPredicated = 1; 13386let isPredicatedFalse = 1; 13387let hasNewValue = 1; 13388let opNewValue = 0; 13389let addrMode = Absolute; 13390let accessSize = HalfWordAccess; 13391let mayLoad = 1; 13392let isExtended = 1; 13393let BaseOpcode = "L4_loadruh_abs"; 13394let CextOpcode = "L2_loadruh"; 13395let DecoderNamespace = "MustExtend"; 13396let isExtendable = 1; 13397let opExtendable = 2; 13398let isExtentSigned = 0; 13399let opExtentBits = 6; 13400let opExtentAlign = 0; 13401} 13402def L4_ploadruhf_rr : HInst< 13403(outs IntRegs:$Rd32), 13404(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 13405"if (!$Pv4) $Rd32 = memuh($Rs32+$Rt32<<#$Ii)", 13406tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel { 13407let Inst{31-21} = 0b00110001011; 13408let isPredicated = 1; 13409let isPredicatedFalse = 1; 13410let hasNewValue = 1; 13411let opNewValue = 0; 13412let addrMode = BaseRegOffset; 13413let accessSize = HalfWordAccess; 13414let mayLoad = 1; 13415let BaseOpcode = "L4_loadruh_rr"; 13416let CextOpcode = "L2_loadruh"; 13417let InputType = "reg"; 13418} 13419def L4_ploadruhfnew_abs : HInst< 13420(outs IntRegs:$Rd32), 13421(ins PredRegs:$Pt4, u32_0Imm:$Ii), 13422"if (!$Pt4.new) $Rd32 = memuh(#$Ii)", 13423tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel { 13424let Inst{7-5} = 0b100; 13425let Inst{13-11} = 0b111; 13426let Inst{31-21} = 0b10011111011; 13427let isPredicated = 1; 13428let isPredicatedFalse = 1; 13429let hasNewValue = 1; 13430let opNewValue = 0; 13431let addrMode = Absolute; 13432let accessSize = HalfWordAccess; 13433let isPredicatedNew = 1; 13434let mayLoad = 1; 13435let isExtended = 1; 13436let BaseOpcode = "L4_loadruh_abs"; 13437let CextOpcode = "L2_loadruh"; 13438let DecoderNamespace = "MustExtend"; 13439let isExtendable = 1; 13440let opExtendable = 2; 13441let isExtentSigned = 0; 13442let opExtentBits = 6; 13443let opExtentAlign = 0; 13444} 13445def L4_ploadruhfnew_rr : HInst< 13446(outs IntRegs:$Rd32), 13447(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 13448"if (!$Pv4.new) $Rd32 = memuh($Rs32+$Rt32<<#$Ii)", 13449tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel { 13450let Inst{31-21} = 0b00110011011; 13451let isPredicated = 1; 13452let isPredicatedFalse = 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_ploadruht_abs : HInst< 13464(outs IntRegs:$Rd32), 13465(ins PredRegs:$Pt4, u32_0Imm:$Ii), 13466"if ($Pt4) $Rd32 = memuh(#$Ii)", 13467tc_7c6d32e4, TypeLD>, Enc_2301d6, AddrModeRel { 13468let Inst{7-5} = 0b100; 13469let Inst{13-11} = 0b100; 13470let Inst{31-21} = 0b10011111011; 13471let isPredicated = 1; 13472let hasNewValue = 1; 13473let opNewValue = 0; 13474let addrMode = Absolute; 13475let accessSize = HalfWordAccess; 13476let mayLoad = 1; 13477let isExtended = 1; 13478let BaseOpcode = "L4_loadruh_abs"; 13479let CextOpcode = "L2_loadruh"; 13480let DecoderNamespace = "MustExtend"; 13481let isExtendable = 1; 13482let opExtendable = 2; 13483let isExtentSigned = 0; 13484let opExtentBits = 6; 13485let opExtentAlign = 0; 13486} 13487def L4_ploadruht_rr : HInst< 13488(outs IntRegs:$Rd32), 13489(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 13490"if ($Pv4) $Rd32 = memuh($Rs32+$Rt32<<#$Ii)", 13491tc_45791fb8, TypeLD>, Enc_2e1979, AddrModeRel { 13492let Inst{31-21} = 0b00110000011; 13493let isPredicated = 1; 13494let hasNewValue = 1; 13495let opNewValue = 0; 13496let addrMode = BaseRegOffset; 13497let accessSize = HalfWordAccess; 13498let mayLoad = 1; 13499let BaseOpcode = "L4_loadruh_rr"; 13500let CextOpcode = "L2_loadruh"; 13501let InputType = "reg"; 13502} 13503def L4_ploadruhtnew_abs : HInst< 13504(outs IntRegs:$Rd32), 13505(ins PredRegs:$Pt4, u32_0Imm:$Ii), 13506"if ($Pt4.new) $Rd32 = memuh(#$Ii)", 13507tc_822c3c68, TypeLD>, Enc_2301d6, AddrModeRel { 13508let Inst{7-5} = 0b100; 13509let Inst{13-11} = 0b110; 13510let Inst{31-21} = 0b10011111011; 13511let isPredicated = 1; 13512let hasNewValue = 1; 13513let opNewValue = 0; 13514let addrMode = Absolute; 13515let accessSize = HalfWordAccess; 13516let isPredicatedNew = 1; 13517let mayLoad = 1; 13518let isExtended = 1; 13519let BaseOpcode = "L4_loadruh_abs"; 13520let CextOpcode = "L2_loadruh"; 13521let DecoderNamespace = "MustExtend"; 13522let isExtendable = 1; 13523let opExtendable = 2; 13524let isExtentSigned = 0; 13525let opExtentBits = 6; 13526let opExtentAlign = 0; 13527} 13528def L4_ploadruhtnew_rr : HInst< 13529(outs IntRegs:$Rd32), 13530(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii), 13531"if ($Pv4.new) $Rd32 = memuh($Rs32+$Rt32<<#$Ii)", 13532tc_b7c4062a, TypeLD>, Enc_2e1979, AddrModeRel { 13533let Inst{31-21} = 0b00110010011; 13534let isPredicated = 1; 13535let hasNewValue = 1; 13536let opNewValue = 0; 13537let addrMode = BaseRegOffset; 13538let accessSize = HalfWordAccess; 13539let isPredicatedNew = 1; 13540let mayLoad = 1; 13541let BaseOpcode = "L4_loadruh_rr"; 13542let CextOpcode = "L2_loadruh"; 13543let InputType = "reg"; 13544} 13545def L4_return : HInst< 13546(outs DoubleRegs:$Rdd32), 13547(ins IntRegs:$Rs32), 13548"$Rdd32 = dealloc_return($Rs32):raw", 13549tc_40d64c94, TypeLD>, Enc_3a3d62, PredNewRel { 13550let Inst{13-5} = 0b000000000; 13551let Inst{31-21} = 0b10010110000; 13552let isTerminator = 1; 13553let isIndirectBranch = 1; 13554let accessSize = DoubleWordAccess; 13555let mayLoad = 1; 13556let cofMax1 = 1; 13557let isRestrictNoSlot1Store = 1; 13558let isReturn = 1; 13559let Uses = [FRAMEKEY]; 13560let Defs = [PC, R29]; 13561let BaseOpcode = "L4_return"; 13562let isBarrier = 1; 13563let isPredicable = 1; 13564let isTaken = 1; 13565} 13566def L4_return_f : HInst< 13567(outs DoubleRegs:$Rdd32), 13568(ins PredRegs:$Pv4, IntRegs:$Rs32), 13569"if (!$Pv4) $Rdd32 = dealloc_return($Rs32):raw", 13570tc_df5d53f9, TypeLD>, Enc_b7fad3, PredNewRel { 13571let Inst{7-5} = 0b000; 13572let Inst{13-10} = 0b1100; 13573let Inst{31-21} = 0b10010110000; 13574let isPredicated = 1; 13575let isPredicatedFalse = 1; 13576let isTerminator = 1; 13577let isIndirectBranch = 1; 13578let accessSize = DoubleWordAccess; 13579let mayLoad = 1; 13580let cofMax1 = 1; 13581let isRestrictNoSlot1Store = 1; 13582let isReturn = 1; 13583let Uses = [FRAMEKEY]; 13584let Defs = [PC, R29]; 13585let BaseOpcode = "L4_return"; 13586let isTaken = Inst{12}; 13587} 13588def L4_return_fnew_pnt : HInst< 13589(outs DoubleRegs:$Rdd32), 13590(ins PredRegs:$Pv4, IntRegs:$Rs32), 13591"if (!$Pv4.new) $Rdd32 = dealloc_return($Rs32):nt:raw", 13592tc_14ab4f41, TypeLD>, Enc_b7fad3, PredNewRel { 13593let Inst{7-5} = 0b000; 13594let Inst{13-10} = 0b1010; 13595let Inst{31-21} = 0b10010110000; 13596let isPredicated = 1; 13597let isPredicatedFalse = 1; 13598let isTerminator = 1; 13599let isIndirectBranch = 1; 13600let accessSize = DoubleWordAccess; 13601let isPredicatedNew = 1; 13602let mayLoad = 1; 13603let cofMax1 = 1; 13604let isRestrictNoSlot1Store = 1; 13605let isReturn = 1; 13606let Uses = [FRAMEKEY]; 13607let Defs = [PC, R29]; 13608let BaseOpcode = "L4_return"; 13609let isTaken = Inst{12}; 13610} 13611def L4_return_fnew_pt : HInst< 13612(outs DoubleRegs:$Rdd32), 13613(ins PredRegs:$Pv4, IntRegs:$Rs32), 13614"if (!$Pv4.new) $Rdd32 = dealloc_return($Rs32):t:raw", 13615tc_14ab4f41, TypeLD>, Enc_b7fad3, PredNewRel { 13616let Inst{7-5} = 0b000; 13617let Inst{13-10} = 0b1110; 13618let Inst{31-21} = 0b10010110000; 13619let isPredicated = 1; 13620let isPredicatedFalse = 1; 13621let isTerminator = 1; 13622let isIndirectBranch = 1; 13623let accessSize = DoubleWordAccess; 13624let isPredicatedNew = 1; 13625let mayLoad = 1; 13626let cofMax1 = 1; 13627let isRestrictNoSlot1Store = 1; 13628let isReturn = 1; 13629let Uses = [FRAMEKEY]; 13630let Defs = [PC, R29]; 13631let BaseOpcode = "L4_return"; 13632let isTaken = Inst{12}; 13633} 13634def L4_return_map_to_raw_f : HInst< 13635(outs), 13636(ins PredRegs:$Pv4), 13637"if (!$Pv4) dealloc_return", 13638tc_df5d53f9, TypeMAPPING>, Requires<[HasV65]> { 13639let isPseudo = 1; 13640let isCodeGenOnly = 1; 13641} 13642def L4_return_map_to_raw_fnew_pnt : HInst< 13643(outs), 13644(ins PredRegs:$Pv4), 13645"if (!$Pv4.new) dealloc_return:nt", 13646tc_14ab4f41, TypeMAPPING>, Requires<[HasV65]> { 13647let isPseudo = 1; 13648let isCodeGenOnly = 1; 13649} 13650def L4_return_map_to_raw_fnew_pt : HInst< 13651(outs), 13652(ins PredRegs:$Pv4), 13653"if (!$Pv4.new) dealloc_return:t", 13654tc_14ab4f41, TypeMAPPING>, Requires<[HasV65]> { 13655let isPseudo = 1; 13656let isCodeGenOnly = 1; 13657} 13658def L4_return_map_to_raw_t : HInst< 13659(outs), 13660(ins PredRegs:$Pv4), 13661"if ($Pv4) dealloc_return", 13662tc_f38f92e1, TypeMAPPING>, Requires<[HasV65]> { 13663let isPseudo = 1; 13664let isCodeGenOnly = 1; 13665} 13666def L4_return_map_to_raw_tnew_pnt : HInst< 13667(outs), 13668(ins PredRegs:$Pv4), 13669"if ($Pv4.new) dealloc_return:nt", 13670tc_1981450d, TypeMAPPING>, Requires<[HasV65]> { 13671let isPseudo = 1; 13672let isCodeGenOnly = 1; 13673} 13674def L4_return_map_to_raw_tnew_pt : HInst< 13675(outs), 13676(ins PredRegs:$Pv4), 13677"if ($Pv4.new) dealloc_return:t", 13678tc_1981450d, TypeMAPPING>, Requires<[HasV65]> { 13679let isPseudo = 1; 13680let isCodeGenOnly = 1; 13681} 13682def L4_return_t : HInst< 13683(outs DoubleRegs:$Rdd32), 13684(ins PredRegs:$Pv4, IntRegs:$Rs32), 13685"if ($Pv4) $Rdd32 = dealloc_return($Rs32):raw", 13686tc_df5d53f9, TypeLD>, Enc_b7fad3, PredNewRel { 13687let Inst{7-5} = 0b000; 13688let Inst{13-10} = 0b0100; 13689let Inst{31-21} = 0b10010110000; 13690let isPredicated = 1; 13691let isTerminator = 1; 13692let isIndirectBranch = 1; 13693let accessSize = DoubleWordAccess; 13694let mayLoad = 1; 13695let cofMax1 = 1; 13696let isRestrictNoSlot1Store = 1; 13697let isReturn = 1; 13698let Uses = [FRAMEKEY]; 13699let Defs = [PC, R29]; 13700let BaseOpcode = "L4_return"; 13701let isTaken = Inst{12}; 13702} 13703def L4_return_tnew_pnt : HInst< 13704(outs DoubleRegs:$Rdd32), 13705(ins PredRegs:$Pv4, IntRegs:$Rs32), 13706"if ($Pv4.new) $Rdd32 = dealloc_return($Rs32):nt:raw", 13707tc_14ab4f41, TypeLD>, Enc_b7fad3, PredNewRel { 13708let Inst{7-5} = 0b000; 13709let Inst{13-10} = 0b0010; 13710let Inst{31-21} = 0b10010110000; 13711let isPredicated = 1; 13712let isTerminator = 1; 13713let isIndirectBranch = 1; 13714let accessSize = DoubleWordAccess; 13715let isPredicatedNew = 1; 13716let mayLoad = 1; 13717let cofMax1 = 1; 13718let isRestrictNoSlot1Store = 1; 13719let isReturn = 1; 13720let Uses = [FRAMEKEY]; 13721let Defs = [PC, R29]; 13722let BaseOpcode = "L4_return"; 13723let isTaken = Inst{12}; 13724} 13725def L4_return_tnew_pt : HInst< 13726(outs DoubleRegs:$Rdd32), 13727(ins PredRegs:$Pv4, IntRegs:$Rs32), 13728"if ($Pv4.new) $Rdd32 = dealloc_return($Rs32):t:raw", 13729tc_14ab4f41, TypeLD>, Enc_b7fad3, PredNewRel { 13730let Inst{7-5} = 0b000; 13731let Inst{13-10} = 0b0110; 13732let Inst{31-21} = 0b10010110000; 13733let isPredicated = 1; 13734let isTerminator = 1; 13735let isIndirectBranch = 1; 13736let accessSize = DoubleWordAccess; 13737let isPredicatedNew = 1; 13738let mayLoad = 1; 13739let cofMax1 = 1; 13740let isRestrictNoSlot1Store = 1; 13741let isReturn = 1; 13742let Uses = [FRAMEKEY]; 13743let Defs = [PC, R29]; 13744let BaseOpcode = "L4_return"; 13745let isTaken = Inst{12}; 13746} 13747def L4_sub_memopb_io : HInst< 13748(outs), 13749(ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32), 13750"memb($Rs32+#$Ii) -= $Rt32", 13751tc_9bcfb2ee, TypeV4LDST>, Enc_d44e31 { 13752let Inst{6-5} = 0b01; 13753let Inst{13-13} = 0b0; 13754let Inst{31-21} = 0b00111110000; 13755let addrMode = BaseImmOffset; 13756let accessSize = ByteAccess; 13757let mayLoad = 1; 13758let isRestrictNoSlot1Store = 1; 13759let mayStore = 1; 13760let isExtendable = 1; 13761let opExtendable = 1; 13762let isExtentSigned = 0; 13763let opExtentBits = 6; 13764let opExtentAlign = 0; 13765} 13766def L4_sub_memopb_zomap : HInst< 13767(outs), 13768(ins IntRegs:$Rs32, IntRegs:$Rt32), 13769"memb($Rs32) -= $Rt32", 13770tc_9bcfb2ee, TypeMAPPING> { 13771let isPseudo = 1; 13772let isCodeGenOnly = 1; 13773} 13774def L4_sub_memoph_io : HInst< 13775(outs), 13776(ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 13777"memh($Rs32+#$Ii) -= $Rt32", 13778tc_9bcfb2ee, TypeV4LDST>, Enc_163a3c { 13779let Inst{6-5} = 0b01; 13780let Inst{13-13} = 0b0; 13781let Inst{31-21} = 0b00111110001; 13782let addrMode = BaseImmOffset; 13783let accessSize = HalfWordAccess; 13784let mayLoad = 1; 13785let isRestrictNoSlot1Store = 1; 13786let mayStore = 1; 13787let isExtendable = 1; 13788let opExtendable = 1; 13789let isExtentSigned = 0; 13790let opExtentBits = 7; 13791let opExtentAlign = 1; 13792} 13793def L4_sub_memoph_zomap : HInst< 13794(outs), 13795(ins IntRegs:$Rs32, IntRegs:$Rt32), 13796"memh($Rs32) -= $Rt32", 13797tc_9bcfb2ee, TypeMAPPING> { 13798let isPseudo = 1; 13799let isCodeGenOnly = 1; 13800} 13801def L4_sub_memopw_io : HInst< 13802(outs), 13803(ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32), 13804"memw($Rs32+#$Ii) -= $Rt32", 13805tc_9bcfb2ee, TypeV4LDST>, Enc_226535 { 13806let Inst{6-5} = 0b01; 13807let Inst{13-13} = 0b0; 13808let Inst{31-21} = 0b00111110010; 13809let addrMode = BaseImmOffset; 13810let accessSize = WordAccess; 13811let mayLoad = 1; 13812let isRestrictNoSlot1Store = 1; 13813let mayStore = 1; 13814let isExtendable = 1; 13815let opExtendable = 1; 13816let isExtentSigned = 0; 13817let opExtentBits = 8; 13818let opExtentAlign = 2; 13819} 13820def L4_sub_memopw_zomap : HInst< 13821(outs), 13822(ins IntRegs:$Rs32, IntRegs:$Rt32), 13823"memw($Rs32) -= $Rt32", 13824tc_9bcfb2ee, TypeMAPPING> { 13825let isPseudo = 1; 13826let isCodeGenOnly = 1; 13827} 13828def L6_deallocframe_map_to_raw : HInst< 13829(outs), 13830(ins), 13831"deallocframe", 13832tc_e9170fb7, TypeMAPPING>, Requires<[HasV65]> { 13833let isPseudo = 1; 13834let isCodeGenOnly = 1; 13835} 13836def L6_memcpy : HInst< 13837(outs), 13838(ins IntRegs:$Rs32, IntRegs:$Rt32, ModRegs:$Mu2), 13839"memcpy($Rs32,$Rt32,$Mu2)", 13840tc_5944960d, TypeLD>, Enc_a75aa6, Requires<[HasV66]> { 13841let Inst{7-0} = 0b01000000; 13842let Inst{31-21} = 0b10010010000; 13843let mayLoad = 1; 13844let isSolo = 1; 13845let mayStore = 1; 13846} 13847def L6_return_map_to_raw : HInst< 13848(outs), 13849(ins), 13850"dealloc_return", 13851tc_40d64c94, TypeMAPPING>, Requires<[HasV65]> { 13852let isPseudo = 1; 13853let isCodeGenOnly = 1; 13854} 13855def M2_acci : HInst< 13856(outs IntRegs:$Rx32), 13857(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 13858"$Rx32 += add($Rs32,$Rt32)", 13859tc_2c13e7f5, TypeM>, Enc_2ae154, ImmRegRel { 13860let Inst{7-5} = 0b001; 13861let Inst{13-13} = 0b0; 13862let Inst{31-21} = 0b11101111000; 13863let hasNewValue = 1; 13864let opNewValue = 0; 13865let prefersSlot3 = 1; 13866let CextOpcode = "M2_acci"; 13867let InputType = "reg"; 13868let Constraints = "$Rx32 = $Rx32in"; 13869} 13870def M2_accii : HInst< 13871(outs IntRegs:$Rx32), 13872(ins IntRegs:$Rx32in, IntRegs:$Rs32, s32_0Imm:$Ii), 13873"$Rx32 += add($Rs32,#$Ii)", 13874tc_2c13e7f5, TypeM>, Enc_c90aca, ImmRegRel { 13875let Inst{13-13} = 0b0; 13876let Inst{31-21} = 0b11100010000; 13877let hasNewValue = 1; 13878let opNewValue = 0; 13879let prefersSlot3 = 1; 13880let CextOpcode = "M2_acci"; 13881let InputType = "imm"; 13882let isExtendable = 1; 13883let opExtendable = 3; 13884let isExtentSigned = 1; 13885let opExtentBits = 8; 13886let opExtentAlign = 0; 13887let Constraints = "$Rx32 = $Rx32in"; 13888} 13889def M2_cmaci_s0 : HInst< 13890(outs DoubleRegs:$Rxx32), 13891(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 13892"$Rxx32 += cmpyi($Rs32,$Rt32)", 13893tc_7f8ae742, TypeM>, Enc_61f0b0 { 13894let Inst{7-5} = 0b001; 13895let Inst{13-13} = 0b0; 13896let Inst{31-21} = 0b11100111000; 13897let prefersSlot3 = 1; 13898let Constraints = "$Rxx32 = $Rxx32in"; 13899} 13900def M2_cmacr_s0 : HInst< 13901(outs DoubleRegs:$Rxx32), 13902(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 13903"$Rxx32 += cmpyr($Rs32,$Rt32)", 13904tc_7f8ae742, TypeM>, Enc_61f0b0 { 13905let Inst{7-5} = 0b010; 13906let Inst{13-13} = 0b0; 13907let Inst{31-21} = 0b11100111000; 13908let prefersSlot3 = 1; 13909let Constraints = "$Rxx32 = $Rxx32in"; 13910} 13911def M2_cmacs_s0 : HInst< 13912(outs DoubleRegs:$Rxx32), 13913(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 13914"$Rxx32 += cmpy($Rs32,$Rt32):sat", 13915tc_7f8ae742, TypeM>, Enc_61f0b0 { 13916let Inst{7-5} = 0b110; 13917let Inst{13-13} = 0b0; 13918let Inst{31-21} = 0b11100111000; 13919let prefersSlot3 = 1; 13920let Defs = [USR_OVF]; 13921let Constraints = "$Rxx32 = $Rxx32in"; 13922} 13923def M2_cmacs_s1 : HInst< 13924(outs DoubleRegs:$Rxx32), 13925(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 13926"$Rxx32 += cmpy($Rs32,$Rt32):<<1:sat", 13927tc_7f8ae742, TypeM>, Enc_61f0b0 { 13928let Inst{7-5} = 0b110; 13929let Inst{13-13} = 0b0; 13930let Inst{31-21} = 0b11100111100; 13931let prefersSlot3 = 1; 13932let Defs = [USR_OVF]; 13933let Constraints = "$Rxx32 = $Rxx32in"; 13934} 13935def M2_cmacsc_s0 : HInst< 13936(outs DoubleRegs:$Rxx32), 13937(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 13938"$Rxx32 += cmpy($Rs32,$Rt32*):sat", 13939tc_7f8ae742, TypeM>, Enc_61f0b0 { 13940let Inst{7-5} = 0b110; 13941let Inst{13-13} = 0b0; 13942let Inst{31-21} = 0b11100111010; 13943let prefersSlot3 = 1; 13944let Defs = [USR_OVF]; 13945let Constraints = "$Rxx32 = $Rxx32in"; 13946} 13947def M2_cmacsc_s1 : HInst< 13948(outs DoubleRegs:$Rxx32), 13949(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 13950"$Rxx32 += cmpy($Rs32,$Rt32*):<<1:sat", 13951tc_7f8ae742, TypeM>, Enc_61f0b0 { 13952let Inst{7-5} = 0b110; 13953let Inst{13-13} = 0b0; 13954let Inst{31-21} = 0b11100111110; 13955let prefersSlot3 = 1; 13956let Defs = [USR_OVF]; 13957let Constraints = "$Rxx32 = $Rxx32in"; 13958} 13959def M2_cmpyi_s0 : HInst< 13960(outs DoubleRegs:$Rdd32), 13961(ins IntRegs:$Rs32, IntRegs:$Rt32), 13962"$Rdd32 = cmpyi($Rs32,$Rt32)", 13963tc_c21d7447, TypeM>, Enc_be32a5 { 13964let Inst{7-5} = 0b001; 13965let Inst{13-13} = 0b0; 13966let Inst{31-21} = 0b11100101000; 13967let prefersSlot3 = 1; 13968} 13969def M2_cmpyr_s0 : HInst< 13970(outs DoubleRegs:$Rdd32), 13971(ins IntRegs:$Rs32, IntRegs:$Rt32), 13972"$Rdd32 = cmpyr($Rs32,$Rt32)", 13973tc_c21d7447, TypeM>, Enc_be32a5 { 13974let Inst{7-5} = 0b010; 13975let Inst{13-13} = 0b0; 13976let Inst{31-21} = 0b11100101000; 13977let prefersSlot3 = 1; 13978} 13979def M2_cmpyrs_s0 : HInst< 13980(outs IntRegs:$Rd32), 13981(ins IntRegs:$Rs32, IntRegs:$Rt32), 13982"$Rd32 = cmpy($Rs32,$Rt32):rnd:sat", 13983tc_c21d7447, TypeM>, Enc_5ab2be { 13984let Inst{7-5} = 0b110; 13985let Inst{13-13} = 0b0; 13986let Inst{31-21} = 0b11101101001; 13987let hasNewValue = 1; 13988let opNewValue = 0; 13989let prefersSlot3 = 1; 13990let Defs = [USR_OVF]; 13991} 13992def M2_cmpyrs_s1 : HInst< 13993(outs IntRegs:$Rd32), 13994(ins IntRegs:$Rs32, IntRegs:$Rt32), 13995"$Rd32 = cmpy($Rs32,$Rt32):<<1:rnd:sat", 13996tc_c21d7447, TypeM>, Enc_5ab2be { 13997let Inst{7-5} = 0b110; 13998let Inst{13-13} = 0b0; 13999let Inst{31-21} = 0b11101101101; 14000let hasNewValue = 1; 14001let opNewValue = 0; 14002let prefersSlot3 = 1; 14003let Defs = [USR_OVF]; 14004} 14005def M2_cmpyrsc_s0 : HInst< 14006(outs IntRegs:$Rd32), 14007(ins IntRegs:$Rs32, IntRegs:$Rt32), 14008"$Rd32 = cmpy($Rs32,$Rt32*):rnd:sat", 14009tc_c21d7447, TypeM>, Enc_5ab2be { 14010let Inst{7-5} = 0b110; 14011let Inst{13-13} = 0b0; 14012let Inst{31-21} = 0b11101101011; 14013let hasNewValue = 1; 14014let opNewValue = 0; 14015let prefersSlot3 = 1; 14016let Defs = [USR_OVF]; 14017} 14018def M2_cmpyrsc_s1 : HInst< 14019(outs IntRegs:$Rd32), 14020(ins IntRegs:$Rs32, IntRegs:$Rt32), 14021"$Rd32 = cmpy($Rs32,$Rt32*):<<1:rnd:sat", 14022tc_c21d7447, TypeM>, Enc_5ab2be { 14023let Inst{7-5} = 0b110; 14024let Inst{13-13} = 0b0; 14025let Inst{31-21} = 0b11101101111; 14026let hasNewValue = 1; 14027let opNewValue = 0; 14028let prefersSlot3 = 1; 14029let Defs = [USR_OVF]; 14030} 14031def M2_cmpys_s0 : HInst< 14032(outs DoubleRegs:$Rdd32), 14033(ins IntRegs:$Rs32, IntRegs:$Rt32), 14034"$Rdd32 = cmpy($Rs32,$Rt32):sat", 14035tc_c21d7447, TypeM>, Enc_be32a5 { 14036let Inst{7-5} = 0b110; 14037let Inst{13-13} = 0b0; 14038let Inst{31-21} = 0b11100101000; 14039let prefersSlot3 = 1; 14040let Defs = [USR_OVF]; 14041} 14042def M2_cmpys_s1 : HInst< 14043(outs DoubleRegs:$Rdd32), 14044(ins IntRegs:$Rs32, IntRegs:$Rt32), 14045"$Rdd32 = cmpy($Rs32,$Rt32):<<1:sat", 14046tc_c21d7447, TypeM>, Enc_be32a5 { 14047let Inst{7-5} = 0b110; 14048let Inst{13-13} = 0b0; 14049let Inst{31-21} = 0b11100101100; 14050let prefersSlot3 = 1; 14051let Defs = [USR_OVF]; 14052} 14053def M2_cmpysc_s0 : HInst< 14054(outs DoubleRegs:$Rdd32), 14055(ins IntRegs:$Rs32, IntRegs:$Rt32), 14056"$Rdd32 = cmpy($Rs32,$Rt32*):sat", 14057tc_c21d7447, TypeM>, Enc_be32a5 { 14058let Inst{7-5} = 0b110; 14059let Inst{13-13} = 0b0; 14060let Inst{31-21} = 0b11100101010; 14061let prefersSlot3 = 1; 14062let Defs = [USR_OVF]; 14063} 14064def M2_cmpysc_s1 : HInst< 14065(outs DoubleRegs:$Rdd32), 14066(ins IntRegs:$Rs32, IntRegs:$Rt32), 14067"$Rdd32 = cmpy($Rs32,$Rt32*):<<1:sat", 14068tc_c21d7447, TypeM>, Enc_be32a5 { 14069let Inst{7-5} = 0b110; 14070let Inst{13-13} = 0b0; 14071let Inst{31-21} = 0b11100101110; 14072let prefersSlot3 = 1; 14073let Defs = [USR_OVF]; 14074} 14075def M2_cnacs_s0 : HInst< 14076(outs DoubleRegs:$Rxx32), 14077(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14078"$Rxx32 -= cmpy($Rs32,$Rt32):sat", 14079tc_7f8ae742, TypeM>, Enc_61f0b0 { 14080let Inst{7-5} = 0b111; 14081let Inst{13-13} = 0b0; 14082let Inst{31-21} = 0b11100111000; 14083let prefersSlot3 = 1; 14084let Defs = [USR_OVF]; 14085let Constraints = "$Rxx32 = $Rxx32in"; 14086} 14087def M2_cnacs_s1 : HInst< 14088(outs DoubleRegs:$Rxx32), 14089(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14090"$Rxx32 -= cmpy($Rs32,$Rt32):<<1:sat", 14091tc_7f8ae742, TypeM>, Enc_61f0b0 { 14092let Inst{7-5} = 0b111; 14093let Inst{13-13} = 0b0; 14094let Inst{31-21} = 0b11100111100; 14095let prefersSlot3 = 1; 14096let Defs = [USR_OVF]; 14097let Constraints = "$Rxx32 = $Rxx32in"; 14098} 14099def M2_cnacsc_s0 : HInst< 14100(outs DoubleRegs:$Rxx32), 14101(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14102"$Rxx32 -= cmpy($Rs32,$Rt32*):sat", 14103tc_7f8ae742, TypeM>, Enc_61f0b0 { 14104let Inst{7-5} = 0b111; 14105let Inst{13-13} = 0b0; 14106let Inst{31-21} = 0b11100111010; 14107let prefersSlot3 = 1; 14108let Defs = [USR_OVF]; 14109let Constraints = "$Rxx32 = $Rxx32in"; 14110} 14111def M2_cnacsc_s1 : HInst< 14112(outs DoubleRegs:$Rxx32), 14113(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14114"$Rxx32 -= cmpy($Rs32,$Rt32*):<<1:sat", 14115tc_7f8ae742, TypeM>, Enc_61f0b0 { 14116let Inst{7-5} = 0b111; 14117let Inst{13-13} = 0b0; 14118let Inst{31-21} = 0b11100111110; 14119let prefersSlot3 = 1; 14120let Defs = [USR_OVF]; 14121let Constraints = "$Rxx32 = $Rxx32in"; 14122} 14123def M2_dpmpyss_acc_s0 : HInst< 14124(outs DoubleRegs:$Rxx32), 14125(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14126"$Rxx32 += mpy($Rs32,$Rt32)", 14127tc_7f8ae742, TypeM>, Enc_61f0b0 { 14128let Inst{7-5} = 0b000; 14129let Inst{13-13} = 0b0; 14130let Inst{31-21} = 0b11100111000; 14131let prefersSlot3 = 1; 14132let Constraints = "$Rxx32 = $Rxx32in"; 14133} 14134def M2_dpmpyss_nac_s0 : HInst< 14135(outs DoubleRegs:$Rxx32), 14136(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14137"$Rxx32 -= mpy($Rs32,$Rt32)", 14138tc_7f8ae742, TypeM>, Enc_61f0b0 { 14139let Inst{7-5} = 0b000; 14140let Inst{13-13} = 0b0; 14141let Inst{31-21} = 0b11100111001; 14142let prefersSlot3 = 1; 14143let Constraints = "$Rxx32 = $Rxx32in"; 14144} 14145def M2_dpmpyss_rnd_s0 : HInst< 14146(outs IntRegs:$Rd32), 14147(ins IntRegs:$Rs32, IntRegs:$Rt32), 14148"$Rd32 = mpy($Rs32,$Rt32):rnd", 14149tc_c21d7447, TypeM>, Enc_5ab2be { 14150let Inst{7-5} = 0b001; 14151let Inst{13-13} = 0b0; 14152let Inst{31-21} = 0b11101101001; 14153let hasNewValue = 1; 14154let opNewValue = 0; 14155let prefersSlot3 = 1; 14156} 14157def M2_dpmpyss_s0 : HInst< 14158(outs DoubleRegs:$Rdd32), 14159(ins IntRegs:$Rs32, IntRegs:$Rt32), 14160"$Rdd32 = mpy($Rs32,$Rt32)", 14161tc_c21d7447, TypeM>, Enc_be32a5 { 14162let Inst{7-5} = 0b000; 14163let Inst{13-13} = 0b0; 14164let Inst{31-21} = 0b11100101000; 14165let prefersSlot3 = 1; 14166} 14167def M2_dpmpyuu_acc_s0 : HInst< 14168(outs DoubleRegs:$Rxx32), 14169(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14170"$Rxx32 += mpyu($Rs32,$Rt32)", 14171tc_7f8ae742, TypeM>, Enc_61f0b0 { 14172let Inst{7-5} = 0b000; 14173let Inst{13-13} = 0b0; 14174let Inst{31-21} = 0b11100111010; 14175let prefersSlot3 = 1; 14176let Constraints = "$Rxx32 = $Rxx32in"; 14177} 14178def M2_dpmpyuu_nac_s0 : HInst< 14179(outs DoubleRegs:$Rxx32), 14180(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14181"$Rxx32 -= mpyu($Rs32,$Rt32)", 14182tc_7f8ae742, TypeM>, Enc_61f0b0 { 14183let Inst{7-5} = 0b000; 14184let Inst{13-13} = 0b0; 14185let Inst{31-21} = 0b11100111011; 14186let prefersSlot3 = 1; 14187let Constraints = "$Rxx32 = $Rxx32in"; 14188} 14189def M2_dpmpyuu_s0 : HInst< 14190(outs DoubleRegs:$Rdd32), 14191(ins IntRegs:$Rs32, IntRegs:$Rt32), 14192"$Rdd32 = mpyu($Rs32,$Rt32)", 14193tc_c21d7447, TypeM>, Enc_be32a5 { 14194let Inst{7-5} = 0b000; 14195let Inst{13-13} = 0b0; 14196let Inst{31-21} = 0b11100101010; 14197let prefersSlot3 = 1; 14198} 14199def M2_hmmpyh_rs1 : HInst< 14200(outs IntRegs:$Rd32), 14201(ins IntRegs:$Rs32, IntRegs:$Rt32), 14202"$Rd32 = mpy($Rs32,$Rt32.h):<<1:rnd:sat", 14203tc_c21d7447, TypeM>, Enc_5ab2be { 14204let Inst{7-5} = 0b100; 14205let Inst{13-13} = 0b0; 14206let Inst{31-21} = 0b11101101101; 14207let hasNewValue = 1; 14208let opNewValue = 0; 14209let prefersSlot3 = 1; 14210let Defs = [USR_OVF]; 14211} 14212def M2_hmmpyh_s1 : HInst< 14213(outs IntRegs:$Rd32), 14214(ins IntRegs:$Rs32, IntRegs:$Rt32), 14215"$Rd32 = mpy($Rs32,$Rt32.h):<<1:sat", 14216tc_c21d7447, TypeM>, Enc_5ab2be { 14217let Inst{7-5} = 0b000; 14218let Inst{13-13} = 0b0; 14219let Inst{31-21} = 0b11101101101; 14220let hasNewValue = 1; 14221let opNewValue = 0; 14222let prefersSlot3 = 1; 14223let Defs = [USR_OVF]; 14224} 14225def M2_hmmpyl_rs1 : HInst< 14226(outs IntRegs:$Rd32), 14227(ins IntRegs:$Rs32, IntRegs:$Rt32), 14228"$Rd32 = mpy($Rs32,$Rt32.l):<<1:rnd:sat", 14229tc_c21d7447, TypeM>, Enc_5ab2be { 14230let Inst{7-5} = 0b100; 14231let Inst{13-13} = 0b0; 14232let Inst{31-21} = 0b11101101111; 14233let hasNewValue = 1; 14234let opNewValue = 0; 14235let prefersSlot3 = 1; 14236let Defs = [USR_OVF]; 14237} 14238def M2_hmmpyl_s1 : HInst< 14239(outs IntRegs:$Rd32), 14240(ins IntRegs:$Rs32, IntRegs:$Rt32), 14241"$Rd32 = mpy($Rs32,$Rt32.l):<<1:sat", 14242tc_c21d7447, TypeM>, Enc_5ab2be { 14243let Inst{7-5} = 0b001; 14244let Inst{13-13} = 0b0; 14245let Inst{31-21} = 0b11101101101; 14246let hasNewValue = 1; 14247let opNewValue = 0; 14248let prefersSlot3 = 1; 14249let Defs = [USR_OVF]; 14250} 14251def M2_maci : HInst< 14252(outs IntRegs:$Rx32), 14253(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14254"$Rx32 += mpyi($Rs32,$Rt32)", 14255tc_7f8ae742, TypeM>, Enc_2ae154, ImmRegRel { 14256let Inst{7-5} = 0b000; 14257let Inst{13-13} = 0b0; 14258let Inst{31-21} = 0b11101111000; 14259let hasNewValue = 1; 14260let opNewValue = 0; 14261let prefersSlot3 = 1; 14262let CextOpcode = "M2_maci"; 14263let InputType = "reg"; 14264let Constraints = "$Rx32 = $Rx32in"; 14265} 14266def M2_macsin : HInst< 14267(outs IntRegs:$Rx32), 14268(ins IntRegs:$Rx32in, IntRegs:$Rs32, u32_0Imm:$Ii), 14269"$Rx32 -= mpyi($Rs32,#$Ii)", 14270tc_a154b476, TypeM>, Enc_c90aca { 14271let Inst{13-13} = 0b0; 14272let Inst{31-21} = 0b11100001100; 14273let hasNewValue = 1; 14274let opNewValue = 0; 14275let prefersSlot3 = 1; 14276let InputType = "imm"; 14277let isExtendable = 1; 14278let opExtendable = 3; 14279let isExtentSigned = 0; 14280let opExtentBits = 8; 14281let opExtentAlign = 0; 14282let Constraints = "$Rx32 = $Rx32in"; 14283} 14284def M2_macsip : HInst< 14285(outs IntRegs:$Rx32), 14286(ins IntRegs:$Rx32in, IntRegs:$Rs32, u32_0Imm:$Ii), 14287"$Rx32 += mpyi($Rs32,#$Ii)", 14288tc_a154b476, TypeM>, Enc_c90aca, ImmRegRel { 14289let Inst{13-13} = 0b0; 14290let Inst{31-21} = 0b11100001000; 14291let hasNewValue = 1; 14292let opNewValue = 0; 14293let prefersSlot3 = 1; 14294let CextOpcode = "M2_maci"; 14295let InputType = "imm"; 14296let isExtendable = 1; 14297let opExtendable = 3; 14298let isExtentSigned = 0; 14299let opExtentBits = 8; 14300let opExtentAlign = 0; 14301let Constraints = "$Rx32 = $Rx32in"; 14302} 14303def M2_mmachs_rs0 : HInst< 14304(outs DoubleRegs:$Rxx32), 14305(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14306"$Rxx32 += vmpywoh($Rss32,$Rtt32):rnd:sat", 14307tc_7f8ae742, TypeM>, Enc_88c16c { 14308let Inst{7-5} = 0b111; 14309let Inst{13-13} = 0b0; 14310let Inst{31-21} = 0b11101010001; 14311let prefersSlot3 = 1; 14312let Defs = [USR_OVF]; 14313let Constraints = "$Rxx32 = $Rxx32in"; 14314} 14315def M2_mmachs_rs1 : HInst< 14316(outs DoubleRegs:$Rxx32), 14317(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14318"$Rxx32 += vmpywoh($Rss32,$Rtt32):<<1:rnd:sat", 14319tc_7f8ae742, TypeM>, Enc_88c16c { 14320let Inst{7-5} = 0b111; 14321let Inst{13-13} = 0b0; 14322let Inst{31-21} = 0b11101010101; 14323let prefersSlot3 = 1; 14324let Defs = [USR_OVF]; 14325let Constraints = "$Rxx32 = $Rxx32in"; 14326} 14327def M2_mmachs_s0 : HInst< 14328(outs DoubleRegs:$Rxx32), 14329(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14330"$Rxx32 += vmpywoh($Rss32,$Rtt32):sat", 14331tc_7f8ae742, TypeM>, Enc_88c16c { 14332let Inst{7-5} = 0b111; 14333let Inst{13-13} = 0b0; 14334let Inst{31-21} = 0b11101010000; 14335let prefersSlot3 = 1; 14336let Defs = [USR_OVF]; 14337let Constraints = "$Rxx32 = $Rxx32in"; 14338} 14339def M2_mmachs_s1 : HInst< 14340(outs DoubleRegs:$Rxx32), 14341(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14342"$Rxx32 += vmpywoh($Rss32,$Rtt32):<<1:sat", 14343tc_7f8ae742, TypeM>, Enc_88c16c { 14344let Inst{7-5} = 0b111; 14345let Inst{13-13} = 0b0; 14346let Inst{31-21} = 0b11101010100; 14347let prefersSlot3 = 1; 14348let Defs = [USR_OVF]; 14349let Constraints = "$Rxx32 = $Rxx32in"; 14350} 14351def M2_mmacls_rs0 : HInst< 14352(outs DoubleRegs:$Rxx32), 14353(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14354"$Rxx32 += vmpyweh($Rss32,$Rtt32):rnd:sat", 14355tc_7f8ae742, TypeM>, Enc_88c16c { 14356let Inst{7-5} = 0b101; 14357let Inst{13-13} = 0b0; 14358let Inst{31-21} = 0b11101010001; 14359let prefersSlot3 = 1; 14360let Defs = [USR_OVF]; 14361let Constraints = "$Rxx32 = $Rxx32in"; 14362} 14363def M2_mmacls_rs1 : HInst< 14364(outs DoubleRegs:$Rxx32), 14365(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14366"$Rxx32 += vmpyweh($Rss32,$Rtt32):<<1:rnd:sat", 14367tc_7f8ae742, TypeM>, Enc_88c16c { 14368let Inst{7-5} = 0b101; 14369let Inst{13-13} = 0b0; 14370let Inst{31-21} = 0b11101010101; 14371let prefersSlot3 = 1; 14372let Defs = [USR_OVF]; 14373let Constraints = "$Rxx32 = $Rxx32in"; 14374} 14375def M2_mmacls_s0 : HInst< 14376(outs DoubleRegs:$Rxx32), 14377(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14378"$Rxx32 += vmpyweh($Rss32,$Rtt32):sat", 14379tc_7f8ae742, TypeM>, Enc_88c16c { 14380let Inst{7-5} = 0b101; 14381let Inst{13-13} = 0b0; 14382let Inst{31-21} = 0b11101010000; 14383let prefersSlot3 = 1; 14384let Defs = [USR_OVF]; 14385let Constraints = "$Rxx32 = $Rxx32in"; 14386} 14387def M2_mmacls_s1 : HInst< 14388(outs DoubleRegs:$Rxx32), 14389(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14390"$Rxx32 += vmpyweh($Rss32,$Rtt32):<<1:sat", 14391tc_7f8ae742, TypeM>, Enc_88c16c { 14392let Inst{7-5} = 0b101; 14393let Inst{13-13} = 0b0; 14394let Inst{31-21} = 0b11101010100; 14395let prefersSlot3 = 1; 14396let Defs = [USR_OVF]; 14397let Constraints = "$Rxx32 = $Rxx32in"; 14398} 14399def M2_mmacuhs_rs0 : HInst< 14400(outs DoubleRegs:$Rxx32), 14401(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14402"$Rxx32 += vmpywouh($Rss32,$Rtt32):rnd:sat", 14403tc_7f8ae742, TypeM>, Enc_88c16c { 14404let Inst{7-5} = 0b111; 14405let Inst{13-13} = 0b0; 14406let Inst{31-21} = 0b11101010011; 14407let prefersSlot3 = 1; 14408let Defs = [USR_OVF]; 14409let Constraints = "$Rxx32 = $Rxx32in"; 14410} 14411def M2_mmacuhs_rs1 : HInst< 14412(outs DoubleRegs:$Rxx32), 14413(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14414"$Rxx32 += vmpywouh($Rss32,$Rtt32):<<1:rnd:sat", 14415tc_7f8ae742, TypeM>, Enc_88c16c { 14416let Inst{7-5} = 0b111; 14417let Inst{13-13} = 0b0; 14418let Inst{31-21} = 0b11101010111; 14419let prefersSlot3 = 1; 14420let Defs = [USR_OVF]; 14421let Constraints = "$Rxx32 = $Rxx32in"; 14422} 14423def M2_mmacuhs_s0 : HInst< 14424(outs DoubleRegs:$Rxx32), 14425(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14426"$Rxx32 += vmpywouh($Rss32,$Rtt32):sat", 14427tc_7f8ae742, TypeM>, Enc_88c16c { 14428let Inst{7-5} = 0b111; 14429let Inst{13-13} = 0b0; 14430let Inst{31-21} = 0b11101010010; 14431let prefersSlot3 = 1; 14432let Defs = [USR_OVF]; 14433let Constraints = "$Rxx32 = $Rxx32in"; 14434} 14435def M2_mmacuhs_s1 : HInst< 14436(outs DoubleRegs:$Rxx32), 14437(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14438"$Rxx32 += vmpywouh($Rss32,$Rtt32):<<1:sat", 14439tc_7f8ae742, TypeM>, Enc_88c16c { 14440let Inst{7-5} = 0b111; 14441let Inst{13-13} = 0b0; 14442let Inst{31-21} = 0b11101010110; 14443let prefersSlot3 = 1; 14444let Defs = [USR_OVF]; 14445let Constraints = "$Rxx32 = $Rxx32in"; 14446} 14447def M2_mmaculs_rs0 : HInst< 14448(outs DoubleRegs:$Rxx32), 14449(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14450"$Rxx32 += vmpyweuh($Rss32,$Rtt32):rnd:sat", 14451tc_7f8ae742, TypeM>, Enc_88c16c { 14452let Inst{7-5} = 0b101; 14453let Inst{13-13} = 0b0; 14454let Inst{31-21} = 0b11101010011; 14455let prefersSlot3 = 1; 14456let Defs = [USR_OVF]; 14457let Constraints = "$Rxx32 = $Rxx32in"; 14458} 14459def M2_mmaculs_rs1 : HInst< 14460(outs DoubleRegs:$Rxx32), 14461(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14462"$Rxx32 += vmpyweuh($Rss32,$Rtt32):<<1:rnd:sat", 14463tc_7f8ae742, TypeM>, Enc_88c16c { 14464let Inst{7-5} = 0b101; 14465let Inst{13-13} = 0b0; 14466let Inst{31-21} = 0b11101010111; 14467let prefersSlot3 = 1; 14468let Defs = [USR_OVF]; 14469let Constraints = "$Rxx32 = $Rxx32in"; 14470} 14471def M2_mmaculs_s0 : HInst< 14472(outs DoubleRegs:$Rxx32), 14473(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14474"$Rxx32 += vmpyweuh($Rss32,$Rtt32):sat", 14475tc_7f8ae742, TypeM>, Enc_88c16c { 14476let Inst{7-5} = 0b101; 14477let Inst{13-13} = 0b0; 14478let Inst{31-21} = 0b11101010010; 14479let prefersSlot3 = 1; 14480let Defs = [USR_OVF]; 14481let Constraints = "$Rxx32 = $Rxx32in"; 14482} 14483def M2_mmaculs_s1 : HInst< 14484(outs DoubleRegs:$Rxx32), 14485(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14486"$Rxx32 += vmpyweuh($Rss32,$Rtt32):<<1:sat", 14487tc_7f8ae742, TypeM>, Enc_88c16c { 14488let Inst{7-5} = 0b101; 14489let Inst{13-13} = 0b0; 14490let Inst{31-21} = 0b11101010110; 14491let prefersSlot3 = 1; 14492let Defs = [USR_OVF]; 14493let Constraints = "$Rxx32 = $Rxx32in"; 14494} 14495def M2_mmpyh_rs0 : HInst< 14496(outs DoubleRegs:$Rdd32), 14497(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14498"$Rdd32 = vmpywoh($Rss32,$Rtt32):rnd:sat", 14499tc_c21d7447, TypeM>, Enc_a56825 { 14500let Inst{7-5} = 0b111; 14501let Inst{13-13} = 0b0; 14502let Inst{31-21} = 0b11101000001; 14503let prefersSlot3 = 1; 14504let Defs = [USR_OVF]; 14505} 14506def M2_mmpyh_rs1 : HInst< 14507(outs DoubleRegs:$Rdd32), 14508(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14509"$Rdd32 = vmpywoh($Rss32,$Rtt32):<<1:rnd:sat", 14510tc_c21d7447, TypeM>, Enc_a56825 { 14511let Inst{7-5} = 0b111; 14512let Inst{13-13} = 0b0; 14513let Inst{31-21} = 0b11101000101; 14514let prefersSlot3 = 1; 14515let Defs = [USR_OVF]; 14516} 14517def M2_mmpyh_s0 : HInst< 14518(outs DoubleRegs:$Rdd32), 14519(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14520"$Rdd32 = vmpywoh($Rss32,$Rtt32):sat", 14521tc_c21d7447, TypeM>, Enc_a56825 { 14522let Inst{7-5} = 0b111; 14523let Inst{13-13} = 0b0; 14524let Inst{31-21} = 0b11101000000; 14525let prefersSlot3 = 1; 14526let Defs = [USR_OVF]; 14527} 14528def M2_mmpyh_s1 : HInst< 14529(outs DoubleRegs:$Rdd32), 14530(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14531"$Rdd32 = vmpywoh($Rss32,$Rtt32):<<1:sat", 14532tc_c21d7447, TypeM>, Enc_a56825 { 14533let Inst{7-5} = 0b111; 14534let Inst{13-13} = 0b0; 14535let Inst{31-21} = 0b11101000100; 14536let prefersSlot3 = 1; 14537let Defs = [USR_OVF]; 14538} 14539def M2_mmpyl_rs0 : HInst< 14540(outs DoubleRegs:$Rdd32), 14541(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14542"$Rdd32 = vmpyweh($Rss32,$Rtt32):rnd:sat", 14543tc_c21d7447, TypeM>, Enc_a56825 { 14544let Inst{7-5} = 0b101; 14545let Inst{13-13} = 0b0; 14546let Inst{31-21} = 0b11101000001; 14547let prefersSlot3 = 1; 14548let Defs = [USR_OVF]; 14549} 14550def M2_mmpyl_rs1 : HInst< 14551(outs DoubleRegs:$Rdd32), 14552(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14553"$Rdd32 = vmpyweh($Rss32,$Rtt32):<<1:rnd:sat", 14554tc_c21d7447, TypeM>, Enc_a56825 { 14555let Inst{7-5} = 0b101; 14556let Inst{13-13} = 0b0; 14557let Inst{31-21} = 0b11101000101; 14558let prefersSlot3 = 1; 14559let Defs = [USR_OVF]; 14560} 14561def M2_mmpyl_s0 : HInst< 14562(outs DoubleRegs:$Rdd32), 14563(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14564"$Rdd32 = vmpyweh($Rss32,$Rtt32):sat", 14565tc_c21d7447, TypeM>, Enc_a56825 { 14566let Inst{7-5} = 0b101; 14567let Inst{13-13} = 0b0; 14568let Inst{31-21} = 0b11101000000; 14569let prefersSlot3 = 1; 14570let Defs = [USR_OVF]; 14571} 14572def M2_mmpyl_s1 : HInst< 14573(outs DoubleRegs:$Rdd32), 14574(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14575"$Rdd32 = vmpyweh($Rss32,$Rtt32):<<1:sat", 14576tc_c21d7447, TypeM>, Enc_a56825 { 14577let Inst{7-5} = 0b101; 14578let Inst{13-13} = 0b0; 14579let Inst{31-21} = 0b11101000100; 14580let prefersSlot3 = 1; 14581let Defs = [USR_OVF]; 14582} 14583def M2_mmpyuh_rs0 : HInst< 14584(outs DoubleRegs:$Rdd32), 14585(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14586"$Rdd32 = vmpywouh($Rss32,$Rtt32):rnd:sat", 14587tc_c21d7447, TypeM>, Enc_a56825 { 14588let Inst{7-5} = 0b111; 14589let Inst{13-13} = 0b0; 14590let Inst{31-21} = 0b11101000011; 14591let prefersSlot3 = 1; 14592let Defs = [USR_OVF]; 14593} 14594def M2_mmpyuh_rs1 : HInst< 14595(outs DoubleRegs:$Rdd32), 14596(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14597"$Rdd32 = vmpywouh($Rss32,$Rtt32):<<1:rnd:sat", 14598tc_c21d7447, TypeM>, Enc_a56825 { 14599let Inst{7-5} = 0b111; 14600let Inst{13-13} = 0b0; 14601let Inst{31-21} = 0b11101000111; 14602let prefersSlot3 = 1; 14603let Defs = [USR_OVF]; 14604} 14605def M2_mmpyuh_s0 : HInst< 14606(outs DoubleRegs:$Rdd32), 14607(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14608"$Rdd32 = vmpywouh($Rss32,$Rtt32):sat", 14609tc_c21d7447, TypeM>, Enc_a56825 { 14610let Inst{7-5} = 0b111; 14611let Inst{13-13} = 0b0; 14612let Inst{31-21} = 0b11101000010; 14613let prefersSlot3 = 1; 14614let Defs = [USR_OVF]; 14615} 14616def M2_mmpyuh_s1 : HInst< 14617(outs DoubleRegs:$Rdd32), 14618(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14619"$Rdd32 = vmpywouh($Rss32,$Rtt32):<<1:sat", 14620tc_c21d7447, TypeM>, Enc_a56825 { 14621let Inst{7-5} = 0b111; 14622let Inst{13-13} = 0b0; 14623let Inst{31-21} = 0b11101000110; 14624let prefersSlot3 = 1; 14625let Defs = [USR_OVF]; 14626} 14627def M2_mmpyul_rs0 : HInst< 14628(outs DoubleRegs:$Rdd32), 14629(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14630"$Rdd32 = vmpyweuh($Rss32,$Rtt32):rnd:sat", 14631tc_c21d7447, TypeM>, Enc_a56825 { 14632let Inst{7-5} = 0b101; 14633let Inst{13-13} = 0b0; 14634let Inst{31-21} = 0b11101000011; 14635let prefersSlot3 = 1; 14636let Defs = [USR_OVF]; 14637} 14638def M2_mmpyul_rs1 : HInst< 14639(outs DoubleRegs:$Rdd32), 14640(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14641"$Rdd32 = vmpyweuh($Rss32,$Rtt32):<<1:rnd:sat", 14642tc_c21d7447, TypeM>, Enc_a56825 { 14643let Inst{7-5} = 0b101; 14644let Inst{13-13} = 0b0; 14645let Inst{31-21} = 0b11101000111; 14646let prefersSlot3 = 1; 14647let Defs = [USR_OVF]; 14648} 14649def M2_mmpyul_s0 : HInst< 14650(outs DoubleRegs:$Rdd32), 14651(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14652"$Rdd32 = vmpyweuh($Rss32,$Rtt32):sat", 14653tc_c21d7447, TypeM>, Enc_a56825 { 14654let Inst{7-5} = 0b101; 14655let Inst{13-13} = 0b0; 14656let Inst{31-21} = 0b11101000010; 14657let prefersSlot3 = 1; 14658let Defs = [USR_OVF]; 14659} 14660def M2_mmpyul_s1 : HInst< 14661(outs DoubleRegs:$Rdd32), 14662(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 14663"$Rdd32 = vmpyweuh($Rss32,$Rtt32):<<1:sat", 14664tc_c21d7447, TypeM>, Enc_a56825 { 14665let Inst{7-5} = 0b101; 14666let Inst{13-13} = 0b0; 14667let Inst{31-21} = 0b11101000110; 14668let prefersSlot3 = 1; 14669let Defs = [USR_OVF]; 14670} 14671def M2_mnaci : HInst< 14672(outs IntRegs:$Rx32), 14673(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14674"$Rx32 -= mpyi($Rs32,$Rt32)", 14675tc_01e1be3b, TypeM>, Enc_2ae154, Requires<[HasV66]> { 14676let Inst{7-5} = 0b000; 14677let Inst{13-13} = 0b0; 14678let Inst{31-21} = 0b11101111100; 14679let hasNewValue = 1; 14680let opNewValue = 0; 14681let prefersSlot3 = 1; 14682let Constraints = "$Rx32 = $Rx32in"; 14683} 14684def M2_mpy_acc_hh_s0 : HInst< 14685(outs IntRegs:$Rx32), 14686(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14687"$Rx32 += mpy($Rs32.h,$Rt32.h)", 14688tc_7f8ae742, TypeM>, Enc_2ae154 { 14689let Inst{7-5} = 0b011; 14690let Inst{13-13} = 0b0; 14691let Inst{31-21} = 0b11101110000; 14692let hasNewValue = 1; 14693let opNewValue = 0; 14694let prefersSlot3 = 1; 14695let Constraints = "$Rx32 = $Rx32in"; 14696} 14697def M2_mpy_acc_hh_s1 : HInst< 14698(outs IntRegs:$Rx32), 14699(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14700"$Rx32 += mpy($Rs32.h,$Rt32.h):<<1", 14701tc_7f8ae742, TypeM>, Enc_2ae154 { 14702let Inst{7-5} = 0b011; 14703let Inst{13-13} = 0b0; 14704let Inst{31-21} = 0b11101110100; 14705let hasNewValue = 1; 14706let opNewValue = 0; 14707let prefersSlot3 = 1; 14708let Constraints = "$Rx32 = $Rx32in"; 14709} 14710def M2_mpy_acc_hl_s0 : HInst< 14711(outs IntRegs:$Rx32), 14712(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14713"$Rx32 += mpy($Rs32.h,$Rt32.l)", 14714tc_7f8ae742, TypeM>, Enc_2ae154 { 14715let Inst{7-5} = 0b010; 14716let Inst{13-13} = 0b0; 14717let Inst{31-21} = 0b11101110000; 14718let hasNewValue = 1; 14719let opNewValue = 0; 14720let prefersSlot3 = 1; 14721let Constraints = "$Rx32 = $Rx32in"; 14722} 14723def M2_mpy_acc_hl_s1 : HInst< 14724(outs IntRegs:$Rx32), 14725(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14726"$Rx32 += mpy($Rs32.h,$Rt32.l):<<1", 14727tc_7f8ae742, TypeM>, Enc_2ae154 { 14728let Inst{7-5} = 0b010; 14729let Inst{13-13} = 0b0; 14730let Inst{31-21} = 0b11101110100; 14731let hasNewValue = 1; 14732let opNewValue = 0; 14733let prefersSlot3 = 1; 14734let Constraints = "$Rx32 = $Rx32in"; 14735} 14736def M2_mpy_acc_lh_s0 : HInst< 14737(outs IntRegs:$Rx32), 14738(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14739"$Rx32 += mpy($Rs32.l,$Rt32.h)", 14740tc_7f8ae742, TypeM>, Enc_2ae154 { 14741let Inst{7-5} = 0b001; 14742let Inst{13-13} = 0b0; 14743let Inst{31-21} = 0b11101110000; 14744let hasNewValue = 1; 14745let opNewValue = 0; 14746let prefersSlot3 = 1; 14747let Constraints = "$Rx32 = $Rx32in"; 14748} 14749def M2_mpy_acc_lh_s1 : HInst< 14750(outs IntRegs:$Rx32), 14751(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14752"$Rx32 += mpy($Rs32.l,$Rt32.h):<<1", 14753tc_7f8ae742, TypeM>, Enc_2ae154 { 14754let Inst{7-5} = 0b001; 14755let Inst{13-13} = 0b0; 14756let Inst{31-21} = 0b11101110100; 14757let hasNewValue = 1; 14758let opNewValue = 0; 14759let prefersSlot3 = 1; 14760let Constraints = "$Rx32 = $Rx32in"; 14761} 14762def M2_mpy_acc_ll_s0 : HInst< 14763(outs IntRegs:$Rx32), 14764(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14765"$Rx32 += mpy($Rs32.l,$Rt32.l)", 14766tc_7f8ae742, TypeM>, Enc_2ae154 { 14767let Inst{7-5} = 0b000; 14768let Inst{13-13} = 0b0; 14769let Inst{31-21} = 0b11101110000; 14770let hasNewValue = 1; 14771let opNewValue = 0; 14772let prefersSlot3 = 1; 14773let Constraints = "$Rx32 = $Rx32in"; 14774} 14775def M2_mpy_acc_ll_s1 : HInst< 14776(outs IntRegs:$Rx32), 14777(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14778"$Rx32 += mpy($Rs32.l,$Rt32.l):<<1", 14779tc_7f8ae742, TypeM>, Enc_2ae154 { 14780let Inst{7-5} = 0b000; 14781let Inst{13-13} = 0b0; 14782let Inst{31-21} = 0b11101110100; 14783let hasNewValue = 1; 14784let opNewValue = 0; 14785let prefersSlot3 = 1; 14786let Constraints = "$Rx32 = $Rx32in"; 14787} 14788def M2_mpy_acc_sat_hh_s0 : HInst< 14789(outs IntRegs:$Rx32), 14790(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14791"$Rx32 += mpy($Rs32.h,$Rt32.h):sat", 14792tc_7f8ae742, TypeM>, Enc_2ae154 { 14793let Inst{7-5} = 0b111; 14794let Inst{13-13} = 0b0; 14795let Inst{31-21} = 0b11101110000; 14796let hasNewValue = 1; 14797let opNewValue = 0; 14798let prefersSlot3 = 1; 14799let Defs = [USR_OVF]; 14800let Constraints = "$Rx32 = $Rx32in"; 14801} 14802def M2_mpy_acc_sat_hh_s1 : HInst< 14803(outs IntRegs:$Rx32), 14804(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14805"$Rx32 += mpy($Rs32.h,$Rt32.h):<<1:sat", 14806tc_7f8ae742, TypeM>, Enc_2ae154 { 14807let Inst{7-5} = 0b111; 14808let Inst{13-13} = 0b0; 14809let Inst{31-21} = 0b11101110100; 14810let hasNewValue = 1; 14811let opNewValue = 0; 14812let prefersSlot3 = 1; 14813let Defs = [USR_OVF]; 14814let Constraints = "$Rx32 = $Rx32in"; 14815} 14816def M2_mpy_acc_sat_hl_s0 : HInst< 14817(outs IntRegs:$Rx32), 14818(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14819"$Rx32 += mpy($Rs32.h,$Rt32.l):sat", 14820tc_7f8ae742, TypeM>, Enc_2ae154 { 14821let Inst{7-5} = 0b110; 14822let Inst{13-13} = 0b0; 14823let Inst{31-21} = 0b11101110000; 14824let hasNewValue = 1; 14825let opNewValue = 0; 14826let prefersSlot3 = 1; 14827let Defs = [USR_OVF]; 14828let Constraints = "$Rx32 = $Rx32in"; 14829} 14830def M2_mpy_acc_sat_hl_s1 : HInst< 14831(outs IntRegs:$Rx32), 14832(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14833"$Rx32 += mpy($Rs32.h,$Rt32.l):<<1:sat", 14834tc_7f8ae742, TypeM>, Enc_2ae154 { 14835let Inst{7-5} = 0b110; 14836let Inst{13-13} = 0b0; 14837let Inst{31-21} = 0b11101110100; 14838let hasNewValue = 1; 14839let opNewValue = 0; 14840let prefersSlot3 = 1; 14841let Defs = [USR_OVF]; 14842let Constraints = "$Rx32 = $Rx32in"; 14843} 14844def M2_mpy_acc_sat_lh_s0 : HInst< 14845(outs IntRegs:$Rx32), 14846(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14847"$Rx32 += mpy($Rs32.l,$Rt32.h):sat", 14848tc_7f8ae742, TypeM>, Enc_2ae154 { 14849let Inst{7-5} = 0b101; 14850let Inst{13-13} = 0b0; 14851let Inst{31-21} = 0b11101110000; 14852let hasNewValue = 1; 14853let opNewValue = 0; 14854let prefersSlot3 = 1; 14855let Defs = [USR_OVF]; 14856let Constraints = "$Rx32 = $Rx32in"; 14857} 14858def M2_mpy_acc_sat_lh_s1 : HInst< 14859(outs IntRegs:$Rx32), 14860(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14861"$Rx32 += mpy($Rs32.l,$Rt32.h):<<1:sat", 14862tc_7f8ae742, TypeM>, Enc_2ae154 { 14863let Inst{7-5} = 0b101; 14864let Inst{13-13} = 0b0; 14865let Inst{31-21} = 0b11101110100; 14866let hasNewValue = 1; 14867let opNewValue = 0; 14868let prefersSlot3 = 1; 14869let Defs = [USR_OVF]; 14870let Constraints = "$Rx32 = $Rx32in"; 14871} 14872def M2_mpy_acc_sat_ll_s0 : HInst< 14873(outs IntRegs:$Rx32), 14874(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14875"$Rx32 += mpy($Rs32.l,$Rt32.l):sat", 14876tc_7f8ae742, TypeM>, Enc_2ae154 { 14877let Inst{7-5} = 0b100; 14878let Inst{13-13} = 0b0; 14879let Inst{31-21} = 0b11101110000; 14880let hasNewValue = 1; 14881let opNewValue = 0; 14882let prefersSlot3 = 1; 14883let Defs = [USR_OVF]; 14884let Constraints = "$Rx32 = $Rx32in"; 14885} 14886def M2_mpy_acc_sat_ll_s1 : HInst< 14887(outs IntRegs:$Rx32), 14888(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14889"$Rx32 += mpy($Rs32.l,$Rt32.l):<<1:sat", 14890tc_7f8ae742, TypeM>, Enc_2ae154 { 14891let Inst{7-5} = 0b100; 14892let Inst{13-13} = 0b0; 14893let Inst{31-21} = 0b11101110100; 14894let hasNewValue = 1; 14895let opNewValue = 0; 14896let prefersSlot3 = 1; 14897let Defs = [USR_OVF]; 14898let Constraints = "$Rx32 = $Rx32in"; 14899} 14900def M2_mpy_hh_s0 : HInst< 14901(outs IntRegs:$Rd32), 14902(ins IntRegs:$Rs32, IntRegs:$Rt32), 14903"$Rd32 = mpy($Rs32.h,$Rt32.h)", 14904tc_c21d7447, TypeM>, Enc_5ab2be { 14905let Inst{7-5} = 0b011; 14906let Inst{13-13} = 0b0; 14907let Inst{31-21} = 0b11101100000; 14908let hasNewValue = 1; 14909let opNewValue = 0; 14910let prefersSlot3 = 1; 14911} 14912def M2_mpy_hh_s1 : HInst< 14913(outs IntRegs:$Rd32), 14914(ins IntRegs:$Rs32, IntRegs:$Rt32), 14915"$Rd32 = mpy($Rs32.h,$Rt32.h):<<1", 14916tc_c21d7447, TypeM>, Enc_5ab2be { 14917let Inst{7-5} = 0b011; 14918let Inst{13-13} = 0b0; 14919let Inst{31-21} = 0b11101100100; 14920let hasNewValue = 1; 14921let opNewValue = 0; 14922let prefersSlot3 = 1; 14923} 14924def M2_mpy_hl_s0 : HInst< 14925(outs IntRegs:$Rd32), 14926(ins IntRegs:$Rs32, IntRegs:$Rt32), 14927"$Rd32 = mpy($Rs32.h,$Rt32.l)", 14928tc_c21d7447, TypeM>, Enc_5ab2be { 14929let Inst{7-5} = 0b010; 14930let Inst{13-13} = 0b0; 14931let Inst{31-21} = 0b11101100000; 14932let hasNewValue = 1; 14933let opNewValue = 0; 14934let prefersSlot3 = 1; 14935} 14936def M2_mpy_hl_s1 : HInst< 14937(outs IntRegs:$Rd32), 14938(ins IntRegs:$Rs32, IntRegs:$Rt32), 14939"$Rd32 = mpy($Rs32.h,$Rt32.l):<<1", 14940tc_c21d7447, TypeM>, Enc_5ab2be { 14941let Inst{7-5} = 0b010; 14942let Inst{13-13} = 0b0; 14943let Inst{31-21} = 0b11101100100; 14944let hasNewValue = 1; 14945let opNewValue = 0; 14946let prefersSlot3 = 1; 14947} 14948def M2_mpy_lh_s0 : HInst< 14949(outs IntRegs:$Rd32), 14950(ins IntRegs:$Rs32, IntRegs:$Rt32), 14951"$Rd32 = mpy($Rs32.l,$Rt32.h)", 14952tc_c21d7447, TypeM>, Enc_5ab2be { 14953let Inst{7-5} = 0b001; 14954let Inst{13-13} = 0b0; 14955let Inst{31-21} = 0b11101100000; 14956let hasNewValue = 1; 14957let opNewValue = 0; 14958let prefersSlot3 = 1; 14959} 14960def M2_mpy_lh_s1 : HInst< 14961(outs IntRegs:$Rd32), 14962(ins IntRegs:$Rs32, IntRegs:$Rt32), 14963"$Rd32 = mpy($Rs32.l,$Rt32.h):<<1", 14964tc_c21d7447, TypeM>, Enc_5ab2be { 14965let Inst{7-5} = 0b001; 14966let Inst{13-13} = 0b0; 14967let Inst{31-21} = 0b11101100100; 14968let hasNewValue = 1; 14969let opNewValue = 0; 14970let prefersSlot3 = 1; 14971} 14972def M2_mpy_ll_s0 : HInst< 14973(outs IntRegs:$Rd32), 14974(ins IntRegs:$Rs32, IntRegs:$Rt32), 14975"$Rd32 = mpy($Rs32.l,$Rt32.l)", 14976tc_c21d7447, TypeM>, Enc_5ab2be { 14977let Inst{7-5} = 0b000; 14978let Inst{13-13} = 0b0; 14979let Inst{31-21} = 0b11101100000; 14980let hasNewValue = 1; 14981let opNewValue = 0; 14982let prefersSlot3 = 1; 14983} 14984def M2_mpy_ll_s1 : HInst< 14985(outs IntRegs:$Rd32), 14986(ins IntRegs:$Rs32, IntRegs:$Rt32), 14987"$Rd32 = mpy($Rs32.l,$Rt32.l):<<1", 14988tc_c21d7447, TypeM>, Enc_5ab2be { 14989let Inst{7-5} = 0b000; 14990let Inst{13-13} = 0b0; 14991let Inst{31-21} = 0b11101100100; 14992let hasNewValue = 1; 14993let opNewValue = 0; 14994let prefersSlot3 = 1; 14995} 14996def M2_mpy_nac_hh_s0 : HInst< 14997(outs IntRegs:$Rx32), 14998(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 14999"$Rx32 -= mpy($Rs32.h,$Rt32.h)", 15000tc_7f8ae742, TypeM>, Enc_2ae154 { 15001let Inst{7-5} = 0b011; 15002let Inst{13-13} = 0b0; 15003let Inst{31-21} = 0b11101110001; 15004let hasNewValue = 1; 15005let opNewValue = 0; 15006let prefersSlot3 = 1; 15007let Constraints = "$Rx32 = $Rx32in"; 15008} 15009def M2_mpy_nac_hh_s1 : HInst< 15010(outs IntRegs:$Rx32), 15011(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15012"$Rx32 -= mpy($Rs32.h,$Rt32.h):<<1", 15013tc_7f8ae742, TypeM>, Enc_2ae154 { 15014let Inst{7-5} = 0b011; 15015let Inst{13-13} = 0b0; 15016let Inst{31-21} = 0b11101110101; 15017let hasNewValue = 1; 15018let opNewValue = 0; 15019let prefersSlot3 = 1; 15020let Constraints = "$Rx32 = $Rx32in"; 15021} 15022def M2_mpy_nac_hl_s0 : HInst< 15023(outs IntRegs:$Rx32), 15024(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15025"$Rx32 -= mpy($Rs32.h,$Rt32.l)", 15026tc_7f8ae742, TypeM>, Enc_2ae154 { 15027let Inst{7-5} = 0b010; 15028let Inst{13-13} = 0b0; 15029let Inst{31-21} = 0b11101110001; 15030let hasNewValue = 1; 15031let opNewValue = 0; 15032let prefersSlot3 = 1; 15033let Constraints = "$Rx32 = $Rx32in"; 15034} 15035def M2_mpy_nac_hl_s1 : HInst< 15036(outs IntRegs:$Rx32), 15037(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15038"$Rx32 -= mpy($Rs32.h,$Rt32.l):<<1", 15039tc_7f8ae742, TypeM>, Enc_2ae154 { 15040let Inst{7-5} = 0b010; 15041let Inst{13-13} = 0b0; 15042let Inst{31-21} = 0b11101110101; 15043let hasNewValue = 1; 15044let opNewValue = 0; 15045let prefersSlot3 = 1; 15046let Constraints = "$Rx32 = $Rx32in"; 15047} 15048def M2_mpy_nac_lh_s0 : HInst< 15049(outs IntRegs:$Rx32), 15050(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15051"$Rx32 -= mpy($Rs32.l,$Rt32.h)", 15052tc_7f8ae742, TypeM>, Enc_2ae154 { 15053let Inst{7-5} = 0b001; 15054let Inst{13-13} = 0b0; 15055let Inst{31-21} = 0b11101110001; 15056let hasNewValue = 1; 15057let opNewValue = 0; 15058let prefersSlot3 = 1; 15059let Constraints = "$Rx32 = $Rx32in"; 15060} 15061def M2_mpy_nac_lh_s1 : HInst< 15062(outs IntRegs:$Rx32), 15063(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15064"$Rx32 -= mpy($Rs32.l,$Rt32.h):<<1", 15065tc_7f8ae742, TypeM>, Enc_2ae154 { 15066let Inst{7-5} = 0b001; 15067let Inst{13-13} = 0b0; 15068let Inst{31-21} = 0b11101110101; 15069let hasNewValue = 1; 15070let opNewValue = 0; 15071let prefersSlot3 = 1; 15072let Constraints = "$Rx32 = $Rx32in"; 15073} 15074def M2_mpy_nac_ll_s0 : HInst< 15075(outs IntRegs:$Rx32), 15076(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15077"$Rx32 -= mpy($Rs32.l,$Rt32.l)", 15078tc_7f8ae742, TypeM>, Enc_2ae154 { 15079let Inst{7-5} = 0b000; 15080let Inst{13-13} = 0b0; 15081let Inst{31-21} = 0b11101110001; 15082let hasNewValue = 1; 15083let opNewValue = 0; 15084let prefersSlot3 = 1; 15085let Constraints = "$Rx32 = $Rx32in"; 15086} 15087def M2_mpy_nac_ll_s1 : HInst< 15088(outs IntRegs:$Rx32), 15089(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15090"$Rx32 -= mpy($Rs32.l,$Rt32.l):<<1", 15091tc_7f8ae742, TypeM>, Enc_2ae154 { 15092let Inst{7-5} = 0b000; 15093let Inst{13-13} = 0b0; 15094let Inst{31-21} = 0b11101110101; 15095let hasNewValue = 1; 15096let opNewValue = 0; 15097let prefersSlot3 = 1; 15098let Constraints = "$Rx32 = $Rx32in"; 15099} 15100def M2_mpy_nac_sat_hh_s0 : HInst< 15101(outs IntRegs:$Rx32), 15102(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15103"$Rx32 -= mpy($Rs32.h,$Rt32.h):sat", 15104tc_7f8ae742, TypeM>, Enc_2ae154 { 15105let Inst{7-5} = 0b111; 15106let Inst{13-13} = 0b0; 15107let Inst{31-21} = 0b11101110001; 15108let hasNewValue = 1; 15109let opNewValue = 0; 15110let prefersSlot3 = 1; 15111let Defs = [USR_OVF]; 15112let Constraints = "$Rx32 = $Rx32in"; 15113} 15114def M2_mpy_nac_sat_hh_s1 : HInst< 15115(outs IntRegs:$Rx32), 15116(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15117"$Rx32 -= mpy($Rs32.h,$Rt32.h):<<1:sat", 15118tc_7f8ae742, TypeM>, Enc_2ae154 { 15119let Inst{7-5} = 0b111; 15120let Inst{13-13} = 0b0; 15121let Inst{31-21} = 0b11101110101; 15122let hasNewValue = 1; 15123let opNewValue = 0; 15124let prefersSlot3 = 1; 15125let Defs = [USR_OVF]; 15126let Constraints = "$Rx32 = $Rx32in"; 15127} 15128def M2_mpy_nac_sat_hl_s0 : HInst< 15129(outs IntRegs:$Rx32), 15130(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15131"$Rx32 -= mpy($Rs32.h,$Rt32.l):sat", 15132tc_7f8ae742, TypeM>, Enc_2ae154 { 15133let Inst{7-5} = 0b110; 15134let Inst{13-13} = 0b0; 15135let Inst{31-21} = 0b11101110001; 15136let hasNewValue = 1; 15137let opNewValue = 0; 15138let prefersSlot3 = 1; 15139let Defs = [USR_OVF]; 15140let Constraints = "$Rx32 = $Rx32in"; 15141} 15142def M2_mpy_nac_sat_hl_s1 : HInst< 15143(outs IntRegs:$Rx32), 15144(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15145"$Rx32 -= mpy($Rs32.h,$Rt32.l):<<1:sat", 15146tc_7f8ae742, TypeM>, Enc_2ae154 { 15147let Inst{7-5} = 0b110; 15148let Inst{13-13} = 0b0; 15149let Inst{31-21} = 0b11101110101; 15150let hasNewValue = 1; 15151let opNewValue = 0; 15152let prefersSlot3 = 1; 15153let Defs = [USR_OVF]; 15154let Constraints = "$Rx32 = $Rx32in"; 15155} 15156def M2_mpy_nac_sat_lh_s0 : HInst< 15157(outs IntRegs:$Rx32), 15158(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15159"$Rx32 -= mpy($Rs32.l,$Rt32.h):sat", 15160tc_7f8ae742, TypeM>, Enc_2ae154 { 15161let Inst{7-5} = 0b101; 15162let Inst{13-13} = 0b0; 15163let Inst{31-21} = 0b11101110001; 15164let hasNewValue = 1; 15165let opNewValue = 0; 15166let prefersSlot3 = 1; 15167let Defs = [USR_OVF]; 15168let Constraints = "$Rx32 = $Rx32in"; 15169} 15170def M2_mpy_nac_sat_lh_s1 : HInst< 15171(outs IntRegs:$Rx32), 15172(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15173"$Rx32 -= mpy($Rs32.l,$Rt32.h):<<1:sat", 15174tc_7f8ae742, TypeM>, Enc_2ae154 { 15175let Inst{7-5} = 0b101; 15176let Inst{13-13} = 0b0; 15177let Inst{31-21} = 0b11101110101; 15178let hasNewValue = 1; 15179let opNewValue = 0; 15180let prefersSlot3 = 1; 15181let Defs = [USR_OVF]; 15182let Constraints = "$Rx32 = $Rx32in"; 15183} 15184def M2_mpy_nac_sat_ll_s0 : HInst< 15185(outs IntRegs:$Rx32), 15186(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15187"$Rx32 -= mpy($Rs32.l,$Rt32.l):sat", 15188tc_7f8ae742, TypeM>, Enc_2ae154 { 15189let Inst{7-5} = 0b100; 15190let Inst{13-13} = 0b0; 15191let Inst{31-21} = 0b11101110001; 15192let hasNewValue = 1; 15193let opNewValue = 0; 15194let prefersSlot3 = 1; 15195let Defs = [USR_OVF]; 15196let Constraints = "$Rx32 = $Rx32in"; 15197} 15198def M2_mpy_nac_sat_ll_s1 : HInst< 15199(outs IntRegs:$Rx32), 15200(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15201"$Rx32 -= mpy($Rs32.l,$Rt32.l):<<1:sat", 15202tc_7f8ae742, TypeM>, Enc_2ae154 { 15203let Inst{7-5} = 0b100; 15204let Inst{13-13} = 0b0; 15205let Inst{31-21} = 0b11101110101; 15206let hasNewValue = 1; 15207let opNewValue = 0; 15208let prefersSlot3 = 1; 15209let Defs = [USR_OVF]; 15210let Constraints = "$Rx32 = $Rx32in"; 15211} 15212def M2_mpy_rnd_hh_s0 : HInst< 15213(outs IntRegs:$Rd32), 15214(ins IntRegs:$Rs32, IntRegs:$Rt32), 15215"$Rd32 = mpy($Rs32.h,$Rt32.h):rnd", 15216tc_c21d7447, TypeM>, Enc_5ab2be { 15217let Inst{7-5} = 0b011; 15218let Inst{13-13} = 0b0; 15219let Inst{31-21} = 0b11101100001; 15220let hasNewValue = 1; 15221let opNewValue = 0; 15222let prefersSlot3 = 1; 15223} 15224def M2_mpy_rnd_hh_s1 : HInst< 15225(outs IntRegs:$Rd32), 15226(ins IntRegs:$Rs32, IntRegs:$Rt32), 15227"$Rd32 = mpy($Rs32.h,$Rt32.h):<<1:rnd", 15228tc_c21d7447, TypeM>, Enc_5ab2be { 15229let Inst{7-5} = 0b011; 15230let Inst{13-13} = 0b0; 15231let Inst{31-21} = 0b11101100101; 15232let hasNewValue = 1; 15233let opNewValue = 0; 15234let prefersSlot3 = 1; 15235} 15236def M2_mpy_rnd_hl_s0 : HInst< 15237(outs IntRegs:$Rd32), 15238(ins IntRegs:$Rs32, IntRegs:$Rt32), 15239"$Rd32 = mpy($Rs32.h,$Rt32.l):rnd", 15240tc_c21d7447, TypeM>, Enc_5ab2be { 15241let Inst{7-5} = 0b010; 15242let Inst{13-13} = 0b0; 15243let Inst{31-21} = 0b11101100001; 15244let hasNewValue = 1; 15245let opNewValue = 0; 15246let prefersSlot3 = 1; 15247} 15248def M2_mpy_rnd_hl_s1 : HInst< 15249(outs IntRegs:$Rd32), 15250(ins IntRegs:$Rs32, IntRegs:$Rt32), 15251"$Rd32 = mpy($Rs32.h,$Rt32.l):<<1:rnd", 15252tc_c21d7447, TypeM>, Enc_5ab2be { 15253let Inst{7-5} = 0b010; 15254let Inst{13-13} = 0b0; 15255let Inst{31-21} = 0b11101100101; 15256let hasNewValue = 1; 15257let opNewValue = 0; 15258let prefersSlot3 = 1; 15259} 15260def M2_mpy_rnd_lh_s0 : HInst< 15261(outs IntRegs:$Rd32), 15262(ins IntRegs:$Rs32, IntRegs:$Rt32), 15263"$Rd32 = mpy($Rs32.l,$Rt32.h):rnd", 15264tc_c21d7447, TypeM>, Enc_5ab2be { 15265let Inst{7-5} = 0b001; 15266let Inst{13-13} = 0b0; 15267let Inst{31-21} = 0b11101100001; 15268let hasNewValue = 1; 15269let opNewValue = 0; 15270let prefersSlot3 = 1; 15271} 15272def M2_mpy_rnd_lh_s1 : HInst< 15273(outs IntRegs:$Rd32), 15274(ins IntRegs:$Rs32, IntRegs:$Rt32), 15275"$Rd32 = mpy($Rs32.l,$Rt32.h):<<1:rnd", 15276tc_c21d7447, TypeM>, Enc_5ab2be { 15277let Inst{7-5} = 0b001; 15278let Inst{13-13} = 0b0; 15279let Inst{31-21} = 0b11101100101; 15280let hasNewValue = 1; 15281let opNewValue = 0; 15282let prefersSlot3 = 1; 15283} 15284def M2_mpy_rnd_ll_s0 : HInst< 15285(outs IntRegs:$Rd32), 15286(ins IntRegs:$Rs32, IntRegs:$Rt32), 15287"$Rd32 = mpy($Rs32.l,$Rt32.l):rnd", 15288tc_c21d7447, TypeM>, Enc_5ab2be { 15289let Inst{7-5} = 0b000; 15290let Inst{13-13} = 0b0; 15291let Inst{31-21} = 0b11101100001; 15292let hasNewValue = 1; 15293let opNewValue = 0; 15294let prefersSlot3 = 1; 15295} 15296def M2_mpy_rnd_ll_s1 : HInst< 15297(outs IntRegs:$Rd32), 15298(ins IntRegs:$Rs32, IntRegs:$Rt32), 15299"$Rd32 = mpy($Rs32.l,$Rt32.l):<<1:rnd", 15300tc_c21d7447, TypeM>, Enc_5ab2be { 15301let Inst{7-5} = 0b000; 15302let Inst{13-13} = 0b0; 15303let Inst{31-21} = 0b11101100101; 15304let hasNewValue = 1; 15305let opNewValue = 0; 15306let prefersSlot3 = 1; 15307} 15308def M2_mpy_sat_hh_s0 : HInst< 15309(outs IntRegs:$Rd32), 15310(ins IntRegs:$Rs32, IntRegs:$Rt32), 15311"$Rd32 = mpy($Rs32.h,$Rt32.h):sat", 15312tc_c21d7447, TypeM>, Enc_5ab2be { 15313let Inst{7-5} = 0b111; 15314let Inst{13-13} = 0b0; 15315let Inst{31-21} = 0b11101100000; 15316let hasNewValue = 1; 15317let opNewValue = 0; 15318let prefersSlot3 = 1; 15319let Defs = [USR_OVF]; 15320} 15321def M2_mpy_sat_hh_s1 : HInst< 15322(outs IntRegs:$Rd32), 15323(ins IntRegs:$Rs32, IntRegs:$Rt32), 15324"$Rd32 = mpy($Rs32.h,$Rt32.h):<<1:sat", 15325tc_c21d7447, TypeM>, Enc_5ab2be { 15326let Inst{7-5} = 0b111; 15327let Inst{13-13} = 0b0; 15328let Inst{31-21} = 0b11101100100; 15329let hasNewValue = 1; 15330let opNewValue = 0; 15331let prefersSlot3 = 1; 15332let Defs = [USR_OVF]; 15333} 15334def M2_mpy_sat_hl_s0 : HInst< 15335(outs IntRegs:$Rd32), 15336(ins IntRegs:$Rs32, IntRegs:$Rt32), 15337"$Rd32 = mpy($Rs32.h,$Rt32.l):sat", 15338tc_c21d7447, TypeM>, Enc_5ab2be { 15339let Inst{7-5} = 0b110; 15340let Inst{13-13} = 0b0; 15341let Inst{31-21} = 0b11101100000; 15342let hasNewValue = 1; 15343let opNewValue = 0; 15344let prefersSlot3 = 1; 15345let Defs = [USR_OVF]; 15346} 15347def M2_mpy_sat_hl_s1 : HInst< 15348(outs IntRegs:$Rd32), 15349(ins IntRegs:$Rs32, IntRegs:$Rt32), 15350"$Rd32 = mpy($Rs32.h,$Rt32.l):<<1:sat", 15351tc_c21d7447, TypeM>, Enc_5ab2be { 15352let Inst{7-5} = 0b110; 15353let Inst{13-13} = 0b0; 15354let Inst{31-21} = 0b11101100100; 15355let hasNewValue = 1; 15356let opNewValue = 0; 15357let prefersSlot3 = 1; 15358let Defs = [USR_OVF]; 15359} 15360def M2_mpy_sat_lh_s0 : HInst< 15361(outs IntRegs:$Rd32), 15362(ins IntRegs:$Rs32, IntRegs:$Rt32), 15363"$Rd32 = mpy($Rs32.l,$Rt32.h):sat", 15364tc_c21d7447, TypeM>, Enc_5ab2be { 15365let Inst{7-5} = 0b101; 15366let Inst{13-13} = 0b0; 15367let Inst{31-21} = 0b11101100000; 15368let hasNewValue = 1; 15369let opNewValue = 0; 15370let prefersSlot3 = 1; 15371let Defs = [USR_OVF]; 15372} 15373def M2_mpy_sat_lh_s1 : HInst< 15374(outs IntRegs:$Rd32), 15375(ins IntRegs:$Rs32, IntRegs:$Rt32), 15376"$Rd32 = mpy($Rs32.l,$Rt32.h):<<1:sat", 15377tc_c21d7447, TypeM>, Enc_5ab2be { 15378let Inst{7-5} = 0b101; 15379let Inst{13-13} = 0b0; 15380let Inst{31-21} = 0b11101100100; 15381let hasNewValue = 1; 15382let opNewValue = 0; 15383let prefersSlot3 = 1; 15384let Defs = [USR_OVF]; 15385} 15386def M2_mpy_sat_ll_s0 : HInst< 15387(outs IntRegs:$Rd32), 15388(ins IntRegs:$Rs32, IntRegs:$Rt32), 15389"$Rd32 = mpy($Rs32.l,$Rt32.l):sat", 15390tc_c21d7447, TypeM>, Enc_5ab2be { 15391let Inst{7-5} = 0b100; 15392let Inst{13-13} = 0b0; 15393let Inst{31-21} = 0b11101100000; 15394let hasNewValue = 1; 15395let opNewValue = 0; 15396let prefersSlot3 = 1; 15397let Defs = [USR_OVF]; 15398} 15399def M2_mpy_sat_ll_s1 : HInst< 15400(outs IntRegs:$Rd32), 15401(ins IntRegs:$Rs32, IntRegs:$Rt32), 15402"$Rd32 = mpy($Rs32.l,$Rt32.l):<<1:sat", 15403tc_c21d7447, TypeM>, Enc_5ab2be { 15404let Inst{7-5} = 0b100; 15405let Inst{13-13} = 0b0; 15406let Inst{31-21} = 0b11101100100; 15407let hasNewValue = 1; 15408let opNewValue = 0; 15409let prefersSlot3 = 1; 15410let Defs = [USR_OVF]; 15411} 15412def M2_mpy_sat_rnd_hh_s0 : HInst< 15413(outs IntRegs:$Rd32), 15414(ins IntRegs:$Rs32, IntRegs:$Rt32), 15415"$Rd32 = mpy($Rs32.h,$Rt32.h):rnd:sat", 15416tc_c21d7447, TypeM>, Enc_5ab2be { 15417let Inst{7-5} = 0b111; 15418let Inst{13-13} = 0b0; 15419let Inst{31-21} = 0b11101100001; 15420let hasNewValue = 1; 15421let opNewValue = 0; 15422let prefersSlot3 = 1; 15423let Defs = [USR_OVF]; 15424} 15425def M2_mpy_sat_rnd_hh_s1 : HInst< 15426(outs IntRegs:$Rd32), 15427(ins IntRegs:$Rs32, IntRegs:$Rt32), 15428"$Rd32 = mpy($Rs32.h,$Rt32.h):<<1:rnd:sat", 15429tc_c21d7447, TypeM>, Enc_5ab2be { 15430let Inst{7-5} = 0b111; 15431let Inst{13-13} = 0b0; 15432let Inst{31-21} = 0b11101100101; 15433let hasNewValue = 1; 15434let opNewValue = 0; 15435let prefersSlot3 = 1; 15436let Defs = [USR_OVF]; 15437} 15438def M2_mpy_sat_rnd_hl_s0 : HInst< 15439(outs IntRegs:$Rd32), 15440(ins IntRegs:$Rs32, IntRegs:$Rt32), 15441"$Rd32 = mpy($Rs32.h,$Rt32.l):rnd:sat", 15442tc_c21d7447, TypeM>, Enc_5ab2be { 15443let Inst{7-5} = 0b110; 15444let Inst{13-13} = 0b0; 15445let Inst{31-21} = 0b11101100001; 15446let hasNewValue = 1; 15447let opNewValue = 0; 15448let prefersSlot3 = 1; 15449let Defs = [USR_OVF]; 15450} 15451def M2_mpy_sat_rnd_hl_s1 : HInst< 15452(outs IntRegs:$Rd32), 15453(ins IntRegs:$Rs32, IntRegs:$Rt32), 15454"$Rd32 = mpy($Rs32.h,$Rt32.l):<<1:rnd:sat", 15455tc_c21d7447, TypeM>, Enc_5ab2be { 15456let Inst{7-5} = 0b110; 15457let Inst{13-13} = 0b0; 15458let Inst{31-21} = 0b11101100101; 15459let hasNewValue = 1; 15460let opNewValue = 0; 15461let prefersSlot3 = 1; 15462let Defs = [USR_OVF]; 15463} 15464def M2_mpy_sat_rnd_lh_s0 : HInst< 15465(outs IntRegs:$Rd32), 15466(ins IntRegs:$Rs32, IntRegs:$Rt32), 15467"$Rd32 = mpy($Rs32.l,$Rt32.h):rnd:sat", 15468tc_c21d7447, TypeM>, Enc_5ab2be { 15469let Inst{7-5} = 0b101; 15470let Inst{13-13} = 0b0; 15471let Inst{31-21} = 0b11101100001; 15472let hasNewValue = 1; 15473let opNewValue = 0; 15474let prefersSlot3 = 1; 15475let Defs = [USR_OVF]; 15476} 15477def M2_mpy_sat_rnd_lh_s1 : HInst< 15478(outs IntRegs:$Rd32), 15479(ins IntRegs:$Rs32, IntRegs:$Rt32), 15480"$Rd32 = mpy($Rs32.l,$Rt32.h):<<1:rnd:sat", 15481tc_c21d7447, TypeM>, Enc_5ab2be { 15482let Inst{7-5} = 0b101; 15483let Inst{13-13} = 0b0; 15484let Inst{31-21} = 0b11101100101; 15485let hasNewValue = 1; 15486let opNewValue = 0; 15487let prefersSlot3 = 1; 15488let Defs = [USR_OVF]; 15489} 15490def M2_mpy_sat_rnd_ll_s0 : HInst< 15491(outs IntRegs:$Rd32), 15492(ins IntRegs:$Rs32, IntRegs:$Rt32), 15493"$Rd32 = mpy($Rs32.l,$Rt32.l):rnd:sat", 15494tc_c21d7447, TypeM>, Enc_5ab2be { 15495let Inst{7-5} = 0b100; 15496let Inst{13-13} = 0b0; 15497let Inst{31-21} = 0b11101100001; 15498let hasNewValue = 1; 15499let opNewValue = 0; 15500let prefersSlot3 = 1; 15501let Defs = [USR_OVF]; 15502} 15503def M2_mpy_sat_rnd_ll_s1 : HInst< 15504(outs IntRegs:$Rd32), 15505(ins IntRegs:$Rs32, IntRegs:$Rt32), 15506"$Rd32 = mpy($Rs32.l,$Rt32.l):<<1:rnd:sat", 15507tc_c21d7447, TypeM>, Enc_5ab2be { 15508let Inst{7-5} = 0b100; 15509let Inst{13-13} = 0b0; 15510let Inst{31-21} = 0b11101100101; 15511let hasNewValue = 1; 15512let opNewValue = 0; 15513let prefersSlot3 = 1; 15514let Defs = [USR_OVF]; 15515} 15516def M2_mpy_up : HInst< 15517(outs IntRegs:$Rd32), 15518(ins IntRegs:$Rs32, IntRegs:$Rt32), 15519"$Rd32 = mpy($Rs32,$Rt32)", 15520tc_c21d7447, TypeM>, Enc_5ab2be { 15521let Inst{7-5} = 0b001; 15522let Inst{13-13} = 0b0; 15523let Inst{31-21} = 0b11101101000; 15524let hasNewValue = 1; 15525let opNewValue = 0; 15526let prefersSlot3 = 1; 15527} 15528def M2_mpy_up_s1 : HInst< 15529(outs IntRegs:$Rd32), 15530(ins IntRegs:$Rs32, IntRegs:$Rt32), 15531"$Rd32 = mpy($Rs32,$Rt32):<<1", 15532tc_c21d7447, TypeM>, Enc_5ab2be { 15533let Inst{7-5} = 0b010; 15534let Inst{13-13} = 0b0; 15535let Inst{31-21} = 0b11101101101; 15536let hasNewValue = 1; 15537let opNewValue = 0; 15538let prefersSlot3 = 1; 15539} 15540def M2_mpy_up_s1_sat : HInst< 15541(outs IntRegs:$Rd32), 15542(ins IntRegs:$Rs32, IntRegs:$Rt32), 15543"$Rd32 = mpy($Rs32,$Rt32):<<1:sat", 15544tc_c21d7447, TypeM>, Enc_5ab2be { 15545let Inst{7-5} = 0b000; 15546let Inst{13-13} = 0b0; 15547let Inst{31-21} = 0b11101101111; 15548let hasNewValue = 1; 15549let opNewValue = 0; 15550let prefersSlot3 = 1; 15551let Defs = [USR_OVF]; 15552} 15553def M2_mpyd_acc_hh_s0 : HInst< 15554(outs DoubleRegs:$Rxx32), 15555(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15556"$Rxx32 += mpy($Rs32.h,$Rt32.h)", 15557tc_7f8ae742, TypeM>, Enc_61f0b0 { 15558let Inst{7-5} = 0b011; 15559let Inst{13-13} = 0b0; 15560let Inst{31-21} = 0b11100110000; 15561let prefersSlot3 = 1; 15562let Constraints = "$Rxx32 = $Rxx32in"; 15563} 15564def M2_mpyd_acc_hh_s1 : HInst< 15565(outs DoubleRegs:$Rxx32), 15566(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15567"$Rxx32 += mpy($Rs32.h,$Rt32.h):<<1", 15568tc_7f8ae742, TypeM>, Enc_61f0b0 { 15569let Inst{7-5} = 0b011; 15570let Inst{13-13} = 0b0; 15571let Inst{31-21} = 0b11100110100; 15572let prefersSlot3 = 1; 15573let Constraints = "$Rxx32 = $Rxx32in"; 15574} 15575def M2_mpyd_acc_hl_s0 : HInst< 15576(outs DoubleRegs:$Rxx32), 15577(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15578"$Rxx32 += mpy($Rs32.h,$Rt32.l)", 15579tc_7f8ae742, TypeM>, Enc_61f0b0 { 15580let Inst{7-5} = 0b010; 15581let Inst{13-13} = 0b0; 15582let Inst{31-21} = 0b11100110000; 15583let prefersSlot3 = 1; 15584let Constraints = "$Rxx32 = $Rxx32in"; 15585} 15586def M2_mpyd_acc_hl_s1 : HInst< 15587(outs DoubleRegs:$Rxx32), 15588(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15589"$Rxx32 += mpy($Rs32.h,$Rt32.l):<<1", 15590tc_7f8ae742, TypeM>, Enc_61f0b0 { 15591let Inst{7-5} = 0b010; 15592let Inst{13-13} = 0b0; 15593let Inst{31-21} = 0b11100110100; 15594let prefersSlot3 = 1; 15595let Constraints = "$Rxx32 = $Rxx32in"; 15596} 15597def M2_mpyd_acc_lh_s0 : HInst< 15598(outs DoubleRegs:$Rxx32), 15599(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15600"$Rxx32 += mpy($Rs32.l,$Rt32.h)", 15601tc_7f8ae742, TypeM>, Enc_61f0b0 { 15602let Inst{7-5} = 0b001; 15603let Inst{13-13} = 0b0; 15604let Inst{31-21} = 0b11100110000; 15605let prefersSlot3 = 1; 15606let Constraints = "$Rxx32 = $Rxx32in"; 15607} 15608def M2_mpyd_acc_lh_s1 : HInst< 15609(outs DoubleRegs:$Rxx32), 15610(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15611"$Rxx32 += mpy($Rs32.l,$Rt32.h):<<1", 15612tc_7f8ae742, TypeM>, Enc_61f0b0 { 15613let Inst{7-5} = 0b001; 15614let Inst{13-13} = 0b0; 15615let Inst{31-21} = 0b11100110100; 15616let prefersSlot3 = 1; 15617let Constraints = "$Rxx32 = $Rxx32in"; 15618} 15619def M2_mpyd_acc_ll_s0 : HInst< 15620(outs DoubleRegs:$Rxx32), 15621(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15622"$Rxx32 += mpy($Rs32.l,$Rt32.l)", 15623tc_7f8ae742, TypeM>, Enc_61f0b0 { 15624let Inst{7-5} = 0b000; 15625let Inst{13-13} = 0b0; 15626let Inst{31-21} = 0b11100110000; 15627let prefersSlot3 = 1; 15628let Constraints = "$Rxx32 = $Rxx32in"; 15629} 15630def M2_mpyd_acc_ll_s1 : HInst< 15631(outs DoubleRegs:$Rxx32), 15632(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15633"$Rxx32 += mpy($Rs32.l,$Rt32.l):<<1", 15634tc_7f8ae742, TypeM>, Enc_61f0b0 { 15635let Inst{7-5} = 0b000; 15636let Inst{13-13} = 0b0; 15637let Inst{31-21} = 0b11100110100; 15638let prefersSlot3 = 1; 15639let Constraints = "$Rxx32 = $Rxx32in"; 15640} 15641def M2_mpyd_hh_s0 : HInst< 15642(outs DoubleRegs:$Rdd32), 15643(ins IntRegs:$Rs32, IntRegs:$Rt32), 15644"$Rdd32 = mpy($Rs32.h,$Rt32.h)", 15645tc_c21d7447, TypeM>, Enc_be32a5 { 15646let Inst{7-5} = 0b011; 15647let Inst{13-13} = 0b0; 15648let Inst{31-21} = 0b11100100000; 15649let prefersSlot3 = 1; 15650} 15651def M2_mpyd_hh_s1 : HInst< 15652(outs DoubleRegs:$Rdd32), 15653(ins IntRegs:$Rs32, IntRegs:$Rt32), 15654"$Rdd32 = mpy($Rs32.h,$Rt32.h):<<1", 15655tc_c21d7447, TypeM>, Enc_be32a5 { 15656let Inst{7-5} = 0b011; 15657let Inst{13-13} = 0b0; 15658let Inst{31-21} = 0b11100100100; 15659let prefersSlot3 = 1; 15660} 15661def M2_mpyd_hl_s0 : HInst< 15662(outs DoubleRegs:$Rdd32), 15663(ins IntRegs:$Rs32, IntRegs:$Rt32), 15664"$Rdd32 = mpy($Rs32.h,$Rt32.l)", 15665tc_c21d7447, TypeM>, Enc_be32a5 { 15666let Inst{7-5} = 0b010; 15667let Inst{13-13} = 0b0; 15668let Inst{31-21} = 0b11100100000; 15669let prefersSlot3 = 1; 15670} 15671def M2_mpyd_hl_s1 : HInst< 15672(outs DoubleRegs:$Rdd32), 15673(ins IntRegs:$Rs32, IntRegs:$Rt32), 15674"$Rdd32 = mpy($Rs32.h,$Rt32.l):<<1", 15675tc_c21d7447, TypeM>, Enc_be32a5 { 15676let Inst{7-5} = 0b010; 15677let Inst{13-13} = 0b0; 15678let Inst{31-21} = 0b11100100100; 15679let prefersSlot3 = 1; 15680} 15681def M2_mpyd_lh_s0 : HInst< 15682(outs DoubleRegs:$Rdd32), 15683(ins IntRegs:$Rs32, IntRegs:$Rt32), 15684"$Rdd32 = mpy($Rs32.l,$Rt32.h)", 15685tc_c21d7447, TypeM>, Enc_be32a5 { 15686let Inst{7-5} = 0b001; 15687let Inst{13-13} = 0b0; 15688let Inst{31-21} = 0b11100100000; 15689let prefersSlot3 = 1; 15690} 15691def M2_mpyd_lh_s1 : HInst< 15692(outs DoubleRegs:$Rdd32), 15693(ins IntRegs:$Rs32, IntRegs:$Rt32), 15694"$Rdd32 = mpy($Rs32.l,$Rt32.h):<<1", 15695tc_c21d7447, TypeM>, Enc_be32a5 { 15696let Inst{7-5} = 0b001; 15697let Inst{13-13} = 0b0; 15698let Inst{31-21} = 0b11100100100; 15699let prefersSlot3 = 1; 15700} 15701def M2_mpyd_ll_s0 : HInst< 15702(outs DoubleRegs:$Rdd32), 15703(ins IntRegs:$Rs32, IntRegs:$Rt32), 15704"$Rdd32 = mpy($Rs32.l,$Rt32.l)", 15705tc_c21d7447, TypeM>, Enc_be32a5 { 15706let Inst{7-5} = 0b000; 15707let Inst{13-13} = 0b0; 15708let Inst{31-21} = 0b11100100000; 15709let prefersSlot3 = 1; 15710} 15711def M2_mpyd_ll_s1 : HInst< 15712(outs DoubleRegs:$Rdd32), 15713(ins IntRegs:$Rs32, IntRegs:$Rt32), 15714"$Rdd32 = mpy($Rs32.l,$Rt32.l):<<1", 15715tc_c21d7447, TypeM>, Enc_be32a5 { 15716let Inst{7-5} = 0b000; 15717let Inst{13-13} = 0b0; 15718let Inst{31-21} = 0b11100100100; 15719let prefersSlot3 = 1; 15720} 15721def M2_mpyd_nac_hh_s0 : HInst< 15722(outs DoubleRegs:$Rxx32), 15723(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15724"$Rxx32 -= mpy($Rs32.h,$Rt32.h)", 15725tc_7f8ae742, TypeM>, Enc_61f0b0 { 15726let Inst{7-5} = 0b011; 15727let Inst{13-13} = 0b0; 15728let Inst{31-21} = 0b11100110001; 15729let prefersSlot3 = 1; 15730let Constraints = "$Rxx32 = $Rxx32in"; 15731} 15732def M2_mpyd_nac_hh_s1 : HInst< 15733(outs DoubleRegs:$Rxx32), 15734(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15735"$Rxx32 -= mpy($Rs32.h,$Rt32.h):<<1", 15736tc_7f8ae742, TypeM>, Enc_61f0b0 { 15737let Inst{7-5} = 0b011; 15738let Inst{13-13} = 0b0; 15739let Inst{31-21} = 0b11100110101; 15740let prefersSlot3 = 1; 15741let Constraints = "$Rxx32 = $Rxx32in"; 15742} 15743def M2_mpyd_nac_hl_s0 : HInst< 15744(outs DoubleRegs:$Rxx32), 15745(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15746"$Rxx32 -= mpy($Rs32.h,$Rt32.l)", 15747tc_7f8ae742, TypeM>, Enc_61f0b0 { 15748let Inst{7-5} = 0b010; 15749let Inst{13-13} = 0b0; 15750let Inst{31-21} = 0b11100110001; 15751let prefersSlot3 = 1; 15752let Constraints = "$Rxx32 = $Rxx32in"; 15753} 15754def M2_mpyd_nac_hl_s1 : HInst< 15755(outs DoubleRegs:$Rxx32), 15756(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15757"$Rxx32 -= mpy($Rs32.h,$Rt32.l):<<1", 15758tc_7f8ae742, TypeM>, Enc_61f0b0 { 15759let Inst{7-5} = 0b010; 15760let Inst{13-13} = 0b0; 15761let Inst{31-21} = 0b11100110101; 15762let prefersSlot3 = 1; 15763let Constraints = "$Rxx32 = $Rxx32in"; 15764} 15765def M2_mpyd_nac_lh_s0 : HInst< 15766(outs DoubleRegs:$Rxx32), 15767(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15768"$Rxx32 -= mpy($Rs32.l,$Rt32.h)", 15769tc_7f8ae742, TypeM>, Enc_61f0b0 { 15770let Inst{7-5} = 0b001; 15771let Inst{13-13} = 0b0; 15772let Inst{31-21} = 0b11100110001; 15773let prefersSlot3 = 1; 15774let Constraints = "$Rxx32 = $Rxx32in"; 15775} 15776def M2_mpyd_nac_lh_s1 : HInst< 15777(outs DoubleRegs:$Rxx32), 15778(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15779"$Rxx32 -= mpy($Rs32.l,$Rt32.h):<<1", 15780tc_7f8ae742, TypeM>, Enc_61f0b0 { 15781let Inst{7-5} = 0b001; 15782let Inst{13-13} = 0b0; 15783let Inst{31-21} = 0b11100110101; 15784let prefersSlot3 = 1; 15785let Constraints = "$Rxx32 = $Rxx32in"; 15786} 15787def M2_mpyd_nac_ll_s0 : HInst< 15788(outs DoubleRegs:$Rxx32), 15789(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15790"$Rxx32 -= mpy($Rs32.l,$Rt32.l)", 15791tc_7f8ae742, TypeM>, Enc_61f0b0 { 15792let Inst{7-5} = 0b000; 15793let Inst{13-13} = 0b0; 15794let Inst{31-21} = 0b11100110001; 15795let prefersSlot3 = 1; 15796let Constraints = "$Rxx32 = $Rxx32in"; 15797} 15798def M2_mpyd_nac_ll_s1 : HInst< 15799(outs DoubleRegs:$Rxx32), 15800(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15801"$Rxx32 -= mpy($Rs32.l,$Rt32.l):<<1", 15802tc_7f8ae742, TypeM>, Enc_61f0b0 { 15803let Inst{7-5} = 0b000; 15804let Inst{13-13} = 0b0; 15805let Inst{31-21} = 0b11100110101; 15806let prefersSlot3 = 1; 15807let Constraints = "$Rxx32 = $Rxx32in"; 15808} 15809def M2_mpyd_rnd_hh_s0 : HInst< 15810(outs DoubleRegs:$Rdd32), 15811(ins IntRegs:$Rs32, IntRegs:$Rt32), 15812"$Rdd32 = mpy($Rs32.h,$Rt32.h):rnd", 15813tc_c21d7447, TypeM>, Enc_be32a5 { 15814let Inst{7-5} = 0b011; 15815let Inst{13-13} = 0b0; 15816let Inst{31-21} = 0b11100100001; 15817let prefersSlot3 = 1; 15818} 15819def M2_mpyd_rnd_hh_s1 : HInst< 15820(outs DoubleRegs:$Rdd32), 15821(ins IntRegs:$Rs32, IntRegs:$Rt32), 15822"$Rdd32 = mpy($Rs32.h,$Rt32.h):<<1:rnd", 15823tc_c21d7447, TypeM>, Enc_be32a5 { 15824let Inst{7-5} = 0b011; 15825let Inst{13-13} = 0b0; 15826let Inst{31-21} = 0b11100100101; 15827let prefersSlot3 = 1; 15828} 15829def M2_mpyd_rnd_hl_s0 : HInst< 15830(outs DoubleRegs:$Rdd32), 15831(ins IntRegs:$Rs32, IntRegs:$Rt32), 15832"$Rdd32 = mpy($Rs32.h,$Rt32.l):rnd", 15833tc_c21d7447, TypeM>, Enc_be32a5 { 15834let Inst{7-5} = 0b010; 15835let Inst{13-13} = 0b0; 15836let Inst{31-21} = 0b11100100001; 15837let prefersSlot3 = 1; 15838} 15839def M2_mpyd_rnd_hl_s1 : HInst< 15840(outs DoubleRegs:$Rdd32), 15841(ins IntRegs:$Rs32, IntRegs:$Rt32), 15842"$Rdd32 = mpy($Rs32.h,$Rt32.l):<<1:rnd", 15843tc_c21d7447, TypeM>, Enc_be32a5 { 15844let Inst{7-5} = 0b010; 15845let Inst{13-13} = 0b0; 15846let Inst{31-21} = 0b11100100101; 15847let prefersSlot3 = 1; 15848} 15849def M2_mpyd_rnd_lh_s0 : HInst< 15850(outs DoubleRegs:$Rdd32), 15851(ins IntRegs:$Rs32, IntRegs:$Rt32), 15852"$Rdd32 = mpy($Rs32.l,$Rt32.h):rnd", 15853tc_c21d7447, TypeM>, Enc_be32a5 { 15854let Inst{7-5} = 0b001; 15855let Inst{13-13} = 0b0; 15856let Inst{31-21} = 0b11100100001; 15857let prefersSlot3 = 1; 15858} 15859def M2_mpyd_rnd_lh_s1 : HInst< 15860(outs DoubleRegs:$Rdd32), 15861(ins IntRegs:$Rs32, IntRegs:$Rt32), 15862"$Rdd32 = mpy($Rs32.l,$Rt32.h):<<1:rnd", 15863tc_c21d7447, TypeM>, Enc_be32a5 { 15864let Inst{7-5} = 0b001; 15865let Inst{13-13} = 0b0; 15866let Inst{31-21} = 0b11100100101; 15867let prefersSlot3 = 1; 15868} 15869def M2_mpyd_rnd_ll_s0 : HInst< 15870(outs DoubleRegs:$Rdd32), 15871(ins IntRegs:$Rs32, IntRegs:$Rt32), 15872"$Rdd32 = mpy($Rs32.l,$Rt32.l):rnd", 15873tc_c21d7447, TypeM>, Enc_be32a5 { 15874let Inst{7-5} = 0b000; 15875let Inst{13-13} = 0b0; 15876let Inst{31-21} = 0b11100100001; 15877let prefersSlot3 = 1; 15878} 15879def M2_mpyd_rnd_ll_s1 : HInst< 15880(outs DoubleRegs:$Rdd32), 15881(ins IntRegs:$Rs32, IntRegs:$Rt32), 15882"$Rdd32 = mpy($Rs32.l,$Rt32.l):<<1:rnd", 15883tc_c21d7447, TypeM>, Enc_be32a5 { 15884let Inst{7-5} = 0b000; 15885let Inst{13-13} = 0b0; 15886let Inst{31-21} = 0b11100100101; 15887let prefersSlot3 = 1; 15888} 15889def M2_mpyi : HInst< 15890(outs IntRegs:$Rd32), 15891(ins IntRegs:$Rs32, IntRegs:$Rt32), 15892"$Rd32 = mpyi($Rs32,$Rt32)", 15893tc_c21d7447, TypeM>, Enc_5ab2be, ImmRegRel { 15894let Inst{7-5} = 0b000; 15895let Inst{13-13} = 0b0; 15896let Inst{31-21} = 0b11101101000; 15897let hasNewValue = 1; 15898let opNewValue = 0; 15899let prefersSlot3 = 1; 15900let CextOpcode = "M2_mpyi"; 15901let InputType = "reg"; 15902} 15903def M2_mpysin : HInst< 15904(outs IntRegs:$Rd32), 15905(ins IntRegs:$Rs32, u8_0Imm:$Ii), 15906"$Rd32 = -mpyi($Rs32,#$Ii)", 15907tc_38382228, TypeM>, Enc_b8c967 { 15908let Inst{13-13} = 0b0; 15909let Inst{31-21} = 0b11100000100; 15910let hasNewValue = 1; 15911let opNewValue = 0; 15912let prefersSlot3 = 1; 15913} 15914def M2_mpysip : HInst< 15915(outs IntRegs:$Rd32), 15916(ins IntRegs:$Rs32, u32_0Imm:$Ii), 15917"$Rd32 = +mpyi($Rs32,#$Ii)", 15918tc_38382228, TypeM>, Enc_b8c967 { 15919let Inst{13-13} = 0b0; 15920let Inst{31-21} = 0b11100000000; 15921let hasNewValue = 1; 15922let opNewValue = 0; 15923let prefersSlot3 = 1; 15924let isExtendable = 1; 15925let opExtendable = 2; 15926let isExtentSigned = 0; 15927let opExtentBits = 8; 15928let opExtentAlign = 0; 15929} 15930def M2_mpysmi : HInst< 15931(outs IntRegs:$Rd32), 15932(ins IntRegs:$Rs32, m32_0Imm:$Ii), 15933"$Rd32 = mpyi($Rs32,#$Ii)", 15934tc_38382228, TypeM>, ImmRegRel { 15935let hasNewValue = 1; 15936let opNewValue = 0; 15937let CextOpcode = "M2_mpyi"; 15938let InputType = "imm"; 15939let isPseudo = 1; 15940let isExtendable = 1; 15941let opExtendable = 2; 15942let isExtentSigned = 1; 15943let opExtentBits = 9; 15944let opExtentAlign = 0; 15945} 15946def M2_mpysu_up : HInst< 15947(outs IntRegs:$Rd32), 15948(ins IntRegs:$Rs32, IntRegs:$Rt32), 15949"$Rd32 = mpysu($Rs32,$Rt32)", 15950tc_c21d7447, TypeM>, Enc_5ab2be { 15951let Inst{7-5} = 0b001; 15952let Inst{13-13} = 0b0; 15953let Inst{31-21} = 0b11101101011; 15954let hasNewValue = 1; 15955let opNewValue = 0; 15956let prefersSlot3 = 1; 15957} 15958def M2_mpyu_acc_hh_s0 : HInst< 15959(outs IntRegs:$Rx32), 15960(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15961"$Rx32 += mpyu($Rs32.h,$Rt32.h)", 15962tc_7f8ae742, TypeM>, Enc_2ae154 { 15963let Inst{7-5} = 0b011; 15964let Inst{13-13} = 0b0; 15965let Inst{31-21} = 0b11101110010; 15966let hasNewValue = 1; 15967let opNewValue = 0; 15968let prefersSlot3 = 1; 15969let Constraints = "$Rx32 = $Rx32in"; 15970} 15971def M2_mpyu_acc_hh_s1 : HInst< 15972(outs IntRegs:$Rx32), 15973(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15974"$Rx32 += mpyu($Rs32.h,$Rt32.h):<<1", 15975tc_7f8ae742, TypeM>, Enc_2ae154 { 15976let Inst{7-5} = 0b011; 15977let Inst{13-13} = 0b0; 15978let Inst{31-21} = 0b11101110110; 15979let hasNewValue = 1; 15980let opNewValue = 0; 15981let prefersSlot3 = 1; 15982let Constraints = "$Rx32 = $Rx32in"; 15983} 15984def M2_mpyu_acc_hl_s0 : HInst< 15985(outs IntRegs:$Rx32), 15986(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 15987"$Rx32 += mpyu($Rs32.h,$Rt32.l)", 15988tc_7f8ae742, TypeM>, Enc_2ae154 { 15989let Inst{7-5} = 0b010; 15990let Inst{13-13} = 0b0; 15991let Inst{31-21} = 0b11101110010; 15992let hasNewValue = 1; 15993let opNewValue = 0; 15994let prefersSlot3 = 1; 15995let Constraints = "$Rx32 = $Rx32in"; 15996} 15997def M2_mpyu_acc_hl_s1 : HInst< 15998(outs IntRegs:$Rx32), 15999(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16000"$Rx32 += mpyu($Rs32.h,$Rt32.l):<<1", 16001tc_7f8ae742, TypeM>, Enc_2ae154 { 16002let Inst{7-5} = 0b010; 16003let Inst{13-13} = 0b0; 16004let Inst{31-21} = 0b11101110110; 16005let hasNewValue = 1; 16006let opNewValue = 0; 16007let prefersSlot3 = 1; 16008let Constraints = "$Rx32 = $Rx32in"; 16009} 16010def M2_mpyu_acc_lh_s0 : HInst< 16011(outs IntRegs:$Rx32), 16012(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16013"$Rx32 += mpyu($Rs32.l,$Rt32.h)", 16014tc_7f8ae742, TypeM>, Enc_2ae154 { 16015let Inst{7-5} = 0b001; 16016let Inst{13-13} = 0b0; 16017let Inst{31-21} = 0b11101110010; 16018let hasNewValue = 1; 16019let opNewValue = 0; 16020let prefersSlot3 = 1; 16021let Constraints = "$Rx32 = $Rx32in"; 16022} 16023def M2_mpyu_acc_lh_s1 : HInst< 16024(outs IntRegs:$Rx32), 16025(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16026"$Rx32 += mpyu($Rs32.l,$Rt32.h):<<1", 16027tc_7f8ae742, TypeM>, Enc_2ae154 { 16028let Inst{7-5} = 0b001; 16029let Inst{13-13} = 0b0; 16030let Inst{31-21} = 0b11101110110; 16031let hasNewValue = 1; 16032let opNewValue = 0; 16033let prefersSlot3 = 1; 16034let Constraints = "$Rx32 = $Rx32in"; 16035} 16036def M2_mpyu_acc_ll_s0 : HInst< 16037(outs IntRegs:$Rx32), 16038(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16039"$Rx32 += mpyu($Rs32.l,$Rt32.l)", 16040tc_7f8ae742, TypeM>, Enc_2ae154 { 16041let Inst{7-5} = 0b000; 16042let Inst{13-13} = 0b0; 16043let Inst{31-21} = 0b11101110010; 16044let hasNewValue = 1; 16045let opNewValue = 0; 16046let prefersSlot3 = 1; 16047let Constraints = "$Rx32 = $Rx32in"; 16048} 16049def M2_mpyu_acc_ll_s1 : HInst< 16050(outs IntRegs:$Rx32), 16051(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16052"$Rx32 += mpyu($Rs32.l,$Rt32.l):<<1", 16053tc_7f8ae742, TypeM>, Enc_2ae154 { 16054let Inst{7-5} = 0b000; 16055let Inst{13-13} = 0b0; 16056let Inst{31-21} = 0b11101110110; 16057let hasNewValue = 1; 16058let opNewValue = 0; 16059let prefersSlot3 = 1; 16060let Constraints = "$Rx32 = $Rx32in"; 16061} 16062def M2_mpyu_hh_s0 : HInst< 16063(outs IntRegs:$Rd32), 16064(ins IntRegs:$Rs32, IntRegs:$Rt32), 16065"$Rd32 = mpyu($Rs32.h,$Rt32.h)", 16066tc_c21d7447, TypeM>, Enc_5ab2be { 16067let Inst{7-5} = 0b011; 16068let Inst{13-13} = 0b0; 16069let Inst{31-21} = 0b11101100010; 16070let hasNewValue = 1; 16071let opNewValue = 0; 16072let prefersSlot3 = 1; 16073} 16074def M2_mpyu_hh_s1 : HInst< 16075(outs IntRegs:$Rd32), 16076(ins IntRegs:$Rs32, IntRegs:$Rt32), 16077"$Rd32 = mpyu($Rs32.h,$Rt32.h):<<1", 16078tc_c21d7447, TypeM>, Enc_5ab2be { 16079let Inst{7-5} = 0b011; 16080let Inst{13-13} = 0b0; 16081let Inst{31-21} = 0b11101100110; 16082let hasNewValue = 1; 16083let opNewValue = 0; 16084let prefersSlot3 = 1; 16085} 16086def M2_mpyu_hl_s0 : HInst< 16087(outs IntRegs:$Rd32), 16088(ins IntRegs:$Rs32, IntRegs:$Rt32), 16089"$Rd32 = mpyu($Rs32.h,$Rt32.l)", 16090tc_c21d7447, TypeM>, Enc_5ab2be { 16091let Inst{7-5} = 0b010; 16092let Inst{13-13} = 0b0; 16093let Inst{31-21} = 0b11101100010; 16094let hasNewValue = 1; 16095let opNewValue = 0; 16096let prefersSlot3 = 1; 16097} 16098def M2_mpyu_hl_s1 : HInst< 16099(outs IntRegs:$Rd32), 16100(ins IntRegs:$Rs32, IntRegs:$Rt32), 16101"$Rd32 = mpyu($Rs32.h,$Rt32.l):<<1", 16102tc_c21d7447, TypeM>, Enc_5ab2be { 16103let Inst{7-5} = 0b010; 16104let Inst{13-13} = 0b0; 16105let Inst{31-21} = 0b11101100110; 16106let hasNewValue = 1; 16107let opNewValue = 0; 16108let prefersSlot3 = 1; 16109} 16110def M2_mpyu_lh_s0 : HInst< 16111(outs IntRegs:$Rd32), 16112(ins IntRegs:$Rs32, IntRegs:$Rt32), 16113"$Rd32 = mpyu($Rs32.l,$Rt32.h)", 16114tc_c21d7447, TypeM>, Enc_5ab2be { 16115let Inst{7-5} = 0b001; 16116let Inst{13-13} = 0b0; 16117let Inst{31-21} = 0b11101100010; 16118let hasNewValue = 1; 16119let opNewValue = 0; 16120let prefersSlot3 = 1; 16121} 16122def M2_mpyu_lh_s1 : HInst< 16123(outs IntRegs:$Rd32), 16124(ins IntRegs:$Rs32, IntRegs:$Rt32), 16125"$Rd32 = mpyu($Rs32.l,$Rt32.h):<<1", 16126tc_c21d7447, TypeM>, Enc_5ab2be { 16127let Inst{7-5} = 0b001; 16128let Inst{13-13} = 0b0; 16129let Inst{31-21} = 0b11101100110; 16130let hasNewValue = 1; 16131let opNewValue = 0; 16132let prefersSlot3 = 1; 16133} 16134def M2_mpyu_ll_s0 : HInst< 16135(outs IntRegs:$Rd32), 16136(ins IntRegs:$Rs32, IntRegs:$Rt32), 16137"$Rd32 = mpyu($Rs32.l,$Rt32.l)", 16138tc_c21d7447, TypeM>, Enc_5ab2be { 16139let Inst{7-5} = 0b000; 16140let Inst{13-13} = 0b0; 16141let Inst{31-21} = 0b11101100010; 16142let hasNewValue = 1; 16143let opNewValue = 0; 16144let prefersSlot3 = 1; 16145} 16146def M2_mpyu_ll_s1 : HInst< 16147(outs IntRegs:$Rd32), 16148(ins IntRegs:$Rs32, IntRegs:$Rt32), 16149"$Rd32 = mpyu($Rs32.l,$Rt32.l):<<1", 16150tc_c21d7447, TypeM>, Enc_5ab2be { 16151let Inst{7-5} = 0b000; 16152let Inst{13-13} = 0b0; 16153let Inst{31-21} = 0b11101100110; 16154let hasNewValue = 1; 16155let opNewValue = 0; 16156let prefersSlot3 = 1; 16157} 16158def M2_mpyu_nac_hh_s0 : HInst< 16159(outs IntRegs:$Rx32), 16160(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16161"$Rx32 -= mpyu($Rs32.h,$Rt32.h)", 16162tc_7f8ae742, TypeM>, Enc_2ae154 { 16163let Inst{7-5} = 0b011; 16164let Inst{13-13} = 0b0; 16165let Inst{31-21} = 0b11101110011; 16166let hasNewValue = 1; 16167let opNewValue = 0; 16168let prefersSlot3 = 1; 16169let Constraints = "$Rx32 = $Rx32in"; 16170} 16171def M2_mpyu_nac_hh_s1 : HInst< 16172(outs IntRegs:$Rx32), 16173(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16174"$Rx32 -= mpyu($Rs32.h,$Rt32.h):<<1", 16175tc_7f8ae742, TypeM>, Enc_2ae154 { 16176let Inst{7-5} = 0b011; 16177let Inst{13-13} = 0b0; 16178let Inst{31-21} = 0b11101110111; 16179let hasNewValue = 1; 16180let opNewValue = 0; 16181let prefersSlot3 = 1; 16182let Constraints = "$Rx32 = $Rx32in"; 16183} 16184def M2_mpyu_nac_hl_s0 : HInst< 16185(outs IntRegs:$Rx32), 16186(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16187"$Rx32 -= mpyu($Rs32.h,$Rt32.l)", 16188tc_7f8ae742, TypeM>, Enc_2ae154 { 16189let Inst{7-5} = 0b010; 16190let Inst{13-13} = 0b0; 16191let Inst{31-21} = 0b11101110011; 16192let hasNewValue = 1; 16193let opNewValue = 0; 16194let prefersSlot3 = 1; 16195let Constraints = "$Rx32 = $Rx32in"; 16196} 16197def M2_mpyu_nac_hl_s1 : HInst< 16198(outs IntRegs:$Rx32), 16199(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16200"$Rx32 -= mpyu($Rs32.h,$Rt32.l):<<1", 16201tc_7f8ae742, TypeM>, Enc_2ae154 { 16202let Inst{7-5} = 0b010; 16203let Inst{13-13} = 0b0; 16204let Inst{31-21} = 0b11101110111; 16205let hasNewValue = 1; 16206let opNewValue = 0; 16207let prefersSlot3 = 1; 16208let Constraints = "$Rx32 = $Rx32in"; 16209} 16210def M2_mpyu_nac_lh_s0 : HInst< 16211(outs IntRegs:$Rx32), 16212(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16213"$Rx32 -= mpyu($Rs32.l,$Rt32.h)", 16214tc_7f8ae742, TypeM>, Enc_2ae154 { 16215let Inst{7-5} = 0b001; 16216let Inst{13-13} = 0b0; 16217let Inst{31-21} = 0b11101110011; 16218let hasNewValue = 1; 16219let opNewValue = 0; 16220let prefersSlot3 = 1; 16221let Constraints = "$Rx32 = $Rx32in"; 16222} 16223def M2_mpyu_nac_lh_s1 : HInst< 16224(outs IntRegs:$Rx32), 16225(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16226"$Rx32 -= mpyu($Rs32.l,$Rt32.h):<<1", 16227tc_7f8ae742, TypeM>, Enc_2ae154 { 16228let Inst{7-5} = 0b001; 16229let Inst{13-13} = 0b0; 16230let Inst{31-21} = 0b11101110111; 16231let hasNewValue = 1; 16232let opNewValue = 0; 16233let prefersSlot3 = 1; 16234let Constraints = "$Rx32 = $Rx32in"; 16235} 16236def M2_mpyu_nac_ll_s0 : HInst< 16237(outs IntRegs:$Rx32), 16238(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16239"$Rx32 -= mpyu($Rs32.l,$Rt32.l)", 16240tc_7f8ae742, TypeM>, Enc_2ae154 { 16241let Inst{7-5} = 0b000; 16242let Inst{13-13} = 0b0; 16243let Inst{31-21} = 0b11101110011; 16244let hasNewValue = 1; 16245let opNewValue = 0; 16246let prefersSlot3 = 1; 16247let Constraints = "$Rx32 = $Rx32in"; 16248} 16249def M2_mpyu_nac_ll_s1 : HInst< 16250(outs IntRegs:$Rx32), 16251(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16252"$Rx32 -= mpyu($Rs32.l,$Rt32.l):<<1", 16253tc_7f8ae742, TypeM>, Enc_2ae154 { 16254let Inst{7-5} = 0b000; 16255let Inst{13-13} = 0b0; 16256let Inst{31-21} = 0b11101110111; 16257let hasNewValue = 1; 16258let opNewValue = 0; 16259let prefersSlot3 = 1; 16260let Constraints = "$Rx32 = $Rx32in"; 16261} 16262def M2_mpyu_up : HInst< 16263(outs IntRegs:$Rd32), 16264(ins IntRegs:$Rs32, IntRegs:$Rt32), 16265"$Rd32 = mpyu($Rs32,$Rt32)", 16266tc_c21d7447, TypeM>, Enc_5ab2be { 16267let Inst{7-5} = 0b001; 16268let Inst{13-13} = 0b0; 16269let Inst{31-21} = 0b11101101010; 16270let hasNewValue = 1; 16271let opNewValue = 0; 16272let prefersSlot3 = 1; 16273} 16274def M2_mpyud_acc_hh_s0 : HInst< 16275(outs DoubleRegs:$Rxx32), 16276(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16277"$Rxx32 += mpyu($Rs32.h,$Rt32.h)", 16278tc_7f8ae742, TypeM>, Enc_61f0b0 { 16279let Inst{7-5} = 0b011; 16280let Inst{13-13} = 0b0; 16281let Inst{31-21} = 0b11100110010; 16282let prefersSlot3 = 1; 16283let Constraints = "$Rxx32 = $Rxx32in"; 16284} 16285def M2_mpyud_acc_hh_s1 : HInst< 16286(outs DoubleRegs:$Rxx32), 16287(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16288"$Rxx32 += mpyu($Rs32.h,$Rt32.h):<<1", 16289tc_7f8ae742, TypeM>, Enc_61f0b0 { 16290let Inst{7-5} = 0b011; 16291let Inst{13-13} = 0b0; 16292let Inst{31-21} = 0b11100110110; 16293let prefersSlot3 = 1; 16294let Constraints = "$Rxx32 = $Rxx32in"; 16295} 16296def M2_mpyud_acc_hl_s0 : HInst< 16297(outs DoubleRegs:$Rxx32), 16298(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16299"$Rxx32 += mpyu($Rs32.h,$Rt32.l)", 16300tc_7f8ae742, TypeM>, Enc_61f0b0 { 16301let Inst{7-5} = 0b010; 16302let Inst{13-13} = 0b0; 16303let Inst{31-21} = 0b11100110010; 16304let prefersSlot3 = 1; 16305let Constraints = "$Rxx32 = $Rxx32in"; 16306} 16307def M2_mpyud_acc_hl_s1 : HInst< 16308(outs DoubleRegs:$Rxx32), 16309(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16310"$Rxx32 += mpyu($Rs32.h,$Rt32.l):<<1", 16311tc_7f8ae742, TypeM>, Enc_61f0b0 { 16312let Inst{7-5} = 0b010; 16313let Inst{13-13} = 0b0; 16314let Inst{31-21} = 0b11100110110; 16315let prefersSlot3 = 1; 16316let Constraints = "$Rxx32 = $Rxx32in"; 16317} 16318def M2_mpyud_acc_lh_s0 : HInst< 16319(outs DoubleRegs:$Rxx32), 16320(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16321"$Rxx32 += mpyu($Rs32.l,$Rt32.h)", 16322tc_7f8ae742, TypeM>, Enc_61f0b0 { 16323let Inst{7-5} = 0b001; 16324let Inst{13-13} = 0b0; 16325let Inst{31-21} = 0b11100110010; 16326let prefersSlot3 = 1; 16327let Constraints = "$Rxx32 = $Rxx32in"; 16328} 16329def M2_mpyud_acc_lh_s1 : HInst< 16330(outs DoubleRegs:$Rxx32), 16331(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16332"$Rxx32 += mpyu($Rs32.l,$Rt32.h):<<1", 16333tc_7f8ae742, TypeM>, Enc_61f0b0 { 16334let Inst{7-5} = 0b001; 16335let Inst{13-13} = 0b0; 16336let Inst{31-21} = 0b11100110110; 16337let prefersSlot3 = 1; 16338let Constraints = "$Rxx32 = $Rxx32in"; 16339} 16340def M2_mpyud_acc_ll_s0 : HInst< 16341(outs DoubleRegs:$Rxx32), 16342(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16343"$Rxx32 += mpyu($Rs32.l,$Rt32.l)", 16344tc_7f8ae742, TypeM>, Enc_61f0b0 { 16345let Inst{7-5} = 0b000; 16346let Inst{13-13} = 0b0; 16347let Inst{31-21} = 0b11100110010; 16348let prefersSlot3 = 1; 16349let Constraints = "$Rxx32 = $Rxx32in"; 16350} 16351def M2_mpyud_acc_ll_s1 : HInst< 16352(outs DoubleRegs:$Rxx32), 16353(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16354"$Rxx32 += mpyu($Rs32.l,$Rt32.l):<<1", 16355tc_7f8ae742, TypeM>, Enc_61f0b0 { 16356let Inst{7-5} = 0b000; 16357let Inst{13-13} = 0b0; 16358let Inst{31-21} = 0b11100110110; 16359let prefersSlot3 = 1; 16360let Constraints = "$Rxx32 = $Rxx32in"; 16361} 16362def M2_mpyud_hh_s0 : HInst< 16363(outs DoubleRegs:$Rdd32), 16364(ins IntRegs:$Rs32, IntRegs:$Rt32), 16365"$Rdd32 = mpyu($Rs32.h,$Rt32.h)", 16366tc_c21d7447, TypeM>, Enc_be32a5 { 16367let Inst{7-5} = 0b011; 16368let Inst{13-13} = 0b0; 16369let Inst{31-21} = 0b11100100010; 16370let prefersSlot3 = 1; 16371} 16372def M2_mpyud_hh_s1 : HInst< 16373(outs DoubleRegs:$Rdd32), 16374(ins IntRegs:$Rs32, IntRegs:$Rt32), 16375"$Rdd32 = mpyu($Rs32.h,$Rt32.h):<<1", 16376tc_c21d7447, TypeM>, Enc_be32a5 { 16377let Inst{7-5} = 0b011; 16378let Inst{13-13} = 0b0; 16379let Inst{31-21} = 0b11100100110; 16380let prefersSlot3 = 1; 16381} 16382def M2_mpyud_hl_s0 : HInst< 16383(outs DoubleRegs:$Rdd32), 16384(ins IntRegs:$Rs32, IntRegs:$Rt32), 16385"$Rdd32 = mpyu($Rs32.h,$Rt32.l)", 16386tc_c21d7447, TypeM>, Enc_be32a5 { 16387let Inst{7-5} = 0b010; 16388let Inst{13-13} = 0b0; 16389let Inst{31-21} = 0b11100100010; 16390let prefersSlot3 = 1; 16391} 16392def M2_mpyud_hl_s1 : HInst< 16393(outs DoubleRegs:$Rdd32), 16394(ins IntRegs:$Rs32, IntRegs:$Rt32), 16395"$Rdd32 = mpyu($Rs32.h,$Rt32.l):<<1", 16396tc_c21d7447, TypeM>, Enc_be32a5 { 16397let Inst{7-5} = 0b010; 16398let Inst{13-13} = 0b0; 16399let Inst{31-21} = 0b11100100110; 16400let prefersSlot3 = 1; 16401} 16402def M2_mpyud_lh_s0 : HInst< 16403(outs DoubleRegs:$Rdd32), 16404(ins IntRegs:$Rs32, IntRegs:$Rt32), 16405"$Rdd32 = mpyu($Rs32.l,$Rt32.h)", 16406tc_c21d7447, TypeM>, Enc_be32a5 { 16407let Inst{7-5} = 0b001; 16408let Inst{13-13} = 0b0; 16409let Inst{31-21} = 0b11100100010; 16410let prefersSlot3 = 1; 16411} 16412def M2_mpyud_lh_s1 : HInst< 16413(outs DoubleRegs:$Rdd32), 16414(ins IntRegs:$Rs32, IntRegs:$Rt32), 16415"$Rdd32 = mpyu($Rs32.l,$Rt32.h):<<1", 16416tc_c21d7447, TypeM>, Enc_be32a5 { 16417let Inst{7-5} = 0b001; 16418let Inst{13-13} = 0b0; 16419let Inst{31-21} = 0b11100100110; 16420let prefersSlot3 = 1; 16421} 16422def M2_mpyud_ll_s0 : HInst< 16423(outs DoubleRegs:$Rdd32), 16424(ins IntRegs:$Rs32, IntRegs:$Rt32), 16425"$Rdd32 = mpyu($Rs32.l,$Rt32.l)", 16426tc_c21d7447, TypeM>, Enc_be32a5 { 16427let Inst{7-5} = 0b000; 16428let Inst{13-13} = 0b0; 16429let Inst{31-21} = 0b11100100010; 16430let prefersSlot3 = 1; 16431} 16432def M2_mpyud_ll_s1 : HInst< 16433(outs DoubleRegs:$Rdd32), 16434(ins IntRegs:$Rs32, IntRegs:$Rt32), 16435"$Rdd32 = mpyu($Rs32.l,$Rt32.l):<<1", 16436tc_c21d7447, TypeM>, Enc_be32a5 { 16437let Inst{7-5} = 0b000; 16438let Inst{13-13} = 0b0; 16439let Inst{31-21} = 0b11100100110; 16440let prefersSlot3 = 1; 16441} 16442def M2_mpyud_nac_hh_s0 : HInst< 16443(outs DoubleRegs:$Rxx32), 16444(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16445"$Rxx32 -= mpyu($Rs32.h,$Rt32.h)", 16446tc_7f8ae742, TypeM>, Enc_61f0b0 { 16447let Inst{7-5} = 0b011; 16448let Inst{13-13} = 0b0; 16449let Inst{31-21} = 0b11100110011; 16450let prefersSlot3 = 1; 16451let Constraints = "$Rxx32 = $Rxx32in"; 16452} 16453def M2_mpyud_nac_hh_s1 : HInst< 16454(outs DoubleRegs:$Rxx32), 16455(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16456"$Rxx32 -= mpyu($Rs32.h,$Rt32.h):<<1", 16457tc_7f8ae742, TypeM>, Enc_61f0b0 { 16458let Inst{7-5} = 0b011; 16459let Inst{13-13} = 0b0; 16460let Inst{31-21} = 0b11100110111; 16461let prefersSlot3 = 1; 16462let Constraints = "$Rxx32 = $Rxx32in"; 16463} 16464def M2_mpyud_nac_hl_s0 : HInst< 16465(outs DoubleRegs:$Rxx32), 16466(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16467"$Rxx32 -= mpyu($Rs32.h,$Rt32.l)", 16468tc_7f8ae742, TypeM>, Enc_61f0b0 { 16469let Inst{7-5} = 0b010; 16470let Inst{13-13} = 0b0; 16471let Inst{31-21} = 0b11100110011; 16472let prefersSlot3 = 1; 16473let Constraints = "$Rxx32 = $Rxx32in"; 16474} 16475def M2_mpyud_nac_hl_s1 : HInst< 16476(outs DoubleRegs:$Rxx32), 16477(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16478"$Rxx32 -= mpyu($Rs32.h,$Rt32.l):<<1", 16479tc_7f8ae742, TypeM>, Enc_61f0b0 { 16480let Inst{7-5} = 0b010; 16481let Inst{13-13} = 0b0; 16482let Inst{31-21} = 0b11100110111; 16483let prefersSlot3 = 1; 16484let Constraints = "$Rxx32 = $Rxx32in"; 16485} 16486def M2_mpyud_nac_lh_s0 : HInst< 16487(outs DoubleRegs:$Rxx32), 16488(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16489"$Rxx32 -= mpyu($Rs32.l,$Rt32.h)", 16490tc_7f8ae742, TypeM>, Enc_61f0b0 { 16491let Inst{7-5} = 0b001; 16492let Inst{13-13} = 0b0; 16493let Inst{31-21} = 0b11100110011; 16494let prefersSlot3 = 1; 16495let Constraints = "$Rxx32 = $Rxx32in"; 16496} 16497def M2_mpyud_nac_lh_s1 : HInst< 16498(outs DoubleRegs:$Rxx32), 16499(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16500"$Rxx32 -= mpyu($Rs32.l,$Rt32.h):<<1", 16501tc_7f8ae742, TypeM>, Enc_61f0b0 { 16502let Inst{7-5} = 0b001; 16503let Inst{13-13} = 0b0; 16504let Inst{31-21} = 0b11100110111; 16505let prefersSlot3 = 1; 16506let Constraints = "$Rxx32 = $Rxx32in"; 16507} 16508def M2_mpyud_nac_ll_s0 : HInst< 16509(outs DoubleRegs:$Rxx32), 16510(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16511"$Rxx32 -= mpyu($Rs32.l,$Rt32.l)", 16512tc_7f8ae742, TypeM>, Enc_61f0b0 { 16513let Inst{7-5} = 0b000; 16514let Inst{13-13} = 0b0; 16515let Inst{31-21} = 0b11100110011; 16516let prefersSlot3 = 1; 16517let Constraints = "$Rxx32 = $Rxx32in"; 16518} 16519def M2_mpyud_nac_ll_s1 : HInst< 16520(outs DoubleRegs:$Rxx32), 16521(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16522"$Rxx32 -= mpyu($Rs32.l,$Rt32.l):<<1", 16523tc_7f8ae742, TypeM>, Enc_61f0b0 { 16524let Inst{7-5} = 0b000; 16525let Inst{13-13} = 0b0; 16526let Inst{31-21} = 0b11100110111; 16527let prefersSlot3 = 1; 16528let Constraints = "$Rxx32 = $Rxx32in"; 16529} 16530def M2_mpyui : HInst< 16531(outs IntRegs:$Rd32), 16532(ins IntRegs:$Rs32, IntRegs:$Rt32), 16533"$Rd32 = mpyui($Rs32,$Rt32)", 16534tc_c21d7447, TypeM> { 16535let hasNewValue = 1; 16536let opNewValue = 0; 16537let isPseudo = 1; 16538let isCodeGenOnly = 1; 16539} 16540def M2_nacci : HInst< 16541(outs IntRegs:$Rx32), 16542(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16543"$Rx32 -= add($Rs32,$Rt32)", 16544tc_2c13e7f5, TypeM>, Enc_2ae154 { 16545let Inst{7-5} = 0b001; 16546let Inst{13-13} = 0b0; 16547let Inst{31-21} = 0b11101111100; 16548let hasNewValue = 1; 16549let opNewValue = 0; 16550let prefersSlot3 = 1; 16551let InputType = "reg"; 16552let Constraints = "$Rx32 = $Rx32in"; 16553} 16554def M2_naccii : HInst< 16555(outs IntRegs:$Rx32), 16556(ins IntRegs:$Rx32in, IntRegs:$Rs32, s32_0Imm:$Ii), 16557"$Rx32 -= add($Rs32,#$Ii)", 16558tc_2c13e7f5, TypeM>, Enc_c90aca { 16559let Inst{13-13} = 0b0; 16560let Inst{31-21} = 0b11100010100; 16561let hasNewValue = 1; 16562let opNewValue = 0; 16563let prefersSlot3 = 1; 16564let InputType = "imm"; 16565let isExtendable = 1; 16566let opExtendable = 3; 16567let isExtentSigned = 1; 16568let opExtentBits = 8; 16569let opExtentAlign = 0; 16570let Constraints = "$Rx32 = $Rx32in"; 16571} 16572def M2_subacc : HInst< 16573(outs IntRegs:$Rx32), 16574(ins IntRegs:$Rx32in, IntRegs:$Rt32, IntRegs:$Rs32), 16575"$Rx32 += sub($Rt32,$Rs32)", 16576tc_2c13e7f5, TypeM>, Enc_a568d4 { 16577let Inst{7-5} = 0b011; 16578let Inst{13-13} = 0b0; 16579let Inst{31-21} = 0b11101111000; 16580let hasNewValue = 1; 16581let opNewValue = 0; 16582let prefersSlot3 = 1; 16583let InputType = "reg"; 16584let Constraints = "$Rx32 = $Rx32in"; 16585} 16586def M2_vabsdiffh : HInst< 16587(outs DoubleRegs:$Rdd32), 16588(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 16589"$Rdd32 = vabsdiffh($Rtt32,$Rss32)", 16590tc_0dfac0a7, TypeM>, Enc_ea23e4 { 16591let Inst{7-5} = 0b000; 16592let Inst{13-13} = 0b0; 16593let Inst{31-21} = 0b11101000011; 16594let prefersSlot3 = 1; 16595} 16596def M2_vabsdiffw : HInst< 16597(outs DoubleRegs:$Rdd32), 16598(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 16599"$Rdd32 = vabsdiffw($Rtt32,$Rss32)", 16600tc_0dfac0a7, TypeM>, Enc_ea23e4 { 16601let Inst{7-5} = 0b000; 16602let Inst{13-13} = 0b0; 16603let Inst{31-21} = 0b11101000001; 16604let prefersSlot3 = 1; 16605} 16606def M2_vcmac_s0_sat_i : HInst< 16607(outs DoubleRegs:$Rxx32), 16608(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16609"$Rxx32 += vcmpyi($Rss32,$Rtt32):sat", 16610tc_7f8ae742, TypeM>, Enc_88c16c { 16611let Inst{7-5} = 0b100; 16612let Inst{13-13} = 0b0; 16613let Inst{31-21} = 0b11101010010; 16614let prefersSlot3 = 1; 16615let Defs = [USR_OVF]; 16616let Constraints = "$Rxx32 = $Rxx32in"; 16617} 16618def M2_vcmac_s0_sat_r : HInst< 16619(outs DoubleRegs:$Rxx32), 16620(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16621"$Rxx32 += vcmpyr($Rss32,$Rtt32):sat", 16622tc_7f8ae742, TypeM>, Enc_88c16c { 16623let Inst{7-5} = 0b100; 16624let Inst{13-13} = 0b0; 16625let Inst{31-21} = 0b11101010001; 16626let prefersSlot3 = 1; 16627let Defs = [USR_OVF]; 16628let Constraints = "$Rxx32 = $Rxx32in"; 16629} 16630def M2_vcmpy_s0_sat_i : HInst< 16631(outs DoubleRegs:$Rdd32), 16632(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16633"$Rdd32 = vcmpyi($Rss32,$Rtt32):sat", 16634tc_c21d7447, TypeM>, Enc_a56825 { 16635let Inst{7-5} = 0b110; 16636let Inst{13-13} = 0b0; 16637let Inst{31-21} = 0b11101000010; 16638let prefersSlot3 = 1; 16639let Defs = [USR_OVF]; 16640} 16641def M2_vcmpy_s0_sat_r : HInst< 16642(outs DoubleRegs:$Rdd32), 16643(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16644"$Rdd32 = vcmpyr($Rss32,$Rtt32):sat", 16645tc_c21d7447, TypeM>, Enc_a56825 { 16646let Inst{7-5} = 0b110; 16647let Inst{13-13} = 0b0; 16648let Inst{31-21} = 0b11101000001; 16649let prefersSlot3 = 1; 16650let Defs = [USR_OVF]; 16651} 16652def M2_vcmpy_s1_sat_i : HInst< 16653(outs DoubleRegs:$Rdd32), 16654(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16655"$Rdd32 = vcmpyi($Rss32,$Rtt32):<<1:sat", 16656tc_c21d7447, TypeM>, Enc_a56825 { 16657let Inst{7-5} = 0b110; 16658let Inst{13-13} = 0b0; 16659let Inst{31-21} = 0b11101000110; 16660let prefersSlot3 = 1; 16661let Defs = [USR_OVF]; 16662} 16663def M2_vcmpy_s1_sat_r : HInst< 16664(outs DoubleRegs:$Rdd32), 16665(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16666"$Rdd32 = vcmpyr($Rss32,$Rtt32):<<1:sat", 16667tc_c21d7447, TypeM>, Enc_a56825 { 16668let Inst{7-5} = 0b110; 16669let Inst{13-13} = 0b0; 16670let Inst{31-21} = 0b11101000101; 16671let prefersSlot3 = 1; 16672let Defs = [USR_OVF]; 16673} 16674def M2_vdmacs_s0 : HInst< 16675(outs DoubleRegs:$Rxx32), 16676(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16677"$Rxx32 += vdmpy($Rss32,$Rtt32):sat", 16678tc_7f8ae742, TypeM>, Enc_88c16c { 16679let Inst{7-5} = 0b100; 16680let Inst{13-13} = 0b0; 16681let Inst{31-21} = 0b11101010000; 16682let prefersSlot3 = 1; 16683let Defs = [USR_OVF]; 16684let Constraints = "$Rxx32 = $Rxx32in"; 16685} 16686def M2_vdmacs_s1 : HInst< 16687(outs DoubleRegs:$Rxx32), 16688(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16689"$Rxx32 += vdmpy($Rss32,$Rtt32):<<1:sat", 16690tc_7f8ae742, TypeM>, Enc_88c16c { 16691let Inst{7-5} = 0b100; 16692let Inst{13-13} = 0b0; 16693let Inst{31-21} = 0b11101010100; 16694let prefersSlot3 = 1; 16695let Defs = [USR_OVF]; 16696let Constraints = "$Rxx32 = $Rxx32in"; 16697} 16698def M2_vdmpyrs_s0 : HInst< 16699(outs IntRegs:$Rd32), 16700(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16701"$Rd32 = vdmpy($Rss32,$Rtt32):rnd:sat", 16702tc_c21d7447, TypeM>, Enc_d2216a { 16703let Inst{7-5} = 0b000; 16704let Inst{13-13} = 0b0; 16705let Inst{31-21} = 0b11101001000; 16706let hasNewValue = 1; 16707let opNewValue = 0; 16708let prefersSlot3 = 1; 16709let Defs = [USR_OVF]; 16710} 16711def M2_vdmpyrs_s1 : HInst< 16712(outs IntRegs:$Rd32), 16713(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16714"$Rd32 = vdmpy($Rss32,$Rtt32):<<1:rnd:sat", 16715tc_c21d7447, TypeM>, Enc_d2216a { 16716let Inst{7-5} = 0b000; 16717let Inst{13-13} = 0b0; 16718let Inst{31-21} = 0b11101001100; 16719let hasNewValue = 1; 16720let opNewValue = 0; 16721let prefersSlot3 = 1; 16722let Defs = [USR_OVF]; 16723} 16724def M2_vdmpys_s0 : HInst< 16725(outs DoubleRegs:$Rdd32), 16726(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16727"$Rdd32 = vdmpy($Rss32,$Rtt32):sat", 16728tc_c21d7447, TypeM>, Enc_a56825 { 16729let Inst{7-5} = 0b100; 16730let Inst{13-13} = 0b0; 16731let Inst{31-21} = 0b11101000000; 16732let prefersSlot3 = 1; 16733let Defs = [USR_OVF]; 16734} 16735def M2_vdmpys_s1 : HInst< 16736(outs DoubleRegs:$Rdd32), 16737(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16738"$Rdd32 = vdmpy($Rss32,$Rtt32):<<1:sat", 16739tc_c21d7447, TypeM>, Enc_a56825 { 16740let Inst{7-5} = 0b100; 16741let Inst{13-13} = 0b0; 16742let Inst{31-21} = 0b11101000100; 16743let prefersSlot3 = 1; 16744let Defs = [USR_OVF]; 16745} 16746def M2_vmac2 : HInst< 16747(outs DoubleRegs:$Rxx32), 16748(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16749"$Rxx32 += vmpyh($Rs32,$Rt32)", 16750tc_7f8ae742, TypeM>, Enc_61f0b0 { 16751let Inst{7-5} = 0b001; 16752let Inst{13-13} = 0b0; 16753let Inst{31-21} = 0b11100111001; 16754let prefersSlot3 = 1; 16755let Constraints = "$Rxx32 = $Rxx32in"; 16756} 16757def M2_vmac2es : HInst< 16758(outs DoubleRegs:$Rxx32), 16759(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16760"$Rxx32 += vmpyeh($Rss32,$Rtt32)", 16761tc_7f8ae742, TypeM>, Enc_88c16c { 16762let Inst{7-5} = 0b010; 16763let Inst{13-13} = 0b0; 16764let Inst{31-21} = 0b11101010001; 16765let prefersSlot3 = 1; 16766let Constraints = "$Rxx32 = $Rxx32in"; 16767} 16768def M2_vmac2es_s0 : HInst< 16769(outs DoubleRegs:$Rxx32), 16770(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16771"$Rxx32 += vmpyeh($Rss32,$Rtt32):sat", 16772tc_7f8ae742, TypeM>, Enc_88c16c { 16773let Inst{7-5} = 0b110; 16774let Inst{13-13} = 0b0; 16775let Inst{31-21} = 0b11101010000; 16776let prefersSlot3 = 1; 16777let Defs = [USR_OVF]; 16778let Constraints = "$Rxx32 = $Rxx32in"; 16779} 16780def M2_vmac2es_s1 : HInst< 16781(outs DoubleRegs:$Rxx32), 16782(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16783"$Rxx32 += vmpyeh($Rss32,$Rtt32):<<1:sat", 16784tc_7f8ae742, TypeM>, Enc_88c16c { 16785let Inst{7-5} = 0b110; 16786let Inst{13-13} = 0b0; 16787let Inst{31-21} = 0b11101010100; 16788let prefersSlot3 = 1; 16789let Defs = [USR_OVF]; 16790let Constraints = "$Rxx32 = $Rxx32in"; 16791} 16792def M2_vmac2s_s0 : HInst< 16793(outs DoubleRegs:$Rxx32), 16794(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16795"$Rxx32 += vmpyh($Rs32,$Rt32):sat", 16796tc_7f8ae742, TypeM>, Enc_61f0b0 { 16797let Inst{7-5} = 0b101; 16798let Inst{13-13} = 0b0; 16799let Inst{31-21} = 0b11100111000; 16800let prefersSlot3 = 1; 16801let Defs = [USR_OVF]; 16802let Constraints = "$Rxx32 = $Rxx32in"; 16803} 16804def M2_vmac2s_s1 : HInst< 16805(outs DoubleRegs:$Rxx32), 16806(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16807"$Rxx32 += vmpyh($Rs32,$Rt32):<<1:sat", 16808tc_7f8ae742, TypeM>, Enc_61f0b0 { 16809let Inst{7-5} = 0b101; 16810let Inst{13-13} = 0b0; 16811let Inst{31-21} = 0b11100111100; 16812let prefersSlot3 = 1; 16813let Defs = [USR_OVF]; 16814let Constraints = "$Rxx32 = $Rxx32in"; 16815} 16816def M2_vmac2su_s0 : HInst< 16817(outs DoubleRegs:$Rxx32), 16818(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16819"$Rxx32 += vmpyhsu($Rs32,$Rt32):sat", 16820tc_7f8ae742, TypeM>, Enc_61f0b0 { 16821let Inst{7-5} = 0b101; 16822let Inst{13-13} = 0b0; 16823let Inst{31-21} = 0b11100111011; 16824let prefersSlot3 = 1; 16825let Defs = [USR_OVF]; 16826let Constraints = "$Rxx32 = $Rxx32in"; 16827} 16828def M2_vmac2su_s1 : HInst< 16829(outs DoubleRegs:$Rxx32), 16830(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 16831"$Rxx32 += vmpyhsu($Rs32,$Rt32):<<1:sat", 16832tc_7f8ae742, TypeM>, Enc_61f0b0 { 16833let Inst{7-5} = 0b101; 16834let Inst{13-13} = 0b0; 16835let Inst{31-21} = 0b11100111111; 16836let prefersSlot3 = 1; 16837let Defs = [USR_OVF]; 16838let Constraints = "$Rxx32 = $Rxx32in"; 16839} 16840def M2_vmpy2es_s0 : HInst< 16841(outs DoubleRegs:$Rdd32), 16842(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16843"$Rdd32 = vmpyeh($Rss32,$Rtt32):sat", 16844tc_c21d7447, TypeM>, Enc_a56825 { 16845let Inst{7-5} = 0b110; 16846let Inst{13-13} = 0b0; 16847let Inst{31-21} = 0b11101000000; 16848let prefersSlot3 = 1; 16849let Defs = [USR_OVF]; 16850} 16851def M2_vmpy2es_s1 : HInst< 16852(outs DoubleRegs:$Rdd32), 16853(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16854"$Rdd32 = vmpyeh($Rss32,$Rtt32):<<1:sat", 16855tc_c21d7447, TypeM>, Enc_a56825 { 16856let Inst{7-5} = 0b110; 16857let Inst{13-13} = 0b0; 16858let Inst{31-21} = 0b11101000100; 16859let prefersSlot3 = 1; 16860let Defs = [USR_OVF]; 16861} 16862def M2_vmpy2s_s0 : HInst< 16863(outs DoubleRegs:$Rdd32), 16864(ins IntRegs:$Rs32, IntRegs:$Rt32), 16865"$Rdd32 = vmpyh($Rs32,$Rt32):sat", 16866tc_c21d7447, TypeM>, Enc_be32a5 { 16867let Inst{7-5} = 0b101; 16868let Inst{13-13} = 0b0; 16869let Inst{31-21} = 0b11100101000; 16870let prefersSlot3 = 1; 16871let Defs = [USR_OVF]; 16872} 16873def M2_vmpy2s_s0pack : HInst< 16874(outs IntRegs:$Rd32), 16875(ins IntRegs:$Rs32, IntRegs:$Rt32), 16876"$Rd32 = vmpyh($Rs32,$Rt32):rnd:sat", 16877tc_c21d7447, TypeM>, Enc_5ab2be { 16878let Inst{7-5} = 0b111; 16879let Inst{13-13} = 0b0; 16880let Inst{31-21} = 0b11101101001; 16881let hasNewValue = 1; 16882let opNewValue = 0; 16883let prefersSlot3 = 1; 16884let Defs = [USR_OVF]; 16885} 16886def M2_vmpy2s_s1 : HInst< 16887(outs DoubleRegs:$Rdd32), 16888(ins IntRegs:$Rs32, IntRegs:$Rt32), 16889"$Rdd32 = vmpyh($Rs32,$Rt32):<<1:sat", 16890tc_c21d7447, TypeM>, Enc_be32a5 { 16891let Inst{7-5} = 0b101; 16892let Inst{13-13} = 0b0; 16893let Inst{31-21} = 0b11100101100; 16894let prefersSlot3 = 1; 16895let Defs = [USR_OVF]; 16896} 16897def M2_vmpy2s_s1pack : HInst< 16898(outs IntRegs:$Rd32), 16899(ins IntRegs:$Rs32, IntRegs:$Rt32), 16900"$Rd32 = vmpyh($Rs32,$Rt32):<<1:rnd:sat", 16901tc_c21d7447, TypeM>, Enc_5ab2be { 16902let Inst{7-5} = 0b111; 16903let Inst{13-13} = 0b0; 16904let Inst{31-21} = 0b11101101101; 16905let hasNewValue = 1; 16906let opNewValue = 0; 16907let prefersSlot3 = 1; 16908let Defs = [USR_OVF]; 16909} 16910def M2_vmpy2su_s0 : HInst< 16911(outs DoubleRegs:$Rdd32), 16912(ins IntRegs:$Rs32, IntRegs:$Rt32), 16913"$Rdd32 = vmpyhsu($Rs32,$Rt32):sat", 16914tc_c21d7447, TypeM>, Enc_be32a5 { 16915let Inst{7-5} = 0b111; 16916let Inst{13-13} = 0b0; 16917let Inst{31-21} = 0b11100101000; 16918let prefersSlot3 = 1; 16919let Defs = [USR_OVF]; 16920} 16921def M2_vmpy2su_s1 : HInst< 16922(outs DoubleRegs:$Rdd32), 16923(ins IntRegs:$Rs32, IntRegs:$Rt32), 16924"$Rdd32 = vmpyhsu($Rs32,$Rt32):<<1:sat", 16925tc_c21d7447, TypeM>, Enc_be32a5 { 16926let Inst{7-5} = 0b111; 16927let Inst{13-13} = 0b0; 16928let Inst{31-21} = 0b11100101100; 16929let prefersSlot3 = 1; 16930let Defs = [USR_OVF]; 16931} 16932def M2_vraddh : HInst< 16933(outs IntRegs:$Rd32), 16934(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16935"$Rd32 = vraddh($Rss32,$Rtt32)", 16936tc_c21d7447, TypeM>, Enc_d2216a { 16937let Inst{7-5} = 0b111; 16938let Inst{13-13} = 0b0; 16939let Inst{31-21} = 0b11101001001; 16940let hasNewValue = 1; 16941let opNewValue = 0; 16942let prefersSlot3 = 1; 16943} 16944def M2_vradduh : HInst< 16945(outs IntRegs:$Rd32), 16946(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16947"$Rd32 = vradduh($Rss32,$Rtt32)", 16948tc_c21d7447, TypeM>, Enc_d2216a { 16949let Inst{7-5} = 0b001; 16950let Inst{13-13} = 0b0; 16951let Inst{31-21} = 0b11101001000; 16952let hasNewValue = 1; 16953let opNewValue = 0; 16954let prefersSlot3 = 1; 16955} 16956def M2_vrcmaci_s0 : HInst< 16957(outs DoubleRegs:$Rxx32), 16958(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16959"$Rxx32 += vrcmpyi($Rss32,$Rtt32)", 16960tc_7f8ae742, TypeM>, Enc_88c16c { 16961let Inst{7-5} = 0b000; 16962let Inst{13-13} = 0b0; 16963let Inst{31-21} = 0b11101010000; 16964let prefersSlot3 = 1; 16965let Constraints = "$Rxx32 = $Rxx32in"; 16966} 16967def M2_vrcmaci_s0c : HInst< 16968(outs DoubleRegs:$Rxx32), 16969(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16970"$Rxx32 += vrcmpyi($Rss32,$Rtt32*)", 16971tc_7f8ae742, TypeM>, Enc_88c16c { 16972let Inst{7-5} = 0b000; 16973let Inst{13-13} = 0b0; 16974let Inst{31-21} = 0b11101010010; 16975let prefersSlot3 = 1; 16976let Constraints = "$Rxx32 = $Rxx32in"; 16977} 16978def M2_vrcmacr_s0 : HInst< 16979(outs DoubleRegs:$Rxx32), 16980(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16981"$Rxx32 += vrcmpyr($Rss32,$Rtt32)", 16982tc_7f8ae742, TypeM>, Enc_88c16c { 16983let Inst{7-5} = 0b001; 16984let Inst{13-13} = 0b0; 16985let Inst{31-21} = 0b11101010000; 16986let prefersSlot3 = 1; 16987let Constraints = "$Rxx32 = $Rxx32in"; 16988} 16989def M2_vrcmacr_s0c : HInst< 16990(outs DoubleRegs:$Rxx32), 16991(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 16992"$Rxx32 += vrcmpyr($Rss32,$Rtt32*)", 16993tc_7f8ae742, TypeM>, Enc_88c16c { 16994let Inst{7-5} = 0b001; 16995let Inst{13-13} = 0b0; 16996let Inst{31-21} = 0b11101010011; 16997let prefersSlot3 = 1; 16998let Constraints = "$Rxx32 = $Rxx32in"; 16999} 17000def M2_vrcmpyi_s0 : HInst< 17001(outs DoubleRegs:$Rdd32), 17002(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17003"$Rdd32 = vrcmpyi($Rss32,$Rtt32)", 17004tc_c21d7447, TypeM>, Enc_a56825 { 17005let Inst{7-5} = 0b000; 17006let Inst{13-13} = 0b0; 17007let Inst{31-21} = 0b11101000000; 17008let prefersSlot3 = 1; 17009} 17010def M2_vrcmpyi_s0c : HInst< 17011(outs DoubleRegs:$Rdd32), 17012(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17013"$Rdd32 = vrcmpyi($Rss32,$Rtt32*)", 17014tc_c21d7447, TypeM>, Enc_a56825 { 17015let Inst{7-5} = 0b000; 17016let Inst{13-13} = 0b0; 17017let Inst{31-21} = 0b11101000010; 17018let prefersSlot3 = 1; 17019} 17020def M2_vrcmpyr_s0 : HInst< 17021(outs DoubleRegs:$Rdd32), 17022(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17023"$Rdd32 = vrcmpyr($Rss32,$Rtt32)", 17024tc_c21d7447, TypeM>, Enc_a56825 { 17025let Inst{7-5} = 0b001; 17026let Inst{13-13} = 0b0; 17027let Inst{31-21} = 0b11101000000; 17028let prefersSlot3 = 1; 17029} 17030def M2_vrcmpyr_s0c : HInst< 17031(outs DoubleRegs:$Rdd32), 17032(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17033"$Rdd32 = vrcmpyr($Rss32,$Rtt32*)", 17034tc_c21d7447, TypeM>, Enc_a56825 { 17035let Inst{7-5} = 0b001; 17036let Inst{13-13} = 0b0; 17037let Inst{31-21} = 0b11101000011; 17038let prefersSlot3 = 1; 17039} 17040def M2_vrcmpys_acc_s1 : HInst< 17041(outs DoubleRegs:$Rxx32), 17042(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 17043"$Rxx32 += vrcmpys($Rss32,$Rt32):<<1:sat", 17044tc_7f8ae742, TypeM> { 17045let isPseudo = 1; 17046let Constraints = "$Rxx32 = $Rxx32in"; 17047} 17048def M2_vrcmpys_acc_s1_h : HInst< 17049(outs DoubleRegs:$Rxx32), 17050(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17051"$Rxx32 += vrcmpys($Rss32,$Rtt32):<<1:sat:raw:hi", 17052tc_7f8ae742, TypeM>, Enc_88c16c { 17053let Inst{7-5} = 0b100; 17054let Inst{13-13} = 0b0; 17055let Inst{31-21} = 0b11101010101; 17056let prefersSlot3 = 1; 17057let Defs = [USR_OVF]; 17058let Constraints = "$Rxx32 = $Rxx32in"; 17059} 17060def M2_vrcmpys_acc_s1_l : HInst< 17061(outs DoubleRegs:$Rxx32), 17062(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17063"$Rxx32 += vrcmpys($Rss32,$Rtt32):<<1:sat:raw:lo", 17064tc_7f8ae742, TypeM>, Enc_88c16c { 17065let Inst{7-5} = 0b100; 17066let Inst{13-13} = 0b0; 17067let Inst{31-21} = 0b11101010111; 17068let prefersSlot3 = 1; 17069let Defs = [USR_OVF]; 17070let Constraints = "$Rxx32 = $Rxx32in"; 17071} 17072def M2_vrcmpys_s1 : HInst< 17073(outs DoubleRegs:$Rdd32), 17074(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 17075"$Rdd32 = vrcmpys($Rss32,$Rt32):<<1:sat", 17076tc_c21d7447, TypeM> { 17077let isPseudo = 1; 17078} 17079def M2_vrcmpys_s1_h : HInst< 17080(outs DoubleRegs:$Rdd32), 17081(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17082"$Rdd32 = vrcmpys($Rss32,$Rtt32):<<1:sat:raw:hi", 17083tc_c21d7447, TypeM>, Enc_a56825 { 17084let Inst{7-5} = 0b100; 17085let Inst{13-13} = 0b0; 17086let Inst{31-21} = 0b11101000101; 17087let prefersSlot3 = 1; 17088let Defs = [USR_OVF]; 17089} 17090def M2_vrcmpys_s1_l : HInst< 17091(outs DoubleRegs:$Rdd32), 17092(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17093"$Rdd32 = vrcmpys($Rss32,$Rtt32):<<1:sat:raw:lo", 17094tc_c21d7447, TypeM>, Enc_a56825 { 17095let Inst{7-5} = 0b100; 17096let Inst{13-13} = 0b0; 17097let Inst{31-21} = 0b11101000111; 17098let prefersSlot3 = 1; 17099let Defs = [USR_OVF]; 17100} 17101def M2_vrcmpys_s1rp : HInst< 17102(outs IntRegs:$Rd32), 17103(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 17104"$Rd32 = vrcmpys($Rss32,$Rt32):<<1:rnd:sat", 17105tc_c21d7447, TypeM> { 17106let hasNewValue = 1; 17107let opNewValue = 0; 17108let isPseudo = 1; 17109} 17110def M2_vrcmpys_s1rp_h : HInst< 17111(outs IntRegs:$Rd32), 17112(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17113"$Rd32 = vrcmpys($Rss32,$Rtt32):<<1:rnd:sat:raw:hi", 17114tc_c21d7447, TypeM>, Enc_d2216a { 17115let Inst{7-5} = 0b110; 17116let Inst{13-13} = 0b0; 17117let Inst{31-21} = 0b11101001101; 17118let hasNewValue = 1; 17119let opNewValue = 0; 17120let prefersSlot3 = 1; 17121let Defs = [USR_OVF]; 17122} 17123def M2_vrcmpys_s1rp_l : HInst< 17124(outs IntRegs:$Rd32), 17125(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17126"$Rd32 = vrcmpys($Rss32,$Rtt32):<<1:rnd:sat:raw:lo", 17127tc_c21d7447, TypeM>, Enc_d2216a { 17128let Inst{7-5} = 0b111; 17129let Inst{13-13} = 0b0; 17130let Inst{31-21} = 0b11101001101; 17131let hasNewValue = 1; 17132let opNewValue = 0; 17133let prefersSlot3 = 1; 17134let Defs = [USR_OVF]; 17135} 17136def M2_vrmac_s0 : HInst< 17137(outs DoubleRegs:$Rxx32), 17138(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17139"$Rxx32 += vrmpyh($Rss32,$Rtt32)", 17140tc_7f8ae742, TypeM>, Enc_88c16c { 17141let Inst{7-5} = 0b010; 17142let Inst{13-13} = 0b0; 17143let Inst{31-21} = 0b11101010000; 17144let prefersSlot3 = 1; 17145let Constraints = "$Rxx32 = $Rxx32in"; 17146} 17147def M2_vrmpy_s0 : HInst< 17148(outs DoubleRegs:$Rdd32), 17149(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17150"$Rdd32 = vrmpyh($Rss32,$Rtt32)", 17151tc_c21d7447, TypeM>, Enc_a56825 { 17152let Inst{7-5} = 0b010; 17153let Inst{13-13} = 0b0; 17154let Inst{31-21} = 0b11101000000; 17155let prefersSlot3 = 1; 17156} 17157def M2_xor_xacc : HInst< 17158(outs IntRegs:$Rx32), 17159(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17160"$Rx32 ^= xor($Rs32,$Rt32)", 17161tc_a4e22bbd, TypeM>, Enc_2ae154 { 17162let Inst{7-5} = 0b011; 17163let Inst{13-13} = 0b0; 17164let Inst{31-21} = 0b11101111100; 17165let hasNewValue = 1; 17166let opNewValue = 0; 17167let prefersSlot3 = 1; 17168let InputType = "reg"; 17169let Constraints = "$Rx32 = $Rx32in"; 17170} 17171def M4_and_and : HInst< 17172(outs IntRegs:$Rx32), 17173(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17174"$Rx32 &= and($Rs32,$Rt32)", 17175tc_a4e22bbd, TypeM>, Enc_2ae154 { 17176let Inst{7-5} = 0b000; 17177let Inst{13-13} = 0b0; 17178let Inst{31-21} = 0b11101111010; 17179let hasNewValue = 1; 17180let opNewValue = 0; 17181let prefersSlot3 = 1; 17182let InputType = "reg"; 17183let Constraints = "$Rx32 = $Rx32in"; 17184} 17185def M4_and_andn : HInst< 17186(outs IntRegs:$Rx32), 17187(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17188"$Rx32 &= and($Rs32,~$Rt32)", 17189tc_a4e22bbd, TypeM>, Enc_2ae154 { 17190let Inst{7-5} = 0b001; 17191let Inst{13-13} = 0b0; 17192let Inst{31-21} = 0b11101111001; 17193let hasNewValue = 1; 17194let opNewValue = 0; 17195let prefersSlot3 = 1; 17196let InputType = "reg"; 17197let Constraints = "$Rx32 = $Rx32in"; 17198} 17199def M4_and_or : HInst< 17200(outs IntRegs:$Rx32), 17201(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17202"$Rx32 &= or($Rs32,$Rt32)", 17203tc_a4e22bbd, TypeM>, Enc_2ae154 { 17204let Inst{7-5} = 0b001; 17205let Inst{13-13} = 0b0; 17206let Inst{31-21} = 0b11101111010; 17207let hasNewValue = 1; 17208let opNewValue = 0; 17209let prefersSlot3 = 1; 17210let InputType = "reg"; 17211let Constraints = "$Rx32 = $Rx32in"; 17212} 17213def M4_and_xor : HInst< 17214(outs IntRegs:$Rx32), 17215(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17216"$Rx32 &= xor($Rs32,$Rt32)", 17217tc_a4e22bbd, TypeM>, Enc_2ae154 { 17218let Inst{7-5} = 0b010; 17219let Inst{13-13} = 0b0; 17220let Inst{31-21} = 0b11101111010; 17221let hasNewValue = 1; 17222let opNewValue = 0; 17223let prefersSlot3 = 1; 17224let InputType = "reg"; 17225let Constraints = "$Rx32 = $Rx32in"; 17226} 17227def M4_cmpyi_wh : HInst< 17228(outs IntRegs:$Rd32), 17229(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 17230"$Rd32 = cmpyiwh($Rss32,$Rt32):<<1:rnd:sat", 17231tc_c21d7447, TypeS_3op>, Enc_3d5b28 { 17232let Inst{7-5} = 0b100; 17233let Inst{13-13} = 0b0; 17234let Inst{31-21} = 0b11000101000; 17235let hasNewValue = 1; 17236let opNewValue = 0; 17237let prefersSlot3 = 1; 17238let Defs = [USR_OVF]; 17239} 17240def M4_cmpyi_whc : HInst< 17241(outs IntRegs:$Rd32), 17242(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 17243"$Rd32 = cmpyiwh($Rss32,$Rt32*):<<1:rnd:sat", 17244tc_c21d7447, TypeS_3op>, Enc_3d5b28 { 17245let Inst{7-5} = 0b101; 17246let Inst{13-13} = 0b0; 17247let Inst{31-21} = 0b11000101000; 17248let hasNewValue = 1; 17249let opNewValue = 0; 17250let prefersSlot3 = 1; 17251let Defs = [USR_OVF]; 17252} 17253def M4_cmpyr_wh : HInst< 17254(outs IntRegs:$Rd32), 17255(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 17256"$Rd32 = cmpyrwh($Rss32,$Rt32):<<1:rnd:sat", 17257tc_c21d7447, TypeS_3op>, Enc_3d5b28 { 17258let Inst{7-5} = 0b110; 17259let Inst{13-13} = 0b0; 17260let Inst{31-21} = 0b11000101000; 17261let hasNewValue = 1; 17262let opNewValue = 0; 17263let prefersSlot3 = 1; 17264let Defs = [USR_OVF]; 17265} 17266def M4_cmpyr_whc : HInst< 17267(outs IntRegs:$Rd32), 17268(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 17269"$Rd32 = cmpyrwh($Rss32,$Rt32*):<<1:rnd:sat", 17270tc_c21d7447, TypeS_3op>, Enc_3d5b28 { 17271let Inst{7-5} = 0b111; 17272let Inst{13-13} = 0b0; 17273let Inst{31-21} = 0b11000101000; 17274let hasNewValue = 1; 17275let opNewValue = 0; 17276let prefersSlot3 = 1; 17277let Defs = [USR_OVF]; 17278} 17279def M4_mac_up_s1_sat : HInst< 17280(outs IntRegs:$Rx32), 17281(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17282"$Rx32 += mpy($Rs32,$Rt32):<<1:sat", 17283tc_7f8ae742, TypeM>, Enc_2ae154 { 17284let Inst{7-5} = 0b000; 17285let Inst{13-13} = 0b0; 17286let Inst{31-21} = 0b11101111011; 17287let hasNewValue = 1; 17288let opNewValue = 0; 17289let prefersSlot3 = 1; 17290let Defs = [USR_OVF]; 17291let InputType = "reg"; 17292let Constraints = "$Rx32 = $Rx32in"; 17293} 17294def M4_mpyri_addi : HInst< 17295(outs IntRegs:$Rd32), 17296(ins u32_0Imm:$Ii, IntRegs:$Rs32, u6_0Imm:$II), 17297"$Rd32 = add(#$Ii,mpyi($Rs32,#$II))", 17298tc_a154b476, TypeALU64>, Enc_322e1b, Requires<[UseCompound]>, ImmRegRel { 17299let Inst{31-24} = 0b11011000; 17300let hasNewValue = 1; 17301let opNewValue = 0; 17302let prefersSlot3 = 1; 17303let CextOpcode = "M4_mpyri_addr"; 17304let isExtendable = 1; 17305let opExtendable = 1; 17306let isExtentSigned = 0; 17307let opExtentBits = 6; 17308let opExtentAlign = 0; 17309} 17310def M4_mpyri_addr : HInst< 17311(outs IntRegs:$Rd32), 17312(ins IntRegs:$Ru32, IntRegs:$Rs32, u32_0Imm:$Ii), 17313"$Rd32 = add($Ru32,mpyi($Rs32,#$Ii))", 17314tc_a154b476, TypeALU64>, Enc_420cf3, Requires<[UseCompound]>, ImmRegRel { 17315let Inst{31-23} = 0b110111111; 17316let hasNewValue = 1; 17317let opNewValue = 0; 17318let prefersSlot3 = 1; 17319let CextOpcode = "M4_mpyri_addr"; 17320let InputType = "imm"; 17321let isExtendable = 1; 17322let opExtendable = 3; 17323let isExtentSigned = 0; 17324let opExtentBits = 6; 17325let opExtentAlign = 0; 17326} 17327def M4_mpyri_addr_u2 : HInst< 17328(outs IntRegs:$Rd32), 17329(ins IntRegs:$Ru32, u6_2Imm:$Ii, IntRegs:$Rs32), 17330"$Rd32 = add($Ru32,mpyi(#$Ii,$Rs32))", 17331tc_503ce0f3, TypeALU64>, Enc_277737, Requires<[UseCompound]> { 17332let Inst{31-23} = 0b110111110; 17333let hasNewValue = 1; 17334let opNewValue = 0; 17335let prefersSlot3 = 1; 17336} 17337def M4_mpyrr_addi : HInst< 17338(outs IntRegs:$Rd32), 17339(ins u32_0Imm:$Ii, IntRegs:$Rs32, IntRegs:$Rt32), 17340"$Rd32 = add(#$Ii,mpyi($Rs32,$Rt32))", 17341tc_7f8ae742, TypeALU64>, Enc_a7b8e8, Requires<[UseCompound]>, ImmRegRel { 17342let Inst{31-23} = 0b110101110; 17343let hasNewValue = 1; 17344let opNewValue = 0; 17345let prefersSlot3 = 1; 17346let CextOpcode = "M4_mpyrr_addr"; 17347let InputType = "imm"; 17348let isExtendable = 1; 17349let opExtendable = 1; 17350let isExtentSigned = 0; 17351let opExtentBits = 6; 17352let opExtentAlign = 0; 17353} 17354def M4_mpyrr_addr : HInst< 17355(outs IntRegs:$Ry32), 17356(ins IntRegs:$Ru32, IntRegs:$Ry32in, IntRegs:$Rs32), 17357"$Ry32 = add($Ru32,mpyi($Ry32in,$Rs32))", 17358tc_7f8ae742, TypeM>, Enc_7f1a05, Requires<[UseCompound]>, ImmRegRel { 17359let Inst{7-5} = 0b000; 17360let Inst{13-13} = 0b0; 17361let Inst{31-21} = 0b11100011000; 17362let hasNewValue = 1; 17363let opNewValue = 0; 17364let prefersSlot3 = 1; 17365let CextOpcode = "M4_mpyrr_addr"; 17366let InputType = "reg"; 17367let Constraints = "$Ry32 = $Ry32in"; 17368} 17369def M4_nac_up_s1_sat : HInst< 17370(outs IntRegs:$Rx32), 17371(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17372"$Rx32 -= mpy($Rs32,$Rt32):<<1:sat", 17373tc_7f8ae742, TypeM>, Enc_2ae154 { 17374let Inst{7-5} = 0b001; 17375let Inst{13-13} = 0b0; 17376let Inst{31-21} = 0b11101111011; 17377let hasNewValue = 1; 17378let opNewValue = 0; 17379let prefersSlot3 = 1; 17380let Defs = [USR_OVF]; 17381let InputType = "reg"; 17382let Constraints = "$Rx32 = $Rx32in"; 17383} 17384def M4_or_and : HInst< 17385(outs IntRegs:$Rx32), 17386(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17387"$Rx32 |= and($Rs32,$Rt32)", 17388tc_a4e22bbd, TypeM>, Enc_2ae154 { 17389let Inst{7-5} = 0b011; 17390let Inst{13-13} = 0b0; 17391let Inst{31-21} = 0b11101111010; 17392let hasNewValue = 1; 17393let opNewValue = 0; 17394let prefersSlot3 = 1; 17395let InputType = "reg"; 17396let Constraints = "$Rx32 = $Rx32in"; 17397} 17398def M4_or_andn : HInst< 17399(outs IntRegs:$Rx32), 17400(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17401"$Rx32 |= and($Rs32,~$Rt32)", 17402tc_a4e22bbd, TypeM>, Enc_2ae154 { 17403let Inst{7-5} = 0b000; 17404let Inst{13-13} = 0b0; 17405let Inst{31-21} = 0b11101111001; 17406let hasNewValue = 1; 17407let opNewValue = 0; 17408let prefersSlot3 = 1; 17409let InputType = "reg"; 17410let Constraints = "$Rx32 = $Rx32in"; 17411} 17412def M4_or_or : HInst< 17413(outs IntRegs:$Rx32), 17414(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17415"$Rx32 |= or($Rs32,$Rt32)", 17416tc_a4e22bbd, TypeM>, Enc_2ae154 { 17417let Inst{7-5} = 0b000; 17418let Inst{13-13} = 0b0; 17419let Inst{31-21} = 0b11101111110; 17420let hasNewValue = 1; 17421let opNewValue = 0; 17422let prefersSlot3 = 1; 17423let InputType = "reg"; 17424let Constraints = "$Rx32 = $Rx32in"; 17425} 17426def M4_or_xor : HInst< 17427(outs IntRegs:$Rx32), 17428(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17429"$Rx32 |= xor($Rs32,$Rt32)", 17430tc_a4e22bbd, TypeM>, Enc_2ae154 { 17431let Inst{7-5} = 0b001; 17432let Inst{13-13} = 0b0; 17433let Inst{31-21} = 0b11101111110; 17434let hasNewValue = 1; 17435let opNewValue = 0; 17436let prefersSlot3 = 1; 17437let InputType = "reg"; 17438let Constraints = "$Rx32 = $Rx32in"; 17439} 17440def M4_pmpyw : HInst< 17441(outs DoubleRegs:$Rdd32), 17442(ins IntRegs:$Rs32, IntRegs:$Rt32), 17443"$Rdd32 = pmpyw($Rs32,$Rt32)", 17444tc_c21d7447, TypeM>, Enc_be32a5 { 17445let Inst{7-5} = 0b111; 17446let Inst{13-13} = 0b0; 17447let Inst{31-21} = 0b11100101010; 17448let prefersSlot3 = 1; 17449} 17450def M4_pmpyw_acc : HInst< 17451(outs DoubleRegs:$Rxx32), 17452(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17453"$Rxx32 ^= pmpyw($Rs32,$Rt32)", 17454tc_7f8ae742, TypeM>, Enc_61f0b0 { 17455let Inst{7-5} = 0b111; 17456let Inst{13-13} = 0b0; 17457let Inst{31-21} = 0b11100111001; 17458let prefersSlot3 = 1; 17459let Constraints = "$Rxx32 = $Rxx32in"; 17460} 17461def M4_vpmpyh : HInst< 17462(outs DoubleRegs:$Rdd32), 17463(ins IntRegs:$Rs32, IntRegs:$Rt32), 17464"$Rdd32 = vpmpyh($Rs32,$Rt32)", 17465tc_c21d7447, TypeM>, Enc_be32a5 { 17466let Inst{7-5} = 0b111; 17467let Inst{13-13} = 0b0; 17468let Inst{31-21} = 0b11100101110; 17469let prefersSlot3 = 1; 17470} 17471def M4_vpmpyh_acc : HInst< 17472(outs DoubleRegs:$Rxx32), 17473(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17474"$Rxx32 ^= vpmpyh($Rs32,$Rt32)", 17475tc_7f8ae742, TypeM>, Enc_61f0b0 { 17476let Inst{7-5} = 0b111; 17477let Inst{13-13} = 0b0; 17478let Inst{31-21} = 0b11100111101; 17479let prefersSlot3 = 1; 17480let Constraints = "$Rxx32 = $Rxx32in"; 17481} 17482def M4_vrmpyeh_acc_s0 : HInst< 17483(outs DoubleRegs:$Rxx32), 17484(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17485"$Rxx32 += vrmpyweh($Rss32,$Rtt32)", 17486tc_7f8ae742, TypeM>, Enc_88c16c { 17487let Inst{7-5} = 0b110; 17488let Inst{13-13} = 0b0; 17489let Inst{31-21} = 0b11101010001; 17490let prefersSlot3 = 1; 17491let Constraints = "$Rxx32 = $Rxx32in"; 17492} 17493def M4_vrmpyeh_acc_s1 : HInst< 17494(outs DoubleRegs:$Rxx32), 17495(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17496"$Rxx32 += vrmpyweh($Rss32,$Rtt32):<<1", 17497tc_7f8ae742, TypeM>, Enc_88c16c { 17498let Inst{7-5} = 0b110; 17499let Inst{13-13} = 0b0; 17500let Inst{31-21} = 0b11101010101; 17501let prefersSlot3 = 1; 17502let Constraints = "$Rxx32 = $Rxx32in"; 17503} 17504def M4_vrmpyeh_s0 : HInst< 17505(outs DoubleRegs:$Rdd32), 17506(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17507"$Rdd32 = vrmpyweh($Rss32,$Rtt32)", 17508tc_c21d7447, TypeM>, Enc_a56825 { 17509let Inst{7-5} = 0b100; 17510let Inst{13-13} = 0b0; 17511let Inst{31-21} = 0b11101000010; 17512let prefersSlot3 = 1; 17513} 17514def M4_vrmpyeh_s1 : HInst< 17515(outs DoubleRegs:$Rdd32), 17516(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17517"$Rdd32 = vrmpyweh($Rss32,$Rtt32):<<1", 17518tc_c21d7447, TypeM>, Enc_a56825 { 17519let Inst{7-5} = 0b100; 17520let Inst{13-13} = 0b0; 17521let Inst{31-21} = 0b11101000110; 17522let prefersSlot3 = 1; 17523} 17524def M4_vrmpyoh_acc_s0 : HInst< 17525(outs DoubleRegs:$Rxx32), 17526(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17527"$Rxx32 += vrmpywoh($Rss32,$Rtt32)", 17528tc_7f8ae742, TypeM>, Enc_88c16c { 17529let Inst{7-5} = 0b110; 17530let Inst{13-13} = 0b0; 17531let Inst{31-21} = 0b11101010011; 17532let prefersSlot3 = 1; 17533let Constraints = "$Rxx32 = $Rxx32in"; 17534} 17535def M4_vrmpyoh_acc_s1 : HInst< 17536(outs DoubleRegs:$Rxx32), 17537(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17538"$Rxx32 += vrmpywoh($Rss32,$Rtt32):<<1", 17539tc_7f8ae742, TypeM>, Enc_88c16c { 17540let Inst{7-5} = 0b110; 17541let Inst{13-13} = 0b0; 17542let Inst{31-21} = 0b11101010111; 17543let prefersSlot3 = 1; 17544let Constraints = "$Rxx32 = $Rxx32in"; 17545} 17546def M4_vrmpyoh_s0 : HInst< 17547(outs DoubleRegs:$Rdd32), 17548(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17549"$Rdd32 = vrmpywoh($Rss32,$Rtt32)", 17550tc_c21d7447, TypeM>, Enc_a56825 { 17551let Inst{7-5} = 0b010; 17552let Inst{13-13} = 0b0; 17553let Inst{31-21} = 0b11101000001; 17554let prefersSlot3 = 1; 17555} 17556def M4_vrmpyoh_s1 : HInst< 17557(outs DoubleRegs:$Rdd32), 17558(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17559"$Rdd32 = vrmpywoh($Rss32,$Rtt32):<<1", 17560tc_c21d7447, TypeM>, Enc_a56825 { 17561let Inst{7-5} = 0b010; 17562let Inst{13-13} = 0b0; 17563let Inst{31-21} = 0b11101000101; 17564let prefersSlot3 = 1; 17565} 17566def M4_xor_and : HInst< 17567(outs IntRegs:$Rx32), 17568(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17569"$Rx32 ^= and($Rs32,$Rt32)", 17570tc_a4e22bbd, TypeM>, Enc_2ae154 { 17571let Inst{7-5} = 0b010; 17572let Inst{13-13} = 0b0; 17573let Inst{31-21} = 0b11101111110; 17574let hasNewValue = 1; 17575let opNewValue = 0; 17576let prefersSlot3 = 1; 17577let InputType = "reg"; 17578let Constraints = "$Rx32 = $Rx32in"; 17579} 17580def M4_xor_andn : HInst< 17581(outs IntRegs:$Rx32), 17582(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17583"$Rx32 ^= and($Rs32,~$Rt32)", 17584tc_a4e22bbd, TypeM>, Enc_2ae154 { 17585let Inst{7-5} = 0b010; 17586let Inst{13-13} = 0b0; 17587let Inst{31-21} = 0b11101111001; 17588let hasNewValue = 1; 17589let opNewValue = 0; 17590let prefersSlot3 = 1; 17591let InputType = "reg"; 17592let Constraints = "$Rx32 = $Rx32in"; 17593} 17594def M4_xor_or : HInst< 17595(outs IntRegs:$Rx32), 17596(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17597"$Rx32 ^= or($Rs32,$Rt32)", 17598tc_a4e22bbd, TypeM>, Enc_2ae154 { 17599let Inst{7-5} = 0b011; 17600let Inst{13-13} = 0b0; 17601let Inst{31-21} = 0b11101111110; 17602let hasNewValue = 1; 17603let opNewValue = 0; 17604let prefersSlot3 = 1; 17605let InputType = "reg"; 17606let Constraints = "$Rx32 = $Rx32in"; 17607} 17608def M4_xor_xacc : HInst< 17609(outs DoubleRegs:$Rxx32), 17610(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17611"$Rxx32 ^= xor($Rss32,$Rtt32)", 17612tc_a4e22bbd, TypeS_3op>, Enc_88c16c { 17613let Inst{7-5} = 0b000; 17614let Inst{13-13} = 0b0; 17615let Inst{31-21} = 0b11001010100; 17616let prefersSlot3 = 1; 17617let Constraints = "$Rxx32 = $Rxx32in"; 17618} 17619def M5_vdmacbsu : HInst< 17620(outs DoubleRegs:$Rxx32), 17621(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17622"$Rxx32 += vdmpybsu($Rss32,$Rtt32):sat", 17623tc_7f8ae742, TypeM>, Enc_88c16c { 17624let Inst{7-5} = 0b001; 17625let Inst{13-13} = 0b0; 17626let Inst{31-21} = 0b11101010001; 17627let prefersSlot3 = 1; 17628let Defs = [USR_OVF]; 17629let Constraints = "$Rxx32 = $Rxx32in"; 17630} 17631def M5_vdmpybsu : HInst< 17632(outs DoubleRegs:$Rdd32), 17633(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17634"$Rdd32 = vdmpybsu($Rss32,$Rtt32):sat", 17635tc_c21d7447, TypeM>, Enc_a56825 { 17636let Inst{7-5} = 0b001; 17637let Inst{13-13} = 0b0; 17638let Inst{31-21} = 0b11101000101; 17639let prefersSlot3 = 1; 17640let Defs = [USR_OVF]; 17641} 17642def M5_vmacbsu : HInst< 17643(outs DoubleRegs:$Rxx32), 17644(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17645"$Rxx32 += vmpybsu($Rs32,$Rt32)", 17646tc_7f8ae742, TypeM>, Enc_61f0b0 { 17647let Inst{7-5} = 0b001; 17648let Inst{13-13} = 0b0; 17649let Inst{31-21} = 0b11100111110; 17650let prefersSlot3 = 1; 17651let Constraints = "$Rxx32 = $Rxx32in"; 17652} 17653def M5_vmacbuu : HInst< 17654(outs DoubleRegs:$Rxx32), 17655(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32), 17656"$Rxx32 += vmpybu($Rs32,$Rt32)", 17657tc_7f8ae742, TypeM>, Enc_61f0b0 { 17658let Inst{7-5} = 0b001; 17659let Inst{13-13} = 0b0; 17660let Inst{31-21} = 0b11100111100; 17661let prefersSlot3 = 1; 17662let Constraints = "$Rxx32 = $Rxx32in"; 17663} 17664def M5_vmpybsu : HInst< 17665(outs DoubleRegs:$Rdd32), 17666(ins IntRegs:$Rs32, IntRegs:$Rt32), 17667"$Rdd32 = vmpybsu($Rs32,$Rt32)", 17668tc_c21d7447, TypeM>, Enc_be32a5 { 17669let Inst{7-5} = 0b001; 17670let Inst{13-13} = 0b0; 17671let Inst{31-21} = 0b11100101010; 17672let prefersSlot3 = 1; 17673} 17674def M5_vmpybuu : HInst< 17675(outs DoubleRegs:$Rdd32), 17676(ins IntRegs:$Rs32, IntRegs:$Rt32), 17677"$Rdd32 = vmpybu($Rs32,$Rt32)", 17678tc_c21d7447, TypeM>, Enc_be32a5 { 17679let Inst{7-5} = 0b001; 17680let Inst{13-13} = 0b0; 17681let Inst{31-21} = 0b11100101100; 17682let prefersSlot3 = 1; 17683} 17684def M5_vrmacbsu : HInst< 17685(outs DoubleRegs:$Rxx32), 17686(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17687"$Rxx32 += vrmpybsu($Rss32,$Rtt32)", 17688tc_7f8ae742, TypeM>, Enc_88c16c { 17689let Inst{7-5} = 0b001; 17690let Inst{13-13} = 0b0; 17691let Inst{31-21} = 0b11101010110; 17692let prefersSlot3 = 1; 17693let Constraints = "$Rxx32 = $Rxx32in"; 17694} 17695def M5_vrmacbuu : HInst< 17696(outs DoubleRegs:$Rxx32), 17697(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17698"$Rxx32 += vrmpybu($Rss32,$Rtt32)", 17699tc_7f8ae742, TypeM>, Enc_88c16c { 17700let Inst{7-5} = 0b001; 17701let Inst{13-13} = 0b0; 17702let Inst{31-21} = 0b11101010100; 17703let prefersSlot3 = 1; 17704let Constraints = "$Rxx32 = $Rxx32in"; 17705} 17706def M5_vrmpybsu : HInst< 17707(outs DoubleRegs:$Rdd32), 17708(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17709"$Rdd32 = vrmpybsu($Rss32,$Rtt32)", 17710tc_c21d7447, TypeM>, Enc_a56825 { 17711let Inst{7-5} = 0b001; 17712let Inst{13-13} = 0b0; 17713let Inst{31-21} = 0b11101000110; 17714let prefersSlot3 = 1; 17715} 17716def M5_vrmpybuu : HInst< 17717(outs DoubleRegs:$Rdd32), 17718(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17719"$Rdd32 = vrmpybu($Rss32,$Rtt32)", 17720tc_c21d7447, TypeM>, Enc_a56825 { 17721let Inst{7-5} = 0b001; 17722let Inst{13-13} = 0b0; 17723let Inst{31-21} = 0b11101000100; 17724let prefersSlot3 = 1; 17725} 17726def M6_vabsdiffb : HInst< 17727(outs DoubleRegs:$Rdd32), 17728(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 17729"$Rdd32 = vabsdiffb($Rtt32,$Rss32)", 17730tc_9b3c0462, TypeM>, Enc_ea23e4, Requires<[HasV62]> { 17731let Inst{7-5} = 0b000; 17732let Inst{13-13} = 0b0; 17733let Inst{31-21} = 0b11101000111; 17734let prefersSlot3 = 1; 17735} 17736def M6_vabsdiffub : HInst< 17737(outs DoubleRegs:$Rdd32), 17738(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 17739"$Rdd32 = vabsdiffub($Rtt32,$Rss32)", 17740tc_9b3c0462, TypeM>, Enc_ea23e4, Requires<[HasV62]> { 17741let Inst{7-5} = 0b000; 17742let Inst{13-13} = 0b0; 17743let Inst{31-21} = 0b11101000101; 17744let prefersSlot3 = 1; 17745} 17746def M7_dcmpyiw : HInst< 17747(outs DoubleRegs:$Rdd32), 17748(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17749"$Rdd32 = cmpyiw($Rss32,$Rtt32)", 17750tc_5a4b5e58, TypeM>, Enc_a56825, Requires<[HasV67,UseAudio]> { 17751let Inst{7-5} = 0b010; 17752let Inst{13-13} = 0b0; 17753let Inst{31-21} = 0b11101000011; 17754let prefersSlot3 = 1; 17755} 17756def M7_dcmpyiw_acc : HInst< 17757(outs DoubleRegs:$Rxx32), 17758(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17759"$Rxx32 += cmpyiw($Rss32,$Rtt32)", 17760tc_197dce51, TypeM>, Enc_88c16c, Requires<[HasV67,UseAudio]> { 17761let Inst{7-5} = 0b010; 17762let Inst{13-13} = 0b0; 17763let Inst{31-21} = 0b11101010011; 17764let prefersSlot3 = 1; 17765let Constraints = "$Rxx32 = $Rxx32in"; 17766} 17767def M7_dcmpyiwc : HInst< 17768(outs DoubleRegs:$Rdd32), 17769(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17770"$Rdd32 = cmpyiw($Rss32,$Rtt32*)", 17771tc_5a4b5e58, TypeM>, Enc_a56825, Requires<[HasV67,UseAudio]> { 17772let Inst{7-5} = 0b010; 17773let Inst{13-13} = 0b0; 17774let Inst{31-21} = 0b11101000111; 17775let prefersSlot3 = 1; 17776} 17777def M7_dcmpyiwc_acc : HInst< 17778(outs DoubleRegs:$Rxx32), 17779(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17780"$Rxx32 += cmpyiw($Rss32,$Rtt32*)", 17781tc_197dce51, TypeM>, Enc_88c16c, Requires<[HasV67,UseAudio]> { 17782let Inst{7-5} = 0b110; 17783let Inst{13-13} = 0b0; 17784let Inst{31-21} = 0b11101010010; 17785let prefersSlot3 = 1; 17786let Constraints = "$Rxx32 = $Rxx32in"; 17787} 17788def M7_dcmpyrw : HInst< 17789(outs DoubleRegs:$Rdd32), 17790(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17791"$Rdd32 = cmpyrw($Rss32,$Rtt32)", 17792tc_5a4b5e58, TypeM>, Enc_a56825, Requires<[HasV67,UseAudio]> { 17793let Inst{7-5} = 0b010; 17794let Inst{13-13} = 0b0; 17795let Inst{31-21} = 0b11101000100; 17796let prefersSlot3 = 1; 17797} 17798def M7_dcmpyrw_acc : HInst< 17799(outs DoubleRegs:$Rxx32), 17800(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17801"$Rxx32 += cmpyrw($Rss32,$Rtt32)", 17802tc_197dce51, TypeM>, Enc_88c16c, Requires<[HasV67,UseAudio]> { 17803let Inst{7-5} = 0b010; 17804let Inst{13-13} = 0b0; 17805let Inst{31-21} = 0b11101010100; 17806let prefersSlot3 = 1; 17807let Constraints = "$Rxx32 = $Rxx32in"; 17808} 17809def M7_dcmpyrwc : HInst< 17810(outs DoubleRegs:$Rdd32), 17811(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17812"$Rdd32 = cmpyrw($Rss32,$Rtt32*)", 17813tc_5a4b5e58, TypeM>, Enc_a56825, Requires<[HasV67,UseAudio]> { 17814let Inst{7-5} = 0b010; 17815let Inst{13-13} = 0b0; 17816let Inst{31-21} = 0b11101000110; 17817let prefersSlot3 = 1; 17818} 17819def M7_dcmpyrwc_acc : HInst< 17820(outs DoubleRegs:$Rxx32), 17821(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17822"$Rxx32 += cmpyrw($Rss32,$Rtt32*)", 17823tc_197dce51, TypeM>, Enc_88c16c, Requires<[HasV67,UseAudio]> { 17824let Inst{7-5} = 0b010; 17825let Inst{13-13} = 0b0; 17826let Inst{31-21} = 0b11101010110; 17827let prefersSlot3 = 1; 17828let Constraints = "$Rxx32 = $Rxx32in"; 17829} 17830def M7_vdmpy : HInst< 17831(outs DoubleRegs:$Rdd32), 17832(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17833"$Rdd32 = vdmpyw($Rss32,$Rtt32)", 17834tc_5a4b5e58, TypeM>, Requires<[HasV67]> { 17835let isPseudo = 1; 17836let isCodeGenOnly = 1; 17837} 17838def M7_vdmpy_acc : HInst< 17839(outs DoubleRegs:$Rxx32), 17840(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17841"$Rxx32 += vdmpyw($Rss32,$Rtt32)", 17842tc_197dce51, TypeM>, Requires<[HasV67]> { 17843let isPseudo = 1; 17844let isCodeGenOnly = 1; 17845let Constraints = "$Rxx32 = $Rxx32in"; 17846} 17847def M7_wcmpyiw : HInst< 17848(outs IntRegs:$Rd32), 17849(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17850"$Rd32 = cmpyiw($Rss32,$Rtt32):<<1:sat", 17851tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> { 17852let Inst{7-5} = 0b000; 17853let Inst{13-13} = 0b0; 17854let Inst{31-21} = 0b11101001001; 17855let hasNewValue = 1; 17856let opNewValue = 0; 17857let prefersSlot3 = 1; 17858let Defs = [USR_OVF]; 17859} 17860def M7_wcmpyiw_rnd : HInst< 17861(outs IntRegs:$Rd32), 17862(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17863"$Rd32 = cmpyiw($Rss32,$Rtt32):<<1:rnd:sat", 17864tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> { 17865let Inst{7-5} = 0b000; 17866let Inst{13-13} = 0b0; 17867let Inst{31-21} = 0b11101001101; 17868let hasNewValue = 1; 17869let opNewValue = 0; 17870let prefersSlot3 = 1; 17871let Defs = [USR_OVF]; 17872} 17873def M7_wcmpyiwc : HInst< 17874(outs IntRegs:$Rd32), 17875(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17876"$Rd32 = cmpyiw($Rss32,$Rtt32*):<<1:sat", 17877tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> { 17878let Inst{7-5} = 0b100; 17879let Inst{13-13} = 0b0; 17880let Inst{31-21} = 0b11101001000; 17881let hasNewValue = 1; 17882let opNewValue = 0; 17883let prefersSlot3 = 1; 17884let Defs = [USR_OVF]; 17885} 17886def M7_wcmpyiwc_rnd : HInst< 17887(outs IntRegs:$Rd32), 17888(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17889"$Rd32 = cmpyiw($Rss32,$Rtt32*):<<1:rnd:sat", 17890tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> { 17891let Inst{7-5} = 0b100; 17892let Inst{13-13} = 0b0; 17893let Inst{31-21} = 0b11101001100; 17894let hasNewValue = 1; 17895let opNewValue = 0; 17896let prefersSlot3 = 1; 17897let Defs = [USR_OVF]; 17898} 17899def M7_wcmpyrw : HInst< 17900(outs IntRegs:$Rd32), 17901(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17902"$Rd32 = cmpyrw($Rss32,$Rtt32):<<1:sat", 17903tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> { 17904let Inst{7-5} = 0b000; 17905let Inst{13-13} = 0b0; 17906let Inst{31-21} = 0b11101001010; 17907let hasNewValue = 1; 17908let opNewValue = 0; 17909let prefersSlot3 = 1; 17910let Defs = [USR_OVF]; 17911} 17912def M7_wcmpyrw_rnd : HInst< 17913(outs IntRegs:$Rd32), 17914(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17915"$Rd32 = cmpyrw($Rss32,$Rtt32):<<1:rnd:sat", 17916tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> { 17917let Inst{7-5} = 0b000; 17918let Inst{13-13} = 0b0; 17919let Inst{31-21} = 0b11101001110; 17920let hasNewValue = 1; 17921let opNewValue = 0; 17922let prefersSlot3 = 1; 17923let Defs = [USR_OVF]; 17924} 17925def M7_wcmpyrwc : HInst< 17926(outs IntRegs:$Rd32), 17927(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17928"$Rd32 = cmpyrw($Rss32,$Rtt32*):<<1:sat", 17929tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> { 17930let Inst{7-5} = 0b000; 17931let Inst{13-13} = 0b0; 17932let Inst{31-21} = 0b11101001011; 17933let hasNewValue = 1; 17934let opNewValue = 0; 17935let prefersSlot3 = 1; 17936let Defs = [USR_OVF]; 17937} 17938def M7_wcmpyrwc_rnd : HInst< 17939(outs IntRegs:$Rd32), 17940(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 17941"$Rd32 = cmpyrw($Rss32,$Rtt32*):<<1:rnd:sat", 17942tc_5a4b5e58, TypeM>, Enc_d2216a, Requires<[HasV67,UseAudio]> { 17943let Inst{7-5} = 0b000; 17944let Inst{13-13} = 0b0; 17945let Inst{31-21} = 0b11101001111; 17946let hasNewValue = 1; 17947let opNewValue = 0; 17948let prefersSlot3 = 1; 17949let Defs = [USR_OVF]; 17950} 17951def PS_loadrbabs : HInst< 17952(outs IntRegs:$Rd32), 17953(ins u32_0Imm:$Ii), 17954"$Rd32 = memb(#$Ii)", 17955tc_8a6d0d94, TypeV2LDST>, Enc_25bef0, AddrModeRel { 17956let Inst{24-21} = 0b1000; 17957let Inst{31-27} = 0b01001; 17958let hasNewValue = 1; 17959let opNewValue = 0; 17960let addrMode = Absolute; 17961let accessSize = ByteAccess; 17962let mayLoad = 1; 17963let isExtended = 1; 17964let BaseOpcode = "L4_loadrb_abs"; 17965let CextOpcode = "L2_loadrb"; 17966let isPredicable = 1; 17967let DecoderNamespace = "MustExtend"; 17968let isExtended = 1; 17969let opExtendable = 1; 17970let isExtentSigned = 0; 17971let opExtentBits = 16; 17972let opExtentAlign = 0; 17973} 17974def PS_loadrdabs : HInst< 17975(outs DoubleRegs:$Rdd32), 17976(ins u29_3Imm:$Ii), 17977"$Rdd32 = memd(#$Ii)", 17978tc_8a6d0d94, TypeV2LDST>, Enc_509701, AddrModeRel { 17979let Inst{24-21} = 0b1110; 17980let Inst{31-27} = 0b01001; 17981let addrMode = Absolute; 17982let accessSize = DoubleWordAccess; 17983let mayLoad = 1; 17984let isExtended = 1; 17985let BaseOpcode = "L4_loadrd_abs"; 17986let CextOpcode = "L2_loadrd"; 17987let isPredicable = 1; 17988let DecoderNamespace = "MustExtend"; 17989let isExtended = 1; 17990let opExtendable = 1; 17991let isExtentSigned = 0; 17992let opExtentBits = 19; 17993let opExtentAlign = 3; 17994} 17995def PS_loadrhabs : HInst< 17996(outs IntRegs:$Rd32), 17997(ins u31_1Imm:$Ii), 17998"$Rd32 = memh(#$Ii)", 17999tc_8a6d0d94, TypeV2LDST>, Enc_8df4be, AddrModeRel { 18000let Inst{24-21} = 0b1010; 18001let Inst{31-27} = 0b01001; 18002let hasNewValue = 1; 18003let opNewValue = 0; 18004let addrMode = Absolute; 18005let accessSize = HalfWordAccess; 18006let mayLoad = 1; 18007let isExtended = 1; 18008let BaseOpcode = "L4_loadrh_abs"; 18009let CextOpcode = "L2_loadrh"; 18010let isPredicable = 1; 18011let DecoderNamespace = "MustExtend"; 18012let isExtended = 1; 18013let opExtendable = 1; 18014let isExtentSigned = 0; 18015let opExtentBits = 17; 18016let opExtentAlign = 1; 18017} 18018def PS_loadriabs : HInst< 18019(outs IntRegs:$Rd32), 18020(ins u30_2Imm:$Ii), 18021"$Rd32 = memw(#$Ii)", 18022tc_8a6d0d94, TypeV2LDST>, Enc_4f4ed7, AddrModeRel { 18023let Inst{24-21} = 0b1100; 18024let Inst{31-27} = 0b01001; 18025let hasNewValue = 1; 18026let opNewValue = 0; 18027let addrMode = Absolute; 18028let accessSize = WordAccess; 18029let mayLoad = 1; 18030let isExtended = 1; 18031let BaseOpcode = "L4_loadri_abs"; 18032let CextOpcode = "L2_loadri"; 18033let isPredicable = 1; 18034let DecoderNamespace = "MustExtend"; 18035let isExtended = 1; 18036let opExtendable = 1; 18037let isExtentSigned = 0; 18038let opExtentBits = 18; 18039let opExtentAlign = 2; 18040} 18041def PS_loadrubabs : HInst< 18042(outs IntRegs:$Rd32), 18043(ins u32_0Imm:$Ii), 18044"$Rd32 = memub(#$Ii)", 18045tc_8a6d0d94, TypeV2LDST>, Enc_25bef0, AddrModeRel { 18046let Inst{24-21} = 0b1001; 18047let Inst{31-27} = 0b01001; 18048let hasNewValue = 1; 18049let opNewValue = 0; 18050let addrMode = Absolute; 18051let accessSize = ByteAccess; 18052let mayLoad = 1; 18053let isExtended = 1; 18054let BaseOpcode = "L4_loadrub_abs"; 18055let CextOpcode = "L2_loadrub"; 18056let isPredicable = 1; 18057let DecoderNamespace = "MustExtend"; 18058let isExtended = 1; 18059let opExtendable = 1; 18060let isExtentSigned = 0; 18061let opExtentBits = 16; 18062let opExtentAlign = 0; 18063} 18064def PS_loadruhabs : HInst< 18065(outs IntRegs:$Rd32), 18066(ins u31_1Imm:$Ii), 18067"$Rd32 = memuh(#$Ii)", 18068tc_8a6d0d94, TypeV2LDST>, Enc_8df4be, AddrModeRel { 18069let Inst{24-21} = 0b1011; 18070let Inst{31-27} = 0b01001; 18071let hasNewValue = 1; 18072let opNewValue = 0; 18073let addrMode = Absolute; 18074let accessSize = HalfWordAccess; 18075let mayLoad = 1; 18076let isExtended = 1; 18077let BaseOpcode = "L4_loadruh_abs"; 18078let CextOpcode = "L2_loadruh"; 18079let isPredicable = 1; 18080let DecoderNamespace = "MustExtend"; 18081let isExtended = 1; 18082let opExtendable = 1; 18083let isExtentSigned = 0; 18084let opExtentBits = 17; 18085let opExtentAlign = 1; 18086} 18087def PS_storerbabs : HInst< 18088(outs), 18089(ins u32_0Imm:$Ii, IntRegs:$Rt32), 18090"memb(#$Ii) = $Rt32", 18091tc_0655b949, TypeV2LDST>, Enc_1b64fb, AddrModeRel { 18092let Inst{24-21} = 0b0000; 18093let Inst{31-27} = 0b01001; 18094let addrMode = Absolute; 18095let accessSize = ByteAccess; 18096let isExtended = 1; 18097let mayStore = 1; 18098let BaseOpcode = "S2_storerbabs"; 18099let CextOpcode = "S2_storerb"; 18100let isNVStorable = 1; 18101let isPredicable = 1; 18102let DecoderNamespace = "MustExtend"; 18103let isExtended = 1; 18104let opExtendable = 0; 18105let isExtentSigned = 0; 18106let opExtentBits = 16; 18107let opExtentAlign = 0; 18108} 18109def PS_storerbnewabs : HInst< 18110(outs), 18111(ins u32_0Imm:$Ii, IntRegs:$Nt8), 18112"memb(#$Ii) = $Nt8.new", 18113tc_6e20402a, TypeV2LDST>, Enc_ad1831, AddrModeRel { 18114let Inst{12-11} = 0b00; 18115let Inst{24-21} = 0b0101; 18116let Inst{31-27} = 0b01001; 18117let addrMode = Absolute; 18118let accessSize = ByteAccess; 18119let isNVStore = 1; 18120let isNewValue = 1; 18121let isExtended = 1; 18122let isRestrictNoSlot1Store = 1; 18123let mayStore = 1; 18124let BaseOpcode = "S2_storerbabs"; 18125let CextOpcode = "S2_storerb"; 18126let isPredicable = 1; 18127let DecoderNamespace = "MustExtend"; 18128let isExtended = 1; 18129let opExtendable = 0; 18130let isExtentSigned = 0; 18131let opExtentBits = 16; 18132let opExtentAlign = 0; 18133let opNewValue = 1; 18134} 18135def PS_storerdabs : HInst< 18136(outs), 18137(ins u29_3Imm:$Ii, DoubleRegs:$Rtt32), 18138"memd(#$Ii) = $Rtt32", 18139tc_0655b949, TypeV2LDST>, Enc_5c124a, AddrModeRel { 18140let Inst{24-21} = 0b0110; 18141let Inst{31-27} = 0b01001; 18142let addrMode = Absolute; 18143let accessSize = DoubleWordAccess; 18144let isExtended = 1; 18145let mayStore = 1; 18146let BaseOpcode = "S2_storerdabs"; 18147let CextOpcode = "S2_storerd"; 18148let isPredicable = 1; 18149let DecoderNamespace = "MustExtend"; 18150let isExtended = 1; 18151let opExtendable = 0; 18152let isExtentSigned = 0; 18153let opExtentBits = 19; 18154let opExtentAlign = 3; 18155} 18156def PS_storerfabs : HInst< 18157(outs), 18158(ins u31_1Imm:$Ii, IntRegs:$Rt32), 18159"memh(#$Ii) = $Rt32.h", 18160tc_0655b949, TypeV2LDST>, Enc_fda92c, AddrModeRel { 18161let Inst{24-21} = 0b0011; 18162let Inst{31-27} = 0b01001; 18163let addrMode = Absolute; 18164let accessSize = HalfWordAccess; 18165let isExtended = 1; 18166let mayStore = 1; 18167let BaseOpcode = "S2_storerfabs"; 18168let CextOpcode = "S2_storerf"; 18169let isPredicable = 1; 18170let DecoderNamespace = "MustExtend"; 18171let isExtended = 1; 18172let opExtendable = 0; 18173let isExtentSigned = 0; 18174let opExtentBits = 17; 18175let opExtentAlign = 1; 18176} 18177def PS_storerhabs : HInst< 18178(outs), 18179(ins u31_1Imm:$Ii, IntRegs:$Rt32), 18180"memh(#$Ii) = $Rt32", 18181tc_0655b949, TypeV2LDST>, Enc_fda92c, AddrModeRel { 18182let Inst{24-21} = 0b0010; 18183let Inst{31-27} = 0b01001; 18184let addrMode = Absolute; 18185let accessSize = HalfWordAccess; 18186let isExtended = 1; 18187let mayStore = 1; 18188let BaseOpcode = "S2_storerhabs"; 18189let CextOpcode = "S2_storerh"; 18190let isNVStorable = 1; 18191let isPredicable = 1; 18192let DecoderNamespace = "MustExtend"; 18193let isExtended = 1; 18194let opExtendable = 0; 18195let isExtentSigned = 0; 18196let opExtentBits = 17; 18197let opExtentAlign = 1; 18198} 18199def PS_storerhnewabs : HInst< 18200(outs), 18201(ins u31_1Imm:$Ii, IntRegs:$Nt8), 18202"memh(#$Ii) = $Nt8.new", 18203tc_6e20402a, TypeV2LDST>, Enc_bc03e5, AddrModeRel { 18204let Inst{12-11} = 0b01; 18205let Inst{24-21} = 0b0101; 18206let Inst{31-27} = 0b01001; 18207let addrMode = Absolute; 18208let accessSize = HalfWordAccess; 18209let isNVStore = 1; 18210let isNewValue = 1; 18211let isExtended = 1; 18212let isRestrictNoSlot1Store = 1; 18213let mayStore = 1; 18214let BaseOpcode = "S2_storerhabs"; 18215let CextOpcode = "S2_storerh"; 18216let isPredicable = 1; 18217let DecoderNamespace = "MustExtend"; 18218let isExtended = 1; 18219let opExtendable = 0; 18220let isExtentSigned = 0; 18221let opExtentBits = 17; 18222let opExtentAlign = 1; 18223let opNewValue = 1; 18224} 18225def PS_storeriabs : HInst< 18226(outs), 18227(ins u30_2Imm:$Ii, IntRegs:$Rt32), 18228"memw(#$Ii) = $Rt32", 18229tc_0655b949, TypeV2LDST>, Enc_541f26, AddrModeRel { 18230let Inst{24-21} = 0b0100; 18231let Inst{31-27} = 0b01001; 18232let addrMode = Absolute; 18233let accessSize = WordAccess; 18234let isExtended = 1; 18235let mayStore = 1; 18236let BaseOpcode = "S2_storeriabs"; 18237let CextOpcode = "S2_storeri"; 18238let isNVStorable = 1; 18239let isPredicable = 1; 18240let DecoderNamespace = "MustExtend"; 18241let isExtended = 1; 18242let opExtendable = 0; 18243let isExtentSigned = 0; 18244let opExtentBits = 18; 18245let opExtentAlign = 2; 18246} 18247def PS_storerinewabs : HInst< 18248(outs), 18249(ins u30_2Imm:$Ii, IntRegs:$Nt8), 18250"memw(#$Ii) = $Nt8.new", 18251tc_6e20402a, TypeV2LDST>, Enc_78cbf0, AddrModeRel { 18252let Inst{12-11} = 0b10; 18253let Inst{24-21} = 0b0101; 18254let Inst{31-27} = 0b01001; 18255let addrMode = Absolute; 18256let accessSize = WordAccess; 18257let isNVStore = 1; 18258let isNewValue = 1; 18259let isExtended = 1; 18260let isRestrictNoSlot1Store = 1; 18261let mayStore = 1; 18262let BaseOpcode = "S2_storeriabs"; 18263let CextOpcode = "S2_storeri"; 18264let isPredicable = 1; 18265let DecoderNamespace = "MustExtend"; 18266let isExtended = 1; 18267let opExtendable = 0; 18268let isExtentSigned = 0; 18269let opExtentBits = 18; 18270let opExtentAlign = 2; 18271let opNewValue = 1; 18272} 18273def R6_release_at_vi : HInst< 18274(outs), 18275(ins IntRegs:$Rs32), 18276"release($Rs32):at", 18277tc_db96aa6b, TypeST>, Enc_ecbcc8, Requires<[HasV68]> { 18278let Inst{7-2} = 0b000011; 18279let Inst{13-13} = 0b0; 18280let Inst{31-21} = 0b10100000111; 18281let isSolo = 1; 18282let mayStore = 1; 18283} 18284def R6_release_st_vi : HInst< 18285(outs), 18286(ins IntRegs:$Rs32), 18287"release($Rs32):st", 18288tc_db96aa6b, TypeST>, Enc_ecbcc8, Requires<[HasV68]> { 18289let Inst{7-2} = 0b001011; 18290let Inst{13-13} = 0b0; 18291let Inst{31-21} = 0b10100000111; 18292let isSolo = 1; 18293let mayStore = 1; 18294} 18295def S2_addasl_rrri : HInst< 18296(outs IntRegs:$Rd32), 18297(ins IntRegs:$Rt32, IntRegs:$Rs32, u3_0Imm:$Ii), 18298"$Rd32 = addasl($Rt32,$Rs32,#$Ii)", 18299tc_2c13e7f5, TypeS_3op>, Enc_47ef61 { 18300let Inst{13-13} = 0b0; 18301let Inst{31-21} = 0b11000100000; 18302let hasNewValue = 1; 18303let opNewValue = 0; 18304let prefersSlot3 = 1; 18305} 18306def S2_allocframe : HInst< 18307(outs IntRegs:$Rx32), 18308(ins IntRegs:$Rx32in, u11_3Imm:$Ii), 18309"allocframe($Rx32,#$Ii):raw", 18310tc_934753bb, TypeST>, Enc_22c845 { 18311let Inst{13-11} = 0b000; 18312let Inst{31-21} = 0b10100000100; 18313let hasNewValue = 1; 18314let opNewValue = 0; 18315let addrMode = BaseImmOffset; 18316let accessSize = DoubleWordAccess; 18317let mayStore = 1; 18318let Uses = [FRAMEKEY, FRAMELIMIT, R30, R31]; 18319let Defs = [R30]; 18320let Constraints = "$Rx32 = $Rx32in"; 18321} 18322def S2_asl_i_p : HInst< 18323(outs DoubleRegs:$Rdd32), 18324(ins DoubleRegs:$Rss32, u6_0Imm:$Ii), 18325"$Rdd32 = asl($Rss32,#$Ii)", 18326tc_5da50c4b, TypeS_2op>, Enc_5eac98 { 18327let Inst{7-5} = 0b010; 18328let Inst{31-21} = 0b10000000000; 18329} 18330def S2_asl_i_p_acc : HInst< 18331(outs DoubleRegs:$Rxx32), 18332(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 18333"$Rxx32 += asl($Rss32,#$Ii)", 18334tc_2c13e7f5, TypeS_2op>, Enc_70fb07 { 18335let Inst{7-5} = 0b110; 18336let Inst{31-21} = 0b10000010000; 18337let prefersSlot3 = 1; 18338let Constraints = "$Rxx32 = $Rxx32in"; 18339} 18340def S2_asl_i_p_and : HInst< 18341(outs DoubleRegs:$Rxx32), 18342(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 18343"$Rxx32 &= asl($Rss32,#$Ii)", 18344tc_a4e22bbd, TypeS_2op>, Enc_70fb07 { 18345let Inst{7-5} = 0b010; 18346let Inst{31-21} = 0b10000010010; 18347let prefersSlot3 = 1; 18348let Constraints = "$Rxx32 = $Rxx32in"; 18349} 18350def S2_asl_i_p_nac : HInst< 18351(outs DoubleRegs:$Rxx32), 18352(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 18353"$Rxx32 -= asl($Rss32,#$Ii)", 18354tc_2c13e7f5, TypeS_2op>, Enc_70fb07 { 18355let Inst{7-5} = 0b010; 18356let Inst{31-21} = 0b10000010000; 18357let prefersSlot3 = 1; 18358let Constraints = "$Rxx32 = $Rxx32in"; 18359} 18360def S2_asl_i_p_or : HInst< 18361(outs DoubleRegs:$Rxx32), 18362(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 18363"$Rxx32 |= asl($Rss32,#$Ii)", 18364tc_a4e22bbd, TypeS_2op>, Enc_70fb07 { 18365let Inst{7-5} = 0b110; 18366let Inst{31-21} = 0b10000010010; 18367let prefersSlot3 = 1; 18368let Constraints = "$Rxx32 = $Rxx32in"; 18369} 18370def S2_asl_i_p_xacc : HInst< 18371(outs DoubleRegs:$Rxx32), 18372(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 18373"$Rxx32 ^= asl($Rss32,#$Ii)", 18374tc_a4e22bbd, TypeS_2op>, Enc_70fb07 { 18375let Inst{7-5} = 0b010; 18376let Inst{31-21} = 0b10000010100; 18377let prefersSlot3 = 1; 18378let Constraints = "$Rxx32 = $Rxx32in"; 18379} 18380def S2_asl_i_r : HInst< 18381(outs IntRegs:$Rd32), 18382(ins IntRegs:$Rs32, u5_0Imm:$Ii), 18383"$Rd32 = asl($Rs32,#$Ii)", 18384tc_5da50c4b, TypeS_2op>, Enc_a05677 { 18385let Inst{7-5} = 0b010; 18386let Inst{13-13} = 0b0; 18387let Inst{31-21} = 0b10001100000; 18388let hasNewValue = 1; 18389let opNewValue = 0; 18390} 18391def S2_asl_i_r_acc : HInst< 18392(outs IntRegs:$Rx32), 18393(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 18394"$Rx32 += asl($Rs32,#$Ii)", 18395tc_2c13e7f5, TypeS_2op>, Enc_28a2dc { 18396let Inst{7-5} = 0b110; 18397let Inst{13-13} = 0b0; 18398let Inst{31-21} = 0b10001110000; 18399let hasNewValue = 1; 18400let opNewValue = 0; 18401let prefersSlot3 = 1; 18402let Constraints = "$Rx32 = $Rx32in"; 18403} 18404def S2_asl_i_r_and : HInst< 18405(outs IntRegs:$Rx32), 18406(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 18407"$Rx32 &= asl($Rs32,#$Ii)", 18408tc_a4e22bbd, TypeS_2op>, Enc_28a2dc { 18409let Inst{7-5} = 0b010; 18410let Inst{13-13} = 0b0; 18411let Inst{31-21} = 0b10001110010; 18412let hasNewValue = 1; 18413let opNewValue = 0; 18414let prefersSlot3 = 1; 18415let Constraints = "$Rx32 = $Rx32in"; 18416} 18417def S2_asl_i_r_nac : HInst< 18418(outs IntRegs:$Rx32), 18419(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 18420"$Rx32 -= asl($Rs32,#$Ii)", 18421tc_2c13e7f5, TypeS_2op>, Enc_28a2dc { 18422let Inst{7-5} = 0b010; 18423let Inst{13-13} = 0b0; 18424let Inst{31-21} = 0b10001110000; 18425let hasNewValue = 1; 18426let opNewValue = 0; 18427let prefersSlot3 = 1; 18428let Constraints = "$Rx32 = $Rx32in"; 18429} 18430def S2_asl_i_r_or : HInst< 18431(outs IntRegs:$Rx32), 18432(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 18433"$Rx32 |= asl($Rs32,#$Ii)", 18434tc_a4e22bbd, TypeS_2op>, Enc_28a2dc { 18435let Inst{7-5} = 0b110; 18436let Inst{13-13} = 0b0; 18437let Inst{31-21} = 0b10001110010; 18438let hasNewValue = 1; 18439let opNewValue = 0; 18440let prefersSlot3 = 1; 18441let Constraints = "$Rx32 = $Rx32in"; 18442} 18443def S2_asl_i_r_sat : HInst< 18444(outs IntRegs:$Rd32), 18445(ins IntRegs:$Rs32, u5_0Imm:$Ii), 18446"$Rd32 = asl($Rs32,#$Ii):sat", 18447tc_8a825db2, TypeS_2op>, Enc_a05677 { 18448let Inst{7-5} = 0b010; 18449let Inst{13-13} = 0b0; 18450let Inst{31-21} = 0b10001100010; 18451let hasNewValue = 1; 18452let opNewValue = 0; 18453let prefersSlot3 = 1; 18454let Defs = [USR_OVF]; 18455} 18456def S2_asl_i_r_xacc : HInst< 18457(outs IntRegs:$Rx32), 18458(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 18459"$Rx32 ^= asl($Rs32,#$Ii)", 18460tc_a4e22bbd, TypeS_2op>, Enc_28a2dc { 18461let Inst{7-5} = 0b010; 18462let Inst{13-13} = 0b0; 18463let Inst{31-21} = 0b10001110100; 18464let hasNewValue = 1; 18465let opNewValue = 0; 18466let prefersSlot3 = 1; 18467let Constraints = "$Rx32 = $Rx32in"; 18468} 18469def S2_asl_i_vh : HInst< 18470(outs DoubleRegs:$Rdd32), 18471(ins DoubleRegs:$Rss32, u4_0Imm:$Ii), 18472"$Rdd32 = vaslh($Rss32,#$Ii)", 18473tc_5da50c4b, TypeS_2op>, Enc_12b6e9 { 18474let Inst{7-5} = 0b010; 18475let Inst{13-12} = 0b00; 18476let Inst{31-21} = 0b10000000100; 18477} 18478def S2_asl_i_vw : HInst< 18479(outs DoubleRegs:$Rdd32), 18480(ins DoubleRegs:$Rss32, u5_0Imm:$Ii), 18481"$Rdd32 = vaslw($Rss32,#$Ii)", 18482tc_5da50c4b, TypeS_2op>, Enc_7e5a82 { 18483let Inst{7-5} = 0b010; 18484let Inst{13-13} = 0b0; 18485let Inst{31-21} = 0b10000000010; 18486} 18487def S2_asl_r_p : HInst< 18488(outs DoubleRegs:$Rdd32), 18489(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 18490"$Rdd32 = asl($Rss32,$Rt32)", 18491tc_5da50c4b, TypeS_3op>, Enc_927852 { 18492let Inst{7-5} = 0b100; 18493let Inst{13-13} = 0b0; 18494let Inst{31-21} = 0b11000011100; 18495} 18496def S2_asl_r_p_acc : HInst< 18497(outs DoubleRegs:$Rxx32), 18498(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 18499"$Rxx32 += asl($Rss32,$Rt32)", 18500tc_2c13e7f5, TypeS_3op>, Enc_1aa186 { 18501let Inst{7-5} = 0b100; 18502let Inst{13-13} = 0b0; 18503let Inst{31-21} = 0b11001011110; 18504let prefersSlot3 = 1; 18505let Constraints = "$Rxx32 = $Rxx32in"; 18506} 18507def S2_asl_r_p_and : HInst< 18508(outs DoubleRegs:$Rxx32), 18509(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 18510"$Rxx32 &= asl($Rss32,$Rt32)", 18511tc_a4e22bbd, TypeS_3op>, Enc_1aa186 { 18512let Inst{7-5} = 0b100; 18513let Inst{13-13} = 0b0; 18514let Inst{31-21} = 0b11001011010; 18515let prefersSlot3 = 1; 18516let Constraints = "$Rxx32 = $Rxx32in"; 18517} 18518def S2_asl_r_p_nac : HInst< 18519(outs DoubleRegs:$Rxx32), 18520(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 18521"$Rxx32 -= asl($Rss32,$Rt32)", 18522tc_2c13e7f5, TypeS_3op>, Enc_1aa186 { 18523let Inst{7-5} = 0b100; 18524let Inst{13-13} = 0b0; 18525let Inst{31-21} = 0b11001011100; 18526let prefersSlot3 = 1; 18527let Constraints = "$Rxx32 = $Rxx32in"; 18528} 18529def S2_asl_r_p_or : HInst< 18530(outs DoubleRegs:$Rxx32), 18531(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 18532"$Rxx32 |= asl($Rss32,$Rt32)", 18533tc_a4e22bbd, TypeS_3op>, Enc_1aa186 { 18534let Inst{7-5} = 0b100; 18535let Inst{13-13} = 0b0; 18536let Inst{31-21} = 0b11001011000; 18537let prefersSlot3 = 1; 18538let Constraints = "$Rxx32 = $Rxx32in"; 18539} 18540def S2_asl_r_p_xor : HInst< 18541(outs DoubleRegs:$Rxx32), 18542(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 18543"$Rxx32 ^= asl($Rss32,$Rt32)", 18544tc_a4e22bbd, TypeS_3op>, Enc_1aa186 { 18545let Inst{7-5} = 0b100; 18546let Inst{13-13} = 0b0; 18547let Inst{31-21} = 0b11001011011; 18548let prefersSlot3 = 1; 18549let Constraints = "$Rxx32 = $Rxx32in"; 18550} 18551def S2_asl_r_r : HInst< 18552(outs IntRegs:$Rd32), 18553(ins IntRegs:$Rs32, IntRegs:$Rt32), 18554"$Rd32 = asl($Rs32,$Rt32)", 18555tc_5da50c4b, TypeS_3op>, Enc_5ab2be { 18556let Inst{7-5} = 0b100; 18557let Inst{13-13} = 0b0; 18558let Inst{31-21} = 0b11000110010; 18559let hasNewValue = 1; 18560let opNewValue = 0; 18561} 18562def S2_asl_r_r_acc : HInst< 18563(outs IntRegs:$Rx32), 18564(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 18565"$Rx32 += asl($Rs32,$Rt32)", 18566tc_2c13e7f5, TypeS_3op>, Enc_2ae154 { 18567let Inst{7-5} = 0b100; 18568let Inst{13-13} = 0b0; 18569let Inst{31-21} = 0b11001100110; 18570let hasNewValue = 1; 18571let opNewValue = 0; 18572let prefersSlot3 = 1; 18573let Constraints = "$Rx32 = $Rx32in"; 18574} 18575def S2_asl_r_r_and : HInst< 18576(outs IntRegs:$Rx32), 18577(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 18578"$Rx32 &= asl($Rs32,$Rt32)", 18579tc_a4e22bbd, TypeS_3op>, Enc_2ae154 { 18580let Inst{7-5} = 0b100; 18581let Inst{13-13} = 0b0; 18582let Inst{31-21} = 0b11001100010; 18583let hasNewValue = 1; 18584let opNewValue = 0; 18585let prefersSlot3 = 1; 18586let Constraints = "$Rx32 = $Rx32in"; 18587} 18588def S2_asl_r_r_nac : HInst< 18589(outs IntRegs:$Rx32), 18590(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 18591"$Rx32 -= asl($Rs32,$Rt32)", 18592tc_2c13e7f5, TypeS_3op>, Enc_2ae154 { 18593let Inst{7-5} = 0b100; 18594let Inst{13-13} = 0b0; 18595let Inst{31-21} = 0b11001100100; 18596let hasNewValue = 1; 18597let opNewValue = 0; 18598let prefersSlot3 = 1; 18599let Constraints = "$Rx32 = $Rx32in"; 18600} 18601def S2_asl_r_r_or : HInst< 18602(outs IntRegs:$Rx32), 18603(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 18604"$Rx32 |= asl($Rs32,$Rt32)", 18605tc_a4e22bbd, TypeS_3op>, Enc_2ae154 { 18606let Inst{7-5} = 0b100; 18607let Inst{13-13} = 0b0; 18608let Inst{31-21} = 0b11001100000; 18609let hasNewValue = 1; 18610let opNewValue = 0; 18611let prefersSlot3 = 1; 18612let Constraints = "$Rx32 = $Rx32in"; 18613} 18614def S2_asl_r_r_sat : HInst< 18615(outs IntRegs:$Rd32), 18616(ins IntRegs:$Rs32, IntRegs:$Rt32), 18617"$Rd32 = asl($Rs32,$Rt32):sat", 18618tc_8a825db2, TypeS_3op>, Enc_5ab2be { 18619let Inst{7-5} = 0b100; 18620let Inst{13-13} = 0b0; 18621let Inst{31-21} = 0b11000110000; 18622let hasNewValue = 1; 18623let opNewValue = 0; 18624let prefersSlot3 = 1; 18625let Defs = [USR_OVF]; 18626} 18627def S2_asl_r_vh : HInst< 18628(outs DoubleRegs:$Rdd32), 18629(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 18630"$Rdd32 = vaslh($Rss32,$Rt32)", 18631tc_5da50c4b, TypeS_3op>, Enc_927852 { 18632let Inst{7-5} = 0b100; 18633let Inst{13-13} = 0b0; 18634let Inst{31-21} = 0b11000011010; 18635} 18636def S2_asl_r_vw : HInst< 18637(outs DoubleRegs:$Rdd32), 18638(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 18639"$Rdd32 = vaslw($Rss32,$Rt32)", 18640tc_5da50c4b, TypeS_3op>, Enc_927852 { 18641let Inst{7-5} = 0b100; 18642let Inst{13-13} = 0b0; 18643let Inst{31-21} = 0b11000011000; 18644} 18645def S2_asr_i_p : HInst< 18646(outs DoubleRegs:$Rdd32), 18647(ins DoubleRegs:$Rss32, u6_0Imm:$Ii), 18648"$Rdd32 = asr($Rss32,#$Ii)", 18649tc_5da50c4b, TypeS_2op>, Enc_5eac98 { 18650let Inst{7-5} = 0b000; 18651let Inst{31-21} = 0b10000000000; 18652} 18653def S2_asr_i_p_acc : HInst< 18654(outs DoubleRegs:$Rxx32), 18655(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 18656"$Rxx32 += asr($Rss32,#$Ii)", 18657tc_2c13e7f5, TypeS_2op>, Enc_70fb07 { 18658let Inst{7-5} = 0b100; 18659let Inst{31-21} = 0b10000010000; 18660let prefersSlot3 = 1; 18661let Constraints = "$Rxx32 = $Rxx32in"; 18662} 18663def S2_asr_i_p_and : HInst< 18664(outs DoubleRegs:$Rxx32), 18665(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 18666"$Rxx32 &= asr($Rss32,#$Ii)", 18667tc_a4e22bbd, TypeS_2op>, Enc_70fb07 { 18668let Inst{7-5} = 0b000; 18669let Inst{31-21} = 0b10000010010; 18670let prefersSlot3 = 1; 18671let Constraints = "$Rxx32 = $Rxx32in"; 18672} 18673def S2_asr_i_p_nac : HInst< 18674(outs DoubleRegs:$Rxx32), 18675(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 18676"$Rxx32 -= asr($Rss32,#$Ii)", 18677tc_2c13e7f5, TypeS_2op>, Enc_70fb07 { 18678let Inst{7-5} = 0b000; 18679let Inst{31-21} = 0b10000010000; 18680let prefersSlot3 = 1; 18681let Constraints = "$Rxx32 = $Rxx32in"; 18682} 18683def S2_asr_i_p_or : HInst< 18684(outs DoubleRegs:$Rxx32), 18685(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 18686"$Rxx32 |= asr($Rss32,#$Ii)", 18687tc_a4e22bbd, TypeS_2op>, Enc_70fb07 { 18688let Inst{7-5} = 0b100; 18689let Inst{31-21} = 0b10000010010; 18690let prefersSlot3 = 1; 18691let Constraints = "$Rxx32 = $Rxx32in"; 18692} 18693def S2_asr_i_p_rnd : HInst< 18694(outs DoubleRegs:$Rdd32), 18695(ins DoubleRegs:$Rss32, u6_0Imm:$Ii), 18696"$Rdd32 = asr($Rss32,#$Ii):rnd", 18697tc_0dfac0a7, TypeS_2op>, Enc_5eac98 { 18698let Inst{7-5} = 0b111; 18699let Inst{31-21} = 0b10000000110; 18700let prefersSlot3 = 1; 18701} 18702def S2_asr_i_p_rnd_goodsyntax : HInst< 18703(outs DoubleRegs:$Rdd32), 18704(ins DoubleRegs:$Rss32, u6_0Imm:$Ii), 18705"$Rdd32 = asrrnd($Rss32,#$Ii)", 18706tc_0dfac0a7, TypeS_2op> { 18707let isPseudo = 1; 18708} 18709def S2_asr_i_r : HInst< 18710(outs IntRegs:$Rd32), 18711(ins IntRegs:$Rs32, u5_0Imm:$Ii), 18712"$Rd32 = asr($Rs32,#$Ii)", 18713tc_5da50c4b, TypeS_2op>, Enc_a05677 { 18714let Inst{7-5} = 0b000; 18715let Inst{13-13} = 0b0; 18716let Inst{31-21} = 0b10001100000; 18717let hasNewValue = 1; 18718let opNewValue = 0; 18719} 18720def S2_asr_i_r_acc : HInst< 18721(outs IntRegs:$Rx32), 18722(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 18723"$Rx32 += asr($Rs32,#$Ii)", 18724tc_2c13e7f5, TypeS_2op>, Enc_28a2dc { 18725let Inst{7-5} = 0b100; 18726let Inst{13-13} = 0b0; 18727let Inst{31-21} = 0b10001110000; 18728let hasNewValue = 1; 18729let opNewValue = 0; 18730let prefersSlot3 = 1; 18731let Constraints = "$Rx32 = $Rx32in"; 18732} 18733def S2_asr_i_r_and : HInst< 18734(outs IntRegs:$Rx32), 18735(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 18736"$Rx32 &= asr($Rs32,#$Ii)", 18737tc_a4e22bbd, TypeS_2op>, Enc_28a2dc { 18738let Inst{7-5} = 0b000; 18739let Inst{13-13} = 0b0; 18740let Inst{31-21} = 0b10001110010; 18741let hasNewValue = 1; 18742let opNewValue = 0; 18743let prefersSlot3 = 1; 18744let Constraints = "$Rx32 = $Rx32in"; 18745} 18746def S2_asr_i_r_nac : HInst< 18747(outs IntRegs:$Rx32), 18748(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 18749"$Rx32 -= asr($Rs32,#$Ii)", 18750tc_2c13e7f5, TypeS_2op>, Enc_28a2dc { 18751let Inst{7-5} = 0b000; 18752let Inst{13-13} = 0b0; 18753let Inst{31-21} = 0b10001110000; 18754let hasNewValue = 1; 18755let opNewValue = 0; 18756let prefersSlot3 = 1; 18757let Constraints = "$Rx32 = $Rx32in"; 18758} 18759def S2_asr_i_r_or : HInst< 18760(outs IntRegs:$Rx32), 18761(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 18762"$Rx32 |= asr($Rs32,#$Ii)", 18763tc_a4e22bbd, TypeS_2op>, Enc_28a2dc { 18764let Inst{7-5} = 0b100; 18765let Inst{13-13} = 0b0; 18766let Inst{31-21} = 0b10001110010; 18767let hasNewValue = 1; 18768let opNewValue = 0; 18769let prefersSlot3 = 1; 18770let Constraints = "$Rx32 = $Rx32in"; 18771} 18772def S2_asr_i_r_rnd : HInst< 18773(outs IntRegs:$Rd32), 18774(ins IntRegs:$Rs32, u5_0Imm:$Ii), 18775"$Rd32 = asr($Rs32,#$Ii):rnd", 18776tc_0dfac0a7, TypeS_2op>, Enc_a05677 { 18777let Inst{7-5} = 0b000; 18778let Inst{13-13} = 0b0; 18779let Inst{31-21} = 0b10001100010; 18780let hasNewValue = 1; 18781let opNewValue = 0; 18782let prefersSlot3 = 1; 18783} 18784def S2_asr_i_r_rnd_goodsyntax : HInst< 18785(outs IntRegs:$Rd32), 18786(ins IntRegs:$Rs32, u5_0Imm:$Ii), 18787"$Rd32 = asrrnd($Rs32,#$Ii)", 18788tc_0dfac0a7, TypeS_2op> { 18789let hasNewValue = 1; 18790let opNewValue = 0; 18791let isPseudo = 1; 18792} 18793def S2_asr_i_svw_trun : HInst< 18794(outs IntRegs:$Rd32), 18795(ins DoubleRegs:$Rss32, u5_0Imm:$Ii), 18796"$Rd32 = vasrw($Rss32,#$Ii)", 18797tc_f34c1c21, TypeS_2op>, Enc_8dec2e { 18798let Inst{7-5} = 0b010; 18799let Inst{13-13} = 0b0; 18800let Inst{31-21} = 0b10001000110; 18801let hasNewValue = 1; 18802let opNewValue = 0; 18803let prefersSlot3 = 1; 18804} 18805def S2_asr_i_vh : HInst< 18806(outs DoubleRegs:$Rdd32), 18807(ins DoubleRegs:$Rss32, u4_0Imm:$Ii), 18808"$Rdd32 = vasrh($Rss32,#$Ii)", 18809tc_5da50c4b, TypeS_2op>, Enc_12b6e9 { 18810let Inst{7-5} = 0b000; 18811let Inst{13-12} = 0b00; 18812let Inst{31-21} = 0b10000000100; 18813} 18814def S2_asr_i_vw : HInst< 18815(outs DoubleRegs:$Rdd32), 18816(ins DoubleRegs:$Rss32, u5_0Imm:$Ii), 18817"$Rdd32 = vasrw($Rss32,#$Ii)", 18818tc_5da50c4b, TypeS_2op>, Enc_7e5a82 { 18819let Inst{7-5} = 0b000; 18820let Inst{13-13} = 0b0; 18821let Inst{31-21} = 0b10000000010; 18822} 18823def S2_asr_r_p : HInst< 18824(outs DoubleRegs:$Rdd32), 18825(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 18826"$Rdd32 = asr($Rss32,$Rt32)", 18827tc_5da50c4b, TypeS_3op>, Enc_927852 { 18828let Inst{7-5} = 0b000; 18829let Inst{13-13} = 0b0; 18830let Inst{31-21} = 0b11000011100; 18831} 18832def S2_asr_r_p_acc : HInst< 18833(outs DoubleRegs:$Rxx32), 18834(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 18835"$Rxx32 += asr($Rss32,$Rt32)", 18836tc_2c13e7f5, TypeS_3op>, Enc_1aa186 { 18837let Inst{7-5} = 0b000; 18838let Inst{13-13} = 0b0; 18839let Inst{31-21} = 0b11001011110; 18840let prefersSlot3 = 1; 18841let Constraints = "$Rxx32 = $Rxx32in"; 18842} 18843def S2_asr_r_p_and : HInst< 18844(outs DoubleRegs:$Rxx32), 18845(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 18846"$Rxx32 &= asr($Rss32,$Rt32)", 18847tc_a4e22bbd, TypeS_3op>, Enc_1aa186 { 18848let Inst{7-5} = 0b000; 18849let Inst{13-13} = 0b0; 18850let Inst{31-21} = 0b11001011010; 18851let prefersSlot3 = 1; 18852let Constraints = "$Rxx32 = $Rxx32in"; 18853} 18854def S2_asr_r_p_nac : HInst< 18855(outs DoubleRegs:$Rxx32), 18856(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 18857"$Rxx32 -= asr($Rss32,$Rt32)", 18858tc_2c13e7f5, TypeS_3op>, Enc_1aa186 { 18859let Inst{7-5} = 0b000; 18860let Inst{13-13} = 0b0; 18861let Inst{31-21} = 0b11001011100; 18862let prefersSlot3 = 1; 18863let Constraints = "$Rxx32 = $Rxx32in"; 18864} 18865def S2_asr_r_p_or : HInst< 18866(outs DoubleRegs:$Rxx32), 18867(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 18868"$Rxx32 |= asr($Rss32,$Rt32)", 18869tc_a4e22bbd, TypeS_3op>, Enc_1aa186 { 18870let Inst{7-5} = 0b000; 18871let Inst{13-13} = 0b0; 18872let Inst{31-21} = 0b11001011000; 18873let prefersSlot3 = 1; 18874let Constraints = "$Rxx32 = $Rxx32in"; 18875} 18876def S2_asr_r_p_xor : HInst< 18877(outs DoubleRegs:$Rxx32), 18878(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 18879"$Rxx32 ^= asr($Rss32,$Rt32)", 18880tc_a4e22bbd, TypeS_3op>, Enc_1aa186 { 18881let Inst{7-5} = 0b000; 18882let Inst{13-13} = 0b0; 18883let Inst{31-21} = 0b11001011011; 18884let prefersSlot3 = 1; 18885let Constraints = "$Rxx32 = $Rxx32in"; 18886} 18887def S2_asr_r_r : HInst< 18888(outs IntRegs:$Rd32), 18889(ins IntRegs:$Rs32, IntRegs:$Rt32), 18890"$Rd32 = asr($Rs32,$Rt32)", 18891tc_5da50c4b, TypeS_3op>, Enc_5ab2be { 18892let Inst{7-5} = 0b000; 18893let Inst{13-13} = 0b0; 18894let Inst{31-21} = 0b11000110010; 18895let hasNewValue = 1; 18896let opNewValue = 0; 18897} 18898def S2_asr_r_r_acc : HInst< 18899(outs IntRegs:$Rx32), 18900(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 18901"$Rx32 += asr($Rs32,$Rt32)", 18902tc_2c13e7f5, TypeS_3op>, Enc_2ae154 { 18903let Inst{7-5} = 0b000; 18904let Inst{13-13} = 0b0; 18905let Inst{31-21} = 0b11001100110; 18906let hasNewValue = 1; 18907let opNewValue = 0; 18908let prefersSlot3 = 1; 18909let Constraints = "$Rx32 = $Rx32in"; 18910} 18911def S2_asr_r_r_and : HInst< 18912(outs IntRegs:$Rx32), 18913(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 18914"$Rx32 &= asr($Rs32,$Rt32)", 18915tc_a4e22bbd, TypeS_3op>, Enc_2ae154 { 18916let Inst{7-5} = 0b000; 18917let Inst{13-13} = 0b0; 18918let Inst{31-21} = 0b11001100010; 18919let hasNewValue = 1; 18920let opNewValue = 0; 18921let prefersSlot3 = 1; 18922let Constraints = "$Rx32 = $Rx32in"; 18923} 18924def S2_asr_r_r_nac : HInst< 18925(outs IntRegs:$Rx32), 18926(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 18927"$Rx32 -= asr($Rs32,$Rt32)", 18928tc_2c13e7f5, TypeS_3op>, Enc_2ae154 { 18929let Inst{7-5} = 0b000; 18930let Inst{13-13} = 0b0; 18931let Inst{31-21} = 0b11001100100; 18932let hasNewValue = 1; 18933let opNewValue = 0; 18934let prefersSlot3 = 1; 18935let Constraints = "$Rx32 = $Rx32in"; 18936} 18937def S2_asr_r_r_or : HInst< 18938(outs IntRegs:$Rx32), 18939(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 18940"$Rx32 |= asr($Rs32,$Rt32)", 18941tc_a4e22bbd, TypeS_3op>, Enc_2ae154 { 18942let Inst{7-5} = 0b000; 18943let Inst{13-13} = 0b0; 18944let Inst{31-21} = 0b11001100000; 18945let hasNewValue = 1; 18946let opNewValue = 0; 18947let prefersSlot3 = 1; 18948let Constraints = "$Rx32 = $Rx32in"; 18949} 18950def S2_asr_r_r_sat : HInst< 18951(outs IntRegs:$Rd32), 18952(ins IntRegs:$Rs32, IntRegs:$Rt32), 18953"$Rd32 = asr($Rs32,$Rt32):sat", 18954tc_8a825db2, TypeS_3op>, Enc_5ab2be { 18955let Inst{7-5} = 0b000; 18956let Inst{13-13} = 0b0; 18957let Inst{31-21} = 0b11000110000; 18958let hasNewValue = 1; 18959let opNewValue = 0; 18960let prefersSlot3 = 1; 18961let Defs = [USR_OVF]; 18962} 18963def S2_asr_r_svw_trun : HInst< 18964(outs IntRegs:$Rd32), 18965(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 18966"$Rd32 = vasrw($Rss32,$Rt32)", 18967tc_f34c1c21, TypeS_3op>, Enc_3d5b28 { 18968let Inst{7-5} = 0b010; 18969let Inst{13-13} = 0b0; 18970let Inst{31-21} = 0b11000101000; 18971let hasNewValue = 1; 18972let opNewValue = 0; 18973let prefersSlot3 = 1; 18974} 18975def S2_asr_r_vh : HInst< 18976(outs DoubleRegs:$Rdd32), 18977(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 18978"$Rdd32 = vasrh($Rss32,$Rt32)", 18979tc_5da50c4b, TypeS_3op>, Enc_927852 { 18980let Inst{7-5} = 0b000; 18981let Inst{13-13} = 0b0; 18982let Inst{31-21} = 0b11000011010; 18983} 18984def S2_asr_r_vw : HInst< 18985(outs DoubleRegs:$Rdd32), 18986(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 18987"$Rdd32 = vasrw($Rss32,$Rt32)", 18988tc_5da50c4b, TypeS_3op>, Enc_927852 { 18989let Inst{7-5} = 0b000; 18990let Inst{13-13} = 0b0; 18991let Inst{31-21} = 0b11000011000; 18992} 18993def S2_brev : HInst< 18994(outs IntRegs:$Rd32), 18995(ins IntRegs:$Rs32), 18996"$Rd32 = brev($Rs32)", 18997tc_a7bdb22c, TypeS_2op>, Enc_5e2823 { 18998let Inst{13-5} = 0b000000110; 18999let Inst{31-21} = 0b10001100010; 19000let hasNewValue = 1; 19001let opNewValue = 0; 19002let prefersSlot3 = 1; 19003} 19004def S2_brevp : HInst< 19005(outs DoubleRegs:$Rdd32), 19006(ins DoubleRegs:$Rss32), 19007"$Rdd32 = brev($Rss32)", 19008tc_a7bdb22c, TypeS_2op>, Enc_b9c5fb { 19009let Inst{13-5} = 0b000000110; 19010let Inst{31-21} = 0b10000000110; 19011let prefersSlot3 = 1; 19012} 19013def S2_cabacdecbin : HInst< 19014(outs DoubleRegs:$Rdd32), 19015(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 19016"$Rdd32 = decbin($Rss32,$Rtt32)", 19017tc_db596beb, TypeS_3op>, Enc_a56825, Requires<[UseCabac]> { 19018let Inst{7-5} = 0b110; 19019let Inst{13-13} = 0b0; 19020let Inst{31-21} = 0b11000001110; 19021let isPredicateLate = 1; 19022let prefersSlot3 = 1; 19023let Defs = [P0]; 19024} 19025def S2_cl0 : HInst< 19026(outs IntRegs:$Rd32), 19027(ins IntRegs:$Rs32), 19028"$Rd32 = cl0($Rs32)", 19029tc_a7bdb22c, TypeS_2op>, Enc_5e2823 { 19030let Inst{13-5} = 0b000000101; 19031let Inst{31-21} = 0b10001100000; 19032let hasNewValue = 1; 19033let opNewValue = 0; 19034let prefersSlot3 = 1; 19035} 19036def S2_cl0p : HInst< 19037(outs IntRegs:$Rd32), 19038(ins DoubleRegs:$Rss32), 19039"$Rd32 = cl0($Rss32)", 19040tc_a7bdb22c, TypeS_2op>, Enc_90cd8b { 19041let Inst{13-5} = 0b000000010; 19042let Inst{31-21} = 0b10001000010; 19043let hasNewValue = 1; 19044let opNewValue = 0; 19045let prefersSlot3 = 1; 19046} 19047def S2_cl1 : HInst< 19048(outs IntRegs:$Rd32), 19049(ins IntRegs:$Rs32), 19050"$Rd32 = cl1($Rs32)", 19051tc_a7bdb22c, TypeS_2op>, Enc_5e2823 { 19052let Inst{13-5} = 0b000000110; 19053let Inst{31-21} = 0b10001100000; 19054let hasNewValue = 1; 19055let opNewValue = 0; 19056let prefersSlot3 = 1; 19057} 19058def S2_cl1p : HInst< 19059(outs IntRegs:$Rd32), 19060(ins DoubleRegs:$Rss32), 19061"$Rd32 = cl1($Rss32)", 19062tc_a7bdb22c, TypeS_2op>, Enc_90cd8b { 19063let Inst{13-5} = 0b000000100; 19064let Inst{31-21} = 0b10001000010; 19065let hasNewValue = 1; 19066let opNewValue = 0; 19067let prefersSlot3 = 1; 19068} 19069def S2_clb : HInst< 19070(outs IntRegs:$Rd32), 19071(ins IntRegs:$Rs32), 19072"$Rd32 = clb($Rs32)", 19073tc_a7bdb22c, TypeS_2op>, Enc_5e2823 { 19074let Inst{13-5} = 0b000000100; 19075let Inst{31-21} = 0b10001100000; 19076let hasNewValue = 1; 19077let opNewValue = 0; 19078let prefersSlot3 = 1; 19079} 19080def S2_clbnorm : HInst< 19081(outs IntRegs:$Rd32), 19082(ins IntRegs:$Rs32), 19083"$Rd32 = normamt($Rs32)", 19084tc_a7bdb22c, TypeS_2op>, Enc_5e2823 { 19085let Inst{13-5} = 0b000000111; 19086let Inst{31-21} = 0b10001100000; 19087let hasNewValue = 1; 19088let opNewValue = 0; 19089let prefersSlot3 = 1; 19090} 19091def S2_clbp : HInst< 19092(outs IntRegs:$Rd32), 19093(ins DoubleRegs:$Rss32), 19094"$Rd32 = clb($Rss32)", 19095tc_a7bdb22c, TypeS_2op>, Enc_90cd8b { 19096let Inst{13-5} = 0b000000000; 19097let Inst{31-21} = 0b10001000010; 19098let hasNewValue = 1; 19099let opNewValue = 0; 19100let prefersSlot3 = 1; 19101} 19102def S2_clrbit_i : HInst< 19103(outs IntRegs:$Rd32), 19104(ins IntRegs:$Rs32, u5_0Imm:$Ii), 19105"$Rd32 = clrbit($Rs32,#$Ii)", 19106tc_5da50c4b, TypeS_2op>, Enc_a05677 { 19107let Inst{7-5} = 0b001; 19108let Inst{13-13} = 0b0; 19109let Inst{31-21} = 0b10001100110; 19110let hasNewValue = 1; 19111let opNewValue = 0; 19112} 19113def S2_clrbit_r : HInst< 19114(outs IntRegs:$Rd32), 19115(ins IntRegs:$Rs32, IntRegs:$Rt32), 19116"$Rd32 = clrbit($Rs32,$Rt32)", 19117tc_5da50c4b, TypeS_3op>, Enc_5ab2be { 19118let Inst{7-5} = 0b010; 19119let Inst{13-13} = 0b0; 19120let Inst{31-21} = 0b11000110100; 19121let hasNewValue = 1; 19122let opNewValue = 0; 19123} 19124def S2_ct0 : HInst< 19125(outs IntRegs:$Rd32), 19126(ins IntRegs:$Rs32), 19127"$Rd32 = ct0($Rs32)", 19128tc_a7bdb22c, TypeS_2op>, Enc_5e2823 { 19129let Inst{13-5} = 0b000000100; 19130let Inst{31-21} = 0b10001100010; 19131let hasNewValue = 1; 19132let opNewValue = 0; 19133let prefersSlot3 = 1; 19134} 19135def S2_ct0p : HInst< 19136(outs IntRegs:$Rd32), 19137(ins DoubleRegs:$Rss32), 19138"$Rd32 = ct0($Rss32)", 19139tc_a7bdb22c, TypeS_2op>, Enc_90cd8b { 19140let Inst{13-5} = 0b000000010; 19141let Inst{31-21} = 0b10001000111; 19142let hasNewValue = 1; 19143let opNewValue = 0; 19144let prefersSlot3 = 1; 19145} 19146def S2_ct1 : HInst< 19147(outs IntRegs:$Rd32), 19148(ins IntRegs:$Rs32), 19149"$Rd32 = ct1($Rs32)", 19150tc_a7bdb22c, TypeS_2op>, Enc_5e2823 { 19151let Inst{13-5} = 0b000000101; 19152let Inst{31-21} = 0b10001100010; 19153let hasNewValue = 1; 19154let opNewValue = 0; 19155let prefersSlot3 = 1; 19156} 19157def S2_ct1p : HInst< 19158(outs IntRegs:$Rd32), 19159(ins DoubleRegs:$Rss32), 19160"$Rd32 = ct1($Rss32)", 19161tc_a7bdb22c, TypeS_2op>, Enc_90cd8b { 19162let Inst{13-5} = 0b000000100; 19163let Inst{31-21} = 0b10001000111; 19164let hasNewValue = 1; 19165let opNewValue = 0; 19166let prefersSlot3 = 1; 19167} 19168def S2_deinterleave : HInst< 19169(outs DoubleRegs:$Rdd32), 19170(ins DoubleRegs:$Rss32), 19171"$Rdd32 = deinterleave($Rss32)", 19172tc_a7bdb22c, TypeS_2op>, Enc_b9c5fb { 19173let Inst{13-5} = 0b000000100; 19174let Inst{31-21} = 0b10000000110; 19175let prefersSlot3 = 1; 19176} 19177def S2_extractu : HInst< 19178(outs IntRegs:$Rd32), 19179(ins IntRegs:$Rs32, u5_0Imm:$Ii, u5_0Imm:$II), 19180"$Rd32 = extractu($Rs32,#$Ii,#$II)", 19181tc_2c13e7f5, TypeS_2op>, Enc_b388cf { 19182let Inst{13-13} = 0b0; 19183let Inst{31-23} = 0b100011010; 19184let hasNewValue = 1; 19185let opNewValue = 0; 19186let prefersSlot3 = 1; 19187} 19188def S2_extractu_rp : HInst< 19189(outs IntRegs:$Rd32), 19190(ins IntRegs:$Rs32, DoubleRegs:$Rtt32), 19191"$Rd32 = extractu($Rs32,$Rtt32)", 19192tc_a08b630b, TypeS_3op>, Enc_e07374 { 19193let Inst{7-5} = 0b000; 19194let Inst{13-13} = 0b0; 19195let Inst{31-21} = 0b11001001000; 19196let hasNewValue = 1; 19197let opNewValue = 0; 19198let prefersSlot3 = 1; 19199} 19200def S2_extractup : HInst< 19201(outs DoubleRegs:$Rdd32), 19202(ins DoubleRegs:$Rss32, u6_0Imm:$Ii, u6_0Imm:$II), 19203"$Rdd32 = extractu($Rss32,#$Ii,#$II)", 19204tc_2c13e7f5, TypeS_2op>, Enc_b84c4c { 19205let Inst{31-24} = 0b10000001; 19206let prefersSlot3 = 1; 19207} 19208def S2_extractup_rp : HInst< 19209(outs DoubleRegs:$Rdd32), 19210(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 19211"$Rdd32 = extractu($Rss32,$Rtt32)", 19212tc_a08b630b, TypeS_3op>, Enc_a56825 { 19213let Inst{7-5} = 0b000; 19214let Inst{13-13} = 0b0; 19215let Inst{31-21} = 0b11000001000; 19216let prefersSlot3 = 1; 19217} 19218def S2_insert : HInst< 19219(outs IntRegs:$Rx32), 19220(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii, u5_0Imm:$II), 19221"$Rx32 = insert($Rs32,#$Ii,#$II)", 19222tc_bb831a7c, TypeS_2op>, Enc_a1e29d { 19223let Inst{13-13} = 0b0; 19224let Inst{31-23} = 0b100011110; 19225let hasNewValue = 1; 19226let opNewValue = 0; 19227let prefersSlot3 = 1; 19228let Constraints = "$Rx32 = $Rx32in"; 19229} 19230def S2_insert_rp : HInst< 19231(outs IntRegs:$Rx32), 19232(ins IntRegs:$Rx32in, IntRegs:$Rs32, DoubleRegs:$Rtt32), 19233"$Rx32 = insert($Rs32,$Rtt32)", 19234tc_a4e22bbd, TypeS_3op>, Enc_179b35 { 19235let Inst{7-5} = 0b000; 19236let Inst{13-13} = 0b0; 19237let Inst{31-21} = 0b11001000000; 19238let hasNewValue = 1; 19239let opNewValue = 0; 19240let prefersSlot3 = 1; 19241let Constraints = "$Rx32 = $Rx32in"; 19242} 19243def S2_insertp : HInst< 19244(outs DoubleRegs:$Rxx32), 19245(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii, u6_0Imm:$II), 19246"$Rxx32 = insert($Rss32,#$Ii,#$II)", 19247tc_bb831a7c, TypeS_2op>, Enc_143a3c { 19248let Inst{31-24} = 0b10000011; 19249let prefersSlot3 = 1; 19250let Constraints = "$Rxx32 = $Rxx32in"; 19251} 19252def S2_insertp_rp : HInst< 19253(outs DoubleRegs:$Rxx32), 19254(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 19255"$Rxx32 = insert($Rss32,$Rtt32)", 19256tc_a4e22bbd, TypeS_3op>, Enc_88c16c { 19257let Inst{7-5} = 0b000; 19258let Inst{13-13} = 0b0; 19259let Inst{31-21} = 0b11001010000; 19260let prefersSlot3 = 1; 19261let Constraints = "$Rxx32 = $Rxx32in"; 19262} 19263def S2_interleave : HInst< 19264(outs DoubleRegs:$Rdd32), 19265(ins DoubleRegs:$Rss32), 19266"$Rdd32 = interleave($Rss32)", 19267tc_a7bdb22c, TypeS_2op>, Enc_b9c5fb { 19268let Inst{13-5} = 0b000000101; 19269let Inst{31-21} = 0b10000000110; 19270let prefersSlot3 = 1; 19271} 19272def S2_lfsp : HInst< 19273(outs DoubleRegs:$Rdd32), 19274(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 19275"$Rdd32 = lfs($Rss32,$Rtt32)", 19276tc_a08b630b, TypeS_3op>, Enc_a56825 { 19277let Inst{7-5} = 0b110; 19278let Inst{13-13} = 0b0; 19279let Inst{31-21} = 0b11000001100; 19280let prefersSlot3 = 1; 19281} 19282def S2_lsl_r_p : HInst< 19283(outs DoubleRegs:$Rdd32), 19284(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 19285"$Rdd32 = lsl($Rss32,$Rt32)", 19286tc_5da50c4b, TypeS_3op>, Enc_927852 { 19287let Inst{7-5} = 0b110; 19288let Inst{13-13} = 0b0; 19289let Inst{31-21} = 0b11000011100; 19290} 19291def S2_lsl_r_p_acc : HInst< 19292(outs DoubleRegs:$Rxx32), 19293(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 19294"$Rxx32 += lsl($Rss32,$Rt32)", 19295tc_2c13e7f5, TypeS_3op>, Enc_1aa186 { 19296let Inst{7-5} = 0b110; 19297let Inst{13-13} = 0b0; 19298let Inst{31-21} = 0b11001011110; 19299let prefersSlot3 = 1; 19300let Constraints = "$Rxx32 = $Rxx32in"; 19301} 19302def S2_lsl_r_p_and : HInst< 19303(outs DoubleRegs:$Rxx32), 19304(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 19305"$Rxx32 &= lsl($Rss32,$Rt32)", 19306tc_a4e22bbd, TypeS_3op>, Enc_1aa186 { 19307let Inst{7-5} = 0b110; 19308let Inst{13-13} = 0b0; 19309let Inst{31-21} = 0b11001011010; 19310let prefersSlot3 = 1; 19311let Constraints = "$Rxx32 = $Rxx32in"; 19312} 19313def S2_lsl_r_p_nac : HInst< 19314(outs DoubleRegs:$Rxx32), 19315(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 19316"$Rxx32 -= lsl($Rss32,$Rt32)", 19317tc_2c13e7f5, TypeS_3op>, Enc_1aa186 { 19318let Inst{7-5} = 0b110; 19319let Inst{13-13} = 0b0; 19320let Inst{31-21} = 0b11001011100; 19321let prefersSlot3 = 1; 19322let Constraints = "$Rxx32 = $Rxx32in"; 19323} 19324def S2_lsl_r_p_or : HInst< 19325(outs DoubleRegs:$Rxx32), 19326(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 19327"$Rxx32 |= lsl($Rss32,$Rt32)", 19328tc_a4e22bbd, TypeS_3op>, Enc_1aa186 { 19329let Inst{7-5} = 0b110; 19330let Inst{13-13} = 0b0; 19331let Inst{31-21} = 0b11001011000; 19332let prefersSlot3 = 1; 19333let Constraints = "$Rxx32 = $Rxx32in"; 19334} 19335def S2_lsl_r_p_xor : HInst< 19336(outs DoubleRegs:$Rxx32), 19337(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 19338"$Rxx32 ^= lsl($Rss32,$Rt32)", 19339tc_a4e22bbd, TypeS_3op>, Enc_1aa186 { 19340let Inst{7-5} = 0b110; 19341let Inst{13-13} = 0b0; 19342let Inst{31-21} = 0b11001011011; 19343let prefersSlot3 = 1; 19344let Constraints = "$Rxx32 = $Rxx32in"; 19345} 19346def S2_lsl_r_r : HInst< 19347(outs IntRegs:$Rd32), 19348(ins IntRegs:$Rs32, IntRegs:$Rt32), 19349"$Rd32 = lsl($Rs32,$Rt32)", 19350tc_5da50c4b, TypeS_3op>, Enc_5ab2be { 19351let Inst{7-5} = 0b110; 19352let Inst{13-13} = 0b0; 19353let Inst{31-21} = 0b11000110010; 19354let hasNewValue = 1; 19355let opNewValue = 0; 19356} 19357def S2_lsl_r_r_acc : HInst< 19358(outs IntRegs:$Rx32), 19359(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 19360"$Rx32 += lsl($Rs32,$Rt32)", 19361tc_2c13e7f5, TypeS_3op>, Enc_2ae154 { 19362let Inst{7-5} = 0b110; 19363let Inst{13-13} = 0b0; 19364let Inst{31-21} = 0b11001100110; 19365let hasNewValue = 1; 19366let opNewValue = 0; 19367let prefersSlot3 = 1; 19368let Constraints = "$Rx32 = $Rx32in"; 19369} 19370def S2_lsl_r_r_and : HInst< 19371(outs IntRegs:$Rx32), 19372(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 19373"$Rx32 &= lsl($Rs32,$Rt32)", 19374tc_a4e22bbd, TypeS_3op>, Enc_2ae154 { 19375let Inst{7-5} = 0b110; 19376let Inst{13-13} = 0b0; 19377let Inst{31-21} = 0b11001100010; 19378let hasNewValue = 1; 19379let opNewValue = 0; 19380let prefersSlot3 = 1; 19381let Constraints = "$Rx32 = $Rx32in"; 19382} 19383def S2_lsl_r_r_nac : HInst< 19384(outs IntRegs:$Rx32), 19385(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 19386"$Rx32 -= lsl($Rs32,$Rt32)", 19387tc_2c13e7f5, TypeS_3op>, Enc_2ae154 { 19388let Inst{7-5} = 0b110; 19389let Inst{13-13} = 0b0; 19390let Inst{31-21} = 0b11001100100; 19391let hasNewValue = 1; 19392let opNewValue = 0; 19393let prefersSlot3 = 1; 19394let Constraints = "$Rx32 = $Rx32in"; 19395} 19396def S2_lsl_r_r_or : HInst< 19397(outs IntRegs:$Rx32), 19398(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 19399"$Rx32 |= lsl($Rs32,$Rt32)", 19400tc_a4e22bbd, TypeS_3op>, Enc_2ae154 { 19401let Inst{7-5} = 0b110; 19402let Inst{13-13} = 0b0; 19403let Inst{31-21} = 0b11001100000; 19404let hasNewValue = 1; 19405let opNewValue = 0; 19406let prefersSlot3 = 1; 19407let Constraints = "$Rx32 = $Rx32in"; 19408} 19409def S2_lsl_r_vh : HInst< 19410(outs DoubleRegs:$Rdd32), 19411(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 19412"$Rdd32 = vlslh($Rss32,$Rt32)", 19413tc_5da50c4b, TypeS_3op>, Enc_927852 { 19414let Inst{7-5} = 0b110; 19415let Inst{13-13} = 0b0; 19416let Inst{31-21} = 0b11000011010; 19417} 19418def S2_lsl_r_vw : HInst< 19419(outs DoubleRegs:$Rdd32), 19420(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 19421"$Rdd32 = vlslw($Rss32,$Rt32)", 19422tc_5da50c4b, TypeS_3op>, Enc_927852 { 19423let Inst{7-5} = 0b110; 19424let Inst{13-13} = 0b0; 19425let Inst{31-21} = 0b11000011000; 19426} 19427def S2_lsr_i_p : HInst< 19428(outs DoubleRegs:$Rdd32), 19429(ins DoubleRegs:$Rss32, u6_0Imm:$Ii), 19430"$Rdd32 = lsr($Rss32,#$Ii)", 19431tc_5da50c4b, TypeS_2op>, Enc_5eac98 { 19432let Inst{7-5} = 0b001; 19433let Inst{31-21} = 0b10000000000; 19434} 19435def S2_lsr_i_p_acc : HInst< 19436(outs DoubleRegs:$Rxx32), 19437(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 19438"$Rxx32 += lsr($Rss32,#$Ii)", 19439tc_2c13e7f5, TypeS_2op>, Enc_70fb07 { 19440let Inst{7-5} = 0b101; 19441let Inst{31-21} = 0b10000010000; 19442let prefersSlot3 = 1; 19443let Constraints = "$Rxx32 = $Rxx32in"; 19444} 19445def S2_lsr_i_p_and : HInst< 19446(outs DoubleRegs:$Rxx32), 19447(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 19448"$Rxx32 &= lsr($Rss32,#$Ii)", 19449tc_a4e22bbd, TypeS_2op>, Enc_70fb07 { 19450let Inst{7-5} = 0b001; 19451let Inst{31-21} = 0b10000010010; 19452let prefersSlot3 = 1; 19453let Constraints = "$Rxx32 = $Rxx32in"; 19454} 19455def S2_lsr_i_p_nac : HInst< 19456(outs DoubleRegs:$Rxx32), 19457(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 19458"$Rxx32 -= lsr($Rss32,#$Ii)", 19459tc_2c13e7f5, TypeS_2op>, Enc_70fb07 { 19460let Inst{7-5} = 0b001; 19461let Inst{31-21} = 0b10000010000; 19462let prefersSlot3 = 1; 19463let Constraints = "$Rxx32 = $Rxx32in"; 19464} 19465def S2_lsr_i_p_or : HInst< 19466(outs DoubleRegs:$Rxx32), 19467(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 19468"$Rxx32 |= lsr($Rss32,#$Ii)", 19469tc_a4e22bbd, TypeS_2op>, Enc_70fb07 { 19470let Inst{7-5} = 0b101; 19471let Inst{31-21} = 0b10000010010; 19472let prefersSlot3 = 1; 19473let Constraints = "$Rxx32 = $Rxx32in"; 19474} 19475def S2_lsr_i_p_xacc : HInst< 19476(outs DoubleRegs:$Rxx32), 19477(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 19478"$Rxx32 ^= lsr($Rss32,#$Ii)", 19479tc_a4e22bbd, TypeS_2op>, Enc_70fb07 { 19480let Inst{7-5} = 0b001; 19481let Inst{31-21} = 0b10000010100; 19482let prefersSlot3 = 1; 19483let Constraints = "$Rxx32 = $Rxx32in"; 19484} 19485def S2_lsr_i_r : HInst< 19486(outs IntRegs:$Rd32), 19487(ins IntRegs:$Rs32, u5_0Imm:$Ii), 19488"$Rd32 = lsr($Rs32,#$Ii)", 19489tc_5da50c4b, TypeS_2op>, Enc_a05677 { 19490let Inst{7-5} = 0b001; 19491let Inst{13-13} = 0b0; 19492let Inst{31-21} = 0b10001100000; 19493let hasNewValue = 1; 19494let opNewValue = 0; 19495} 19496def S2_lsr_i_r_acc : HInst< 19497(outs IntRegs:$Rx32), 19498(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 19499"$Rx32 += lsr($Rs32,#$Ii)", 19500tc_2c13e7f5, TypeS_2op>, Enc_28a2dc { 19501let Inst{7-5} = 0b101; 19502let Inst{13-13} = 0b0; 19503let Inst{31-21} = 0b10001110000; 19504let hasNewValue = 1; 19505let opNewValue = 0; 19506let prefersSlot3 = 1; 19507let Constraints = "$Rx32 = $Rx32in"; 19508} 19509def S2_lsr_i_r_and : HInst< 19510(outs IntRegs:$Rx32), 19511(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 19512"$Rx32 &= lsr($Rs32,#$Ii)", 19513tc_a4e22bbd, TypeS_2op>, Enc_28a2dc { 19514let Inst{7-5} = 0b001; 19515let Inst{13-13} = 0b0; 19516let Inst{31-21} = 0b10001110010; 19517let hasNewValue = 1; 19518let opNewValue = 0; 19519let prefersSlot3 = 1; 19520let Constraints = "$Rx32 = $Rx32in"; 19521} 19522def S2_lsr_i_r_nac : HInst< 19523(outs IntRegs:$Rx32), 19524(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 19525"$Rx32 -= lsr($Rs32,#$Ii)", 19526tc_2c13e7f5, TypeS_2op>, Enc_28a2dc { 19527let Inst{7-5} = 0b001; 19528let Inst{13-13} = 0b0; 19529let Inst{31-21} = 0b10001110000; 19530let hasNewValue = 1; 19531let opNewValue = 0; 19532let prefersSlot3 = 1; 19533let Constraints = "$Rx32 = $Rx32in"; 19534} 19535def S2_lsr_i_r_or : HInst< 19536(outs IntRegs:$Rx32), 19537(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 19538"$Rx32 |= lsr($Rs32,#$Ii)", 19539tc_a4e22bbd, TypeS_2op>, Enc_28a2dc { 19540let Inst{7-5} = 0b101; 19541let Inst{13-13} = 0b0; 19542let Inst{31-21} = 0b10001110010; 19543let hasNewValue = 1; 19544let opNewValue = 0; 19545let prefersSlot3 = 1; 19546let Constraints = "$Rx32 = $Rx32in"; 19547} 19548def S2_lsr_i_r_xacc : HInst< 19549(outs IntRegs:$Rx32), 19550(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 19551"$Rx32 ^= lsr($Rs32,#$Ii)", 19552tc_a4e22bbd, TypeS_2op>, Enc_28a2dc { 19553let Inst{7-5} = 0b001; 19554let Inst{13-13} = 0b0; 19555let Inst{31-21} = 0b10001110100; 19556let hasNewValue = 1; 19557let opNewValue = 0; 19558let prefersSlot3 = 1; 19559let Constraints = "$Rx32 = $Rx32in"; 19560} 19561def S2_lsr_i_vh : HInst< 19562(outs DoubleRegs:$Rdd32), 19563(ins DoubleRegs:$Rss32, u4_0Imm:$Ii), 19564"$Rdd32 = vlsrh($Rss32,#$Ii)", 19565tc_5da50c4b, TypeS_2op>, Enc_12b6e9 { 19566let Inst{7-5} = 0b001; 19567let Inst{13-12} = 0b00; 19568let Inst{31-21} = 0b10000000100; 19569} 19570def S2_lsr_i_vw : HInst< 19571(outs DoubleRegs:$Rdd32), 19572(ins DoubleRegs:$Rss32, u5_0Imm:$Ii), 19573"$Rdd32 = vlsrw($Rss32,#$Ii)", 19574tc_5da50c4b, TypeS_2op>, Enc_7e5a82 { 19575let Inst{7-5} = 0b001; 19576let Inst{13-13} = 0b0; 19577let Inst{31-21} = 0b10000000010; 19578} 19579def S2_lsr_r_p : HInst< 19580(outs DoubleRegs:$Rdd32), 19581(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 19582"$Rdd32 = lsr($Rss32,$Rt32)", 19583tc_5da50c4b, TypeS_3op>, Enc_927852 { 19584let Inst{7-5} = 0b010; 19585let Inst{13-13} = 0b0; 19586let Inst{31-21} = 0b11000011100; 19587} 19588def S2_lsr_r_p_acc : HInst< 19589(outs DoubleRegs:$Rxx32), 19590(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 19591"$Rxx32 += lsr($Rss32,$Rt32)", 19592tc_2c13e7f5, TypeS_3op>, Enc_1aa186 { 19593let Inst{7-5} = 0b010; 19594let Inst{13-13} = 0b0; 19595let Inst{31-21} = 0b11001011110; 19596let prefersSlot3 = 1; 19597let Constraints = "$Rxx32 = $Rxx32in"; 19598} 19599def S2_lsr_r_p_and : HInst< 19600(outs DoubleRegs:$Rxx32), 19601(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 19602"$Rxx32 &= lsr($Rss32,$Rt32)", 19603tc_a4e22bbd, TypeS_3op>, Enc_1aa186 { 19604let Inst{7-5} = 0b010; 19605let Inst{13-13} = 0b0; 19606let Inst{31-21} = 0b11001011010; 19607let prefersSlot3 = 1; 19608let Constraints = "$Rxx32 = $Rxx32in"; 19609} 19610def S2_lsr_r_p_nac : HInst< 19611(outs DoubleRegs:$Rxx32), 19612(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 19613"$Rxx32 -= lsr($Rss32,$Rt32)", 19614tc_2c13e7f5, TypeS_3op>, Enc_1aa186 { 19615let Inst{7-5} = 0b010; 19616let Inst{13-13} = 0b0; 19617let Inst{31-21} = 0b11001011100; 19618let prefersSlot3 = 1; 19619let Constraints = "$Rxx32 = $Rxx32in"; 19620} 19621def S2_lsr_r_p_or : HInst< 19622(outs DoubleRegs:$Rxx32), 19623(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 19624"$Rxx32 |= lsr($Rss32,$Rt32)", 19625tc_a4e22bbd, TypeS_3op>, Enc_1aa186 { 19626let Inst{7-5} = 0b010; 19627let Inst{13-13} = 0b0; 19628let Inst{31-21} = 0b11001011000; 19629let prefersSlot3 = 1; 19630let Constraints = "$Rxx32 = $Rxx32in"; 19631} 19632def S2_lsr_r_p_xor : HInst< 19633(outs DoubleRegs:$Rxx32), 19634(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 19635"$Rxx32 ^= lsr($Rss32,$Rt32)", 19636tc_a4e22bbd, TypeS_3op>, Enc_1aa186 { 19637let Inst{7-5} = 0b010; 19638let Inst{13-13} = 0b0; 19639let Inst{31-21} = 0b11001011011; 19640let prefersSlot3 = 1; 19641let Constraints = "$Rxx32 = $Rxx32in"; 19642} 19643def S2_lsr_r_r : HInst< 19644(outs IntRegs:$Rd32), 19645(ins IntRegs:$Rs32, IntRegs:$Rt32), 19646"$Rd32 = lsr($Rs32,$Rt32)", 19647tc_5da50c4b, TypeS_3op>, Enc_5ab2be { 19648let Inst{7-5} = 0b010; 19649let Inst{13-13} = 0b0; 19650let Inst{31-21} = 0b11000110010; 19651let hasNewValue = 1; 19652let opNewValue = 0; 19653} 19654def S2_lsr_r_r_acc : HInst< 19655(outs IntRegs:$Rx32), 19656(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 19657"$Rx32 += lsr($Rs32,$Rt32)", 19658tc_2c13e7f5, TypeS_3op>, Enc_2ae154 { 19659let Inst{7-5} = 0b010; 19660let Inst{13-13} = 0b0; 19661let Inst{31-21} = 0b11001100110; 19662let hasNewValue = 1; 19663let opNewValue = 0; 19664let prefersSlot3 = 1; 19665let Constraints = "$Rx32 = $Rx32in"; 19666} 19667def S2_lsr_r_r_and : HInst< 19668(outs IntRegs:$Rx32), 19669(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 19670"$Rx32 &= lsr($Rs32,$Rt32)", 19671tc_a4e22bbd, TypeS_3op>, Enc_2ae154 { 19672let Inst{7-5} = 0b010; 19673let Inst{13-13} = 0b0; 19674let Inst{31-21} = 0b11001100010; 19675let hasNewValue = 1; 19676let opNewValue = 0; 19677let prefersSlot3 = 1; 19678let Constraints = "$Rx32 = $Rx32in"; 19679} 19680def S2_lsr_r_r_nac : HInst< 19681(outs IntRegs:$Rx32), 19682(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 19683"$Rx32 -= lsr($Rs32,$Rt32)", 19684tc_2c13e7f5, TypeS_3op>, Enc_2ae154 { 19685let Inst{7-5} = 0b010; 19686let Inst{13-13} = 0b0; 19687let Inst{31-21} = 0b11001100100; 19688let hasNewValue = 1; 19689let opNewValue = 0; 19690let prefersSlot3 = 1; 19691let Constraints = "$Rx32 = $Rx32in"; 19692} 19693def S2_lsr_r_r_or : HInst< 19694(outs IntRegs:$Rx32), 19695(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), 19696"$Rx32 |= lsr($Rs32,$Rt32)", 19697tc_a4e22bbd, TypeS_3op>, Enc_2ae154 { 19698let Inst{7-5} = 0b010; 19699let Inst{13-13} = 0b0; 19700let Inst{31-21} = 0b11001100000; 19701let hasNewValue = 1; 19702let opNewValue = 0; 19703let prefersSlot3 = 1; 19704let Constraints = "$Rx32 = $Rx32in"; 19705} 19706def S2_lsr_r_vh : HInst< 19707(outs DoubleRegs:$Rdd32), 19708(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 19709"$Rdd32 = vlsrh($Rss32,$Rt32)", 19710tc_5da50c4b, TypeS_3op>, Enc_927852 { 19711let Inst{7-5} = 0b010; 19712let Inst{13-13} = 0b0; 19713let Inst{31-21} = 0b11000011010; 19714} 19715def S2_lsr_r_vw : HInst< 19716(outs DoubleRegs:$Rdd32), 19717(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 19718"$Rdd32 = vlsrw($Rss32,$Rt32)", 19719tc_5da50c4b, TypeS_3op>, Enc_927852 { 19720let Inst{7-5} = 0b010; 19721let Inst{13-13} = 0b0; 19722let Inst{31-21} = 0b11000011000; 19723} 19724def S2_mask : HInst< 19725(outs IntRegs:$Rd32), 19726(ins u5_0Imm:$Ii, u5_0Imm:$II), 19727"$Rd32 = mask(#$Ii,#$II)", 19728tc_1fcb8495, TypeS_2op>, Enc_c85e2a, Requires<[HasV66]> { 19729let Inst{13-13} = 0b1; 19730let Inst{20-16} = 0b00000; 19731let Inst{31-23} = 0b100011010; 19732let hasNewValue = 1; 19733let opNewValue = 0; 19734let prefersSlot3 = 1; 19735} 19736def S2_packhl : HInst< 19737(outs DoubleRegs:$Rdd32), 19738(ins IntRegs:$Rs32, IntRegs:$Rt32), 19739"$Rdd32 = packhl($Rs32,$Rt32)", 19740tc_713b66bf, TypeALU32_3op>, Enc_be32a5 { 19741let Inst{7-5} = 0b000; 19742let Inst{13-13} = 0b0; 19743let Inst{31-21} = 0b11110101100; 19744let InputType = "reg"; 19745} 19746def S2_parityp : HInst< 19747(outs IntRegs:$Rd32), 19748(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 19749"$Rd32 = parity($Rss32,$Rtt32)", 19750tc_a08b630b, TypeALU64>, Enc_d2216a { 19751let Inst{7-5} = 0b000; 19752let Inst{13-13} = 0b0; 19753let Inst{31-21} = 0b11010000000; 19754let hasNewValue = 1; 19755let opNewValue = 0; 19756let prefersSlot3 = 1; 19757} 19758def S2_pstorerbf_io : HInst< 19759(outs), 19760(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32), 19761"if (!$Pv4) memb($Rs32+#$Ii) = $Rt32", 19762tc_8035e91f, TypeV2LDST>, Enc_da8d43, AddrModeRel { 19763let Inst{2-2} = 0b0; 19764let Inst{31-21} = 0b01000100000; 19765let isPredicated = 1; 19766let isPredicatedFalse = 1; 19767let addrMode = BaseImmOffset; 19768let accessSize = ByteAccess; 19769let mayStore = 1; 19770let BaseOpcode = "S2_storerb_io"; 19771let CextOpcode = "S2_storerb"; 19772let InputType = "imm"; 19773let isNVStorable = 1; 19774let isExtendable = 1; 19775let opExtendable = 2; 19776let isExtentSigned = 0; 19777let opExtentBits = 6; 19778let opExtentAlign = 0; 19779} 19780def S2_pstorerbf_pi : HInst< 19781(outs IntRegs:$Rx32), 19782(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32), 19783"if (!$Pv4) memb($Rx32++#$Ii) = $Rt32", 19784tc_9edefe01, TypeST>, Enc_cc449f, AddrModeRel { 19785let Inst{2-2} = 0b1; 19786let Inst{7-7} = 0b0; 19787let Inst{13-13} = 0b1; 19788let Inst{31-21} = 0b10101011000; 19789let isPredicated = 1; 19790let isPredicatedFalse = 1; 19791let addrMode = PostInc; 19792let accessSize = ByteAccess; 19793let mayStore = 1; 19794let BaseOpcode = "S2_storerb_pi"; 19795let isNVStorable = 1; 19796let Constraints = "$Rx32 = $Rx32in"; 19797} 19798def S2_pstorerbf_zomap : HInst< 19799(outs), 19800(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 19801"if (!$Pv4) memb($Rs32) = $Rt32", 19802tc_8035e91f, TypeMAPPING> { 19803let isPseudo = 1; 19804let isCodeGenOnly = 1; 19805} 19806def S2_pstorerbfnew_pi : HInst< 19807(outs IntRegs:$Rx32), 19808(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32), 19809"if (!$Pv4.new) memb($Rx32++#$Ii) = $Rt32", 19810tc_449acf79, TypeST>, Enc_cc449f, AddrModeRel { 19811let Inst{2-2} = 0b1; 19812let Inst{7-7} = 0b1; 19813let Inst{13-13} = 0b1; 19814let Inst{31-21} = 0b10101011000; 19815let isPredicated = 1; 19816let isPredicatedFalse = 1; 19817let addrMode = PostInc; 19818let accessSize = ByteAccess; 19819let isPredicatedNew = 1; 19820let mayStore = 1; 19821let BaseOpcode = "S2_storerb_pi"; 19822let isNVStorable = 1; 19823let Constraints = "$Rx32 = $Rx32in"; 19824} 19825def S2_pstorerbnewf_io : HInst< 19826(outs), 19827(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Nt8), 19828"if (!$Pv4) memb($Rs32+#$Ii) = $Nt8.new", 19829tc_011e0e9d, TypeV2LDST>, Enc_585242, AddrModeRel { 19830let Inst{2-2} = 0b0; 19831let Inst{12-11} = 0b00; 19832let Inst{31-21} = 0b01000100101; 19833let isPredicated = 1; 19834let isPredicatedFalse = 1; 19835let addrMode = BaseImmOffset; 19836let accessSize = ByteAccess; 19837let isNVStore = 1; 19838let isNewValue = 1; 19839let isRestrictNoSlot1Store = 1; 19840let mayStore = 1; 19841let BaseOpcode = "S2_storerb_io"; 19842let CextOpcode = "S2_storerb"; 19843let InputType = "imm"; 19844let isExtendable = 1; 19845let opExtendable = 2; 19846let isExtentSigned = 0; 19847let opExtentBits = 6; 19848let opExtentAlign = 0; 19849let opNewValue = 3; 19850} 19851def S2_pstorerbnewf_pi : HInst< 19852(outs IntRegs:$Rx32), 19853(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8), 19854"if (!$Pv4) memb($Rx32++#$Ii) = $Nt8.new", 19855tc_ce59038e, TypeST>, Enc_52a5dd, AddrModeRel { 19856let Inst{2-2} = 0b1; 19857let Inst{7-7} = 0b0; 19858let Inst{13-11} = 0b100; 19859let Inst{31-21} = 0b10101011101; 19860let isPredicated = 1; 19861let isPredicatedFalse = 1; 19862let addrMode = PostInc; 19863let accessSize = ByteAccess; 19864let isNVStore = 1; 19865let isNewValue = 1; 19866let isRestrictNoSlot1Store = 1; 19867let mayStore = 1; 19868let BaseOpcode = "S2_storerb_pi"; 19869let CextOpcode = "S2_storerb"; 19870let opNewValue = 4; 19871let Constraints = "$Rx32 = $Rx32in"; 19872} 19873def S2_pstorerbnewf_zomap : HInst< 19874(outs), 19875(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 19876"if (!$Pv4) memb($Rs32) = $Nt8.new", 19877tc_011e0e9d, TypeMAPPING> { 19878let isPseudo = 1; 19879let isCodeGenOnly = 1; 19880let opNewValue = 2; 19881} 19882def S2_pstorerbnewfnew_pi : HInst< 19883(outs IntRegs:$Rx32), 19884(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8), 19885"if (!$Pv4.new) memb($Rx32++#$Ii) = $Nt8.new", 19886tc_f529831b, TypeST>, Enc_52a5dd, AddrModeRel { 19887let Inst{2-2} = 0b1; 19888let Inst{7-7} = 0b1; 19889let Inst{13-11} = 0b100; 19890let Inst{31-21} = 0b10101011101; 19891let isPredicated = 1; 19892let isPredicatedFalse = 1; 19893let addrMode = PostInc; 19894let accessSize = ByteAccess; 19895let isNVStore = 1; 19896let isPredicatedNew = 1; 19897let isNewValue = 1; 19898let isRestrictNoSlot1Store = 1; 19899let mayStore = 1; 19900let BaseOpcode = "S2_storerb_pi"; 19901let CextOpcode = "S2_storerb"; 19902let opNewValue = 4; 19903let Constraints = "$Rx32 = $Rx32in"; 19904} 19905def S2_pstorerbnewt_io : HInst< 19906(outs), 19907(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Nt8), 19908"if ($Pv4) memb($Rs32+#$Ii) = $Nt8.new", 19909tc_011e0e9d, TypeV2LDST>, Enc_585242, AddrModeRel { 19910let Inst{2-2} = 0b0; 19911let Inst{12-11} = 0b00; 19912let Inst{31-21} = 0b01000000101; 19913let isPredicated = 1; 19914let addrMode = BaseImmOffset; 19915let accessSize = ByteAccess; 19916let isNVStore = 1; 19917let isNewValue = 1; 19918let isRestrictNoSlot1Store = 1; 19919let mayStore = 1; 19920let BaseOpcode = "S2_storerb_io"; 19921let CextOpcode = "S2_storerb"; 19922let InputType = "imm"; 19923let isExtendable = 1; 19924let opExtendable = 2; 19925let isExtentSigned = 0; 19926let opExtentBits = 6; 19927let opExtentAlign = 0; 19928let opNewValue = 3; 19929} 19930def S2_pstorerbnewt_pi : HInst< 19931(outs IntRegs:$Rx32), 19932(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8), 19933"if ($Pv4) memb($Rx32++#$Ii) = $Nt8.new", 19934tc_ce59038e, TypeST>, Enc_52a5dd, AddrModeRel { 19935let Inst{2-2} = 0b0; 19936let Inst{7-7} = 0b0; 19937let Inst{13-11} = 0b100; 19938let Inst{31-21} = 0b10101011101; 19939let isPredicated = 1; 19940let addrMode = PostInc; 19941let accessSize = ByteAccess; 19942let isNVStore = 1; 19943let isNewValue = 1; 19944let isRestrictNoSlot1Store = 1; 19945let mayStore = 1; 19946let BaseOpcode = "S2_storerb_pi"; 19947let CextOpcode = "S2_storerb"; 19948let opNewValue = 4; 19949let Constraints = "$Rx32 = $Rx32in"; 19950} 19951def S2_pstorerbnewt_zomap : HInst< 19952(outs), 19953(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 19954"if ($Pv4) memb($Rs32) = $Nt8.new", 19955tc_011e0e9d, TypeMAPPING> { 19956let isPseudo = 1; 19957let isCodeGenOnly = 1; 19958let opNewValue = 2; 19959} 19960def S2_pstorerbnewtnew_pi : HInst< 19961(outs IntRegs:$Rx32), 19962(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8), 19963"if ($Pv4.new) memb($Rx32++#$Ii) = $Nt8.new", 19964tc_f529831b, TypeST>, Enc_52a5dd, AddrModeRel { 19965let Inst{2-2} = 0b0; 19966let Inst{7-7} = 0b1; 19967let Inst{13-11} = 0b100; 19968let Inst{31-21} = 0b10101011101; 19969let isPredicated = 1; 19970let addrMode = PostInc; 19971let accessSize = ByteAccess; 19972let isNVStore = 1; 19973let isPredicatedNew = 1; 19974let isNewValue = 1; 19975let isRestrictNoSlot1Store = 1; 19976let mayStore = 1; 19977let BaseOpcode = "S2_storerb_pi"; 19978let CextOpcode = "S2_storerb"; 19979let opNewValue = 4; 19980let Constraints = "$Rx32 = $Rx32in"; 19981} 19982def S2_pstorerbt_io : HInst< 19983(outs), 19984(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32), 19985"if ($Pv4) memb($Rs32+#$Ii) = $Rt32", 19986tc_8035e91f, TypeV2LDST>, Enc_da8d43, AddrModeRel { 19987let Inst{2-2} = 0b0; 19988let Inst{31-21} = 0b01000000000; 19989let isPredicated = 1; 19990let addrMode = BaseImmOffset; 19991let accessSize = ByteAccess; 19992let mayStore = 1; 19993let BaseOpcode = "S2_storerb_io"; 19994let CextOpcode = "S2_storerb"; 19995let InputType = "imm"; 19996let isNVStorable = 1; 19997let isExtendable = 1; 19998let opExtendable = 2; 19999let isExtentSigned = 0; 20000let opExtentBits = 6; 20001let opExtentAlign = 0; 20002} 20003def S2_pstorerbt_pi : HInst< 20004(outs IntRegs:$Rx32), 20005(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32), 20006"if ($Pv4) memb($Rx32++#$Ii) = $Rt32", 20007tc_9edefe01, TypeST>, Enc_cc449f, AddrModeRel { 20008let Inst{2-2} = 0b0; 20009let Inst{7-7} = 0b0; 20010let Inst{13-13} = 0b1; 20011let Inst{31-21} = 0b10101011000; 20012let isPredicated = 1; 20013let addrMode = PostInc; 20014let accessSize = ByteAccess; 20015let mayStore = 1; 20016let BaseOpcode = "S2_storerb_pi"; 20017let isNVStorable = 1; 20018let Constraints = "$Rx32 = $Rx32in"; 20019} 20020def S2_pstorerbt_zomap : HInst< 20021(outs), 20022(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 20023"if ($Pv4) memb($Rs32) = $Rt32", 20024tc_8035e91f, TypeMAPPING> { 20025let isPseudo = 1; 20026let isCodeGenOnly = 1; 20027} 20028def S2_pstorerbtnew_pi : HInst< 20029(outs IntRegs:$Rx32), 20030(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32), 20031"if ($Pv4.new) memb($Rx32++#$Ii) = $Rt32", 20032tc_449acf79, TypeST>, Enc_cc449f, AddrModeRel { 20033let Inst{2-2} = 0b0; 20034let Inst{7-7} = 0b1; 20035let Inst{13-13} = 0b1; 20036let Inst{31-21} = 0b10101011000; 20037let isPredicated = 1; 20038let addrMode = PostInc; 20039let accessSize = ByteAccess; 20040let isPredicatedNew = 1; 20041let mayStore = 1; 20042let BaseOpcode = "S2_storerb_pi"; 20043let isNVStorable = 1; 20044let Constraints = "$Rx32 = $Rx32in"; 20045} 20046def S2_pstorerdf_io : HInst< 20047(outs), 20048(ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32), 20049"if (!$Pv4) memd($Rs32+#$Ii) = $Rtt32", 20050tc_8035e91f, TypeV2LDST>, Enc_57a33e, AddrModeRel { 20051let Inst{2-2} = 0b0; 20052let Inst{31-21} = 0b01000100110; 20053let isPredicated = 1; 20054let isPredicatedFalse = 1; 20055let addrMode = BaseImmOffset; 20056let accessSize = DoubleWordAccess; 20057let mayStore = 1; 20058let BaseOpcode = "S2_storerd_io"; 20059let CextOpcode = "S2_storerd"; 20060let InputType = "imm"; 20061let isExtendable = 1; 20062let opExtendable = 2; 20063let isExtentSigned = 0; 20064let opExtentBits = 9; 20065let opExtentAlign = 3; 20066} 20067def S2_pstorerdf_pi : HInst< 20068(outs IntRegs:$Rx32), 20069(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32), 20070"if (!$Pv4) memd($Rx32++#$Ii) = $Rtt32", 20071tc_9edefe01, TypeST>, Enc_9a33d5, AddrModeRel { 20072let Inst{2-2} = 0b1; 20073let Inst{7-7} = 0b0; 20074let Inst{13-13} = 0b1; 20075let Inst{31-21} = 0b10101011110; 20076let isPredicated = 1; 20077let isPredicatedFalse = 1; 20078let addrMode = PostInc; 20079let accessSize = DoubleWordAccess; 20080let mayStore = 1; 20081let BaseOpcode = "S2_storerd_pi"; 20082let CextOpcode = "S2_storerd"; 20083let Constraints = "$Rx32 = $Rx32in"; 20084} 20085def S2_pstorerdf_zomap : HInst< 20086(outs), 20087(ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32), 20088"if (!$Pv4) memd($Rs32) = $Rtt32", 20089tc_8035e91f, TypeMAPPING> { 20090let isPseudo = 1; 20091let isCodeGenOnly = 1; 20092} 20093def S2_pstorerdfnew_pi : HInst< 20094(outs IntRegs:$Rx32), 20095(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32), 20096"if (!$Pv4.new) memd($Rx32++#$Ii) = $Rtt32", 20097tc_449acf79, TypeST>, Enc_9a33d5, AddrModeRel { 20098let Inst{2-2} = 0b1; 20099let Inst{7-7} = 0b1; 20100let Inst{13-13} = 0b1; 20101let Inst{31-21} = 0b10101011110; 20102let isPredicated = 1; 20103let isPredicatedFalse = 1; 20104let addrMode = PostInc; 20105let accessSize = DoubleWordAccess; 20106let isPredicatedNew = 1; 20107let mayStore = 1; 20108let BaseOpcode = "S2_storerd_pi"; 20109let CextOpcode = "S2_storerd"; 20110let Constraints = "$Rx32 = $Rx32in"; 20111} 20112def S2_pstorerdt_io : HInst< 20113(outs), 20114(ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32), 20115"if ($Pv4) memd($Rs32+#$Ii) = $Rtt32", 20116tc_8035e91f, TypeV2LDST>, Enc_57a33e, AddrModeRel { 20117let Inst{2-2} = 0b0; 20118let Inst{31-21} = 0b01000000110; 20119let isPredicated = 1; 20120let addrMode = BaseImmOffset; 20121let accessSize = DoubleWordAccess; 20122let mayStore = 1; 20123let BaseOpcode = "S2_storerd_io"; 20124let CextOpcode = "S2_storerd"; 20125let InputType = "imm"; 20126let isExtendable = 1; 20127let opExtendable = 2; 20128let isExtentSigned = 0; 20129let opExtentBits = 9; 20130let opExtentAlign = 3; 20131} 20132def S2_pstorerdt_pi : HInst< 20133(outs IntRegs:$Rx32), 20134(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32), 20135"if ($Pv4) memd($Rx32++#$Ii) = $Rtt32", 20136tc_9edefe01, TypeST>, Enc_9a33d5, AddrModeRel { 20137let Inst{2-2} = 0b0; 20138let Inst{7-7} = 0b0; 20139let Inst{13-13} = 0b1; 20140let Inst{31-21} = 0b10101011110; 20141let isPredicated = 1; 20142let addrMode = PostInc; 20143let accessSize = DoubleWordAccess; 20144let mayStore = 1; 20145let BaseOpcode = "S2_storerd_pi"; 20146let CextOpcode = "S2_storerd"; 20147let Constraints = "$Rx32 = $Rx32in"; 20148} 20149def S2_pstorerdt_zomap : HInst< 20150(outs), 20151(ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32), 20152"if ($Pv4) memd($Rs32) = $Rtt32", 20153tc_8035e91f, TypeMAPPING> { 20154let isPseudo = 1; 20155let isCodeGenOnly = 1; 20156} 20157def S2_pstorerdtnew_pi : HInst< 20158(outs IntRegs:$Rx32), 20159(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32), 20160"if ($Pv4.new) memd($Rx32++#$Ii) = $Rtt32", 20161tc_449acf79, TypeST>, Enc_9a33d5, AddrModeRel { 20162let Inst{2-2} = 0b0; 20163let Inst{7-7} = 0b1; 20164let Inst{13-13} = 0b1; 20165let Inst{31-21} = 0b10101011110; 20166let isPredicated = 1; 20167let addrMode = PostInc; 20168let accessSize = DoubleWordAccess; 20169let isPredicatedNew = 1; 20170let mayStore = 1; 20171let BaseOpcode = "S2_storerd_pi"; 20172let CextOpcode = "S2_storerd"; 20173let Constraints = "$Rx32 = $Rx32in"; 20174} 20175def S2_pstorerff_io : HInst< 20176(outs), 20177(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 20178"if (!$Pv4) memh($Rs32+#$Ii) = $Rt32.h", 20179tc_8035e91f, TypeV2LDST>, Enc_e8c45e, AddrModeRel { 20180let Inst{2-2} = 0b0; 20181let Inst{31-21} = 0b01000100011; 20182let isPredicated = 1; 20183let isPredicatedFalse = 1; 20184let addrMode = BaseImmOffset; 20185let accessSize = HalfWordAccess; 20186let mayStore = 1; 20187let BaseOpcode = "S2_storerf_io"; 20188let CextOpcode = "S2_storerf"; 20189let InputType = "imm"; 20190let isExtendable = 1; 20191let opExtendable = 2; 20192let isExtentSigned = 0; 20193let opExtentBits = 7; 20194let opExtentAlign = 1; 20195} 20196def S2_pstorerff_pi : HInst< 20197(outs IntRegs:$Rx32), 20198(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32), 20199"if (!$Pv4) memh($Rx32++#$Ii) = $Rt32.h", 20200tc_9edefe01, TypeST>, Enc_b886fd, AddrModeRel { 20201let Inst{2-2} = 0b1; 20202let Inst{7-7} = 0b0; 20203let Inst{13-13} = 0b1; 20204let Inst{31-21} = 0b10101011011; 20205let isPredicated = 1; 20206let isPredicatedFalse = 1; 20207let addrMode = PostInc; 20208let accessSize = HalfWordAccess; 20209let mayStore = 1; 20210let BaseOpcode = "S2_storerf_pi"; 20211let CextOpcode = "S2_storerf"; 20212let Constraints = "$Rx32 = $Rx32in"; 20213} 20214def S2_pstorerff_zomap : HInst< 20215(outs), 20216(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 20217"if (!$Pv4) memh($Rs32) = $Rt32.h", 20218tc_8035e91f, TypeMAPPING> { 20219let isPseudo = 1; 20220let isCodeGenOnly = 1; 20221} 20222def S2_pstorerffnew_pi : HInst< 20223(outs IntRegs:$Rx32), 20224(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32), 20225"if (!$Pv4.new) memh($Rx32++#$Ii) = $Rt32.h", 20226tc_449acf79, TypeST>, Enc_b886fd, AddrModeRel { 20227let Inst{2-2} = 0b1; 20228let Inst{7-7} = 0b1; 20229let Inst{13-13} = 0b1; 20230let Inst{31-21} = 0b10101011011; 20231let isPredicated = 1; 20232let isPredicatedFalse = 1; 20233let addrMode = PostInc; 20234let accessSize = HalfWordAccess; 20235let isPredicatedNew = 1; 20236let mayStore = 1; 20237let BaseOpcode = "S2_storerf_pi"; 20238let CextOpcode = "S2_storerf"; 20239let Constraints = "$Rx32 = $Rx32in"; 20240} 20241def S2_pstorerft_io : HInst< 20242(outs), 20243(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 20244"if ($Pv4) memh($Rs32+#$Ii) = $Rt32.h", 20245tc_8035e91f, TypeV2LDST>, Enc_e8c45e, AddrModeRel { 20246let Inst{2-2} = 0b0; 20247let Inst{31-21} = 0b01000000011; 20248let isPredicated = 1; 20249let addrMode = BaseImmOffset; 20250let accessSize = HalfWordAccess; 20251let mayStore = 1; 20252let BaseOpcode = "S2_storerf_io"; 20253let CextOpcode = "S2_storerf"; 20254let InputType = "imm"; 20255let isExtendable = 1; 20256let opExtendable = 2; 20257let isExtentSigned = 0; 20258let opExtentBits = 7; 20259let opExtentAlign = 1; 20260} 20261def S2_pstorerft_pi : HInst< 20262(outs IntRegs:$Rx32), 20263(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32), 20264"if ($Pv4) memh($Rx32++#$Ii) = $Rt32.h", 20265tc_9edefe01, TypeST>, Enc_b886fd, AddrModeRel { 20266let Inst{2-2} = 0b0; 20267let Inst{7-7} = 0b0; 20268let Inst{13-13} = 0b1; 20269let Inst{31-21} = 0b10101011011; 20270let isPredicated = 1; 20271let addrMode = PostInc; 20272let accessSize = HalfWordAccess; 20273let mayStore = 1; 20274let BaseOpcode = "S2_storerf_pi"; 20275let CextOpcode = "S2_storerf"; 20276let Constraints = "$Rx32 = $Rx32in"; 20277} 20278def S2_pstorerft_zomap : HInst< 20279(outs), 20280(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 20281"if ($Pv4) memh($Rs32) = $Rt32.h", 20282tc_8035e91f, TypeMAPPING> { 20283let isPseudo = 1; 20284let isCodeGenOnly = 1; 20285} 20286def S2_pstorerftnew_pi : HInst< 20287(outs IntRegs:$Rx32), 20288(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32), 20289"if ($Pv4.new) memh($Rx32++#$Ii) = $Rt32.h", 20290tc_449acf79, TypeST>, Enc_b886fd, AddrModeRel { 20291let Inst{2-2} = 0b0; 20292let Inst{7-7} = 0b1; 20293let Inst{13-13} = 0b1; 20294let Inst{31-21} = 0b10101011011; 20295let isPredicated = 1; 20296let addrMode = PostInc; 20297let accessSize = HalfWordAccess; 20298let isPredicatedNew = 1; 20299let mayStore = 1; 20300let BaseOpcode = "S2_storerf_pi"; 20301let CextOpcode = "S2_storerf"; 20302let Constraints = "$Rx32 = $Rx32in"; 20303} 20304def S2_pstorerhf_io : HInst< 20305(outs), 20306(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 20307"if (!$Pv4) memh($Rs32+#$Ii) = $Rt32", 20308tc_8035e91f, TypeV2LDST>, Enc_e8c45e, AddrModeRel { 20309let Inst{2-2} = 0b0; 20310let Inst{31-21} = 0b01000100010; 20311let isPredicated = 1; 20312let isPredicatedFalse = 1; 20313let addrMode = BaseImmOffset; 20314let accessSize = HalfWordAccess; 20315let mayStore = 1; 20316let BaseOpcode = "S2_storerh_io"; 20317let CextOpcode = "S2_storerh"; 20318let InputType = "imm"; 20319let isNVStorable = 1; 20320let isExtendable = 1; 20321let opExtendable = 2; 20322let isExtentSigned = 0; 20323let opExtentBits = 7; 20324let opExtentAlign = 1; 20325} 20326def S2_pstorerhf_pi : HInst< 20327(outs IntRegs:$Rx32), 20328(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32), 20329"if (!$Pv4) memh($Rx32++#$Ii) = $Rt32", 20330tc_9edefe01, TypeST>, Enc_b886fd, AddrModeRel { 20331let Inst{2-2} = 0b1; 20332let Inst{7-7} = 0b0; 20333let Inst{13-13} = 0b1; 20334let Inst{31-21} = 0b10101011010; 20335let isPredicated = 1; 20336let isPredicatedFalse = 1; 20337let addrMode = PostInc; 20338let accessSize = HalfWordAccess; 20339let mayStore = 1; 20340let BaseOpcode = "S2_storerh_pi"; 20341let isNVStorable = 1; 20342let Constraints = "$Rx32 = $Rx32in"; 20343} 20344def S2_pstorerhf_zomap : HInst< 20345(outs), 20346(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 20347"if (!$Pv4) memh($Rs32) = $Rt32", 20348tc_8035e91f, TypeMAPPING> { 20349let isPseudo = 1; 20350let isCodeGenOnly = 1; 20351} 20352def S2_pstorerhfnew_pi : HInst< 20353(outs IntRegs:$Rx32), 20354(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32), 20355"if (!$Pv4.new) memh($Rx32++#$Ii) = $Rt32", 20356tc_449acf79, TypeST>, Enc_b886fd, AddrModeRel { 20357let Inst{2-2} = 0b1; 20358let Inst{7-7} = 0b1; 20359let Inst{13-13} = 0b1; 20360let Inst{31-21} = 0b10101011010; 20361let isPredicated = 1; 20362let isPredicatedFalse = 1; 20363let addrMode = PostInc; 20364let accessSize = HalfWordAccess; 20365let isPredicatedNew = 1; 20366let mayStore = 1; 20367let BaseOpcode = "S2_storerh_pi"; 20368let isNVStorable = 1; 20369let Constraints = "$Rx32 = $Rx32in"; 20370} 20371def S2_pstorerhnewf_io : HInst< 20372(outs), 20373(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Nt8), 20374"if (!$Pv4) memh($Rs32+#$Ii) = $Nt8.new", 20375tc_011e0e9d, TypeV2LDST>, Enc_f44229, AddrModeRel { 20376let Inst{2-2} = 0b0; 20377let Inst{12-11} = 0b01; 20378let Inst{31-21} = 0b01000100101; 20379let isPredicated = 1; 20380let isPredicatedFalse = 1; 20381let addrMode = BaseImmOffset; 20382let accessSize = HalfWordAccess; 20383let isNVStore = 1; 20384let isNewValue = 1; 20385let isRestrictNoSlot1Store = 1; 20386let mayStore = 1; 20387let BaseOpcode = "S2_storerh_io"; 20388let CextOpcode = "S2_storerh"; 20389let InputType = "imm"; 20390let isExtendable = 1; 20391let opExtendable = 2; 20392let isExtentSigned = 0; 20393let opExtentBits = 7; 20394let opExtentAlign = 1; 20395let opNewValue = 3; 20396} 20397def S2_pstorerhnewf_pi : HInst< 20398(outs IntRegs:$Rx32), 20399(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8), 20400"if (!$Pv4) memh($Rx32++#$Ii) = $Nt8.new", 20401tc_ce59038e, TypeST>, Enc_31aa6a, AddrModeRel { 20402let Inst{2-2} = 0b1; 20403let Inst{7-7} = 0b0; 20404let Inst{13-11} = 0b101; 20405let Inst{31-21} = 0b10101011101; 20406let isPredicated = 1; 20407let isPredicatedFalse = 1; 20408let addrMode = PostInc; 20409let accessSize = HalfWordAccess; 20410let isNVStore = 1; 20411let isNewValue = 1; 20412let isRestrictNoSlot1Store = 1; 20413let mayStore = 1; 20414let BaseOpcode = "S2_storerh_pi"; 20415let CextOpcode = "S2_storerh"; 20416let opNewValue = 4; 20417let Constraints = "$Rx32 = $Rx32in"; 20418} 20419def S2_pstorerhnewf_zomap : HInst< 20420(outs), 20421(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 20422"if (!$Pv4) memh($Rs32) = $Nt8.new", 20423tc_011e0e9d, TypeMAPPING> { 20424let isPseudo = 1; 20425let isCodeGenOnly = 1; 20426let opNewValue = 2; 20427} 20428def S2_pstorerhnewfnew_pi : HInst< 20429(outs IntRegs:$Rx32), 20430(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8), 20431"if (!$Pv4.new) memh($Rx32++#$Ii) = $Nt8.new", 20432tc_f529831b, TypeST>, Enc_31aa6a, AddrModeRel { 20433let Inst{2-2} = 0b1; 20434let Inst{7-7} = 0b1; 20435let Inst{13-11} = 0b101; 20436let Inst{31-21} = 0b10101011101; 20437let isPredicated = 1; 20438let isPredicatedFalse = 1; 20439let addrMode = PostInc; 20440let accessSize = HalfWordAccess; 20441let isNVStore = 1; 20442let isPredicatedNew = 1; 20443let isNewValue = 1; 20444let isRestrictNoSlot1Store = 1; 20445let mayStore = 1; 20446let BaseOpcode = "S2_storerh_pi"; 20447let CextOpcode = "S2_storerh"; 20448let opNewValue = 4; 20449let Constraints = "$Rx32 = $Rx32in"; 20450} 20451def S2_pstorerhnewt_io : HInst< 20452(outs), 20453(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Nt8), 20454"if ($Pv4) memh($Rs32+#$Ii) = $Nt8.new", 20455tc_011e0e9d, TypeV2LDST>, Enc_f44229, AddrModeRel { 20456let Inst{2-2} = 0b0; 20457let Inst{12-11} = 0b01; 20458let Inst{31-21} = 0b01000000101; 20459let isPredicated = 1; 20460let addrMode = BaseImmOffset; 20461let accessSize = HalfWordAccess; 20462let isNVStore = 1; 20463let isNewValue = 1; 20464let isRestrictNoSlot1Store = 1; 20465let mayStore = 1; 20466let BaseOpcode = "S2_storerh_io"; 20467let CextOpcode = "S2_storerh"; 20468let InputType = "imm"; 20469let isExtendable = 1; 20470let opExtendable = 2; 20471let isExtentSigned = 0; 20472let opExtentBits = 7; 20473let opExtentAlign = 1; 20474let opNewValue = 3; 20475} 20476def S2_pstorerhnewt_pi : HInst< 20477(outs IntRegs:$Rx32), 20478(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8), 20479"if ($Pv4) memh($Rx32++#$Ii) = $Nt8.new", 20480tc_ce59038e, TypeST>, Enc_31aa6a, AddrModeRel { 20481let Inst{2-2} = 0b0; 20482let Inst{7-7} = 0b0; 20483let Inst{13-11} = 0b101; 20484let Inst{31-21} = 0b10101011101; 20485let isPredicated = 1; 20486let addrMode = PostInc; 20487let accessSize = HalfWordAccess; 20488let isNVStore = 1; 20489let isNewValue = 1; 20490let isRestrictNoSlot1Store = 1; 20491let mayStore = 1; 20492let BaseOpcode = "S2_storerh_pi"; 20493let CextOpcode = "S2_storerh"; 20494let opNewValue = 4; 20495let Constraints = "$Rx32 = $Rx32in"; 20496} 20497def S2_pstorerhnewt_zomap : HInst< 20498(outs), 20499(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 20500"if ($Pv4) memh($Rs32) = $Nt8.new", 20501tc_011e0e9d, TypeMAPPING> { 20502let isPseudo = 1; 20503let isCodeGenOnly = 1; 20504let opNewValue = 2; 20505} 20506def S2_pstorerhnewtnew_pi : HInst< 20507(outs IntRegs:$Rx32), 20508(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8), 20509"if ($Pv4.new) memh($Rx32++#$Ii) = $Nt8.new", 20510tc_f529831b, TypeST>, Enc_31aa6a, AddrModeRel { 20511let Inst{2-2} = 0b0; 20512let Inst{7-7} = 0b1; 20513let Inst{13-11} = 0b101; 20514let Inst{31-21} = 0b10101011101; 20515let isPredicated = 1; 20516let addrMode = PostInc; 20517let accessSize = HalfWordAccess; 20518let isNVStore = 1; 20519let isPredicatedNew = 1; 20520let isNewValue = 1; 20521let isRestrictNoSlot1Store = 1; 20522let mayStore = 1; 20523let BaseOpcode = "S2_storerh_pi"; 20524let CextOpcode = "S2_storerh"; 20525let opNewValue = 4; 20526let Constraints = "$Rx32 = $Rx32in"; 20527} 20528def S2_pstorerht_io : HInst< 20529(outs), 20530(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 20531"if ($Pv4) memh($Rs32+#$Ii) = $Rt32", 20532tc_8035e91f, TypeV2LDST>, Enc_e8c45e, AddrModeRel { 20533let Inst{2-2} = 0b0; 20534let Inst{31-21} = 0b01000000010; 20535let isPredicated = 1; 20536let addrMode = BaseImmOffset; 20537let accessSize = HalfWordAccess; 20538let mayStore = 1; 20539let BaseOpcode = "S2_storerh_io"; 20540let CextOpcode = "S2_storerh"; 20541let InputType = "imm"; 20542let isNVStorable = 1; 20543let isExtendable = 1; 20544let opExtendable = 2; 20545let isExtentSigned = 0; 20546let opExtentBits = 7; 20547let opExtentAlign = 1; 20548} 20549def S2_pstorerht_pi : HInst< 20550(outs IntRegs:$Rx32), 20551(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32), 20552"if ($Pv4) memh($Rx32++#$Ii) = $Rt32", 20553tc_9edefe01, TypeST>, Enc_b886fd, AddrModeRel { 20554let Inst{2-2} = 0b0; 20555let Inst{7-7} = 0b0; 20556let Inst{13-13} = 0b1; 20557let Inst{31-21} = 0b10101011010; 20558let isPredicated = 1; 20559let addrMode = PostInc; 20560let accessSize = HalfWordAccess; 20561let mayStore = 1; 20562let BaseOpcode = "S2_storerh_pi"; 20563let isNVStorable = 1; 20564let Constraints = "$Rx32 = $Rx32in"; 20565} 20566def S2_pstorerht_zomap : HInst< 20567(outs), 20568(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 20569"if ($Pv4) memh($Rs32) = $Rt32", 20570tc_8035e91f, TypeMAPPING> { 20571let isPseudo = 1; 20572let isCodeGenOnly = 1; 20573} 20574def S2_pstorerhtnew_pi : HInst< 20575(outs IntRegs:$Rx32), 20576(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32), 20577"if ($Pv4.new) memh($Rx32++#$Ii) = $Rt32", 20578tc_449acf79, TypeST>, Enc_b886fd, AddrModeRel { 20579let Inst{2-2} = 0b0; 20580let Inst{7-7} = 0b1; 20581let Inst{13-13} = 0b1; 20582let Inst{31-21} = 0b10101011010; 20583let isPredicated = 1; 20584let addrMode = PostInc; 20585let accessSize = HalfWordAccess; 20586let isPredicatedNew = 1; 20587let mayStore = 1; 20588let BaseOpcode = "S2_storerh_pi"; 20589let isNVStorable = 1; 20590let Constraints = "$Rx32 = $Rx32in"; 20591} 20592def S2_pstorerif_io : HInst< 20593(outs), 20594(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32), 20595"if (!$Pv4) memw($Rs32+#$Ii) = $Rt32", 20596tc_8035e91f, TypeV2LDST>, Enc_397f23, AddrModeRel { 20597let Inst{2-2} = 0b0; 20598let Inst{31-21} = 0b01000100100; 20599let isPredicated = 1; 20600let isPredicatedFalse = 1; 20601let addrMode = BaseImmOffset; 20602let accessSize = WordAccess; 20603let mayStore = 1; 20604let BaseOpcode = "S2_storeri_io"; 20605let CextOpcode = "S2_storeri"; 20606let InputType = "imm"; 20607let isNVStorable = 1; 20608let isExtendable = 1; 20609let opExtendable = 2; 20610let isExtentSigned = 0; 20611let opExtentBits = 8; 20612let opExtentAlign = 2; 20613} 20614def S2_pstorerif_pi : HInst< 20615(outs IntRegs:$Rx32), 20616(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32), 20617"if (!$Pv4) memw($Rx32++#$Ii) = $Rt32", 20618tc_9edefe01, TypeST>, Enc_7eaeb6, AddrModeRel { 20619let Inst{2-2} = 0b1; 20620let Inst{7-7} = 0b0; 20621let Inst{13-13} = 0b1; 20622let Inst{31-21} = 0b10101011100; 20623let isPredicated = 1; 20624let isPredicatedFalse = 1; 20625let addrMode = PostInc; 20626let accessSize = WordAccess; 20627let mayStore = 1; 20628let BaseOpcode = "S2_storeri_pi"; 20629let isNVStorable = 1; 20630let Constraints = "$Rx32 = $Rx32in"; 20631} 20632def S2_pstorerif_zomap : HInst< 20633(outs), 20634(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 20635"if (!$Pv4) memw($Rs32) = $Rt32", 20636tc_8035e91f, TypeMAPPING> { 20637let isPseudo = 1; 20638let isCodeGenOnly = 1; 20639} 20640def S2_pstorerifnew_pi : HInst< 20641(outs IntRegs:$Rx32), 20642(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32), 20643"if (!$Pv4.new) memw($Rx32++#$Ii) = $Rt32", 20644tc_449acf79, TypeST>, Enc_7eaeb6, AddrModeRel { 20645let Inst{2-2} = 0b1; 20646let Inst{7-7} = 0b1; 20647let Inst{13-13} = 0b1; 20648let Inst{31-21} = 0b10101011100; 20649let isPredicated = 1; 20650let isPredicatedFalse = 1; 20651let addrMode = PostInc; 20652let accessSize = WordAccess; 20653let isPredicatedNew = 1; 20654let mayStore = 1; 20655let BaseOpcode = "S2_storeri_pi"; 20656let CextOpcode = "S2_storeri"; 20657let isNVStorable = 1; 20658let Constraints = "$Rx32 = $Rx32in"; 20659} 20660def S2_pstorerinewf_io : HInst< 20661(outs), 20662(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Nt8), 20663"if (!$Pv4) memw($Rs32+#$Ii) = $Nt8.new", 20664tc_011e0e9d, TypeV2LDST>, Enc_8dbdfe, AddrModeRel { 20665let Inst{2-2} = 0b0; 20666let Inst{12-11} = 0b10; 20667let Inst{31-21} = 0b01000100101; 20668let isPredicated = 1; 20669let isPredicatedFalse = 1; 20670let addrMode = BaseImmOffset; 20671let accessSize = WordAccess; 20672let isNVStore = 1; 20673let isNewValue = 1; 20674let isRestrictNoSlot1Store = 1; 20675let mayStore = 1; 20676let BaseOpcode = "S2_storeri_io"; 20677let CextOpcode = "S2_storeri"; 20678let InputType = "imm"; 20679let isExtendable = 1; 20680let opExtendable = 2; 20681let isExtentSigned = 0; 20682let opExtentBits = 8; 20683let opExtentAlign = 2; 20684let opNewValue = 3; 20685} 20686def S2_pstorerinewf_pi : HInst< 20687(outs IntRegs:$Rx32), 20688(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8), 20689"if (!$Pv4) memw($Rx32++#$Ii) = $Nt8.new", 20690tc_ce59038e, TypeST>, Enc_65f095, AddrModeRel { 20691let Inst{2-2} = 0b1; 20692let Inst{7-7} = 0b0; 20693let Inst{13-11} = 0b110; 20694let Inst{31-21} = 0b10101011101; 20695let isPredicated = 1; 20696let isPredicatedFalse = 1; 20697let addrMode = PostInc; 20698let accessSize = WordAccess; 20699let isNVStore = 1; 20700let isNewValue = 1; 20701let isRestrictNoSlot1Store = 1; 20702let mayStore = 1; 20703let BaseOpcode = "S2_storeri_pi"; 20704let CextOpcode = "S2_storeri"; 20705let opNewValue = 4; 20706let Constraints = "$Rx32 = $Rx32in"; 20707} 20708def S2_pstorerinewf_zomap : HInst< 20709(outs), 20710(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 20711"if (!$Pv4) memw($Rs32) = $Nt8.new", 20712tc_011e0e9d, TypeMAPPING> { 20713let isPseudo = 1; 20714let isCodeGenOnly = 1; 20715let opNewValue = 2; 20716} 20717def S2_pstorerinewfnew_pi : HInst< 20718(outs IntRegs:$Rx32), 20719(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8), 20720"if (!$Pv4.new) memw($Rx32++#$Ii) = $Nt8.new", 20721tc_f529831b, TypeST>, Enc_65f095, AddrModeRel { 20722let Inst{2-2} = 0b1; 20723let Inst{7-7} = 0b1; 20724let Inst{13-11} = 0b110; 20725let Inst{31-21} = 0b10101011101; 20726let isPredicated = 1; 20727let isPredicatedFalse = 1; 20728let addrMode = PostInc; 20729let accessSize = WordAccess; 20730let isNVStore = 1; 20731let isPredicatedNew = 1; 20732let isNewValue = 1; 20733let isRestrictNoSlot1Store = 1; 20734let mayStore = 1; 20735let BaseOpcode = "S2_storeri_pi"; 20736let CextOpcode = "S2_storeri"; 20737let opNewValue = 4; 20738let Constraints = "$Rx32 = $Rx32in"; 20739} 20740def S2_pstorerinewt_io : HInst< 20741(outs), 20742(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Nt8), 20743"if ($Pv4) memw($Rs32+#$Ii) = $Nt8.new", 20744tc_011e0e9d, TypeV2LDST>, Enc_8dbdfe, AddrModeRel { 20745let Inst{2-2} = 0b0; 20746let Inst{12-11} = 0b10; 20747let Inst{31-21} = 0b01000000101; 20748let isPredicated = 1; 20749let addrMode = BaseImmOffset; 20750let accessSize = WordAccess; 20751let isNVStore = 1; 20752let isNewValue = 1; 20753let isRestrictNoSlot1Store = 1; 20754let mayStore = 1; 20755let BaseOpcode = "S2_storeri_io"; 20756let CextOpcode = "S2_storeri"; 20757let InputType = "imm"; 20758let isExtendable = 1; 20759let opExtendable = 2; 20760let isExtentSigned = 0; 20761let opExtentBits = 8; 20762let opExtentAlign = 2; 20763let opNewValue = 3; 20764} 20765def S2_pstorerinewt_pi : HInst< 20766(outs IntRegs:$Rx32), 20767(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8), 20768"if ($Pv4) memw($Rx32++#$Ii) = $Nt8.new", 20769tc_ce59038e, TypeST>, Enc_65f095, AddrModeRel { 20770let Inst{2-2} = 0b0; 20771let Inst{7-7} = 0b0; 20772let Inst{13-11} = 0b110; 20773let Inst{31-21} = 0b10101011101; 20774let isPredicated = 1; 20775let addrMode = PostInc; 20776let accessSize = WordAccess; 20777let isNVStore = 1; 20778let isNewValue = 1; 20779let isRestrictNoSlot1Store = 1; 20780let mayStore = 1; 20781let BaseOpcode = "S2_storeri_pi"; 20782let CextOpcode = "S2_storeri"; 20783let opNewValue = 4; 20784let Constraints = "$Rx32 = $Rx32in"; 20785} 20786def S2_pstorerinewt_zomap : HInst< 20787(outs), 20788(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 20789"if ($Pv4) memw($Rs32) = $Nt8.new", 20790tc_011e0e9d, TypeMAPPING> { 20791let isPseudo = 1; 20792let isCodeGenOnly = 1; 20793let opNewValue = 2; 20794} 20795def S2_pstorerinewtnew_pi : HInst< 20796(outs IntRegs:$Rx32), 20797(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8), 20798"if ($Pv4.new) memw($Rx32++#$Ii) = $Nt8.new", 20799tc_f529831b, TypeST>, Enc_65f095, AddrModeRel { 20800let Inst{2-2} = 0b0; 20801let Inst{7-7} = 0b1; 20802let Inst{13-11} = 0b110; 20803let Inst{31-21} = 0b10101011101; 20804let isPredicated = 1; 20805let addrMode = PostInc; 20806let accessSize = WordAccess; 20807let isNVStore = 1; 20808let isPredicatedNew = 1; 20809let isNewValue = 1; 20810let isRestrictNoSlot1Store = 1; 20811let mayStore = 1; 20812let BaseOpcode = "S2_storeri_pi"; 20813let CextOpcode = "S2_storeri"; 20814let opNewValue = 4; 20815let Constraints = "$Rx32 = $Rx32in"; 20816} 20817def S2_pstorerit_io : HInst< 20818(outs), 20819(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32), 20820"if ($Pv4) memw($Rs32+#$Ii) = $Rt32", 20821tc_8035e91f, TypeV2LDST>, Enc_397f23, AddrModeRel { 20822let Inst{2-2} = 0b0; 20823let Inst{31-21} = 0b01000000100; 20824let isPredicated = 1; 20825let addrMode = BaseImmOffset; 20826let accessSize = WordAccess; 20827let mayStore = 1; 20828let BaseOpcode = "S2_storeri_io"; 20829let CextOpcode = "S2_storeri"; 20830let InputType = "imm"; 20831let isNVStorable = 1; 20832let isExtendable = 1; 20833let opExtendable = 2; 20834let isExtentSigned = 0; 20835let opExtentBits = 8; 20836let opExtentAlign = 2; 20837} 20838def S2_pstorerit_pi : HInst< 20839(outs IntRegs:$Rx32), 20840(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32), 20841"if ($Pv4) memw($Rx32++#$Ii) = $Rt32", 20842tc_9edefe01, TypeST>, Enc_7eaeb6, AddrModeRel { 20843let Inst{2-2} = 0b0; 20844let Inst{7-7} = 0b0; 20845let Inst{13-13} = 0b1; 20846let Inst{31-21} = 0b10101011100; 20847let isPredicated = 1; 20848let addrMode = PostInc; 20849let accessSize = WordAccess; 20850let mayStore = 1; 20851let BaseOpcode = "S2_storeri_pi"; 20852let isNVStorable = 1; 20853let Constraints = "$Rx32 = $Rx32in"; 20854} 20855def S2_pstorerit_zomap : HInst< 20856(outs), 20857(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 20858"if ($Pv4) memw($Rs32) = $Rt32", 20859tc_8035e91f, TypeMAPPING> { 20860let isPseudo = 1; 20861let isCodeGenOnly = 1; 20862} 20863def S2_pstoreritnew_pi : HInst< 20864(outs IntRegs:$Rx32), 20865(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32), 20866"if ($Pv4.new) memw($Rx32++#$Ii) = $Rt32", 20867tc_449acf79, TypeST>, Enc_7eaeb6, AddrModeRel { 20868let Inst{2-2} = 0b0; 20869let Inst{7-7} = 0b1; 20870let Inst{13-13} = 0b1; 20871let Inst{31-21} = 0b10101011100; 20872let isPredicated = 1; 20873let addrMode = PostInc; 20874let accessSize = WordAccess; 20875let isPredicatedNew = 1; 20876let mayStore = 1; 20877let BaseOpcode = "S2_storeri_pi"; 20878let isNVStorable = 1; 20879let Constraints = "$Rx32 = $Rx32in"; 20880} 20881def S2_setbit_i : HInst< 20882(outs IntRegs:$Rd32), 20883(ins IntRegs:$Rs32, u5_0Imm:$Ii), 20884"$Rd32 = setbit($Rs32,#$Ii)", 20885tc_5da50c4b, TypeS_2op>, Enc_a05677 { 20886let Inst{7-5} = 0b000; 20887let Inst{13-13} = 0b0; 20888let Inst{31-21} = 0b10001100110; 20889let hasNewValue = 1; 20890let opNewValue = 0; 20891} 20892def S2_setbit_r : HInst< 20893(outs IntRegs:$Rd32), 20894(ins IntRegs:$Rs32, IntRegs:$Rt32), 20895"$Rd32 = setbit($Rs32,$Rt32)", 20896tc_5da50c4b, TypeS_3op>, Enc_5ab2be { 20897let Inst{7-5} = 0b000; 20898let Inst{13-13} = 0b0; 20899let Inst{31-21} = 0b11000110100; 20900let hasNewValue = 1; 20901let opNewValue = 0; 20902} 20903def S2_shuffeb : HInst< 20904(outs DoubleRegs:$Rdd32), 20905(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 20906"$Rdd32 = shuffeb($Rss32,$Rtt32)", 20907tc_5da50c4b, TypeS_3op>, Enc_a56825 { 20908let Inst{7-5} = 0b010; 20909let Inst{13-13} = 0b0; 20910let Inst{31-21} = 0b11000001000; 20911} 20912def S2_shuffeh : HInst< 20913(outs DoubleRegs:$Rdd32), 20914(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 20915"$Rdd32 = shuffeh($Rss32,$Rtt32)", 20916tc_5da50c4b, TypeS_3op>, Enc_a56825 { 20917let Inst{7-5} = 0b110; 20918let Inst{13-13} = 0b0; 20919let Inst{31-21} = 0b11000001000; 20920} 20921def S2_shuffob : HInst< 20922(outs DoubleRegs:$Rdd32), 20923(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 20924"$Rdd32 = shuffob($Rtt32,$Rss32)", 20925tc_5da50c4b, TypeS_3op>, Enc_ea23e4 { 20926let Inst{7-5} = 0b100; 20927let Inst{13-13} = 0b0; 20928let Inst{31-21} = 0b11000001000; 20929} 20930def S2_shuffoh : HInst< 20931(outs DoubleRegs:$Rdd32), 20932(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), 20933"$Rdd32 = shuffoh($Rtt32,$Rss32)", 20934tc_5da50c4b, TypeS_3op>, Enc_ea23e4 { 20935let Inst{7-5} = 0b000; 20936let Inst{13-13} = 0b0; 20937let Inst{31-21} = 0b11000001100; 20938} 20939def S2_storerb_io : HInst< 20940(outs), 20941(ins IntRegs:$Rs32, s32_0Imm:$Ii, IntRegs:$Rt32), 20942"memb($Rs32+#$Ii) = $Rt32", 20943tc_ae5babd7, TypeST>, Enc_448f7f, AddrModeRel, PostInc_BaseImm { 20944let Inst{24-21} = 0b1000; 20945let Inst{31-27} = 0b10100; 20946let addrMode = BaseImmOffset; 20947let accessSize = ByteAccess; 20948let mayStore = 1; 20949let BaseOpcode = "S2_storerb_io"; 20950let CextOpcode = "S2_storerb"; 20951let InputType = "imm"; 20952let isNVStorable = 1; 20953let isPredicable = 1; 20954let isExtendable = 1; 20955let opExtendable = 1; 20956let isExtentSigned = 1; 20957let opExtentBits = 11; 20958let opExtentAlign = 0; 20959} 20960def S2_storerb_pbr : HInst< 20961(outs IntRegs:$Rx32), 20962(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 20963"memb($Rx32++$Mu2:brev) = $Rt32", 20964tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel { 20965let Inst{7-0} = 0b00000000; 20966let Inst{31-21} = 0b10101111000; 20967let addrMode = PostInc; 20968let accessSize = ByteAccess; 20969let mayStore = 1; 20970let BaseOpcode = "S2_storerb_pbr"; 20971let isNVStorable = 1; 20972let Constraints = "$Rx32 = $Rx32in"; 20973} 20974def S2_storerb_pci : HInst< 20975(outs IntRegs:$Rx32), 20976(ins IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32), 20977"memb($Rx32++#$Ii:circ($Mu2)) = $Rt32", 20978tc_b4dc7630, TypeST>, Enc_b15941, AddrModeRel { 20979let Inst{2-0} = 0b000; 20980let Inst{7-7} = 0b0; 20981let Inst{31-21} = 0b10101001000; 20982let addrMode = PostInc; 20983let accessSize = ByteAccess; 20984let mayStore = 1; 20985let Uses = [CS]; 20986let BaseOpcode = "S2_storerb_pci"; 20987let isNVStorable = 1; 20988let Constraints = "$Rx32 = $Rx32in"; 20989} 20990def S2_storerb_pcr : HInst< 20991(outs IntRegs:$Rx32), 20992(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 20993"memb($Rx32++I:circ($Mu2)) = $Rt32", 20994tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel { 20995let Inst{7-0} = 0b00000010; 20996let Inst{31-21} = 0b10101001000; 20997let addrMode = PostInc; 20998let accessSize = ByteAccess; 20999let mayStore = 1; 21000let Uses = [CS]; 21001let BaseOpcode = "S2_storerb_pcr"; 21002let isNVStorable = 1; 21003let Constraints = "$Rx32 = $Rx32in"; 21004} 21005def S2_storerb_pi : HInst< 21006(outs IntRegs:$Rx32), 21007(ins IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32), 21008"memb($Rx32++#$Ii) = $Rt32", 21009tc_a2b365d2, TypeST>, Enc_10bc21, AddrModeRel, PostInc_BaseImm { 21010let Inst{2-0} = 0b000; 21011let Inst{7-7} = 0b0; 21012let Inst{13-13} = 0b0; 21013let Inst{31-21} = 0b10101011000; 21014let addrMode = PostInc; 21015let accessSize = ByteAccess; 21016let mayStore = 1; 21017let BaseOpcode = "S2_storerb_pi"; 21018let CextOpcode = "S2_storerb"; 21019let isNVStorable = 1; 21020let isPredicable = 1; 21021let Constraints = "$Rx32 = $Rx32in"; 21022} 21023def S2_storerb_pr : HInst< 21024(outs IntRegs:$Rx32), 21025(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 21026"memb($Rx32++$Mu2) = $Rt32", 21027tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel { 21028let Inst{7-0} = 0b00000000; 21029let Inst{31-21} = 0b10101101000; 21030let addrMode = PostInc; 21031let accessSize = ByteAccess; 21032let mayStore = 1; 21033let BaseOpcode = "S2_storerb_pr"; 21034let isNVStorable = 1; 21035let Constraints = "$Rx32 = $Rx32in"; 21036} 21037def S2_storerb_zomap : HInst< 21038(outs), 21039(ins IntRegs:$Rs32, IntRegs:$Rt32), 21040"memb($Rs32) = $Rt32", 21041tc_ae5babd7, TypeMAPPING> { 21042let isPseudo = 1; 21043let isCodeGenOnly = 1; 21044} 21045def S2_storerbgp : HInst< 21046(outs), 21047(ins u32_0Imm:$Ii, IntRegs:$Rt32), 21048"memb(gp+#$Ii) = $Rt32", 21049tc_0655b949, TypeV2LDST>, Enc_1b64fb, AddrModeRel { 21050let Inst{24-21} = 0b0000; 21051let Inst{31-27} = 0b01001; 21052let accessSize = ByteAccess; 21053let mayStore = 1; 21054let Uses = [GP]; 21055let BaseOpcode = "S2_storerbabs"; 21056let isNVStorable = 1; 21057let isPredicable = 1; 21058let opExtendable = 0; 21059let isExtentSigned = 0; 21060let opExtentBits = 16; 21061let opExtentAlign = 0; 21062} 21063def S2_storerbnew_io : HInst< 21064(outs), 21065(ins IntRegs:$Rs32, s32_0Imm:$Ii, IntRegs:$Nt8), 21066"memb($Rs32+#$Ii) = $Nt8.new", 21067tc_5deb5e47, TypeST>, Enc_4df4e9, AddrModeRel { 21068let Inst{12-11} = 0b00; 21069let Inst{24-21} = 0b1101; 21070let Inst{31-27} = 0b10100; 21071let addrMode = BaseImmOffset; 21072let accessSize = ByteAccess; 21073let isNVStore = 1; 21074let isNewValue = 1; 21075let isRestrictNoSlot1Store = 1; 21076let mayStore = 1; 21077let BaseOpcode = "S2_storerb_io"; 21078let CextOpcode = "S2_storerb"; 21079let InputType = "imm"; 21080let isPredicable = 1; 21081let isExtendable = 1; 21082let opExtendable = 1; 21083let isExtentSigned = 1; 21084let opExtentBits = 11; 21085let opExtentAlign = 0; 21086let opNewValue = 2; 21087} 21088def S2_storerbnew_pbr : HInst< 21089(outs IntRegs:$Rx32), 21090(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8), 21091"memb($Rx32++$Mu2:brev) = $Nt8.new", 21092tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel { 21093let Inst{7-0} = 0b00000000; 21094let Inst{12-11} = 0b00; 21095let Inst{31-21} = 0b10101111101; 21096let addrMode = PostInc; 21097let accessSize = ByteAccess; 21098let isNVStore = 1; 21099let isNewValue = 1; 21100let isRestrictNoSlot1Store = 1; 21101let mayStore = 1; 21102let BaseOpcode = "S2_storerb_pbr"; 21103let opNewValue = 3; 21104let Constraints = "$Rx32 = $Rx32in"; 21105} 21106def S2_storerbnew_pci : HInst< 21107(outs IntRegs:$Rx32), 21108(ins IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2, IntRegs:$Nt8), 21109"memb($Rx32++#$Ii:circ($Mu2)) = $Nt8.new", 21110tc_addc37a8, TypeST>, Enc_96ce4f, AddrModeRel { 21111let Inst{2-0} = 0b000; 21112let Inst{7-7} = 0b0; 21113let Inst{12-11} = 0b00; 21114let Inst{31-21} = 0b10101001101; 21115let addrMode = PostInc; 21116let accessSize = ByteAccess; 21117let isNVStore = 1; 21118let isNewValue = 1; 21119let isRestrictNoSlot1Store = 1; 21120let mayStore = 1; 21121let Uses = [CS]; 21122let BaseOpcode = "S2_storerb_pci"; 21123let opNewValue = 4; 21124let Constraints = "$Rx32 = $Rx32in"; 21125} 21126def S2_storerbnew_pcr : HInst< 21127(outs IntRegs:$Rx32), 21128(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8), 21129"memb($Rx32++I:circ($Mu2)) = $Nt8.new", 21130tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel { 21131let Inst{7-0} = 0b00000010; 21132let Inst{12-11} = 0b00; 21133let Inst{31-21} = 0b10101001101; 21134let addrMode = PostInc; 21135let accessSize = ByteAccess; 21136let isNVStore = 1; 21137let isNewValue = 1; 21138let isRestrictNoSlot1Store = 1; 21139let mayStore = 1; 21140let Uses = [CS]; 21141let BaseOpcode = "S2_storerb_pcr"; 21142let opNewValue = 3; 21143let Constraints = "$Rx32 = $Rx32in"; 21144} 21145def S2_storerbnew_pi : HInst< 21146(outs IntRegs:$Rx32), 21147(ins IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8), 21148"memb($Rx32++#$Ii) = $Nt8.new", 21149tc_92240447, TypeST>, Enc_c7cd90, AddrModeRel { 21150let Inst{2-0} = 0b000; 21151let Inst{7-7} = 0b0; 21152let Inst{13-11} = 0b000; 21153let Inst{31-21} = 0b10101011101; 21154let addrMode = PostInc; 21155let accessSize = ByteAccess; 21156let isNVStore = 1; 21157let isNewValue = 1; 21158let isRestrictNoSlot1Store = 1; 21159let mayStore = 1; 21160let BaseOpcode = "S2_storerb_pi"; 21161let isNVStorable = 1; 21162let isPredicable = 1; 21163let opNewValue = 3; 21164let Constraints = "$Rx32 = $Rx32in"; 21165} 21166def S2_storerbnew_pr : HInst< 21167(outs IntRegs:$Rx32), 21168(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8), 21169"memb($Rx32++$Mu2) = $Nt8.new", 21170tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel { 21171let Inst{7-0} = 0b00000000; 21172let Inst{12-11} = 0b00; 21173let Inst{31-21} = 0b10101101101; 21174let addrMode = PostInc; 21175let accessSize = ByteAccess; 21176let isNVStore = 1; 21177let isNewValue = 1; 21178let isRestrictNoSlot1Store = 1; 21179let mayStore = 1; 21180let BaseOpcode = "S2_storerb_pr"; 21181let opNewValue = 3; 21182let Constraints = "$Rx32 = $Rx32in"; 21183} 21184def S2_storerbnew_zomap : HInst< 21185(outs), 21186(ins IntRegs:$Rs32, IntRegs:$Nt8), 21187"memb($Rs32) = $Nt8.new", 21188tc_5deb5e47, TypeMAPPING> { 21189let isPseudo = 1; 21190let isCodeGenOnly = 1; 21191let opNewValue = 1; 21192} 21193def S2_storerbnewgp : HInst< 21194(outs), 21195(ins u32_0Imm:$Ii, IntRegs:$Nt8), 21196"memb(gp+#$Ii) = $Nt8.new", 21197tc_6e20402a, TypeV2LDST>, Enc_ad1831, AddrModeRel { 21198let Inst{12-11} = 0b00; 21199let Inst{24-21} = 0b0101; 21200let Inst{31-27} = 0b01001; 21201let accessSize = ByteAccess; 21202let isNVStore = 1; 21203let isNewValue = 1; 21204let isRestrictNoSlot1Store = 1; 21205let mayStore = 1; 21206let Uses = [GP]; 21207let BaseOpcode = "S2_storerbabs"; 21208let isPredicable = 1; 21209let opExtendable = 0; 21210let isExtentSigned = 0; 21211let opExtentBits = 16; 21212let opExtentAlign = 0; 21213let opNewValue = 1; 21214} 21215def S2_storerd_io : HInst< 21216(outs), 21217(ins IntRegs:$Rs32, s29_3Imm:$Ii, DoubleRegs:$Rtt32), 21218"memd($Rs32+#$Ii) = $Rtt32", 21219tc_ae5babd7, TypeST>, Enc_ce6828, AddrModeRel, PostInc_BaseImm { 21220let Inst{24-21} = 0b1110; 21221let Inst{31-27} = 0b10100; 21222let addrMode = BaseImmOffset; 21223let accessSize = DoubleWordAccess; 21224let mayStore = 1; 21225let BaseOpcode = "S2_storerd_io"; 21226let CextOpcode = "S2_storerd"; 21227let InputType = "imm"; 21228let isPredicable = 1; 21229let isExtendable = 1; 21230let opExtendable = 1; 21231let isExtentSigned = 1; 21232let opExtentBits = 14; 21233let opExtentAlign = 3; 21234} 21235def S2_storerd_pbr : HInst< 21236(outs IntRegs:$Rx32), 21237(ins IntRegs:$Rx32in, ModRegs:$Mu2, DoubleRegs:$Rtt32), 21238"memd($Rx32++$Mu2:brev) = $Rtt32", 21239tc_a2b365d2, TypeST>, Enc_928ca1 { 21240let Inst{7-0} = 0b00000000; 21241let Inst{31-21} = 0b10101111110; 21242let addrMode = PostInc; 21243let accessSize = DoubleWordAccess; 21244let mayStore = 1; 21245let Constraints = "$Rx32 = $Rx32in"; 21246} 21247def S2_storerd_pci : HInst< 21248(outs IntRegs:$Rx32), 21249(ins IntRegs:$Rx32in, s4_3Imm:$Ii, ModRegs:$Mu2, DoubleRegs:$Rtt32), 21250"memd($Rx32++#$Ii:circ($Mu2)) = $Rtt32", 21251tc_b4dc7630, TypeST>, Enc_395cc4 { 21252let Inst{2-0} = 0b000; 21253let Inst{7-7} = 0b0; 21254let Inst{31-21} = 0b10101001110; 21255let addrMode = PostInc; 21256let accessSize = DoubleWordAccess; 21257let mayStore = 1; 21258let Uses = [CS]; 21259let Constraints = "$Rx32 = $Rx32in"; 21260} 21261def S2_storerd_pcr : HInst< 21262(outs IntRegs:$Rx32), 21263(ins IntRegs:$Rx32in, ModRegs:$Mu2, DoubleRegs:$Rtt32), 21264"memd($Rx32++I:circ($Mu2)) = $Rtt32", 21265tc_a2b365d2, TypeST>, Enc_928ca1 { 21266let Inst{7-0} = 0b00000010; 21267let Inst{31-21} = 0b10101001110; 21268let addrMode = PostInc; 21269let accessSize = DoubleWordAccess; 21270let mayStore = 1; 21271let Uses = [CS]; 21272let Constraints = "$Rx32 = $Rx32in"; 21273} 21274def S2_storerd_pi : HInst< 21275(outs IntRegs:$Rx32), 21276(ins IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32), 21277"memd($Rx32++#$Ii) = $Rtt32", 21278tc_a2b365d2, TypeST>, Enc_85bf58, AddrModeRel, PostInc_BaseImm { 21279let Inst{2-0} = 0b000; 21280let Inst{7-7} = 0b0; 21281let Inst{13-13} = 0b0; 21282let Inst{31-21} = 0b10101011110; 21283let addrMode = PostInc; 21284let accessSize = DoubleWordAccess; 21285let mayStore = 1; 21286let BaseOpcode = "S2_storerd_pi"; 21287let CextOpcode = "S2_storerd"; 21288let isPredicable = 1; 21289let Constraints = "$Rx32 = $Rx32in"; 21290} 21291def S2_storerd_pr : HInst< 21292(outs IntRegs:$Rx32), 21293(ins IntRegs:$Rx32in, ModRegs:$Mu2, DoubleRegs:$Rtt32), 21294"memd($Rx32++$Mu2) = $Rtt32", 21295tc_a2b365d2, TypeST>, Enc_928ca1 { 21296let Inst{7-0} = 0b00000000; 21297let Inst{31-21} = 0b10101101110; 21298let addrMode = PostInc; 21299let accessSize = DoubleWordAccess; 21300let mayStore = 1; 21301let Constraints = "$Rx32 = $Rx32in"; 21302} 21303def S2_storerd_zomap : HInst< 21304(outs), 21305(ins IntRegs:$Rs32, DoubleRegs:$Rtt32), 21306"memd($Rs32) = $Rtt32", 21307tc_ae5babd7, TypeMAPPING> { 21308let isPseudo = 1; 21309let isCodeGenOnly = 1; 21310} 21311def S2_storerdgp : HInst< 21312(outs), 21313(ins u29_3Imm:$Ii, DoubleRegs:$Rtt32), 21314"memd(gp+#$Ii) = $Rtt32", 21315tc_0655b949, TypeV2LDST>, Enc_5c124a, AddrModeRel { 21316let Inst{24-21} = 0b0110; 21317let Inst{31-27} = 0b01001; 21318let accessSize = DoubleWordAccess; 21319let mayStore = 1; 21320let Uses = [GP]; 21321let BaseOpcode = "S2_storerdabs"; 21322let isPredicable = 1; 21323let opExtendable = 0; 21324let isExtentSigned = 0; 21325let opExtentBits = 19; 21326let opExtentAlign = 3; 21327} 21328def S2_storerf_io : HInst< 21329(outs), 21330(ins IntRegs:$Rs32, s31_1Imm:$Ii, IntRegs:$Rt32), 21331"memh($Rs32+#$Ii) = $Rt32.h", 21332tc_ae5babd7, TypeST>, Enc_e957fb, AddrModeRel, PostInc_BaseImm { 21333let Inst{24-21} = 0b1011; 21334let Inst{31-27} = 0b10100; 21335let addrMode = BaseImmOffset; 21336let accessSize = HalfWordAccess; 21337let mayStore = 1; 21338let BaseOpcode = "S2_storerf_io"; 21339let CextOpcode = "S2_storerf"; 21340let InputType = "imm"; 21341let isPredicable = 1; 21342let isExtendable = 1; 21343let opExtendable = 1; 21344let isExtentSigned = 1; 21345let opExtentBits = 12; 21346let opExtentAlign = 1; 21347} 21348def S2_storerf_pbr : HInst< 21349(outs IntRegs:$Rx32), 21350(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 21351"memh($Rx32++$Mu2:brev) = $Rt32.h", 21352tc_a2b365d2, TypeST>, Enc_d5c73f { 21353let Inst{7-0} = 0b00000000; 21354let Inst{31-21} = 0b10101111011; 21355let addrMode = PostInc; 21356let accessSize = HalfWordAccess; 21357let mayStore = 1; 21358let Constraints = "$Rx32 = $Rx32in"; 21359} 21360def S2_storerf_pci : HInst< 21361(outs IntRegs:$Rx32), 21362(ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32), 21363"memh($Rx32++#$Ii:circ($Mu2)) = $Rt32.h", 21364tc_b4dc7630, TypeST>, Enc_935d9b { 21365let Inst{2-0} = 0b000; 21366let Inst{7-7} = 0b0; 21367let Inst{31-21} = 0b10101001011; 21368let addrMode = PostInc; 21369let accessSize = HalfWordAccess; 21370let mayStore = 1; 21371let Uses = [CS]; 21372let Constraints = "$Rx32 = $Rx32in"; 21373} 21374def S2_storerf_pcr : HInst< 21375(outs IntRegs:$Rx32), 21376(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 21377"memh($Rx32++I:circ($Mu2)) = $Rt32.h", 21378tc_a2b365d2, TypeST>, Enc_d5c73f { 21379let Inst{7-0} = 0b00000010; 21380let Inst{31-21} = 0b10101001011; 21381let addrMode = PostInc; 21382let accessSize = HalfWordAccess; 21383let mayStore = 1; 21384let Uses = [CS]; 21385let Constraints = "$Rx32 = $Rx32in"; 21386} 21387def S2_storerf_pi : HInst< 21388(outs IntRegs:$Rx32), 21389(ins IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32), 21390"memh($Rx32++#$Ii) = $Rt32.h", 21391tc_a2b365d2, TypeST>, Enc_052c7d, AddrModeRel, PostInc_BaseImm { 21392let Inst{2-0} = 0b000; 21393let Inst{7-7} = 0b0; 21394let Inst{13-13} = 0b0; 21395let Inst{31-21} = 0b10101011011; 21396let addrMode = PostInc; 21397let accessSize = HalfWordAccess; 21398let mayStore = 1; 21399let BaseOpcode = "S2_storerf_pi"; 21400let CextOpcode = "S2_storerf"; 21401let isPredicable = 1; 21402let Constraints = "$Rx32 = $Rx32in"; 21403} 21404def S2_storerf_pr : HInst< 21405(outs IntRegs:$Rx32), 21406(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 21407"memh($Rx32++$Mu2) = $Rt32.h", 21408tc_a2b365d2, TypeST>, Enc_d5c73f { 21409let Inst{7-0} = 0b00000000; 21410let Inst{31-21} = 0b10101101011; 21411let addrMode = PostInc; 21412let accessSize = HalfWordAccess; 21413let mayStore = 1; 21414let Constraints = "$Rx32 = $Rx32in"; 21415} 21416def S2_storerf_zomap : HInst< 21417(outs), 21418(ins IntRegs:$Rs32, IntRegs:$Rt32), 21419"memh($Rs32) = $Rt32.h", 21420tc_ae5babd7, TypeMAPPING> { 21421let isPseudo = 1; 21422let isCodeGenOnly = 1; 21423} 21424def S2_storerfgp : HInst< 21425(outs), 21426(ins u31_1Imm:$Ii, IntRegs:$Rt32), 21427"memh(gp+#$Ii) = $Rt32.h", 21428tc_0655b949, TypeV2LDST>, Enc_fda92c, AddrModeRel { 21429let Inst{24-21} = 0b0011; 21430let Inst{31-27} = 0b01001; 21431let accessSize = HalfWordAccess; 21432let mayStore = 1; 21433let Uses = [GP]; 21434let BaseOpcode = "S2_storerfabs"; 21435let isPredicable = 1; 21436let opExtendable = 0; 21437let isExtentSigned = 0; 21438let opExtentBits = 17; 21439let opExtentAlign = 1; 21440} 21441def S2_storerh_io : HInst< 21442(outs), 21443(ins IntRegs:$Rs32, s31_1Imm:$Ii, IntRegs:$Rt32), 21444"memh($Rs32+#$Ii) = $Rt32", 21445tc_ae5babd7, TypeST>, Enc_e957fb, AddrModeRel, PostInc_BaseImm { 21446let Inst{24-21} = 0b1010; 21447let Inst{31-27} = 0b10100; 21448let addrMode = BaseImmOffset; 21449let accessSize = HalfWordAccess; 21450let mayStore = 1; 21451let BaseOpcode = "S2_storerh_io"; 21452let CextOpcode = "S2_storerh"; 21453let InputType = "imm"; 21454let isNVStorable = 1; 21455let isPredicable = 1; 21456let isExtendable = 1; 21457let opExtendable = 1; 21458let isExtentSigned = 1; 21459let opExtentBits = 12; 21460let opExtentAlign = 1; 21461} 21462def S2_storerh_pbr : HInst< 21463(outs IntRegs:$Rx32), 21464(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 21465"memh($Rx32++$Mu2:brev) = $Rt32", 21466tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel { 21467let Inst{7-0} = 0b00000000; 21468let Inst{31-21} = 0b10101111010; 21469let addrMode = PostInc; 21470let accessSize = HalfWordAccess; 21471let mayStore = 1; 21472let BaseOpcode = "S2_storerh_pbr"; 21473let isNVStorable = 1; 21474let Constraints = "$Rx32 = $Rx32in"; 21475} 21476def S2_storerh_pci : HInst< 21477(outs IntRegs:$Rx32), 21478(ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32), 21479"memh($Rx32++#$Ii:circ($Mu2)) = $Rt32", 21480tc_b4dc7630, TypeST>, Enc_935d9b, AddrModeRel { 21481let Inst{2-0} = 0b000; 21482let Inst{7-7} = 0b0; 21483let Inst{31-21} = 0b10101001010; 21484let addrMode = PostInc; 21485let accessSize = HalfWordAccess; 21486let mayStore = 1; 21487let Uses = [CS]; 21488let BaseOpcode = "S2_storerh_pci"; 21489let isNVStorable = 1; 21490let Constraints = "$Rx32 = $Rx32in"; 21491} 21492def S2_storerh_pcr : HInst< 21493(outs IntRegs:$Rx32), 21494(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 21495"memh($Rx32++I:circ($Mu2)) = $Rt32", 21496tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel { 21497let Inst{7-0} = 0b00000010; 21498let Inst{31-21} = 0b10101001010; 21499let addrMode = PostInc; 21500let accessSize = HalfWordAccess; 21501let mayStore = 1; 21502let Uses = [CS]; 21503let BaseOpcode = "S2_storerh_pcr"; 21504let isNVStorable = 1; 21505let Constraints = "$Rx32 = $Rx32in"; 21506} 21507def S2_storerh_pi : HInst< 21508(outs IntRegs:$Rx32), 21509(ins IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32), 21510"memh($Rx32++#$Ii) = $Rt32", 21511tc_a2b365d2, TypeST>, Enc_052c7d, AddrModeRel, PostInc_BaseImm { 21512let Inst{2-0} = 0b000; 21513let Inst{7-7} = 0b0; 21514let Inst{13-13} = 0b0; 21515let Inst{31-21} = 0b10101011010; 21516let addrMode = PostInc; 21517let accessSize = HalfWordAccess; 21518let mayStore = 1; 21519let BaseOpcode = "S2_storerh_pi"; 21520let CextOpcode = "S2_storerh"; 21521let isNVStorable = 1; 21522let isPredicable = 1; 21523let Constraints = "$Rx32 = $Rx32in"; 21524} 21525def S2_storerh_pr : HInst< 21526(outs IntRegs:$Rx32), 21527(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 21528"memh($Rx32++$Mu2) = $Rt32", 21529tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel { 21530let Inst{7-0} = 0b00000000; 21531let Inst{31-21} = 0b10101101010; 21532let addrMode = PostInc; 21533let accessSize = HalfWordAccess; 21534let mayStore = 1; 21535let BaseOpcode = "S2_storerh_pr"; 21536let isNVStorable = 1; 21537let Constraints = "$Rx32 = $Rx32in"; 21538} 21539def S2_storerh_zomap : HInst< 21540(outs), 21541(ins IntRegs:$Rs32, IntRegs:$Rt32), 21542"memh($Rs32) = $Rt32", 21543tc_ae5babd7, TypeMAPPING> { 21544let isPseudo = 1; 21545let isCodeGenOnly = 1; 21546} 21547def S2_storerhgp : HInst< 21548(outs), 21549(ins u31_1Imm:$Ii, IntRegs:$Rt32), 21550"memh(gp+#$Ii) = $Rt32", 21551tc_0655b949, TypeV2LDST>, Enc_fda92c, AddrModeRel { 21552let Inst{24-21} = 0b0010; 21553let Inst{31-27} = 0b01001; 21554let accessSize = HalfWordAccess; 21555let mayStore = 1; 21556let Uses = [GP]; 21557let BaseOpcode = "S2_storerhabs"; 21558let isNVStorable = 1; 21559let isPredicable = 1; 21560let opExtendable = 0; 21561let isExtentSigned = 0; 21562let opExtentBits = 17; 21563let opExtentAlign = 1; 21564} 21565def S2_storerhnew_io : HInst< 21566(outs), 21567(ins IntRegs:$Rs32, s31_1Imm:$Ii, IntRegs:$Nt8), 21568"memh($Rs32+#$Ii) = $Nt8.new", 21569tc_5deb5e47, TypeST>, Enc_0d8870, AddrModeRel { 21570let Inst{12-11} = 0b01; 21571let Inst{24-21} = 0b1101; 21572let Inst{31-27} = 0b10100; 21573let addrMode = BaseImmOffset; 21574let accessSize = HalfWordAccess; 21575let isNVStore = 1; 21576let isNewValue = 1; 21577let isRestrictNoSlot1Store = 1; 21578let mayStore = 1; 21579let BaseOpcode = "S2_storerh_io"; 21580let CextOpcode = "S2_storerh"; 21581let InputType = "imm"; 21582let isPredicable = 1; 21583let isExtendable = 1; 21584let opExtendable = 1; 21585let isExtentSigned = 1; 21586let opExtentBits = 12; 21587let opExtentAlign = 1; 21588let opNewValue = 2; 21589} 21590def S2_storerhnew_pbr : HInst< 21591(outs IntRegs:$Rx32), 21592(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8), 21593"memh($Rx32++$Mu2:brev) = $Nt8.new", 21594tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel { 21595let Inst{7-0} = 0b00000000; 21596let Inst{12-11} = 0b01; 21597let Inst{31-21} = 0b10101111101; 21598let addrMode = PostInc; 21599let accessSize = HalfWordAccess; 21600let isNVStore = 1; 21601let isNewValue = 1; 21602let isRestrictNoSlot1Store = 1; 21603let mayStore = 1; 21604let BaseOpcode = "S2_storerh_pbr"; 21605let opNewValue = 3; 21606let Constraints = "$Rx32 = $Rx32in"; 21607} 21608def S2_storerhnew_pci : HInst< 21609(outs IntRegs:$Rx32), 21610(ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2, IntRegs:$Nt8), 21611"memh($Rx32++#$Ii:circ($Mu2)) = $Nt8.new", 21612tc_addc37a8, TypeST>, Enc_91b9fe, AddrModeRel { 21613let Inst{2-0} = 0b000; 21614let Inst{7-7} = 0b0; 21615let Inst{12-11} = 0b01; 21616let Inst{31-21} = 0b10101001101; 21617let addrMode = PostInc; 21618let accessSize = HalfWordAccess; 21619let isNVStore = 1; 21620let isNewValue = 1; 21621let isRestrictNoSlot1Store = 1; 21622let mayStore = 1; 21623let Uses = [CS]; 21624let BaseOpcode = "S2_storerh_pci"; 21625let opNewValue = 4; 21626let Constraints = "$Rx32 = $Rx32in"; 21627} 21628def S2_storerhnew_pcr : HInst< 21629(outs IntRegs:$Rx32), 21630(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8), 21631"memh($Rx32++I:circ($Mu2)) = $Nt8.new", 21632tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel { 21633let Inst{7-0} = 0b00000010; 21634let Inst{12-11} = 0b01; 21635let Inst{31-21} = 0b10101001101; 21636let addrMode = PostInc; 21637let accessSize = HalfWordAccess; 21638let isNVStore = 1; 21639let isNewValue = 1; 21640let isRestrictNoSlot1Store = 1; 21641let mayStore = 1; 21642let Uses = [CS]; 21643let BaseOpcode = "S2_storerh_pcr"; 21644let opNewValue = 3; 21645let Constraints = "$Rx32 = $Rx32in"; 21646} 21647def S2_storerhnew_pi : HInst< 21648(outs IntRegs:$Rx32), 21649(ins IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8), 21650"memh($Rx32++#$Ii) = $Nt8.new", 21651tc_92240447, TypeST>, Enc_e26546, AddrModeRel { 21652let Inst{2-0} = 0b000; 21653let Inst{7-7} = 0b0; 21654let Inst{13-11} = 0b001; 21655let Inst{31-21} = 0b10101011101; 21656let addrMode = PostInc; 21657let accessSize = HalfWordAccess; 21658let isNVStore = 1; 21659let isNewValue = 1; 21660let isRestrictNoSlot1Store = 1; 21661let mayStore = 1; 21662let BaseOpcode = "S2_storerh_pi"; 21663let isNVStorable = 1; 21664let isPredicable = 1; 21665let opNewValue = 3; 21666let Constraints = "$Rx32 = $Rx32in"; 21667} 21668def S2_storerhnew_pr : HInst< 21669(outs IntRegs:$Rx32), 21670(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8), 21671"memh($Rx32++$Mu2) = $Nt8.new", 21672tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel { 21673let Inst{7-0} = 0b00000000; 21674let Inst{12-11} = 0b01; 21675let Inst{31-21} = 0b10101101101; 21676let addrMode = PostInc; 21677let accessSize = HalfWordAccess; 21678let isNVStore = 1; 21679let isNewValue = 1; 21680let isRestrictNoSlot1Store = 1; 21681let mayStore = 1; 21682let BaseOpcode = "S2_storerh_pr"; 21683let opNewValue = 3; 21684let Constraints = "$Rx32 = $Rx32in"; 21685} 21686def S2_storerhnew_zomap : HInst< 21687(outs), 21688(ins IntRegs:$Rs32, IntRegs:$Nt8), 21689"memh($Rs32) = $Nt8.new", 21690tc_5deb5e47, TypeMAPPING> { 21691let isPseudo = 1; 21692let isCodeGenOnly = 1; 21693let opNewValue = 1; 21694} 21695def S2_storerhnewgp : HInst< 21696(outs), 21697(ins u31_1Imm:$Ii, IntRegs:$Nt8), 21698"memh(gp+#$Ii) = $Nt8.new", 21699tc_6e20402a, TypeV2LDST>, Enc_bc03e5, AddrModeRel { 21700let Inst{12-11} = 0b01; 21701let Inst{24-21} = 0b0101; 21702let Inst{31-27} = 0b01001; 21703let accessSize = HalfWordAccess; 21704let isNVStore = 1; 21705let isNewValue = 1; 21706let isRestrictNoSlot1Store = 1; 21707let mayStore = 1; 21708let Uses = [GP]; 21709let BaseOpcode = "S2_storerhabs"; 21710let isPredicable = 1; 21711let opExtendable = 0; 21712let isExtentSigned = 0; 21713let opExtentBits = 17; 21714let opExtentAlign = 1; 21715let opNewValue = 1; 21716} 21717def S2_storeri_io : HInst< 21718(outs), 21719(ins IntRegs:$Rs32, s30_2Imm:$Ii, IntRegs:$Rt32), 21720"memw($Rs32+#$Ii) = $Rt32", 21721tc_ae5babd7, TypeST>, Enc_143445, AddrModeRel, PostInc_BaseImm { 21722let Inst{24-21} = 0b1100; 21723let Inst{31-27} = 0b10100; 21724let addrMode = BaseImmOffset; 21725let accessSize = WordAccess; 21726let mayStore = 1; 21727let BaseOpcode = "S2_storeri_io"; 21728let CextOpcode = "S2_storeri"; 21729let InputType = "imm"; 21730let isNVStorable = 1; 21731let isPredicable = 1; 21732let isExtendable = 1; 21733let opExtendable = 1; 21734let isExtentSigned = 1; 21735let opExtentBits = 13; 21736let opExtentAlign = 2; 21737} 21738def S2_storeri_pbr : HInst< 21739(outs IntRegs:$Rx32), 21740(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 21741"memw($Rx32++$Mu2:brev) = $Rt32", 21742tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel { 21743let Inst{7-0} = 0b00000000; 21744let Inst{31-21} = 0b10101111100; 21745let addrMode = PostInc; 21746let accessSize = WordAccess; 21747let mayStore = 1; 21748let BaseOpcode = "S2_storeri_pbr"; 21749let isNVStorable = 1; 21750let Constraints = "$Rx32 = $Rx32in"; 21751} 21752def S2_storeri_pci : HInst< 21753(outs IntRegs:$Rx32), 21754(ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32), 21755"memw($Rx32++#$Ii:circ($Mu2)) = $Rt32", 21756tc_b4dc7630, TypeST>, Enc_79b8c8, AddrModeRel { 21757let Inst{2-0} = 0b000; 21758let Inst{7-7} = 0b0; 21759let Inst{31-21} = 0b10101001100; 21760let addrMode = PostInc; 21761let accessSize = WordAccess; 21762let mayStore = 1; 21763let Uses = [CS]; 21764let BaseOpcode = "S2_storeri_pci"; 21765let isNVStorable = 1; 21766let Constraints = "$Rx32 = $Rx32in"; 21767} 21768def S2_storeri_pcr : HInst< 21769(outs IntRegs:$Rx32), 21770(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 21771"memw($Rx32++I:circ($Mu2)) = $Rt32", 21772tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel { 21773let Inst{7-0} = 0b00000010; 21774let Inst{31-21} = 0b10101001100; 21775let addrMode = PostInc; 21776let accessSize = WordAccess; 21777let mayStore = 1; 21778let Uses = [CS]; 21779let BaseOpcode = "S2_storeri_pcr"; 21780let isNVStorable = 1; 21781let Constraints = "$Rx32 = $Rx32in"; 21782} 21783def S2_storeri_pi : HInst< 21784(outs IntRegs:$Rx32), 21785(ins IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32), 21786"memw($Rx32++#$Ii) = $Rt32", 21787tc_a2b365d2, TypeST>, Enc_db40cd, AddrModeRel, PostInc_BaseImm { 21788let Inst{2-0} = 0b000; 21789let Inst{7-7} = 0b0; 21790let Inst{13-13} = 0b0; 21791let Inst{31-21} = 0b10101011100; 21792let addrMode = PostInc; 21793let accessSize = WordAccess; 21794let mayStore = 1; 21795let BaseOpcode = "S2_storeri_pi"; 21796let CextOpcode = "S2_storeri"; 21797let isNVStorable = 1; 21798let isPredicable = 1; 21799let Constraints = "$Rx32 = $Rx32in"; 21800} 21801def S2_storeri_pr : HInst< 21802(outs IntRegs:$Rx32), 21803(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), 21804"memw($Rx32++$Mu2) = $Rt32", 21805tc_a2b365d2, TypeST>, Enc_d5c73f, AddrModeRel { 21806let Inst{7-0} = 0b00000000; 21807let Inst{31-21} = 0b10101101100; 21808let addrMode = PostInc; 21809let accessSize = WordAccess; 21810let mayStore = 1; 21811let BaseOpcode = "S2_storeri_pr"; 21812let isNVStorable = 1; 21813let Constraints = "$Rx32 = $Rx32in"; 21814} 21815def S2_storeri_zomap : HInst< 21816(outs), 21817(ins IntRegs:$Rs32, IntRegs:$Rt32), 21818"memw($Rs32) = $Rt32", 21819tc_ae5babd7, TypeMAPPING> { 21820let isPseudo = 1; 21821let isCodeGenOnly = 1; 21822} 21823def S2_storerigp : HInst< 21824(outs), 21825(ins u30_2Imm:$Ii, IntRegs:$Rt32), 21826"memw(gp+#$Ii) = $Rt32", 21827tc_0655b949, TypeV2LDST>, Enc_541f26, AddrModeRel { 21828let Inst{24-21} = 0b0100; 21829let Inst{31-27} = 0b01001; 21830let accessSize = WordAccess; 21831let mayStore = 1; 21832let Uses = [GP]; 21833let BaseOpcode = "S2_storeriabs"; 21834let isNVStorable = 1; 21835let isPredicable = 1; 21836let opExtendable = 0; 21837let isExtentSigned = 0; 21838let opExtentBits = 18; 21839let opExtentAlign = 2; 21840} 21841def S2_storerinew_io : HInst< 21842(outs), 21843(ins IntRegs:$Rs32, s30_2Imm:$Ii, IntRegs:$Nt8), 21844"memw($Rs32+#$Ii) = $Nt8.new", 21845tc_5deb5e47, TypeST>, Enc_690862, AddrModeRel { 21846let Inst{12-11} = 0b10; 21847let Inst{24-21} = 0b1101; 21848let Inst{31-27} = 0b10100; 21849let addrMode = BaseImmOffset; 21850let accessSize = WordAccess; 21851let isNVStore = 1; 21852let isNewValue = 1; 21853let isRestrictNoSlot1Store = 1; 21854let mayStore = 1; 21855let BaseOpcode = "S2_storeri_io"; 21856let CextOpcode = "S2_storeri"; 21857let InputType = "imm"; 21858let isPredicable = 1; 21859let isExtendable = 1; 21860let opExtendable = 1; 21861let isExtentSigned = 1; 21862let opExtentBits = 13; 21863let opExtentAlign = 2; 21864let opNewValue = 2; 21865} 21866def S2_storerinew_pbr : HInst< 21867(outs IntRegs:$Rx32), 21868(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8), 21869"memw($Rx32++$Mu2:brev) = $Nt8.new", 21870tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel { 21871let Inst{7-0} = 0b00000000; 21872let Inst{12-11} = 0b10; 21873let Inst{31-21} = 0b10101111101; 21874let addrMode = PostInc; 21875let accessSize = WordAccess; 21876let isNVStore = 1; 21877let isNewValue = 1; 21878let isRestrictNoSlot1Store = 1; 21879let mayStore = 1; 21880let BaseOpcode = "S2_storeri_pbr"; 21881let opNewValue = 3; 21882let Constraints = "$Rx32 = $Rx32in"; 21883} 21884def S2_storerinew_pci : HInst< 21885(outs IntRegs:$Rx32), 21886(ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2, IntRegs:$Nt8), 21887"memw($Rx32++#$Ii:circ($Mu2)) = $Nt8.new", 21888tc_addc37a8, TypeST>, Enc_3f97c8, AddrModeRel { 21889let Inst{2-0} = 0b000; 21890let Inst{7-7} = 0b0; 21891let Inst{12-11} = 0b10; 21892let Inst{31-21} = 0b10101001101; 21893let addrMode = PostInc; 21894let accessSize = WordAccess; 21895let isNVStore = 1; 21896let isNewValue = 1; 21897let isRestrictNoSlot1Store = 1; 21898let mayStore = 1; 21899let Uses = [CS]; 21900let BaseOpcode = "S2_storeri_pci"; 21901let opNewValue = 4; 21902let Constraints = "$Rx32 = $Rx32in"; 21903} 21904def S2_storerinew_pcr : HInst< 21905(outs IntRegs:$Rx32), 21906(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8), 21907"memw($Rx32++I:circ($Mu2)) = $Nt8.new", 21908tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel { 21909let Inst{7-0} = 0b00000010; 21910let Inst{12-11} = 0b10; 21911let Inst{31-21} = 0b10101001101; 21912let addrMode = PostInc; 21913let accessSize = WordAccess; 21914let isNVStore = 1; 21915let isNewValue = 1; 21916let isRestrictNoSlot1Store = 1; 21917let mayStore = 1; 21918let Uses = [CS]; 21919let BaseOpcode = "S2_storeri_pcr"; 21920let opNewValue = 3; 21921let Constraints = "$Rx32 = $Rx32in"; 21922} 21923def S2_storerinew_pi : HInst< 21924(outs IntRegs:$Rx32), 21925(ins IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8), 21926"memw($Rx32++#$Ii) = $Nt8.new", 21927tc_92240447, TypeST>, Enc_223005, AddrModeRel { 21928let Inst{2-0} = 0b000; 21929let Inst{7-7} = 0b0; 21930let Inst{13-11} = 0b010; 21931let Inst{31-21} = 0b10101011101; 21932let addrMode = PostInc; 21933let accessSize = WordAccess; 21934let isNVStore = 1; 21935let isNewValue = 1; 21936let isRestrictNoSlot1Store = 1; 21937let mayStore = 1; 21938let BaseOpcode = "S2_storeri_pi"; 21939let isPredicable = 1; 21940let opNewValue = 3; 21941let Constraints = "$Rx32 = $Rx32in"; 21942} 21943def S2_storerinew_pr : HInst< 21944(outs IntRegs:$Rx32), 21945(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8), 21946"memw($Rx32++$Mu2) = $Nt8.new", 21947tc_92240447, TypeST>, Enc_8dbe85, AddrModeRel { 21948let Inst{7-0} = 0b00000000; 21949let Inst{12-11} = 0b10; 21950let Inst{31-21} = 0b10101101101; 21951let addrMode = PostInc; 21952let accessSize = WordAccess; 21953let isNVStore = 1; 21954let isNewValue = 1; 21955let isRestrictNoSlot1Store = 1; 21956let mayStore = 1; 21957let BaseOpcode = "S2_storeri_pr"; 21958let opNewValue = 3; 21959let Constraints = "$Rx32 = $Rx32in"; 21960} 21961def S2_storerinew_zomap : HInst< 21962(outs), 21963(ins IntRegs:$Rs32, IntRegs:$Nt8), 21964"memw($Rs32) = $Nt8.new", 21965tc_5deb5e47, TypeMAPPING> { 21966let isPseudo = 1; 21967let isCodeGenOnly = 1; 21968let opNewValue = 1; 21969} 21970def S2_storerinewgp : HInst< 21971(outs), 21972(ins u30_2Imm:$Ii, IntRegs:$Nt8), 21973"memw(gp+#$Ii) = $Nt8.new", 21974tc_6e20402a, TypeV2LDST>, Enc_78cbf0, AddrModeRel { 21975let Inst{12-11} = 0b10; 21976let Inst{24-21} = 0b0101; 21977let Inst{31-27} = 0b01001; 21978let accessSize = WordAccess; 21979let isNVStore = 1; 21980let isNewValue = 1; 21981let isRestrictNoSlot1Store = 1; 21982let mayStore = 1; 21983let Uses = [GP]; 21984let BaseOpcode = "S2_storeriabs"; 21985let isPredicable = 1; 21986let opExtendable = 0; 21987let isExtentSigned = 0; 21988let opExtentBits = 18; 21989let opExtentAlign = 2; 21990let opNewValue = 1; 21991} 21992def S2_storew_locked : HInst< 21993(outs PredRegs:$Pd4), 21994(ins IntRegs:$Rs32, IntRegs:$Rt32), 21995"memw_locked($Rs32,$Pd4) = $Rt32", 21996tc_6f42bc60, TypeST>, Enc_c2b48e { 21997let Inst{7-2} = 0b000000; 21998let Inst{13-13} = 0b0; 21999let Inst{31-21} = 0b10100000101; 22000let accessSize = WordAccess; 22001let isPredicateLate = 1; 22002let isSoloAX = 1; 22003let mayStore = 1; 22004} 22005def S2_storew_rl_at_vi : HInst< 22006(outs), 22007(ins IntRegs:$Rs32, IntRegs:$Rt32), 22008"memw_rl($Rs32):at = $Rt32", 22009tc_7af3a37e, TypeST>, Enc_ca3887, Requires<[HasV68]> { 22010let Inst{7-2} = 0b000010; 22011let Inst{13-13} = 0b0; 22012let Inst{31-21} = 0b10100000101; 22013let accessSize = WordAccess; 22014let isSolo = 1; 22015let mayStore = 1; 22016} 22017def S2_storew_rl_st_vi : HInst< 22018(outs), 22019(ins IntRegs:$Rs32, IntRegs:$Rt32), 22020"memw_rl($Rs32):st = $Rt32", 22021tc_7af3a37e, TypeST>, Enc_ca3887, Requires<[HasV68]> { 22022let Inst{7-2} = 0b001010; 22023let Inst{13-13} = 0b0; 22024let Inst{31-21} = 0b10100000101; 22025let accessSize = WordAccess; 22026let isSolo = 1; 22027let mayStore = 1; 22028} 22029def S2_svsathb : HInst< 22030(outs IntRegs:$Rd32), 22031(ins IntRegs:$Rs32), 22032"$Rd32 = vsathb($Rs32)", 22033tc_9f6cd987, TypeS_2op>, Enc_5e2823 { 22034let Inst{13-5} = 0b000000000; 22035let Inst{31-21} = 0b10001100100; 22036let hasNewValue = 1; 22037let opNewValue = 0; 22038let Defs = [USR_OVF]; 22039} 22040def S2_svsathub : HInst< 22041(outs IntRegs:$Rd32), 22042(ins IntRegs:$Rs32), 22043"$Rd32 = vsathub($Rs32)", 22044tc_9f6cd987, TypeS_2op>, Enc_5e2823 { 22045let Inst{13-5} = 0b000000010; 22046let Inst{31-21} = 0b10001100100; 22047let hasNewValue = 1; 22048let opNewValue = 0; 22049let Defs = [USR_OVF]; 22050} 22051def S2_tableidxb : HInst< 22052(outs IntRegs:$Rx32), 22053(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, s6_0Imm:$II), 22054"$Rx32 = tableidxb($Rs32,#$Ii,#$II):raw", 22055tc_bb831a7c, TypeS_2op>, Enc_cd82bc { 22056let Inst{31-22} = 0b1000011100; 22057let hasNewValue = 1; 22058let opNewValue = 0; 22059let prefersSlot3 = 1; 22060let Constraints = "$Rx32 = $Rx32in"; 22061} 22062def S2_tableidxb_goodsyntax : HInst< 22063(outs IntRegs:$Rx32), 22064(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, u5_0Imm:$II), 22065"$Rx32 = tableidxb($Rs32,#$Ii,#$II)", 22066tc_bb831a7c, TypeS_2op> { 22067let hasNewValue = 1; 22068let opNewValue = 0; 22069let isPseudo = 1; 22070let isCodeGenOnly = 1; 22071let Constraints = "$Rx32 = $Rx32in"; 22072} 22073def S2_tableidxd : HInst< 22074(outs IntRegs:$Rx32), 22075(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, s6_0Imm:$II), 22076"$Rx32 = tableidxd($Rs32,#$Ii,#$II):raw", 22077tc_bb831a7c, TypeS_2op>, Enc_cd82bc { 22078let Inst{31-22} = 0b1000011111; 22079let hasNewValue = 1; 22080let opNewValue = 0; 22081let prefersSlot3 = 1; 22082let Constraints = "$Rx32 = $Rx32in"; 22083} 22084def S2_tableidxd_goodsyntax : HInst< 22085(outs IntRegs:$Rx32), 22086(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, u5_0Imm:$II), 22087"$Rx32 = tableidxd($Rs32,#$Ii,#$II)", 22088tc_bb831a7c, TypeS_2op> { 22089let hasNewValue = 1; 22090let opNewValue = 0; 22091let isPseudo = 1; 22092let Constraints = "$Rx32 = $Rx32in"; 22093} 22094def S2_tableidxh : HInst< 22095(outs IntRegs:$Rx32), 22096(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, s6_0Imm:$II), 22097"$Rx32 = tableidxh($Rs32,#$Ii,#$II):raw", 22098tc_bb831a7c, TypeS_2op>, Enc_cd82bc { 22099let Inst{31-22} = 0b1000011101; 22100let hasNewValue = 1; 22101let opNewValue = 0; 22102let prefersSlot3 = 1; 22103let Constraints = "$Rx32 = $Rx32in"; 22104} 22105def S2_tableidxh_goodsyntax : HInst< 22106(outs IntRegs:$Rx32), 22107(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, u5_0Imm:$II), 22108"$Rx32 = tableidxh($Rs32,#$Ii,#$II)", 22109tc_bb831a7c, TypeS_2op> { 22110let hasNewValue = 1; 22111let opNewValue = 0; 22112let isPseudo = 1; 22113let Constraints = "$Rx32 = $Rx32in"; 22114} 22115def S2_tableidxw : HInst< 22116(outs IntRegs:$Rx32), 22117(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, s6_0Imm:$II), 22118"$Rx32 = tableidxw($Rs32,#$Ii,#$II):raw", 22119tc_bb831a7c, TypeS_2op>, Enc_cd82bc { 22120let Inst{31-22} = 0b1000011110; 22121let hasNewValue = 1; 22122let opNewValue = 0; 22123let prefersSlot3 = 1; 22124let Constraints = "$Rx32 = $Rx32in"; 22125} 22126def S2_tableidxw_goodsyntax : HInst< 22127(outs IntRegs:$Rx32), 22128(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, u5_0Imm:$II), 22129"$Rx32 = tableidxw($Rs32,#$Ii,#$II)", 22130tc_bb831a7c, TypeS_2op> { 22131let hasNewValue = 1; 22132let opNewValue = 0; 22133let isPseudo = 1; 22134let Constraints = "$Rx32 = $Rx32in"; 22135} 22136def S2_togglebit_i : HInst< 22137(outs IntRegs:$Rd32), 22138(ins IntRegs:$Rs32, u5_0Imm:$Ii), 22139"$Rd32 = togglebit($Rs32,#$Ii)", 22140tc_5da50c4b, TypeS_2op>, Enc_a05677 { 22141let Inst{7-5} = 0b010; 22142let Inst{13-13} = 0b0; 22143let Inst{31-21} = 0b10001100110; 22144let hasNewValue = 1; 22145let opNewValue = 0; 22146} 22147def S2_togglebit_r : HInst< 22148(outs IntRegs:$Rd32), 22149(ins IntRegs:$Rs32, IntRegs:$Rt32), 22150"$Rd32 = togglebit($Rs32,$Rt32)", 22151tc_5da50c4b, TypeS_3op>, Enc_5ab2be { 22152let Inst{7-5} = 0b100; 22153let Inst{13-13} = 0b0; 22154let Inst{31-21} = 0b11000110100; 22155let hasNewValue = 1; 22156let opNewValue = 0; 22157} 22158def S2_tstbit_i : HInst< 22159(outs PredRegs:$Pd4), 22160(ins IntRegs:$Rs32, u5_0Imm:$Ii), 22161"$Pd4 = tstbit($Rs32,#$Ii)", 22162tc_a1297125, TypeS_2op>, Enc_83ee64 { 22163let Inst{7-2} = 0b000000; 22164let Inst{13-13} = 0b0; 22165let Inst{31-21} = 0b10000101000; 22166} 22167def S2_tstbit_r : HInst< 22168(outs PredRegs:$Pd4), 22169(ins IntRegs:$Rs32, IntRegs:$Rt32), 22170"$Pd4 = tstbit($Rs32,$Rt32)", 22171tc_4a55d03c, TypeS_3op>, Enc_c2b48e { 22172let Inst{7-2} = 0b000000; 22173let Inst{13-13} = 0b0; 22174let Inst{31-21} = 0b11000111000; 22175} 22176def S2_valignib : HInst< 22177(outs DoubleRegs:$Rdd32), 22178(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32, u3_0Imm:$Ii), 22179"$Rdd32 = valignb($Rtt32,$Rss32,#$Ii)", 22180tc_6fc5dbea, TypeS_3op>, Enc_729ff7 { 22181let Inst{13-13} = 0b0; 22182let Inst{31-21} = 0b11000000000; 22183} 22184def S2_valignrb : HInst< 22185(outs DoubleRegs:$Rdd32), 22186(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32, PredRegs:$Pu4), 22187"$Rdd32 = valignb($Rtt32,$Rss32,$Pu4)", 22188tc_6fc5dbea, TypeS_3op>, Enc_8c6530 { 22189let Inst{7-7} = 0b0; 22190let Inst{13-13} = 0b0; 22191let Inst{31-21} = 0b11000010000; 22192} 22193def S2_vcnegh : HInst< 22194(outs DoubleRegs:$Rdd32), 22195(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 22196"$Rdd32 = vcnegh($Rss32,$Rt32)", 22197tc_8a825db2, TypeS_3op>, Enc_927852 { 22198let Inst{7-5} = 0b010; 22199let Inst{13-13} = 0b0; 22200let Inst{31-21} = 0b11000011110; 22201let prefersSlot3 = 1; 22202let Defs = [USR_OVF]; 22203} 22204def S2_vcrotate : HInst< 22205(outs DoubleRegs:$Rdd32), 22206(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 22207"$Rdd32 = vcrotate($Rss32,$Rt32)", 22208tc_0dfac0a7, TypeS_3op>, Enc_927852 { 22209let Inst{7-5} = 0b000; 22210let Inst{13-13} = 0b0; 22211let Inst{31-21} = 0b11000011110; 22212let prefersSlot3 = 1; 22213let Defs = [USR_OVF]; 22214} 22215def S2_vrcnegh : HInst< 22216(outs DoubleRegs:$Rxx32), 22217(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32), 22218"$Rxx32 += vrcnegh($Rss32,$Rt32)", 22219tc_7f8ae742, TypeS_3op>, Enc_1aa186 { 22220let Inst{7-5} = 0b111; 22221let Inst{13-13} = 0b1; 22222let Inst{31-21} = 0b11001011001; 22223let prefersSlot3 = 1; 22224let Constraints = "$Rxx32 = $Rxx32in"; 22225} 22226def S2_vrndpackwh : HInst< 22227(outs IntRegs:$Rd32), 22228(ins DoubleRegs:$Rss32), 22229"$Rd32 = vrndwh($Rss32)", 22230tc_e3d699e3, TypeS_2op>, Enc_90cd8b { 22231let Inst{13-5} = 0b000000100; 22232let Inst{31-21} = 0b10001000100; 22233let hasNewValue = 1; 22234let opNewValue = 0; 22235let prefersSlot3 = 1; 22236} 22237def S2_vrndpackwhs : HInst< 22238(outs IntRegs:$Rd32), 22239(ins DoubleRegs:$Rss32), 22240"$Rd32 = vrndwh($Rss32):sat", 22241tc_d61dfdc3, TypeS_2op>, Enc_90cd8b { 22242let Inst{13-5} = 0b000000110; 22243let Inst{31-21} = 0b10001000100; 22244let hasNewValue = 1; 22245let opNewValue = 0; 22246let prefersSlot3 = 1; 22247let Defs = [USR_OVF]; 22248} 22249def S2_vsathb : HInst< 22250(outs IntRegs:$Rd32), 22251(ins DoubleRegs:$Rss32), 22252"$Rd32 = vsathb($Rss32)", 22253tc_9f6cd987, TypeS_2op>, Enc_90cd8b { 22254let Inst{13-5} = 0b000000110; 22255let Inst{31-21} = 0b10001000000; 22256let hasNewValue = 1; 22257let opNewValue = 0; 22258let Defs = [USR_OVF]; 22259} 22260def S2_vsathb_nopack : HInst< 22261(outs DoubleRegs:$Rdd32), 22262(ins DoubleRegs:$Rss32), 22263"$Rdd32 = vsathb($Rss32)", 22264tc_9f6cd987, TypeS_2op>, Enc_b9c5fb { 22265let Inst{13-5} = 0b000000111; 22266let Inst{31-21} = 0b10000000000; 22267let Defs = [USR_OVF]; 22268} 22269def S2_vsathub : HInst< 22270(outs IntRegs:$Rd32), 22271(ins DoubleRegs:$Rss32), 22272"$Rd32 = vsathub($Rss32)", 22273tc_9f6cd987, TypeS_2op>, Enc_90cd8b { 22274let Inst{13-5} = 0b000000000; 22275let Inst{31-21} = 0b10001000000; 22276let hasNewValue = 1; 22277let opNewValue = 0; 22278let Defs = [USR_OVF]; 22279} 22280def S2_vsathub_nopack : HInst< 22281(outs DoubleRegs:$Rdd32), 22282(ins DoubleRegs:$Rss32), 22283"$Rdd32 = vsathub($Rss32)", 22284tc_9f6cd987, TypeS_2op>, Enc_b9c5fb { 22285let Inst{13-5} = 0b000000100; 22286let Inst{31-21} = 0b10000000000; 22287let Defs = [USR_OVF]; 22288} 22289def S2_vsatwh : HInst< 22290(outs IntRegs:$Rd32), 22291(ins DoubleRegs:$Rss32), 22292"$Rd32 = vsatwh($Rss32)", 22293tc_9f6cd987, TypeS_2op>, Enc_90cd8b { 22294let Inst{13-5} = 0b000000010; 22295let Inst{31-21} = 0b10001000000; 22296let hasNewValue = 1; 22297let opNewValue = 0; 22298let Defs = [USR_OVF]; 22299} 22300def S2_vsatwh_nopack : HInst< 22301(outs DoubleRegs:$Rdd32), 22302(ins DoubleRegs:$Rss32), 22303"$Rdd32 = vsatwh($Rss32)", 22304tc_9f6cd987, TypeS_2op>, Enc_b9c5fb { 22305let Inst{13-5} = 0b000000110; 22306let Inst{31-21} = 0b10000000000; 22307let Defs = [USR_OVF]; 22308} 22309def S2_vsatwuh : HInst< 22310(outs IntRegs:$Rd32), 22311(ins DoubleRegs:$Rss32), 22312"$Rd32 = vsatwuh($Rss32)", 22313tc_9f6cd987, TypeS_2op>, Enc_90cd8b { 22314let Inst{13-5} = 0b000000100; 22315let Inst{31-21} = 0b10001000000; 22316let hasNewValue = 1; 22317let opNewValue = 0; 22318let Defs = [USR_OVF]; 22319} 22320def S2_vsatwuh_nopack : HInst< 22321(outs DoubleRegs:$Rdd32), 22322(ins DoubleRegs:$Rss32), 22323"$Rdd32 = vsatwuh($Rss32)", 22324tc_9f6cd987, TypeS_2op>, Enc_b9c5fb { 22325let Inst{13-5} = 0b000000101; 22326let Inst{31-21} = 0b10000000000; 22327let Defs = [USR_OVF]; 22328} 22329def S2_vsplatrb : HInst< 22330(outs IntRegs:$Rd32), 22331(ins IntRegs:$Rs32), 22332"$Rd32 = vsplatb($Rs32)", 22333tc_9f6cd987, TypeS_2op>, Enc_5e2823 { 22334let Inst{13-5} = 0b000000111; 22335let Inst{31-21} = 0b10001100010; 22336let hasNewValue = 1; 22337let opNewValue = 0; 22338let isAsCheapAsAMove = 1; 22339let isReMaterializable = 1; 22340} 22341def S2_vsplatrh : HInst< 22342(outs DoubleRegs:$Rdd32), 22343(ins IntRegs:$Rs32), 22344"$Rdd32 = vsplath($Rs32)", 22345tc_9f6cd987, TypeS_2op>, Enc_3a3d62 { 22346let Inst{13-5} = 0b000000010; 22347let Inst{31-21} = 0b10000100010; 22348let isAsCheapAsAMove = 1; 22349let isReMaterializable = 1; 22350} 22351def S2_vspliceib : HInst< 22352(outs DoubleRegs:$Rdd32), 22353(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32, u3_0Imm:$Ii), 22354"$Rdd32 = vspliceb($Rss32,$Rtt32,#$Ii)", 22355tc_6fc5dbea, TypeS_3op>, Enc_d50cd3 { 22356let Inst{13-13} = 0b0; 22357let Inst{31-21} = 0b11000000100; 22358} 22359def S2_vsplicerb : HInst< 22360(outs DoubleRegs:$Rdd32), 22361(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32, PredRegs:$Pu4), 22362"$Rdd32 = vspliceb($Rss32,$Rtt32,$Pu4)", 22363tc_6fc5dbea, TypeS_3op>, Enc_dbd70c { 22364let Inst{7-7} = 0b0; 22365let Inst{13-13} = 0b0; 22366let Inst{31-21} = 0b11000010100; 22367} 22368def S2_vsxtbh : HInst< 22369(outs DoubleRegs:$Rdd32), 22370(ins IntRegs:$Rs32), 22371"$Rdd32 = vsxtbh($Rs32)", 22372tc_9f6cd987, TypeS_2op>, Enc_3a3d62 { 22373let Inst{13-5} = 0b000000000; 22374let Inst{31-21} = 0b10000100000; 22375let isAsCheapAsAMove = 1; 22376let isReMaterializable = 1; 22377} 22378def S2_vsxthw : HInst< 22379(outs DoubleRegs:$Rdd32), 22380(ins IntRegs:$Rs32), 22381"$Rdd32 = vsxthw($Rs32)", 22382tc_9f6cd987, TypeS_2op>, Enc_3a3d62 { 22383let Inst{13-5} = 0b000000100; 22384let Inst{31-21} = 0b10000100000; 22385let isAsCheapAsAMove = 1; 22386let isReMaterializable = 1; 22387} 22388def S2_vtrunehb : HInst< 22389(outs IntRegs:$Rd32), 22390(ins DoubleRegs:$Rss32), 22391"$Rd32 = vtrunehb($Rss32)", 22392tc_9f6cd987, TypeS_2op>, Enc_90cd8b { 22393let Inst{13-5} = 0b000000010; 22394let Inst{31-21} = 0b10001000100; 22395let hasNewValue = 1; 22396let opNewValue = 0; 22397} 22398def S2_vtrunewh : HInst< 22399(outs DoubleRegs:$Rdd32), 22400(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 22401"$Rdd32 = vtrunewh($Rss32,$Rtt32)", 22402tc_5da50c4b, TypeS_3op>, Enc_a56825 { 22403let Inst{7-5} = 0b010; 22404let Inst{13-13} = 0b0; 22405let Inst{31-21} = 0b11000001100; 22406} 22407def S2_vtrunohb : HInst< 22408(outs IntRegs:$Rd32), 22409(ins DoubleRegs:$Rss32), 22410"$Rd32 = vtrunohb($Rss32)", 22411tc_9f6cd987, TypeS_2op>, Enc_90cd8b { 22412let Inst{13-5} = 0b000000000; 22413let Inst{31-21} = 0b10001000100; 22414let hasNewValue = 1; 22415let opNewValue = 0; 22416} 22417def S2_vtrunowh : HInst< 22418(outs DoubleRegs:$Rdd32), 22419(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 22420"$Rdd32 = vtrunowh($Rss32,$Rtt32)", 22421tc_5da50c4b, TypeS_3op>, Enc_a56825 { 22422let Inst{7-5} = 0b100; 22423let Inst{13-13} = 0b0; 22424let Inst{31-21} = 0b11000001100; 22425} 22426def S2_vzxtbh : HInst< 22427(outs DoubleRegs:$Rdd32), 22428(ins IntRegs:$Rs32), 22429"$Rdd32 = vzxtbh($Rs32)", 22430tc_9f6cd987, TypeS_2op>, Enc_3a3d62 { 22431let Inst{13-5} = 0b000000010; 22432let Inst{31-21} = 0b10000100000; 22433let isAsCheapAsAMove = 1; 22434let isReMaterializable = 1; 22435} 22436def S2_vzxthw : HInst< 22437(outs DoubleRegs:$Rdd32), 22438(ins IntRegs:$Rs32), 22439"$Rdd32 = vzxthw($Rs32)", 22440tc_9f6cd987, TypeS_2op>, Enc_3a3d62 { 22441let Inst{13-5} = 0b000000110; 22442let Inst{31-21} = 0b10000100000; 22443let isAsCheapAsAMove = 1; 22444let isReMaterializable = 1; 22445} 22446def S4_addaddi : HInst< 22447(outs IntRegs:$Rd32), 22448(ins IntRegs:$Rs32, IntRegs:$Ru32, s32_0Imm:$Ii), 22449"$Rd32 = add($Rs32,add($Ru32,#$Ii))", 22450tc_2c13e7f5, TypeALU64>, Enc_8b8d61, Requires<[UseCompound]> { 22451let Inst{31-23} = 0b110110110; 22452let hasNewValue = 1; 22453let opNewValue = 0; 22454let prefersSlot3 = 1; 22455let isExtendable = 1; 22456let opExtendable = 3; 22457let isExtentSigned = 1; 22458let opExtentBits = 6; 22459let opExtentAlign = 0; 22460} 22461def S4_addi_asl_ri : HInst< 22462(outs IntRegs:$Rx32), 22463(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II), 22464"$Rx32 = add(#$Ii,asl($Rx32in,#$II))", 22465tc_2c13e7f5, TypeALU64>, Enc_c31910, Requires<[UseCompound]> { 22466let Inst{2-0} = 0b100; 22467let Inst{4-4} = 0b0; 22468let Inst{31-24} = 0b11011110; 22469let hasNewValue = 1; 22470let opNewValue = 0; 22471let prefersSlot3 = 1; 22472let isExtendable = 1; 22473let opExtendable = 1; 22474let isExtentSigned = 0; 22475let opExtentBits = 8; 22476let opExtentAlign = 0; 22477let Constraints = "$Rx32 = $Rx32in"; 22478} 22479def S4_addi_lsr_ri : HInst< 22480(outs IntRegs:$Rx32), 22481(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II), 22482"$Rx32 = add(#$Ii,lsr($Rx32in,#$II))", 22483tc_2c13e7f5, TypeALU64>, Enc_c31910, Requires<[UseCompound]> { 22484let Inst{2-0} = 0b100; 22485let Inst{4-4} = 0b1; 22486let Inst{31-24} = 0b11011110; 22487let hasNewValue = 1; 22488let opNewValue = 0; 22489let prefersSlot3 = 1; 22490let isExtendable = 1; 22491let opExtendable = 1; 22492let isExtentSigned = 0; 22493let opExtentBits = 8; 22494let opExtentAlign = 0; 22495let Constraints = "$Rx32 = $Rx32in"; 22496} 22497def S4_andi_asl_ri : HInst< 22498(outs IntRegs:$Rx32), 22499(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II), 22500"$Rx32 = and(#$Ii,asl($Rx32in,#$II))", 22501tc_a4e22bbd, TypeALU64>, Enc_c31910, Requires<[UseCompound]> { 22502let Inst{2-0} = 0b000; 22503let Inst{4-4} = 0b0; 22504let Inst{31-24} = 0b11011110; 22505let hasNewValue = 1; 22506let opNewValue = 0; 22507let prefersSlot3 = 1; 22508let isExtendable = 1; 22509let opExtendable = 1; 22510let isExtentSigned = 0; 22511let opExtentBits = 8; 22512let opExtentAlign = 0; 22513let Constraints = "$Rx32 = $Rx32in"; 22514} 22515def S4_andi_lsr_ri : HInst< 22516(outs IntRegs:$Rx32), 22517(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II), 22518"$Rx32 = and(#$Ii,lsr($Rx32in,#$II))", 22519tc_a4e22bbd, TypeALU64>, Enc_c31910, Requires<[UseCompound]> { 22520let Inst{2-0} = 0b000; 22521let Inst{4-4} = 0b1; 22522let Inst{31-24} = 0b11011110; 22523let hasNewValue = 1; 22524let opNewValue = 0; 22525let prefersSlot3 = 1; 22526let isExtendable = 1; 22527let opExtendable = 1; 22528let isExtentSigned = 0; 22529let opExtentBits = 8; 22530let opExtentAlign = 0; 22531let Constraints = "$Rx32 = $Rx32in"; 22532} 22533def S4_clbaddi : HInst< 22534(outs IntRegs:$Rd32), 22535(ins IntRegs:$Rs32, s6_0Imm:$Ii), 22536"$Rd32 = add(clb($Rs32),#$Ii)", 22537tc_a08b630b, TypeS_2op>, Enc_9fae8a { 22538let Inst{7-5} = 0b000; 22539let Inst{31-21} = 0b10001100001; 22540let hasNewValue = 1; 22541let opNewValue = 0; 22542let prefersSlot3 = 1; 22543} 22544def S4_clbpaddi : HInst< 22545(outs IntRegs:$Rd32), 22546(ins DoubleRegs:$Rss32, s6_0Imm:$Ii), 22547"$Rd32 = add(clb($Rss32),#$Ii)", 22548tc_a08b630b, TypeS_2op>, Enc_a1640c { 22549let Inst{7-5} = 0b010; 22550let Inst{31-21} = 0b10001000011; 22551let hasNewValue = 1; 22552let opNewValue = 0; 22553let prefersSlot3 = 1; 22554} 22555def S4_clbpnorm : HInst< 22556(outs IntRegs:$Rd32), 22557(ins DoubleRegs:$Rss32), 22558"$Rd32 = normamt($Rss32)", 22559tc_a7bdb22c, TypeS_2op>, Enc_90cd8b { 22560let Inst{13-5} = 0b000000000; 22561let Inst{31-21} = 0b10001000011; 22562let hasNewValue = 1; 22563let opNewValue = 0; 22564let prefersSlot3 = 1; 22565} 22566def S4_extract : HInst< 22567(outs IntRegs:$Rd32), 22568(ins IntRegs:$Rs32, u5_0Imm:$Ii, u5_0Imm:$II), 22569"$Rd32 = extract($Rs32,#$Ii,#$II)", 22570tc_2c13e7f5, TypeS_2op>, Enc_b388cf { 22571let Inst{13-13} = 0b0; 22572let Inst{31-23} = 0b100011011; 22573let hasNewValue = 1; 22574let opNewValue = 0; 22575let prefersSlot3 = 1; 22576} 22577def S4_extract_rp : HInst< 22578(outs IntRegs:$Rd32), 22579(ins IntRegs:$Rs32, DoubleRegs:$Rtt32), 22580"$Rd32 = extract($Rs32,$Rtt32)", 22581tc_a08b630b, TypeS_3op>, Enc_e07374 { 22582let Inst{7-5} = 0b010; 22583let Inst{13-13} = 0b0; 22584let Inst{31-21} = 0b11001001000; 22585let hasNewValue = 1; 22586let opNewValue = 0; 22587let prefersSlot3 = 1; 22588} 22589def S4_extractp : HInst< 22590(outs DoubleRegs:$Rdd32), 22591(ins DoubleRegs:$Rss32, u6_0Imm:$Ii, u6_0Imm:$II), 22592"$Rdd32 = extract($Rss32,#$Ii,#$II)", 22593tc_2c13e7f5, TypeS_2op>, Enc_b84c4c { 22594let Inst{31-24} = 0b10001010; 22595let prefersSlot3 = 1; 22596} 22597def S4_extractp_rp : HInst< 22598(outs DoubleRegs:$Rdd32), 22599(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 22600"$Rdd32 = extract($Rss32,$Rtt32)", 22601tc_a08b630b, TypeS_3op>, Enc_a56825 { 22602let Inst{7-5} = 0b100; 22603let Inst{13-13} = 0b0; 22604let Inst{31-21} = 0b11000001110; 22605let prefersSlot3 = 1; 22606} 22607def S4_lsli : HInst< 22608(outs IntRegs:$Rd32), 22609(ins s6_0Imm:$Ii, IntRegs:$Rt32), 22610"$Rd32 = lsl(#$Ii,$Rt32)", 22611tc_5da50c4b, TypeS_3op>, Enc_fef969 { 22612let Inst{7-6} = 0b11; 22613let Inst{13-13} = 0b0; 22614let Inst{31-21} = 0b11000110100; 22615let hasNewValue = 1; 22616let opNewValue = 0; 22617} 22618def S4_ntstbit_i : HInst< 22619(outs PredRegs:$Pd4), 22620(ins IntRegs:$Rs32, u5_0Imm:$Ii), 22621"$Pd4 = !tstbit($Rs32,#$Ii)", 22622tc_a1297125, TypeS_2op>, Enc_83ee64 { 22623let Inst{7-2} = 0b000000; 22624let Inst{13-13} = 0b0; 22625let Inst{31-21} = 0b10000101001; 22626} 22627def S4_ntstbit_r : HInst< 22628(outs PredRegs:$Pd4), 22629(ins IntRegs:$Rs32, IntRegs:$Rt32), 22630"$Pd4 = !tstbit($Rs32,$Rt32)", 22631tc_4a55d03c, TypeS_3op>, Enc_c2b48e { 22632let Inst{7-2} = 0b000000; 22633let Inst{13-13} = 0b0; 22634let Inst{31-21} = 0b11000111001; 22635} 22636def S4_or_andi : HInst< 22637(outs IntRegs:$Rx32), 22638(ins IntRegs:$Rx32in, IntRegs:$Rs32, s32_0Imm:$Ii), 22639"$Rx32 |= and($Rs32,#$Ii)", 22640tc_a4e22bbd, TypeALU64>, Enc_b0e9d8 { 22641let Inst{31-22} = 0b1101101000; 22642let hasNewValue = 1; 22643let opNewValue = 0; 22644let prefersSlot3 = 1; 22645let InputType = "imm"; 22646let isExtendable = 1; 22647let opExtendable = 3; 22648let isExtentSigned = 1; 22649let opExtentBits = 10; 22650let opExtentAlign = 0; 22651let Constraints = "$Rx32 = $Rx32in"; 22652} 22653def S4_or_andix : HInst< 22654(outs IntRegs:$Rx32), 22655(ins IntRegs:$Ru32, IntRegs:$Rx32in, s32_0Imm:$Ii), 22656"$Rx32 = or($Ru32,and($Rx32in,#$Ii))", 22657tc_a4e22bbd, TypeALU64>, Enc_b4e6cf, Requires<[UseCompound]> { 22658let Inst{31-22} = 0b1101101001; 22659let hasNewValue = 1; 22660let opNewValue = 0; 22661let prefersSlot3 = 1; 22662let isExtendable = 1; 22663let opExtendable = 3; 22664let isExtentSigned = 1; 22665let opExtentBits = 10; 22666let opExtentAlign = 0; 22667let Constraints = "$Rx32 = $Rx32in"; 22668} 22669def S4_or_ori : HInst< 22670(outs IntRegs:$Rx32), 22671(ins IntRegs:$Rx32in, IntRegs:$Rs32, s32_0Imm:$Ii), 22672"$Rx32 |= or($Rs32,#$Ii)", 22673tc_a4e22bbd, TypeALU64>, Enc_b0e9d8 { 22674let Inst{31-22} = 0b1101101010; 22675let hasNewValue = 1; 22676let opNewValue = 0; 22677let prefersSlot3 = 1; 22678let InputType = "imm"; 22679let isExtendable = 1; 22680let opExtendable = 3; 22681let isExtentSigned = 1; 22682let opExtentBits = 10; 22683let opExtentAlign = 0; 22684let Constraints = "$Rx32 = $Rx32in"; 22685} 22686def S4_ori_asl_ri : HInst< 22687(outs IntRegs:$Rx32), 22688(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II), 22689"$Rx32 = or(#$Ii,asl($Rx32in,#$II))", 22690tc_a4e22bbd, TypeALU64>, Enc_c31910, Requires<[UseCompound]> { 22691let Inst{2-0} = 0b010; 22692let Inst{4-4} = 0b0; 22693let Inst{31-24} = 0b11011110; 22694let hasNewValue = 1; 22695let opNewValue = 0; 22696let prefersSlot3 = 1; 22697let isExtendable = 1; 22698let opExtendable = 1; 22699let isExtentSigned = 0; 22700let opExtentBits = 8; 22701let opExtentAlign = 0; 22702let Constraints = "$Rx32 = $Rx32in"; 22703} 22704def S4_ori_lsr_ri : HInst< 22705(outs IntRegs:$Rx32), 22706(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II), 22707"$Rx32 = or(#$Ii,lsr($Rx32in,#$II))", 22708tc_a4e22bbd, TypeALU64>, Enc_c31910, Requires<[UseCompound]> { 22709let Inst{2-0} = 0b010; 22710let Inst{4-4} = 0b1; 22711let Inst{31-24} = 0b11011110; 22712let hasNewValue = 1; 22713let opNewValue = 0; 22714let prefersSlot3 = 1; 22715let isExtendable = 1; 22716let opExtendable = 1; 22717let isExtentSigned = 0; 22718let opExtentBits = 8; 22719let opExtentAlign = 0; 22720let Constraints = "$Rx32 = $Rx32in"; 22721} 22722def S4_parity : HInst< 22723(outs IntRegs:$Rd32), 22724(ins IntRegs:$Rs32, IntRegs:$Rt32), 22725"$Rd32 = parity($Rs32,$Rt32)", 22726tc_a08b630b, TypeALU64>, Enc_5ab2be { 22727let Inst{7-5} = 0b000; 22728let Inst{13-13} = 0b0; 22729let Inst{31-21} = 0b11010101111; 22730let hasNewValue = 1; 22731let opNewValue = 0; 22732let prefersSlot3 = 1; 22733} 22734def S4_pstorerbf_abs : HInst< 22735(outs), 22736(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 22737"if (!$Pv4) memb(#$Ii) = $Rt32", 22738tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel { 22739let Inst{2-2} = 0b1; 22740let Inst{7-7} = 0b1; 22741let Inst{13-13} = 0b0; 22742let Inst{31-18} = 0b10101111000000; 22743let isPredicated = 1; 22744let isPredicatedFalse = 1; 22745let addrMode = Absolute; 22746let accessSize = ByteAccess; 22747let isExtended = 1; 22748let mayStore = 1; 22749let BaseOpcode = "S2_storerbabs"; 22750let CextOpcode = "S2_storerb"; 22751let isNVStorable = 1; 22752let DecoderNamespace = "MustExtend"; 22753let isExtendable = 1; 22754let opExtendable = 1; 22755let isExtentSigned = 0; 22756let opExtentBits = 6; 22757let opExtentAlign = 0; 22758} 22759def S4_pstorerbf_rr : HInst< 22760(outs), 22761(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 22762"if (!$Pv4) memb($Rs32+$Ru32<<#$Ii) = $Rt32", 22763tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel { 22764let Inst{31-21} = 0b00110101000; 22765let isPredicated = 1; 22766let isPredicatedFalse = 1; 22767let addrMode = BaseRegOffset; 22768let accessSize = ByteAccess; 22769let mayStore = 1; 22770let BaseOpcode = "S4_storerb_rr"; 22771let CextOpcode = "S2_storerb"; 22772let InputType = "reg"; 22773let isNVStorable = 1; 22774} 22775def S4_pstorerbfnew_abs : HInst< 22776(outs), 22777(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 22778"if (!$Pv4.new) memb(#$Ii) = $Rt32", 22779tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel { 22780let Inst{2-2} = 0b1; 22781let Inst{7-7} = 0b1; 22782let Inst{13-13} = 0b1; 22783let Inst{31-18} = 0b10101111000000; 22784let isPredicated = 1; 22785let isPredicatedFalse = 1; 22786let addrMode = Absolute; 22787let accessSize = ByteAccess; 22788let isPredicatedNew = 1; 22789let isExtended = 1; 22790let mayStore = 1; 22791let BaseOpcode = "S2_storerbabs"; 22792let CextOpcode = "S2_storerb"; 22793let isNVStorable = 1; 22794let DecoderNamespace = "MustExtend"; 22795let isExtendable = 1; 22796let opExtendable = 1; 22797let isExtentSigned = 0; 22798let opExtentBits = 6; 22799let opExtentAlign = 0; 22800} 22801def S4_pstorerbfnew_io : HInst< 22802(outs), 22803(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32), 22804"if (!$Pv4.new) memb($Rs32+#$Ii) = $Rt32", 22805tc_a2b365d2, TypeV2LDST>, Enc_da8d43, AddrModeRel { 22806let Inst{2-2} = 0b0; 22807let Inst{31-21} = 0b01000110000; 22808let isPredicated = 1; 22809let isPredicatedFalse = 1; 22810let addrMode = BaseImmOffset; 22811let accessSize = ByteAccess; 22812let isPredicatedNew = 1; 22813let mayStore = 1; 22814let BaseOpcode = "S2_storerb_io"; 22815let CextOpcode = "S2_storerb"; 22816let InputType = "imm"; 22817let isNVStorable = 1; 22818let isExtendable = 1; 22819let opExtendable = 2; 22820let isExtentSigned = 0; 22821let opExtentBits = 6; 22822let opExtentAlign = 0; 22823} 22824def S4_pstorerbfnew_rr : HInst< 22825(outs), 22826(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 22827"if (!$Pv4.new) memb($Rs32+$Ru32<<#$Ii) = $Rt32", 22828tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel { 22829let Inst{31-21} = 0b00110111000; 22830let isPredicated = 1; 22831let isPredicatedFalse = 1; 22832let addrMode = BaseRegOffset; 22833let accessSize = ByteAccess; 22834let isPredicatedNew = 1; 22835let mayStore = 1; 22836let BaseOpcode = "S4_storerb_rr"; 22837let CextOpcode = "S2_storerb"; 22838let InputType = "reg"; 22839let isNVStorable = 1; 22840} 22841def S4_pstorerbfnew_zomap : HInst< 22842(outs), 22843(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 22844"if (!$Pv4.new) memb($Rs32) = $Rt32", 22845tc_a2b365d2, TypeMAPPING> { 22846let isPseudo = 1; 22847let isCodeGenOnly = 1; 22848} 22849def S4_pstorerbnewf_abs : HInst< 22850(outs), 22851(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 22852"if (!$Pv4) memb(#$Ii) = $Nt8.new", 22853tc_cfa0e29b, TypeST>, Enc_44215c, AddrModeRel { 22854let Inst{2-2} = 0b1; 22855let Inst{7-7} = 0b1; 22856let Inst{13-11} = 0b000; 22857let Inst{31-18} = 0b10101111101000; 22858let isPredicated = 1; 22859let isPredicatedFalse = 1; 22860let addrMode = Absolute; 22861let accessSize = ByteAccess; 22862let isNVStore = 1; 22863let isNewValue = 1; 22864let isExtended = 1; 22865let isRestrictNoSlot1Store = 1; 22866let mayStore = 1; 22867let BaseOpcode = "S2_storerbabs"; 22868let CextOpcode = "S2_storerb"; 22869let DecoderNamespace = "MustExtend"; 22870let isExtendable = 1; 22871let opExtendable = 1; 22872let isExtentSigned = 0; 22873let opExtentBits = 6; 22874let opExtentAlign = 0; 22875let opNewValue = 2; 22876} 22877def S4_pstorerbnewf_rr : HInst< 22878(outs), 22879(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 22880"if (!$Pv4) memb($Rs32+$Ru32<<#$Ii) = $Nt8.new", 22881tc_0a6c20ae, TypeST>, Enc_47ee5e, AddrModeRel { 22882let Inst{4-3} = 0b00; 22883let Inst{31-21} = 0b00110101101; 22884let isPredicated = 1; 22885let isPredicatedFalse = 1; 22886let addrMode = BaseRegOffset; 22887let accessSize = ByteAccess; 22888let isNVStore = 1; 22889let isNewValue = 1; 22890let isRestrictNoSlot1Store = 1; 22891let mayStore = 1; 22892let BaseOpcode = "S4_storerb_rr"; 22893let CextOpcode = "S2_storerb"; 22894let InputType = "reg"; 22895let opNewValue = 4; 22896} 22897def S4_pstorerbnewfnew_abs : HInst< 22898(outs), 22899(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 22900"if (!$Pv4.new) memb(#$Ii) = $Nt8.new", 22901tc_0fac1eb8, TypeST>, Enc_44215c, AddrModeRel { 22902let Inst{2-2} = 0b1; 22903let Inst{7-7} = 0b1; 22904let Inst{13-11} = 0b100; 22905let Inst{31-18} = 0b10101111101000; 22906let isPredicated = 1; 22907let isPredicatedFalse = 1; 22908let addrMode = Absolute; 22909let accessSize = ByteAccess; 22910let isNVStore = 1; 22911let isPredicatedNew = 1; 22912let isNewValue = 1; 22913let isExtended = 1; 22914let isRestrictNoSlot1Store = 1; 22915let mayStore = 1; 22916let BaseOpcode = "S2_storerbabs"; 22917let CextOpcode = "S2_storerb"; 22918let DecoderNamespace = "MustExtend"; 22919let isExtendable = 1; 22920let opExtendable = 1; 22921let isExtentSigned = 0; 22922let opExtentBits = 6; 22923let opExtentAlign = 0; 22924let opNewValue = 2; 22925} 22926def S4_pstorerbnewfnew_io : HInst< 22927(outs), 22928(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Nt8), 22929"if (!$Pv4.new) memb($Rs32+#$Ii) = $Nt8.new", 22930tc_92240447, TypeV2LDST>, Enc_585242, AddrModeRel { 22931let Inst{2-2} = 0b0; 22932let Inst{12-11} = 0b00; 22933let Inst{31-21} = 0b01000110101; 22934let isPredicated = 1; 22935let isPredicatedFalse = 1; 22936let addrMode = BaseImmOffset; 22937let accessSize = ByteAccess; 22938let isNVStore = 1; 22939let isPredicatedNew = 1; 22940let isNewValue = 1; 22941let isRestrictNoSlot1Store = 1; 22942let mayStore = 1; 22943let BaseOpcode = "S2_storerb_io"; 22944let CextOpcode = "S2_storerb"; 22945let InputType = "imm"; 22946let isExtendable = 1; 22947let opExtendable = 2; 22948let isExtentSigned = 0; 22949let opExtentBits = 6; 22950let opExtentAlign = 0; 22951let opNewValue = 3; 22952} 22953def S4_pstorerbnewfnew_rr : HInst< 22954(outs), 22955(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 22956"if (!$Pv4.new) memb($Rs32+$Ru32<<#$Ii) = $Nt8.new", 22957tc_829d8a86, TypeST>, Enc_47ee5e, AddrModeRel { 22958let Inst{4-3} = 0b00; 22959let Inst{31-21} = 0b00110111101; 22960let isPredicated = 1; 22961let isPredicatedFalse = 1; 22962let addrMode = BaseRegOffset; 22963let accessSize = ByteAccess; 22964let isNVStore = 1; 22965let isPredicatedNew = 1; 22966let isNewValue = 1; 22967let isRestrictNoSlot1Store = 1; 22968let mayStore = 1; 22969let BaseOpcode = "S4_storerb_rr"; 22970let CextOpcode = "S2_storerb"; 22971let InputType = "reg"; 22972let opNewValue = 4; 22973} 22974def S4_pstorerbnewfnew_zomap : HInst< 22975(outs), 22976(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 22977"if (!$Pv4.new) memb($Rs32) = $Nt8.new", 22978tc_92240447, TypeMAPPING> { 22979let isPseudo = 1; 22980let isCodeGenOnly = 1; 22981let opNewValue = 2; 22982} 22983def S4_pstorerbnewt_abs : HInst< 22984(outs), 22985(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 22986"if ($Pv4) memb(#$Ii) = $Nt8.new", 22987tc_cfa0e29b, TypeST>, Enc_44215c, AddrModeRel { 22988let Inst{2-2} = 0b0; 22989let Inst{7-7} = 0b1; 22990let Inst{13-11} = 0b000; 22991let Inst{31-18} = 0b10101111101000; 22992let isPredicated = 1; 22993let addrMode = Absolute; 22994let accessSize = ByteAccess; 22995let isNVStore = 1; 22996let isNewValue = 1; 22997let isExtended = 1; 22998let isRestrictNoSlot1Store = 1; 22999let mayStore = 1; 23000let BaseOpcode = "S2_storerbabs"; 23001let CextOpcode = "S2_storerb"; 23002let DecoderNamespace = "MustExtend"; 23003let isExtendable = 1; 23004let opExtendable = 1; 23005let isExtentSigned = 0; 23006let opExtentBits = 6; 23007let opExtentAlign = 0; 23008let opNewValue = 2; 23009} 23010def S4_pstorerbnewt_rr : HInst< 23011(outs), 23012(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 23013"if ($Pv4) memb($Rs32+$Ru32<<#$Ii) = $Nt8.new", 23014tc_0a6c20ae, TypeST>, Enc_47ee5e, AddrModeRel { 23015let Inst{4-3} = 0b00; 23016let Inst{31-21} = 0b00110100101; 23017let isPredicated = 1; 23018let addrMode = BaseRegOffset; 23019let accessSize = ByteAccess; 23020let isNVStore = 1; 23021let isNewValue = 1; 23022let isRestrictNoSlot1Store = 1; 23023let mayStore = 1; 23024let BaseOpcode = "S4_storerb_rr"; 23025let CextOpcode = "S2_storerb"; 23026let InputType = "reg"; 23027let opNewValue = 4; 23028} 23029def S4_pstorerbnewtnew_abs : HInst< 23030(outs), 23031(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 23032"if ($Pv4.new) memb(#$Ii) = $Nt8.new", 23033tc_0fac1eb8, TypeST>, Enc_44215c, AddrModeRel { 23034let Inst{2-2} = 0b0; 23035let Inst{7-7} = 0b1; 23036let Inst{13-11} = 0b100; 23037let Inst{31-18} = 0b10101111101000; 23038let isPredicated = 1; 23039let addrMode = Absolute; 23040let accessSize = ByteAccess; 23041let isNVStore = 1; 23042let isPredicatedNew = 1; 23043let isNewValue = 1; 23044let isExtended = 1; 23045let isRestrictNoSlot1Store = 1; 23046let mayStore = 1; 23047let BaseOpcode = "S2_storerbabs"; 23048let CextOpcode = "S2_storerb"; 23049let DecoderNamespace = "MustExtend"; 23050let isExtendable = 1; 23051let opExtendable = 1; 23052let isExtentSigned = 0; 23053let opExtentBits = 6; 23054let opExtentAlign = 0; 23055let opNewValue = 2; 23056} 23057def S4_pstorerbnewtnew_io : HInst< 23058(outs), 23059(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Nt8), 23060"if ($Pv4.new) memb($Rs32+#$Ii) = $Nt8.new", 23061tc_92240447, TypeV2LDST>, Enc_585242, AddrModeRel { 23062let Inst{2-2} = 0b0; 23063let Inst{12-11} = 0b00; 23064let Inst{31-21} = 0b01000010101; 23065let isPredicated = 1; 23066let addrMode = BaseImmOffset; 23067let accessSize = ByteAccess; 23068let isNVStore = 1; 23069let isPredicatedNew = 1; 23070let isNewValue = 1; 23071let isRestrictNoSlot1Store = 1; 23072let mayStore = 1; 23073let BaseOpcode = "S2_storerb_io"; 23074let CextOpcode = "S2_storerb"; 23075let InputType = "imm"; 23076let isExtendable = 1; 23077let opExtendable = 2; 23078let isExtentSigned = 0; 23079let opExtentBits = 6; 23080let opExtentAlign = 0; 23081let opNewValue = 3; 23082} 23083def S4_pstorerbnewtnew_rr : HInst< 23084(outs), 23085(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 23086"if ($Pv4.new) memb($Rs32+$Ru32<<#$Ii) = $Nt8.new", 23087tc_829d8a86, TypeST>, Enc_47ee5e, AddrModeRel { 23088let Inst{4-3} = 0b00; 23089let Inst{31-21} = 0b00110110101; 23090let isPredicated = 1; 23091let addrMode = BaseRegOffset; 23092let accessSize = ByteAccess; 23093let isNVStore = 1; 23094let isPredicatedNew = 1; 23095let isNewValue = 1; 23096let isRestrictNoSlot1Store = 1; 23097let mayStore = 1; 23098let BaseOpcode = "S4_storerb_rr"; 23099let CextOpcode = "S2_storerb"; 23100let InputType = "reg"; 23101let opNewValue = 4; 23102} 23103def S4_pstorerbnewtnew_zomap : HInst< 23104(outs), 23105(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 23106"if ($Pv4.new) memb($Rs32) = $Nt8.new", 23107tc_92240447, TypeMAPPING> { 23108let isPseudo = 1; 23109let isCodeGenOnly = 1; 23110let opNewValue = 2; 23111} 23112def S4_pstorerbt_abs : HInst< 23113(outs), 23114(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 23115"if ($Pv4) memb(#$Ii) = $Rt32", 23116tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel { 23117let Inst{2-2} = 0b0; 23118let Inst{7-7} = 0b1; 23119let Inst{13-13} = 0b0; 23120let Inst{31-18} = 0b10101111000000; 23121let isPredicated = 1; 23122let addrMode = Absolute; 23123let accessSize = ByteAccess; 23124let isExtended = 1; 23125let mayStore = 1; 23126let BaseOpcode = "S2_storerbabs"; 23127let CextOpcode = "S2_storerb"; 23128let isNVStorable = 1; 23129let DecoderNamespace = "MustExtend"; 23130let isExtendable = 1; 23131let opExtendable = 1; 23132let isExtentSigned = 0; 23133let opExtentBits = 6; 23134let opExtentAlign = 0; 23135} 23136def S4_pstorerbt_rr : HInst< 23137(outs), 23138(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 23139"if ($Pv4) memb($Rs32+$Ru32<<#$Ii) = $Rt32", 23140tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel { 23141let Inst{31-21} = 0b00110100000; 23142let isPredicated = 1; 23143let addrMode = BaseRegOffset; 23144let accessSize = ByteAccess; 23145let mayStore = 1; 23146let BaseOpcode = "S4_storerb_rr"; 23147let CextOpcode = "S2_storerb"; 23148let InputType = "reg"; 23149let isNVStorable = 1; 23150} 23151def S4_pstorerbtnew_abs : HInst< 23152(outs), 23153(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 23154"if ($Pv4.new) memb(#$Ii) = $Rt32", 23155tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel { 23156let Inst{2-2} = 0b0; 23157let Inst{7-7} = 0b1; 23158let Inst{13-13} = 0b1; 23159let Inst{31-18} = 0b10101111000000; 23160let isPredicated = 1; 23161let addrMode = Absolute; 23162let accessSize = ByteAccess; 23163let isPredicatedNew = 1; 23164let isExtended = 1; 23165let mayStore = 1; 23166let BaseOpcode = "S2_storerbabs"; 23167let CextOpcode = "S2_storerb"; 23168let isNVStorable = 1; 23169let DecoderNamespace = "MustExtend"; 23170let isExtendable = 1; 23171let opExtendable = 1; 23172let isExtentSigned = 0; 23173let opExtentBits = 6; 23174let opExtentAlign = 0; 23175} 23176def S4_pstorerbtnew_io : HInst< 23177(outs), 23178(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32), 23179"if ($Pv4.new) memb($Rs32+#$Ii) = $Rt32", 23180tc_a2b365d2, TypeV2LDST>, Enc_da8d43, AddrModeRel { 23181let Inst{2-2} = 0b0; 23182let Inst{31-21} = 0b01000010000; 23183let isPredicated = 1; 23184let addrMode = BaseImmOffset; 23185let accessSize = ByteAccess; 23186let isPredicatedNew = 1; 23187let mayStore = 1; 23188let BaseOpcode = "S2_storerb_io"; 23189let CextOpcode = "S2_storerb"; 23190let InputType = "imm"; 23191let isNVStorable = 1; 23192let isExtendable = 1; 23193let opExtendable = 2; 23194let isExtentSigned = 0; 23195let opExtentBits = 6; 23196let opExtentAlign = 0; 23197} 23198def S4_pstorerbtnew_rr : HInst< 23199(outs), 23200(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 23201"if ($Pv4.new) memb($Rs32+$Ru32<<#$Ii) = $Rt32", 23202tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel { 23203let Inst{31-21} = 0b00110110000; 23204let isPredicated = 1; 23205let addrMode = BaseRegOffset; 23206let accessSize = ByteAccess; 23207let isPredicatedNew = 1; 23208let mayStore = 1; 23209let BaseOpcode = "S4_storerb_rr"; 23210let CextOpcode = "S2_storerb"; 23211let InputType = "reg"; 23212let isNVStorable = 1; 23213} 23214def S4_pstorerbtnew_zomap : HInst< 23215(outs), 23216(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 23217"if ($Pv4.new) memb($Rs32) = $Rt32", 23218tc_a2b365d2, TypeMAPPING> { 23219let isPseudo = 1; 23220let isCodeGenOnly = 1; 23221} 23222def S4_pstorerdf_abs : HInst< 23223(outs), 23224(ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32), 23225"if (!$Pv4) memd(#$Ii) = $Rtt32", 23226tc_ba9255a6, TypeST>, Enc_50b5ac, AddrModeRel { 23227let Inst{2-2} = 0b1; 23228let Inst{7-7} = 0b1; 23229let Inst{13-13} = 0b0; 23230let Inst{31-18} = 0b10101111110000; 23231let isPredicated = 1; 23232let isPredicatedFalse = 1; 23233let addrMode = Absolute; 23234let accessSize = DoubleWordAccess; 23235let isExtended = 1; 23236let mayStore = 1; 23237let BaseOpcode = "S2_storerdabs"; 23238let CextOpcode = "S2_storerd"; 23239let DecoderNamespace = "MustExtend"; 23240let isExtendable = 1; 23241let opExtendable = 1; 23242let isExtentSigned = 0; 23243let opExtentBits = 6; 23244let opExtentAlign = 0; 23245} 23246def S4_pstorerdf_rr : HInst< 23247(outs), 23248(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32), 23249"if (!$Pv4) memd($Rs32+$Ru32<<#$Ii) = $Rtt32", 23250tc_1fe4ab69, TypeST>, Enc_1a9974, AddrModeRel { 23251let Inst{31-21} = 0b00110101110; 23252let isPredicated = 1; 23253let isPredicatedFalse = 1; 23254let addrMode = BaseRegOffset; 23255let accessSize = DoubleWordAccess; 23256let mayStore = 1; 23257let BaseOpcode = "S2_storerd_rr"; 23258let CextOpcode = "S2_storerd"; 23259let InputType = "reg"; 23260} 23261def S4_pstorerdfnew_abs : HInst< 23262(outs), 23263(ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32), 23264"if (!$Pv4.new) memd(#$Ii) = $Rtt32", 23265tc_bb07f2c5, TypeST>, Enc_50b5ac, AddrModeRel { 23266let Inst{2-2} = 0b1; 23267let Inst{7-7} = 0b1; 23268let Inst{13-13} = 0b1; 23269let Inst{31-18} = 0b10101111110000; 23270let isPredicated = 1; 23271let isPredicatedFalse = 1; 23272let addrMode = Absolute; 23273let accessSize = DoubleWordAccess; 23274let isPredicatedNew = 1; 23275let isExtended = 1; 23276let mayStore = 1; 23277let BaseOpcode = "S2_storerdabs"; 23278let CextOpcode = "S2_storerd"; 23279let DecoderNamespace = "MustExtend"; 23280let isExtendable = 1; 23281let opExtendable = 1; 23282let isExtentSigned = 0; 23283let opExtentBits = 6; 23284let opExtentAlign = 0; 23285} 23286def S4_pstorerdfnew_io : HInst< 23287(outs), 23288(ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32), 23289"if (!$Pv4.new) memd($Rs32+#$Ii) = $Rtt32", 23290tc_a2b365d2, TypeV2LDST>, Enc_57a33e, AddrModeRel { 23291let Inst{2-2} = 0b0; 23292let Inst{31-21} = 0b01000110110; 23293let isPredicated = 1; 23294let isPredicatedFalse = 1; 23295let addrMode = BaseImmOffset; 23296let accessSize = DoubleWordAccess; 23297let isPredicatedNew = 1; 23298let mayStore = 1; 23299let BaseOpcode = "S2_storerd_io"; 23300let CextOpcode = "S2_storerd"; 23301let InputType = "imm"; 23302let isExtendable = 1; 23303let opExtendable = 2; 23304let isExtentSigned = 0; 23305let opExtentBits = 9; 23306let opExtentAlign = 3; 23307} 23308def S4_pstorerdfnew_rr : HInst< 23309(outs), 23310(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32), 23311"if (!$Pv4.new) memd($Rs32+$Ru32<<#$Ii) = $Rtt32", 23312tc_8e82e8ca, TypeST>, Enc_1a9974, AddrModeRel { 23313let Inst{31-21} = 0b00110111110; 23314let isPredicated = 1; 23315let isPredicatedFalse = 1; 23316let addrMode = BaseRegOffset; 23317let accessSize = DoubleWordAccess; 23318let isPredicatedNew = 1; 23319let mayStore = 1; 23320let BaseOpcode = "S2_storerd_rr"; 23321let CextOpcode = "S2_storerd"; 23322let InputType = "reg"; 23323} 23324def S4_pstorerdfnew_zomap : HInst< 23325(outs), 23326(ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32), 23327"if (!$Pv4.new) memd($Rs32) = $Rtt32", 23328tc_a2b365d2, TypeMAPPING> { 23329let isPseudo = 1; 23330let isCodeGenOnly = 1; 23331} 23332def S4_pstorerdt_abs : HInst< 23333(outs), 23334(ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32), 23335"if ($Pv4) memd(#$Ii) = $Rtt32", 23336tc_ba9255a6, TypeST>, Enc_50b5ac, AddrModeRel { 23337let Inst{2-2} = 0b0; 23338let Inst{7-7} = 0b1; 23339let Inst{13-13} = 0b0; 23340let Inst{31-18} = 0b10101111110000; 23341let isPredicated = 1; 23342let addrMode = Absolute; 23343let accessSize = DoubleWordAccess; 23344let isExtended = 1; 23345let mayStore = 1; 23346let BaseOpcode = "S2_storerdabs"; 23347let CextOpcode = "S2_storerd"; 23348let DecoderNamespace = "MustExtend"; 23349let isExtendable = 1; 23350let opExtendable = 1; 23351let isExtentSigned = 0; 23352let opExtentBits = 6; 23353let opExtentAlign = 0; 23354} 23355def S4_pstorerdt_rr : HInst< 23356(outs), 23357(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32), 23358"if ($Pv4) memd($Rs32+$Ru32<<#$Ii) = $Rtt32", 23359tc_1fe4ab69, TypeST>, Enc_1a9974, AddrModeRel { 23360let Inst{31-21} = 0b00110100110; 23361let isPredicated = 1; 23362let addrMode = BaseRegOffset; 23363let accessSize = DoubleWordAccess; 23364let mayStore = 1; 23365let BaseOpcode = "S2_storerd_rr"; 23366let CextOpcode = "S2_storerd"; 23367let InputType = "reg"; 23368} 23369def S4_pstorerdtnew_abs : HInst< 23370(outs), 23371(ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32), 23372"if ($Pv4.new) memd(#$Ii) = $Rtt32", 23373tc_bb07f2c5, TypeST>, Enc_50b5ac, AddrModeRel { 23374let Inst{2-2} = 0b0; 23375let Inst{7-7} = 0b1; 23376let Inst{13-13} = 0b1; 23377let Inst{31-18} = 0b10101111110000; 23378let isPredicated = 1; 23379let addrMode = Absolute; 23380let accessSize = DoubleWordAccess; 23381let isPredicatedNew = 1; 23382let isExtended = 1; 23383let mayStore = 1; 23384let BaseOpcode = "S2_storerdabs"; 23385let CextOpcode = "S2_storerd"; 23386let DecoderNamespace = "MustExtend"; 23387let isExtendable = 1; 23388let opExtendable = 1; 23389let isExtentSigned = 0; 23390let opExtentBits = 6; 23391let opExtentAlign = 0; 23392} 23393def S4_pstorerdtnew_io : HInst< 23394(outs), 23395(ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32), 23396"if ($Pv4.new) memd($Rs32+#$Ii) = $Rtt32", 23397tc_a2b365d2, TypeV2LDST>, Enc_57a33e, AddrModeRel { 23398let Inst{2-2} = 0b0; 23399let Inst{31-21} = 0b01000010110; 23400let isPredicated = 1; 23401let addrMode = BaseImmOffset; 23402let accessSize = DoubleWordAccess; 23403let isPredicatedNew = 1; 23404let mayStore = 1; 23405let BaseOpcode = "S2_storerd_io"; 23406let CextOpcode = "S2_storerd"; 23407let InputType = "imm"; 23408let isExtendable = 1; 23409let opExtendable = 2; 23410let isExtentSigned = 0; 23411let opExtentBits = 9; 23412let opExtentAlign = 3; 23413} 23414def S4_pstorerdtnew_rr : HInst< 23415(outs), 23416(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32), 23417"if ($Pv4.new) memd($Rs32+$Ru32<<#$Ii) = $Rtt32", 23418tc_8e82e8ca, TypeST>, Enc_1a9974, AddrModeRel { 23419let Inst{31-21} = 0b00110110110; 23420let isPredicated = 1; 23421let addrMode = BaseRegOffset; 23422let accessSize = DoubleWordAccess; 23423let isPredicatedNew = 1; 23424let mayStore = 1; 23425let BaseOpcode = "S2_storerd_rr"; 23426let CextOpcode = "S2_storerd"; 23427let InputType = "reg"; 23428} 23429def S4_pstorerdtnew_zomap : HInst< 23430(outs), 23431(ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32), 23432"if ($Pv4.new) memd($Rs32) = $Rtt32", 23433tc_a2b365d2, TypeMAPPING> { 23434let isPseudo = 1; 23435let isCodeGenOnly = 1; 23436} 23437def S4_pstorerff_abs : HInst< 23438(outs), 23439(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 23440"if (!$Pv4) memh(#$Ii) = $Rt32.h", 23441tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel { 23442let Inst{2-2} = 0b1; 23443let Inst{7-7} = 0b1; 23444let Inst{13-13} = 0b0; 23445let Inst{31-18} = 0b10101111011000; 23446let isPredicated = 1; 23447let isPredicatedFalse = 1; 23448let addrMode = Absolute; 23449let accessSize = HalfWordAccess; 23450let isExtended = 1; 23451let mayStore = 1; 23452let BaseOpcode = "S2_storerfabs"; 23453let CextOpcode = "S2_storerf"; 23454let DecoderNamespace = "MustExtend"; 23455let isExtendable = 1; 23456let opExtendable = 1; 23457let isExtentSigned = 0; 23458let opExtentBits = 6; 23459let opExtentAlign = 0; 23460} 23461def S4_pstorerff_rr : HInst< 23462(outs), 23463(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 23464"if (!$Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h", 23465tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel { 23466let Inst{31-21} = 0b00110101011; 23467let isPredicated = 1; 23468let isPredicatedFalse = 1; 23469let addrMode = BaseRegOffset; 23470let accessSize = HalfWordAccess; 23471let mayStore = 1; 23472let BaseOpcode = "S4_storerf_rr"; 23473let CextOpcode = "S2_storerf"; 23474let InputType = "reg"; 23475} 23476def S4_pstorerffnew_abs : HInst< 23477(outs), 23478(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 23479"if (!$Pv4.new) memh(#$Ii) = $Rt32.h", 23480tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel { 23481let Inst{2-2} = 0b1; 23482let Inst{7-7} = 0b1; 23483let Inst{13-13} = 0b1; 23484let Inst{31-18} = 0b10101111011000; 23485let isPredicated = 1; 23486let isPredicatedFalse = 1; 23487let addrMode = Absolute; 23488let accessSize = HalfWordAccess; 23489let isPredicatedNew = 1; 23490let isExtended = 1; 23491let mayStore = 1; 23492let BaseOpcode = "S2_storerfabs"; 23493let CextOpcode = "S2_storerf"; 23494let DecoderNamespace = "MustExtend"; 23495let isExtendable = 1; 23496let opExtendable = 1; 23497let isExtentSigned = 0; 23498let opExtentBits = 6; 23499let opExtentAlign = 0; 23500} 23501def S4_pstorerffnew_io : HInst< 23502(outs), 23503(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 23504"if (!$Pv4.new) memh($Rs32+#$Ii) = $Rt32.h", 23505tc_a2b365d2, TypeV2LDST>, Enc_e8c45e, AddrModeRel { 23506let Inst{2-2} = 0b0; 23507let Inst{31-21} = 0b01000110011; 23508let isPredicated = 1; 23509let isPredicatedFalse = 1; 23510let addrMode = BaseImmOffset; 23511let accessSize = HalfWordAccess; 23512let isPredicatedNew = 1; 23513let mayStore = 1; 23514let BaseOpcode = "S2_storerf_io"; 23515let CextOpcode = "S2_storerf"; 23516let InputType = "imm"; 23517let isExtendable = 1; 23518let opExtendable = 2; 23519let isExtentSigned = 0; 23520let opExtentBits = 7; 23521let opExtentAlign = 1; 23522} 23523def S4_pstorerffnew_rr : HInst< 23524(outs), 23525(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 23526"if (!$Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h", 23527tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel { 23528let Inst{31-21} = 0b00110111011; 23529let isPredicated = 1; 23530let isPredicatedFalse = 1; 23531let addrMode = BaseRegOffset; 23532let accessSize = HalfWordAccess; 23533let isPredicatedNew = 1; 23534let mayStore = 1; 23535let BaseOpcode = "S4_storerf_rr"; 23536let CextOpcode = "S2_storerf"; 23537let InputType = "reg"; 23538} 23539def S4_pstorerffnew_zomap : HInst< 23540(outs), 23541(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 23542"if (!$Pv4.new) memh($Rs32) = $Rt32.h", 23543tc_a2b365d2, TypeMAPPING> { 23544let isPseudo = 1; 23545let isCodeGenOnly = 1; 23546} 23547def S4_pstorerft_abs : HInst< 23548(outs), 23549(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 23550"if ($Pv4) memh(#$Ii) = $Rt32.h", 23551tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel { 23552let Inst{2-2} = 0b0; 23553let Inst{7-7} = 0b1; 23554let Inst{13-13} = 0b0; 23555let Inst{31-18} = 0b10101111011000; 23556let isPredicated = 1; 23557let addrMode = Absolute; 23558let accessSize = HalfWordAccess; 23559let isExtended = 1; 23560let mayStore = 1; 23561let BaseOpcode = "S2_storerfabs"; 23562let CextOpcode = "S2_storerf"; 23563let DecoderNamespace = "MustExtend"; 23564let isExtendable = 1; 23565let opExtendable = 1; 23566let isExtentSigned = 0; 23567let opExtentBits = 6; 23568let opExtentAlign = 0; 23569} 23570def S4_pstorerft_rr : HInst< 23571(outs), 23572(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 23573"if ($Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h", 23574tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel { 23575let Inst{31-21} = 0b00110100011; 23576let isPredicated = 1; 23577let addrMode = BaseRegOffset; 23578let accessSize = HalfWordAccess; 23579let mayStore = 1; 23580let BaseOpcode = "S4_storerf_rr"; 23581let CextOpcode = "S2_storerf"; 23582let InputType = "reg"; 23583} 23584def S4_pstorerftnew_abs : HInst< 23585(outs), 23586(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 23587"if ($Pv4.new) memh(#$Ii) = $Rt32.h", 23588tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel { 23589let Inst{2-2} = 0b0; 23590let Inst{7-7} = 0b1; 23591let Inst{13-13} = 0b1; 23592let Inst{31-18} = 0b10101111011000; 23593let isPredicated = 1; 23594let addrMode = Absolute; 23595let accessSize = HalfWordAccess; 23596let isPredicatedNew = 1; 23597let isExtended = 1; 23598let mayStore = 1; 23599let BaseOpcode = "S2_storerfabs"; 23600let CextOpcode = "S2_storerf"; 23601let DecoderNamespace = "MustExtend"; 23602let isExtendable = 1; 23603let opExtendable = 1; 23604let isExtentSigned = 0; 23605let opExtentBits = 6; 23606let opExtentAlign = 0; 23607} 23608def S4_pstorerftnew_io : HInst< 23609(outs), 23610(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 23611"if ($Pv4.new) memh($Rs32+#$Ii) = $Rt32.h", 23612tc_a2b365d2, TypeV2LDST>, Enc_e8c45e, AddrModeRel { 23613let Inst{2-2} = 0b0; 23614let Inst{31-21} = 0b01000010011; 23615let isPredicated = 1; 23616let addrMode = BaseImmOffset; 23617let accessSize = HalfWordAccess; 23618let isPredicatedNew = 1; 23619let mayStore = 1; 23620let BaseOpcode = "S2_storerf_io"; 23621let CextOpcode = "S2_storerf"; 23622let InputType = "imm"; 23623let isExtendable = 1; 23624let opExtendable = 2; 23625let isExtentSigned = 0; 23626let opExtentBits = 7; 23627let opExtentAlign = 1; 23628} 23629def S4_pstorerftnew_rr : HInst< 23630(outs), 23631(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 23632"if ($Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h", 23633tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel { 23634let Inst{31-21} = 0b00110110011; 23635let isPredicated = 1; 23636let addrMode = BaseRegOffset; 23637let accessSize = HalfWordAccess; 23638let isPredicatedNew = 1; 23639let mayStore = 1; 23640let BaseOpcode = "S4_storerf_rr"; 23641let CextOpcode = "S2_storerf"; 23642let InputType = "reg"; 23643} 23644def S4_pstorerftnew_zomap : HInst< 23645(outs), 23646(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 23647"if ($Pv4.new) memh($Rs32) = $Rt32.h", 23648tc_a2b365d2, TypeMAPPING> { 23649let isPseudo = 1; 23650let isCodeGenOnly = 1; 23651} 23652def S4_pstorerhf_abs : HInst< 23653(outs), 23654(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 23655"if (!$Pv4) memh(#$Ii) = $Rt32", 23656tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel { 23657let Inst{2-2} = 0b1; 23658let Inst{7-7} = 0b1; 23659let Inst{13-13} = 0b0; 23660let Inst{31-18} = 0b10101111010000; 23661let isPredicated = 1; 23662let isPredicatedFalse = 1; 23663let addrMode = Absolute; 23664let accessSize = HalfWordAccess; 23665let isExtended = 1; 23666let mayStore = 1; 23667let BaseOpcode = "S2_storerhabs"; 23668let CextOpcode = "S2_storerh"; 23669let isNVStorable = 1; 23670let DecoderNamespace = "MustExtend"; 23671let isExtendable = 1; 23672let opExtendable = 1; 23673let isExtentSigned = 0; 23674let opExtentBits = 6; 23675let opExtentAlign = 0; 23676} 23677def S4_pstorerhf_rr : HInst< 23678(outs), 23679(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 23680"if (!$Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32", 23681tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel { 23682let Inst{31-21} = 0b00110101010; 23683let isPredicated = 1; 23684let isPredicatedFalse = 1; 23685let addrMode = BaseRegOffset; 23686let accessSize = HalfWordAccess; 23687let mayStore = 1; 23688let BaseOpcode = "S2_storerh_rr"; 23689let CextOpcode = "S2_storerh"; 23690let InputType = "reg"; 23691let isNVStorable = 1; 23692} 23693def S4_pstorerhfnew_abs : HInst< 23694(outs), 23695(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 23696"if (!$Pv4.new) memh(#$Ii) = $Rt32", 23697tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel { 23698let Inst{2-2} = 0b1; 23699let Inst{7-7} = 0b1; 23700let Inst{13-13} = 0b1; 23701let Inst{31-18} = 0b10101111010000; 23702let isPredicated = 1; 23703let isPredicatedFalse = 1; 23704let addrMode = Absolute; 23705let accessSize = HalfWordAccess; 23706let isPredicatedNew = 1; 23707let isExtended = 1; 23708let mayStore = 1; 23709let BaseOpcode = "S2_storerhabs"; 23710let CextOpcode = "S2_storerh"; 23711let isNVStorable = 1; 23712let DecoderNamespace = "MustExtend"; 23713let isExtendable = 1; 23714let opExtendable = 1; 23715let isExtentSigned = 0; 23716let opExtentBits = 6; 23717let opExtentAlign = 0; 23718} 23719def S4_pstorerhfnew_io : HInst< 23720(outs), 23721(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 23722"if (!$Pv4.new) memh($Rs32+#$Ii) = $Rt32", 23723tc_a2b365d2, TypeV2LDST>, Enc_e8c45e, AddrModeRel { 23724let Inst{2-2} = 0b0; 23725let Inst{31-21} = 0b01000110010; 23726let isPredicated = 1; 23727let isPredicatedFalse = 1; 23728let addrMode = BaseImmOffset; 23729let accessSize = HalfWordAccess; 23730let isPredicatedNew = 1; 23731let mayStore = 1; 23732let BaseOpcode = "S2_storerh_io"; 23733let CextOpcode = "S2_storerh"; 23734let InputType = "imm"; 23735let isNVStorable = 1; 23736let isExtendable = 1; 23737let opExtendable = 2; 23738let isExtentSigned = 0; 23739let opExtentBits = 7; 23740let opExtentAlign = 1; 23741} 23742def S4_pstorerhfnew_rr : HInst< 23743(outs), 23744(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 23745"if (!$Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32", 23746tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel { 23747let Inst{31-21} = 0b00110111010; 23748let isPredicated = 1; 23749let isPredicatedFalse = 1; 23750let addrMode = BaseRegOffset; 23751let accessSize = HalfWordAccess; 23752let isPredicatedNew = 1; 23753let mayStore = 1; 23754let BaseOpcode = "S2_storerh_rr"; 23755let CextOpcode = "S2_storerh"; 23756let InputType = "reg"; 23757let isNVStorable = 1; 23758} 23759def S4_pstorerhfnew_zomap : HInst< 23760(outs), 23761(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 23762"if (!$Pv4.new) memh($Rs32) = $Rt32", 23763tc_a2b365d2, TypeMAPPING> { 23764let isPseudo = 1; 23765let isCodeGenOnly = 1; 23766} 23767def S4_pstorerhnewf_abs : HInst< 23768(outs), 23769(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 23770"if (!$Pv4) memh(#$Ii) = $Nt8.new", 23771tc_cfa0e29b, TypeST>, Enc_44215c, AddrModeRel { 23772let Inst{2-2} = 0b1; 23773let Inst{7-7} = 0b1; 23774let Inst{13-11} = 0b001; 23775let Inst{31-18} = 0b10101111101000; 23776let isPredicated = 1; 23777let isPredicatedFalse = 1; 23778let addrMode = Absolute; 23779let accessSize = HalfWordAccess; 23780let isNVStore = 1; 23781let isNewValue = 1; 23782let isExtended = 1; 23783let isRestrictNoSlot1Store = 1; 23784let mayStore = 1; 23785let BaseOpcode = "S2_storerhabs"; 23786let CextOpcode = "S2_storerh"; 23787let DecoderNamespace = "MustExtend"; 23788let isExtendable = 1; 23789let opExtendable = 1; 23790let isExtentSigned = 0; 23791let opExtentBits = 6; 23792let opExtentAlign = 0; 23793let opNewValue = 2; 23794} 23795def S4_pstorerhnewf_rr : HInst< 23796(outs), 23797(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 23798"if (!$Pv4) memh($Rs32+$Ru32<<#$Ii) = $Nt8.new", 23799tc_0a6c20ae, TypeST>, Enc_47ee5e, AddrModeRel { 23800let Inst{4-3} = 0b01; 23801let Inst{31-21} = 0b00110101101; 23802let isPredicated = 1; 23803let isPredicatedFalse = 1; 23804let addrMode = BaseRegOffset; 23805let accessSize = HalfWordAccess; 23806let isNVStore = 1; 23807let isNewValue = 1; 23808let isRestrictNoSlot1Store = 1; 23809let mayStore = 1; 23810let BaseOpcode = "S2_storerh_rr"; 23811let CextOpcode = "S2_storerh"; 23812let InputType = "reg"; 23813let opNewValue = 4; 23814} 23815def S4_pstorerhnewfnew_abs : HInst< 23816(outs), 23817(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 23818"if (!$Pv4.new) memh(#$Ii) = $Nt8.new", 23819tc_0fac1eb8, TypeST>, Enc_44215c, AddrModeRel { 23820let Inst{2-2} = 0b1; 23821let Inst{7-7} = 0b1; 23822let Inst{13-11} = 0b101; 23823let Inst{31-18} = 0b10101111101000; 23824let isPredicated = 1; 23825let isPredicatedFalse = 1; 23826let addrMode = Absolute; 23827let accessSize = HalfWordAccess; 23828let isNVStore = 1; 23829let isPredicatedNew = 1; 23830let isNewValue = 1; 23831let isExtended = 1; 23832let isRestrictNoSlot1Store = 1; 23833let mayStore = 1; 23834let BaseOpcode = "S2_storerhabs"; 23835let CextOpcode = "S2_storerh"; 23836let DecoderNamespace = "MustExtend"; 23837let isExtendable = 1; 23838let opExtendable = 1; 23839let isExtentSigned = 0; 23840let opExtentBits = 6; 23841let opExtentAlign = 0; 23842let opNewValue = 2; 23843} 23844def S4_pstorerhnewfnew_io : HInst< 23845(outs), 23846(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Nt8), 23847"if (!$Pv4.new) memh($Rs32+#$Ii) = $Nt8.new", 23848tc_92240447, TypeV2LDST>, Enc_f44229, AddrModeRel { 23849let Inst{2-2} = 0b0; 23850let Inst{12-11} = 0b01; 23851let Inst{31-21} = 0b01000110101; 23852let isPredicated = 1; 23853let isPredicatedFalse = 1; 23854let addrMode = BaseImmOffset; 23855let accessSize = HalfWordAccess; 23856let isNVStore = 1; 23857let isPredicatedNew = 1; 23858let isNewValue = 1; 23859let isRestrictNoSlot1Store = 1; 23860let mayStore = 1; 23861let BaseOpcode = "S2_storerh_io"; 23862let CextOpcode = "S2_storerh"; 23863let InputType = "imm"; 23864let isExtendable = 1; 23865let opExtendable = 2; 23866let isExtentSigned = 0; 23867let opExtentBits = 7; 23868let opExtentAlign = 1; 23869let opNewValue = 3; 23870} 23871def S4_pstorerhnewfnew_rr : HInst< 23872(outs), 23873(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 23874"if (!$Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Nt8.new", 23875tc_829d8a86, TypeST>, Enc_47ee5e, AddrModeRel { 23876let Inst{4-3} = 0b01; 23877let Inst{31-21} = 0b00110111101; 23878let isPredicated = 1; 23879let isPredicatedFalse = 1; 23880let addrMode = BaseRegOffset; 23881let accessSize = HalfWordAccess; 23882let isNVStore = 1; 23883let isPredicatedNew = 1; 23884let isNewValue = 1; 23885let isRestrictNoSlot1Store = 1; 23886let mayStore = 1; 23887let BaseOpcode = "S2_storerh_rr"; 23888let CextOpcode = "S2_storerh"; 23889let InputType = "reg"; 23890let opNewValue = 4; 23891} 23892def S4_pstorerhnewfnew_zomap : HInst< 23893(outs), 23894(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 23895"if (!$Pv4.new) memh($Rs32) = $Nt8.new", 23896tc_92240447, TypeMAPPING> { 23897let isPseudo = 1; 23898let isCodeGenOnly = 1; 23899let opNewValue = 2; 23900} 23901def S4_pstorerhnewt_abs : HInst< 23902(outs), 23903(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 23904"if ($Pv4) memh(#$Ii) = $Nt8.new", 23905tc_cfa0e29b, TypeST>, Enc_44215c, AddrModeRel { 23906let Inst{2-2} = 0b0; 23907let Inst{7-7} = 0b1; 23908let Inst{13-11} = 0b001; 23909let Inst{31-18} = 0b10101111101000; 23910let isPredicated = 1; 23911let addrMode = Absolute; 23912let accessSize = HalfWordAccess; 23913let isNVStore = 1; 23914let isNewValue = 1; 23915let isExtended = 1; 23916let isRestrictNoSlot1Store = 1; 23917let mayStore = 1; 23918let BaseOpcode = "S2_storerhabs"; 23919let CextOpcode = "S2_storerh"; 23920let DecoderNamespace = "MustExtend"; 23921let isExtendable = 1; 23922let opExtendable = 1; 23923let isExtentSigned = 0; 23924let opExtentBits = 6; 23925let opExtentAlign = 0; 23926let opNewValue = 2; 23927} 23928def S4_pstorerhnewt_rr : HInst< 23929(outs), 23930(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 23931"if ($Pv4) memh($Rs32+$Ru32<<#$Ii) = $Nt8.new", 23932tc_0a6c20ae, TypeST>, Enc_47ee5e, AddrModeRel { 23933let Inst{4-3} = 0b01; 23934let Inst{31-21} = 0b00110100101; 23935let isPredicated = 1; 23936let addrMode = BaseRegOffset; 23937let accessSize = HalfWordAccess; 23938let isNVStore = 1; 23939let isNewValue = 1; 23940let isRestrictNoSlot1Store = 1; 23941let mayStore = 1; 23942let BaseOpcode = "S2_storerh_rr"; 23943let CextOpcode = "S2_storerh"; 23944let InputType = "reg"; 23945let opNewValue = 4; 23946} 23947def S4_pstorerhnewtnew_abs : HInst< 23948(outs), 23949(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 23950"if ($Pv4.new) memh(#$Ii) = $Nt8.new", 23951tc_0fac1eb8, TypeST>, Enc_44215c, AddrModeRel { 23952let Inst{2-2} = 0b0; 23953let Inst{7-7} = 0b1; 23954let Inst{13-11} = 0b101; 23955let Inst{31-18} = 0b10101111101000; 23956let isPredicated = 1; 23957let addrMode = Absolute; 23958let accessSize = HalfWordAccess; 23959let isNVStore = 1; 23960let isPredicatedNew = 1; 23961let isNewValue = 1; 23962let isExtended = 1; 23963let isRestrictNoSlot1Store = 1; 23964let mayStore = 1; 23965let BaseOpcode = "S2_storerhabs"; 23966let CextOpcode = "S2_storerh"; 23967let DecoderNamespace = "MustExtend"; 23968let isExtendable = 1; 23969let opExtendable = 1; 23970let isExtentSigned = 0; 23971let opExtentBits = 6; 23972let opExtentAlign = 0; 23973let opNewValue = 2; 23974} 23975def S4_pstorerhnewtnew_io : HInst< 23976(outs), 23977(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Nt8), 23978"if ($Pv4.new) memh($Rs32+#$Ii) = $Nt8.new", 23979tc_92240447, TypeV2LDST>, Enc_f44229, AddrModeRel { 23980let Inst{2-2} = 0b0; 23981let Inst{12-11} = 0b01; 23982let Inst{31-21} = 0b01000010101; 23983let isPredicated = 1; 23984let addrMode = BaseImmOffset; 23985let accessSize = HalfWordAccess; 23986let isNVStore = 1; 23987let isPredicatedNew = 1; 23988let isNewValue = 1; 23989let isRestrictNoSlot1Store = 1; 23990let mayStore = 1; 23991let BaseOpcode = "S2_storerh_io"; 23992let CextOpcode = "S2_storerh"; 23993let InputType = "imm"; 23994let isExtendable = 1; 23995let opExtendable = 2; 23996let isExtentSigned = 0; 23997let opExtentBits = 7; 23998let opExtentAlign = 1; 23999let opNewValue = 3; 24000} 24001def S4_pstorerhnewtnew_rr : HInst< 24002(outs), 24003(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 24004"if ($Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Nt8.new", 24005tc_829d8a86, TypeST>, Enc_47ee5e, AddrModeRel { 24006let Inst{4-3} = 0b01; 24007let Inst{31-21} = 0b00110110101; 24008let isPredicated = 1; 24009let addrMode = BaseRegOffset; 24010let accessSize = HalfWordAccess; 24011let isNVStore = 1; 24012let isPredicatedNew = 1; 24013let isNewValue = 1; 24014let isRestrictNoSlot1Store = 1; 24015let mayStore = 1; 24016let BaseOpcode = "S2_storerh_rr"; 24017let CextOpcode = "S2_storerh"; 24018let InputType = "reg"; 24019let opNewValue = 4; 24020} 24021def S4_pstorerhnewtnew_zomap : HInst< 24022(outs), 24023(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 24024"if ($Pv4.new) memh($Rs32) = $Nt8.new", 24025tc_92240447, TypeMAPPING> { 24026let isPseudo = 1; 24027let isCodeGenOnly = 1; 24028let opNewValue = 2; 24029} 24030def S4_pstorerht_abs : HInst< 24031(outs), 24032(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 24033"if ($Pv4) memh(#$Ii) = $Rt32", 24034tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel { 24035let Inst{2-2} = 0b0; 24036let Inst{7-7} = 0b1; 24037let Inst{13-13} = 0b0; 24038let Inst{31-18} = 0b10101111010000; 24039let isPredicated = 1; 24040let addrMode = Absolute; 24041let accessSize = HalfWordAccess; 24042let isExtended = 1; 24043let mayStore = 1; 24044let BaseOpcode = "S2_storerhabs"; 24045let CextOpcode = "S2_storerh"; 24046let isNVStorable = 1; 24047let DecoderNamespace = "MustExtend"; 24048let isExtendable = 1; 24049let opExtendable = 1; 24050let isExtentSigned = 0; 24051let opExtentBits = 6; 24052let opExtentAlign = 0; 24053} 24054def S4_pstorerht_rr : HInst< 24055(outs), 24056(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 24057"if ($Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32", 24058tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel { 24059let Inst{31-21} = 0b00110100010; 24060let isPredicated = 1; 24061let addrMode = BaseRegOffset; 24062let accessSize = HalfWordAccess; 24063let mayStore = 1; 24064let BaseOpcode = "S2_storerh_rr"; 24065let CextOpcode = "S2_storerh"; 24066let InputType = "reg"; 24067let isNVStorable = 1; 24068} 24069def S4_pstorerhtnew_abs : HInst< 24070(outs), 24071(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 24072"if ($Pv4.new) memh(#$Ii) = $Rt32", 24073tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel { 24074let Inst{2-2} = 0b0; 24075let Inst{7-7} = 0b1; 24076let Inst{13-13} = 0b1; 24077let Inst{31-18} = 0b10101111010000; 24078let isPredicated = 1; 24079let addrMode = Absolute; 24080let accessSize = HalfWordAccess; 24081let isPredicatedNew = 1; 24082let isExtended = 1; 24083let mayStore = 1; 24084let BaseOpcode = "S2_storerhabs"; 24085let CextOpcode = "S2_storerh"; 24086let isNVStorable = 1; 24087let DecoderNamespace = "MustExtend"; 24088let isExtendable = 1; 24089let opExtendable = 1; 24090let isExtentSigned = 0; 24091let opExtentBits = 6; 24092let opExtentAlign = 0; 24093} 24094def S4_pstorerhtnew_io : HInst< 24095(outs), 24096(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), 24097"if ($Pv4.new) memh($Rs32+#$Ii) = $Rt32", 24098tc_a2b365d2, TypeV2LDST>, Enc_e8c45e, AddrModeRel { 24099let Inst{2-2} = 0b0; 24100let Inst{31-21} = 0b01000010010; 24101let isPredicated = 1; 24102let addrMode = BaseImmOffset; 24103let accessSize = HalfWordAccess; 24104let isPredicatedNew = 1; 24105let mayStore = 1; 24106let BaseOpcode = "S2_storerh_io"; 24107let CextOpcode = "S2_storerh"; 24108let InputType = "imm"; 24109let isNVStorable = 1; 24110let isExtendable = 1; 24111let opExtendable = 2; 24112let isExtentSigned = 0; 24113let opExtentBits = 7; 24114let opExtentAlign = 1; 24115} 24116def S4_pstorerhtnew_rr : HInst< 24117(outs), 24118(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 24119"if ($Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32", 24120tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel { 24121let Inst{31-21} = 0b00110110010; 24122let isPredicated = 1; 24123let addrMode = BaseRegOffset; 24124let accessSize = HalfWordAccess; 24125let isPredicatedNew = 1; 24126let mayStore = 1; 24127let BaseOpcode = "S2_storerh_rr"; 24128let CextOpcode = "S2_storerh"; 24129let InputType = "reg"; 24130let isNVStorable = 1; 24131} 24132def S4_pstorerhtnew_zomap : HInst< 24133(outs), 24134(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 24135"if ($Pv4.new) memh($Rs32) = $Rt32", 24136tc_a2b365d2, TypeMAPPING> { 24137let isPseudo = 1; 24138let isCodeGenOnly = 1; 24139} 24140def S4_pstorerif_abs : HInst< 24141(outs), 24142(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 24143"if (!$Pv4) memw(#$Ii) = $Rt32", 24144tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel { 24145let Inst{2-2} = 0b1; 24146let Inst{7-7} = 0b1; 24147let Inst{13-13} = 0b0; 24148let Inst{31-18} = 0b10101111100000; 24149let isPredicated = 1; 24150let isPredicatedFalse = 1; 24151let addrMode = Absolute; 24152let accessSize = WordAccess; 24153let isExtended = 1; 24154let mayStore = 1; 24155let BaseOpcode = "S2_storeriabs"; 24156let CextOpcode = "S2_storeri"; 24157let isNVStorable = 1; 24158let DecoderNamespace = "MustExtend"; 24159let isExtendable = 1; 24160let opExtendable = 1; 24161let isExtentSigned = 0; 24162let opExtentBits = 6; 24163let opExtentAlign = 0; 24164} 24165def S4_pstorerif_rr : HInst< 24166(outs), 24167(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 24168"if (!$Pv4) memw($Rs32+$Ru32<<#$Ii) = $Rt32", 24169tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel { 24170let Inst{31-21} = 0b00110101100; 24171let isPredicated = 1; 24172let isPredicatedFalse = 1; 24173let addrMode = BaseRegOffset; 24174let accessSize = WordAccess; 24175let mayStore = 1; 24176let BaseOpcode = "S2_storeri_rr"; 24177let CextOpcode = "S2_storeri"; 24178let InputType = "reg"; 24179let isNVStorable = 1; 24180} 24181def S4_pstorerifnew_abs : HInst< 24182(outs), 24183(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 24184"if (!$Pv4.new) memw(#$Ii) = $Rt32", 24185tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel { 24186let Inst{2-2} = 0b1; 24187let Inst{7-7} = 0b1; 24188let Inst{13-13} = 0b1; 24189let Inst{31-18} = 0b10101111100000; 24190let isPredicated = 1; 24191let isPredicatedFalse = 1; 24192let addrMode = Absolute; 24193let accessSize = WordAccess; 24194let isPredicatedNew = 1; 24195let isExtended = 1; 24196let mayStore = 1; 24197let BaseOpcode = "S2_storeriabs"; 24198let CextOpcode = "S2_storeri"; 24199let isNVStorable = 1; 24200let DecoderNamespace = "MustExtend"; 24201let isExtendable = 1; 24202let opExtendable = 1; 24203let isExtentSigned = 0; 24204let opExtentBits = 6; 24205let opExtentAlign = 0; 24206} 24207def S4_pstorerifnew_io : HInst< 24208(outs), 24209(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32), 24210"if (!$Pv4.new) memw($Rs32+#$Ii) = $Rt32", 24211tc_a2b365d2, TypeV2LDST>, Enc_397f23, AddrModeRel { 24212let Inst{2-2} = 0b0; 24213let Inst{31-21} = 0b01000110100; 24214let isPredicated = 1; 24215let isPredicatedFalse = 1; 24216let addrMode = BaseImmOffset; 24217let accessSize = WordAccess; 24218let isPredicatedNew = 1; 24219let mayStore = 1; 24220let BaseOpcode = "S2_storeri_io"; 24221let CextOpcode = "S2_storeri"; 24222let InputType = "imm"; 24223let isNVStorable = 1; 24224let isExtendable = 1; 24225let opExtendable = 2; 24226let isExtentSigned = 0; 24227let opExtentBits = 8; 24228let opExtentAlign = 2; 24229} 24230def S4_pstorerifnew_rr : HInst< 24231(outs), 24232(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 24233"if (!$Pv4.new) memw($Rs32+$Ru32<<#$Ii) = $Rt32", 24234tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel { 24235let Inst{31-21} = 0b00110111100; 24236let isPredicated = 1; 24237let isPredicatedFalse = 1; 24238let addrMode = BaseRegOffset; 24239let accessSize = WordAccess; 24240let isPredicatedNew = 1; 24241let mayStore = 1; 24242let BaseOpcode = "S2_storeri_rr"; 24243let CextOpcode = "S2_storeri"; 24244let InputType = "reg"; 24245let isNVStorable = 1; 24246} 24247def S4_pstorerifnew_zomap : HInst< 24248(outs), 24249(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 24250"if (!$Pv4.new) memw($Rs32) = $Rt32", 24251tc_a2b365d2, TypeMAPPING> { 24252let isPseudo = 1; 24253let isCodeGenOnly = 1; 24254} 24255def S4_pstorerinewf_abs : HInst< 24256(outs), 24257(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 24258"if (!$Pv4) memw(#$Ii) = $Nt8.new", 24259tc_cfa0e29b, TypeST>, Enc_44215c, AddrModeRel { 24260let Inst{2-2} = 0b1; 24261let Inst{7-7} = 0b1; 24262let Inst{13-11} = 0b010; 24263let Inst{31-18} = 0b10101111101000; 24264let isPredicated = 1; 24265let isPredicatedFalse = 1; 24266let addrMode = Absolute; 24267let accessSize = WordAccess; 24268let isNVStore = 1; 24269let isNewValue = 1; 24270let isExtended = 1; 24271let isRestrictNoSlot1Store = 1; 24272let mayStore = 1; 24273let BaseOpcode = "S2_storeriabs"; 24274let CextOpcode = "S2_storeri"; 24275let DecoderNamespace = "MustExtend"; 24276let isExtendable = 1; 24277let opExtendable = 1; 24278let isExtentSigned = 0; 24279let opExtentBits = 6; 24280let opExtentAlign = 0; 24281let opNewValue = 2; 24282} 24283def S4_pstorerinewf_rr : HInst< 24284(outs), 24285(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 24286"if (!$Pv4) memw($Rs32+$Ru32<<#$Ii) = $Nt8.new", 24287tc_0a6c20ae, TypeST>, Enc_47ee5e, AddrModeRel { 24288let Inst{4-3} = 0b10; 24289let Inst{31-21} = 0b00110101101; 24290let isPredicated = 1; 24291let isPredicatedFalse = 1; 24292let addrMode = BaseRegOffset; 24293let accessSize = WordAccess; 24294let isNVStore = 1; 24295let isNewValue = 1; 24296let isRestrictNoSlot1Store = 1; 24297let mayStore = 1; 24298let BaseOpcode = "S2_storeri_rr"; 24299let CextOpcode = "S2_storeri"; 24300let InputType = "reg"; 24301let opNewValue = 4; 24302} 24303def S4_pstorerinewfnew_abs : HInst< 24304(outs), 24305(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 24306"if (!$Pv4.new) memw(#$Ii) = $Nt8.new", 24307tc_0fac1eb8, TypeST>, Enc_44215c, AddrModeRel { 24308let Inst{2-2} = 0b1; 24309let Inst{7-7} = 0b1; 24310let Inst{13-11} = 0b110; 24311let Inst{31-18} = 0b10101111101000; 24312let isPredicated = 1; 24313let isPredicatedFalse = 1; 24314let addrMode = Absolute; 24315let accessSize = WordAccess; 24316let isNVStore = 1; 24317let isPredicatedNew = 1; 24318let isNewValue = 1; 24319let isExtended = 1; 24320let isRestrictNoSlot1Store = 1; 24321let mayStore = 1; 24322let BaseOpcode = "S2_storeriabs"; 24323let CextOpcode = "S2_storeri"; 24324let DecoderNamespace = "MustExtend"; 24325let isExtendable = 1; 24326let opExtendable = 1; 24327let isExtentSigned = 0; 24328let opExtentBits = 6; 24329let opExtentAlign = 0; 24330let opNewValue = 2; 24331} 24332def S4_pstorerinewfnew_io : HInst< 24333(outs), 24334(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Nt8), 24335"if (!$Pv4.new) memw($Rs32+#$Ii) = $Nt8.new", 24336tc_92240447, TypeV2LDST>, Enc_8dbdfe, AddrModeRel { 24337let Inst{2-2} = 0b0; 24338let Inst{12-11} = 0b10; 24339let Inst{31-21} = 0b01000110101; 24340let isPredicated = 1; 24341let isPredicatedFalse = 1; 24342let addrMode = BaseImmOffset; 24343let accessSize = WordAccess; 24344let isNVStore = 1; 24345let isPredicatedNew = 1; 24346let isNewValue = 1; 24347let isRestrictNoSlot1Store = 1; 24348let mayStore = 1; 24349let BaseOpcode = "S2_storeri_io"; 24350let CextOpcode = "S2_storeri"; 24351let InputType = "imm"; 24352let isExtendable = 1; 24353let opExtendable = 2; 24354let isExtentSigned = 0; 24355let opExtentBits = 8; 24356let opExtentAlign = 2; 24357let opNewValue = 3; 24358} 24359def S4_pstorerinewfnew_rr : HInst< 24360(outs), 24361(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 24362"if (!$Pv4.new) memw($Rs32+$Ru32<<#$Ii) = $Nt8.new", 24363tc_829d8a86, TypeST>, Enc_47ee5e, AddrModeRel { 24364let Inst{4-3} = 0b10; 24365let Inst{31-21} = 0b00110111101; 24366let isPredicated = 1; 24367let isPredicatedFalse = 1; 24368let addrMode = BaseRegOffset; 24369let accessSize = WordAccess; 24370let isNVStore = 1; 24371let isPredicatedNew = 1; 24372let isNewValue = 1; 24373let isRestrictNoSlot1Store = 1; 24374let mayStore = 1; 24375let BaseOpcode = "S2_storeri_rr"; 24376let CextOpcode = "S2_storeri"; 24377let InputType = "reg"; 24378let opNewValue = 4; 24379} 24380def S4_pstorerinewfnew_zomap : HInst< 24381(outs), 24382(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 24383"if (!$Pv4.new) memw($Rs32) = $Nt8.new", 24384tc_92240447, TypeMAPPING> { 24385let isPseudo = 1; 24386let isCodeGenOnly = 1; 24387let opNewValue = 2; 24388} 24389def S4_pstorerinewt_abs : HInst< 24390(outs), 24391(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 24392"if ($Pv4) memw(#$Ii) = $Nt8.new", 24393tc_cfa0e29b, TypeST>, Enc_44215c, AddrModeRel { 24394let Inst{2-2} = 0b0; 24395let Inst{7-7} = 0b1; 24396let Inst{13-11} = 0b010; 24397let Inst{31-18} = 0b10101111101000; 24398let isPredicated = 1; 24399let addrMode = Absolute; 24400let accessSize = WordAccess; 24401let isNVStore = 1; 24402let isNewValue = 1; 24403let isExtended = 1; 24404let isRestrictNoSlot1Store = 1; 24405let mayStore = 1; 24406let BaseOpcode = "S2_storeriabs"; 24407let CextOpcode = "S2_storeri"; 24408let DecoderNamespace = "MustExtend"; 24409let isExtendable = 1; 24410let opExtendable = 1; 24411let isExtentSigned = 0; 24412let opExtentBits = 6; 24413let opExtentAlign = 0; 24414let opNewValue = 2; 24415} 24416def S4_pstorerinewt_rr : HInst< 24417(outs), 24418(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 24419"if ($Pv4) memw($Rs32+$Ru32<<#$Ii) = $Nt8.new", 24420tc_0a6c20ae, TypeST>, Enc_47ee5e, AddrModeRel { 24421let Inst{4-3} = 0b10; 24422let Inst{31-21} = 0b00110100101; 24423let isPredicated = 1; 24424let addrMode = BaseRegOffset; 24425let accessSize = WordAccess; 24426let isNVStore = 1; 24427let isNewValue = 1; 24428let isRestrictNoSlot1Store = 1; 24429let mayStore = 1; 24430let BaseOpcode = "S2_storeri_rr"; 24431let CextOpcode = "S2_storeri"; 24432let InputType = "reg"; 24433let opNewValue = 4; 24434} 24435def S4_pstorerinewtnew_abs : HInst< 24436(outs), 24437(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8), 24438"if ($Pv4.new) memw(#$Ii) = $Nt8.new", 24439tc_0fac1eb8, TypeST>, Enc_44215c, AddrModeRel { 24440let Inst{2-2} = 0b0; 24441let Inst{7-7} = 0b1; 24442let Inst{13-11} = 0b110; 24443let Inst{31-18} = 0b10101111101000; 24444let isPredicated = 1; 24445let addrMode = Absolute; 24446let accessSize = WordAccess; 24447let isNVStore = 1; 24448let isPredicatedNew = 1; 24449let isNewValue = 1; 24450let isExtended = 1; 24451let isRestrictNoSlot1Store = 1; 24452let mayStore = 1; 24453let BaseOpcode = "S2_storeriabs"; 24454let CextOpcode = "S2_storeri"; 24455let DecoderNamespace = "MustExtend"; 24456let isExtendable = 1; 24457let opExtendable = 1; 24458let isExtentSigned = 0; 24459let opExtentBits = 6; 24460let opExtentAlign = 0; 24461let opNewValue = 2; 24462} 24463def S4_pstorerinewtnew_io : HInst< 24464(outs), 24465(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Nt8), 24466"if ($Pv4.new) memw($Rs32+#$Ii) = $Nt8.new", 24467tc_92240447, TypeV2LDST>, Enc_8dbdfe, AddrModeRel { 24468let Inst{2-2} = 0b0; 24469let Inst{12-11} = 0b10; 24470let Inst{31-21} = 0b01000010101; 24471let isPredicated = 1; 24472let addrMode = BaseImmOffset; 24473let accessSize = WordAccess; 24474let isNVStore = 1; 24475let isPredicatedNew = 1; 24476let isNewValue = 1; 24477let isRestrictNoSlot1Store = 1; 24478let mayStore = 1; 24479let BaseOpcode = "S2_storeri_io"; 24480let CextOpcode = "S2_storeri"; 24481let InputType = "imm"; 24482let isExtendable = 1; 24483let opExtendable = 2; 24484let isExtentSigned = 0; 24485let opExtentBits = 8; 24486let opExtentAlign = 2; 24487let opNewValue = 3; 24488} 24489def S4_pstorerinewtnew_rr : HInst< 24490(outs), 24491(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 24492"if ($Pv4.new) memw($Rs32+$Ru32<<#$Ii) = $Nt8.new", 24493tc_829d8a86, TypeST>, Enc_47ee5e, AddrModeRel { 24494let Inst{4-3} = 0b10; 24495let Inst{31-21} = 0b00110110101; 24496let isPredicated = 1; 24497let addrMode = BaseRegOffset; 24498let accessSize = WordAccess; 24499let isNVStore = 1; 24500let isPredicatedNew = 1; 24501let isNewValue = 1; 24502let isRestrictNoSlot1Store = 1; 24503let mayStore = 1; 24504let BaseOpcode = "S2_storeri_rr"; 24505let CextOpcode = "S2_storeri"; 24506let InputType = "reg"; 24507let opNewValue = 4; 24508} 24509def S4_pstorerinewtnew_zomap : HInst< 24510(outs), 24511(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8), 24512"if ($Pv4.new) memw($Rs32) = $Nt8.new", 24513tc_92240447, TypeMAPPING> { 24514let isPseudo = 1; 24515let isCodeGenOnly = 1; 24516let opNewValue = 2; 24517} 24518def S4_pstorerit_abs : HInst< 24519(outs), 24520(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 24521"if ($Pv4) memw(#$Ii) = $Rt32", 24522tc_ba9255a6, TypeST>, Enc_1cf4ca, AddrModeRel { 24523let Inst{2-2} = 0b0; 24524let Inst{7-7} = 0b1; 24525let Inst{13-13} = 0b0; 24526let Inst{31-18} = 0b10101111100000; 24527let isPredicated = 1; 24528let addrMode = Absolute; 24529let accessSize = WordAccess; 24530let isExtended = 1; 24531let mayStore = 1; 24532let BaseOpcode = "S2_storeriabs"; 24533let CextOpcode = "S2_storeri"; 24534let isNVStorable = 1; 24535let DecoderNamespace = "MustExtend"; 24536let isExtendable = 1; 24537let opExtendable = 1; 24538let isExtentSigned = 0; 24539let opExtentBits = 6; 24540let opExtentAlign = 0; 24541} 24542def S4_pstorerit_rr : HInst< 24543(outs), 24544(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 24545"if ($Pv4) memw($Rs32+$Ru32<<#$Ii) = $Rt32", 24546tc_1fe4ab69, TypeST>, Enc_6339d5, AddrModeRel { 24547let Inst{31-21} = 0b00110100100; 24548let isPredicated = 1; 24549let addrMode = BaseRegOffset; 24550let accessSize = WordAccess; 24551let mayStore = 1; 24552let BaseOpcode = "S2_storeri_rr"; 24553let CextOpcode = "S2_storeri"; 24554let InputType = "reg"; 24555let isNVStorable = 1; 24556} 24557def S4_pstoreritnew_abs : HInst< 24558(outs), 24559(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), 24560"if ($Pv4.new) memw(#$Ii) = $Rt32", 24561tc_bb07f2c5, TypeST>, Enc_1cf4ca, AddrModeRel { 24562let Inst{2-2} = 0b0; 24563let Inst{7-7} = 0b1; 24564let Inst{13-13} = 0b1; 24565let Inst{31-18} = 0b10101111100000; 24566let isPredicated = 1; 24567let addrMode = Absolute; 24568let accessSize = WordAccess; 24569let isPredicatedNew = 1; 24570let isExtended = 1; 24571let mayStore = 1; 24572let BaseOpcode = "S2_storeriabs"; 24573let CextOpcode = "S2_storeri"; 24574let isNVStorable = 1; 24575let DecoderNamespace = "MustExtend"; 24576let isExtendable = 1; 24577let opExtendable = 1; 24578let isExtentSigned = 0; 24579let opExtentBits = 6; 24580let opExtentAlign = 0; 24581} 24582def S4_pstoreritnew_io : HInst< 24583(outs), 24584(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32), 24585"if ($Pv4.new) memw($Rs32+#$Ii) = $Rt32", 24586tc_a2b365d2, TypeV2LDST>, Enc_397f23, AddrModeRel { 24587let Inst{2-2} = 0b0; 24588let Inst{31-21} = 0b01000010100; 24589let isPredicated = 1; 24590let addrMode = BaseImmOffset; 24591let accessSize = WordAccess; 24592let isPredicatedNew = 1; 24593let mayStore = 1; 24594let BaseOpcode = "S2_storeri_io"; 24595let CextOpcode = "S2_storeri"; 24596let InputType = "imm"; 24597let isNVStorable = 1; 24598let isExtendable = 1; 24599let opExtendable = 2; 24600let isExtentSigned = 0; 24601let opExtentBits = 8; 24602let opExtentAlign = 2; 24603} 24604def S4_pstoreritnew_rr : HInst< 24605(outs), 24606(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 24607"if ($Pv4.new) memw($Rs32+$Ru32<<#$Ii) = $Rt32", 24608tc_8e82e8ca, TypeST>, Enc_6339d5, AddrModeRel { 24609let Inst{31-21} = 0b00110110100; 24610let isPredicated = 1; 24611let addrMode = BaseRegOffset; 24612let accessSize = WordAccess; 24613let isPredicatedNew = 1; 24614let mayStore = 1; 24615let BaseOpcode = "S2_storeri_rr"; 24616let CextOpcode = "S2_storeri"; 24617let InputType = "reg"; 24618let isNVStorable = 1; 24619} 24620def S4_pstoreritnew_zomap : HInst< 24621(outs), 24622(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), 24623"if ($Pv4.new) memw($Rs32) = $Rt32", 24624tc_a2b365d2, TypeMAPPING> { 24625let isPseudo = 1; 24626let isCodeGenOnly = 1; 24627} 24628def S4_stored_locked : HInst< 24629(outs PredRegs:$Pd4), 24630(ins IntRegs:$Rs32, DoubleRegs:$Rtt32), 24631"memd_locked($Rs32,$Pd4) = $Rtt32", 24632tc_6f42bc60, TypeST>, Enc_d7dc10 { 24633let Inst{7-2} = 0b000000; 24634let Inst{13-13} = 0b0; 24635let Inst{31-21} = 0b10100000111; 24636let accessSize = DoubleWordAccess; 24637let isPredicateLate = 1; 24638let isSoloAX = 1; 24639let mayStore = 1; 24640} 24641def S4_stored_rl_at_vi : HInst< 24642(outs), 24643(ins IntRegs:$Rs32, DoubleRegs:$Rtt32), 24644"memd_rl($Rs32):at = $Rtt32", 24645tc_7af3a37e, TypeST>, Enc_e6abcf, Requires<[HasV68]> { 24646let Inst{7-2} = 0b000010; 24647let Inst{13-13} = 0b0; 24648let Inst{31-21} = 0b10100000111; 24649let accessSize = DoubleWordAccess; 24650let isSolo = 1; 24651let mayStore = 1; 24652} 24653def S4_stored_rl_st_vi : HInst< 24654(outs), 24655(ins IntRegs:$Rs32, DoubleRegs:$Rtt32), 24656"memd_rl($Rs32):st = $Rtt32", 24657tc_7af3a37e, TypeST>, Enc_e6abcf, Requires<[HasV68]> { 24658let Inst{7-2} = 0b001010; 24659let Inst{13-13} = 0b0; 24660let Inst{31-21} = 0b10100000111; 24661let accessSize = DoubleWordAccess; 24662let isSolo = 1; 24663let mayStore = 1; 24664} 24665def S4_storeirb_io : HInst< 24666(outs), 24667(ins IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II), 24668"memb($Rs32+#$Ii) = #$II", 24669tc_7c31e19a, TypeST>, Enc_8203bb, PredNewRel { 24670let Inst{31-21} = 0b00111100000; 24671let addrMode = BaseImmOffset; 24672let accessSize = ByteAccess; 24673let mayStore = 1; 24674let BaseOpcode = "S4_storeirb_io"; 24675let CextOpcode = "S2_storerb"; 24676let InputType = "imm"; 24677let isPredicable = 1; 24678let isExtendable = 1; 24679let opExtendable = 2; 24680let isExtentSigned = 1; 24681let opExtentBits = 8; 24682let opExtentAlign = 0; 24683} 24684def S4_storeirb_zomap : HInst< 24685(outs), 24686(ins IntRegs:$Rs32, s8_0Imm:$II), 24687"memb($Rs32) = #$II", 24688tc_7c31e19a, TypeMAPPING> { 24689let isPseudo = 1; 24690let isCodeGenOnly = 1; 24691} 24692def S4_storeirbf_io : HInst< 24693(outs), 24694(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II), 24695"if (!$Pv4) memb($Rs32+#$Ii) = #$II", 24696tc_d03278fd, TypeST>, Enc_d7a65e, PredNewRel { 24697let Inst{31-21} = 0b00111000100; 24698let isPredicated = 1; 24699let isPredicatedFalse = 1; 24700let addrMode = BaseImmOffset; 24701let accessSize = ByteAccess; 24702let mayStore = 1; 24703let BaseOpcode = "S4_storeirb_io"; 24704let CextOpcode = "S2_storerb"; 24705let InputType = "imm"; 24706let isExtendable = 1; 24707let opExtendable = 3; 24708let isExtentSigned = 1; 24709let opExtentBits = 6; 24710let opExtentAlign = 0; 24711} 24712def S4_storeirbf_zomap : HInst< 24713(outs), 24714(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 24715"if (!$Pv4) memb($Rs32) = #$II", 24716tc_d03278fd, TypeMAPPING> { 24717let isPseudo = 1; 24718let isCodeGenOnly = 1; 24719} 24720def S4_storeirbfnew_io : HInst< 24721(outs), 24722(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II), 24723"if (!$Pv4.new) memb($Rs32+#$Ii) = #$II", 24724tc_65cbd974, TypeST>, Enc_d7a65e, PredNewRel { 24725let Inst{31-21} = 0b00111001100; 24726let isPredicated = 1; 24727let isPredicatedFalse = 1; 24728let addrMode = BaseImmOffset; 24729let accessSize = ByteAccess; 24730let isPredicatedNew = 1; 24731let mayStore = 1; 24732let BaseOpcode = "S4_storeirb_io"; 24733let CextOpcode = "S2_storerb"; 24734let InputType = "imm"; 24735let isExtendable = 1; 24736let opExtendable = 3; 24737let isExtentSigned = 1; 24738let opExtentBits = 6; 24739let opExtentAlign = 0; 24740} 24741def S4_storeirbfnew_zomap : HInst< 24742(outs), 24743(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 24744"if (!$Pv4.new) memb($Rs32) = #$II", 24745tc_65cbd974, TypeMAPPING> { 24746let isPseudo = 1; 24747let isCodeGenOnly = 1; 24748} 24749def S4_storeirbt_io : HInst< 24750(outs), 24751(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II), 24752"if ($Pv4) memb($Rs32+#$Ii) = #$II", 24753tc_d03278fd, TypeST>, Enc_d7a65e, PredNewRel { 24754let Inst{31-21} = 0b00111000000; 24755let isPredicated = 1; 24756let addrMode = BaseImmOffset; 24757let accessSize = ByteAccess; 24758let mayStore = 1; 24759let BaseOpcode = "S4_storeirb_io"; 24760let CextOpcode = "S2_storerb"; 24761let InputType = "imm"; 24762let isExtendable = 1; 24763let opExtendable = 3; 24764let isExtentSigned = 1; 24765let opExtentBits = 6; 24766let opExtentAlign = 0; 24767} 24768def S4_storeirbt_zomap : HInst< 24769(outs), 24770(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 24771"if ($Pv4) memb($Rs32) = #$II", 24772tc_d03278fd, TypeMAPPING> { 24773let isPseudo = 1; 24774let isCodeGenOnly = 1; 24775} 24776def S4_storeirbtnew_io : HInst< 24777(outs), 24778(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II), 24779"if ($Pv4.new) memb($Rs32+#$Ii) = #$II", 24780tc_65cbd974, TypeST>, Enc_d7a65e, PredNewRel { 24781let Inst{31-21} = 0b00111001000; 24782let isPredicated = 1; 24783let addrMode = BaseImmOffset; 24784let accessSize = ByteAccess; 24785let isPredicatedNew = 1; 24786let mayStore = 1; 24787let BaseOpcode = "S4_storeirb_io"; 24788let CextOpcode = "S2_storerb"; 24789let InputType = "imm"; 24790let isExtendable = 1; 24791let opExtendable = 3; 24792let isExtentSigned = 1; 24793let opExtentBits = 6; 24794let opExtentAlign = 0; 24795} 24796def S4_storeirbtnew_zomap : HInst< 24797(outs), 24798(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 24799"if ($Pv4.new) memb($Rs32) = #$II", 24800tc_65cbd974, TypeMAPPING> { 24801let isPseudo = 1; 24802let isCodeGenOnly = 1; 24803} 24804def S4_storeirh_io : HInst< 24805(outs), 24806(ins IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II), 24807"memh($Rs32+#$Ii) = #$II", 24808tc_7c31e19a, TypeST>, Enc_a803e0, PredNewRel { 24809let Inst{31-21} = 0b00111100001; 24810let addrMode = BaseImmOffset; 24811let accessSize = HalfWordAccess; 24812let mayStore = 1; 24813let BaseOpcode = "S4_storeirh_io"; 24814let CextOpcode = "S2_storerh"; 24815let InputType = "imm"; 24816let isPredicable = 1; 24817let isExtendable = 1; 24818let opExtendable = 2; 24819let isExtentSigned = 1; 24820let opExtentBits = 8; 24821let opExtentAlign = 0; 24822} 24823def S4_storeirh_zomap : HInst< 24824(outs), 24825(ins IntRegs:$Rs32, s8_0Imm:$II), 24826"memh($Rs32) = #$II", 24827tc_7c31e19a, TypeMAPPING> { 24828let isPseudo = 1; 24829let isCodeGenOnly = 1; 24830} 24831def S4_storeirhf_io : HInst< 24832(outs), 24833(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II), 24834"if (!$Pv4) memh($Rs32+#$Ii) = #$II", 24835tc_d03278fd, TypeST>, Enc_f20719, PredNewRel { 24836let Inst{31-21} = 0b00111000101; 24837let isPredicated = 1; 24838let isPredicatedFalse = 1; 24839let addrMode = BaseImmOffset; 24840let accessSize = HalfWordAccess; 24841let mayStore = 1; 24842let BaseOpcode = "S4_storeirh_io"; 24843let CextOpcode = "S2_storerh"; 24844let InputType = "imm"; 24845let isExtendable = 1; 24846let opExtendable = 3; 24847let isExtentSigned = 1; 24848let opExtentBits = 6; 24849let opExtentAlign = 0; 24850} 24851def S4_storeirhf_zomap : HInst< 24852(outs), 24853(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 24854"if (!$Pv4) memh($Rs32) = #$II", 24855tc_d03278fd, TypeMAPPING> { 24856let isPseudo = 1; 24857let isCodeGenOnly = 1; 24858} 24859def S4_storeirhfnew_io : HInst< 24860(outs), 24861(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II), 24862"if (!$Pv4.new) memh($Rs32+#$Ii) = #$II", 24863tc_65cbd974, TypeST>, Enc_f20719, PredNewRel { 24864let Inst{31-21} = 0b00111001101; 24865let isPredicated = 1; 24866let isPredicatedFalse = 1; 24867let addrMode = BaseImmOffset; 24868let accessSize = HalfWordAccess; 24869let isPredicatedNew = 1; 24870let mayStore = 1; 24871let BaseOpcode = "S4_storeirh_io"; 24872let CextOpcode = "S2_storerh"; 24873let InputType = "imm"; 24874let isExtendable = 1; 24875let opExtendable = 3; 24876let isExtentSigned = 1; 24877let opExtentBits = 6; 24878let opExtentAlign = 0; 24879} 24880def S4_storeirhfnew_zomap : HInst< 24881(outs), 24882(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 24883"if (!$Pv4.new) memh($Rs32) = #$II", 24884tc_65cbd974, TypeMAPPING> { 24885let isPseudo = 1; 24886let isCodeGenOnly = 1; 24887} 24888def S4_storeirht_io : HInst< 24889(outs), 24890(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II), 24891"if ($Pv4) memh($Rs32+#$Ii) = #$II", 24892tc_d03278fd, TypeST>, Enc_f20719, PredNewRel { 24893let Inst{31-21} = 0b00111000001; 24894let isPredicated = 1; 24895let addrMode = BaseImmOffset; 24896let accessSize = HalfWordAccess; 24897let mayStore = 1; 24898let BaseOpcode = "S4_storeirh_io"; 24899let CextOpcode = "S2_storerh"; 24900let InputType = "imm"; 24901let isExtendable = 1; 24902let opExtendable = 3; 24903let isExtentSigned = 1; 24904let opExtentBits = 6; 24905let opExtentAlign = 0; 24906} 24907def S4_storeirht_zomap : HInst< 24908(outs), 24909(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 24910"if ($Pv4) memh($Rs32) = #$II", 24911tc_d03278fd, TypeMAPPING> { 24912let isPseudo = 1; 24913let isCodeGenOnly = 1; 24914} 24915def S4_storeirhtnew_io : HInst< 24916(outs), 24917(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II), 24918"if ($Pv4.new) memh($Rs32+#$Ii) = #$II", 24919tc_65cbd974, TypeST>, Enc_f20719, PredNewRel { 24920let Inst{31-21} = 0b00111001001; 24921let isPredicated = 1; 24922let addrMode = BaseImmOffset; 24923let accessSize = HalfWordAccess; 24924let isPredicatedNew = 1; 24925let mayStore = 1; 24926let BaseOpcode = "S4_storeirh_io"; 24927let CextOpcode = "S2_storerh"; 24928let InputType = "imm"; 24929let isExtendable = 1; 24930let opExtendable = 3; 24931let isExtentSigned = 1; 24932let opExtentBits = 6; 24933let opExtentAlign = 0; 24934} 24935def S4_storeirhtnew_zomap : HInst< 24936(outs), 24937(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 24938"if ($Pv4.new) memh($Rs32) = #$II", 24939tc_65cbd974, TypeMAPPING> { 24940let isPseudo = 1; 24941let isCodeGenOnly = 1; 24942} 24943def S4_storeiri_io : HInst< 24944(outs), 24945(ins IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II), 24946"memw($Rs32+#$Ii) = #$II", 24947tc_7c31e19a, TypeST>, Enc_f37377, PredNewRel { 24948let Inst{31-21} = 0b00111100010; 24949let addrMode = BaseImmOffset; 24950let accessSize = WordAccess; 24951let mayStore = 1; 24952let BaseOpcode = "S4_storeiri_io"; 24953let CextOpcode = "S2_storeri"; 24954let InputType = "imm"; 24955let isPredicable = 1; 24956let isExtendable = 1; 24957let opExtendable = 2; 24958let isExtentSigned = 1; 24959let opExtentBits = 8; 24960let opExtentAlign = 0; 24961} 24962def S4_storeiri_zomap : HInst< 24963(outs), 24964(ins IntRegs:$Rs32, s8_0Imm:$II), 24965"memw($Rs32) = #$II", 24966tc_7c31e19a, TypeMAPPING> { 24967let isPseudo = 1; 24968let isCodeGenOnly = 1; 24969} 24970def S4_storeirif_io : HInst< 24971(outs), 24972(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II), 24973"if (!$Pv4) memw($Rs32+#$Ii) = #$II", 24974tc_d03278fd, TypeST>, Enc_5ccba9, PredNewRel { 24975let Inst{31-21} = 0b00111000110; 24976let isPredicated = 1; 24977let isPredicatedFalse = 1; 24978let addrMode = BaseImmOffset; 24979let accessSize = WordAccess; 24980let mayStore = 1; 24981let BaseOpcode = "S4_storeiri_io"; 24982let CextOpcode = "S2_storeri"; 24983let InputType = "imm"; 24984let isExtendable = 1; 24985let opExtendable = 3; 24986let isExtentSigned = 1; 24987let opExtentBits = 6; 24988let opExtentAlign = 0; 24989} 24990def S4_storeirif_zomap : HInst< 24991(outs), 24992(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 24993"if (!$Pv4) memw($Rs32) = #$II", 24994tc_d03278fd, TypeMAPPING> { 24995let isPseudo = 1; 24996let isCodeGenOnly = 1; 24997} 24998def S4_storeirifnew_io : HInst< 24999(outs), 25000(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II), 25001"if (!$Pv4.new) memw($Rs32+#$Ii) = #$II", 25002tc_65cbd974, TypeST>, Enc_5ccba9, PredNewRel { 25003let Inst{31-21} = 0b00111001110; 25004let isPredicated = 1; 25005let isPredicatedFalse = 1; 25006let addrMode = BaseImmOffset; 25007let accessSize = WordAccess; 25008let isPredicatedNew = 1; 25009let mayStore = 1; 25010let BaseOpcode = "S4_storeiri_io"; 25011let CextOpcode = "S2_storeri"; 25012let InputType = "imm"; 25013let isExtendable = 1; 25014let opExtendable = 3; 25015let isExtentSigned = 1; 25016let opExtentBits = 6; 25017let opExtentAlign = 0; 25018} 25019def S4_storeirifnew_zomap : HInst< 25020(outs), 25021(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 25022"if (!$Pv4.new) memw($Rs32) = #$II", 25023tc_65cbd974, TypeMAPPING> { 25024let isPseudo = 1; 25025let isCodeGenOnly = 1; 25026} 25027def S4_storeirit_io : HInst< 25028(outs), 25029(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II), 25030"if ($Pv4) memw($Rs32+#$Ii) = #$II", 25031tc_d03278fd, TypeST>, Enc_5ccba9, PredNewRel { 25032let Inst{31-21} = 0b00111000010; 25033let isPredicated = 1; 25034let addrMode = BaseImmOffset; 25035let accessSize = WordAccess; 25036let mayStore = 1; 25037let BaseOpcode = "S4_storeiri_io"; 25038let CextOpcode = "S2_storeri"; 25039let InputType = "imm"; 25040let isExtendable = 1; 25041let opExtendable = 3; 25042let isExtentSigned = 1; 25043let opExtentBits = 6; 25044let opExtentAlign = 0; 25045} 25046def S4_storeirit_zomap : HInst< 25047(outs), 25048(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 25049"if ($Pv4) memw($Rs32) = #$II", 25050tc_d03278fd, TypeMAPPING> { 25051let isPseudo = 1; 25052let isCodeGenOnly = 1; 25053} 25054def S4_storeiritnew_io : HInst< 25055(outs), 25056(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II), 25057"if ($Pv4.new) memw($Rs32+#$Ii) = #$II", 25058tc_65cbd974, TypeST>, Enc_5ccba9, PredNewRel { 25059let Inst{31-21} = 0b00111001010; 25060let isPredicated = 1; 25061let addrMode = BaseImmOffset; 25062let accessSize = WordAccess; 25063let isPredicatedNew = 1; 25064let mayStore = 1; 25065let BaseOpcode = "S4_storeiri_io"; 25066let CextOpcode = "S2_storeri"; 25067let InputType = "imm"; 25068let isExtendable = 1; 25069let opExtendable = 3; 25070let isExtentSigned = 1; 25071let opExtentBits = 6; 25072let opExtentAlign = 0; 25073} 25074def S4_storeiritnew_zomap : HInst< 25075(outs), 25076(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II), 25077"if ($Pv4.new) memw($Rs32) = #$II", 25078tc_65cbd974, TypeMAPPING> { 25079let isPseudo = 1; 25080let isCodeGenOnly = 1; 25081} 25082def S4_storerb_ap : HInst< 25083(outs IntRegs:$Re32), 25084(ins u32_0Imm:$II, IntRegs:$Rt32), 25085"memb($Re32=#$II) = $Rt32", 25086tc_bb07f2c5, TypeST>, Enc_8bcba4, AddrModeRel { 25087let Inst{7-6} = 0b10; 25088let Inst{13-13} = 0b0; 25089let Inst{31-21} = 0b10101011000; 25090let addrMode = AbsoluteSet; 25091let accessSize = ByteAccess; 25092let isExtended = 1; 25093let mayStore = 1; 25094let BaseOpcode = "S2_storerb_ap"; 25095let isNVStorable = 1; 25096let DecoderNamespace = "MustExtend"; 25097let isExtendable = 1; 25098let opExtendable = 1; 25099let isExtentSigned = 0; 25100let opExtentBits = 6; 25101let opExtentAlign = 0; 25102} 25103def S4_storerb_rr : HInst< 25104(outs), 25105(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 25106"memb($Rs32+$Ru32<<#$Ii) = $Rt32", 25107tc_280f7fe1, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl { 25108let Inst{6-5} = 0b00; 25109let Inst{31-21} = 0b00111011000; 25110let addrMode = BaseRegOffset; 25111let accessSize = ByteAccess; 25112let mayStore = 1; 25113let BaseOpcode = "S4_storerb_rr"; 25114let CextOpcode = "S2_storerb"; 25115let InputType = "reg"; 25116let isNVStorable = 1; 25117let isPredicable = 1; 25118} 25119def S4_storerb_ur : HInst< 25120(outs), 25121(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32), 25122"memb($Ru32<<#$Ii+#$II) = $Rt32", 25123tc_887d1bb7, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl { 25124let Inst{7-7} = 0b1; 25125let Inst{31-21} = 0b10101101000; 25126let addrMode = BaseLongOffset; 25127let accessSize = ByteAccess; 25128let isExtended = 1; 25129let mayStore = 1; 25130let BaseOpcode = "S4_storerb_ur"; 25131let CextOpcode = "S2_storerb"; 25132let InputType = "imm"; 25133let isNVStorable = 1; 25134let DecoderNamespace = "MustExtend"; 25135let isExtendable = 1; 25136let opExtendable = 2; 25137let isExtentSigned = 0; 25138let opExtentBits = 6; 25139let opExtentAlign = 0; 25140} 25141def S4_storerbnew_ap : HInst< 25142(outs IntRegs:$Re32), 25143(ins u32_0Imm:$II, IntRegs:$Nt8), 25144"memb($Re32=#$II) = $Nt8.new", 25145tc_0fac1eb8, TypeST>, Enc_724154, AddrModeRel { 25146let Inst{7-6} = 0b10; 25147let Inst{13-11} = 0b000; 25148let Inst{31-21} = 0b10101011101; 25149let addrMode = AbsoluteSet; 25150let accessSize = ByteAccess; 25151let isNVStore = 1; 25152let isNewValue = 1; 25153let isExtended = 1; 25154let isRestrictNoSlot1Store = 1; 25155let mayStore = 1; 25156let BaseOpcode = "S2_storerb_ap"; 25157let DecoderNamespace = "MustExtend"; 25158let isExtendable = 1; 25159let opExtendable = 1; 25160let isExtentSigned = 0; 25161let opExtentBits = 6; 25162let opExtentAlign = 0; 25163let opNewValue = 2; 25164} 25165def S4_storerbnew_rr : HInst< 25166(outs), 25167(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 25168"memb($Rs32+$Ru32<<#$Ii) = $Nt8.new", 25169tc_96ef76ef, TypeST>, Enc_c6220b, AddrModeRel { 25170let Inst{6-3} = 0b0000; 25171let Inst{31-21} = 0b00111011101; 25172let addrMode = BaseRegOffset; 25173let accessSize = ByteAccess; 25174let isNVStore = 1; 25175let isNewValue = 1; 25176let isRestrictNoSlot1Store = 1; 25177let mayStore = 1; 25178let BaseOpcode = "S4_storerb_rr"; 25179let CextOpcode = "S2_storerb"; 25180let InputType = "reg"; 25181let isPredicable = 1; 25182let opNewValue = 3; 25183} 25184def S4_storerbnew_ur : HInst< 25185(outs), 25186(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Nt8), 25187"memb($Ru32<<#$Ii+#$II) = $Nt8.new", 25188tc_55a9a350, TypeST>, Enc_7eb485, AddrModeRel { 25189let Inst{7-7} = 0b1; 25190let Inst{12-11} = 0b00; 25191let Inst{31-21} = 0b10101101101; 25192let addrMode = BaseLongOffset; 25193let accessSize = ByteAccess; 25194let isNVStore = 1; 25195let isNewValue = 1; 25196let isExtended = 1; 25197let isRestrictNoSlot1Store = 1; 25198let mayStore = 1; 25199let BaseOpcode = "S4_storerb_ur"; 25200let CextOpcode = "S2_storerb"; 25201let DecoderNamespace = "MustExtend"; 25202let isExtendable = 1; 25203let opExtendable = 2; 25204let isExtentSigned = 0; 25205let opExtentBits = 6; 25206let opExtentAlign = 0; 25207let opNewValue = 3; 25208} 25209def S4_storerd_ap : HInst< 25210(outs IntRegs:$Re32), 25211(ins u32_0Imm:$II, DoubleRegs:$Rtt32), 25212"memd($Re32=#$II) = $Rtt32", 25213tc_bb07f2c5, TypeST>, Enc_c7a204 { 25214let Inst{7-6} = 0b10; 25215let Inst{13-13} = 0b0; 25216let Inst{31-21} = 0b10101011110; 25217let addrMode = AbsoluteSet; 25218let accessSize = DoubleWordAccess; 25219let isExtended = 1; 25220let mayStore = 1; 25221let BaseOpcode = "S4_storerd_ap"; 25222let DecoderNamespace = "MustExtend"; 25223let isExtendable = 1; 25224let opExtendable = 1; 25225let isExtentSigned = 0; 25226let opExtentBits = 6; 25227let opExtentAlign = 0; 25228} 25229def S4_storerd_rr : HInst< 25230(outs), 25231(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32), 25232"memd($Rs32+$Ru32<<#$Ii) = $Rtt32", 25233tc_280f7fe1, TypeST>, Enc_55355c, AddrModeRel, ImmRegShl { 25234let Inst{6-5} = 0b00; 25235let Inst{31-21} = 0b00111011110; 25236let addrMode = BaseRegOffset; 25237let accessSize = DoubleWordAccess; 25238let mayStore = 1; 25239let BaseOpcode = "S2_storerd_rr"; 25240let CextOpcode = "S2_storerd"; 25241let InputType = "reg"; 25242let isPredicable = 1; 25243} 25244def S4_storerd_ur : HInst< 25245(outs), 25246(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, DoubleRegs:$Rtt32), 25247"memd($Ru32<<#$Ii+#$II) = $Rtt32", 25248tc_887d1bb7, TypeST>, Enc_f79415, AddrModeRel, ImmRegShl { 25249let Inst{7-7} = 0b1; 25250let Inst{31-21} = 0b10101101110; 25251let addrMode = BaseLongOffset; 25252let accessSize = DoubleWordAccess; 25253let isExtended = 1; 25254let mayStore = 1; 25255let BaseOpcode = "S2_storerd_ur"; 25256let CextOpcode = "S2_storerd"; 25257let InputType = "imm"; 25258let DecoderNamespace = "MustExtend"; 25259let isExtendable = 1; 25260let opExtendable = 2; 25261let isExtentSigned = 0; 25262let opExtentBits = 6; 25263let opExtentAlign = 0; 25264} 25265def S4_storerf_ap : HInst< 25266(outs IntRegs:$Re32), 25267(ins u32_0Imm:$II, IntRegs:$Rt32), 25268"memh($Re32=#$II) = $Rt32.h", 25269tc_bb07f2c5, TypeST>, Enc_8bcba4 { 25270let Inst{7-6} = 0b10; 25271let Inst{13-13} = 0b0; 25272let Inst{31-21} = 0b10101011011; 25273let addrMode = AbsoluteSet; 25274let accessSize = HalfWordAccess; 25275let isExtended = 1; 25276let mayStore = 1; 25277let BaseOpcode = "S4_storerf_ap"; 25278let DecoderNamespace = "MustExtend"; 25279let isExtendable = 1; 25280let opExtendable = 1; 25281let isExtentSigned = 0; 25282let opExtentBits = 6; 25283let opExtentAlign = 0; 25284} 25285def S4_storerf_rr : HInst< 25286(outs), 25287(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 25288"memh($Rs32+$Ru32<<#$Ii) = $Rt32.h", 25289tc_280f7fe1, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl { 25290let Inst{6-5} = 0b00; 25291let Inst{31-21} = 0b00111011011; 25292let addrMode = BaseRegOffset; 25293let accessSize = HalfWordAccess; 25294let mayStore = 1; 25295let BaseOpcode = "S4_storerf_rr"; 25296let CextOpcode = "S2_storerf"; 25297let InputType = "reg"; 25298let isPredicable = 1; 25299} 25300def S4_storerf_ur : HInst< 25301(outs), 25302(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32), 25303"memh($Ru32<<#$Ii+#$II) = $Rt32.h", 25304tc_887d1bb7, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl { 25305let Inst{7-7} = 0b1; 25306let Inst{31-21} = 0b10101101011; 25307let addrMode = BaseLongOffset; 25308let accessSize = HalfWordAccess; 25309let isExtended = 1; 25310let mayStore = 1; 25311let BaseOpcode = "S4_storerf_rr"; 25312let CextOpcode = "S2_storerf"; 25313let InputType = "imm"; 25314let DecoderNamespace = "MustExtend"; 25315let isExtendable = 1; 25316let opExtendable = 2; 25317let isExtentSigned = 0; 25318let opExtentBits = 6; 25319let opExtentAlign = 0; 25320} 25321def S4_storerh_ap : HInst< 25322(outs IntRegs:$Re32), 25323(ins u32_0Imm:$II, IntRegs:$Rt32), 25324"memh($Re32=#$II) = $Rt32", 25325tc_bb07f2c5, TypeST>, Enc_8bcba4, AddrModeRel { 25326let Inst{7-6} = 0b10; 25327let Inst{13-13} = 0b0; 25328let Inst{31-21} = 0b10101011010; 25329let addrMode = AbsoluteSet; 25330let accessSize = HalfWordAccess; 25331let isExtended = 1; 25332let mayStore = 1; 25333let BaseOpcode = "S2_storerh_ap"; 25334let isNVStorable = 1; 25335let DecoderNamespace = "MustExtend"; 25336let isExtendable = 1; 25337let opExtendable = 1; 25338let isExtentSigned = 0; 25339let opExtentBits = 6; 25340let opExtentAlign = 0; 25341} 25342def S4_storerh_rr : HInst< 25343(outs), 25344(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 25345"memh($Rs32+$Ru32<<#$Ii) = $Rt32", 25346tc_280f7fe1, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl { 25347let Inst{6-5} = 0b00; 25348let Inst{31-21} = 0b00111011010; 25349let addrMode = BaseRegOffset; 25350let accessSize = HalfWordAccess; 25351let mayStore = 1; 25352let BaseOpcode = "S2_storerh_rr"; 25353let CextOpcode = "S2_storerh"; 25354let InputType = "reg"; 25355let isNVStorable = 1; 25356let isPredicable = 1; 25357} 25358def S4_storerh_ur : HInst< 25359(outs), 25360(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32), 25361"memh($Ru32<<#$Ii+#$II) = $Rt32", 25362tc_887d1bb7, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl { 25363let Inst{7-7} = 0b1; 25364let Inst{31-21} = 0b10101101010; 25365let addrMode = BaseLongOffset; 25366let accessSize = HalfWordAccess; 25367let isExtended = 1; 25368let mayStore = 1; 25369let BaseOpcode = "S2_storerh_ur"; 25370let CextOpcode = "S2_storerh"; 25371let InputType = "imm"; 25372let isNVStorable = 1; 25373let DecoderNamespace = "MustExtend"; 25374let isExtendable = 1; 25375let opExtendable = 2; 25376let isExtentSigned = 0; 25377let opExtentBits = 6; 25378let opExtentAlign = 0; 25379} 25380def S4_storerhnew_ap : HInst< 25381(outs IntRegs:$Re32), 25382(ins u32_0Imm:$II, IntRegs:$Nt8), 25383"memh($Re32=#$II) = $Nt8.new", 25384tc_0fac1eb8, TypeST>, Enc_724154, AddrModeRel { 25385let Inst{7-6} = 0b10; 25386let Inst{13-11} = 0b001; 25387let Inst{31-21} = 0b10101011101; 25388let addrMode = AbsoluteSet; 25389let accessSize = HalfWordAccess; 25390let isNVStore = 1; 25391let isNewValue = 1; 25392let isExtended = 1; 25393let isRestrictNoSlot1Store = 1; 25394let mayStore = 1; 25395let BaseOpcode = "S2_storerh_ap"; 25396let DecoderNamespace = "MustExtend"; 25397let isExtendable = 1; 25398let opExtendable = 1; 25399let isExtentSigned = 0; 25400let opExtentBits = 6; 25401let opExtentAlign = 0; 25402let opNewValue = 2; 25403} 25404def S4_storerhnew_rr : HInst< 25405(outs), 25406(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 25407"memh($Rs32+$Ru32<<#$Ii) = $Nt8.new", 25408tc_96ef76ef, TypeST>, Enc_c6220b, AddrModeRel { 25409let Inst{6-3} = 0b0001; 25410let Inst{31-21} = 0b00111011101; 25411let addrMode = BaseRegOffset; 25412let accessSize = HalfWordAccess; 25413let isNVStore = 1; 25414let isNewValue = 1; 25415let isRestrictNoSlot1Store = 1; 25416let mayStore = 1; 25417let BaseOpcode = "S2_storerh_rr"; 25418let CextOpcode = "S2_storerh"; 25419let InputType = "reg"; 25420let isPredicable = 1; 25421let opNewValue = 3; 25422} 25423def S4_storerhnew_ur : HInst< 25424(outs), 25425(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Nt8), 25426"memh($Ru32<<#$Ii+#$II) = $Nt8.new", 25427tc_55a9a350, TypeST>, Enc_7eb485, AddrModeRel { 25428let Inst{7-7} = 0b1; 25429let Inst{12-11} = 0b01; 25430let Inst{31-21} = 0b10101101101; 25431let addrMode = BaseLongOffset; 25432let accessSize = HalfWordAccess; 25433let isNVStore = 1; 25434let isNewValue = 1; 25435let isExtended = 1; 25436let isRestrictNoSlot1Store = 1; 25437let mayStore = 1; 25438let BaseOpcode = "S2_storerh_ur"; 25439let CextOpcode = "S2_storerh"; 25440let DecoderNamespace = "MustExtend"; 25441let isExtendable = 1; 25442let opExtendable = 2; 25443let isExtentSigned = 0; 25444let opExtentBits = 6; 25445let opExtentAlign = 0; 25446let opNewValue = 3; 25447} 25448def S4_storeri_ap : HInst< 25449(outs IntRegs:$Re32), 25450(ins u32_0Imm:$II, IntRegs:$Rt32), 25451"memw($Re32=#$II) = $Rt32", 25452tc_bb07f2c5, TypeST>, Enc_8bcba4, AddrModeRel { 25453let Inst{7-6} = 0b10; 25454let Inst{13-13} = 0b0; 25455let Inst{31-21} = 0b10101011100; 25456let addrMode = AbsoluteSet; 25457let accessSize = WordAccess; 25458let isExtended = 1; 25459let mayStore = 1; 25460let BaseOpcode = "S2_storeri_ap"; 25461let isNVStorable = 1; 25462let DecoderNamespace = "MustExtend"; 25463let isExtendable = 1; 25464let opExtendable = 1; 25465let isExtentSigned = 0; 25466let opExtentBits = 6; 25467let opExtentAlign = 0; 25468} 25469def S4_storeri_rr : HInst< 25470(outs), 25471(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), 25472"memw($Rs32+$Ru32<<#$Ii) = $Rt32", 25473tc_280f7fe1, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl { 25474let Inst{6-5} = 0b00; 25475let Inst{31-21} = 0b00111011100; 25476let addrMode = BaseRegOffset; 25477let accessSize = WordAccess; 25478let mayStore = 1; 25479let BaseOpcode = "S2_storeri_rr"; 25480let CextOpcode = "S2_storeri"; 25481let InputType = "reg"; 25482let isNVStorable = 1; 25483let isPredicable = 1; 25484} 25485def S4_storeri_ur : HInst< 25486(outs), 25487(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32), 25488"memw($Ru32<<#$Ii+#$II) = $Rt32", 25489tc_887d1bb7, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl { 25490let Inst{7-7} = 0b1; 25491let Inst{31-21} = 0b10101101100; 25492let addrMode = BaseLongOffset; 25493let accessSize = WordAccess; 25494let isExtended = 1; 25495let mayStore = 1; 25496let BaseOpcode = "S2_storeri_ur"; 25497let CextOpcode = "S2_storeri"; 25498let InputType = "imm"; 25499let isNVStorable = 1; 25500let DecoderNamespace = "MustExtend"; 25501let isExtendable = 1; 25502let opExtendable = 2; 25503let isExtentSigned = 0; 25504let opExtentBits = 6; 25505let opExtentAlign = 0; 25506} 25507def S4_storerinew_ap : HInst< 25508(outs IntRegs:$Re32), 25509(ins u32_0Imm:$II, IntRegs:$Nt8), 25510"memw($Re32=#$II) = $Nt8.new", 25511tc_0fac1eb8, TypeST>, Enc_724154, AddrModeRel { 25512let Inst{7-6} = 0b10; 25513let Inst{13-11} = 0b010; 25514let Inst{31-21} = 0b10101011101; 25515let addrMode = AbsoluteSet; 25516let accessSize = WordAccess; 25517let isNVStore = 1; 25518let isNewValue = 1; 25519let isExtended = 1; 25520let isRestrictNoSlot1Store = 1; 25521let mayStore = 1; 25522let BaseOpcode = "S2_storeri_ap"; 25523let DecoderNamespace = "MustExtend"; 25524let isExtendable = 1; 25525let opExtendable = 1; 25526let isExtentSigned = 0; 25527let opExtentBits = 6; 25528let opExtentAlign = 0; 25529let opNewValue = 2; 25530} 25531def S4_storerinew_rr : HInst< 25532(outs), 25533(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8), 25534"memw($Rs32+$Ru32<<#$Ii) = $Nt8.new", 25535tc_96ef76ef, TypeST>, Enc_c6220b, AddrModeRel { 25536let Inst{6-3} = 0b0010; 25537let Inst{31-21} = 0b00111011101; 25538let addrMode = BaseRegOffset; 25539let accessSize = WordAccess; 25540let isNVStore = 1; 25541let isNewValue = 1; 25542let isRestrictNoSlot1Store = 1; 25543let mayStore = 1; 25544let BaseOpcode = "S2_storeri_rr"; 25545let CextOpcode = "S2_storeri"; 25546let InputType = "reg"; 25547let isPredicable = 1; 25548let opNewValue = 3; 25549} 25550def S4_storerinew_ur : HInst< 25551(outs), 25552(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Nt8), 25553"memw($Ru32<<#$Ii+#$II) = $Nt8.new", 25554tc_55a9a350, TypeST>, Enc_7eb485, AddrModeRel { 25555let Inst{7-7} = 0b1; 25556let Inst{12-11} = 0b10; 25557let Inst{31-21} = 0b10101101101; 25558let addrMode = BaseLongOffset; 25559let accessSize = WordAccess; 25560let isNVStore = 1; 25561let isNewValue = 1; 25562let isExtended = 1; 25563let isRestrictNoSlot1Store = 1; 25564let mayStore = 1; 25565let BaseOpcode = "S2_storeri_ur"; 25566let CextOpcode = "S2_storeri"; 25567let DecoderNamespace = "MustExtend"; 25568let isExtendable = 1; 25569let opExtendable = 2; 25570let isExtentSigned = 0; 25571let opExtentBits = 6; 25572let opExtentAlign = 0; 25573let opNewValue = 3; 25574} 25575def S4_subaddi : HInst< 25576(outs IntRegs:$Rd32), 25577(ins IntRegs:$Rs32, s32_0Imm:$Ii, IntRegs:$Ru32), 25578"$Rd32 = add($Rs32,sub(#$Ii,$Ru32))", 25579tc_2c13e7f5, TypeALU64>, Enc_8b8d61, Requires<[UseCompound]> { 25580let Inst{31-23} = 0b110110111; 25581let hasNewValue = 1; 25582let opNewValue = 0; 25583let prefersSlot3 = 1; 25584let isExtendable = 1; 25585let opExtendable = 2; 25586let isExtentSigned = 1; 25587let opExtentBits = 6; 25588let opExtentAlign = 0; 25589} 25590def S4_subi_asl_ri : HInst< 25591(outs IntRegs:$Rx32), 25592(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II), 25593"$Rx32 = sub(#$Ii,asl($Rx32in,#$II))", 25594tc_2c13e7f5, TypeALU64>, Enc_c31910, Requires<[UseCompound]> { 25595let Inst{2-0} = 0b110; 25596let Inst{4-4} = 0b0; 25597let Inst{31-24} = 0b11011110; 25598let hasNewValue = 1; 25599let opNewValue = 0; 25600let prefersSlot3 = 1; 25601let isExtendable = 1; 25602let opExtendable = 1; 25603let isExtentSigned = 0; 25604let opExtentBits = 8; 25605let opExtentAlign = 0; 25606let Constraints = "$Rx32 = $Rx32in"; 25607} 25608def S4_subi_lsr_ri : HInst< 25609(outs IntRegs:$Rx32), 25610(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II), 25611"$Rx32 = sub(#$Ii,lsr($Rx32in,#$II))", 25612tc_2c13e7f5, TypeALU64>, Enc_c31910, Requires<[UseCompound]> { 25613let Inst{2-0} = 0b110; 25614let Inst{4-4} = 0b1; 25615let Inst{31-24} = 0b11011110; 25616let hasNewValue = 1; 25617let opNewValue = 0; 25618let prefersSlot3 = 1; 25619let isExtendable = 1; 25620let opExtendable = 1; 25621let isExtentSigned = 0; 25622let opExtentBits = 8; 25623let opExtentAlign = 0; 25624let Constraints = "$Rx32 = $Rx32in"; 25625} 25626def S4_vrcrotate : HInst< 25627(outs DoubleRegs:$Rdd32), 25628(ins DoubleRegs:$Rss32, IntRegs:$Rt32, u2_0Imm:$Ii), 25629"$Rdd32 = vrcrotate($Rss32,$Rt32,#$Ii)", 25630tc_f0cdeccf, TypeS_3op>, Enc_645d54 { 25631let Inst{7-6} = 0b11; 25632let Inst{31-21} = 0b11000011110; 25633let prefersSlot3 = 1; 25634} 25635def S4_vrcrotate_acc : HInst< 25636(outs DoubleRegs:$Rxx32), 25637(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32, u2_0Imm:$Ii), 25638"$Rxx32 += vrcrotate($Rss32,$Rt32,#$Ii)", 25639tc_a38c45dc, TypeS_3op>, Enc_b72622 { 25640let Inst{7-6} = 0b00; 25641let Inst{31-21} = 0b11001011101; 25642let prefersSlot3 = 1; 25643let Constraints = "$Rxx32 = $Rxx32in"; 25644} 25645def S4_vxaddsubh : HInst< 25646(outs DoubleRegs:$Rdd32), 25647(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 25648"$Rdd32 = vxaddsubh($Rss32,$Rtt32):sat", 25649tc_8a825db2, TypeS_3op>, Enc_a56825 { 25650let Inst{7-5} = 0b100; 25651let Inst{13-13} = 0b0; 25652let Inst{31-21} = 0b11000001010; 25653let prefersSlot3 = 1; 25654let Defs = [USR_OVF]; 25655} 25656def S4_vxaddsubhr : HInst< 25657(outs DoubleRegs:$Rdd32), 25658(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 25659"$Rdd32 = vxaddsubh($Rss32,$Rtt32):rnd:>>1:sat", 25660tc_0dfac0a7, TypeS_3op>, Enc_a56825 { 25661let Inst{7-5} = 0b000; 25662let Inst{13-13} = 0b0; 25663let Inst{31-21} = 0b11000001110; 25664let prefersSlot3 = 1; 25665let Defs = [USR_OVF]; 25666} 25667def S4_vxaddsubw : HInst< 25668(outs DoubleRegs:$Rdd32), 25669(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 25670"$Rdd32 = vxaddsubw($Rss32,$Rtt32):sat", 25671tc_8a825db2, TypeS_3op>, Enc_a56825 { 25672let Inst{7-5} = 0b000; 25673let Inst{13-13} = 0b0; 25674let Inst{31-21} = 0b11000001010; 25675let prefersSlot3 = 1; 25676let Defs = [USR_OVF]; 25677} 25678def S4_vxsubaddh : HInst< 25679(outs DoubleRegs:$Rdd32), 25680(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 25681"$Rdd32 = vxsubaddh($Rss32,$Rtt32):sat", 25682tc_8a825db2, TypeS_3op>, Enc_a56825 { 25683let Inst{7-5} = 0b110; 25684let Inst{13-13} = 0b0; 25685let Inst{31-21} = 0b11000001010; 25686let prefersSlot3 = 1; 25687let Defs = [USR_OVF]; 25688} 25689def S4_vxsubaddhr : HInst< 25690(outs DoubleRegs:$Rdd32), 25691(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 25692"$Rdd32 = vxsubaddh($Rss32,$Rtt32):rnd:>>1:sat", 25693tc_0dfac0a7, TypeS_3op>, Enc_a56825 { 25694let Inst{7-5} = 0b010; 25695let Inst{13-13} = 0b0; 25696let Inst{31-21} = 0b11000001110; 25697let prefersSlot3 = 1; 25698let Defs = [USR_OVF]; 25699} 25700def S4_vxsubaddw : HInst< 25701(outs DoubleRegs:$Rdd32), 25702(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 25703"$Rdd32 = vxsubaddw($Rss32,$Rtt32):sat", 25704tc_8a825db2, TypeS_3op>, Enc_a56825 { 25705let Inst{7-5} = 0b010; 25706let Inst{13-13} = 0b0; 25707let Inst{31-21} = 0b11000001010; 25708let prefersSlot3 = 1; 25709let Defs = [USR_OVF]; 25710} 25711def S5_asrhub_rnd_sat : HInst< 25712(outs IntRegs:$Rd32), 25713(ins DoubleRegs:$Rss32, u4_0Imm:$Ii), 25714"$Rd32 = vasrhub($Rss32,#$Ii):raw", 25715tc_0dfac0a7, TypeS_2op>, Enc_11a146 { 25716let Inst{7-5} = 0b100; 25717let Inst{13-12} = 0b00; 25718let Inst{31-21} = 0b10001000011; 25719let hasNewValue = 1; 25720let opNewValue = 0; 25721let prefersSlot3 = 1; 25722let Defs = [USR_OVF]; 25723} 25724def S5_asrhub_rnd_sat_goodsyntax : HInst< 25725(outs IntRegs:$Rd32), 25726(ins DoubleRegs:$Rss32, u4_0Imm:$Ii), 25727"$Rd32 = vasrhub($Rss32,#$Ii):rnd:sat", 25728tc_0dfac0a7, TypeS_2op> { 25729let hasNewValue = 1; 25730let opNewValue = 0; 25731let isPseudo = 1; 25732} 25733def S5_asrhub_sat : HInst< 25734(outs IntRegs:$Rd32), 25735(ins DoubleRegs:$Rss32, u4_0Imm:$Ii), 25736"$Rd32 = vasrhub($Rss32,#$Ii):sat", 25737tc_0dfac0a7, TypeS_2op>, Enc_11a146 { 25738let Inst{7-5} = 0b101; 25739let Inst{13-12} = 0b00; 25740let Inst{31-21} = 0b10001000011; 25741let hasNewValue = 1; 25742let opNewValue = 0; 25743let prefersSlot3 = 1; 25744let Defs = [USR_OVF]; 25745} 25746def S5_popcountp : HInst< 25747(outs IntRegs:$Rd32), 25748(ins DoubleRegs:$Rss32), 25749"$Rd32 = popcount($Rss32)", 25750tc_d3632d88, TypeS_2op>, Enc_90cd8b { 25751let Inst{13-5} = 0b000000011; 25752let Inst{31-21} = 0b10001000011; 25753let hasNewValue = 1; 25754let opNewValue = 0; 25755let prefersSlot3 = 1; 25756} 25757def S5_vasrhrnd : HInst< 25758(outs DoubleRegs:$Rdd32), 25759(ins DoubleRegs:$Rss32, u4_0Imm:$Ii), 25760"$Rdd32 = vasrh($Rss32,#$Ii):raw", 25761tc_0dfac0a7, TypeS_2op>, Enc_12b6e9 { 25762let Inst{7-5} = 0b000; 25763let Inst{13-12} = 0b00; 25764let Inst{31-21} = 0b10000000001; 25765let prefersSlot3 = 1; 25766} 25767def S5_vasrhrnd_goodsyntax : HInst< 25768(outs DoubleRegs:$Rdd32), 25769(ins DoubleRegs:$Rss32, u4_0Imm:$Ii), 25770"$Rdd32 = vasrh($Rss32,#$Ii):rnd", 25771tc_0dfac0a7, TypeS_2op> { 25772let isPseudo = 1; 25773} 25774def S6_allocframe_to_raw : HInst< 25775(outs), 25776(ins u11_3Imm:$Ii), 25777"allocframe(#$Ii)", 25778tc_934753bb, TypeMAPPING>, Requires<[HasV65]> { 25779let isPseudo = 1; 25780let isCodeGenOnly = 1; 25781} 25782def S6_rol_i_p : HInst< 25783(outs DoubleRegs:$Rdd32), 25784(ins DoubleRegs:$Rss32, u6_0Imm:$Ii), 25785"$Rdd32 = rol($Rss32,#$Ii)", 25786tc_407e96f9, TypeS_2op>, Enc_5eac98, Requires<[HasV60]> { 25787let Inst{7-5} = 0b011; 25788let Inst{31-21} = 0b10000000000; 25789} 25790def S6_rol_i_p_acc : HInst< 25791(outs DoubleRegs:$Rxx32), 25792(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 25793"$Rxx32 += rol($Rss32,#$Ii)", 25794tc_5e4cf0e8, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> { 25795let Inst{7-5} = 0b111; 25796let Inst{31-21} = 0b10000010000; 25797let prefersSlot3 = 1; 25798let Constraints = "$Rxx32 = $Rxx32in"; 25799} 25800def S6_rol_i_p_and : HInst< 25801(outs DoubleRegs:$Rxx32), 25802(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 25803"$Rxx32 &= rol($Rss32,#$Ii)", 25804tc_5e4cf0e8, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> { 25805let Inst{7-5} = 0b011; 25806let Inst{31-21} = 0b10000010010; 25807let prefersSlot3 = 1; 25808let Constraints = "$Rxx32 = $Rxx32in"; 25809} 25810def S6_rol_i_p_nac : HInst< 25811(outs DoubleRegs:$Rxx32), 25812(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 25813"$Rxx32 -= rol($Rss32,#$Ii)", 25814tc_5e4cf0e8, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> { 25815let Inst{7-5} = 0b011; 25816let Inst{31-21} = 0b10000010000; 25817let prefersSlot3 = 1; 25818let Constraints = "$Rxx32 = $Rxx32in"; 25819} 25820def S6_rol_i_p_or : HInst< 25821(outs DoubleRegs:$Rxx32), 25822(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 25823"$Rxx32 |= rol($Rss32,#$Ii)", 25824tc_5e4cf0e8, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> { 25825let Inst{7-5} = 0b111; 25826let Inst{31-21} = 0b10000010010; 25827let prefersSlot3 = 1; 25828let Constraints = "$Rxx32 = $Rxx32in"; 25829} 25830def S6_rol_i_p_xacc : HInst< 25831(outs DoubleRegs:$Rxx32), 25832(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii), 25833"$Rxx32 ^= rol($Rss32,#$Ii)", 25834tc_5e4cf0e8, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> { 25835let Inst{7-5} = 0b011; 25836let Inst{31-21} = 0b10000010100; 25837let prefersSlot3 = 1; 25838let Constraints = "$Rxx32 = $Rxx32in"; 25839} 25840def S6_rol_i_r : HInst< 25841(outs IntRegs:$Rd32), 25842(ins IntRegs:$Rs32, u5_0Imm:$Ii), 25843"$Rd32 = rol($Rs32,#$Ii)", 25844tc_407e96f9, TypeS_2op>, Enc_a05677, Requires<[HasV60]> { 25845let Inst{7-5} = 0b011; 25846let Inst{13-13} = 0b0; 25847let Inst{31-21} = 0b10001100000; 25848let hasNewValue = 1; 25849let opNewValue = 0; 25850} 25851def S6_rol_i_r_acc : HInst< 25852(outs IntRegs:$Rx32), 25853(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 25854"$Rx32 += rol($Rs32,#$Ii)", 25855tc_5e4cf0e8, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> { 25856let Inst{7-5} = 0b111; 25857let Inst{13-13} = 0b0; 25858let Inst{31-21} = 0b10001110000; 25859let hasNewValue = 1; 25860let opNewValue = 0; 25861let prefersSlot3 = 1; 25862let Constraints = "$Rx32 = $Rx32in"; 25863} 25864def S6_rol_i_r_and : HInst< 25865(outs IntRegs:$Rx32), 25866(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 25867"$Rx32 &= rol($Rs32,#$Ii)", 25868tc_5e4cf0e8, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> { 25869let Inst{7-5} = 0b011; 25870let Inst{13-13} = 0b0; 25871let Inst{31-21} = 0b10001110010; 25872let hasNewValue = 1; 25873let opNewValue = 0; 25874let prefersSlot3 = 1; 25875let Constraints = "$Rx32 = $Rx32in"; 25876} 25877def S6_rol_i_r_nac : HInst< 25878(outs IntRegs:$Rx32), 25879(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 25880"$Rx32 -= rol($Rs32,#$Ii)", 25881tc_5e4cf0e8, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> { 25882let Inst{7-5} = 0b011; 25883let Inst{13-13} = 0b0; 25884let Inst{31-21} = 0b10001110000; 25885let hasNewValue = 1; 25886let opNewValue = 0; 25887let prefersSlot3 = 1; 25888let Constraints = "$Rx32 = $Rx32in"; 25889} 25890def S6_rol_i_r_or : HInst< 25891(outs IntRegs:$Rx32), 25892(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 25893"$Rx32 |= rol($Rs32,#$Ii)", 25894tc_5e4cf0e8, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> { 25895let Inst{7-5} = 0b111; 25896let Inst{13-13} = 0b0; 25897let Inst{31-21} = 0b10001110010; 25898let hasNewValue = 1; 25899let opNewValue = 0; 25900let prefersSlot3 = 1; 25901let Constraints = "$Rx32 = $Rx32in"; 25902} 25903def S6_rol_i_r_xacc : HInst< 25904(outs IntRegs:$Rx32), 25905(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii), 25906"$Rx32 ^= rol($Rs32,#$Ii)", 25907tc_5e4cf0e8, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> { 25908let Inst{7-5} = 0b011; 25909let Inst{13-13} = 0b0; 25910let Inst{31-21} = 0b10001110100; 25911let hasNewValue = 1; 25912let opNewValue = 0; 25913let prefersSlot3 = 1; 25914let Constraints = "$Rx32 = $Rx32in"; 25915} 25916def S6_vsplatrbp : HInst< 25917(outs DoubleRegs:$Rdd32), 25918(ins IntRegs:$Rs32), 25919"$Rdd32 = vsplatb($Rs32)", 25920tc_ef921005, TypeS_2op>, Enc_3a3d62, Requires<[HasV62]> { 25921let Inst{13-5} = 0b000000100; 25922let Inst{31-21} = 0b10000100010; 25923} 25924def S6_vtrunehb_ppp : HInst< 25925(outs DoubleRegs:$Rdd32), 25926(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 25927"$Rdd32 = vtrunehb($Rss32,$Rtt32)", 25928tc_407e96f9, TypeS_3op>, Enc_a56825, Requires<[HasV62]> { 25929let Inst{7-5} = 0b011; 25930let Inst{13-13} = 0b0; 25931let Inst{31-21} = 0b11000001100; 25932} 25933def S6_vtrunohb_ppp : HInst< 25934(outs DoubleRegs:$Rdd32), 25935(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 25936"$Rdd32 = vtrunohb($Rss32,$Rtt32)", 25937tc_407e96f9, TypeS_3op>, Enc_a56825, Requires<[HasV62]> { 25938let Inst{7-5} = 0b101; 25939let Inst{13-13} = 0b0; 25940let Inst{31-21} = 0b11000001100; 25941} 25942def SA1_addi : HInst< 25943(outs GeneralSubRegs:$Rx16), 25944(ins GeneralSubRegs:$Rx16in, s32_0Imm:$Ii), 25945"$Rx16 = add($Rx16in,#$Ii)", 25946tc_5b347363, TypeSUBINSN>, Enc_93af4c { 25947let Inst{12-11} = 0b00; 25948let hasNewValue = 1; 25949let opNewValue = 0; 25950let AsmVariantName = "NonParsable"; 25951let DecoderNamespace = "SUBINSN_A"; 25952let isExtendable = 1; 25953let opExtendable = 2; 25954let isExtentSigned = 1; 25955let opExtentBits = 7; 25956let opExtentAlign = 0; 25957let Constraints = "$Rx16 = $Rx16in"; 25958} 25959def SA1_addrx : HInst< 25960(outs GeneralSubRegs:$Rx16), 25961(ins GeneralSubRegs:$Rx16in, GeneralSubRegs:$Rs16), 25962"$Rx16 = add($Rx16in,$Rs16)", 25963tc_5b347363, TypeSUBINSN>, Enc_0527db { 25964let Inst{12-8} = 0b11000; 25965let hasNewValue = 1; 25966let opNewValue = 0; 25967let AsmVariantName = "NonParsable"; 25968let DecoderNamespace = "SUBINSN_A"; 25969let Constraints = "$Rx16 = $Rx16in"; 25970} 25971def SA1_addsp : HInst< 25972(outs GeneralSubRegs:$Rd16), 25973(ins u6_2Imm:$Ii), 25974"$Rd16 = add(r29,#$Ii)", 25975tc_3d14a17b, TypeSUBINSN>, Enc_2df31d { 25976let Inst{12-10} = 0b011; 25977let hasNewValue = 1; 25978let opNewValue = 0; 25979let AsmVariantName = "NonParsable"; 25980let Uses = [R29]; 25981let DecoderNamespace = "SUBINSN_A"; 25982} 25983def SA1_and1 : HInst< 25984(outs GeneralSubRegs:$Rd16), 25985(ins GeneralSubRegs:$Rs16), 25986"$Rd16 = and($Rs16,#1)", 25987tc_3d14a17b, TypeSUBINSN>, Enc_97d666 { 25988let Inst{12-8} = 0b10010; 25989let hasNewValue = 1; 25990let opNewValue = 0; 25991let AsmVariantName = "NonParsable"; 25992let DecoderNamespace = "SUBINSN_A"; 25993} 25994def SA1_clrf : HInst< 25995(outs GeneralSubRegs:$Rd16), 25996(ins), 25997"if (!p0) $Rd16 = #0", 25998tc_3fbf1042, TypeSUBINSN>, Enc_1f5ba6 { 25999let Inst{12-4} = 0b110100111; 26000let isPredicated = 1; 26001let isPredicatedFalse = 1; 26002let hasNewValue = 1; 26003let opNewValue = 0; 26004let AsmVariantName = "NonParsable"; 26005let Uses = [P0]; 26006let DecoderNamespace = "SUBINSN_A"; 26007} 26008def SA1_clrfnew : HInst< 26009(outs GeneralSubRegs:$Rd16), 26010(ins), 26011"if (!p0.new) $Rd16 = #0", 26012tc_63567288, TypeSUBINSN>, Enc_1f5ba6 { 26013let Inst{12-4} = 0b110100101; 26014let isPredicated = 1; 26015let isPredicatedFalse = 1; 26016let hasNewValue = 1; 26017let opNewValue = 0; 26018let AsmVariantName = "NonParsable"; 26019let isPredicatedNew = 1; 26020let Uses = [P0]; 26021let DecoderNamespace = "SUBINSN_A"; 26022} 26023def SA1_clrt : HInst< 26024(outs GeneralSubRegs:$Rd16), 26025(ins), 26026"if (p0) $Rd16 = #0", 26027tc_3fbf1042, TypeSUBINSN>, Enc_1f5ba6 { 26028let Inst{12-4} = 0b110100110; 26029let isPredicated = 1; 26030let hasNewValue = 1; 26031let opNewValue = 0; 26032let AsmVariantName = "NonParsable"; 26033let Uses = [P0]; 26034let DecoderNamespace = "SUBINSN_A"; 26035} 26036def SA1_clrtnew : HInst< 26037(outs GeneralSubRegs:$Rd16), 26038(ins), 26039"if (p0.new) $Rd16 = #0", 26040tc_63567288, TypeSUBINSN>, Enc_1f5ba6 { 26041let Inst{12-4} = 0b110100100; 26042let isPredicated = 1; 26043let hasNewValue = 1; 26044let opNewValue = 0; 26045let AsmVariantName = "NonParsable"; 26046let isPredicatedNew = 1; 26047let Uses = [P0]; 26048let DecoderNamespace = "SUBINSN_A"; 26049} 26050def SA1_cmpeqi : HInst< 26051(outs), 26052(ins GeneralSubRegs:$Rs16, u2_0Imm:$Ii), 26053"p0 = cmp.eq($Rs16,#$Ii)", 26054tc_59a7822c, TypeSUBINSN>, Enc_63eaeb { 26055let Inst{3-2} = 0b00; 26056let Inst{12-8} = 0b11001; 26057let AsmVariantName = "NonParsable"; 26058let Defs = [P0]; 26059let DecoderNamespace = "SUBINSN_A"; 26060} 26061def SA1_combine0i : HInst< 26062(outs GeneralDoubleLow8Regs:$Rdd8), 26063(ins u2_0Imm:$Ii), 26064"$Rdd8 = combine(#0,#$Ii)", 26065tc_3d14a17b, TypeSUBINSN>, Enc_ed48be { 26066let Inst{4-3} = 0b00; 26067let Inst{12-7} = 0b111000; 26068let hasNewValue = 1; 26069let opNewValue = 0; 26070let AsmVariantName = "NonParsable"; 26071let DecoderNamespace = "SUBINSN_A"; 26072} 26073def SA1_combine1i : HInst< 26074(outs GeneralDoubleLow8Regs:$Rdd8), 26075(ins u2_0Imm:$Ii), 26076"$Rdd8 = combine(#1,#$Ii)", 26077tc_3d14a17b, TypeSUBINSN>, Enc_ed48be { 26078let Inst{4-3} = 0b01; 26079let Inst{12-7} = 0b111000; 26080let hasNewValue = 1; 26081let opNewValue = 0; 26082let AsmVariantName = "NonParsable"; 26083let DecoderNamespace = "SUBINSN_A"; 26084} 26085def SA1_combine2i : HInst< 26086(outs GeneralDoubleLow8Regs:$Rdd8), 26087(ins u2_0Imm:$Ii), 26088"$Rdd8 = combine(#2,#$Ii)", 26089tc_3d14a17b, TypeSUBINSN>, Enc_ed48be { 26090let Inst{4-3} = 0b10; 26091let Inst{12-7} = 0b111000; 26092let hasNewValue = 1; 26093let opNewValue = 0; 26094let AsmVariantName = "NonParsable"; 26095let DecoderNamespace = "SUBINSN_A"; 26096} 26097def SA1_combine3i : HInst< 26098(outs GeneralDoubleLow8Regs:$Rdd8), 26099(ins u2_0Imm:$Ii), 26100"$Rdd8 = combine(#3,#$Ii)", 26101tc_3d14a17b, TypeSUBINSN>, Enc_ed48be { 26102let Inst{4-3} = 0b11; 26103let Inst{12-7} = 0b111000; 26104let hasNewValue = 1; 26105let opNewValue = 0; 26106let AsmVariantName = "NonParsable"; 26107let DecoderNamespace = "SUBINSN_A"; 26108} 26109def SA1_combinerz : HInst< 26110(outs GeneralDoubleLow8Regs:$Rdd8), 26111(ins GeneralSubRegs:$Rs16), 26112"$Rdd8 = combine($Rs16,#0)", 26113tc_3d14a17b, TypeSUBINSN>, Enc_399e12 { 26114let Inst{3-3} = 0b1; 26115let Inst{12-8} = 0b11101; 26116let hasNewValue = 1; 26117let opNewValue = 0; 26118let AsmVariantName = "NonParsable"; 26119let DecoderNamespace = "SUBINSN_A"; 26120} 26121def SA1_combinezr : HInst< 26122(outs GeneralDoubleLow8Regs:$Rdd8), 26123(ins GeneralSubRegs:$Rs16), 26124"$Rdd8 = combine(#0,$Rs16)", 26125tc_3d14a17b, TypeSUBINSN>, Enc_399e12 { 26126let Inst{3-3} = 0b0; 26127let Inst{12-8} = 0b11101; 26128let hasNewValue = 1; 26129let opNewValue = 0; 26130let AsmVariantName = "NonParsable"; 26131let DecoderNamespace = "SUBINSN_A"; 26132} 26133def SA1_dec : HInst< 26134(outs GeneralSubRegs:$Rd16), 26135(ins GeneralSubRegs:$Rs16, n1Const:$n1), 26136"$Rd16 = add($Rs16,#$n1)", 26137tc_5b347363, TypeSUBINSN>, Enc_ee5ed0 { 26138let Inst{12-8} = 0b10011; 26139let hasNewValue = 1; 26140let opNewValue = 0; 26141let AsmVariantName = "NonParsable"; 26142let DecoderNamespace = "SUBINSN_A"; 26143} 26144def SA1_inc : HInst< 26145(outs GeneralSubRegs:$Rd16), 26146(ins GeneralSubRegs:$Rs16), 26147"$Rd16 = add($Rs16,#1)", 26148tc_3d14a17b, TypeSUBINSN>, Enc_97d666 { 26149let Inst{12-8} = 0b10001; 26150let hasNewValue = 1; 26151let opNewValue = 0; 26152let AsmVariantName = "NonParsable"; 26153let DecoderNamespace = "SUBINSN_A"; 26154} 26155def SA1_seti : HInst< 26156(outs GeneralSubRegs:$Rd16), 26157(ins u32_0Imm:$Ii), 26158"$Rd16 = #$Ii", 26159tc_3d14a17b, TypeSUBINSN>, Enc_e39bb2 { 26160let Inst{12-10} = 0b010; 26161let hasNewValue = 1; 26162let opNewValue = 0; 26163let AsmVariantName = "NonParsable"; 26164let DecoderNamespace = "SUBINSN_A"; 26165let isExtendable = 1; 26166let opExtendable = 1; 26167let isExtentSigned = 0; 26168let opExtentBits = 6; 26169let opExtentAlign = 0; 26170} 26171def SA1_setin1 : HInst< 26172(outs GeneralSubRegs:$Rd16), 26173(ins n1Const:$n1), 26174"$Rd16 = #$n1", 26175tc_3d14a17b, TypeSUBINSN>, Enc_7a0ea6 { 26176let Inst{12-4} = 0b110100000; 26177let hasNewValue = 1; 26178let opNewValue = 0; 26179let AsmVariantName = "NonParsable"; 26180let DecoderNamespace = "SUBINSN_A"; 26181} 26182def SA1_sxtb : HInst< 26183(outs GeneralSubRegs:$Rd16), 26184(ins GeneralSubRegs:$Rs16), 26185"$Rd16 = sxtb($Rs16)", 26186tc_3d14a17b, TypeSUBINSN>, Enc_97d666 { 26187let Inst{12-8} = 0b10101; 26188let hasNewValue = 1; 26189let opNewValue = 0; 26190let AsmVariantName = "NonParsable"; 26191let DecoderNamespace = "SUBINSN_A"; 26192} 26193def SA1_sxth : HInst< 26194(outs GeneralSubRegs:$Rd16), 26195(ins GeneralSubRegs:$Rs16), 26196"$Rd16 = sxth($Rs16)", 26197tc_3d14a17b, TypeSUBINSN>, Enc_97d666 { 26198let Inst{12-8} = 0b10100; 26199let hasNewValue = 1; 26200let opNewValue = 0; 26201let AsmVariantName = "NonParsable"; 26202let DecoderNamespace = "SUBINSN_A"; 26203} 26204def SA1_tfr : HInst< 26205(outs GeneralSubRegs:$Rd16), 26206(ins GeneralSubRegs:$Rs16), 26207"$Rd16 = $Rs16", 26208tc_3d14a17b, TypeSUBINSN>, Enc_97d666 { 26209let Inst{12-8} = 0b10000; 26210let hasNewValue = 1; 26211let opNewValue = 0; 26212let AsmVariantName = "NonParsable"; 26213let DecoderNamespace = "SUBINSN_A"; 26214} 26215def SA1_zxtb : HInst< 26216(outs GeneralSubRegs:$Rd16), 26217(ins GeneralSubRegs:$Rs16), 26218"$Rd16 = and($Rs16,#255)", 26219tc_3d14a17b, TypeSUBINSN>, Enc_97d666 { 26220let Inst{12-8} = 0b10111; 26221let hasNewValue = 1; 26222let opNewValue = 0; 26223let AsmVariantName = "NonParsable"; 26224let DecoderNamespace = "SUBINSN_A"; 26225} 26226def SA1_zxth : HInst< 26227(outs GeneralSubRegs:$Rd16), 26228(ins GeneralSubRegs:$Rs16), 26229"$Rd16 = zxth($Rs16)", 26230tc_3d14a17b, TypeSUBINSN>, Enc_97d666 { 26231let Inst{12-8} = 0b10110; 26232let hasNewValue = 1; 26233let opNewValue = 0; 26234let AsmVariantName = "NonParsable"; 26235let DecoderNamespace = "SUBINSN_A"; 26236} 26237def SL1_loadri_io : HInst< 26238(outs GeneralSubRegs:$Rd16), 26239(ins GeneralSubRegs:$Rs16, u4_2Imm:$Ii), 26240"$Rd16 = memw($Rs16+#$Ii)", 26241tc_4222e6bf, TypeSUBINSN>, Enc_53dca9 { 26242let Inst{12-12} = 0b0; 26243let hasNewValue = 1; 26244let opNewValue = 0; 26245let addrMode = BaseImmOffset; 26246let accessSize = WordAccess; 26247let AsmVariantName = "NonParsable"; 26248let mayLoad = 1; 26249let DecoderNamespace = "SUBINSN_L1"; 26250} 26251def SL1_loadrub_io : HInst< 26252(outs GeneralSubRegs:$Rd16), 26253(ins GeneralSubRegs:$Rs16, u4_0Imm:$Ii), 26254"$Rd16 = memub($Rs16+#$Ii)", 26255tc_4222e6bf, TypeSUBINSN>, Enc_c175d0 { 26256let Inst{12-12} = 0b1; 26257let hasNewValue = 1; 26258let opNewValue = 0; 26259let addrMode = BaseImmOffset; 26260let accessSize = ByteAccess; 26261let AsmVariantName = "NonParsable"; 26262let mayLoad = 1; 26263let DecoderNamespace = "SUBINSN_L1"; 26264} 26265def SL2_deallocframe : HInst< 26266(outs), 26267(ins), 26268"deallocframe", 26269tc_937dd41c, TypeSUBINSN>, Enc_e3b0c4 { 26270let Inst{12-0} = 0b1111100000000; 26271let accessSize = DoubleWordAccess; 26272let AsmVariantName = "NonParsable"; 26273let mayLoad = 1; 26274let Uses = [FRAMEKEY, R30]; 26275let Defs = [R29, R30, R31]; 26276let DecoderNamespace = "SUBINSN_L2"; 26277} 26278def SL2_jumpr31 : HInst< 26279(outs), 26280(ins), 26281"jumpr r31", 26282tc_a4ee89db, TypeSUBINSN>, Enc_e3b0c4 { 26283let Inst{12-0} = 0b1111111000000; 26284let isTerminator = 1; 26285let isIndirectBranch = 1; 26286let AsmVariantName = "NonParsable"; 26287let cofMax1 = 1; 26288let isReturn = 1; 26289let Uses = [R31]; 26290let Defs = [PC]; 26291let DecoderNamespace = "SUBINSN_L2"; 26292} 26293def SL2_jumpr31_f : HInst< 26294(outs), 26295(ins), 26296"if (!p0) jumpr r31", 26297tc_a4ee89db, TypeSUBINSN>, Enc_e3b0c4 { 26298let Inst{12-0} = 0b1111111000101; 26299let isPredicated = 1; 26300let isPredicatedFalse = 1; 26301let isTerminator = 1; 26302let isIndirectBranch = 1; 26303let AsmVariantName = "NonParsable"; 26304let cofMax1 = 1; 26305let isReturn = 1; 26306let Uses = [P0, R31]; 26307let Defs = [PC]; 26308let isTaken = Inst{4}; 26309let DecoderNamespace = "SUBINSN_L2"; 26310} 26311def SL2_jumpr31_fnew : HInst< 26312(outs), 26313(ins), 26314"if (!p0.new) jumpr:nt r31", 26315tc_a4ee89db, TypeSUBINSN>, Enc_e3b0c4 { 26316let Inst{12-0} = 0b1111111000111; 26317let isPredicated = 1; 26318let isPredicatedFalse = 1; 26319let isTerminator = 1; 26320let isIndirectBranch = 1; 26321let AsmVariantName = "NonParsable"; 26322let isPredicatedNew = 1; 26323let cofMax1 = 1; 26324let isReturn = 1; 26325let Uses = [P0, R31]; 26326let Defs = [PC]; 26327let isTaken = Inst{4}; 26328let DecoderNamespace = "SUBINSN_L2"; 26329} 26330def SL2_jumpr31_t : HInst< 26331(outs), 26332(ins), 26333"if (p0) jumpr r31", 26334tc_a4ee89db, TypeSUBINSN>, Enc_e3b0c4 { 26335let Inst{12-0} = 0b1111111000100; 26336let isPredicated = 1; 26337let isTerminator = 1; 26338let isIndirectBranch = 1; 26339let AsmVariantName = "NonParsable"; 26340let cofMax1 = 1; 26341let isReturn = 1; 26342let Uses = [P0, R31]; 26343let Defs = [PC]; 26344let isTaken = Inst{4}; 26345let DecoderNamespace = "SUBINSN_L2"; 26346} 26347def SL2_jumpr31_tnew : HInst< 26348(outs), 26349(ins), 26350"if (p0.new) jumpr:nt r31", 26351tc_a4ee89db, TypeSUBINSN>, Enc_e3b0c4 { 26352let Inst{12-0} = 0b1111111000110; 26353let isPredicated = 1; 26354let isTerminator = 1; 26355let isIndirectBranch = 1; 26356let AsmVariantName = "NonParsable"; 26357let isPredicatedNew = 1; 26358let cofMax1 = 1; 26359let isReturn = 1; 26360let Uses = [P0, R31]; 26361let Defs = [PC]; 26362let isTaken = Inst{4}; 26363let DecoderNamespace = "SUBINSN_L2"; 26364} 26365def SL2_loadrb_io : HInst< 26366(outs GeneralSubRegs:$Rd16), 26367(ins GeneralSubRegs:$Rs16, u3_0Imm:$Ii), 26368"$Rd16 = memb($Rs16+#$Ii)", 26369tc_4222e6bf, TypeSUBINSN>, Enc_2fbf3c { 26370let Inst{12-11} = 0b10; 26371let hasNewValue = 1; 26372let opNewValue = 0; 26373let addrMode = BaseImmOffset; 26374let accessSize = ByteAccess; 26375let AsmVariantName = "NonParsable"; 26376let mayLoad = 1; 26377let DecoderNamespace = "SUBINSN_L2"; 26378} 26379def SL2_loadrd_sp : HInst< 26380(outs GeneralDoubleLow8Regs:$Rdd8), 26381(ins u5_3Imm:$Ii), 26382"$Rdd8 = memd(r29+#$Ii)", 26383tc_8a6d0d94, TypeSUBINSN>, Enc_86a14b { 26384let Inst{12-8} = 0b11110; 26385let hasNewValue = 1; 26386let opNewValue = 0; 26387let addrMode = BaseImmOffset; 26388let accessSize = DoubleWordAccess; 26389let AsmVariantName = "NonParsable"; 26390let mayLoad = 1; 26391let Uses = [R29]; 26392let DecoderNamespace = "SUBINSN_L2"; 26393} 26394def SL2_loadrh_io : HInst< 26395(outs GeneralSubRegs:$Rd16), 26396(ins GeneralSubRegs:$Rs16, u3_1Imm:$Ii), 26397"$Rd16 = memh($Rs16+#$Ii)", 26398tc_4222e6bf, TypeSUBINSN>, Enc_2bae10 { 26399let Inst{12-11} = 0b00; 26400let hasNewValue = 1; 26401let opNewValue = 0; 26402let addrMode = BaseImmOffset; 26403let accessSize = HalfWordAccess; 26404let AsmVariantName = "NonParsable"; 26405let mayLoad = 1; 26406let DecoderNamespace = "SUBINSN_L2"; 26407} 26408def SL2_loadri_sp : HInst< 26409(outs GeneralSubRegs:$Rd16), 26410(ins u5_2Imm:$Ii), 26411"$Rd16 = memw(r29+#$Ii)", 26412tc_8a6d0d94, TypeSUBINSN>, Enc_51635c { 26413let Inst{12-9} = 0b1110; 26414let hasNewValue = 1; 26415let opNewValue = 0; 26416let addrMode = BaseImmOffset; 26417let accessSize = WordAccess; 26418let AsmVariantName = "NonParsable"; 26419let mayLoad = 1; 26420let Uses = [R29]; 26421let DecoderNamespace = "SUBINSN_L2"; 26422} 26423def SL2_loadruh_io : HInst< 26424(outs GeneralSubRegs:$Rd16), 26425(ins GeneralSubRegs:$Rs16, u3_1Imm:$Ii), 26426"$Rd16 = memuh($Rs16+#$Ii)", 26427tc_4222e6bf, TypeSUBINSN>, Enc_2bae10 { 26428let Inst{12-11} = 0b01; 26429let hasNewValue = 1; 26430let opNewValue = 0; 26431let addrMode = BaseImmOffset; 26432let accessSize = HalfWordAccess; 26433let AsmVariantName = "NonParsable"; 26434let mayLoad = 1; 26435let DecoderNamespace = "SUBINSN_L2"; 26436} 26437def SL2_return : HInst< 26438(outs), 26439(ins), 26440"dealloc_return", 26441tc_c818ff7f, TypeSUBINSN>, Enc_e3b0c4 { 26442let Inst{12-0} = 0b1111101000000; 26443let isTerminator = 1; 26444let isIndirectBranch = 1; 26445let accessSize = DoubleWordAccess; 26446let AsmVariantName = "NonParsable"; 26447let mayLoad = 1; 26448let cofMax1 = 1; 26449let isRestrictNoSlot1Store = 1; 26450let isReturn = 1; 26451let Uses = [FRAMEKEY, R30]; 26452let Defs = [PC, R29, R30, R31]; 26453let DecoderNamespace = "SUBINSN_L2"; 26454} 26455def SL2_return_f : HInst< 26456(outs), 26457(ins), 26458"if (!p0) dealloc_return", 26459tc_c818ff7f, TypeSUBINSN>, Enc_e3b0c4 { 26460let Inst{12-0} = 0b1111101000101; 26461let isPredicated = 1; 26462let isPredicatedFalse = 1; 26463let isTerminator = 1; 26464let isIndirectBranch = 1; 26465let accessSize = DoubleWordAccess; 26466let AsmVariantName = "NonParsable"; 26467let mayLoad = 1; 26468let cofMax1 = 1; 26469let isRestrictNoSlot1Store = 1; 26470let isReturn = 1; 26471let Uses = [FRAMEKEY, P0, R30]; 26472let Defs = [PC, R29, R30, R31]; 26473let isTaken = Inst{4}; 26474let DecoderNamespace = "SUBINSN_L2"; 26475} 26476def SL2_return_fnew : HInst< 26477(outs), 26478(ins), 26479"if (!p0.new) dealloc_return:nt", 26480tc_c818ff7f, TypeSUBINSN>, Enc_e3b0c4 { 26481let Inst{12-0} = 0b1111101000111; 26482let isPredicated = 1; 26483let isPredicatedFalse = 1; 26484let isTerminator = 1; 26485let isIndirectBranch = 1; 26486let accessSize = DoubleWordAccess; 26487let AsmVariantName = "NonParsable"; 26488let isPredicatedNew = 1; 26489let mayLoad = 1; 26490let cofMax1 = 1; 26491let isRestrictNoSlot1Store = 1; 26492let isReturn = 1; 26493let Uses = [FRAMEKEY, P0, R30]; 26494let Defs = [PC, R29, R30, R31]; 26495let isTaken = Inst{4}; 26496let DecoderNamespace = "SUBINSN_L2"; 26497} 26498def SL2_return_t : HInst< 26499(outs), 26500(ins), 26501"if (p0) dealloc_return", 26502tc_c818ff7f, TypeSUBINSN>, Enc_e3b0c4 { 26503let Inst{12-0} = 0b1111101000100; 26504let isPredicated = 1; 26505let isTerminator = 1; 26506let isIndirectBranch = 1; 26507let accessSize = DoubleWordAccess; 26508let AsmVariantName = "NonParsable"; 26509let mayLoad = 1; 26510let cofMax1 = 1; 26511let isRestrictNoSlot1Store = 1; 26512let isReturn = 1; 26513let Uses = [FRAMEKEY, P0, R30]; 26514let Defs = [PC, R29, R30, R31]; 26515let isTaken = Inst{4}; 26516let DecoderNamespace = "SUBINSN_L2"; 26517} 26518def SL2_return_tnew : HInst< 26519(outs), 26520(ins), 26521"if (p0.new) dealloc_return:nt", 26522tc_c818ff7f, TypeSUBINSN>, Enc_e3b0c4 { 26523let Inst{12-0} = 0b1111101000110; 26524let isPredicated = 1; 26525let isTerminator = 1; 26526let isIndirectBranch = 1; 26527let accessSize = DoubleWordAccess; 26528let AsmVariantName = "NonParsable"; 26529let isPredicatedNew = 1; 26530let mayLoad = 1; 26531let cofMax1 = 1; 26532let isRestrictNoSlot1Store = 1; 26533let isReturn = 1; 26534let Uses = [FRAMEKEY, P0, R30]; 26535let Defs = [PC, R29, R30, R31]; 26536let isTaken = Inst{4}; 26537let DecoderNamespace = "SUBINSN_L2"; 26538} 26539def SS1_storeb_io : HInst< 26540(outs), 26541(ins GeneralSubRegs:$Rs16, u4_0Imm:$Ii, GeneralSubRegs:$Rt16), 26542"memb($Rs16+#$Ii) = $Rt16", 26543tc_ae5babd7, TypeSUBINSN>, Enc_b38ffc { 26544let Inst{12-12} = 0b1; 26545let addrMode = BaseImmOffset; 26546let accessSize = ByteAccess; 26547let AsmVariantName = "NonParsable"; 26548let mayStore = 1; 26549let DecoderNamespace = "SUBINSN_S1"; 26550} 26551def SS1_storew_io : HInst< 26552(outs), 26553(ins GeneralSubRegs:$Rs16, u4_2Imm:$Ii, GeneralSubRegs:$Rt16), 26554"memw($Rs16+#$Ii) = $Rt16", 26555tc_ae5babd7, TypeSUBINSN>, Enc_f55a0c { 26556let Inst{12-12} = 0b0; 26557let addrMode = BaseImmOffset; 26558let accessSize = WordAccess; 26559let AsmVariantName = "NonParsable"; 26560let mayStore = 1; 26561let DecoderNamespace = "SUBINSN_S1"; 26562} 26563def SS2_allocframe : HInst< 26564(outs), 26565(ins u5_3Imm:$Ii), 26566"allocframe(#$Ii)", 26567tc_1242dc2a, TypeSUBINSN>, Enc_6f70ca { 26568let Inst{3-0} = 0b0000; 26569let Inst{12-9} = 0b1110; 26570let addrMode = BaseImmOffset; 26571let accessSize = DoubleWordAccess; 26572let AsmVariantName = "NonParsable"; 26573let mayStore = 1; 26574let Uses = [FRAMEKEY, FRAMELIMIT, R29, R30, R31]; 26575let Defs = [R29, R30]; 26576let DecoderNamespace = "SUBINSN_S2"; 26577} 26578def SS2_storebi0 : HInst< 26579(outs), 26580(ins GeneralSubRegs:$Rs16, u4_0Imm:$Ii), 26581"memb($Rs16+#$Ii) = #0", 26582tc_44d5a428, TypeSUBINSN>, Enc_84d359 { 26583let Inst{12-8} = 0b10010; 26584let addrMode = BaseImmOffset; 26585let accessSize = ByteAccess; 26586let AsmVariantName = "NonParsable"; 26587let mayStore = 1; 26588let DecoderNamespace = "SUBINSN_S2"; 26589} 26590def SS2_storebi1 : HInst< 26591(outs), 26592(ins GeneralSubRegs:$Rs16, u4_0Imm:$Ii), 26593"memb($Rs16+#$Ii) = #1", 26594tc_44d5a428, TypeSUBINSN>, Enc_84d359 { 26595let Inst{12-8} = 0b10011; 26596let addrMode = BaseImmOffset; 26597let accessSize = ByteAccess; 26598let AsmVariantName = "NonParsable"; 26599let mayStore = 1; 26600let DecoderNamespace = "SUBINSN_S2"; 26601} 26602def SS2_stored_sp : HInst< 26603(outs), 26604(ins s6_3Imm:$Ii, GeneralDoubleLow8Regs:$Rtt8), 26605"memd(r29+#$Ii) = $Rtt8", 26606tc_0655b949, TypeSUBINSN>, Enc_b8309d { 26607let Inst{12-9} = 0b0101; 26608let addrMode = BaseImmOffset; 26609let accessSize = DoubleWordAccess; 26610let AsmVariantName = "NonParsable"; 26611let mayStore = 1; 26612let Uses = [R29]; 26613let DecoderNamespace = "SUBINSN_S2"; 26614} 26615def SS2_storeh_io : HInst< 26616(outs), 26617(ins GeneralSubRegs:$Rs16, u3_1Imm:$Ii, GeneralSubRegs:$Rt16), 26618"memh($Rs16+#$Ii) = $Rt16", 26619tc_ae5babd7, TypeSUBINSN>, Enc_625deb { 26620let Inst{12-11} = 0b00; 26621let addrMode = BaseImmOffset; 26622let accessSize = HalfWordAccess; 26623let AsmVariantName = "NonParsable"; 26624let mayStore = 1; 26625let DecoderNamespace = "SUBINSN_S2"; 26626} 26627def SS2_storew_sp : HInst< 26628(outs), 26629(ins u5_2Imm:$Ii, GeneralSubRegs:$Rt16), 26630"memw(r29+#$Ii) = $Rt16", 26631tc_0655b949, TypeSUBINSN>, Enc_87c142 { 26632let Inst{12-9} = 0b0100; 26633let addrMode = BaseImmOffset; 26634let accessSize = WordAccess; 26635let AsmVariantName = "NonParsable"; 26636let mayStore = 1; 26637let Uses = [R29]; 26638let DecoderNamespace = "SUBINSN_S2"; 26639} 26640def SS2_storewi0 : HInst< 26641(outs), 26642(ins GeneralSubRegs:$Rs16, u4_2Imm:$Ii), 26643"memw($Rs16+#$Ii) = #0", 26644tc_44d5a428, TypeSUBINSN>, Enc_a6ce9c { 26645let Inst{12-8} = 0b10000; 26646let addrMode = BaseImmOffset; 26647let accessSize = WordAccess; 26648let AsmVariantName = "NonParsable"; 26649let mayStore = 1; 26650let DecoderNamespace = "SUBINSN_S2"; 26651} 26652def SS2_storewi1 : HInst< 26653(outs), 26654(ins GeneralSubRegs:$Rs16, u4_2Imm:$Ii), 26655"memw($Rs16+#$Ii) = #1", 26656tc_44d5a428, TypeSUBINSN>, Enc_a6ce9c { 26657let Inst{12-8} = 0b10001; 26658let addrMode = BaseImmOffset; 26659let accessSize = WordAccess; 26660let AsmVariantName = "NonParsable"; 26661let mayStore = 1; 26662let DecoderNamespace = "SUBINSN_S2"; 26663} 26664def V6_MAP_equb : HInst< 26665(outs HvxQR:$Qd4), 26666(ins HvxVR:$Vu32, HvxVR:$Vv32), 26667"$Qd4 = vcmp.eq($Vu32.ub,$Vv32.ub)", 26668PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26669let hasNewValue = 1; 26670let opNewValue = 0; 26671let isCVI = 1; 26672let isPseudo = 1; 26673let isCodeGenOnly = 1; 26674let DecoderNamespace = "EXT_mmvec"; 26675} 26676def V6_MAP_equb_and : HInst< 26677(outs HvxQR:$Qx4), 26678(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 26679"$Qx4 &= vcmp.eq($Vu32.ub,$Vv32.ub)", 26680PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26681let isCVI = 1; 26682let isPseudo = 1; 26683let isCodeGenOnly = 1; 26684let DecoderNamespace = "EXT_mmvec"; 26685let Constraints = "$Qx4 = $Qx4in"; 26686} 26687def V6_MAP_equb_ior : HInst< 26688(outs HvxQR:$Qx4), 26689(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 26690"$Qx4 |= vcmp.eq($Vu32.ub,$Vv32.ub)", 26691PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26692let isAccumulator = 1; 26693let isCVI = 1; 26694let isPseudo = 1; 26695let isCodeGenOnly = 1; 26696let DecoderNamespace = "EXT_mmvec"; 26697let Constraints = "$Qx4 = $Qx4in"; 26698} 26699def V6_MAP_equb_xor : HInst< 26700(outs HvxQR:$Qx4), 26701(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 26702"$Qx4 ^= vcmp.eq($Vu32.ub,$Vv32.ub)", 26703PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26704let isCVI = 1; 26705let isPseudo = 1; 26706let isCodeGenOnly = 1; 26707let DecoderNamespace = "EXT_mmvec"; 26708let Constraints = "$Qx4 = $Qx4in"; 26709} 26710def V6_MAP_equh : HInst< 26711(outs HvxQR:$Qd4), 26712(ins HvxVR:$Vu32, HvxVR:$Vv32), 26713"$Qd4 = vcmp.eq($Vu32.uh,$Vv32.uh)", 26714PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26715let hasNewValue = 1; 26716let opNewValue = 0; 26717let isCVI = 1; 26718let isPseudo = 1; 26719let isCodeGenOnly = 1; 26720let DecoderNamespace = "EXT_mmvec"; 26721} 26722def V6_MAP_equh_and : HInst< 26723(outs HvxQR:$Qx4), 26724(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 26725"$Qx4 &= vcmp.eq($Vu32.uh,$Vv32.uh)", 26726PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26727let isCVI = 1; 26728let isPseudo = 1; 26729let isCodeGenOnly = 1; 26730let DecoderNamespace = "EXT_mmvec"; 26731let Constraints = "$Qx4 = $Qx4in"; 26732} 26733def V6_MAP_equh_ior : HInst< 26734(outs HvxQR:$Qx4), 26735(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 26736"$Qx4 |= vcmp.eq($Vu32.uh,$Vv32.uh)", 26737PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26738let isAccumulator = 1; 26739let isCVI = 1; 26740let isPseudo = 1; 26741let isCodeGenOnly = 1; 26742let DecoderNamespace = "EXT_mmvec"; 26743let Constraints = "$Qx4 = $Qx4in"; 26744} 26745def V6_MAP_equh_xor : HInst< 26746(outs HvxQR:$Qx4), 26747(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 26748"$Qx4 ^= vcmp.eq($Vu32.uh,$Vv32.uh)", 26749PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26750let isCVI = 1; 26751let isPseudo = 1; 26752let isCodeGenOnly = 1; 26753let DecoderNamespace = "EXT_mmvec"; 26754let Constraints = "$Qx4 = $Qx4in"; 26755} 26756def V6_MAP_equw : HInst< 26757(outs HvxQR:$Qd4), 26758(ins HvxVR:$Vu32, HvxVR:$Vv32), 26759"$Qd4 = vcmp.eq($Vu32.uw,$Vv32.uw)", 26760PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26761let hasNewValue = 1; 26762let opNewValue = 0; 26763let isCVI = 1; 26764let isPseudo = 1; 26765let isCodeGenOnly = 1; 26766let DecoderNamespace = "EXT_mmvec"; 26767} 26768def V6_MAP_equw_and : HInst< 26769(outs HvxQR:$Qx4), 26770(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 26771"$Qx4 &= vcmp.eq($Vu32.uw,$Vv32.uw)", 26772PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26773let isCVI = 1; 26774let isPseudo = 1; 26775let isCodeGenOnly = 1; 26776let DecoderNamespace = "EXT_mmvec"; 26777let Constraints = "$Qx4 = $Qx4in"; 26778} 26779def V6_MAP_equw_ior : HInst< 26780(outs HvxQR:$Qx4), 26781(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 26782"$Qx4 |= vcmp.eq($Vu32.uw,$Vv32.uw)", 26783PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26784let isAccumulator = 1; 26785let isCVI = 1; 26786let isPseudo = 1; 26787let isCodeGenOnly = 1; 26788let DecoderNamespace = "EXT_mmvec"; 26789let Constraints = "$Qx4 = $Qx4in"; 26790} 26791def V6_MAP_equw_xor : HInst< 26792(outs HvxQR:$Qx4), 26793(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 26794"$Qx4 ^= vcmp.eq($Vu32.uw,$Vv32.uw)", 26795PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26796let isCVI = 1; 26797let isPseudo = 1; 26798let isCodeGenOnly = 1; 26799let DecoderNamespace = "EXT_mmvec"; 26800let Constraints = "$Qx4 = $Qx4in"; 26801} 26802def V6_dbl_ld0 : HInst< 26803(outs HvxWR:$Vdd32), 26804(ins IntRegs:$Rt32), 26805"$Vdd32 = vmem($Rt32)", 26806PSEUDO, TypeMAPPING>, Requires<[UseHVXV73]> { 26807let hasNewValue = 1; 26808let opNewValue = 0; 26809let isCVLoad = 1; 26810let isCVI = 1; 26811let mayLoad = 1; 26812let isPseudo = 1; 26813let isCodeGenOnly = 1; 26814let DecoderNamespace = "EXT_mmvec"; 26815} 26816def V6_dbl_st0 : HInst< 26817(outs), 26818(ins IntRegs:$Rt32, HvxWR:$Vss32), 26819"vmem($Rt32) = $Vss32", 26820PSEUDO, TypeMAPPING>, Requires<[UseHVXV73]> { 26821let isCVI = 1; 26822let mayStore = 1; 26823let isPseudo = 1; 26824let isCodeGenOnly = 1; 26825let DecoderNamespace = "EXT_mmvec"; 26826} 26827def V6_extractw : HInst< 26828(outs IntRegs:$Rd32), 26829(ins HvxVR:$Vu32, IntRegs:$Rs32), 26830"$Rd32 = vextract($Vu32,$Rs32)", 26831tc_540c3da3, TypeLD>, Enc_50e578, Requires<[UseHVXV60]> { 26832let Inst{7-5} = 0b001; 26833let Inst{13-13} = 0b0; 26834let Inst{31-21} = 0b10010010000; 26835let hasNewValue = 1; 26836let opNewValue = 0; 26837let isCVI = 1; 26838let isHVXALU = 1; 26839let isHVXALU2SRC = 1; 26840let isSolo = 1; 26841let mayLoad = 1; 26842let DecoderNamespace = "EXT_mmvec"; 26843} 26844def V6_extractw_alt : HInst< 26845(outs IntRegs:$Rd32), 26846(ins HvxVR:$Vu32, IntRegs:$Rs32), 26847"$Rd32.w = vextract($Vu32,$Rs32)", 26848PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 26849let hasNewValue = 1; 26850let opNewValue = 0; 26851let isCVI = 1; 26852let isPseudo = 1; 26853let isCodeGenOnly = 1; 26854let DecoderNamespace = "EXT_mmvec"; 26855} 26856def V6_hi : HInst< 26857(outs HvxVR:$Vd32), 26858(ins HvxWR:$Vss32), 26859"$Vd32 = hi($Vss32)", 26860CVI_VA, TypeCVI_VA>, Requires<[UseHVXV60]> { 26861let hasNewValue = 1; 26862let opNewValue = 0; 26863let isCVI = 1; 26864let isPseudo = 1; 26865let DecoderNamespace = "EXT_mmvec"; 26866} 26867def V6_ld0 : HInst< 26868(outs HvxVR:$Vd32), 26869(ins IntRegs:$Rt32), 26870"$Vd32 = vmem($Rt32)", 26871PSEUDO, TypeCVI_VM_LD>, Requires<[UseHVXV60]> { 26872let hasNewValue = 1; 26873let opNewValue = 0; 26874let isCVI = 1; 26875let isPseudo = 1; 26876let isCodeGenOnly = 1; 26877let DecoderNamespace = "EXT_mmvec"; 26878} 26879def V6_ldcnp0 : HInst< 26880(outs HvxVR:$Vd32), 26881(ins PredRegs:$Pv4, IntRegs:$Rt32), 26882"if (!$Pv4) $Vd32.cur = vmem($Rt32)", 26883PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 26884let hasNewValue = 1; 26885let opNewValue = 0; 26886let isCVI = 1; 26887let isPseudo = 1; 26888let isCodeGenOnly = 1; 26889let DecoderNamespace = "EXT_mmvec"; 26890} 26891def V6_ldcnpnt0 : HInst< 26892(outs HvxVR:$Vd32), 26893(ins PredRegs:$Pv4, IntRegs:$Rt32), 26894"if (!$Pv4) $Vd32.cur = vmem($Rt32):nt", 26895PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 26896let hasNewValue = 1; 26897let opNewValue = 0; 26898let isCVI = 1; 26899let isPseudo = 1; 26900let isCodeGenOnly = 1; 26901let DecoderNamespace = "EXT_mmvec"; 26902} 26903def V6_ldcp0 : HInst< 26904(outs HvxVR:$Vd32), 26905(ins PredRegs:$Pv4, IntRegs:$Rt32), 26906"if ($Pv4) $Vd32.cur = vmem($Rt32)", 26907PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 26908let hasNewValue = 1; 26909let opNewValue = 0; 26910let isCVI = 1; 26911let isPseudo = 1; 26912let isCodeGenOnly = 1; 26913let DecoderNamespace = "EXT_mmvec"; 26914} 26915def V6_ldcpnt0 : HInst< 26916(outs HvxVR:$Vd32), 26917(ins PredRegs:$Pv4, IntRegs:$Rt32), 26918"if ($Pv4) $Vd32.cur = vmem($Rt32):nt", 26919PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 26920let hasNewValue = 1; 26921let opNewValue = 0; 26922let isCVI = 1; 26923let isPseudo = 1; 26924let isCodeGenOnly = 1; 26925let DecoderNamespace = "EXT_mmvec"; 26926} 26927def V6_ldnp0 : HInst< 26928(outs HvxVR:$Vd32), 26929(ins PredRegs:$Pv4, IntRegs:$Rt32), 26930"if (!$Pv4) $Vd32 = vmem($Rt32)", 26931PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 26932let hasNewValue = 1; 26933let opNewValue = 0; 26934let isCVI = 1; 26935let isPseudo = 1; 26936let isCodeGenOnly = 1; 26937let DecoderNamespace = "EXT_mmvec"; 26938} 26939def V6_ldnpnt0 : HInst< 26940(outs HvxVR:$Vd32), 26941(ins PredRegs:$Pv4, IntRegs:$Rt32), 26942"if (!$Pv4) $Vd32 = vmem($Rt32):nt", 26943PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 26944let hasNewValue = 1; 26945let opNewValue = 0; 26946let isCVI = 1; 26947let isPseudo = 1; 26948let isCodeGenOnly = 1; 26949let DecoderNamespace = "EXT_mmvec"; 26950} 26951def V6_ldnt0 : HInst< 26952(outs HvxVR:$Vd32), 26953(ins IntRegs:$Rt32), 26954"$Vd32 = vmem($Rt32):nt", 26955PSEUDO, TypeCVI_VM_LD>, Requires<[UseHVXV60]> { 26956let hasNewValue = 1; 26957let opNewValue = 0; 26958let isCVI = 1; 26959let isPseudo = 1; 26960let isCodeGenOnly = 1; 26961let DecoderNamespace = "EXT_mmvec"; 26962} 26963def V6_ldp0 : HInst< 26964(outs HvxVR:$Vd32), 26965(ins PredRegs:$Pv4, IntRegs:$Rt32), 26966"if ($Pv4) $Vd32 = vmem($Rt32)", 26967PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 26968let hasNewValue = 1; 26969let opNewValue = 0; 26970let isCVI = 1; 26971let isPseudo = 1; 26972let isCodeGenOnly = 1; 26973let DecoderNamespace = "EXT_mmvec"; 26974} 26975def V6_ldpnt0 : HInst< 26976(outs HvxVR:$Vd32), 26977(ins PredRegs:$Pv4, IntRegs:$Rt32), 26978"if ($Pv4) $Vd32 = vmem($Rt32):nt", 26979PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 26980let hasNewValue = 1; 26981let opNewValue = 0; 26982let isCVI = 1; 26983let isPseudo = 1; 26984let isCodeGenOnly = 1; 26985let DecoderNamespace = "EXT_mmvec"; 26986} 26987def V6_ldtnp0 : HInst< 26988(outs HvxVR:$Vd32), 26989(ins PredRegs:$Pv4, IntRegs:$Rt32), 26990"if (!$Pv4) $Vd32.tmp = vmem($Rt32)", 26991PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 26992let hasNewValue = 1; 26993let opNewValue = 0; 26994let isCVI = 1; 26995let isPseudo = 1; 26996let isCodeGenOnly = 1; 26997let DecoderNamespace = "EXT_mmvec"; 26998} 26999def V6_ldtnpnt0 : HInst< 27000(outs HvxVR:$Vd32), 27001(ins PredRegs:$Pv4, IntRegs:$Rt32), 27002"if (!$Pv4) $Vd32.tmp = vmem($Rt32):nt", 27003PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 27004let hasNewValue = 1; 27005let opNewValue = 0; 27006let isCVI = 1; 27007let isPseudo = 1; 27008let isCodeGenOnly = 1; 27009let DecoderNamespace = "EXT_mmvec"; 27010} 27011def V6_ldtp0 : HInst< 27012(outs HvxVR:$Vd32), 27013(ins PredRegs:$Pv4, IntRegs:$Rt32), 27014"if ($Pv4) $Vd32.tmp = vmem($Rt32)", 27015PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 27016let hasNewValue = 1; 27017let opNewValue = 0; 27018let isCVI = 1; 27019let isPseudo = 1; 27020let isCodeGenOnly = 1; 27021let DecoderNamespace = "EXT_mmvec"; 27022} 27023def V6_ldtpnt0 : HInst< 27024(outs HvxVR:$Vd32), 27025(ins PredRegs:$Pv4, IntRegs:$Rt32), 27026"if ($Pv4) $Vd32.tmp = vmem($Rt32):nt", 27027PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 27028let hasNewValue = 1; 27029let opNewValue = 0; 27030let isCVI = 1; 27031let isPseudo = 1; 27032let isCodeGenOnly = 1; 27033let DecoderNamespace = "EXT_mmvec"; 27034} 27035def V6_ldu0 : HInst< 27036(outs HvxVR:$Vd32), 27037(ins IntRegs:$Rt32), 27038"$Vd32 = vmemu($Rt32)", 27039PSEUDO, TypeCVI_VM_LD>, Requires<[UseHVXV60]> { 27040let hasNewValue = 1; 27041let opNewValue = 0; 27042let isCVI = 1; 27043let isPseudo = 1; 27044let isCodeGenOnly = 1; 27045let DecoderNamespace = "EXT_mmvec"; 27046} 27047def V6_lo : HInst< 27048(outs HvxVR:$Vd32), 27049(ins HvxWR:$Vss32), 27050"$Vd32 = lo($Vss32)", 27051CVI_VA, TypeCVI_VA>, Requires<[UseHVXV60]> { 27052let hasNewValue = 1; 27053let opNewValue = 0; 27054let isCVI = 1; 27055let isPseudo = 1; 27056let DecoderNamespace = "EXT_mmvec"; 27057} 27058def V6_lvsplatb : HInst< 27059(outs HvxVR:$Vd32), 27060(ins IntRegs:$Rt32), 27061"$Vd32.b = vsplat($Rt32)", 27062tc_c4edf264, TypeCVI_VX_LATE>, Enc_a5ed8a, Requires<[UseHVXV62]> { 27063let Inst{13-5} = 0b000000010; 27064let Inst{31-21} = 0b00011001110; 27065let hasNewValue = 1; 27066let opNewValue = 0; 27067let isCVI = 1; 27068let DecoderNamespace = "EXT_mmvec"; 27069} 27070def V6_lvsplath : HInst< 27071(outs HvxVR:$Vd32), 27072(ins IntRegs:$Rt32), 27073"$Vd32.h = vsplat($Rt32)", 27074tc_c4edf264, TypeCVI_VX_LATE>, Enc_a5ed8a, Requires<[UseHVXV62]> { 27075let Inst{13-5} = 0b000000001; 27076let Inst{31-21} = 0b00011001110; 27077let hasNewValue = 1; 27078let opNewValue = 0; 27079let isCVI = 1; 27080let DecoderNamespace = "EXT_mmvec"; 27081} 27082def V6_lvsplatw : HInst< 27083(outs HvxVR:$Vd32), 27084(ins IntRegs:$Rt32), 27085"$Vd32 = vsplat($Rt32)", 27086tc_c4edf264, TypeCVI_VX_LATE>, Enc_a5ed8a, Requires<[UseHVXV60]> { 27087let Inst{13-5} = 0b000000001; 27088let Inst{31-21} = 0b00011001101; 27089let hasNewValue = 1; 27090let opNewValue = 0; 27091let isCVI = 1; 27092let DecoderNamespace = "EXT_mmvec"; 27093} 27094def V6_pred_and : HInst< 27095(outs HvxQR:$Qd4), 27096(ins HvxQR:$Qs4, HvxQR:$Qt4), 27097"$Qd4 = and($Qs4,$Qt4)", 27098tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> { 27099let Inst{7-2} = 0b000000; 27100let Inst{13-10} = 0b0000; 27101let Inst{21-16} = 0b000011; 27102let Inst{31-24} = 0b00011110; 27103let hasNewValue = 1; 27104let opNewValue = 0; 27105let isCVI = 1; 27106let DecoderNamespace = "EXT_mmvec"; 27107} 27108def V6_pred_and_n : HInst< 27109(outs HvxQR:$Qd4), 27110(ins HvxQR:$Qs4, HvxQR:$Qt4), 27111"$Qd4 = and($Qs4,!$Qt4)", 27112tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> { 27113let Inst{7-2} = 0b000101; 27114let Inst{13-10} = 0b0000; 27115let Inst{21-16} = 0b000011; 27116let Inst{31-24} = 0b00011110; 27117let hasNewValue = 1; 27118let opNewValue = 0; 27119let isCVI = 1; 27120let DecoderNamespace = "EXT_mmvec"; 27121} 27122def V6_pred_not : HInst< 27123(outs HvxQR:$Qd4), 27124(ins HvxQR:$Qs4), 27125"$Qd4 = not($Qs4)", 27126tc_0ec46cf9, TypeCVI_VA>, Enc_bfbf03, Requires<[UseHVXV60]> { 27127let Inst{7-2} = 0b000010; 27128let Inst{13-10} = 0b0000; 27129let Inst{31-16} = 0b0001111000000011; 27130let hasNewValue = 1; 27131let opNewValue = 0; 27132let isCVI = 1; 27133let isHVXALU = 1; 27134let isHVXALU2SRC = 1; 27135let DecoderNamespace = "EXT_mmvec"; 27136} 27137def V6_pred_or : HInst< 27138(outs HvxQR:$Qd4), 27139(ins HvxQR:$Qs4, HvxQR:$Qt4), 27140"$Qd4 = or($Qs4,$Qt4)", 27141tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> { 27142let Inst{7-2} = 0b000001; 27143let Inst{13-10} = 0b0000; 27144let Inst{21-16} = 0b000011; 27145let Inst{31-24} = 0b00011110; 27146let hasNewValue = 1; 27147let opNewValue = 0; 27148let isCVI = 1; 27149let DecoderNamespace = "EXT_mmvec"; 27150} 27151def V6_pred_or_n : HInst< 27152(outs HvxQR:$Qd4), 27153(ins HvxQR:$Qs4, HvxQR:$Qt4), 27154"$Qd4 = or($Qs4,!$Qt4)", 27155tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> { 27156let Inst{7-2} = 0b000100; 27157let Inst{13-10} = 0b0000; 27158let Inst{21-16} = 0b000011; 27159let Inst{31-24} = 0b00011110; 27160let hasNewValue = 1; 27161let opNewValue = 0; 27162let isCVI = 1; 27163let DecoderNamespace = "EXT_mmvec"; 27164} 27165def V6_pred_scalar2 : HInst< 27166(outs HvxQR:$Qd4), 27167(ins IntRegs:$Rt32), 27168"$Qd4 = vsetq($Rt32)", 27169tc_5bf8afbb, TypeCVI_VP>, Enc_7222b7, Requires<[UseHVXV60]> { 27170let Inst{13-2} = 0b000000010001; 27171let Inst{31-21} = 0b00011001101; 27172let hasNewValue = 1; 27173let opNewValue = 0; 27174let isCVI = 1; 27175let DecoderNamespace = "EXT_mmvec"; 27176} 27177def V6_pred_scalar2v2 : HInst< 27178(outs HvxQR:$Qd4), 27179(ins IntRegs:$Rt32), 27180"$Qd4 = vsetq2($Rt32)", 27181tc_5bf8afbb, TypeCVI_VP>, Enc_7222b7, Requires<[UseHVXV62]> { 27182let Inst{13-2} = 0b000000010011; 27183let Inst{31-21} = 0b00011001101; 27184let hasNewValue = 1; 27185let opNewValue = 0; 27186let isCVI = 1; 27187let DecoderNamespace = "EXT_mmvec"; 27188} 27189def V6_pred_xor : HInst< 27190(outs HvxQR:$Qd4), 27191(ins HvxQR:$Qs4, HvxQR:$Qt4), 27192"$Qd4 = xor($Qs4,$Qt4)", 27193tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> { 27194let Inst{7-2} = 0b000011; 27195let Inst{13-10} = 0b0000; 27196let Inst{21-16} = 0b000011; 27197let Inst{31-24} = 0b00011110; 27198let hasNewValue = 1; 27199let opNewValue = 0; 27200let isCVI = 1; 27201let DecoderNamespace = "EXT_mmvec"; 27202} 27203def V6_shuffeqh : HInst< 27204(outs HvxQR:$Qd4), 27205(ins HvxQR:$Qs4, HvxQR:$Qt4), 27206"$Qd4.b = vshuffe($Qs4.h,$Qt4.h)", 27207tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV62]> { 27208let Inst{7-2} = 0b000110; 27209let Inst{13-10} = 0b0000; 27210let Inst{21-16} = 0b000011; 27211let Inst{31-24} = 0b00011110; 27212let hasNewValue = 1; 27213let opNewValue = 0; 27214let isCVI = 1; 27215let DecoderNamespace = "EXT_mmvec"; 27216} 27217def V6_shuffeqw : HInst< 27218(outs HvxQR:$Qd4), 27219(ins HvxQR:$Qs4, HvxQR:$Qt4), 27220"$Qd4.h = vshuffe($Qs4.w,$Qt4.w)", 27221tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV62]> { 27222let Inst{7-2} = 0b000111; 27223let Inst{13-10} = 0b0000; 27224let Inst{21-16} = 0b000011; 27225let Inst{31-24} = 0b00011110; 27226let hasNewValue = 1; 27227let opNewValue = 0; 27228let isCVI = 1; 27229let DecoderNamespace = "EXT_mmvec"; 27230} 27231def V6_st0 : HInst< 27232(outs), 27233(ins IntRegs:$Rt32, HvxVR:$Vs32), 27234"vmem($Rt32) = $Vs32", 27235PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 27236let isCVI = 1; 27237let isPseudo = 1; 27238let isCodeGenOnly = 1; 27239let DecoderNamespace = "EXT_mmvec"; 27240} 27241def V6_stn0 : HInst< 27242(outs), 27243(ins IntRegs:$Rt32, HvxVR:$Os8), 27244"vmem($Rt32) = $Os8.new", 27245PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 27246let isCVI = 1; 27247let isPseudo = 1; 27248let isCodeGenOnly = 1; 27249let DecoderNamespace = "EXT_mmvec"; 27250let opNewValue = 1; 27251} 27252def V6_stnnt0 : HInst< 27253(outs), 27254(ins IntRegs:$Rt32, HvxVR:$Os8), 27255"vmem($Rt32):nt = $Os8.new", 27256PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 27257let isCVI = 1; 27258let isPseudo = 1; 27259let isCodeGenOnly = 1; 27260let DecoderNamespace = "EXT_mmvec"; 27261let opNewValue = 1; 27262} 27263def V6_stnp0 : HInst< 27264(outs), 27265(ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32), 27266"if (!$Pv4) vmem($Rt32) = $Vs32", 27267PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 27268let isCVI = 1; 27269let isPseudo = 1; 27270let isCodeGenOnly = 1; 27271let DecoderNamespace = "EXT_mmvec"; 27272} 27273def V6_stnpnt0 : HInst< 27274(outs), 27275(ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32), 27276"if (!$Pv4) vmem($Rt32):nt = $Vs32", 27277PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 27278let isCVI = 1; 27279let isPseudo = 1; 27280let isCodeGenOnly = 1; 27281let DecoderNamespace = "EXT_mmvec"; 27282} 27283def V6_stnq0 : HInst< 27284(outs), 27285(ins HvxQR:$Qv4, IntRegs:$Rt32, HvxVR:$Vs32), 27286"if (!$Qv4) vmem($Rt32) = $Vs32", 27287PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 27288let isCVI = 1; 27289let isPseudo = 1; 27290let isCodeGenOnly = 1; 27291let DecoderNamespace = "EXT_mmvec"; 27292} 27293def V6_stnqnt0 : HInst< 27294(outs), 27295(ins HvxQR:$Qv4, IntRegs:$Rt32, HvxVR:$Vs32), 27296"if (!$Qv4) vmem($Rt32):nt = $Vs32", 27297PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 27298let isCVI = 1; 27299let isPseudo = 1; 27300let isCodeGenOnly = 1; 27301let DecoderNamespace = "EXT_mmvec"; 27302} 27303def V6_stnt0 : HInst< 27304(outs), 27305(ins IntRegs:$Rt32, HvxVR:$Vs32), 27306"vmem($Rt32):nt = $Vs32", 27307PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 27308let isCVI = 1; 27309let isPseudo = 1; 27310let isCodeGenOnly = 1; 27311let DecoderNamespace = "EXT_mmvec"; 27312} 27313def V6_stp0 : HInst< 27314(outs), 27315(ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32), 27316"if ($Pv4) vmem($Rt32) = $Vs32", 27317PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 27318let isCVI = 1; 27319let isPseudo = 1; 27320let isCodeGenOnly = 1; 27321let DecoderNamespace = "EXT_mmvec"; 27322} 27323def V6_stpnt0 : HInst< 27324(outs), 27325(ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32), 27326"if ($Pv4) vmem($Rt32):nt = $Vs32", 27327PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 27328let isCVI = 1; 27329let isPseudo = 1; 27330let isCodeGenOnly = 1; 27331let DecoderNamespace = "EXT_mmvec"; 27332} 27333def V6_stq0 : HInst< 27334(outs), 27335(ins HvxQR:$Qv4, IntRegs:$Rt32, HvxVR:$Vs32), 27336"if ($Qv4) vmem($Rt32) = $Vs32", 27337PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 27338let isCVI = 1; 27339let isPseudo = 1; 27340let isCodeGenOnly = 1; 27341let DecoderNamespace = "EXT_mmvec"; 27342} 27343def V6_stqnt0 : HInst< 27344(outs), 27345(ins HvxQR:$Qv4, IntRegs:$Rt32, HvxVR:$Vs32), 27346"if ($Qv4) vmem($Rt32):nt = $Vs32", 27347PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 27348let isCVI = 1; 27349let isPseudo = 1; 27350let isCodeGenOnly = 1; 27351let DecoderNamespace = "EXT_mmvec"; 27352} 27353def V6_stu0 : HInst< 27354(outs), 27355(ins IntRegs:$Rt32, HvxVR:$Vs32), 27356"vmemu($Rt32) = $Vs32", 27357PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 27358let isCVI = 1; 27359let isPseudo = 1; 27360let isCodeGenOnly = 1; 27361let DecoderNamespace = "EXT_mmvec"; 27362} 27363def V6_stunp0 : HInst< 27364(outs), 27365(ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32), 27366"if (!$Pv4) vmemu($Rt32) = $Vs32", 27367PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 27368let isCVI = 1; 27369let isPseudo = 1; 27370let isCodeGenOnly = 1; 27371let DecoderNamespace = "EXT_mmvec"; 27372} 27373def V6_stup0 : HInst< 27374(outs), 27375(ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32), 27376"if ($Pv4) vmemu($Rt32) = $Vs32", 27377PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> { 27378let isCVI = 1; 27379let isPseudo = 1; 27380let isCodeGenOnly = 1; 27381let DecoderNamespace = "EXT_mmvec"; 27382} 27383def V6_v10mpyubs10 : HInst< 27384(outs HvxWR:$Vdd32), 27385(ins HvxWR:$Vuu32, HvxWR:$Vvv32, u1_0Imm:$Ii), 27386"$Vdd32.w = v10mpy($Vuu32.ub,$Vvv32.b,#$Ii)", 27387tc_f175e046, TypeCVI_VX>, Requires<[UseHVXV69]> { 27388let hasNewValue = 1; 27389let opNewValue = 0; 27390let isCVI = 1; 27391let isPseudo = 1; 27392let DecoderNamespace = "EXT_mmvec"; 27393} 27394def V6_v10mpyubs10_vxx : HInst< 27395(outs HvxWR:$Vxx32), 27396(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, HvxWR:$Vvv32, u1_0Imm:$Ii), 27397"$Vxx32.w += v10mpy($Vuu32.ub,$Vvv32.b,#$Ii)", 27398tc_4942646a, TypeCVI_VX>, Requires<[UseHVXV69]> { 27399let hasNewValue = 1; 27400let opNewValue = 0; 27401let isAccumulator = 1; 27402let isCVI = 1; 27403let isPseudo = 1; 27404let DecoderNamespace = "EXT_mmvec"; 27405let Constraints = "$Vxx32 = $Vxx32in"; 27406} 27407def V6_v6mpyhubs10 : HInst< 27408(outs HvxWR:$Vdd32), 27409(ins HvxWR:$Vuu32, HvxWR:$Vvv32, u2_0Imm:$Ii), 27410"$Vdd32.w = v6mpy($Vuu32.ub,$Vvv32.b,#$Ii):h", 27411tc_2b4c548e, TypeCVI_VX_DV>, Enc_b91167, Requires<[UseHVXV68]> { 27412let Inst{7-7} = 0b1; 27413let Inst{13-13} = 0b1; 27414let Inst{31-21} = 0b00011111010; 27415let hasNewValue = 1; 27416let opNewValue = 0; 27417let isCVI = 1; 27418let DecoderNamespace = "EXT_mmvec"; 27419} 27420def V6_v6mpyhubs10_alt : HInst< 27421(outs HvxWR:$Vdd32), 27422(ins HvxWR:$Vuu32, HvxWR:$Vvv32, u2_0Imm:$Ii), 27423"$Vdd32.w = v6mpy($Vuu32.ub,$Vvv32.b10,#$Ii):h", 27424PSEUDO, TypeMAPPING>, Requires<[UseHVXV68]> { 27425let hasNewValue = 1; 27426let opNewValue = 0; 27427let isCVI = 1; 27428let isPseudo = 1; 27429let isCodeGenOnly = 1; 27430let DecoderNamespace = "EXT_mmvec"; 27431} 27432def V6_v6mpyhubs10_vxx : HInst< 27433(outs HvxWR:$Vxx32), 27434(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, HvxWR:$Vvv32, u2_0Imm:$Ii), 27435"$Vxx32.w += v6mpy($Vuu32.ub,$Vvv32.b,#$Ii):h", 27436tc_bb599486, TypeCVI_VX_DV>, Enc_f4f57b, Requires<[UseHVXV68]> { 27437let Inst{7-7} = 0b1; 27438let Inst{13-13} = 0b1; 27439let Inst{31-21} = 0b00011111001; 27440let hasNewValue = 1; 27441let opNewValue = 0; 27442let isAccumulator = 1; 27443let isCVI = 1; 27444let DecoderNamespace = "EXT_mmvec"; 27445let Constraints = "$Vxx32 = $Vxx32in"; 27446} 27447def V6_v6mpyvubs10 : HInst< 27448(outs HvxWR:$Vdd32), 27449(ins HvxWR:$Vuu32, HvxWR:$Vvv32, u2_0Imm:$Ii), 27450"$Vdd32.w = v6mpy($Vuu32.ub,$Vvv32.b,#$Ii):v", 27451tc_2b4c548e, TypeCVI_VX_DV>, Enc_b91167, Requires<[UseHVXV68]> { 27452let Inst{7-7} = 0b0; 27453let Inst{13-13} = 0b1; 27454let Inst{31-21} = 0b00011111010; 27455let hasNewValue = 1; 27456let opNewValue = 0; 27457let isCVI = 1; 27458let DecoderNamespace = "EXT_mmvec"; 27459} 27460def V6_v6mpyvubs10_alt : HInst< 27461(outs HvxWR:$Vdd32), 27462(ins HvxWR:$Vuu32, HvxWR:$Vvv32, u2_0Imm:$Ii), 27463"$Vdd32.w = v6mpy($Vuu32.ub,$Vvv32.b10,#$Ii):v", 27464PSEUDO, TypeMAPPING>, Requires<[UseHVXV68]> { 27465let hasNewValue = 1; 27466let opNewValue = 0; 27467let isCVI = 1; 27468let isPseudo = 1; 27469let isCodeGenOnly = 1; 27470let DecoderNamespace = "EXT_mmvec"; 27471} 27472def V6_v6mpyvubs10_vxx : HInst< 27473(outs HvxWR:$Vxx32), 27474(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, HvxWR:$Vvv32, u2_0Imm:$Ii), 27475"$Vxx32.w += v6mpy($Vuu32.ub,$Vvv32.b,#$Ii):v", 27476tc_bb599486, TypeCVI_VX_DV>, Enc_f4f57b, Requires<[UseHVXV68]> { 27477let Inst{7-7} = 0b0; 27478let Inst{13-13} = 0b1; 27479let Inst{31-21} = 0b00011111001; 27480let hasNewValue = 1; 27481let opNewValue = 0; 27482let isAccumulator = 1; 27483let isCVI = 1; 27484let DecoderNamespace = "EXT_mmvec"; 27485let Constraints = "$Vxx32 = $Vxx32in"; 27486} 27487def V6_vL32Ub_ai : HInst< 27488(outs HvxVR:$Vd32), 27489(ins IntRegs:$Rt32, s4_0Imm:$Ii), 27490"$Vd32 = vmemu($Rt32+#$Ii)", 27491tc_a7e6707d, TypeCVI_VM_VP_LDU>, Enc_f3f408, Requires<[UseHVXV60]>, PostInc_BaseImm { 27492let Inst{7-5} = 0b111; 27493let Inst{12-11} = 0b00; 27494let Inst{31-21} = 0b00101000000; 27495let hasNewValue = 1; 27496let opNewValue = 0; 27497let addrMode = BaseImmOffset; 27498let accessSize = HVXVectorAccess; 27499let isCVLoad = 1; 27500let isCVI = 1; 27501let mayLoad = 1; 27502let isRestrictNoSlot1Store = 1; 27503let BaseOpcode = "V6_vL32Ub_ai"; 27504let CextOpcode = "V6_vL32Ub"; 27505let DecoderNamespace = "EXT_mmvec"; 27506} 27507def V6_vL32Ub_pi : HInst< 27508(outs HvxVR:$Vd32, IntRegs:$Rx32), 27509(ins IntRegs:$Rx32in, s3_0Imm:$Ii), 27510"$Vd32 = vmemu($Rx32++#$Ii)", 27511tc_3c56e5ce, TypeCVI_VM_VP_LDU>, Enc_a255dc, Requires<[UseHVXV60]>, PostInc_BaseImm { 27512let Inst{7-5} = 0b111; 27513let Inst{13-11} = 0b000; 27514let Inst{31-21} = 0b00101001000; 27515let hasNewValue = 1; 27516let opNewValue = 0; 27517let addrMode = PostInc; 27518let accessSize = HVXVectorAccess; 27519let isCVLoad = 1; 27520let isCVI = 1; 27521let mayLoad = 1; 27522let isRestrictNoSlot1Store = 1; 27523let BaseOpcode = "V6_vL32b_pi"; 27524let CextOpcode = "V6_vL32Ub"; 27525let DecoderNamespace = "EXT_mmvec"; 27526let Constraints = "$Rx32 = $Rx32in"; 27527} 27528def V6_vL32Ub_ppu : HInst< 27529(outs HvxVR:$Vd32, IntRegs:$Rx32), 27530(ins IntRegs:$Rx32in, ModRegs:$Mu2), 27531"$Vd32 = vmemu($Rx32++$Mu2)", 27532tc_3c56e5ce, TypeCVI_VM_VP_LDU>, Enc_2ebe3b, Requires<[UseHVXV60]> { 27533let Inst{12-5} = 0b00000111; 27534let Inst{31-21} = 0b00101011000; 27535let hasNewValue = 1; 27536let opNewValue = 0; 27537let addrMode = PostInc; 27538let accessSize = HVXVectorAccess; 27539let isCVLoad = 1; 27540let isCVI = 1; 27541let mayLoad = 1; 27542let isRestrictNoSlot1Store = 1; 27543let DecoderNamespace = "EXT_mmvec"; 27544let Constraints = "$Rx32 = $Rx32in"; 27545} 27546def V6_vL32b_ai : HInst< 27547(outs HvxVR:$Vd32), 27548(ins IntRegs:$Rt32, s4_0Imm:$Ii), 27549"$Vd32 = vmem($Rt32+#$Ii)", 27550tc_c0749f3c, TypeCVI_VM_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm { 27551let Inst{7-5} = 0b000; 27552let Inst{12-11} = 0b00; 27553let Inst{31-21} = 0b00101000000; 27554let hasNewValue = 1; 27555let opNewValue = 0; 27556let addrMode = BaseImmOffset; 27557let accessSize = HVXVectorAccess; 27558let isCVLoad = 1; 27559let isCVI = 1; 27560let isHVXALU = 1; 27561let mayLoad = 1; 27562let isRestrictNoSlot1Store = 1; 27563let BaseOpcode = "V6_vL32b_ai"; 27564let CextOpcode = "V6_vL32b"; 27565let isCVLoadable = 1; 27566let isPredicable = 1; 27567let DecoderNamespace = "EXT_mmvec"; 27568} 27569def V6_vL32b_cur_ai : HInst< 27570(outs HvxVR:$Vd32), 27571(ins IntRegs:$Rt32, s4_0Imm:$Ii), 27572"$Vd32.cur = vmem($Rt32+#$Ii)", 27573tc_c0749f3c, TypeCVI_VM_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm { 27574let Inst{7-5} = 0b001; 27575let Inst{12-11} = 0b00; 27576let Inst{31-21} = 0b00101000000; 27577let hasNewValue = 1; 27578let opNewValue = 0; 27579let addrMode = BaseImmOffset; 27580let accessSize = HVXVectorAccess; 27581let isCVLoad = 1; 27582let isCVI = 1; 27583let CVINew = 1; 27584let isHVXALU = 1; 27585let mayLoad = 1; 27586let isRestrictNoSlot1Store = 1; 27587let BaseOpcode = "V6_vL32b_cur_ai"; 27588let CextOpcode = "V6_vL32b_cur"; 27589let isPredicable = 1; 27590let DecoderNamespace = "EXT_mmvec"; 27591} 27592def V6_vL32b_cur_npred_ai : HInst< 27593(outs HvxVR:$Vd32), 27594(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 27595"if (!$Pv4) $Vd32.cur = vmem($Rt32+#$Ii)", 27596tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 27597let Inst{7-5} = 0b101; 27598let Inst{31-21} = 0b00101000100; 27599let isPredicated = 1; 27600let isPredicatedFalse = 1; 27601let hasNewValue = 1; 27602let opNewValue = 0; 27603let addrMode = BaseImmOffset; 27604let accessSize = HVXVectorAccess; 27605let isCVLoad = 1; 27606let isCVI = 1; 27607let CVINew = 1; 27608let isHVXALU = 1; 27609let mayLoad = 1; 27610let isRestrictNoSlot1Store = 1; 27611let BaseOpcode = "V6_vL32b_cur_ai"; 27612let DecoderNamespace = "EXT_mmvec"; 27613} 27614def V6_vL32b_cur_npred_pi : HInst< 27615(outs HvxVR:$Vd32, IntRegs:$Rx32), 27616(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 27617"if (!$Pv4) $Vd32.cur = vmem($Rx32++#$Ii)", 27618tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 27619let Inst{7-5} = 0b101; 27620let Inst{13-13} = 0b0; 27621let Inst{31-21} = 0b00101001100; 27622let isPredicated = 1; 27623let isPredicatedFalse = 1; 27624let hasNewValue = 1; 27625let opNewValue = 0; 27626let addrMode = PostInc; 27627let accessSize = HVXVectorAccess; 27628let isCVLoad = 1; 27629let isCVI = 1; 27630let CVINew = 1; 27631let isHVXALU = 1; 27632let mayLoad = 1; 27633let isRestrictNoSlot1Store = 1; 27634let BaseOpcode = "V6_vL32b_cur_pi"; 27635let DecoderNamespace = "EXT_mmvec"; 27636let Constraints = "$Rx32 = $Rx32in"; 27637} 27638def V6_vL32b_cur_npred_ppu : HInst< 27639(outs HvxVR:$Vd32, IntRegs:$Rx32), 27640(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 27641"if (!$Pv4) $Vd32.cur = vmem($Rx32++$Mu2)", 27642tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 27643let Inst{10-5} = 0b000101; 27644let Inst{31-21} = 0b00101011100; 27645let isPredicated = 1; 27646let isPredicatedFalse = 1; 27647let hasNewValue = 1; 27648let opNewValue = 0; 27649let addrMode = PostInc; 27650let accessSize = HVXVectorAccess; 27651let isCVLoad = 1; 27652let isCVI = 1; 27653let CVINew = 1; 27654let isHVXALU = 1; 27655let mayLoad = 1; 27656let isRestrictNoSlot1Store = 1; 27657let BaseOpcode = "V6_vL32b_cur_ppu"; 27658let DecoderNamespace = "EXT_mmvec"; 27659let Constraints = "$Rx32 = $Rx32in"; 27660} 27661def V6_vL32b_cur_pi : HInst< 27662(outs HvxVR:$Vd32, IntRegs:$Rx32), 27663(ins IntRegs:$Rx32in, s3_0Imm:$Ii), 27664"$Vd32.cur = vmem($Rx32++#$Ii)", 27665tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm { 27666let Inst{7-5} = 0b001; 27667let Inst{13-11} = 0b000; 27668let Inst{31-21} = 0b00101001000; 27669let hasNewValue = 1; 27670let opNewValue = 0; 27671let addrMode = PostInc; 27672let accessSize = HVXVectorAccess; 27673let isCVLoad = 1; 27674let isCVI = 1; 27675let CVINew = 1; 27676let isHVXALU = 1; 27677let mayLoad = 1; 27678let isRestrictNoSlot1Store = 1; 27679let BaseOpcode = "V6_vL32b_cur_pi"; 27680let CextOpcode = "V6_vL32b_cur"; 27681let isPredicable = 1; 27682let DecoderNamespace = "EXT_mmvec"; 27683let Constraints = "$Rx32 = $Rx32in"; 27684} 27685def V6_vL32b_cur_ppu : HInst< 27686(outs HvxVR:$Vd32, IntRegs:$Rx32), 27687(ins IntRegs:$Rx32in, ModRegs:$Mu2), 27688"$Vd32.cur = vmem($Rx32++$Mu2)", 27689tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel { 27690let Inst{12-5} = 0b00000001; 27691let Inst{31-21} = 0b00101011000; 27692let hasNewValue = 1; 27693let opNewValue = 0; 27694let addrMode = PostInc; 27695let accessSize = HVXVectorAccess; 27696let isCVLoad = 1; 27697let isCVI = 1; 27698let CVINew = 1; 27699let isHVXALU = 1; 27700let mayLoad = 1; 27701let isRestrictNoSlot1Store = 1; 27702let BaseOpcode = "V6_vL32b_cur_ppu"; 27703let isPredicable = 1; 27704let DecoderNamespace = "EXT_mmvec"; 27705let Constraints = "$Rx32 = $Rx32in"; 27706} 27707def V6_vL32b_cur_pred_ai : HInst< 27708(outs HvxVR:$Vd32), 27709(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 27710"if ($Pv4) $Vd32.cur = vmem($Rt32+#$Ii)", 27711tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 27712let Inst{7-5} = 0b100; 27713let Inst{31-21} = 0b00101000100; 27714let isPredicated = 1; 27715let hasNewValue = 1; 27716let opNewValue = 0; 27717let addrMode = BaseImmOffset; 27718let accessSize = HVXVectorAccess; 27719let isCVLoad = 1; 27720let isCVI = 1; 27721let CVINew = 1; 27722let isHVXALU = 1; 27723let mayLoad = 1; 27724let isRestrictNoSlot1Store = 1; 27725let BaseOpcode = "V6_vL32b_cur_ai"; 27726let DecoderNamespace = "EXT_mmvec"; 27727} 27728def V6_vL32b_cur_pred_pi : HInst< 27729(outs HvxVR:$Vd32, IntRegs:$Rx32), 27730(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 27731"if ($Pv4) $Vd32.cur = vmem($Rx32++#$Ii)", 27732tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 27733let Inst{7-5} = 0b100; 27734let Inst{13-13} = 0b0; 27735let Inst{31-21} = 0b00101001100; 27736let isPredicated = 1; 27737let hasNewValue = 1; 27738let opNewValue = 0; 27739let addrMode = PostInc; 27740let accessSize = HVXVectorAccess; 27741let isCVLoad = 1; 27742let isCVI = 1; 27743let CVINew = 1; 27744let isHVXALU = 1; 27745let mayLoad = 1; 27746let isRestrictNoSlot1Store = 1; 27747let BaseOpcode = "V6_vL32b_cur_pi"; 27748let DecoderNamespace = "EXT_mmvec"; 27749let Constraints = "$Rx32 = $Rx32in"; 27750} 27751def V6_vL32b_cur_pred_ppu : HInst< 27752(outs HvxVR:$Vd32, IntRegs:$Rx32), 27753(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 27754"if ($Pv4) $Vd32.cur = vmem($Rx32++$Mu2)", 27755tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 27756let Inst{10-5} = 0b000100; 27757let Inst{31-21} = 0b00101011100; 27758let isPredicated = 1; 27759let hasNewValue = 1; 27760let opNewValue = 0; 27761let addrMode = PostInc; 27762let accessSize = HVXVectorAccess; 27763let isCVLoad = 1; 27764let isCVI = 1; 27765let CVINew = 1; 27766let isHVXALU = 1; 27767let mayLoad = 1; 27768let isRestrictNoSlot1Store = 1; 27769let BaseOpcode = "V6_vL32b_cur_ppu"; 27770let DecoderNamespace = "EXT_mmvec"; 27771let Constraints = "$Rx32 = $Rx32in"; 27772} 27773def V6_vL32b_npred_ai : HInst< 27774(outs HvxVR:$Vd32), 27775(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 27776"if (!$Pv4) $Vd32 = vmem($Rt32+#$Ii)", 27777tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 27778let Inst{7-5} = 0b011; 27779let Inst{31-21} = 0b00101000100; 27780let isPredicated = 1; 27781let isPredicatedFalse = 1; 27782let hasNewValue = 1; 27783let opNewValue = 0; 27784let addrMode = BaseImmOffset; 27785let accessSize = HVXVectorAccess; 27786let isCVLoad = 1; 27787let isCVI = 1; 27788let isHVXALU = 1; 27789let mayLoad = 1; 27790let isRestrictNoSlot1Store = 1; 27791let BaseOpcode = "V6_vL32b_ai"; 27792let DecoderNamespace = "EXT_mmvec"; 27793} 27794def V6_vL32b_npred_pi : HInst< 27795(outs HvxVR:$Vd32, IntRegs:$Rx32), 27796(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 27797"if (!$Pv4) $Vd32 = vmem($Rx32++#$Ii)", 27798tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 27799let Inst{7-5} = 0b011; 27800let Inst{13-13} = 0b0; 27801let Inst{31-21} = 0b00101001100; 27802let isPredicated = 1; 27803let isPredicatedFalse = 1; 27804let hasNewValue = 1; 27805let opNewValue = 0; 27806let addrMode = PostInc; 27807let accessSize = HVXVectorAccess; 27808let isCVLoad = 1; 27809let isCVI = 1; 27810let isHVXALU = 1; 27811let mayLoad = 1; 27812let isRestrictNoSlot1Store = 1; 27813let BaseOpcode = "V6_vL32b_pi"; 27814let DecoderNamespace = "EXT_mmvec"; 27815let Constraints = "$Rx32 = $Rx32in"; 27816} 27817def V6_vL32b_npred_ppu : HInst< 27818(outs HvxVR:$Vd32, IntRegs:$Rx32), 27819(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 27820"if (!$Pv4) $Vd32 = vmem($Rx32++$Mu2)", 27821tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 27822let Inst{10-5} = 0b000011; 27823let Inst{31-21} = 0b00101011100; 27824let isPredicated = 1; 27825let isPredicatedFalse = 1; 27826let hasNewValue = 1; 27827let opNewValue = 0; 27828let addrMode = PostInc; 27829let accessSize = HVXVectorAccess; 27830let isCVLoad = 1; 27831let isCVI = 1; 27832let isHVXALU = 1; 27833let mayLoad = 1; 27834let isRestrictNoSlot1Store = 1; 27835let BaseOpcode = "V6_vL32b_ppu"; 27836let DecoderNamespace = "EXT_mmvec"; 27837let Constraints = "$Rx32 = $Rx32in"; 27838} 27839def V6_vL32b_nt_ai : HInst< 27840(outs HvxVR:$Vd32), 27841(ins IntRegs:$Rt32, s4_0Imm:$Ii), 27842"$Vd32 = vmem($Rt32+#$Ii):nt", 27843tc_c0749f3c, TypeCVI_VM_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm { 27844let Inst{7-5} = 0b000; 27845let Inst{12-11} = 0b00; 27846let Inst{31-21} = 0b00101000010; 27847let hasNewValue = 1; 27848let opNewValue = 0; 27849let addrMode = BaseImmOffset; 27850let accessSize = HVXVectorAccess; 27851let isCVLoad = 1; 27852let isCVI = 1; 27853let isHVXALU = 1; 27854let mayLoad = 1; 27855let isNonTemporal = 1; 27856let isRestrictNoSlot1Store = 1; 27857let BaseOpcode = "V6_vL32b_nt_ai"; 27858let CextOpcode = "V6_vL32b_nt"; 27859let isCVLoadable = 1; 27860let isPredicable = 1; 27861let DecoderNamespace = "EXT_mmvec"; 27862} 27863def V6_vL32b_nt_cur_ai : HInst< 27864(outs HvxVR:$Vd32), 27865(ins IntRegs:$Rt32, s4_0Imm:$Ii), 27866"$Vd32.cur = vmem($Rt32+#$Ii):nt", 27867tc_c0749f3c, TypeCVI_VM_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm { 27868let Inst{7-5} = 0b001; 27869let Inst{12-11} = 0b00; 27870let Inst{31-21} = 0b00101000010; 27871let hasNewValue = 1; 27872let opNewValue = 0; 27873let addrMode = BaseImmOffset; 27874let accessSize = HVXVectorAccess; 27875let isCVLoad = 1; 27876let isCVI = 1; 27877let CVINew = 1; 27878let isHVXALU = 1; 27879let mayLoad = 1; 27880let isNonTemporal = 1; 27881let isRestrictNoSlot1Store = 1; 27882let BaseOpcode = "V6_vL32b_nt_cur_ai"; 27883let CextOpcode = "V6_vL32b_nt_cur"; 27884let isPredicable = 1; 27885let DecoderNamespace = "EXT_mmvec"; 27886} 27887def V6_vL32b_nt_cur_npred_ai : HInst< 27888(outs HvxVR:$Vd32), 27889(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 27890"if (!$Pv4) $Vd32.cur = vmem($Rt32+#$Ii):nt", 27891tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 27892let Inst{7-5} = 0b101; 27893let Inst{31-21} = 0b00101000110; 27894let isPredicated = 1; 27895let isPredicatedFalse = 1; 27896let hasNewValue = 1; 27897let opNewValue = 0; 27898let addrMode = BaseImmOffset; 27899let accessSize = HVXVectorAccess; 27900let isCVLoad = 1; 27901let isCVI = 1; 27902let CVINew = 1; 27903let isHVXALU = 1; 27904let mayLoad = 1; 27905let isNonTemporal = 1; 27906let isRestrictNoSlot1Store = 1; 27907let BaseOpcode = "V6_vL32b_nt_cur_ai"; 27908let DecoderNamespace = "EXT_mmvec"; 27909} 27910def V6_vL32b_nt_cur_npred_pi : HInst< 27911(outs HvxVR:$Vd32, IntRegs:$Rx32), 27912(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 27913"if (!$Pv4) $Vd32.cur = vmem($Rx32++#$Ii):nt", 27914tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 27915let Inst{7-5} = 0b101; 27916let Inst{13-13} = 0b0; 27917let Inst{31-21} = 0b00101001110; 27918let isPredicated = 1; 27919let isPredicatedFalse = 1; 27920let hasNewValue = 1; 27921let opNewValue = 0; 27922let addrMode = PostInc; 27923let accessSize = HVXVectorAccess; 27924let isCVLoad = 1; 27925let isCVI = 1; 27926let CVINew = 1; 27927let isHVXALU = 1; 27928let mayLoad = 1; 27929let isNonTemporal = 1; 27930let isRestrictNoSlot1Store = 1; 27931let BaseOpcode = "V6_vL32b_nt_cur_pi"; 27932let DecoderNamespace = "EXT_mmvec"; 27933let Constraints = "$Rx32 = $Rx32in"; 27934} 27935def V6_vL32b_nt_cur_npred_ppu : HInst< 27936(outs HvxVR:$Vd32, IntRegs:$Rx32), 27937(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 27938"if (!$Pv4) $Vd32.cur = vmem($Rx32++$Mu2):nt", 27939tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 27940let Inst{10-5} = 0b000101; 27941let Inst{31-21} = 0b00101011110; 27942let isPredicated = 1; 27943let isPredicatedFalse = 1; 27944let hasNewValue = 1; 27945let opNewValue = 0; 27946let addrMode = PostInc; 27947let accessSize = HVXVectorAccess; 27948let isCVLoad = 1; 27949let isCVI = 1; 27950let CVINew = 1; 27951let isHVXALU = 1; 27952let mayLoad = 1; 27953let isNonTemporal = 1; 27954let isRestrictNoSlot1Store = 1; 27955let BaseOpcode = "V6_vL32b_nt_cur_ppu"; 27956let DecoderNamespace = "EXT_mmvec"; 27957let Constraints = "$Rx32 = $Rx32in"; 27958} 27959def V6_vL32b_nt_cur_pi : HInst< 27960(outs HvxVR:$Vd32, IntRegs:$Rx32), 27961(ins IntRegs:$Rx32in, s3_0Imm:$Ii), 27962"$Vd32.cur = vmem($Rx32++#$Ii):nt", 27963tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm { 27964let Inst{7-5} = 0b001; 27965let Inst{13-11} = 0b000; 27966let Inst{31-21} = 0b00101001010; 27967let hasNewValue = 1; 27968let opNewValue = 0; 27969let addrMode = PostInc; 27970let accessSize = HVXVectorAccess; 27971let isCVLoad = 1; 27972let isCVI = 1; 27973let CVINew = 1; 27974let isHVXALU = 1; 27975let mayLoad = 1; 27976let isNonTemporal = 1; 27977let isRestrictNoSlot1Store = 1; 27978let BaseOpcode = "V6_vL32b_nt_cur_pi"; 27979let CextOpcode = "V6_vL32b_nt_cur"; 27980let isPredicable = 1; 27981let DecoderNamespace = "EXT_mmvec"; 27982let Constraints = "$Rx32 = $Rx32in"; 27983} 27984def V6_vL32b_nt_cur_ppu : HInst< 27985(outs HvxVR:$Vd32, IntRegs:$Rx32), 27986(ins IntRegs:$Rx32in, ModRegs:$Mu2), 27987"$Vd32.cur = vmem($Rx32++$Mu2):nt", 27988tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel { 27989let Inst{12-5} = 0b00000001; 27990let Inst{31-21} = 0b00101011010; 27991let hasNewValue = 1; 27992let opNewValue = 0; 27993let addrMode = PostInc; 27994let accessSize = HVXVectorAccess; 27995let isCVLoad = 1; 27996let isCVI = 1; 27997let CVINew = 1; 27998let isHVXALU = 1; 27999let mayLoad = 1; 28000let isNonTemporal = 1; 28001let isRestrictNoSlot1Store = 1; 28002let BaseOpcode = "V6_vL32b_nt_cur_ppu"; 28003let isPredicable = 1; 28004let DecoderNamespace = "EXT_mmvec"; 28005let Constraints = "$Rx32 = $Rx32in"; 28006} 28007def V6_vL32b_nt_cur_pred_ai : HInst< 28008(outs HvxVR:$Vd32), 28009(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 28010"if ($Pv4) $Vd32.cur = vmem($Rt32+#$Ii):nt", 28011tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 28012let Inst{7-5} = 0b100; 28013let Inst{31-21} = 0b00101000110; 28014let isPredicated = 1; 28015let hasNewValue = 1; 28016let opNewValue = 0; 28017let addrMode = BaseImmOffset; 28018let accessSize = HVXVectorAccess; 28019let isCVLoad = 1; 28020let isCVI = 1; 28021let CVINew = 1; 28022let isHVXALU = 1; 28023let mayLoad = 1; 28024let isNonTemporal = 1; 28025let isRestrictNoSlot1Store = 1; 28026let BaseOpcode = "V6_vL32b_nt_cur_ai"; 28027let DecoderNamespace = "EXT_mmvec"; 28028} 28029def V6_vL32b_nt_cur_pred_pi : HInst< 28030(outs HvxVR:$Vd32, IntRegs:$Rx32), 28031(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 28032"if ($Pv4) $Vd32.cur = vmem($Rx32++#$Ii):nt", 28033tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 28034let Inst{7-5} = 0b100; 28035let Inst{13-13} = 0b0; 28036let Inst{31-21} = 0b00101001110; 28037let isPredicated = 1; 28038let hasNewValue = 1; 28039let opNewValue = 0; 28040let addrMode = PostInc; 28041let accessSize = HVXVectorAccess; 28042let isCVLoad = 1; 28043let isCVI = 1; 28044let CVINew = 1; 28045let isHVXALU = 1; 28046let mayLoad = 1; 28047let isNonTemporal = 1; 28048let isRestrictNoSlot1Store = 1; 28049let BaseOpcode = "V6_vL32b_nt_cur_pi"; 28050let DecoderNamespace = "EXT_mmvec"; 28051let Constraints = "$Rx32 = $Rx32in"; 28052} 28053def V6_vL32b_nt_cur_pred_ppu : HInst< 28054(outs HvxVR:$Vd32, IntRegs:$Rx32), 28055(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 28056"if ($Pv4) $Vd32.cur = vmem($Rx32++$Mu2):nt", 28057tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 28058let Inst{10-5} = 0b000100; 28059let Inst{31-21} = 0b00101011110; 28060let isPredicated = 1; 28061let hasNewValue = 1; 28062let opNewValue = 0; 28063let addrMode = PostInc; 28064let accessSize = HVXVectorAccess; 28065let isCVLoad = 1; 28066let isCVI = 1; 28067let CVINew = 1; 28068let isHVXALU = 1; 28069let mayLoad = 1; 28070let isNonTemporal = 1; 28071let isRestrictNoSlot1Store = 1; 28072let BaseOpcode = "V6_vL32b_nt_cur_ppu"; 28073let DecoderNamespace = "EXT_mmvec"; 28074let Constraints = "$Rx32 = $Rx32in"; 28075} 28076def V6_vL32b_nt_npred_ai : HInst< 28077(outs HvxVR:$Vd32), 28078(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 28079"if (!$Pv4) $Vd32 = vmem($Rt32+#$Ii):nt", 28080tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 28081let Inst{7-5} = 0b011; 28082let Inst{31-21} = 0b00101000110; 28083let isPredicated = 1; 28084let isPredicatedFalse = 1; 28085let hasNewValue = 1; 28086let opNewValue = 0; 28087let addrMode = BaseImmOffset; 28088let accessSize = HVXVectorAccess; 28089let isCVLoad = 1; 28090let isCVI = 1; 28091let isHVXALU = 1; 28092let mayLoad = 1; 28093let isNonTemporal = 1; 28094let isRestrictNoSlot1Store = 1; 28095let BaseOpcode = "V6_vL32b_nt_ai"; 28096let DecoderNamespace = "EXT_mmvec"; 28097} 28098def V6_vL32b_nt_npred_pi : HInst< 28099(outs HvxVR:$Vd32, IntRegs:$Rx32), 28100(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 28101"if (!$Pv4) $Vd32 = vmem($Rx32++#$Ii):nt", 28102tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 28103let Inst{7-5} = 0b011; 28104let Inst{13-13} = 0b0; 28105let Inst{31-21} = 0b00101001110; 28106let isPredicated = 1; 28107let isPredicatedFalse = 1; 28108let hasNewValue = 1; 28109let opNewValue = 0; 28110let addrMode = PostInc; 28111let accessSize = HVXVectorAccess; 28112let isCVLoad = 1; 28113let isCVI = 1; 28114let isHVXALU = 1; 28115let mayLoad = 1; 28116let isNonTemporal = 1; 28117let isRestrictNoSlot1Store = 1; 28118let BaseOpcode = "V6_vL32b_nt_pi"; 28119let DecoderNamespace = "EXT_mmvec"; 28120let Constraints = "$Rx32 = $Rx32in"; 28121} 28122def V6_vL32b_nt_npred_ppu : HInst< 28123(outs HvxVR:$Vd32, IntRegs:$Rx32), 28124(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 28125"if (!$Pv4) $Vd32 = vmem($Rx32++$Mu2):nt", 28126tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 28127let Inst{10-5} = 0b000011; 28128let Inst{31-21} = 0b00101011110; 28129let isPredicated = 1; 28130let isPredicatedFalse = 1; 28131let hasNewValue = 1; 28132let opNewValue = 0; 28133let addrMode = PostInc; 28134let accessSize = HVXVectorAccess; 28135let isCVLoad = 1; 28136let isCVI = 1; 28137let isHVXALU = 1; 28138let mayLoad = 1; 28139let isNonTemporal = 1; 28140let isRestrictNoSlot1Store = 1; 28141let BaseOpcode = "V6_vL32b_nt_ppu"; 28142let DecoderNamespace = "EXT_mmvec"; 28143let Constraints = "$Rx32 = $Rx32in"; 28144} 28145def V6_vL32b_nt_pi : HInst< 28146(outs HvxVR:$Vd32, IntRegs:$Rx32), 28147(ins IntRegs:$Rx32in, s3_0Imm:$Ii), 28148"$Vd32 = vmem($Rx32++#$Ii):nt", 28149tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm { 28150let Inst{7-5} = 0b000; 28151let Inst{13-11} = 0b000; 28152let Inst{31-21} = 0b00101001010; 28153let hasNewValue = 1; 28154let opNewValue = 0; 28155let addrMode = PostInc; 28156let accessSize = HVXVectorAccess; 28157let isCVLoad = 1; 28158let isCVI = 1; 28159let isHVXALU = 1; 28160let mayLoad = 1; 28161let isNonTemporal = 1; 28162let isRestrictNoSlot1Store = 1; 28163let BaseOpcode = "V6_vL32b_nt_pi"; 28164let CextOpcode = "V6_vL32b_nt"; 28165let isCVLoadable = 1; 28166let isPredicable = 1; 28167let DecoderNamespace = "EXT_mmvec"; 28168let Constraints = "$Rx32 = $Rx32in"; 28169} 28170def V6_vL32b_nt_ppu : HInst< 28171(outs HvxVR:$Vd32, IntRegs:$Rx32), 28172(ins IntRegs:$Rx32in, ModRegs:$Mu2), 28173"$Vd32 = vmem($Rx32++$Mu2):nt", 28174tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel { 28175let Inst{12-5} = 0b00000000; 28176let Inst{31-21} = 0b00101011010; 28177let hasNewValue = 1; 28178let opNewValue = 0; 28179let addrMode = PostInc; 28180let accessSize = HVXVectorAccess; 28181let isCVLoad = 1; 28182let isCVI = 1; 28183let isHVXALU = 1; 28184let mayLoad = 1; 28185let isNonTemporal = 1; 28186let isRestrictNoSlot1Store = 1; 28187let BaseOpcode = "V6_vL32b_nt_ppu"; 28188let isCVLoadable = 1; 28189let isPredicable = 1; 28190let DecoderNamespace = "EXT_mmvec"; 28191let Constraints = "$Rx32 = $Rx32in"; 28192} 28193def V6_vL32b_nt_pred_ai : HInst< 28194(outs HvxVR:$Vd32), 28195(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 28196"if ($Pv4) $Vd32 = vmem($Rt32+#$Ii):nt", 28197tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 28198let Inst{7-5} = 0b010; 28199let Inst{31-21} = 0b00101000110; 28200let isPredicated = 1; 28201let hasNewValue = 1; 28202let opNewValue = 0; 28203let addrMode = BaseImmOffset; 28204let accessSize = HVXVectorAccess; 28205let isCVLoad = 1; 28206let isCVI = 1; 28207let isHVXALU = 1; 28208let mayLoad = 1; 28209let isNonTemporal = 1; 28210let isRestrictNoSlot1Store = 1; 28211let BaseOpcode = "V6_vL32b_nt_ai"; 28212let DecoderNamespace = "EXT_mmvec"; 28213} 28214def V6_vL32b_nt_pred_pi : HInst< 28215(outs HvxVR:$Vd32, IntRegs:$Rx32), 28216(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 28217"if ($Pv4) $Vd32 = vmem($Rx32++#$Ii):nt", 28218tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 28219let Inst{7-5} = 0b010; 28220let Inst{13-13} = 0b0; 28221let Inst{31-21} = 0b00101001110; 28222let isPredicated = 1; 28223let hasNewValue = 1; 28224let opNewValue = 0; 28225let addrMode = PostInc; 28226let accessSize = HVXVectorAccess; 28227let isCVLoad = 1; 28228let isCVI = 1; 28229let isHVXALU = 1; 28230let mayLoad = 1; 28231let isNonTemporal = 1; 28232let isRestrictNoSlot1Store = 1; 28233let BaseOpcode = "V6_vL32b_nt_pi"; 28234let DecoderNamespace = "EXT_mmvec"; 28235let Constraints = "$Rx32 = $Rx32in"; 28236} 28237def V6_vL32b_nt_pred_ppu : HInst< 28238(outs HvxVR:$Vd32, IntRegs:$Rx32), 28239(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 28240"if ($Pv4) $Vd32 = vmem($Rx32++$Mu2):nt", 28241tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 28242let Inst{10-5} = 0b000010; 28243let Inst{31-21} = 0b00101011110; 28244let isPredicated = 1; 28245let hasNewValue = 1; 28246let opNewValue = 0; 28247let addrMode = PostInc; 28248let accessSize = HVXVectorAccess; 28249let isCVLoad = 1; 28250let isCVI = 1; 28251let isHVXALU = 1; 28252let mayLoad = 1; 28253let isNonTemporal = 1; 28254let isRestrictNoSlot1Store = 1; 28255let BaseOpcode = "V6_vL32b_nt_ppu"; 28256let DecoderNamespace = "EXT_mmvec"; 28257let Constraints = "$Rx32 = $Rx32in"; 28258} 28259def V6_vL32b_nt_tmp_ai : HInst< 28260(outs HvxVR:$Vd32), 28261(ins IntRegs:$Rt32, s4_0Imm:$Ii), 28262"$Vd32.tmp = vmem($Rt32+#$Ii):nt", 28263tc_52447ecc, TypeCVI_VM_TMP_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm { 28264let Inst{7-5} = 0b010; 28265let Inst{12-11} = 0b00; 28266let Inst{31-21} = 0b00101000010; 28267let hasNewValue = 1; 28268let opNewValue = 0; 28269let addrMode = BaseImmOffset; 28270let accessSize = HVXVectorAccess; 28271let isCVLoad = 1; 28272let isCVI = 1; 28273let hasHvxTmp = 1; 28274let mayLoad = 1; 28275let isNonTemporal = 1; 28276let isRestrictNoSlot1Store = 1; 28277let BaseOpcode = "V6_vL32b_nt_tmp_ai"; 28278let CextOpcode = "V6_vL32b_nt_tmp"; 28279let isPredicable = 1; 28280let DecoderNamespace = "EXT_mmvec"; 28281} 28282def V6_vL32b_nt_tmp_npred_ai : HInst< 28283(outs HvxVR:$Vd32), 28284(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 28285"if (!$Pv4) $Vd32.tmp = vmem($Rt32+#$Ii):nt", 28286tc_3904b926, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 28287let Inst{7-5} = 0b111; 28288let Inst{31-21} = 0b00101000110; 28289let isPredicated = 1; 28290let isPredicatedFalse = 1; 28291let hasNewValue = 1; 28292let opNewValue = 0; 28293let addrMode = BaseImmOffset; 28294let accessSize = HVXVectorAccess; 28295let isCVLoad = 1; 28296let isCVI = 1; 28297let hasHvxTmp = 1; 28298let mayLoad = 1; 28299let isNonTemporal = 1; 28300let isRestrictNoSlot1Store = 1; 28301let BaseOpcode = "V6_vL32b_nt_tmp_ai"; 28302let DecoderNamespace = "EXT_mmvec"; 28303} 28304def V6_vL32b_nt_tmp_npred_pi : HInst< 28305(outs HvxVR:$Vd32, IntRegs:$Rx32), 28306(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 28307"if (!$Pv4) $Vd32.tmp = vmem($Rx32++#$Ii):nt", 28308tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 28309let Inst{7-5} = 0b111; 28310let Inst{13-13} = 0b0; 28311let Inst{31-21} = 0b00101001110; 28312let isPredicated = 1; 28313let isPredicatedFalse = 1; 28314let hasNewValue = 1; 28315let opNewValue = 0; 28316let addrMode = PostInc; 28317let accessSize = HVXVectorAccess; 28318let isCVLoad = 1; 28319let isCVI = 1; 28320let hasHvxTmp = 1; 28321let mayLoad = 1; 28322let isNonTemporal = 1; 28323let isRestrictNoSlot1Store = 1; 28324let BaseOpcode = "V6_vL32b_nt_tmp_pi"; 28325let DecoderNamespace = "EXT_mmvec"; 28326let Constraints = "$Rx32 = $Rx32in"; 28327} 28328def V6_vL32b_nt_tmp_npred_ppu : HInst< 28329(outs HvxVR:$Vd32, IntRegs:$Rx32), 28330(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 28331"if (!$Pv4) $Vd32.tmp = vmem($Rx32++$Mu2):nt", 28332tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 28333let Inst{10-5} = 0b000111; 28334let Inst{31-21} = 0b00101011110; 28335let isPredicated = 1; 28336let isPredicatedFalse = 1; 28337let hasNewValue = 1; 28338let opNewValue = 0; 28339let addrMode = PostInc; 28340let accessSize = HVXVectorAccess; 28341let isCVLoad = 1; 28342let isCVI = 1; 28343let hasHvxTmp = 1; 28344let mayLoad = 1; 28345let isNonTemporal = 1; 28346let isRestrictNoSlot1Store = 1; 28347let BaseOpcode = "V6_vL32b_nt_tmp_ppu"; 28348let DecoderNamespace = "EXT_mmvec"; 28349let Constraints = "$Rx32 = $Rx32in"; 28350} 28351def V6_vL32b_nt_tmp_pi : HInst< 28352(outs HvxVR:$Vd32, IntRegs:$Rx32), 28353(ins IntRegs:$Rx32in, s3_0Imm:$Ii), 28354"$Vd32.tmp = vmem($Rx32++#$Ii):nt", 28355tc_663c80a7, TypeCVI_VM_TMP_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm { 28356let Inst{7-5} = 0b010; 28357let Inst{13-11} = 0b000; 28358let Inst{31-21} = 0b00101001010; 28359let hasNewValue = 1; 28360let opNewValue = 0; 28361let addrMode = PostInc; 28362let accessSize = HVXVectorAccess; 28363let isCVLoad = 1; 28364let isCVI = 1; 28365let hasHvxTmp = 1; 28366let mayLoad = 1; 28367let isNonTemporal = 1; 28368let isRestrictNoSlot1Store = 1; 28369let BaseOpcode = "V6_vL32b_nt_tmp_pi"; 28370let CextOpcode = "V6_vL32b_nt_tmp"; 28371let isPredicable = 1; 28372let DecoderNamespace = "EXT_mmvec"; 28373let Constraints = "$Rx32 = $Rx32in"; 28374} 28375def V6_vL32b_nt_tmp_ppu : HInst< 28376(outs HvxVR:$Vd32, IntRegs:$Rx32), 28377(ins IntRegs:$Rx32in, ModRegs:$Mu2), 28378"$Vd32.tmp = vmem($Rx32++$Mu2):nt", 28379tc_663c80a7, TypeCVI_VM_TMP_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel { 28380let Inst{12-5} = 0b00000010; 28381let Inst{31-21} = 0b00101011010; 28382let hasNewValue = 1; 28383let opNewValue = 0; 28384let addrMode = PostInc; 28385let accessSize = HVXVectorAccess; 28386let isCVLoad = 1; 28387let isCVI = 1; 28388let hasHvxTmp = 1; 28389let mayLoad = 1; 28390let isNonTemporal = 1; 28391let isRestrictNoSlot1Store = 1; 28392let BaseOpcode = "V6_vL32b_nt_tmp_ppu"; 28393let isPredicable = 1; 28394let DecoderNamespace = "EXT_mmvec"; 28395let Constraints = "$Rx32 = $Rx32in"; 28396} 28397def V6_vL32b_nt_tmp_pred_ai : HInst< 28398(outs HvxVR:$Vd32), 28399(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 28400"if ($Pv4) $Vd32.tmp = vmem($Rt32+#$Ii):nt", 28401tc_3904b926, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 28402let Inst{7-5} = 0b110; 28403let Inst{31-21} = 0b00101000110; 28404let isPredicated = 1; 28405let hasNewValue = 1; 28406let opNewValue = 0; 28407let addrMode = BaseImmOffset; 28408let accessSize = HVXVectorAccess; 28409let isCVLoad = 1; 28410let isCVI = 1; 28411let hasHvxTmp = 1; 28412let mayLoad = 1; 28413let isNonTemporal = 1; 28414let isRestrictNoSlot1Store = 1; 28415let BaseOpcode = "V6_vL32b_nt_tmp_ai"; 28416let DecoderNamespace = "EXT_mmvec"; 28417} 28418def V6_vL32b_nt_tmp_pred_pi : HInst< 28419(outs HvxVR:$Vd32, IntRegs:$Rx32), 28420(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 28421"if ($Pv4) $Vd32.tmp = vmem($Rx32++#$Ii):nt", 28422tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 28423let Inst{7-5} = 0b110; 28424let Inst{13-13} = 0b0; 28425let Inst{31-21} = 0b00101001110; 28426let isPredicated = 1; 28427let hasNewValue = 1; 28428let opNewValue = 0; 28429let addrMode = PostInc; 28430let accessSize = HVXVectorAccess; 28431let isCVLoad = 1; 28432let isCVI = 1; 28433let hasHvxTmp = 1; 28434let mayLoad = 1; 28435let isNonTemporal = 1; 28436let isRestrictNoSlot1Store = 1; 28437let BaseOpcode = "V6_vL32b_nt_tmp_pi"; 28438let DecoderNamespace = "EXT_mmvec"; 28439let Constraints = "$Rx32 = $Rx32in"; 28440} 28441def V6_vL32b_nt_tmp_pred_ppu : HInst< 28442(outs HvxVR:$Vd32, IntRegs:$Rx32), 28443(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 28444"if ($Pv4) $Vd32.tmp = vmem($Rx32++$Mu2):nt", 28445tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 28446let Inst{10-5} = 0b000110; 28447let Inst{31-21} = 0b00101011110; 28448let isPredicated = 1; 28449let hasNewValue = 1; 28450let opNewValue = 0; 28451let addrMode = PostInc; 28452let accessSize = HVXVectorAccess; 28453let isCVLoad = 1; 28454let isCVI = 1; 28455let hasHvxTmp = 1; 28456let mayLoad = 1; 28457let isNonTemporal = 1; 28458let isRestrictNoSlot1Store = 1; 28459let BaseOpcode = "V6_vL32b_nt_tmp_ppu"; 28460let DecoderNamespace = "EXT_mmvec"; 28461let Constraints = "$Rx32 = $Rx32in"; 28462} 28463def V6_vL32b_pi : HInst< 28464(outs HvxVR:$Vd32, IntRegs:$Rx32), 28465(ins IntRegs:$Rx32in, s3_0Imm:$Ii), 28466"$Vd32 = vmem($Rx32++#$Ii)", 28467tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm { 28468let Inst{7-5} = 0b000; 28469let Inst{13-11} = 0b000; 28470let Inst{31-21} = 0b00101001000; 28471let hasNewValue = 1; 28472let opNewValue = 0; 28473let addrMode = PostInc; 28474let accessSize = HVXVectorAccess; 28475let isCVLoad = 1; 28476let isCVI = 1; 28477let isHVXALU = 1; 28478let mayLoad = 1; 28479let isRestrictNoSlot1Store = 1; 28480let BaseOpcode = "V6_vL32b_pi"; 28481let CextOpcode = "V6_vL32b"; 28482let isCVLoadable = 1; 28483let isPredicable = 1; 28484let DecoderNamespace = "EXT_mmvec"; 28485let Constraints = "$Rx32 = $Rx32in"; 28486} 28487def V6_vL32b_ppu : HInst< 28488(outs HvxVR:$Vd32, IntRegs:$Rx32), 28489(ins IntRegs:$Rx32in, ModRegs:$Mu2), 28490"$Vd32 = vmem($Rx32++$Mu2)", 28491tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel { 28492let Inst{12-5} = 0b00000000; 28493let Inst{31-21} = 0b00101011000; 28494let hasNewValue = 1; 28495let opNewValue = 0; 28496let addrMode = PostInc; 28497let accessSize = HVXVectorAccess; 28498let isCVLoad = 1; 28499let isCVI = 1; 28500let isHVXALU = 1; 28501let mayLoad = 1; 28502let isRestrictNoSlot1Store = 1; 28503let BaseOpcode = "V6_vL32b_ppu"; 28504let isCVLoadable = 1; 28505let isPredicable = 1; 28506let DecoderNamespace = "EXT_mmvec"; 28507let Constraints = "$Rx32 = $Rx32in"; 28508} 28509def V6_vL32b_pred_ai : HInst< 28510(outs HvxVR:$Vd32), 28511(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 28512"if ($Pv4) $Vd32 = vmem($Rt32+#$Ii)", 28513tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 28514let Inst{7-5} = 0b010; 28515let Inst{31-21} = 0b00101000100; 28516let isPredicated = 1; 28517let hasNewValue = 1; 28518let opNewValue = 0; 28519let addrMode = BaseImmOffset; 28520let accessSize = HVXVectorAccess; 28521let isCVLoad = 1; 28522let isCVI = 1; 28523let isHVXALU = 1; 28524let mayLoad = 1; 28525let isRestrictNoSlot1Store = 1; 28526let BaseOpcode = "V6_vL32b_ai"; 28527let DecoderNamespace = "EXT_mmvec"; 28528} 28529def V6_vL32b_pred_pi : HInst< 28530(outs HvxVR:$Vd32, IntRegs:$Rx32), 28531(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 28532"if ($Pv4) $Vd32 = vmem($Rx32++#$Ii)", 28533tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 28534let Inst{7-5} = 0b010; 28535let Inst{13-13} = 0b0; 28536let Inst{31-21} = 0b00101001100; 28537let isPredicated = 1; 28538let hasNewValue = 1; 28539let opNewValue = 0; 28540let addrMode = PostInc; 28541let accessSize = HVXVectorAccess; 28542let isCVLoad = 1; 28543let isCVI = 1; 28544let isHVXALU = 1; 28545let mayLoad = 1; 28546let isRestrictNoSlot1Store = 1; 28547let BaseOpcode = "V6_vL32b_pi"; 28548let DecoderNamespace = "EXT_mmvec"; 28549let Constraints = "$Rx32 = $Rx32in"; 28550} 28551def V6_vL32b_pred_ppu : HInst< 28552(outs HvxVR:$Vd32, IntRegs:$Rx32), 28553(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 28554"if ($Pv4) $Vd32 = vmem($Rx32++$Mu2)", 28555tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 28556let Inst{10-5} = 0b000010; 28557let Inst{31-21} = 0b00101011100; 28558let isPredicated = 1; 28559let hasNewValue = 1; 28560let opNewValue = 0; 28561let addrMode = PostInc; 28562let accessSize = HVXVectorAccess; 28563let isCVLoad = 1; 28564let isCVI = 1; 28565let isHVXALU = 1; 28566let mayLoad = 1; 28567let isRestrictNoSlot1Store = 1; 28568let BaseOpcode = "V6_vL32b_ppu"; 28569let DecoderNamespace = "EXT_mmvec"; 28570let Constraints = "$Rx32 = $Rx32in"; 28571} 28572def V6_vL32b_tmp_ai : HInst< 28573(outs HvxVR:$Vd32), 28574(ins IntRegs:$Rt32, s4_0Imm:$Ii), 28575"$Vd32.tmp = vmem($Rt32+#$Ii)", 28576tc_52447ecc, TypeCVI_VM_TMP_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm { 28577let Inst{7-5} = 0b010; 28578let Inst{12-11} = 0b00; 28579let Inst{31-21} = 0b00101000000; 28580let hasNewValue = 1; 28581let opNewValue = 0; 28582let addrMode = BaseImmOffset; 28583let accessSize = HVXVectorAccess; 28584let isCVLoad = 1; 28585let isCVI = 1; 28586let hasHvxTmp = 1; 28587let mayLoad = 1; 28588let isRestrictNoSlot1Store = 1; 28589let BaseOpcode = "V6_vL32b_tmp_ai"; 28590let CextOpcode = "V6_vL32b_tmp"; 28591let isPredicable = 1; 28592let DecoderNamespace = "EXT_mmvec"; 28593} 28594def V6_vL32b_tmp_npred_ai : HInst< 28595(outs HvxVR:$Vd32), 28596(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 28597"if (!$Pv4) $Vd32.tmp = vmem($Rt32+#$Ii)", 28598tc_3904b926, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 28599let Inst{7-5} = 0b111; 28600let Inst{31-21} = 0b00101000100; 28601let isPredicated = 1; 28602let isPredicatedFalse = 1; 28603let hasNewValue = 1; 28604let opNewValue = 0; 28605let addrMode = BaseImmOffset; 28606let accessSize = HVXVectorAccess; 28607let isCVLoad = 1; 28608let isCVI = 1; 28609let hasHvxTmp = 1; 28610let mayLoad = 1; 28611let isRestrictNoSlot1Store = 1; 28612let BaseOpcode = "V6_vL32b_tmp_ai"; 28613let DecoderNamespace = "EXT_mmvec"; 28614} 28615def V6_vL32b_tmp_npred_pi : HInst< 28616(outs HvxVR:$Vd32, IntRegs:$Rx32), 28617(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 28618"if (!$Pv4) $Vd32.tmp = vmem($Rx32++#$Ii)", 28619tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 28620let Inst{7-5} = 0b111; 28621let Inst{13-13} = 0b0; 28622let Inst{31-21} = 0b00101001100; 28623let isPredicated = 1; 28624let isPredicatedFalse = 1; 28625let hasNewValue = 1; 28626let opNewValue = 0; 28627let addrMode = PostInc; 28628let accessSize = HVXVectorAccess; 28629let isCVLoad = 1; 28630let isCVI = 1; 28631let hasHvxTmp = 1; 28632let mayLoad = 1; 28633let isRestrictNoSlot1Store = 1; 28634let BaseOpcode = "V6_vL32b_tmp_pi"; 28635let DecoderNamespace = "EXT_mmvec"; 28636let Constraints = "$Rx32 = $Rx32in"; 28637} 28638def V6_vL32b_tmp_npred_ppu : HInst< 28639(outs HvxVR:$Vd32, IntRegs:$Rx32), 28640(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 28641"if (!$Pv4) $Vd32.tmp = vmem($Rx32++$Mu2)", 28642tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 28643let Inst{10-5} = 0b000111; 28644let Inst{31-21} = 0b00101011100; 28645let isPredicated = 1; 28646let isPredicatedFalse = 1; 28647let hasNewValue = 1; 28648let opNewValue = 0; 28649let addrMode = PostInc; 28650let accessSize = HVXVectorAccess; 28651let isCVLoad = 1; 28652let isCVI = 1; 28653let hasHvxTmp = 1; 28654let mayLoad = 1; 28655let isRestrictNoSlot1Store = 1; 28656let BaseOpcode = "V6_vL32b_tmp_ppu"; 28657let DecoderNamespace = "EXT_mmvec"; 28658let Constraints = "$Rx32 = $Rx32in"; 28659} 28660def V6_vL32b_tmp_pi : HInst< 28661(outs HvxVR:$Vd32, IntRegs:$Rx32), 28662(ins IntRegs:$Rx32in, s3_0Imm:$Ii), 28663"$Vd32.tmp = vmem($Rx32++#$Ii)", 28664tc_663c80a7, TypeCVI_VM_TMP_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel, PostInc_BaseImm { 28665let Inst{7-5} = 0b010; 28666let Inst{13-11} = 0b000; 28667let Inst{31-21} = 0b00101001000; 28668let hasNewValue = 1; 28669let opNewValue = 0; 28670let addrMode = PostInc; 28671let accessSize = HVXVectorAccess; 28672let isCVLoad = 1; 28673let isCVI = 1; 28674let hasHvxTmp = 1; 28675let mayLoad = 1; 28676let isRestrictNoSlot1Store = 1; 28677let BaseOpcode = "V6_vL32b_tmp_pi"; 28678let CextOpcode = "V6_vL32b_tmp"; 28679let isPredicable = 1; 28680let DecoderNamespace = "EXT_mmvec"; 28681let Constraints = "$Rx32 = $Rx32in"; 28682} 28683def V6_vL32b_tmp_ppu : HInst< 28684(outs HvxVR:$Vd32, IntRegs:$Rx32), 28685(ins IntRegs:$Rx32in, ModRegs:$Mu2), 28686"$Vd32.tmp = vmem($Rx32++$Mu2)", 28687tc_663c80a7, TypeCVI_VM_TMP_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel { 28688let Inst{12-5} = 0b00000010; 28689let Inst{31-21} = 0b00101011000; 28690let hasNewValue = 1; 28691let opNewValue = 0; 28692let addrMode = PostInc; 28693let accessSize = HVXVectorAccess; 28694let isCVLoad = 1; 28695let isCVI = 1; 28696let hasHvxTmp = 1; 28697let mayLoad = 1; 28698let isRestrictNoSlot1Store = 1; 28699let BaseOpcode = "V6_vL32b_tmp_ppu"; 28700let isPredicable = 1; 28701let DecoderNamespace = "EXT_mmvec"; 28702let Constraints = "$Rx32 = $Rx32in"; 28703} 28704def V6_vL32b_tmp_pred_ai : HInst< 28705(outs HvxVR:$Vd32), 28706(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 28707"if ($Pv4) $Vd32.tmp = vmem($Rt32+#$Ii)", 28708tc_3904b926, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel { 28709let Inst{7-5} = 0b110; 28710let Inst{31-21} = 0b00101000100; 28711let isPredicated = 1; 28712let hasNewValue = 1; 28713let opNewValue = 0; 28714let addrMode = BaseImmOffset; 28715let accessSize = HVXVectorAccess; 28716let isCVLoad = 1; 28717let isCVI = 1; 28718let hasHvxTmp = 1; 28719let mayLoad = 1; 28720let isRestrictNoSlot1Store = 1; 28721let BaseOpcode = "V6_vL32b_tmp_ai"; 28722let DecoderNamespace = "EXT_mmvec"; 28723} 28724def V6_vL32b_tmp_pred_pi : HInst< 28725(outs HvxVR:$Vd32, IntRegs:$Rx32), 28726(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 28727"if ($Pv4) $Vd32.tmp = vmem($Rx32++#$Ii)", 28728tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel { 28729let Inst{7-5} = 0b110; 28730let Inst{13-13} = 0b0; 28731let Inst{31-21} = 0b00101001100; 28732let isPredicated = 1; 28733let hasNewValue = 1; 28734let opNewValue = 0; 28735let addrMode = PostInc; 28736let accessSize = HVXVectorAccess; 28737let isCVLoad = 1; 28738let isCVI = 1; 28739let hasHvxTmp = 1; 28740let mayLoad = 1; 28741let isRestrictNoSlot1Store = 1; 28742let BaseOpcode = "V6_vL32b_tmp_pi"; 28743let DecoderNamespace = "EXT_mmvec"; 28744let Constraints = "$Rx32 = $Rx32in"; 28745} 28746def V6_vL32b_tmp_pred_ppu : HInst< 28747(outs HvxVR:$Vd32, IntRegs:$Rx32), 28748(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 28749"if ($Pv4) $Vd32.tmp = vmem($Rx32++$Mu2)", 28750tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel { 28751let Inst{10-5} = 0b000110; 28752let Inst{31-21} = 0b00101011100; 28753let isPredicated = 1; 28754let hasNewValue = 1; 28755let opNewValue = 0; 28756let addrMode = PostInc; 28757let accessSize = HVXVectorAccess; 28758let isCVLoad = 1; 28759let isCVI = 1; 28760let hasHvxTmp = 1; 28761let mayLoad = 1; 28762let isRestrictNoSlot1Store = 1; 28763let BaseOpcode = "V6_vL32b_tmp_ppu"; 28764let DecoderNamespace = "EXT_mmvec"; 28765let Constraints = "$Rx32 = $Rx32in"; 28766} 28767def V6_vS32Ub_ai : HInst< 28768(outs), 28769(ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 28770"vmemu($Rt32+#$Ii) = $Vs32", 28771tc_f21e8abb, TypeCVI_VM_STU>, Enc_c9e3bc, Requires<[UseHVXV60]>, NewValueRel, PostInc_BaseImm { 28772let Inst{7-5} = 0b111; 28773let Inst{12-11} = 0b00; 28774let Inst{31-21} = 0b00101000001; 28775let addrMode = BaseImmOffset; 28776let accessSize = HVXVectorAccess; 28777let isCVI = 1; 28778let mayStore = 1; 28779let BaseOpcode = "V6_vS32Ub_ai"; 28780let CextOpcode = "V6_vS32Ub"; 28781let isPredicable = 1; 28782let DecoderNamespace = "EXT_mmvec"; 28783} 28784def V6_vS32Ub_npred_ai : HInst< 28785(outs), 28786(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 28787"if (!$Pv4) vmemu($Rt32+#$Ii) = $Vs32", 28788tc_131f1c81, TypeCVI_VM_STU>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel { 28789let Inst{7-5} = 0b111; 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_vS32Ub_ai"; 28798let DecoderNamespace = "EXT_mmvec"; 28799} 28800def V6_vS32Ub_npred_pi : HInst< 28801(outs IntRegs:$Rx32), 28802(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 28803"if (!$Pv4) vmemu($Rx32++#$Ii) = $Vs32", 28804tc_c7039829, TypeCVI_VM_STU>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel { 28805let Inst{7-5} = 0b111; 28806let Inst{13-13} = 0b0; 28807let Inst{31-21} = 0b00101001101; 28808let isPredicated = 1; 28809let isPredicatedFalse = 1; 28810let addrMode = PostInc; 28811let accessSize = HVXVectorAccess; 28812let isCVI = 1; 28813let mayStore = 1; 28814let BaseOpcode = "V6_vS32Ub_pi"; 28815let DecoderNamespace = "EXT_mmvec"; 28816let Constraints = "$Rx32 = $Rx32in"; 28817} 28818def V6_vS32Ub_npred_ppu : HInst< 28819(outs IntRegs:$Rx32), 28820(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 28821"if (!$Pv4) vmemu($Rx32++$Mu2) = $Vs32", 28822tc_c7039829, TypeCVI_VM_STU>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel { 28823let Inst{10-5} = 0b000111; 28824let Inst{31-21} = 0b00101011101; 28825let isPredicated = 1; 28826let isPredicatedFalse = 1; 28827let addrMode = PostInc; 28828let accessSize = HVXVectorAccess; 28829let isCVI = 1; 28830let mayStore = 1; 28831let BaseOpcode = "V6_vS32Ub_ppu"; 28832let DecoderNamespace = "EXT_mmvec"; 28833let Constraints = "$Rx32 = $Rx32in"; 28834} 28835def V6_vS32Ub_pi : HInst< 28836(outs IntRegs:$Rx32), 28837(ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 28838"vmemu($Rx32++#$Ii) = $Vs32", 28839tc_e2d2e9e5, TypeCVI_VM_STU>, Enc_b62ef7, Requires<[UseHVXV60]>, NewValueRel, PostInc_BaseImm { 28840let Inst{7-5} = 0b111; 28841let Inst{13-11} = 0b000; 28842let Inst{31-21} = 0b00101001001; 28843let addrMode = PostInc; 28844let accessSize = HVXVectorAccess; 28845let isCVI = 1; 28846let mayStore = 1; 28847let BaseOpcode = "V6_vS32Ub_pi"; 28848let CextOpcode = "V6_vS32Ub"; 28849let isPredicable = 1; 28850let DecoderNamespace = "EXT_mmvec"; 28851let Constraints = "$Rx32 = $Rx32in"; 28852} 28853def V6_vS32Ub_ppu : HInst< 28854(outs IntRegs:$Rx32), 28855(ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 28856"vmemu($Rx32++$Mu2) = $Vs32", 28857tc_e2d2e9e5, TypeCVI_VM_STU>, Enc_d15d19, Requires<[UseHVXV60]>, NewValueRel { 28858let Inst{12-5} = 0b00000111; 28859let Inst{31-21} = 0b00101011001; 28860let addrMode = PostInc; 28861let accessSize = HVXVectorAccess; 28862let isCVI = 1; 28863let mayStore = 1; 28864let BaseOpcode = "V6_vS32Ub_ppu"; 28865let isPredicable = 1; 28866let DecoderNamespace = "EXT_mmvec"; 28867let Constraints = "$Rx32 = $Rx32in"; 28868} 28869def V6_vS32Ub_pred_ai : HInst< 28870(outs), 28871(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 28872"if ($Pv4) vmemu($Rt32+#$Ii) = $Vs32", 28873tc_131f1c81, TypeCVI_VM_STU>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel { 28874let Inst{7-5} = 0b110; 28875let Inst{31-21} = 0b00101000101; 28876let isPredicated = 1; 28877let addrMode = BaseImmOffset; 28878let accessSize = HVXVectorAccess; 28879let isCVI = 1; 28880let mayStore = 1; 28881let BaseOpcode = "V6_vS32Ub_ai"; 28882let DecoderNamespace = "EXT_mmvec"; 28883} 28884def V6_vS32Ub_pred_pi : HInst< 28885(outs IntRegs:$Rx32), 28886(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 28887"if ($Pv4) vmemu($Rx32++#$Ii) = $Vs32", 28888tc_c7039829, TypeCVI_VM_STU>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel { 28889let Inst{7-5} = 0b110; 28890let Inst{13-13} = 0b0; 28891let Inst{31-21} = 0b00101001101; 28892let isPredicated = 1; 28893let addrMode = PostInc; 28894let accessSize = HVXVectorAccess; 28895let isCVI = 1; 28896let mayStore = 1; 28897let BaseOpcode = "V6_vS32Ub_pi"; 28898let DecoderNamespace = "EXT_mmvec"; 28899let Constraints = "$Rx32 = $Rx32in"; 28900} 28901def V6_vS32Ub_pred_ppu : HInst< 28902(outs IntRegs:$Rx32), 28903(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 28904"if ($Pv4) vmemu($Rx32++$Mu2) = $Vs32", 28905tc_c7039829, TypeCVI_VM_STU>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel { 28906let Inst{10-5} = 0b000110; 28907let Inst{31-21} = 0b00101011101; 28908let isPredicated = 1; 28909let addrMode = PostInc; 28910let accessSize = HVXVectorAccess; 28911let isCVI = 1; 28912let mayStore = 1; 28913let BaseOpcode = "V6_vS32Ub_ppu"; 28914let DecoderNamespace = "EXT_mmvec"; 28915let Constraints = "$Rx32 = $Rx32in"; 28916} 28917def V6_vS32b_ai : HInst< 28918(outs), 28919(ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 28920"vmem($Rt32+#$Ii) = $Vs32", 28921tc_c5dba46e, TypeCVI_VM_ST>, Enc_c9e3bc, Requires<[UseHVXV60]>, NewValueRel, PostInc_BaseImm { 28922let Inst{7-5} = 0b000; 28923let Inst{12-11} = 0b00; 28924let Inst{31-21} = 0b00101000001; 28925let addrMode = BaseImmOffset; 28926let accessSize = HVXVectorAccess; 28927let isCVI = 1; 28928let isHVXALU = 1; 28929let mayStore = 1; 28930let BaseOpcode = "V6_vS32b_ai"; 28931let CextOpcode = "V6_vS32b"; 28932let isNVStorable = 1; 28933let isPredicable = 1; 28934let DecoderNamespace = "EXT_mmvec"; 28935} 28936def V6_vS32b_new_ai : HInst< 28937(outs), 28938(ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8), 28939"vmem($Rt32+#$Ii) = $Os8.new", 28940tc_ab23f776, TypeCVI_VM_NEW_ST>, Enc_f77fbc, Requires<[UseHVXV60]>, NewValueRel, PostInc_BaseImm { 28941let Inst{7-3} = 0b00100; 28942let Inst{12-11} = 0b00; 28943let Inst{31-21} = 0b00101000001; 28944let addrMode = BaseImmOffset; 28945let accessSize = HVXVectorAccess; 28946let isNVStore = 1; 28947let isCVI = 1; 28948let CVINew = 1; 28949let isNewValue = 1; 28950let mayStore = 1; 28951let BaseOpcode = "V6_vS32b_ai"; 28952let CextOpcode = "V6_vS32b_new"; 28953let isPredicable = 1; 28954let DecoderNamespace = "EXT_mmvec"; 28955let opNewValue = 2; 28956} 28957def V6_vS32b_new_npred_ai : HInst< 28958(outs), 28959(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8), 28960"if (!$Pv4) vmem($Rt32+#$Ii) = $Os8.new", 28961tc_7177e272, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[UseHVXV60]>, NewValueRel { 28962let Inst{7-3} = 0b01101; 28963let Inst{31-21} = 0b00101000101; 28964let isPredicated = 1; 28965let isPredicatedFalse = 1; 28966let addrMode = BaseImmOffset; 28967let accessSize = HVXVectorAccess; 28968let isNVStore = 1; 28969let isCVI = 1; 28970let CVINew = 1; 28971let isNewValue = 1; 28972let mayStore = 1; 28973let BaseOpcode = "V6_vS32b_ai"; 28974let DecoderNamespace = "EXT_mmvec"; 28975let opNewValue = 3; 28976} 28977def V6_vS32b_new_npred_pi : HInst< 28978(outs IntRegs:$Rx32), 28979(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8), 28980"if (!$Pv4) vmem($Rx32++#$Ii) = $Os8.new", 28981tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[UseHVXV60]>, NewValueRel { 28982let Inst{7-3} = 0b01101; 28983let Inst{13-13} = 0b0; 28984let Inst{31-21} = 0b00101001101; 28985let isPredicated = 1; 28986let isPredicatedFalse = 1; 28987let addrMode = PostInc; 28988let accessSize = HVXVectorAccess; 28989let isNVStore = 1; 28990let isCVI = 1; 28991let CVINew = 1; 28992let isNewValue = 1; 28993let mayStore = 1; 28994let BaseOpcode = "V6_vS32b_pi"; 28995let DecoderNamespace = "EXT_mmvec"; 28996let opNewValue = 4; 28997let Constraints = "$Rx32 = $Rx32in"; 28998} 28999def V6_vS32b_new_npred_ppu : HInst< 29000(outs IntRegs:$Rx32), 29001(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8), 29002"if (!$Pv4) vmem($Rx32++$Mu2) = $Os8.new", 29003tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[UseHVXV60]>, NewValueRel { 29004let Inst{10-3} = 0b00001101; 29005let Inst{31-21} = 0b00101011101; 29006let isPredicated = 1; 29007let isPredicatedFalse = 1; 29008let addrMode = PostInc; 29009let accessSize = HVXVectorAccess; 29010let isNVStore = 1; 29011let isCVI = 1; 29012let CVINew = 1; 29013let isNewValue = 1; 29014let mayStore = 1; 29015let BaseOpcode = "V6_vS32b_ppu"; 29016let DecoderNamespace = "EXT_mmvec"; 29017let opNewValue = 4; 29018let Constraints = "$Rx32 = $Rx32in"; 29019} 29020def V6_vS32b_new_pi : HInst< 29021(outs IntRegs:$Rx32), 29022(ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8), 29023"vmem($Rx32++#$Ii) = $Os8.new", 29024tc_6942b6e0, TypeCVI_VM_NEW_ST>, Enc_1aaec1, Requires<[UseHVXV60]>, NewValueRel, PostInc_BaseImm { 29025let Inst{7-3} = 0b00100; 29026let Inst{13-11} = 0b000; 29027let Inst{31-21} = 0b00101001001; 29028let addrMode = PostInc; 29029let accessSize = HVXVectorAccess; 29030let isNVStore = 1; 29031let isCVI = 1; 29032let CVINew = 1; 29033let isNewValue = 1; 29034let mayStore = 1; 29035let BaseOpcode = "V6_vS32b_pi"; 29036let CextOpcode = "V6_vS32b_new"; 29037let isPredicable = 1; 29038let DecoderNamespace = "EXT_mmvec"; 29039let opNewValue = 3; 29040let Constraints = "$Rx32 = $Rx32in"; 29041} 29042def V6_vS32b_new_ppu : HInst< 29043(outs IntRegs:$Rx32), 29044(ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8), 29045"vmem($Rx32++$Mu2) = $Os8.new", 29046tc_6942b6e0, TypeCVI_VM_NEW_ST>, Enc_cf1927, Requires<[UseHVXV60]>, NewValueRel { 29047let Inst{12-3} = 0b0000000100; 29048let Inst{31-21} = 0b00101011001; 29049let addrMode = PostInc; 29050let accessSize = HVXVectorAccess; 29051let isNVStore = 1; 29052let isCVI = 1; 29053let CVINew = 1; 29054let isNewValue = 1; 29055let mayStore = 1; 29056let BaseOpcode = "V6_vS32b_ppu"; 29057let isPredicable = 1; 29058let DecoderNamespace = "EXT_mmvec"; 29059let opNewValue = 3; 29060let Constraints = "$Rx32 = $Rx32in"; 29061} 29062def V6_vS32b_new_pred_ai : HInst< 29063(outs), 29064(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8), 29065"if ($Pv4) vmem($Rt32+#$Ii) = $Os8.new", 29066tc_7177e272, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[UseHVXV60]>, NewValueRel { 29067let Inst{7-3} = 0b01000; 29068let Inst{31-21} = 0b00101000101; 29069let isPredicated = 1; 29070let addrMode = BaseImmOffset; 29071let accessSize = HVXVectorAccess; 29072let isNVStore = 1; 29073let isCVI = 1; 29074let CVINew = 1; 29075let isNewValue = 1; 29076let mayStore = 1; 29077let BaseOpcode = "V6_vS32b_ai"; 29078let DecoderNamespace = "EXT_mmvec"; 29079let opNewValue = 3; 29080} 29081def V6_vS32b_new_pred_pi : HInst< 29082(outs IntRegs:$Rx32), 29083(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8), 29084"if ($Pv4) vmem($Rx32++#$Ii) = $Os8.new", 29085tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[UseHVXV60]>, NewValueRel { 29086let Inst{7-3} = 0b01000; 29087let Inst{13-13} = 0b0; 29088let Inst{31-21} = 0b00101001101; 29089let isPredicated = 1; 29090let addrMode = PostInc; 29091let accessSize = HVXVectorAccess; 29092let isNVStore = 1; 29093let isCVI = 1; 29094let CVINew = 1; 29095let isNewValue = 1; 29096let mayStore = 1; 29097let BaseOpcode = "V6_vS32b_pi"; 29098let DecoderNamespace = "EXT_mmvec"; 29099let opNewValue = 4; 29100let Constraints = "$Rx32 = $Rx32in"; 29101} 29102def V6_vS32b_new_pred_ppu : HInst< 29103(outs IntRegs:$Rx32), 29104(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8), 29105"if ($Pv4) vmem($Rx32++$Mu2) = $Os8.new", 29106tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[UseHVXV60]>, NewValueRel { 29107let Inst{10-3} = 0b00001000; 29108let Inst{31-21} = 0b00101011101; 29109let isPredicated = 1; 29110let addrMode = PostInc; 29111let accessSize = HVXVectorAccess; 29112let isNVStore = 1; 29113let isCVI = 1; 29114let CVINew = 1; 29115let isNewValue = 1; 29116let mayStore = 1; 29117let BaseOpcode = "V6_vS32b_ppu"; 29118let DecoderNamespace = "EXT_mmvec"; 29119let opNewValue = 4; 29120let Constraints = "$Rx32 = $Rx32in"; 29121} 29122def V6_vS32b_npred_ai : HInst< 29123(outs), 29124(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 29125"if (!$Pv4) vmem($Rt32+#$Ii) = $Vs32", 29126tc_a02a10a8, TypeCVI_VM_ST>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel { 29127let Inst{7-5} = 0b001; 29128let Inst{31-21} = 0b00101000101; 29129let isPredicated = 1; 29130let isPredicatedFalse = 1; 29131let addrMode = BaseImmOffset; 29132let accessSize = HVXVectorAccess; 29133let isCVI = 1; 29134let isHVXALU = 1; 29135let mayStore = 1; 29136let BaseOpcode = "V6_vS32b_ai"; 29137let isNVStorable = 1; 29138let DecoderNamespace = "EXT_mmvec"; 29139} 29140def V6_vS32b_npred_pi : HInst< 29141(outs IntRegs:$Rx32), 29142(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 29143"if (!$Pv4) vmem($Rx32++#$Ii) = $Vs32", 29144tc_54a0dc47, TypeCVI_VM_ST>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel { 29145let Inst{7-5} = 0b001; 29146let Inst{13-13} = 0b0; 29147let Inst{31-21} = 0b00101001101; 29148let isPredicated = 1; 29149let isPredicatedFalse = 1; 29150let addrMode = PostInc; 29151let accessSize = HVXVectorAccess; 29152let isCVI = 1; 29153let isHVXALU = 1; 29154let mayStore = 1; 29155let BaseOpcode = "V6_vS32b_pi"; 29156let isNVStorable = 1; 29157let DecoderNamespace = "EXT_mmvec"; 29158let Constraints = "$Rx32 = $Rx32in"; 29159} 29160def V6_vS32b_npred_ppu : HInst< 29161(outs IntRegs:$Rx32), 29162(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 29163"if (!$Pv4) vmem($Rx32++$Mu2) = $Vs32", 29164tc_54a0dc47, TypeCVI_VM_ST>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel { 29165let Inst{10-5} = 0b000001; 29166let Inst{31-21} = 0b00101011101; 29167let isPredicated = 1; 29168let isPredicatedFalse = 1; 29169let addrMode = PostInc; 29170let accessSize = HVXVectorAccess; 29171let isCVI = 1; 29172let isHVXALU = 1; 29173let mayStore = 1; 29174let BaseOpcode = "V6_vS32b_ppu"; 29175let isNVStorable = 1; 29176let DecoderNamespace = "EXT_mmvec"; 29177let Constraints = "$Rx32 = $Rx32in"; 29178} 29179def V6_vS32b_nqpred_ai : HInst< 29180(outs), 29181(ins HvxQR:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 29182"if (!$Qv4) vmem($Rt32+#$Ii) = $Vs32", 29183tc_447d9895, TypeCVI_VM_ST>, Enc_2ea740, Requires<[UseHVXV60]> { 29184let Inst{7-5} = 0b001; 29185let Inst{31-21} = 0b00101000100; 29186let addrMode = BaseImmOffset; 29187let accessSize = HVXVectorAccess; 29188let isCVI = 1; 29189let isHVXALU = 1; 29190let mayStore = 1; 29191let DecoderNamespace = "EXT_mmvec"; 29192} 29193def V6_vS32b_nqpred_pi : HInst< 29194(outs IntRegs:$Rx32), 29195(ins HvxQR:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 29196"if (!$Qv4) vmem($Rx32++#$Ii) = $Vs32", 29197tc_191381c1, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[UseHVXV60]> { 29198let Inst{7-5} = 0b001; 29199let Inst{13-13} = 0b0; 29200let Inst{31-21} = 0b00101001100; 29201let addrMode = PostInc; 29202let accessSize = HVXVectorAccess; 29203let isCVI = 1; 29204let isHVXALU = 1; 29205let mayStore = 1; 29206let DecoderNamespace = "EXT_mmvec"; 29207let Constraints = "$Rx32 = $Rx32in"; 29208} 29209def V6_vS32b_nqpred_ppu : HInst< 29210(outs IntRegs:$Rx32), 29211(ins HvxQR:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 29212"if (!$Qv4) vmem($Rx32++$Mu2) = $Vs32", 29213tc_191381c1, TypeCVI_VM_ST>, Enc_4dff07, Requires<[UseHVXV60]> { 29214let Inst{10-5} = 0b000001; 29215let Inst{31-21} = 0b00101011100; 29216let addrMode = PostInc; 29217let accessSize = HVXVectorAccess; 29218let isCVI = 1; 29219let isHVXALU = 1; 29220let mayStore = 1; 29221let DecoderNamespace = "EXT_mmvec"; 29222let Constraints = "$Rx32 = $Rx32in"; 29223} 29224def V6_vS32b_nt_ai : HInst< 29225(outs), 29226(ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 29227"vmem($Rt32+#$Ii):nt = $Vs32", 29228tc_c5dba46e, TypeCVI_VM_ST>, Enc_c9e3bc, Requires<[UseHVXV60]>, NewValueRel, PostInc_BaseImm { 29229let Inst{7-5} = 0b000; 29230let Inst{12-11} = 0b00; 29231let Inst{31-21} = 0b00101000011; 29232let addrMode = BaseImmOffset; 29233let accessSize = HVXVectorAccess; 29234let isCVI = 1; 29235let isHVXALU = 1; 29236let isNonTemporal = 1; 29237let mayStore = 1; 29238let BaseOpcode = "V6_vS32b_ai"; 29239let CextOpcode = "V6_vS32b_nt"; 29240let isNVStorable = 1; 29241let isPredicable = 1; 29242let DecoderNamespace = "EXT_mmvec"; 29243} 29244def V6_vS32b_nt_new_ai : HInst< 29245(outs), 29246(ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8), 29247"vmem($Rt32+#$Ii):nt = $Os8.new", 29248tc_ab23f776, TypeCVI_VM_NEW_ST>, Enc_f77fbc, Requires<[UseHVXV60]>, NewValueRel, PostInc_BaseImm { 29249let Inst{7-3} = 0b00100; 29250let Inst{12-11} = 0b00; 29251let Inst{31-21} = 0b00101000011; 29252let addrMode = BaseImmOffset; 29253let accessSize = HVXVectorAccess; 29254let isNVStore = 1; 29255let isCVI = 1; 29256let CVINew = 1; 29257let isNewValue = 1; 29258let isNonTemporal = 1; 29259let mayStore = 1; 29260let BaseOpcode = "V6_vS32b_ai"; 29261let CextOpcode = "V6_vS32b_nt_new"; 29262let isPredicable = 1; 29263let DecoderNamespace = "EXT_mmvec"; 29264let opNewValue = 2; 29265} 29266def V6_vS32b_nt_new_npred_ai : HInst< 29267(outs), 29268(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8), 29269"if (!$Pv4) vmem($Rt32+#$Ii):nt = $Os8.new", 29270tc_7177e272, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[UseHVXV60]>, NewValueRel { 29271let Inst{7-3} = 0b01111; 29272let Inst{31-21} = 0b00101000111; 29273let isPredicated = 1; 29274let isPredicatedFalse = 1; 29275let addrMode = BaseImmOffset; 29276let accessSize = HVXVectorAccess; 29277let isNVStore = 1; 29278let isCVI = 1; 29279let CVINew = 1; 29280let isNewValue = 1; 29281let isNonTemporal = 1; 29282let mayStore = 1; 29283let BaseOpcode = "V6_vS32b_ai"; 29284let DecoderNamespace = "EXT_mmvec"; 29285let opNewValue = 3; 29286} 29287def V6_vS32b_nt_new_npred_pi : HInst< 29288(outs IntRegs:$Rx32), 29289(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8), 29290"if (!$Pv4) vmem($Rx32++#$Ii):nt = $Os8.new", 29291tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[UseHVXV60]>, NewValueRel { 29292let Inst{7-3} = 0b01111; 29293let Inst{13-13} = 0b0; 29294let Inst{31-21} = 0b00101001111; 29295let isPredicated = 1; 29296let isPredicatedFalse = 1; 29297let addrMode = PostInc; 29298let accessSize = HVXVectorAccess; 29299let isNVStore = 1; 29300let isCVI = 1; 29301let CVINew = 1; 29302let isNewValue = 1; 29303let isNonTemporal = 1; 29304let mayStore = 1; 29305let BaseOpcode = "V6_vS32b_pi"; 29306let DecoderNamespace = "EXT_mmvec"; 29307let opNewValue = 4; 29308let Constraints = "$Rx32 = $Rx32in"; 29309} 29310def V6_vS32b_nt_new_npred_ppu : HInst< 29311(outs IntRegs:$Rx32), 29312(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8), 29313"if (!$Pv4) vmem($Rx32++$Mu2):nt = $Os8.new", 29314tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[UseHVXV60]>, NewValueRel { 29315let Inst{10-3} = 0b00001111; 29316let Inst{31-21} = 0b00101011111; 29317let isPredicated = 1; 29318let isPredicatedFalse = 1; 29319let addrMode = PostInc; 29320let accessSize = HVXVectorAccess; 29321let isNVStore = 1; 29322let isCVI = 1; 29323let CVINew = 1; 29324let isNewValue = 1; 29325let isNonTemporal = 1; 29326let mayStore = 1; 29327let BaseOpcode = "V6_vS32b_ppu"; 29328let DecoderNamespace = "EXT_mmvec"; 29329let opNewValue = 4; 29330let Constraints = "$Rx32 = $Rx32in"; 29331} 29332def V6_vS32b_nt_new_pi : HInst< 29333(outs IntRegs:$Rx32), 29334(ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8), 29335"vmem($Rx32++#$Ii):nt = $Os8.new", 29336tc_6942b6e0, TypeCVI_VM_NEW_ST>, Enc_1aaec1, Requires<[UseHVXV60]>, NewValueRel, PostInc_BaseImm { 29337let Inst{7-3} = 0b00100; 29338let Inst{13-11} = 0b000; 29339let Inst{31-21} = 0b00101001011; 29340let addrMode = PostInc; 29341let accessSize = HVXVectorAccess; 29342let isNVStore = 1; 29343let isCVI = 1; 29344let CVINew = 1; 29345let isNewValue = 1; 29346let isNonTemporal = 1; 29347let mayStore = 1; 29348let BaseOpcode = "V6_vS32b_pi"; 29349let CextOpcode = "V6_vS32b_nt_new"; 29350let isPredicable = 1; 29351let DecoderNamespace = "EXT_mmvec"; 29352let opNewValue = 3; 29353let Constraints = "$Rx32 = $Rx32in"; 29354} 29355def V6_vS32b_nt_new_ppu : HInst< 29356(outs IntRegs:$Rx32), 29357(ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8), 29358"vmem($Rx32++$Mu2):nt = $Os8.new", 29359tc_6942b6e0, TypeCVI_VM_NEW_ST>, Enc_cf1927, Requires<[UseHVXV60]>, NewValueRel { 29360let Inst{12-3} = 0b0000000100; 29361let Inst{31-21} = 0b00101011011; 29362let addrMode = PostInc; 29363let accessSize = HVXVectorAccess; 29364let isNVStore = 1; 29365let isCVI = 1; 29366let CVINew = 1; 29367let isNewValue = 1; 29368let isNonTemporal = 1; 29369let mayStore = 1; 29370let BaseOpcode = "V6_vS32b_ppu"; 29371let isPredicable = 1; 29372let DecoderNamespace = "EXT_mmvec"; 29373let opNewValue = 3; 29374let Constraints = "$Rx32 = $Rx32in"; 29375} 29376def V6_vS32b_nt_new_pred_ai : HInst< 29377(outs), 29378(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8), 29379"if ($Pv4) vmem($Rt32+#$Ii):nt = $Os8.new", 29380tc_7177e272, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[UseHVXV60]>, NewValueRel { 29381let Inst{7-3} = 0b01010; 29382let Inst{31-21} = 0b00101000111; 29383let isPredicated = 1; 29384let addrMode = BaseImmOffset; 29385let accessSize = HVXVectorAccess; 29386let isNVStore = 1; 29387let isCVI = 1; 29388let CVINew = 1; 29389let isNewValue = 1; 29390let isNonTemporal = 1; 29391let mayStore = 1; 29392let BaseOpcode = "V6_vS32b_ai"; 29393let DecoderNamespace = "EXT_mmvec"; 29394let opNewValue = 3; 29395} 29396def V6_vS32b_nt_new_pred_pi : HInst< 29397(outs IntRegs:$Rx32), 29398(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8), 29399"if ($Pv4) vmem($Rx32++#$Ii):nt = $Os8.new", 29400tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[UseHVXV60]>, NewValueRel { 29401let Inst{7-3} = 0b01010; 29402let Inst{13-13} = 0b0; 29403let Inst{31-21} = 0b00101001111; 29404let isPredicated = 1; 29405let addrMode = PostInc; 29406let accessSize = HVXVectorAccess; 29407let isNVStore = 1; 29408let isCVI = 1; 29409let CVINew = 1; 29410let isNewValue = 1; 29411let isNonTemporal = 1; 29412let mayStore = 1; 29413let BaseOpcode = "V6_vS32b_pi"; 29414let DecoderNamespace = "EXT_mmvec"; 29415let opNewValue = 4; 29416let Constraints = "$Rx32 = $Rx32in"; 29417} 29418def V6_vS32b_nt_new_pred_ppu : HInst< 29419(outs IntRegs:$Rx32), 29420(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8), 29421"if ($Pv4) vmem($Rx32++$Mu2):nt = $Os8.new", 29422tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[UseHVXV60]>, NewValueRel { 29423let Inst{10-3} = 0b00001010; 29424let Inst{31-21} = 0b00101011111; 29425let isPredicated = 1; 29426let addrMode = PostInc; 29427let accessSize = HVXVectorAccess; 29428let isNVStore = 1; 29429let isCVI = 1; 29430let CVINew = 1; 29431let isNewValue = 1; 29432let isNonTemporal = 1; 29433let mayStore = 1; 29434let BaseOpcode = "V6_vS32b_ppu"; 29435let DecoderNamespace = "EXT_mmvec"; 29436let opNewValue = 4; 29437let Constraints = "$Rx32 = $Rx32in"; 29438} 29439def V6_vS32b_nt_npred_ai : HInst< 29440(outs), 29441(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 29442"if (!$Pv4) vmem($Rt32+#$Ii):nt = $Vs32", 29443tc_a02a10a8, TypeCVI_VM_ST>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel { 29444let Inst{7-5} = 0b001; 29445let Inst{31-21} = 0b00101000111; 29446let isPredicated = 1; 29447let isPredicatedFalse = 1; 29448let addrMode = BaseImmOffset; 29449let accessSize = HVXVectorAccess; 29450let isCVI = 1; 29451let isHVXALU = 1; 29452let isNonTemporal = 1; 29453let mayStore = 1; 29454let BaseOpcode = "V6_vS32b_ai"; 29455let isNVStorable = 1; 29456let DecoderNamespace = "EXT_mmvec"; 29457} 29458def V6_vS32b_nt_npred_pi : HInst< 29459(outs IntRegs:$Rx32), 29460(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 29461"if (!$Pv4) vmem($Rx32++#$Ii):nt = $Vs32", 29462tc_54a0dc47, TypeCVI_VM_ST>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel { 29463let Inst{7-5} = 0b001; 29464let Inst{13-13} = 0b0; 29465let Inst{31-21} = 0b00101001111; 29466let isPredicated = 1; 29467let isPredicatedFalse = 1; 29468let addrMode = PostInc; 29469let accessSize = HVXVectorAccess; 29470let isCVI = 1; 29471let isHVXALU = 1; 29472let isNonTemporal = 1; 29473let mayStore = 1; 29474let BaseOpcode = "V6_vS32b_pi"; 29475let isNVStorable = 1; 29476let DecoderNamespace = "EXT_mmvec"; 29477let Constraints = "$Rx32 = $Rx32in"; 29478} 29479def V6_vS32b_nt_npred_ppu : HInst< 29480(outs IntRegs:$Rx32), 29481(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 29482"if (!$Pv4) vmem($Rx32++$Mu2):nt = $Vs32", 29483tc_54a0dc47, TypeCVI_VM_ST>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel { 29484let Inst{10-5} = 0b000001; 29485let Inst{31-21} = 0b00101011111; 29486let isPredicated = 1; 29487let isPredicatedFalse = 1; 29488let addrMode = PostInc; 29489let accessSize = HVXVectorAccess; 29490let isCVI = 1; 29491let isHVXALU = 1; 29492let isNonTemporal = 1; 29493let mayStore = 1; 29494let BaseOpcode = "V6_vS32b_ppu"; 29495let isNVStorable = 1; 29496let DecoderNamespace = "EXT_mmvec"; 29497let Constraints = "$Rx32 = $Rx32in"; 29498} 29499def V6_vS32b_nt_nqpred_ai : HInst< 29500(outs), 29501(ins HvxQR:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 29502"if (!$Qv4) vmem($Rt32+#$Ii):nt = $Vs32", 29503tc_447d9895, TypeCVI_VM_ST>, Enc_2ea740, Requires<[UseHVXV60]> { 29504let Inst{7-5} = 0b001; 29505let Inst{31-21} = 0b00101000110; 29506let addrMode = BaseImmOffset; 29507let accessSize = HVXVectorAccess; 29508let isCVI = 1; 29509let isHVXALU = 1; 29510let isNonTemporal = 1; 29511let mayStore = 1; 29512let DecoderNamespace = "EXT_mmvec"; 29513} 29514def V6_vS32b_nt_nqpred_pi : HInst< 29515(outs IntRegs:$Rx32), 29516(ins HvxQR:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 29517"if (!$Qv4) vmem($Rx32++#$Ii):nt = $Vs32", 29518tc_191381c1, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[UseHVXV60]> { 29519let Inst{7-5} = 0b001; 29520let Inst{13-13} = 0b0; 29521let Inst{31-21} = 0b00101001110; 29522let addrMode = PostInc; 29523let accessSize = HVXVectorAccess; 29524let isCVI = 1; 29525let isHVXALU = 1; 29526let isNonTemporal = 1; 29527let mayStore = 1; 29528let DecoderNamespace = "EXT_mmvec"; 29529let Constraints = "$Rx32 = $Rx32in"; 29530} 29531def V6_vS32b_nt_nqpred_ppu : HInst< 29532(outs IntRegs:$Rx32), 29533(ins HvxQR:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 29534"if (!$Qv4) vmem($Rx32++$Mu2):nt = $Vs32", 29535tc_191381c1, TypeCVI_VM_ST>, Enc_4dff07, Requires<[UseHVXV60]> { 29536let Inst{10-5} = 0b000001; 29537let Inst{31-21} = 0b00101011110; 29538let addrMode = PostInc; 29539let accessSize = HVXVectorAccess; 29540let isCVI = 1; 29541let isHVXALU = 1; 29542let isNonTemporal = 1; 29543let mayStore = 1; 29544let DecoderNamespace = "EXT_mmvec"; 29545let Constraints = "$Rx32 = $Rx32in"; 29546} 29547def V6_vS32b_nt_pi : HInst< 29548(outs IntRegs:$Rx32), 29549(ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 29550"vmem($Rx32++#$Ii):nt = $Vs32", 29551tc_3e2aaafc, TypeCVI_VM_ST>, Enc_b62ef7, Requires<[UseHVXV60]>, NewValueRel, PostInc_BaseImm { 29552let Inst{7-5} = 0b000; 29553let Inst{13-11} = 0b000; 29554let Inst{31-21} = 0b00101001011; 29555let addrMode = PostInc; 29556let accessSize = HVXVectorAccess; 29557let isCVI = 1; 29558let isHVXALU = 1; 29559let isNonTemporal = 1; 29560let mayStore = 1; 29561let BaseOpcode = "V6_vS32b_pi"; 29562let CextOpcode = "V6_vS32b_nt"; 29563let isNVStorable = 1; 29564let isPredicable = 1; 29565let DecoderNamespace = "EXT_mmvec"; 29566let Constraints = "$Rx32 = $Rx32in"; 29567} 29568def V6_vS32b_nt_ppu : HInst< 29569(outs IntRegs:$Rx32), 29570(ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 29571"vmem($Rx32++$Mu2):nt = $Vs32", 29572tc_3e2aaafc, TypeCVI_VM_ST>, Enc_d15d19, Requires<[UseHVXV60]>, NewValueRel { 29573let Inst{12-5} = 0b00000000; 29574let Inst{31-21} = 0b00101011011; 29575let addrMode = PostInc; 29576let accessSize = HVXVectorAccess; 29577let isCVI = 1; 29578let isHVXALU = 1; 29579let isNonTemporal = 1; 29580let mayStore = 1; 29581let BaseOpcode = "V6_vS32b_ppu"; 29582let isNVStorable = 1; 29583let isPredicable = 1; 29584let DecoderNamespace = "EXT_mmvec"; 29585let Constraints = "$Rx32 = $Rx32in"; 29586} 29587def V6_vS32b_nt_pred_ai : HInst< 29588(outs), 29589(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 29590"if ($Pv4) vmem($Rt32+#$Ii):nt = $Vs32", 29591tc_a02a10a8, TypeCVI_VM_ST>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel { 29592let Inst{7-5} = 0b000; 29593let Inst{31-21} = 0b00101000111; 29594let isPredicated = 1; 29595let addrMode = BaseImmOffset; 29596let accessSize = HVXVectorAccess; 29597let isCVI = 1; 29598let isHVXALU = 1; 29599let isNonTemporal = 1; 29600let mayStore = 1; 29601let BaseOpcode = "V6_vS32b_ai"; 29602let isNVStorable = 1; 29603let DecoderNamespace = "EXT_mmvec"; 29604} 29605def V6_vS32b_nt_pred_pi : HInst< 29606(outs IntRegs:$Rx32), 29607(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 29608"if ($Pv4) vmem($Rx32++#$Ii):nt = $Vs32", 29609tc_54a0dc47, TypeCVI_VM_ST>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel { 29610let Inst{7-5} = 0b000; 29611let Inst{13-13} = 0b0; 29612let Inst{31-21} = 0b00101001111; 29613let isPredicated = 1; 29614let addrMode = PostInc; 29615let accessSize = HVXVectorAccess; 29616let isCVI = 1; 29617let isHVXALU = 1; 29618let isNonTemporal = 1; 29619let mayStore = 1; 29620let BaseOpcode = "V6_vS32b_pi"; 29621let isNVStorable = 1; 29622let DecoderNamespace = "EXT_mmvec"; 29623let Constraints = "$Rx32 = $Rx32in"; 29624} 29625def V6_vS32b_nt_pred_ppu : HInst< 29626(outs IntRegs:$Rx32), 29627(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 29628"if ($Pv4) vmem($Rx32++$Mu2):nt = $Vs32", 29629tc_54a0dc47, TypeCVI_VM_ST>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel { 29630let Inst{10-5} = 0b000000; 29631let Inst{31-21} = 0b00101011111; 29632let isPredicated = 1; 29633let addrMode = PostInc; 29634let accessSize = HVXVectorAccess; 29635let isCVI = 1; 29636let isHVXALU = 1; 29637let isNonTemporal = 1; 29638let mayStore = 1; 29639let BaseOpcode = "V6_vS32b_ppu"; 29640let isNVStorable = 1; 29641let DecoderNamespace = "EXT_mmvec"; 29642let Constraints = "$Rx32 = $Rx32in"; 29643} 29644def V6_vS32b_nt_qpred_ai : HInst< 29645(outs), 29646(ins HvxQR:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 29647"if ($Qv4) vmem($Rt32+#$Ii):nt = $Vs32", 29648tc_447d9895, TypeCVI_VM_ST>, Enc_2ea740, Requires<[UseHVXV60]> { 29649let Inst{7-5} = 0b000; 29650let Inst{31-21} = 0b00101000110; 29651let addrMode = BaseImmOffset; 29652let accessSize = HVXVectorAccess; 29653let isCVI = 1; 29654let isHVXALU = 1; 29655let isNonTemporal = 1; 29656let mayStore = 1; 29657let DecoderNamespace = "EXT_mmvec"; 29658} 29659def V6_vS32b_nt_qpred_pi : HInst< 29660(outs IntRegs:$Rx32), 29661(ins HvxQR:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 29662"if ($Qv4) vmem($Rx32++#$Ii):nt = $Vs32", 29663tc_191381c1, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[UseHVXV60]> { 29664let Inst{7-5} = 0b000; 29665let Inst{13-13} = 0b0; 29666let Inst{31-21} = 0b00101001110; 29667let addrMode = PostInc; 29668let accessSize = HVXVectorAccess; 29669let isCVI = 1; 29670let isHVXALU = 1; 29671let isNonTemporal = 1; 29672let mayStore = 1; 29673let DecoderNamespace = "EXT_mmvec"; 29674let Constraints = "$Rx32 = $Rx32in"; 29675} 29676def V6_vS32b_nt_qpred_ppu : HInst< 29677(outs IntRegs:$Rx32), 29678(ins HvxQR:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 29679"if ($Qv4) vmem($Rx32++$Mu2):nt = $Vs32", 29680tc_191381c1, TypeCVI_VM_ST>, Enc_4dff07, Requires<[UseHVXV60]> { 29681let Inst{10-5} = 0b000000; 29682let Inst{31-21} = 0b00101011110; 29683let addrMode = PostInc; 29684let accessSize = HVXVectorAccess; 29685let isCVI = 1; 29686let isHVXALU = 1; 29687let isNonTemporal = 1; 29688let mayStore = 1; 29689let DecoderNamespace = "EXT_mmvec"; 29690let Constraints = "$Rx32 = $Rx32in"; 29691} 29692def V6_vS32b_pi : HInst< 29693(outs IntRegs:$Rx32), 29694(ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 29695"vmem($Rx32++#$Ii) = $Vs32", 29696tc_3e2aaafc, TypeCVI_VM_ST>, Enc_b62ef7, Requires<[UseHVXV60]>, NewValueRel, PostInc_BaseImm { 29697let Inst{7-5} = 0b000; 29698let Inst{13-11} = 0b000; 29699let Inst{31-21} = 0b00101001001; 29700let addrMode = PostInc; 29701let accessSize = HVXVectorAccess; 29702let isCVI = 1; 29703let isHVXALU = 1; 29704let mayStore = 1; 29705let BaseOpcode = "V6_vS32b_pi"; 29706let CextOpcode = "V6_vS32b"; 29707let isNVStorable = 1; 29708let isPredicable = 1; 29709let DecoderNamespace = "EXT_mmvec"; 29710let Constraints = "$Rx32 = $Rx32in"; 29711} 29712def V6_vS32b_ppu : HInst< 29713(outs IntRegs:$Rx32), 29714(ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 29715"vmem($Rx32++$Mu2) = $Vs32", 29716tc_3e2aaafc, TypeCVI_VM_ST>, Enc_d15d19, Requires<[UseHVXV60]>, NewValueRel { 29717let Inst{12-5} = 0b00000000; 29718let Inst{31-21} = 0b00101011001; 29719let addrMode = PostInc; 29720let accessSize = HVXVectorAccess; 29721let isCVI = 1; 29722let isHVXALU = 1; 29723let mayStore = 1; 29724let BaseOpcode = "V6_vS32b_ppu"; 29725let isNVStorable = 1; 29726let isPredicable = 1; 29727let DecoderNamespace = "EXT_mmvec"; 29728let Constraints = "$Rx32 = $Rx32in"; 29729} 29730def V6_vS32b_pred_ai : HInst< 29731(outs), 29732(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 29733"if ($Pv4) vmem($Rt32+#$Ii) = $Vs32", 29734tc_a02a10a8, TypeCVI_VM_ST>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel { 29735let Inst{7-5} = 0b000; 29736let Inst{31-21} = 0b00101000101; 29737let isPredicated = 1; 29738let addrMode = BaseImmOffset; 29739let accessSize = HVXVectorAccess; 29740let isCVI = 1; 29741let isHVXALU = 1; 29742let mayStore = 1; 29743let BaseOpcode = "V6_vS32b_ai"; 29744let isNVStorable = 1; 29745let DecoderNamespace = "EXT_mmvec"; 29746} 29747def V6_vS32b_pred_pi : HInst< 29748(outs IntRegs:$Rx32), 29749(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 29750"if ($Pv4) vmem($Rx32++#$Ii) = $Vs32", 29751tc_54a0dc47, TypeCVI_VM_ST>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel { 29752let Inst{7-5} = 0b000; 29753let Inst{13-13} = 0b0; 29754let Inst{31-21} = 0b00101001101; 29755let isPredicated = 1; 29756let addrMode = PostInc; 29757let accessSize = HVXVectorAccess; 29758let isCVI = 1; 29759let isHVXALU = 1; 29760let mayStore = 1; 29761let BaseOpcode = "V6_vS32b_pi"; 29762let isNVStorable = 1; 29763let DecoderNamespace = "EXT_mmvec"; 29764let Constraints = "$Rx32 = $Rx32in"; 29765} 29766def V6_vS32b_pred_ppu : HInst< 29767(outs IntRegs:$Rx32), 29768(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 29769"if ($Pv4) vmem($Rx32++$Mu2) = $Vs32", 29770tc_54a0dc47, TypeCVI_VM_ST>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel { 29771let Inst{10-5} = 0b000000; 29772let Inst{31-21} = 0b00101011101; 29773let isPredicated = 1; 29774let addrMode = PostInc; 29775let accessSize = HVXVectorAccess; 29776let isCVI = 1; 29777let isHVXALU = 1; 29778let mayStore = 1; 29779let BaseOpcode = "V6_vS32b_ppu"; 29780let isNVStorable = 1; 29781let DecoderNamespace = "EXT_mmvec"; 29782let Constraints = "$Rx32 = $Rx32in"; 29783} 29784def V6_vS32b_qpred_ai : HInst< 29785(outs), 29786(ins HvxQR:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32), 29787"if ($Qv4) vmem($Rt32+#$Ii) = $Vs32", 29788tc_447d9895, TypeCVI_VM_ST>, Enc_2ea740, Requires<[UseHVXV60]> { 29789let Inst{7-5} = 0b000; 29790let Inst{31-21} = 0b00101000100; 29791let addrMode = BaseImmOffset; 29792let accessSize = HVXVectorAccess; 29793let isCVI = 1; 29794let isHVXALU = 1; 29795let mayStore = 1; 29796let DecoderNamespace = "EXT_mmvec"; 29797} 29798def V6_vS32b_qpred_pi : HInst< 29799(outs IntRegs:$Rx32), 29800(ins HvxQR:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32), 29801"if ($Qv4) vmem($Rx32++#$Ii) = $Vs32", 29802tc_191381c1, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[UseHVXV60]> { 29803let Inst{7-5} = 0b000; 29804let Inst{13-13} = 0b0; 29805let Inst{31-21} = 0b00101001100; 29806let addrMode = PostInc; 29807let accessSize = HVXVectorAccess; 29808let isCVI = 1; 29809let isHVXALU = 1; 29810let mayStore = 1; 29811let DecoderNamespace = "EXT_mmvec"; 29812let Constraints = "$Rx32 = $Rx32in"; 29813} 29814def V6_vS32b_qpred_ppu : HInst< 29815(outs IntRegs:$Rx32), 29816(ins HvxQR:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32), 29817"if ($Qv4) vmem($Rx32++$Mu2) = $Vs32", 29818tc_191381c1, TypeCVI_VM_ST>, Enc_4dff07, Requires<[UseHVXV60]> { 29819let Inst{10-5} = 0b000000; 29820let Inst{31-21} = 0b00101011100; 29821let addrMode = PostInc; 29822let accessSize = HVXVectorAccess; 29823let isCVI = 1; 29824let isHVXALU = 1; 29825let mayStore = 1; 29826let DecoderNamespace = "EXT_mmvec"; 29827let Constraints = "$Rx32 = $Rx32in"; 29828} 29829def V6_vS32b_srls_ai : HInst< 29830(outs), 29831(ins IntRegs:$Rt32, s4_0Imm:$Ii), 29832"vmem($Rt32+#$Ii):scatter_release", 29833tc_3ce09744, TypeCVI_SCATTER_NEW_RST>, Enc_ff3442, Requires<[UseHVXV65]> { 29834let Inst{7-0} = 0b00101000; 29835let Inst{12-11} = 0b00; 29836let Inst{31-21} = 0b00101000001; 29837let addrMode = BaseImmOffset; 29838let accessSize = HVXVectorAccess; 29839let isCVI = 1; 29840let CVINew = 1; 29841let mayStore = 1; 29842let DecoderNamespace = "EXT_mmvec"; 29843} 29844def V6_vS32b_srls_pi : HInst< 29845(outs IntRegs:$Rx32), 29846(ins IntRegs:$Rx32in, s3_0Imm:$Ii), 29847"vmem($Rx32++#$Ii):scatter_release", 29848tc_20a4bbec, TypeCVI_SCATTER_NEW_RST>, Enc_6c9ee0, Requires<[UseHVXV65]> { 29849let Inst{7-0} = 0b00101000; 29850let Inst{13-11} = 0b000; 29851let Inst{31-21} = 0b00101001001; 29852let addrMode = PostInc; 29853let accessSize = HVXVectorAccess; 29854let isCVI = 1; 29855let CVINew = 1; 29856let mayStore = 1; 29857let DecoderNamespace = "EXT_mmvec"; 29858let Constraints = "$Rx32 = $Rx32in"; 29859} 29860def V6_vS32b_srls_ppu : HInst< 29861(outs IntRegs:$Rx32), 29862(ins IntRegs:$Rx32in, ModRegs:$Mu2), 29863"vmem($Rx32++$Mu2):scatter_release", 29864tc_20a4bbec, TypeCVI_SCATTER_NEW_RST>, Enc_44661f, Requires<[UseHVXV65]> { 29865let Inst{12-0} = 0b0000000101000; 29866let Inst{31-21} = 0b00101011001; 29867let addrMode = PostInc; 29868let accessSize = HVXVectorAccess; 29869let isCVI = 1; 29870let CVINew = 1; 29871let mayStore = 1; 29872let DecoderNamespace = "EXT_mmvec"; 29873let Constraints = "$Rx32 = $Rx32in"; 29874} 29875def V6_vabs_hf : HInst< 29876(outs HvxVR:$Vd32), 29877(ins HvxVR:$Vu32), 29878"$Vd32.hf = vabs($Vu32.hf)", 29879tc_5cdf8c84, TypeCVI_VX_LATE>, Enc_e7581c, Requires<[UseHVXV68,UseHVXIEEEFP]> { 29880let Inst{7-5} = 0b100; 29881let Inst{13-13} = 0b1; 29882let Inst{31-16} = 0b0001111000000110; 29883let hasNewValue = 1; 29884let opNewValue = 0; 29885let isCVI = 1; 29886let DecoderNamespace = "EXT_mmvec"; 29887} 29888def V6_vabs_sf : HInst< 29889(outs HvxVR:$Vd32), 29890(ins HvxVR:$Vu32), 29891"$Vd32.sf = vabs($Vu32.sf)", 29892tc_5cdf8c84, TypeCVI_VX_LATE>, Enc_e7581c, Requires<[UseHVXV68,UseHVXIEEEFP]> { 29893let Inst{7-5} = 0b101; 29894let Inst{13-13} = 0b1; 29895let Inst{31-16} = 0b0001111000000110; 29896let hasNewValue = 1; 29897let opNewValue = 0; 29898let isCVI = 1; 29899let DecoderNamespace = "EXT_mmvec"; 29900} 29901def V6_vabsb : HInst< 29902(outs HvxVR:$Vd32), 29903(ins HvxVR:$Vu32), 29904"$Vd32.b = vabs($Vu32.b)", 29905tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV65]> { 29906let Inst{7-5} = 0b100; 29907let Inst{13-13} = 0b0; 29908let Inst{31-16} = 0b0001111000000001; 29909let hasNewValue = 1; 29910let opNewValue = 0; 29911let isCVI = 1; 29912let isHVXALU = 1; 29913let isHVXALU2SRC = 1; 29914let DecoderNamespace = "EXT_mmvec"; 29915} 29916def V6_vabsb_alt : HInst< 29917(outs HvxVR:$Vd32), 29918(ins HvxVR:$Vu32), 29919"$Vd32 = vabsb($Vu32)", 29920PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 29921let hasNewValue = 1; 29922let opNewValue = 0; 29923let isCVI = 1; 29924let isPseudo = 1; 29925let isCodeGenOnly = 1; 29926let DecoderNamespace = "EXT_mmvec"; 29927} 29928def V6_vabsb_sat : HInst< 29929(outs HvxVR:$Vd32), 29930(ins HvxVR:$Vu32), 29931"$Vd32.b = vabs($Vu32.b):sat", 29932tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV65]> { 29933let Inst{7-5} = 0b101; 29934let Inst{13-13} = 0b0; 29935let Inst{31-16} = 0b0001111000000001; 29936let hasNewValue = 1; 29937let opNewValue = 0; 29938let isCVI = 1; 29939let isHVXALU = 1; 29940let isHVXALU2SRC = 1; 29941let DecoderNamespace = "EXT_mmvec"; 29942} 29943def V6_vabsb_sat_alt : HInst< 29944(outs HvxVR:$Vd32), 29945(ins HvxVR:$Vu32), 29946"$Vd32 = vabsb($Vu32):sat", 29947PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 29948let hasNewValue = 1; 29949let opNewValue = 0; 29950let isCVI = 1; 29951let isPseudo = 1; 29952let isCodeGenOnly = 1; 29953let DecoderNamespace = "EXT_mmvec"; 29954} 29955def V6_vabsdiffh : HInst< 29956(outs HvxVR:$Vd32), 29957(ins HvxVR:$Vu32, HvxVR:$Vv32), 29958"$Vd32.uh = vabsdiff($Vu32.h,$Vv32.h)", 29959tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> { 29960let Inst{7-5} = 0b001; 29961let Inst{13-13} = 0b0; 29962let Inst{31-21} = 0b00011100110; 29963let hasNewValue = 1; 29964let opNewValue = 0; 29965let isCVI = 1; 29966let DecoderNamespace = "EXT_mmvec"; 29967} 29968def V6_vabsdiffh_alt : HInst< 29969(outs HvxVR:$Vd32), 29970(ins HvxVR:$Vu32, HvxVR:$Vv32), 29971"$Vd32 = vabsdiffh($Vu32,$Vv32)", 29972PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29973let hasNewValue = 1; 29974let opNewValue = 0; 29975let isCVI = 1; 29976let isPseudo = 1; 29977let isCodeGenOnly = 1; 29978let DecoderNamespace = "EXT_mmvec"; 29979} 29980def V6_vabsdiffub : HInst< 29981(outs HvxVR:$Vd32), 29982(ins HvxVR:$Vu32, HvxVR:$Vv32), 29983"$Vd32.ub = vabsdiff($Vu32.ub,$Vv32.ub)", 29984tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> { 29985let Inst{7-5} = 0b000; 29986let Inst{13-13} = 0b0; 29987let Inst{31-21} = 0b00011100110; 29988let hasNewValue = 1; 29989let opNewValue = 0; 29990let isCVI = 1; 29991let DecoderNamespace = "EXT_mmvec"; 29992} 29993def V6_vabsdiffub_alt : HInst< 29994(outs HvxVR:$Vd32), 29995(ins HvxVR:$Vu32, HvxVR:$Vv32), 29996"$Vd32 = vabsdiffub($Vu32,$Vv32)", 29997PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 29998let hasNewValue = 1; 29999let opNewValue = 0; 30000let isCVI = 1; 30001let isPseudo = 1; 30002let isCodeGenOnly = 1; 30003let DecoderNamespace = "EXT_mmvec"; 30004} 30005def V6_vabsdiffuh : HInst< 30006(outs HvxVR:$Vd32), 30007(ins HvxVR:$Vu32, HvxVR:$Vv32), 30008"$Vd32.uh = vabsdiff($Vu32.uh,$Vv32.uh)", 30009tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> { 30010let Inst{7-5} = 0b010; 30011let Inst{13-13} = 0b0; 30012let Inst{31-21} = 0b00011100110; 30013let hasNewValue = 1; 30014let opNewValue = 0; 30015let isCVI = 1; 30016let DecoderNamespace = "EXT_mmvec"; 30017} 30018def V6_vabsdiffuh_alt : HInst< 30019(outs HvxVR:$Vd32), 30020(ins HvxVR:$Vu32, HvxVR:$Vv32), 30021"$Vd32 = vabsdiffuh($Vu32,$Vv32)", 30022PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30023let hasNewValue = 1; 30024let opNewValue = 0; 30025let isCVI = 1; 30026let isPseudo = 1; 30027let isCodeGenOnly = 1; 30028let DecoderNamespace = "EXT_mmvec"; 30029} 30030def V6_vabsdiffw : HInst< 30031(outs HvxVR:$Vd32), 30032(ins HvxVR:$Vu32, HvxVR:$Vv32), 30033"$Vd32.uw = vabsdiff($Vu32.w,$Vv32.w)", 30034tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> { 30035let Inst{7-5} = 0b011; 30036let Inst{13-13} = 0b0; 30037let Inst{31-21} = 0b00011100110; 30038let hasNewValue = 1; 30039let opNewValue = 0; 30040let isCVI = 1; 30041let DecoderNamespace = "EXT_mmvec"; 30042} 30043def V6_vabsdiffw_alt : HInst< 30044(outs HvxVR:$Vd32), 30045(ins HvxVR:$Vu32, HvxVR:$Vv32), 30046"$Vd32 = vabsdiffw($Vu32,$Vv32)", 30047PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30048let hasNewValue = 1; 30049let opNewValue = 0; 30050let isCVI = 1; 30051let isPseudo = 1; 30052let isCodeGenOnly = 1; 30053let DecoderNamespace = "EXT_mmvec"; 30054} 30055def V6_vabsh : HInst< 30056(outs HvxVR:$Vd32), 30057(ins HvxVR:$Vu32), 30058"$Vd32.h = vabs($Vu32.h)", 30059tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> { 30060let Inst{7-5} = 0b000; 30061let Inst{13-13} = 0b0; 30062let Inst{31-16} = 0b0001111000000000; 30063let hasNewValue = 1; 30064let opNewValue = 0; 30065let isCVI = 1; 30066let isHVXALU = 1; 30067let isHVXALU2SRC = 1; 30068let DecoderNamespace = "EXT_mmvec"; 30069} 30070def V6_vabsh_alt : HInst< 30071(outs HvxVR:$Vd32), 30072(ins HvxVR:$Vu32), 30073"$Vd32 = vabsh($Vu32)", 30074PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30075let hasNewValue = 1; 30076let opNewValue = 0; 30077let isCVI = 1; 30078let isPseudo = 1; 30079let isCodeGenOnly = 1; 30080let DecoderNamespace = "EXT_mmvec"; 30081} 30082def V6_vabsh_sat : HInst< 30083(outs HvxVR:$Vd32), 30084(ins HvxVR:$Vu32), 30085"$Vd32.h = vabs($Vu32.h):sat", 30086tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> { 30087let Inst{7-5} = 0b001; 30088let Inst{13-13} = 0b0; 30089let Inst{31-16} = 0b0001111000000000; 30090let hasNewValue = 1; 30091let opNewValue = 0; 30092let isCVI = 1; 30093let isHVXALU = 1; 30094let isHVXALU2SRC = 1; 30095let DecoderNamespace = "EXT_mmvec"; 30096} 30097def V6_vabsh_sat_alt : HInst< 30098(outs HvxVR:$Vd32), 30099(ins HvxVR:$Vu32), 30100"$Vd32 = vabsh($Vu32):sat", 30101PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30102let hasNewValue = 1; 30103let opNewValue = 0; 30104let isCVI = 1; 30105let isPseudo = 1; 30106let isCodeGenOnly = 1; 30107let DecoderNamespace = "EXT_mmvec"; 30108} 30109def V6_vabsub_alt : HInst< 30110(outs HvxVR:$Vd32), 30111(ins HvxVR:$Vu32), 30112"$Vd32.ub = vabs($Vu32.b)", 30113tc_0ec46cf9, TypeMAPPING>, Requires<[UseHVXV65]> { 30114let hasNewValue = 1; 30115let opNewValue = 0; 30116let isCVI = 1; 30117let isPseudo = 1; 30118let isCodeGenOnly = 1; 30119let DecoderNamespace = "EXT_mmvec"; 30120} 30121def V6_vabsuh_alt : HInst< 30122(outs HvxVR:$Vd32), 30123(ins HvxVR:$Vu32), 30124"$Vd32.uh = vabs($Vu32.h)", 30125tc_0ec46cf9, TypeMAPPING>, Requires<[UseHVXV65]> { 30126let hasNewValue = 1; 30127let opNewValue = 0; 30128let isCVI = 1; 30129let isPseudo = 1; 30130let isCodeGenOnly = 1; 30131let DecoderNamespace = "EXT_mmvec"; 30132} 30133def V6_vabsuw_alt : HInst< 30134(outs HvxVR:$Vd32), 30135(ins HvxVR:$Vu32), 30136"$Vd32.uw = vabs($Vu32.w)", 30137tc_0ec46cf9, TypeMAPPING>, Requires<[UseHVXV65]> { 30138let hasNewValue = 1; 30139let opNewValue = 0; 30140let isCVI = 1; 30141let isPseudo = 1; 30142let isCodeGenOnly = 1; 30143let DecoderNamespace = "EXT_mmvec"; 30144} 30145def V6_vabsw : HInst< 30146(outs HvxVR:$Vd32), 30147(ins HvxVR:$Vu32), 30148"$Vd32.w = vabs($Vu32.w)", 30149tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> { 30150let Inst{7-5} = 0b010; 30151let Inst{13-13} = 0b0; 30152let Inst{31-16} = 0b0001111000000000; 30153let hasNewValue = 1; 30154let opNewValue = 0; 30155let isCVI = 1; 30156let isHVXALU = 1; 30157let isHVXALU2SRC = 1; 30158let DecoderNamespace = "EXT_mmvec"; 30159} 30160def V6_vabsw_alt : HInst< 30161(outs HvxVR:$Vd32), 30162(ins HvxVR:$Vu32), 30163"$Vd32 = vabsw($Vu32)", 30164PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30165let hasNewValue = 1; 30166let opNewValue = 0; 30167let isCVI = 1; 30168let isPseudo = 1; 30169let isCodeGenOnly = 1; 30170let DecoderNamespace = "EXT_mmvec"; 30171} 30172def V6_vabsw_sat : HInst< 30173(outs HvxVR:$Vd32), 30174(ins HvxVR:$Vu32), 30175"$Vd32.w = vabs($Vu32.w):sat", 30176tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> { 30177let Inst{7-5} = 0b011; 30178let Inst{13-13} = 0b0; 30179let Inst{31-16} = 0b0001111000000000; 30180let hasNewValue = 1; 30181let opNewValue = 0; 30182let isCVI = 1; 30183let isHVXALU = 1; 30184let isHVXALU2SRC = 1; 30185let DecoderNamespace = "EXT_mmvec"; 30186} 30187def V6_vabsw_sat_alt : HInst< 30188(outs HvxVR:$Vd32), 30189(ins HvxVR:$Vu32), 30190"$Vd32 = vabsw($Vu32):sat", 30191PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30192let hasNewValue = 1; 30193let opNewValue = 0; 30194let isCVI = 1; 30195let isPseudo = 1; 30196let isCodeGenOnly = 1; 30197let DecoderNamespace = "EXT_mmvec"; 30198} 30199def V6_vadd_hf : HInst< 30200(outs HvxVR:$Vd32), 30201(ins HvxVR:$Vu32, HvxVR:$Vv32), 30202"$Vd32.qf16 = vadd($Vu32.hf,$Vv32.hf)", 30203tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> { 30204let Inst{7-5} = 0b011; 30205let Inst{13-13} = 0b1; 30206let Inst{31-21} = 0b00011111011; 30207let hasNewValue = 1; 30208let opNewValue = 0; 30209let isCVI = 1; 30210let DecoderNamespace = "EXT_mmvec"; 30211} 30212def V6_vadd_hf_hf : HInst< 30213(outs HvxVR:$Vd32), 30214(ins HvxVR:$Vu32, HvxVR:$Vv32), 30215"$Vd32.hf = vadd($Vu32.hf,$Vv32.hf)", 30216tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> { 30217let Inst{7-5} = 0b111; 30218let Inst{13-13} = 0b1; 30219let Inst{31-21} = 0b00011111101; 30220let hasNewValue = 1; 30221let opNewValue = 0; 30222let isCVI = 1; 30223let DecoderNamespace = "EXT_mmvec"; 30224} 30225def V6_vadd_qf16 : HInst< 30226(outs HvxVR:$Vd32), 30227(ins HvxVR:$Vu32, HvxVR:$Vv32), 30228"$Vd32.qf16 = vadd($Vu32.qf16,$Vv32.qf16)", 30229tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> { 30230let Inst{7-5} = 0b010; 30231let Inst{13-13} = 0b1; 30232let Inst{31-21} = 0b00011111011; 30233let hasNewValue = 1; 30234let opNewValue = 0; 30235let isCVI = 1; 30236let DecoderNamespace = "EXT_mmvec"; 30237} 30238def V6_vadd_qf16_mix : HInst< 30239(outs HvxVR:$Vd32), 30240(ins HvxVR:$Vu32, HvxVR:$Vv32), 30241"$Vd32.qf16 = vadd($Vu32.qf16,$Vv32.hf)", 30242tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> { 30243let Inst{7-5} = 0b100; 30244let Inst{13-13} = 0b1; 30245let Inst{31-21} = 0b00011111011; 30246let hasNewValue = 1; 30247let opNewValue = 0; 30248let isCVI = 1; 30249let DecoderNamespace = "EXT_mmvec"; 30250} 30251def V6_vadd_qf32 : HInst< 30252(outs HvxVR:$Vd32), 30253(ins HvxVR:$Vu32, HvxVR:$Vv32), 30254"$Vd32.qf32 = vadd($Vu32.qf32,$Vv32.qf32)", 30255tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> { 30256let Inst{7-5} = 0b000; 30257let Inst{13-13} = 0b1; 30258let Inst{31-21} = 0b00011111101; 30259let hasNewValue = 1; 30260let opNewValue = 0; 30261let isCVI = 1; 30262let DecoderNamespace = "EXT_mmvec"; 30263} 30264def V6_vadd_qf32_mix : HInst< 30265(outs HvxVR:$Vd32), 30266(ins HvxVR:$Vu32, HvxVR:$Vv32), 30267"$Vd32.qf32 = vadd($Vu32.qf32,$Vv32.sf)", 30268tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> { 30269let Inst{7-5} = 0b010; 30270let Inst{13-13} = 0b1; 30271let Inst{31-21} = 0b00011111101; 30272let hasNewValue = 1; 30273let opNewValue = 0; 30274let isCVI = 1; 30275let DecoderNamespace = "EXT_mmvec"; 30276} 30277def V6_vadd_sf : HInst< 30278(outs HvxVR:$Vd32), 30279(ins HvxVR:$Vu32, HvxVR:$Vv32), 30280"$Vd32.qf32 = vadd($Vu32.sf,$Vv32.sf)", 30281tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> { 30282let Inst{7-5} = 0b001; 30283let Inst{13-13} = 0b1; 30284let Inst{31-21} = 0b00011111101; 30285let hasNewValue = 1; 30286let opNewValue = 0; 30287let isCVI = 1; 30288let DecoderNamespace = "EXT_mmvec"; 30289} 30290def V6_vadd_sf_bf : HInst< 30291(outs HvxWR:$Vdd32), 30292(ins HvxVR:$Vu32, HvxVR:$Vv32), 30293"$Vdd32.sf = vadd($Vu32.bf,$Vv32.bf)", 30294tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV73,UseHVXIEEEFP]> { 30295let Inst{7-5} = 0b110; 30296let Inst{13-13} = 0b1; 30297let Inst{31-21} = 0b00011101010; 30298let hasNewValue = 1; 30299let opNewValue = 0; 30300let isCVI = 1; 30301let DecoderNamespace = "EXT_mmvec"; 30302} 30303def V6_vadd_sf_hf : HInst< 30304(outs HvxWR:$Vdd32), 30305(ins HvxVR:$Vu32, HvxVR:$Vv32), 30306"$Vdd32.sf = vadd($Vu32.hf,$Vv32.hf)", 30307tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV68,UseHVXIEEEFP]> { 30308let Inst{7-5} = 0b100; 30309let Inst{13-13} = 0b1; 30310let Inst{31-21} = 0b00011111100; 30311let hasNewValue = 1; 30312let opNewValue = 0; 30313let isCVI = 1; 30314let DecoderNamespace = "EXT_mmvec"; 30315} 30316def V6_vadd_sf_sf : HInst< 30317(outs HvxVR:$Vd32), 30318(ins HvxVR:$Vu32, HvxVR:$Vv32), 30319"$Vd32.sf = vadd($Vu32.sf,$Vv32.sf)", 30320tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> { 30321let Inst{7-5} = 0b110; 30322let Inst{13-13} = 0b1; 30323let Inst{31-21} = 0b00011111100; 30324let hasNewValue = 1; 30325let opNewValue = 0; 30326let isCVI = 1; 30327let DecoderNamespace = "EXT_mmvec"; 30328} 30329def V6_vaddb : HInst< 30330(outs HvxVR:$Vd32), 30331(ins HvxVR:$Vu32, HvxVR:$Vv32), 30332"$Vd32.b = vadd($Vu32.b,$Vv32.b)", 30333tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 30334let Inst{7-5} = 0b110; 30335let Inst{13-13} = 0b0; 30336let Inst{31-21} = 0b00011111101; 30337let hasNewValue = 1; 30338let opNewValue = 0; 30339let isCVI = 1; 30340let isHVXALU = 1; 30341let isHVXALU2SRC = 1; 30342let DecoderNamespace = "EXT_mmvec"; 30343} 30344def V6_vaddb_alt : HInst< 30345(outs HvxVR:$Vd32), 30346(ins HvxVR:$Vu32, HvxVR:$Vv32), 30347"$Vd32 = vaddb($Vu32,$Vv32)", 30348PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30349let hasNewValue = 1; 30350let opNewValue = 0; 30351let isCVI = 1; 30352let isPseudo = 1; 30353let isCodeGenOnly = 1; 30354let DecoderNamespace = "EXT_mmvec"; 30355} 30356def V6_vaddb_dv : HInst< 30357(outs HvxWR:$Vdd32), 30358(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 30359"$Vdd32.b = vadd($Vuu32.b,$Vvv32.b)", 30360tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 30361let Inst{7-5} = 0b100; 30362let Inst{13-13} = 0b0; 30363let Inst{31-21} = 0b00011100011; 30364let hasNewValue = 1; 30365let opNewValue = 0; 30366let isCVI = 1; 30367let DecoderNamespace = "EXT_mmvec"; 30368} 30369def V6_vaddb_dv_alt : HInst< 30370(outs HvxWR:$Vdd32), 30371(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 30372"$Vdd32 = vaddb($Vuu32,$Vvv32)", 30373PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30374let hasNewValue = 1; 30375let opNewValue = 0; 30376let isCVI = 1; 30377let isPseudo = 1; 30378let isCodeGenOnly = 1; 30379let DecoderNamespace = "EXT_mmvec"; 30380} 30381def V6_vaddbnq : HInst< 30382(outs HvxVR:$Vx32), 30383(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 30384"if (!$Qv4) $Vx32.b += $Vu32.b", 30385tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 30386let Inst{7-5} = 0b011; 30387let Inst{13-13} = 0b1; 30388let Inst{21-16} = 0b000001; 30389let Inst{31-24} = 0b00011110; 30390let hasNewValue = 1; 30391let opNewValue = 0; 30392let isAccumulator = 1; 30393let isCVI = 1; 30394let isHVXALU = 1; 30395let isHVXALU2SRC = 1; 30396let DecoderNamespace = "EXT_mmvec"; 30397let Constraints = "$Vx32 = $Vx32in"; 30398} 30399def V6_vaddbnq_alt : HInst< 30400(outs HvxVR:$Vx32), 30401(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 30402"if (!$Qv4.b) $Vx32.b += $Vu32.b", 30403PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30404let hasNewValue = 1; 30405let opNewValue = 0; 30406let isAccumulator = 1; 30407let isCVI = 1; 30408let isPseudo = 1; 30409let isCodeGenOnly = 1; 30410let DecoderNamespace = "EXT_mmvec"; 30411let Constraints = "$Vx32 = $Vx32in"; 30412} 30413def V6_vaddbq : HInst< 30414(outs HvxVR:$Vx32), 30415(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 30416"if ($Qv4) $Vx32.b += $Vu32.b", 30417tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 30418let Inst{7-5} = 0b000; 30419let Inst{13-13} = 0b1; 30420let Inst{21-16} = 0b000001; 30421let Inst{31-24} = 0b00011110; 30422let hasNewValue = 1; 30423let opNewValue = 0; 30424let isAccumulator = 1; 30425let isCVI = 1; 30426let isHVXALU = 1; 30427let isHVXALU2SRC = 1; 30428let DecoderNamespace = "EXT_mmvec"; 30429let Constraints = "$Vx32 = $Vx32in"; 30430} 30431def V6_vaddbq_alt : HInst< 30432(outs HvxVR:$Vx32), 30433(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 30434"if ($Qv4.b) $Vx32.b += $Vu32.b", 30435PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30436let hasNewValue = 1; 30437let opNewValue = 0; 30438let isAccumulator = 1; 30439let isCVI = 1; 30440let isPseudo = 1; 30441let isCodeGenOnly = 1; 30442let DecoderNamespace = "EXT_mmvec"; 30443let Constraints = "$Vx32 = $Vx32in"; 30444} 30445def V6_vaddbsat : HInst< 30446(outs HvxVR:$Vd32), 30447(ins HvxVR:$Vu32, HvxVR:$Vv32), 30448"$Vd32.b = vadd($Vu32.b,$Vv32.b):sat", 30449tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> { 30450let Inst{7-5} = 0b000; 30451let Inst{13-13} = 0b0; 30452let Inst{31-21} = 0b00011111000; 30453let hasNewValue = 1; 30454let opNewValue = 0; 30455let isCVI = 1; 30456let isHVXALU = 1; 30457let isHVXALU2SRC = 1; 30458let DecoderNamespace = "EXT_mmvec"; 30459} 30460def V6_vaddbsat_alt : HInst< 30461(outs HvxVR:$Vd32), 30462(ins HvxVR:$Vu32, HvxVR:$Vv32), 30463"$Vd32 = vaddb($Vu32,$Vv32):sat", 30464PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 30465let hasNewValue = 1; 30466let opNewValue = 0; 30467let isCVI = 1; 30468let isPseudo = 1; 30469let isCodeGenOnly = 1; 30470let DecoderNamespace = "EXT_mmvec"; 30471} 30472def V6_vaddbsat_dv : HInst< 30473(outs HvxWR:$Vdd32), 30474(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 30475"$Vdd32.b = vadd($Vuu32.b,$Vvv32.b):sat", 30476tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV62]> { 30477let Inst{7-5} = 0b000; 30478let Inst{13-13} = 0b0; 30479let Inst{31-21} = 0b00011110101; 30480let hasNewValue = 1; 30481let opNewValue = 0; 30482let isCVI = 1; 30483let DecoderNamespace = "EXT_mmvec"; 30484} 30485def V6_vaddbsat_dv_alt : HInst< 30486(outs HvxWR:$Vdd32), 30487(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 30488"$Vdd32 = vaddb($Vuu32,$Vvv32):sat", 30489PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 30490let hasNewValue = 1; 30491let opNewValue = 0; 30492let isCVI = 1; 30493let isPseudo = 1; 30494let isCodeGenOnly = 1; 30495let DecoderNamespace = "EXT_mmvec"; 30496} 30497def V6_vaddcarry : HInst< 30498(outs HvxVR:$Vd32, HvxQR:$Qx4), 30499(ins HvxVR:$Vu32, HvxVR:$Vv32, HvxQR:$Qx4in), 30500"$Vd32.w = vadd($Vu32.w,$Vv32.w,$Qx4):carry", 30501tc_7e6a3e89, TypeCVI_VA>, Enc_b43b67, Requires<[UseHVXV62]> { 30502let Inst{7-7} = 0b0; 30503let Inst{13-13} = 0b1; 30504let Inst{31-21} = 0b00011100101; 30505let hasNewValue = 1; 30506let opNewValue = 0; 30507let isCVI = 1; 30508let isHVXALU = 1; 30509let isHVXALU2SRC = 1; 30510let DecoderNamespace = "EXT_mmvec"; 30511let Constraints = "$Qx4 = $Qx4in"; 30512} 30513def V6_vaddcarryo : HInst< 30514(outs HvxVR:$Vd32, HvxQR:$Qe4), 30515(ins HvxVR:$Vu32, HvxVR:$Vv32), 30516"$Vd32.w,$Qe4 = vadd($Vu32.w,$Vv32.w):carry", 30517tc_e35c1e93, TypeCVI_VA>, Enc_c1d806, Requires<[UseHVXV66]> { 30518let Inst{7-7} = 0b0; 30519let Inst{13-13} = 0b1; 30520let Inst{31-21} = 0b00011101101; 30521let hasNewValue = 1; 30522let opNewValue = 0; 30523let isCVI = 1; 30524let isHVXALU = 1; 30525let isHVXALU2SRC = 1; 30526let DecoderNamespace = "EXT_mmvec"; 30527} 30528def V6_vaddcarrysat : HInst< 30529(outs HvxVR:$Vd32), 30530(ins HvxVR:$Vu32, HvxVR:$Vv32, HvxQR:$Qs4), 30531"$Vd32.w = vadd($Vu32.w,$Vv32.w,$Qs4):carry:sat", 30532tc_257f6f7c, TypeCVI_VA>, Enc_e0820b, Requires<[UseHVXV66]> { 30533let Inst{7-7} = 0b0; 30534let Inst{13-13} = 0b1; 30535let Inst{31-21} = 0b00011101100; 30536let hasNewValue = 1; 30537let opNewValue = 0; 30538let isCVI = 1; 30539let isHVXALU = 1; 30540let isHVXALU2SRC = 1; 30541let DecoderNamespace = "EXT_mmvec"; 30542} 30543def V6_vaddclbh : HInst< 30544(outs HvxVR:$Vd32), 30545(ins HvxVR:$Vu32, HvxVR:$Vv32), 30546"$Vd32.h = vadd(vclb($Vu32.h),$Vv32.h)", 30547tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV62]> { 30548let Inst{7-5} = 0b000; 30549let Inst{13-13} = 0b1; 30550let Inst{31-21} = 0b00011111000; 30551let hasNewValue = 1; 30552let opNewValue = 0; 30553let isCVI = 1; 30554let DecoderNamespace = "EXT_mmvec"; 30555} 30556def V6_vaddclbw : HInst< 30557(outs HvxVR:$Vd32), 30558(ins HvxVR:$Vu32, HvxVR:$Vv32), 30559"$Vd32.w = vadd(vclb($Vu32.w),$Vv32.w)", 30560tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV62]> { 30561let Inst{7-5} = 0b001; 30562let Inst{13-13} = 0b1; 30563let Inst{31-21} = 0b00011111000; 30564let hasNewValue = 1; 30565let opNewValue = 0; 30566let isCVI = 1; 30567let DecoderNamespace = "EXT_mmvec"; 30568} 30569def V6_vaddh : HInst< 30570(outs HvxVR:$Vd32), 30571(ins HvxVR:$Vu32, HvxVR:$Vv32), 30572"$Vd32.h = vadd($Vu32.h,$Vv32.h)", 30573tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 30574let Inst{7-5} = 0b111; 30575let Inst{13-13} = 0b0; 30576let Inst{31-21} = 0b00011111101; 30577let hasNewValue = 1; 30578let opNewValue = 0; 30579let isCVI = 1; 30580let isHVXALU = 1; 30581let isHVXALU2SRC = 1; 30582let DecoderNamespace = "EXT_mmvec"; 30583} 30584def V6_vaddh_alt : HInst< 30585(outs HvxVR:$Vd32), 30586(ins HvxVR:$Vu32, HvxVR:$Vv32), 30587"$Vd32 = vaddh($Vu32,$Vv32)", 30588PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30589let hasNewValue = 1; 30590let opNewValue = 0; 30591let isCVI = 1; 30592let isPseudo = 1; 30593let isCodeGenOnly = 1; 30594let DecoderNamespace = "EXT_mmvec"; 30595} 30596def V6_vaddh_dv : HInst< 30597(outs HvxWR:$Vdd32), 30598(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 30599"$Vdd32.h = vadd($Vuu32.h,$Vvv32.h)", 30600tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 30601let Inst{7-5} = 0b101; 30602let Inst{13-13} = 0b0; 30603let Inst{31-21} = 0b00011100011; 30604let hasNewValue = 1; 30605let opNewValue = 0; 30606let isCVI = 1; 30607let DecoderNamespace = "EXT_mmvec"; 30608} 30609def V6_vaddh_dv_alt : HInst< 30610(outs HvxWR:$Vdd32), 30611(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 30612"$Vdd32 = vaddh($Vuu32,$Vvv32)", 30613PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30614let hasNewValue = 1; 30615let opNewValue = 0; 30616let isCVI = 1; 30617let isPseudo = 1; 30618let isCodeGenOnly = 1; 30619let DecoderNamespace = "EXT_mmvec"; 30620} 30621def V6_vaddhnq : HInst< 30622(outs HvxVR:$Vx32), 30623(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 30624"if (!$Qv4) $Vx32.h += $Vu32.h", 30625tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 30626let Inst{7-5} = 0b100; 30627let Inst{13-13} = 0b1; 30628let Inst{21-16} = 0b000001; 30629let Inst{31-24} = 0b00011110; 30630let hasNewValue = 1; 30631let opNewValue = 0; 30632let isAccumulator = 1; 30633let isCVI = 1; 30634let isHVXALU = 1; 30635let isHVXALU2SRC = 1; 30636let DecoderNamespace = "EXT_mmvec"; 30637let Constraints = "$Vx32 = $Vx32in"; 30638} 30639def V6_vaddhnq_alt : HInst< 30640(outs HvxVR:$Vx32), 30641(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 30642"if (!$Qv4.h) $Vx32.h += $Vu32.h", 30643PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30644let hasNewValue = 1; 30645let opNewValue = 0; 30646let isAccumulator = 1; 30647let isCVI = 1; 30648let isPseudo = 1; 30649let isCodeGenOnly = 1; 30650let DecoderNamespace = "EXT_mmvec"; 30651let Constraints = "$Vx32 = $Vx32in"; 30652} 30653def V6_vaddhq : HInst< 30654(outs HvxVR:$Vx32), 30655(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 30656"if ($Qv4) $Vx32.h += $Vu32.h", 30657tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 30658let Inst{7-5} = 0b001; 30659let Inst{13-13} = 0b1; 30660let Inst{21-16} = 0b000001; 30661let Inst{31-24} = 0b00011110; 30662let hasNewValue = 1; 30663let opNewValue = 0; 30664let isAccumulator = 1; 30665let isCVI = 1; 30666let isHVXALU = 1; 30667let isHVXALU2SRC = 1; 30668let DecoderNamespace = "EXT_mmvec"; 30669let Constraints = "$Vx32 = $Vx32in"; 30670} 30671def V6_vaddhq_alt : HInst< 30672(outs HvxVR:$Vx32), 30673(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 30674"if ($Qv4.h) $Vx32.h += $Vu32.h", 30675PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30676let hasNewValue = 1; 30677let opNewValue = 0; 30678let isAccumulator = 1; 30679let isCVI = 1; 30680let isPseudo = 1; 30681let isCodeGenOnly = 1; 30682let DecoderNamespace = "EXT_mmvec"; 30683let Constraints = "$Vx32 = $Vx32in"; 30684} 30685def V6_vaddhsat : HInst< 30686(outs HvxVR:$Vd32), 30687(ins HvxVR:$Vu32, HvxVR:$Vv32), 30688"$Vd32.h = vadd($Vu32.h,$Vv32.h):sat", 30689tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 30690let Inst{7-5} = 0b011; 30691let Inst{13-13} = 0b0; 30692let Inst{31-21} = 0b00011100010; 30693let hasNewValue = 1; 30694let opNewValue = 0; 30695let isCVI = 1; 30696let isHVXALU = 1; 30697let isHVXALU2SRC = 1; 30698let DecoderNamespace = "EXT_mmvec"; 30699} 30700def V6_vaddhsat_alt : HInst< 30701(outs HvxVR:$Vd32), 30702(ins HvxVR:$Vu32, HvxVR:$Vv32), 30703"$Vd32 = vaddh($Vu32,$Vv32):sat", 30704PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30705let hasNewValue = 1; 30706let opNewValue = 0; 30707let isCVI = 1; 30708let isPseudo = 1; 30709let isCodeGenOnly = 1; 30710let DecoderNamespace = "EXT_mmvec"; 30711} 30712def V6_vaddhsat_dv : HInst< 30713(outs HvxWR:$Vdd32), 30714(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 30715"$Vdd32.h = vadd($Vuu32.h,$Vvv32.h):sat", 30716tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 30717let Inst{7-5} = 0b001; 30718let Inst{13-13} = 0b0; 30719let Inst{31-21} = 0b00011100100; 30720let hasNewValue = 1; 30721let opNewValue = 0; 30722let isCVI = 1; 30723let DecoderNamespace = "EXT_mmvec"; 30724} 30725def V6_vaddhsat_dv_alt : HInst< 30726(outs HvxWR:$Vdd32), 30727(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 30728"$Vdd32 = vaddh($Vuu32,$Vvv32):sat", 30729PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30730let hasNewValue = 1; 30731let opNewValue = 0; 30732let isCVI = 1; 30733let isPseudo = 1; 30734let isCodeGenOnly = 1; 30735let DecoderNamespace = "EXT_mmvec"; 30736} 30737def V6_vaddhw : HInst< 30738(outs HvxWR:$Vdd32), 30739(ins HvxVR:$Vu32, HvxVR:$Vv32), 30740"$Vdd32.w = vadd($Vu32.h,$Vv32.h)", 30741tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 30742let Inst{7-5} = 0b100; 30743let Inst{13-13} = 0b0; 30744let Inst{31-21} = 0b00011100101; 30745let hasNewValue = 1; 30746let opNewValue = 0; 30747let isCVI = 1; 30748let DecoderNamespace = "EXT_mmvec"; 30749} 30750def V6_vaddhw_acc : HInst< 30751(outs HvxWR:$Vxx32), 30752(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 30753"$Vxx32.w += vadd($Vu32.h,$Vv32.h)", 30754tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV62]> { 30755let Inst{7-5} = 0b010; 30756let Inst{13-13} = 0b1; 30757let Inst{31-21} = 0b00011100001; 30758let hasNewValue = 1; 30759let opNewValue = 0; 30760let isAccumulator = 1; 30761let isCVI = 1; 30762let DecoderNamespace = "EXT_mmvec"; 30763let Constraints = "$Vxx32 = $Vxx32in"; 30764} 30765def V6_vaddhw_acc_alt : HInst< 30766(outs HvxWR:$Vxx32), 30767(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 30768"$Vxx32 += vaddh($Vu32,$Vv32)", 30769PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 30770let hasNewValue = 1; 30771let opNewValue = 0; 30772let isAccumulator = 1; 30773let isCVI = 1; 30774let isPseudo = 1; 30775let isCodeGenOnly = 1; 30776let DecoderNamespace = "EXT_mmvec"; 30777let Constraints = "$Vxx32 = $Vxx32in"; 30778} 30779def V6_vaddhw_alt : HInst< 30780(outs HvxWR:$Vdd32), 30781(ins HvxVR:$Vu32, HvxVR:$Vv32), 30782"$Vdd32 = vaddh($Vu32,$Vv32)", 30783PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30784let hasNewValue = 1; 30785let opNewValue = 0; 30786let isCVI = 1; 30787let isPseudo = 1; 30788let isCodeGenOnly = 1; 30789let DecoderNamespace = "EXT_mmvec"; 30790} 30791def V6_vaddubh : HInst< 30792(outs HvxWR:$Vdd32), 30793(ins HvxVR:$Vu32, HvxVR:$Vv32), 30794"$Vdd32.h = vadd($Vu32.ub,$Vv32.ub)", 30795tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 30796let Inst{7-5} = 0b010; 30797let Inst{13-13} = 0b0; 30798let Inst{31-21} = 0b00011100101; 30799let hasNewValue = 1; 30800let opNewValue = 0; 30801let isCVI = 1; 30802let DecoderNamespace = "EXT_mmvec"; 30803} 30804def V6_vaddubh_acc : HInst< 30805(outs HvxWR:$Vxx32), 30806(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 30807"$Vxx32.h += vadd($Vu32.ub,$Vv32.ub)", 30808tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV62]> { 30809let Inst{7-5} = 0b101; 30810let Inst{13-13} = 0b1; 30811let Inst{31-21} = 0b00011100010; 30812let hasNewValue = 1; 30813let opNewValue = 0; 30814let isAccumulator = 1; 30815let isCVI = 1; 30816let DecoderNamespace = "EXT_mmvec"; 30817let Constraints = "$Vxx32 = $Vxx32in"; 30818} 30819def V6_vaddubh_acc_alt : HInst< 30820(outs HvxWR:$Vxx32), 30821(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 30822"$Vxx32 += vaddub($Vu32,$Vv32)", 30823PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 30824let hasNewValue = 1; 30825let opNewValue = 0; 30826let isAccumulator = 1; 30827let isCVI = 1; 30828let isPseudo = 1; 30829let isCodeGenOnly = 1; 30830let DecoderNamespace = "EXT_mmvec"; 30831let Constraints = "$Vxx32 = $Vxx32in"; 30832} 30833def V6_vaddubh_alt : HInst< 30834(outs HvxWR:$Vdd32), 30835(ins HvxVR:$Vu32, HvxVR:$Vv32), 30836"$Vdd32 = vaddub($Vu32,$Vv32)", 30837PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30838let hasNewValue = 1; 30839let opNewValue = 0; 30840let isCVI = 1; 30841let isPseudo = 1; 30842let isCodeGenOnly = 1; 30843let DecoderNamespace = "EXT_mmvec"; 30844} 30845def V6_vaddubsat : HInst< 30846(outs HvxVR:$Vd32), 30847(ins HvxVR:$Vu32, HvxVR:$Vv32), 30848"$Vd32.ub = vadd($Vu32.ub,$Vv32.ub):sat", 30849tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 30850let Inst{7-5} = 0b001; 30851let Inst{13-13} = 0b0; 30852let Inst{31-21} = 0b00011100010; 30853let hasNewValue = 1; 30854let opNewValue = 0; 30855let isCVI = 1; 30856let isHVXALU = 1; 30857let isHVXALU2SRC = 1; 30858let DecoderNamespace = "EXT_mmvec"; 30859} 30860def V6_vaddubsat_alt : HInst< 30861(outs HvxVR:$Vd32), 30862(ins HvxVR:$Vu32, HvxVR:$Vv32), 30863"$Vd32 = vaddub($Vu32,$Vv32):sat", 30864PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30865let hasNewValue = 1; 30866let opNewValue = 0; 30867let isCVI = 1; 30868let isPseudo = 1; 30869let isCodeGenOnly = 1; 30870let DecoderNamespace = "EXT_mmvec"; 30871} 30872def V6_vaddubsat_dv : HInst< 30873(outs HvxWR:$Vdd32), 30874(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 30875"$Vdd32.ub = vadd($Vuu32.ub,$Vvv32.ub):sat", 30876tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 30877let Inst{7-5} = 0b111; 30878let Inst{13-13} = 0b0; 30879let Inst{31-21} = 0b00011100011; 30880let hasNewValue = 1; 30881let opNewValue = 0; 30882let isCVI = 1; 30883let DecoderNamespace = "EXT_mmvec"; 30884} 30885def V6_vaddubsat_dv_alt : HInst< 30886(outs HvxWR:$Vdd32), 30887(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 30888"$Vdd32 = vaddub($Vuu32,$Vvv32):sat", 30889PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30890let hasNewValue = 1; 30891let opNewValue = 0; 30892let isCVI = 1; 30893let isPseudo = 1; 30894let isCodeGenOnly = 1; 30895let DecoderNamespace = "EXT_mmvec"; 30896} 30897def V6_vaddububb_sat : HInst< 30898(outs HvxVR:$Vd32), 30899(ins HvxVR:$Vu32, HvxVR:$Vv32), 30900"$Vd32.ub = vadd($Vu32.ub,$Vv32.b):sat", 30901tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> { 30902let Inst{7-5} = 0b100; 30903let Inst{13-13} = 0b0; 30904let Inst{31-21} = 0b00011110101; 30905let hasNewValue = 1; 30906let opNewValue = 0; 30907let isCVI = 1; 30908let isHVXALU = 1; 30909let isHVXALU2SRC = 1; 30910let DecoderNamespace = "EXT_mmvec"; 30911} 30912def V6_vadduhsat : HInst< 30913(outs HvxVR:$Vd32), 30914(ins HvxVR:$Vu32, HvxVR:$Vv32), 30915"$Vd32.uh = vadd($Vu32.uh,$Vv32.uh):sat", 30916tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 30917let Inst{7-5} = 0b010; 30918let Inst{13-13} = 0b0; 30919let Inst{31-21} = 0b00011100010; 30920let hasNewValue = 1; 30921let opNewValue = 0; 30922let isCVI = 1; 30923let isHVXALU = 1; 30924let isHVXALU2SRC = 1; 30925let DecoderNamespace = "EXT_mmvec"; 30926} 30927def V6_vadduhsat_alt : HInst< 30928(outs HvxVR:$Vd32), 30929(ins HvxVR:$Vu32, HvxVR:$Vv32), 30930"$Vd32 = vadduh($Vu32,$Vv32):sat", 30931PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30932let hasNewValue = 1; 30933let opNewValue = 0; 30934let isCVI = 1; 30935let isPseudo = 1; 30936let isCodeGenOnly = 1; 30937let DecoderNamespace = "EXT_mmvec"; 30938} 30939def V6_vadduhsat_dv : HInst< 30940(outs HvxWR:$Vdd32), 30941(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 30942"$Vdd32.uh = vadd($Vuu32.uh,$Vvv32.uh):sat", 30943tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 30944let Inst{7-5} = 0b000; 30945let Inst{13-13} = 0b0; 30946let Inst{31-21} = 0b00011100100; 30947let hasNewValue = 1; 30948let opNewValue = 0; 30949let isCVI = 1; 30950let DecoderNamespace = "EXT_mmvec"; 30951} 30952def V6_vadduhsat_dv_alt : HInst< 30953(outs HvxWR:$Vdd32), 30954(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 30955"$Vdd32 = vadduh($Vuu32,$Vvv32):sat", 30956PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 30957let hasNewValue = 1; 30958let opNewValue = 0; 30959let isCVI = 1; 30960let isPseudo = 1; 30961let isCodeGenOnly = 1; 30962let DecoderNamespace = "EXT_mmvec"; 30963} 30964def V6_vadduhw : HInst< 30965(outs HvxWR:$Vdd32), 30966(ins HvxVR:$Vu32, HvxVR:$Vv32), 30967"$Vdd32.w = vadd($Vu32.uh,$Vv32.uh)", 30968tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 30969let Inst{7-5} = 0b011; 30970let Inst{13-13} = 0b0; 30971let Inst{31-21} = 0b00011100101; 30972let hasNewValue = 1; 30973let opNewValue = 0; 30974let isCVI = 1; 30975let DecoderNamespace = "EXT_mmvec"; 30976} 30977def V6_vadduhw_acc : HInst< 30978(outs HvxWR:$Vxx32), 30979(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 30980"$Vxx32.w += vadd($Vu32.uh,$Vv32.uh)", 30981tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV62]> { 30982let Inst{7-5} = 0b100; 30983let Inst{13-13} = 0b1; 30984let Inst{31-21} = 0b00011100010; 30985let hasNewValue = 1; 30986let opNewValue = 0; 30987let isAccumulator = 1; 30988let isCVI = 1; 30989let DecoderNamespace = "EXT_mmvec"; 30990let Constraints = "$Vxx32 = $Vxx32in"; 30991} 30992def V6_vadduhw_acc_alt : HInst< 30993(outs HvxWR:$Vxx32), 30994(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 30995"$Vxx32 += vadduh($Vu32,$Vv32)", 30996PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 30997let hasNewValue = 1; 30998let opNewValue = 0; 30999let isAccumulator = 1; 31000let isCVI = 1; 31001let isPseudo = 1; 31002let isCodeGenOnly = 1; 31003let DecoderNamespace = "EXT_mmvec"; 31004let Constraints = "$Vxx32 = $Vxx32in"; 31005} 31006def V6_vadduhw_alt : HInst< 31007(outs HvxWR:$Vdd32), 31008(ins HvxVR:$Vu32, HvxVR:$Vv32), 31009"$Vdd32 = vadduh($Vu32,$Vv32)", 31010PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31011let hasNewValue = 1; 31012let opNewValue = 0; 31013let isCVI = 1; 31014let isPseudo = 1; 31015let isCodeGenOnly = 1; 31016let DecoderNamespace = "EXT_mmvec"; 31017} 31018def V6_vadduwsat : HInst< 31019(outs HvxVR:$Vd32), 31020(ins HvxVR:$Vu32, HvxVR:$Vv32), 31021"$Vd32.uw = vadd($Vu32.uw,$Vv32.uw):sat", 31022tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> { 31023let Inst{7-5} = 0b001; 31024let Inst{13-13} = 0b0; 31025let Inst{31-21} = 0b00011111011; 31026let hasNewValue = 1; 31027let opNewValue = 0; 31028let isCVI = 1; 31029let isHVXALU = 1; 31030let isHVXALU2SRC = 1; 31031let DecoderNamespace = "EXT_mmvec"; 31032} 31033def V6_vadduwsat_alt : HInst< 31034(outs HvxVR:$Vd32), 31035(ins HvxVR:$Vu32, HvxVR:$Vv32), 31036"$Vd32 = vadduw($Vu32,$Vv32):sat", 31037PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 31038let hasNewValue = 1; 31039let opNewValue = 0; 31040let isCVI = 1; 31041let isPseudo = 1; 31042let isCodeGenOnly = 1; 31043let DecoderNamespace = "EXT_mmvec"; 31044} 31045def V6_vadduwsat_dv : HInst< 31046(outs HvxWR:$Vdd32), 31047(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 31048"$Vdd32.uw = vadd($Vuu32.uw,$Vvv32.uw):sat", 31049tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV62]> { 31050let Inst{7-5} = 0b010; 31051let Inst{13-13} = 0b0; 31052let Inst{31-21} = 0b00011110101; 31053let hasNewValue = 1; 31054let opNewValue = 0; 31055let isCVI = 1; 31056let DecoderNamespace = "EXT_mmvec"; 31057} 31058def V6_vadduwsat_dv_alt : HInst< 31059(outs HvxWR:$Vdd32), 31060(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 31061"$Vdd32 = vadduw($Vuu32,$Vvv32):sat", 31062PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 31063let hasNewValue = 1; 31064let opNewValue = 0; 31065let isCVI = 1; 31066let isPseudo = 1; 31067let isCodeGenOnly = 1; 31068let DecoderNamespace = "EXT_mmvec"; 31069} 31070def V6_vaddw : HInst< 31071(outs HvxVR:$Vd32), 31072(ins HvxVR:$Vu32, HvxVR:$Vv32), 31073"$Vd32.w = vadd($Vu32.w,$Vv32.w)", 31074tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 31075let Inst{7-5} = 0b000; 31076let Inst{13-13} = 0b0; 31077let Inst{31-21} = 0b00011100010; 31078let hasNewValue = 1; 31079let opNewValue = 0; 31080let isCVI = 1; 31081let isHVXALU = 1; 31082let isHVXALU2SRC = 1; 31083let DecoderNamespace = "EXT_mmvec"; 31084} 31085def V6_vaddw_alt : HInst< 31086(outs HvxVR:$Vd32), 31087(ins HvxVR:$Vu32, HvxVR:$Vv32), 31088"$Vd32 = vaddw($Vu32,$Vv32)", 31089PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31090let hasNewValue = 1; 31091let opNewValue = 0; 31092let isCVI = 1; 31093let isPseudo = 1; 31094let isCodeGenOnly = 1; 31095let DecoderNamespace = "EXT_mmvec"; 31096} 31097def V6_vaddw_dv : HInst< 31098(outs HvxWR:$Vdd32), 31099(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 31100"$Vdd32.w = vadd($Vuu32.w,$Vvv32.w)", 31101tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 31102let Inst{7-5} = 0b110; 31103let Inst{13-13} = 0b0; 31104let Inst{31-21} = 0b00011100011; 31105let hasNewValue = 1; 31106let opNewValue = 0; 31107let isCVI = 1; 31108let DecoderNamespace = "EXT_mmvec"; 31109} 31110def V6_vaddw_dv_alt : HInst< 31111(outs HvxWR:$Vdd32), 31112(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 31113"$Vdd32 = vaddw($Vuu32,$Vvv32)", 31114PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31115let hasNewValue = 1; 31116let opNewValue = 0; 31117let isCVI = 1; 31118let isPseudo = 1; 31119let isCodeGenOnly = 1; 31120let DecoderNamespace = "EXT_mmvec"; 31121} 31122def V6_vaddwnq : HInst< 31123(outs HvxVR:$Vx32), 31124(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 31125"if (!$Qv4) $Vx32.w += $Vu32.w", 31126tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 31127let Inst{7-5} = 0b101; 31128let Inst{13-13} = 0b1; 31129let Inst{21-16} = 0b000001; 31130let Inst{31-24} = 0b00011110; 31131let hasNewValue = 1; 31132let opNewValue = 0; 31133let isAccumulator = 1; 31134let isCVI = 1; 31135let isHVXALU = 1; 31136let isHVXALU2SRC = 1; 31137let DecoderNamespace = "EXT_mmvec"; 31138let Constraints = "$Vx32 = $Vx32in"; 31139} 31140def V6_vaddwnq_alt : HInst< 31141(outs HvxVR:$Vx32), 31142(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 31143"if (!$Qv4.w) $Vx32.w += $Vu32.w", 31144PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31145let hasNewValue = 1; 31146let opNewValue = 0; 31147let isAccumulator = 1; 31148let isCVI = 1; 31149let isPseudo = 1; 31150let isCodeGenOnly = 1; 31151let DecoderNamespace = "EXT_mmvec"; 31152let Constraints = "$Vx32 = $Vx32in"; 31153} 31154def V6_vaddwq : HInst< 31155(outs HvxVR:$Vx32), 31156(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 31157"if ($Qv4) $Vx32.w += $Vu32.w", 31158tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 31159let Inst{7-5} = 0b010; 31160let Inst{13-13} = 0b1; 31161let Inst{21-16} = 0b000001; 31162let Inst{31-24} = 0b00011110; 31163let hasNewValue = 1; 31164let opNewValue = 0; 31165let isAccumulator = 1; 31166let isCVI = 1; 31167let isHVXALU = 1; 31168let isHVXALU2SRC = 1; 31169let DecoderNamespace = "EXT_mmvec"; 31170let Constraints = "$Vx32 = $Vx32in"; 31171} 31172def V6_vaddwq_alt : HInst< 31173(outs HvxVR:$Vx32), 31174(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 31175"if ($Qv4.w) $Vx32.w += $Vu32.w", 31176PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31177let hasNewValue = 1; 31178let opNewValue = 0; 31179let isAccumulator = 1; 31180let isCVI = 1; 31181let isPseudo = 1; 31182let isCodeGenOnly = 1; 31183let DecoderNamespace = "EXT_mmvec"; 31184let Constraints = "$Vx32 = $Vx32in"; 31185} 31186def V6_vaddwsat : HInst< 31187(outs HvxVR:$Vd32), 31188(ins HvxVR:$Vu32, HvxVR:$Vv32), 31189"$Vd32.w = vadd($Vu32.w,$Vv32.w):sat", 31190tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 31191let Inst{7-5} = 0b100; 31192let Inst{13-13} = 0b0; 31193let Inst{31-21} = 0b00011100010; 31194let hasNewValue = 1; 31195let opNewValue = 0; 31196let isCVI = 1; 31197let isHVXALU = 1; 31198let isHVXALU2SRC = 1; 31199let DecoderNamespace = "EXT_mmvec"; 31200} 31201def V6_vaddwsat_alt : HInst< 31202(outs HvxVR:$Vd32), 31203(ins HvxVR:$Vu32, HvxVR:$Vv32), 31204"$Vd32 = vaddw($Vu32,$Vv32):sat", 31205PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31206let hasNewValue = 1; 31207let opNewValue = 0; 31208let isCVI = 1; 31209let isPseudo = 1; 31210let isCodeGenOnly = 1; 31211let DecoderNamespace = "EXT_mmvec"; 31212} 31213def V6_vaddwsat_dv : HInst< 31214(outs HvxWR:$Vdd32), 31215(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 31216"$Vdd32.w = vadd($Vuu32.w,$Vvv32.w):sat", 31217tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 31218let Inst{7-5} = 0b010; 31219let Inst{13-13} = 0b0; 31220let Inst{31-21} = 0b00011100100; 31221let hasNewValue = 1; 31222let opNewValue = 0; 31223let isCVI = 1; 31224let DecoderNamespace = "EXT_mmvec"; 31225} 31226def V6_vaddwsat_dv_alt : HInst< 31227(outs HvxWR:$Vdd32), 31228(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 31229"$Vdd32 = vaddw($Vuu32,$Vvv32):sat", 31230PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31231let hasNewValue = 1; 31232let opNewValue = 0; 31233let isCVI = 1; 31234let isPseudo = 1; 31235let isCodeGenOnly = 1; 31236let DecoderNamespace = "EXT_mmvec"; 31237} 31238def V6_valignb : HInst< 31239(outs HvxVR:$Vd32), 31240(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 31241"$Vd32 = valign($Vu32,$Vv32,$Rt8)", 31242tc_56e64202, TypeCVI_VP>, Enc_a30110, Requires<[UseHVXV60]> { 31243let Inst{7-5} = 0b000; 31244let Inst{13-13} = 0b0; 31245let Inst{31-24} = 0b00011011; 31246let hasNewValue = 1; 31247let opNewValue = 0; 31248let isCVI = 1; 31249let DecoderNamespace = "EXT_mmvec"; 31250} 31251def V6_valignbi : HInst< 31252(outs HvxVR:$Vd32), 31253(ins HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii), 31254"$Vd32 = valign($Vu32,$Vv32,#$Ii)", 31255tc_56e64202, TypeCVI_VP>, Enc_0b2e5b, Requires<[UseHVXV60]> { 31256let Inst{13-13} = 0b1; 31257let Inst{31-21} = 0b00011110001; 31258let hasNewValue = 1; 31259let opNewValue = 0; 31260let isCVI = 1; 31261let DecoderNamespace = "EXT_mmvec"; 31262} 31263def V6_vand : HInst< 31264(outs HvxVR:$Vd32), 31265(ins HvxVR:$Vu32, HvxVR:$Vv32), 31266"$Vd32 = vand($Vu32,$Vv32)", 31267tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 31268let Inst{7-5} = 0b101; 31269let Inst{13-13} = 0b0; 31270let Inst{31-21} = 0b00011100001; 31271let hasNewValue = 1; 31272let opNewValue = 0; 31273let isCVI = 1; 31274let isHVXALU = 1; 31275let isHVXALU2SRC = 1; 31276let DecoderNamespace = "EXT_mmvec"; 31277} 31278def V6_vandnqrt : HInst< 31279(outs HvxVR:$Vd32), 31280(ins HvxQR:$Qu4, IntRegs:$Rt32), 31281"$Vd32 = vand(!$Qu4,$Rt32)", 31282tc_ac4046bc, TypeCVI_VX_LATE>, Enc_7b7ba8, Requires<[UseHVXV62]> { 31283let Inst{7-5} = 0b101; 31284let Inst{13-10} = 0b0001; 31285let Inst{31-21} = 0b00011001101; 31286let hasNewValue = 1; 31287let opNewValue = 0; 31288let isCVI = 1; 31289let DecoderNamespace = "EXT_mmvec"; 31290} 31291def V6_vandnqrt_acc : HInst< 31292(outs HvxVR:$Vx32), 31293(ins HvxVR:$Vx32in, HvxQR:$Qu4, IntRegs:$Rt32), 31294"$Vx32 |= vand(!$Qu4,$Rt32)", 31295tc_2e8f5f6e, TypeCVI_VX_LATE>, Enc_895bd9, Requires<[UseHVXV62]> { 31296let Inst{7-5} = 0b011; 31297let Inst{13-10} = 0b1001; 31298let Inst{31-21} = 0b00011001011; 31299let hasNewValue = 1; 31300let opNewValue = 0; 31301let isAccumulator = 1; 31302let isCVI = 1; 31303let DecoderNamespace = "EXT_mmvec"; 31304let Constraints = "$Vx32 = $Vx32in"; 31305} 31306def V6_vandnqrt_acc_alt : HInst< 31307(outs HvxVR:$Vx32), 31308(ins HvxVR:$Vx32in, HvxQR:$Qu4, IntRegs:$Rt32), 31309"$Vx32.ub |= vand(!$Qu4.ub,$Rt32.ub)", 31310PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 31311let hasNewValue = 1; 31312let opNewValue = 0; 31313let isAccumulator = 1; 31314let isCVI = 1; 31315let isPseudo = 1; 31316let isCodeGenOnly = 1; 31317let DecoderNamespace = "EXT_mmvec"; 31318let Constraints = "$Vx32 = $Vx32in"; 31319} 31320def V6_vandnqrt_alt : HInst< 31321(outs HvxVR:$Vd32), 31322(ins HvxQR:$Qu4, IntRegs:$Rt32), 31323"$Vd32.ub = vand(!$Qu4.ub,$Rt32.ub)", 31324PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 31325let hasNewValue = 1; 31326let opNewValue = 0; 31327let isCVI = 1; 31328let isPseudo = 1; 31329let isCodeGenOnly = 1; 31330let DecoderNamespace = "EXT_mmvec"; 31331} 31332def V6_vandqrt : HInst< 31333(outs HvxVR:$Vd32), 31334(ins HvxQR:$Qu4, IntRegs:$Rt32), 31335"$Vd32 = vand($Qu4,$Rt32)", 31336tc_ac4046bc, TypeCVI_VX_LATE>, Enc_7b7ba8, Requires<[UseHVXV60]> { 31337let Inst{7-5} = 0b101; 31338let Inst{13-10} = 0b0000; 31339let Inst{31-21} = 0b00011001101; 31340let hasNewValue = 1; 31341let opNewValue = 0; 31342let isCVI = 1; 31343let DecoderNamespace = "EXT_mmvec"; 31344} 31345def V6_vandqrt_acc : HInst< 31346(outs HvxVR:$Vx32), 31347(ins HvxVR:$Vx32in, HvxQR:$Qu4, IntRegs:$Rt32), 31348"$Vx32 |= vand($Qu4,$Rt32)", 31349tc_2e8f5f6e, TypeCVI_VX_LATE>, Enc_895bd9, Requires<[UseHVXV60]> { 31350let Inst{7-5} = 0b011; 31351let Inst{13-10} = 0b1000; 31352let Inst{31-21} = 0b00011001011; 31353let hasNewValue = 1; 31354let opNewValue = 0; 31355let isAccumulator = 1; 31356let isCVI = 1; 31357let DecoderNamespace = "EXT_mmvec"; 31358let Constraints = "$Vx32 = $Vx32in"; 31359} 31360def V6_vandqrt_acc_alt : HInst< 31361(outs HvxVR:$Vx32), 31362(ins HvxVR:$Vx32in, HvxQR:$Qu4, IntRegs:$Rt32), 31363"$Vx32.ub |= vand($Qu4.ub,$Rt32.ub)", 31364PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31365let hasNewValue = 1; 31366let opNewValue = 0; 31367let isAccumulator = 1; 31368let isCVI = 1; 31369let isPseudo = 1; 31370let isCodeGenOnly = 1; 31371let DecoderNamespace = "EXT_mmvec"; 31372let Constraints = "$Vx32 = $Vx32in"; 31373} 31374def V6_vandqrt_alt : HInst< 31375(outs HvxVR:$Vd32), 31376(ins HvxQR:$Qu4, IntRegs:$Rt32), 31377"$Vd32.ub = vand($Qu4.ub,$Rt32.ub)", 31378PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31379let hasNewValue = 1; 31380let opNewValue = 0; 31381let isCVI = 1; 31382let isPseudo = 1; 31383let isCodeGenOnly = 1; 31384let DecoderNamespace = "EXT_mmvec"; 31385} 31386def V6_vandvnqv : HInst< 31387(outs HvxVR:$Vd32), 31388(ins HvxQR:$Qv4, HvxVR:$Vu32), 31389"$Vd32 = vand(!$Qv4,$Vu32)", 31390tc_56c4f9fe, TypeCVI_VA>, Enc_c4dc92, Requires<[UseHVXV62]> { 31391let Inst{7-5} = 0b001; 31392let Inst{13-13} = 0b1; 31393let Inst{21-16} = 0b000011; 31394let Inst{31-24} = 0b00011110; 31395let hasNewValue = 1; 31396let opNewValue = 0; 31397let isCVI = 1; 31398let isHVXALU = 1; 31399let isHVXALU2SRC = 1; 31400let DecoderNamespace = "EXT_mmvec"; 31401} 31402def V6_vandvqv : HInst< 31403(outs HvxVR:$Vd32), 31404(ins HvxQR:$Qv4, HvxVR:$Vu32), 31405"$Vd32 = vand($Qv4,$Vu32)", 31406tc_56c4f9fe, TypeCVI_VA>, Enc_c4dc92, Requires<[UseHVXV62]> { 31407let Inst{7-5} = 0b000; 31408let Inst{13-13} = 0b1; 31409let Inst{21-16} = 0b000011; 31410let Inst{31-24} = 0b00011110; 31411let hasNewValue = 1; 31412let opNewValue = 0; 31413let isCVI = 1; 31414let isHVXALU = 1; 31415let isHVXALU2SRC = 1; 31416let DecoderNamespace = "EXT_mmvec"; 31417} 31418def V6_vandvrt : HInst< 31419(outs HvxQR:$Qd4), 31420(ins HvxVR:$Vu32, IntRegs:$Rt32), 31421"$Qd4 = vand($Vu32,$Rt32)", 31422tc_ac4046bc, TypeCVI_VX_LATE>, Enc_0f8bab, Requires<[UseHVXV60]> { 31423let Inst{7-2} = 0b010010; 31424let Inst{13-13} = 0b0; 31425let Inst{31-21} = 0b00011001101; 31426let hasNewValue = 1; 31427let opNewValue = 0; 31428let isCVI = 1; 31429let DecoderNamespace = "EXT_mmvec"; 31430} 31431def V6_vandvrt_acc : HInst< 31432(outs HvxQR:$Qx4), 31433(ins HvxQR:$Qx4in, HvxVR:$Vu32, IntRegs:$Rt32), 31434"$Qx4 |= vand($Vu32,$Rt32)", 31435tc_2e8f5f6e, TypeCVI_VX_LATE>, Enc_adf111, Requires<[UseHVXV60]> { 31436let Inst{7-2} = 0b100000; 31437let Inst{13-13} = 0b1; 31438let Inst{31-21} = 0b00011001011; 31439let isAccumulator = 1; 31440let isCVI = 1; 31441let DecoderNamespace = "EXT_mmvec"; 31442let Constraints = "$Qx4 = $Qx4in"; 31443} 31444def V6_vandvrt_acc_alt : HInst< 31445(outs HvxQR:$Qx4), 31446(ins HvxQR:$Qx4in, HvxVR:$Vu32, IntRegs:$Rt32), 31447"$Qx4.ub |= vand($Vu32.ub,$Rt32.ub)", 31448PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31449let isAccumulator = 1; 31450let isCVI = 1; 31451let isPseudo = 1; 31452let isCodeGenOnly = 1; 31453let DecoderNamespace = "EXT_mmvec"; 31454let Constraints = "$Qx4 = $Qx4in"; 31455} 31456def V6_vandvrt_alt : HInst< 31457(outs HvxQR:$Qd4), 31458(ins HvxVR:$Vu32, IntRegs:$Rt32), 31459"$Qd4.ub = vand($Vu32.ub,$Rt32.ub)", 31460PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31461let hasNewValue = 1; 31462let opNewValue = 0; 31463let isCVI = 1; 31464let isPseudo = 1; 31465let isCodeGenOnly = 1; 31466let DecoderNamespace = "EXT_mmvec"; 31467} 31468def V6_vaslh : HInst< 31469(outs HvxVR:$Vd32), 31470(ins HvxVR:$Vu32, IntRegs:$Rt32), 31471"$Vd32.h = vasl($Vu32.h,$Rt32)", 31472tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> { 31473let Inst{7-5} = 0b000; 31474let Inst{13-13} = 0b0; 31475let Inst{31-21} = 0b00011001100; 31476let hasNewValue = 1; 31477let opNewValue = 0; 31478let isCVI = 1; 31479let DecoderNamespace = "EXT_mmvec"; 31480} 31481def V6_vaslh_acc : HInst< 31482(outs HvxVR:$Vx32), 31483(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 31484"$Vx32.h += vasl($Vu32.h,$Rt32)", 31485tc_309dbb4f, TypeCVI_VS>, Enc_5138b3, Requires<[UseHVXV65]> { 31486let Inst{7-5} = 0b101; 31487let Inst{13-13} = 0b1; 31488let Inst{31-21} = 0b00011001101; 31489let hasNewValue = 1; 31490let opNewValue = 0; 31491let isAccumulator = 1; 31492let isCVI = 1; 31493let DecoderNamespace = "EXT_mmvec"; 31494let Constraints = "$Vx32 = $Vx32in"; 31495} 31496def V6_vaslh_acc_alt : HInst< 31497(outs HvxVR:$Vx32), 31498(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 31499"$Vx32 += vaslh($Vu32,$Rt32)", 31500PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 31501let hasNewValue = 1; 31502let opNewValue = 0; 31503let isAccumulator = 1; 31504let isCVI = 1; 31505let isPseudo = 1; 31506let isCodeGenOnly = 1; 31507let DecoderNamespace = "EXT_mmvec"; 31508let Constraints = "$Vx32 = $Vx32in"; 31509} 31510def V6_vaslh_alt : HInst< 31511(outs HvxVR:$Vd32), 31512(ins HvxVR:$Vu32, IntRegs:$Rt32), 31513"$Vd32 = vaslh($Vu32,$Rt32)", 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_vaslhv : HInst< 31523(outs HvxVR:$Vd32), 31524(ins HvxVR:$Vu32, HvxVR:$Vv32), 31525"$Vd32.h = vasl($Vu32.h,$Vv32.h)", 31526tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> { 31527let Inst{7-5} = 0b101; 31528let Inst{13-13} = 0b0; 31529let Inst{31-21} = 0b00011111101; 31530let hasNewValue = 1; 31531let opNewValue = 0; 31532let isCVI = 1; 31533let DecoderNamespace = "EXT_mmvec"; 31534} 31535def V6_vaslhv_alt : HInst< 31536(outs HvxVR:$Vd32), 31537(ins HvxVR:$Vu32, HvxVR:$Vv32), 31538"$Vd32 = vaslh($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_vaslw : HInst< 31548(outs HvxVR:$Vd32), 31549(ins HvxVR:$Vu32, IntRegs:$Rt32), 31550"$Vd32.w = vasl($Vu32.w,$Rt32)", 31551tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> { 31552let Inst{7-5} = 0b111; 31553let Inst{13-13} = 0b0; 31554let Inst{31-21} = 0b00011001011; 31555let hasNewValue = 1; 31556let opNewValue = 0; 31557let isCVI = 1; 31558let DecoderNamespace = "EXT_mmvec"; 31559} 31560def V6_vaslw_acc : HInst< 31561(outs HvxVR:$Vx32), 31562(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 31563"$Vx32.w += vasl($Vu32.w,$Rt32)", 31564tc_309dbb4f, TypeCVI_VS>, Enc_5138b3, Requires<[UseHVXV60]> { 31565let Inst{7-5} = 0b010; 31566let Inst{13-13} = 0b1; 31567let Inst{31-21} = 0b00011001011; 31568let hasNewValue = 1; 31569let opNewValue = 0; 31570let isAccumulator = 1; 31571let isCVI = 1; 31572let DecoderNamespace = "EXT_mmvec"; 31573let Constraints = "$Vx32 = $Vx32in"; 31574} 31575def V6_vaslw_acc_alt : HInst< 31576(outs HvxVR:$Vx32), 31577(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 31578"$Vx32 += vaslw($Vu32,$Rt32)", 31579PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31580let hasNewValue = 1; 31581let opNewValue = 0; 31582let isAccumulator = 1; 31583let isCVI = 1; 31584let isPseudo = 1; 31585let isCodeGenOnly = 1; 31586let DecoderNamespace = "EXT_mmvec"; 31587let Constraints = "$Vx32 = $Vx32in"; 31588} 31589def V6_vaslw_alt : HInst< 31590(outs HvxVR:$Vd32), 31591(ins HvxVR:$Vu32, IntRegs:$Rt32), 31592"$Vd32 = vaslw($Vu32,$Rt32)", 31593PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31594let hasNewValue = 1; 31595let opNewValue = 0; 31596let isCVI = 1; 31597let isPseudo = 1; 31598let isCodeGenOnly = 1; 31599let DecoderNamespace = "EXT_mmvec"; 31600} 31601def V6_vaslwv : HInst< 31602(outs HvxVR:$Vd32), 31603(ins HvxVR:$Vu32, HvxVR:$Vv32), 31604"$Vd32.w = vasl($Vu32.w,$Vv32.w)", 31605tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> { 31606let Inst{7-5} = 0b100; 31607let Inst{13-13} = 0b0; 31608let Inst{31-21} = 0b00011111101; 31609let hasNewValue = 1; 31610let opNewValue = 0; 31611let isCVI = 1; 31612let DecoderNamespace = "EXT_mmvec"; 31613} 31614def V6_vaslwv_alt : HInst< 31615(outs HvxVR:$Vd32), 31616(ins HvxVR:$Vu32, HvxVR:$Vv32), 31617"$Vd32 = vaslw($Vu32,$Vv32)", 31618PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31619let hasNewValue = 1; 31620let opNewValue = 0; 31621let isCVI = 1; 31622let isPseudo = 1; 31623let isCodeGenOnly = 1; 31624let DecoderNamespace = "EXT_mmvec"; 31625} 31626def V6_vasr_into : HInst< 31627(outs HvxWR:$Vxx32), 31628(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 31629"$Vxx32.w = vasrinto($Vu32.w,$Vv32.w)", 31630tc_df80eeb0, TypeCVI_VP_VS>, Enc_3fc427, Requires<[UseHVXV66]> { 31631let Inst{7-5} = 0b111; 31632let Inst{13-13} = 0b1; 31633let Inst{31-21} = 0b00011010101; 31634let hasNewValue = 1; 31635let opNewValue = 0; 31636let isCVI = 1; 31637let DecoderNamespace = "EXT_mmvec"; 31638let Constraints = "$Vxx32 = $Vxx32in"; 31639} 31640def V6_vasr_into_alt : HInst< 31641(outs HvxWR:$Vxx32), 31642(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 31643"$Vxx32 = vasrinto($Vu32,$Vv32)", 31644PSEUDO, TypeMAPPING>, Requires<[UseHVXV66]> { 31645let hasNewValue = 1; 31646let opNewValue = 0; 31647let isCVI = 1; 31648let isPseudo = 1; 31649let isCodeGenOnly = 1; 31650let DecoderNamespace = "EXT_mmvec"; 31651let Constraints = "$Vxx32 = $Vxx32in"; 31652} 31653def V6_vasrh : HInst< 31654(outs HvxVR:$Vd32), 31655(ins HvxVR:$Vu32, IntRegs:$Rt32), 31656"$Vd32.h = vasr($Vu32.h,$Rt32)", 31657tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> { 31658let Inst{7-5} = 0b110; 31659let Inst{13-13} = 0b0; 31660let Inst{31-21} = 0b00011001011; 31661let hasNewValue = 1; 31662let opNewValue = 0; 31663let isCVI = 1; 31664let DecoderNamespace = "EXT_mmvec"; 31665} 31666def V6_vasrh_acc : HInst< 31667(outs HvxVR:$Vx32), 31668(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 31669"$Vx32.h += vasr($Vu32.h,$Rt32)", 31670tc_309dbb4f, TypeCVI_VS>, Enc_5138b3, Requires<[UseHVXV65]> { 31671let Inst{7-5} = 0b111; 31672let Inst{13-13} = 0b1; 31673let Inst{31-21} = 0b00011001100; 31674let hasNewValue = 1; 31675let opNewValue = 0; 31676let isAccumulator = 1; 31677let isCVI = 1; 31678let DecoderNamespace = "EXT_mmvec"; 31679let Constraints = "$Vx32 = $Vx32in"; 31680} 31681def V6_vasrh_acc_alt : HInst< 31682(outs HvxVR:$Vx32), 31683(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 31684"$Vx32 += vasrh($Vu32,$Rt32)", 31685PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 31686let hasNewValue = 1; 31687let opNewValue = 0; 31688let isAccumulator = 1; 31689let isCVI = 1; 31690let isPseudo = 1; 31691let isCodeGenOnly = 1; 31692let DecoderNamespace = "EXT_mmvec"; 31693let Constraints = "$Vx32 = $Vx32in"; 31694} 31695def V6_vasrh_alt : HInst< 31696(outs HvxVR:$Vd32), 31697(ins HvxVR:$Vu32, IntRegs:$Rt32), 31698"$Vd32 = vasrh($Vu32,$Rt32)", 31699PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31700let hasNewValue = 1; 31701let opNewValue = 0; 31702let isCVI = 1; 31703let isPseudo = 1; 31704let isCodeGenOnly = 1; 31705let DecoderNamespace = "EXT_mmvec"; 31706} 31707def V6_vasrhbrndsat : HInst< 31708(outs HvxVR:$Vd32), 31709(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 31710"$Vd32.b = vasr($Vu32.h,$Vv32.h,$Rt8):rnd:sat", 31711tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> { 31712let Inst{7-5} = 0b000; 31713let Inst{13-13} = 0b1; 31714let Inst{31-24} = 0b00011011; 31715let hasNewValue = 1; 31716let opNewValue = 0; 31717let isCVI = 1; 31718let DecoderNamespace = "EXT_mmvec"; 31719} 31720def V6_vasrhbsat : HInst< 31721(outs HvxVR:$Vd32), 31722(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 31723"$Vd32.b = vasr($Vu32.h,$Vv32.h,$Rt8):sat", 31724tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV62]> { 31725let Inst{7-5} = 0b000; 31726let Inst{13-13} = 0b0; 31727let Inst{31-24} = 0b00011000; 31728let hasNewValue = 1; 31729let opNewValue = 0; 31730let isCVI = 1; 31731let DecoderNamespace = "EXT_mmvec"; 31732} 31733def V6_vasrhubrndsat : HInst< 31734(outs HvxVR:$Vd32), 31735(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 31736"$Vd32.ub = vasr($Vu32.h,$Vv32.h,$Rt8):rnd:sat", 31737tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> { 31738let Inst{7-5} = 0b111; 31739let Inst{13-13} = 0b0; 31740let Inst{31-24} = 0b00011011; 31741let hasNewValue = 1; 31742let opNewValue = 0; 31743let isCVI = 1; 31744let DecoderNamespace = "EXT_mmvec"; 31745} 31746def V6_vasrhubsat : HInst< 31747(outs HvxVR:$Vd32), 31748(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 31749"$Vd32.ub = vasr($Vu32.h,$Vv32.h,$Rt8):sat", 31750tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> { 31751let Inst{7-5} = 0b110; 31752let Inst{13-13} = 0b0; 31753let Inst{31-24} = 0b00011011; 31754let hasNewValue = 1; 31755let opNewValue = 0; 31756let isCVI = 1; 31757let DecoderNamespace = "EXT_mmvec"; 31758} 31759def V6_vasrhv : HInst< 31760(outs HvxVR:$Vd32), 31761(ins HvxVR:$Vu32, HvxVR:$Vv32), 31762"$Vd32.h = vasr($Vu32.h,$Vv32.h)", 31763tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> { 31764let Inst{7-5} = 0b011; 31765let Inst{13-13} = 0b0; 31766let Inst{31-21} = 0b00011111101; 31767let hasNewValue = 1; 31768let opNewValue = 0; 31769let isCVI = 1; 31770let DecoderNamespace = "EXT_mmvec"; 31771} 31772def V6_vasrhv_alt : HInst< 31773(outs HvxVR:$Vd32), 31774(ins HvxVR:$Vu32, HvxVR:$Vv32), 31775"$Vd32 = vasrh($Vu32,$Vv32)", 31776PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31777let hasNewValue = 1; 31778let opNewValue = 0; 31779let isCVI = 1; 31780let isPseudo = 1; 31781let isCodeGenOnly = 1; 31782let DecoderNamespace = "EXT_mmvec"; 31783} 31784def V6_vasruhubrndsat : HInst< 31785(outs HvxVR:$Vd32), 31786(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 31787"$Vd32.ub = vasr($Vu32.uh,$Vv32.uh,$Rt8):rnd:sat", 31788tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV65]> { 31789let Inst{7-5} = 0b111; 31790let Inst{13-13} = 0b0; 31791let Inst{31-24} = 0b00011000; 31792let hasNewValue = 1; 31793let opNewValue = 0; 31794let isCVI = 1; 31795let DecoderNamespace = "EXT_mmvec"; 31796} 31797def V6_vasruhubsat : HInst< 31798(outs HvxVR:$Vd32), 31799(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 31800"$Vd32.ub = vasr($Vu32.uh,$Vv32.uh,$Rt8):sat", 31801tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV65]> { 31802let Inst{7-5} = 0b101; 31803let Inst{13-13} = 0b1; 31804let Inst{31-24} = 0b00011000; 31805let hasNewValue = 1; 31806let opNewValue = 0; 31807let isCVI = 1; 31808let DecoderNamespace = "EXT_mmvec"; 31809} 31810def V6_vasruwuhrndsat : HInst< 31811(outs HvxVR:$Vd32), 31812(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 31813"$Vd32.uh = vasr($Vu32.uw,$Vv32.uw,$Rt8):rnd:sat", 31814tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV62]> { 31815let Inst{7-5} = 0b001; 31816let Inst{13-13} = 0b0; 31817let Inst{31-24} = 0b00011000; 31818let hasNewValue = 1; 31819let opNewValue = 0; 31820let isCVI = 1; 31821let DecoderNamespace = "EXT_mmvec"; 31822} 31823def V6_vasruwuhsat : HInst< 31824(outs HvxVR:$Vd32), 31825(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 31826"$Vd32.uh = vasr($Vu32.uw,$Vv32.uw,$Rt8):sat", 31827tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV65]> { 31828let Inst{7-5} = 0b100; 31829let Inst{13-13} = 0b1; 31830let Inst{31-24} = 0b00011000; 31831let hasNewValue = 1; 31832let opNewValue = 0; 31833let isCVI = 1; 31834let DecoderNamespace = "EXT_mmvec"; 31835} 31836def V6_vasrvuhubrndsat : HInst< 31837(outs HvxVR:$Vd32), 31838(ins HvxWR:$Vuu32, HvxVR:$Vv32), 31839"$Vd32.ub = vasr($Vuu32.uh,$Vv32.ub):rnd:sat", 31840tc_05ca8cfd, TypeCVI_VS>, Enc_de5ea0, Requires<[UseHVXV69]> { 31841let Inst{7-5} = 0b011; 31842let Inst{13-13} = 0b0; 31843let Inst{31-21} = 0b00011101000; 31844let hasNewValue = 1; 31845let opNewValue = 0; 31846let isCVI = 1; 31847let hasUnaryRestriction = 1; 31848let DecoderNamespace = "EXT_mmvec"; 31849} 31850def V6_vasrvuhubsat : HInst< 31851(outs HvxVR:$Vd32), 31852(ins HvxWR:$Vuu32, HvxVR:$Vv32), 31853"$Vd32.ub = vasr($Vuu32.uh,$Vv32.ub):sat", 31854tc_05ca8cfd, TypeCVI_VS>, Enc_de5ea0, Requires<[UseHVXV69]> { 31855let Inst{7-5} = 0b010; 31856let Inst{13-13} = 0b0; 31857let Inst{31-21} = 0b00011101000; 31858let hasNewValue = 1; 31859let opNewValue = 0; 31860let isCVI = 1; 31861let hasUnaryRestriction = 1; 31862let DecoderNamespace = "EXT_mmvec"; 31863} 31864def V6_vasrvwuhrndsat : HInst< 31865(outs HvxVR:$Vd32), 31866(ins HvxWR:$Vuu32, HvxVR:$Vv32), 31867"$Vd32.uh = vasr($Vuu32.w,$Vv32.uh):rnd:sat", 31868tc_05ca8cfd, TypeCVI_VS>, Enc_de5ea0, Requires<[UseHVXV69]> { 31869let Inst{7-5} = 0b001; 31870let Inst{13-13} = 0b0; 31871let Inst{31-21} = 0b00011101000; 31872let hasNewValue = 1; 31873let opNewValue = 0; 31874let isCVI = 1; 31875let hasUnaryRestriction = 1; 31876let DecoderNamespace = "EXT_mmvec"; 31877} 31878def V6_vasrvwuhsat : HInst< 31879(outs HvxVR:$Vd32), 31880(ins HvxWR:$Vuu32, HvxVR:$Vv32), 31881"$Vd32.uh = vasr($Vuu32.w,$Vv32.uh):sat", 31882tc_05ca8cfd, TypeCVI_VS>, Enc_de5ea0, Requires<[UseHVXV69]> { 31883let Inst{7-5} = 0b000; 31884let Inst{13-13} = 0b0; 31885let Inst{31-21} = 0b00011101000; 31886let hasNewValue = 1; 31887let opNewValue = 0; 31888let isCVI = 1; 31889let hasUnaryRestriction = 1; 31890let DecoderNamespace = "EXT_mmvec"; 31891} 31892def V6_vasrw : HInst< 31893(outs HvxVR:$Vd32), 31894(ins HvxVR:$Vu32, IntRegs:$Rt32), 31895"$Vd32.w = vasr($Vu32.w,$Rt32)", 31896tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> { 31897let Inst{7-5} = 0b101; 31898let Inst{13-13} = 0b0; 31899let Inst{31-21} = 0b00011001011; 31900let hasNewValue = 1; 31901let opNewValue = 0; 31902let isCVI = 1; 31903let DecoderNamespace = "EXT_mmvec"; 31904} 31905def V6_vasrw_acc : HInst< 31906(outs HvxVR:$Vx32), 31907(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 31908"$Vx32.w += vasr($Vu32.w,$Rt32)", 31909tc_309dbb4f, TypeCVI_VS>, Enc_5138b3, Requires<[UseHVXV60]> { 31910let Inst{7-5} = 0b101; 31911let Inst{13-13} = 0b1; 31912let Inst{31-21} = 0b00011001011; 31913let hasNewValue = 1; 31914let opNewValue = 0; 31915let isAccumulator = 1; 31916let isCVI = 1; 31917let DecoderNamespace = "EXT_mmvec"; 31918let Constraints = "$Vx32 = $Vx32in"; 31919} 31920def V6_vasrw_acc_alt : HInst< 31921(outs HvxVR:$Vx32), 31922(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 31923"$Vx32 += vasrw($Vu32,$Rt32)", 31924PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31925let hasNewValue = 1; 31926let opNewValue = 0; 31927let isAccumulator = 1; 31928let isCVI = 1; 31929let isPseudo = 1; 31930let isCodeGenOnly = 1; 31931let DecoderNamespace = "EXT_mmvec"; 31932let Constraints = "$Vx32 = $Vx32in"; 31933} 31934def V6_vasrw_alt : HInst< 31935(outs HvxVR:$Vd32), 31936(ins HvxVR:$Vu32, IntRegs:$Rt32), 31937"$Vd32 = vasrw($Vu32,$Rt32)", 31938PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 31939let hasNewValue = 1; 31940let opNewValue = 0; 31941let isCVI = 1; 31942let isPseudo = 1; 31943let isCodeGenOnly = 1; 31944let DecoderNamespace = "EXT_mmvec"; 31945} 31946def V6_vasrwh : HInst< 31947(outs HvxVR:$Vd32), 31948(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 31949"$Vd32.h = vasr($Vu32.w,$Vv32.w,$Rt8)", 31950tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> { 31951let Inst{7-5} = 0b010; 31952let Inst{13-13} = 0b0; 31953let Inst{31-24} = 0b00011011; 31954let hasNewValue = 1; 31955let opNewValue = 0; 31956let isCVI = 1; 31957let DecoderNamespace = "EXT_mmvec"; 31958} 31959def V6_vasrwhrndsat : HInst< 31960(outs HvxVR:$Vd32), 31961(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 31962"$Vd32.h = vasr($Vu32.w,$Vv32.w,$Rt8):rnd:sat", 31963tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> { 31964let Inst{7-5} = 0b100; 31965let Inst{13-13} = 0b0; 31966let Inst{31-24} = 0b00011011; 31967let hasNewValue = 1; 31968let opNewValue = 0; 31969let isCVI = 1; 31970let DecoderNamespace = "EXT_mmvec"; 31971} 31972def V6_vasrwhsat : HInst< 31973(outs HvxVR:$Vd32), 31974(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 31975"$Vd32.h = vasr($Vu32.w,$Vv32.w,$Rt8):sat", 31976tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> { 31977let Inst{7-5} = 0b011; 31978let Inst{13-13} = 0b0; 31979let Inst{31-24} = 0b00011011; 31980let hasNewValue = 1; 31981let opNewValue = 0; 31982let isCVI = 1; 31983let DecoderNamespace = "EXT_mmvec"; 31984} 31985def V6_vasrwuhrndsat : HInst< 31986(outs HvxVR:$Vd32), 31987(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 31988"$Vd32.uh = vasr($Vu32.w,$Vv32.w,$Rt8):rnd:sat", 31989tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV62]> { 31990let Inst{7-5} = 0b010; 31991let Inst{13-13} = 0b0; 31992let Inst{31-24} = 0b00011000; 31993let hasNewValue = 1; 31994let opNewValue = 0; 31995let isCVI = 1; 31996let DecoderNamespace = "EXT_mmvec"; 31997} 31998def V6_vasrwuhsat : HInst< 31999(outs HvxVR:$Vd32), 32000(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 32001"$Vd32.uh = vasr($Vu32.w,$Vv32.w,$Rt8):sat", 32002tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> { 32003let Inst{7-5} = 0b101; 32004let Inst{13-13} = 0b0; 32005let Inst{31-24} = 0b00011011; 32006let hasNewValue = 1; 32007let opNewValue = 0; 32008let isCVI = 1; 32009let DecoderNamespace = "EXT_mmvec"; 32010} 32011def V6_vasrwv : HInst< 32012(outs HvxVR:$Vd32), 32013(ins HvxVR:$Vu32, HvxVR:$Vv32), 32014"$Vd32.w = vasr($Vu32.w,$Vv32.w)", 32015tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> { 32016let Inst{7-5} = 0b000; 32017let Inst{13-13} = 0b0; 32018let Inst{31-21} = 0b00011111101; 32019let hasNewValue = 1; 32020let opNewValue = 0; 32021let isCVI = 1; 32022let DecoderNamespace = "EXT_mmvec"; 32023} 32024def V6_vasrwv_alt : HInst< 32025(outs HvxVR:$Vd32), 32026(ins HvxVR:$Vu32, HvxVR:$Vv32), 32027"$Vd32 = vasrw($Vu32,$Vv32)", 32028PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32029let hasNewValue = 1; 32030let opNewValue = 0; 32031let isCVI = 1; 32032let isPseudo = 1; 32033let isCodeGenOnly = 1; 32034let DecoderNamespace = "EXT_mmvec"; 32035} 32036def V6_vassign : HInst< 32037(outs HvxVR:$Vd32), 32038(ins HvxVR:$Vu32), 32039"$Vd32 = $Vu32", 32040tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> { 32041let Inst{7-5} = 0b111; 32042let Inst{13-13} = 0b1; 32043let Inst{31-16} = 0b0001111000000011; 32044let hasNewValue = 1; 32045let opNewValue = 0; 32046let isCVI = 1; 32047let isHVXALU = 1; 32048let DecoderNamespace = "EXT_mmvec"; 32049} 32050def V6_vassign_fp : HInst< 32051(outs HvxVR:$Vd32), 32052(ins HvxVR:$Vu32), 32053"$Vd32.w = vfmv($Vu32.w)", 32054tc_5cdf8c84, TypeCVI_VX_LATE>, Enc_e7581c, Requires<[UseHVXV68,UseHVXIEEEFP]> { 32055let Inst{7-5} = 0b001; 32056let Inst{13-13} = 0b1; 32057let Inst{31-16} = 0b0001111000000110; 32058let hasNewValue = 1; 32059let opNewValue = 0; 32060let isCVI = 1; 32061let DecoderNamespace = "EXT_mmvec"; 32062} 32063def V6_vassign_tmp : HInst< 32064(outs HvxVR:$Vd32), 32065(ins HvxVR:$Vu32), 32066"$Vd32.tmp = $Vu32", 32067tc_e2fdd6e6, TypeCVI_VX>, Enc_e7581c, Requires<[UseHVXV69]> { 32068let Inst{7-5} = 0b110; 32069let Inst{13-13} = 0b0; 32070let Inst{31-16} = 0b0001111000000001; 32071let hasNewValue = 1; 32072let opNewValue = 0; 32073let isCVI = 1; 32074let hasHvxTmp = 1; 32075let DecoderNamespace = "EXT_mmvec"; 32076} 32077def V6_vassignp : HInst< 32078(outs HvxWR:$Vdd32), 32079(ins HvxWR:$Vuu32), 32080"$Vdd32 = $Vuu32", 32081CVI_VA, TypeCVI_VA_DV>, Requires<[UseHVXV60]> { 32082let hasNewValue = 1; 32083let opNewValue = 0; 32084let isCVI = 1; 32085let isPseudo = 1; 32086let DecoderNamespace = "EXT_mmvec"; 32087} 32088def V6_vavgb : HInst< 32089(outs HvxVR:$Vd32), 32090(ins HvxVR:$Vu32, HvxVR:$Vv32), 32091"$Vd32.b = vavg($Vu32.b,$Vv32.b)", 32092tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> { 32093let Inst{7-5} = 0b100; 32094let Inst{13-13} = 0b1; 32095let Inst{31-21} = 0b00011111000; 32096let hasNewValue = 1; 32097let opNewValue = 0; 32098let isCVI = 1; 32099let isHVXALU = 1; 32100let isHVXALU2SRC = 1; 32101let DecoderNamespace = "EXT_mmvec"; 32102} 32103def V6_vavgb_alt : HInst< 32104(outs HvxVR:$Vd32), 32105(ins HvxVR:$Vu32, HvxVR:$Vv32), 32106"$Vd32 = vavgb($Vu32,$Vv32)", 32107PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 32108let hasNewValue = 1; 32109let opNewValue = 0; 32110let isCVI = 1; 32111let isPseudo = 1; 32112let isCodeGenOnly = 1; 32113let DecoderNamespace = "EXT_mmvec"; 32114} 32115def V6_vavgbrnd : HInst< 32116(outs HvxVR:$Vd32), 32117(ins HvxVR:$Vu32, HvxVR:$Vv32), 32118"$Vd32.b = vavg($Vu32.b,$Vv32.b):rnd", 32119tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> { 32120let Inst{7-5} = 0b101; 32121let Inst{13-13} = 0b1; 32122let Inst{31-21} = 0b00011111000; 32123let hasNewValue = 1; 32124let opNewValue = 0; 32125let isCVI = 1; 32126let isHVXALU = 1; 32127let isHVXALU2SRC = 1; 32128let DecoderNamespace = "EXT_mmvec"; 32129} 32130def V6_vavgbrnd_alt : HInst< 32131(outs HvxVR:$Vd32), 32132(ins HvxVR:$Vu32, HvxVR:$Vv32), 32133"$Vd32 = vavgb($Vu32,$Vv32):rnd", 32134PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 32135let hasNewValue = 1; 32136let opNewValue = 0; 32137let isCVI = 1; 32138let isPseudo = 1; 32139let isCodeGenOnly = 1; 32140let DecoderNamespace = "EXT_mmvec"; 32141} 32142def V6_vavgh : HInst< 32143(outs HvxVR:$Vd32), 32144(ins HvxVR:$Vu32, HvxVR:$Vv32), 32145"$Vd32.h = vavg($Vu32.h,$Vv32.h)", 32146tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 32147let Inst{7-5} = 0b110; 32148let Inst{13-13} = 0b0; 32149let Inst{31-21} = 0b00011100110; 32150let hasNewValue = 1; 32151let opNewValue = 0; 32152let isCVI = 1; 32153let isHVXALU = 1; 32154let isHVXALU2SRC = 1; 32155let DecoderNamespace = "EXT_mmvec"; 32156} 32157def V6_vavgh_alt : HInst< 32158(outs HvxVR:$Vd32), 32159(ins HvxVR:$Vu32, HvxVR:$Vv32), 32160"$Vd32 = vavgh($Vu32,$Vv32)", 32161PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32162let hasNewValue = 1; 32163let opNewValue = 0; 32164let isCVI = 1; 32165let isPseudo = 1; 32166let isCodeGenOnly = 1; 32167let DecoderNamespace = "EXT_mmvec"; 32168} 32169def V6_vavghrnd : HInst< 32170(outs HvxVR:$Vd32), 32171(ins HvxVR:$Vu32, HvxVR:$Vv32), 32172"$Vd32.h = vavg($Vu32.h,$Vv32.h):rnd", 32173tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 32174let Inst{7-5} = 0b101; 32175let Inst{13-13} = 0b0; 32176let Inst{31-21} = 0b00011100111; 32177let hasNewValue = 1; 32178let opNewValue = 0; 32179let isCVI = 1; 32180let isHVXALU = 1; 32181let isHVXALU2SRC = 1; 32182let DecoderNamespace = "EXT_mmvec"; 32183} 32184def V6_vavghrnd_alt : HInst< 32185(outs HvxVR:$Vd32), 32186(ins HvxVR:$Vu32, HvxVR:$Vv32), 32187"$Vd32 = vavgh($Vu32,$Vv32):rnd", 32188PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32189let hasNewValue = 1; 32190let opNewValue = 0; 32191let isCVI = 1; 32192let isPseudo = 1; 32193let isCodeGenOnly = 1; 32194let DecoderNamespace = "EXT_mmvec"; 32195} 32196def V6_vavgub : HInst< 32197(outs HvxVR:$Vd32), 32198(ins HvxVR:$Vu32, HvxVR:$Vv32), 32199"$Vd32.ub = vavg($Vu32.ub,$Vv32.ub)", 32200tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 32201let Inst{7-5} = 0b100; 32202let Inst{13-13} = 0b0; 32203let Inst{31-21} = 0b00011100110; 32204let hasNewValue = 1; 32205let opNewValue = 0; 32206let isCVI = 1; 32207let isHVXALU = 1; 32208let isHVXALU2SRC = 1; 32209let DecoderNamespace = "EXT_mmvec"; 32210} 32211def V6_vavgub_alt : HInst< 32212(outs HvxVR:$Vd32), 32213(ins HvxVR:$Vu32, HvxVR:$Vv32), 32214"$Vd32 = vavgub($Vu32,$Vv32)", 32215PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32216let hasNewValue = 1; 32217let opNewValue = 0; 32218let isCVI = 1; 32219let isPseudo = 1; 32220let isCodeGenOnly = 1; 32221let DecoderNamespace = "EXT_mmvec"; 32222} 32223def V6_vavgubrnd : HInst< 32224(outs HvxVR:$Vd32), 32225(ins HvxVR:$Vu32, HvxVR:$Vv32), 32226"$Vd32.ub = vavg($Vu32.ub,$Vv32.ub):rnd", 32227tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 32228let Inst{7-5} = 0b011; 32229let Inst{13-13} = 0b0; 32230let Inst{31-21} = 0b00011100111; 32231let hasNewValue = 1; 32232let opNewValue = 0; 32233let isCVI = 1; 32234let isHVXALU = 1; 32235let isHVXALU2SRC = 1; 32236let DecoderNamespace = "EXT_mmvec"; 32237} 32238def V6_vavgubrnd_alt : HInst< 32239(outs HvxVR:$Vd32), 32240(ins HvxVR:$Vu32, HvxVR:$Vv32), 32241"$Vd32 = vavgub($Vu32,$Vv32):rnd", 32242PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32243let hasNewValue = 1; 32244let opNewValue = 0; 32245let isCVI = 1; 32246let isPseudo = 1; 32247let isCodeGenOnly = 1; 32248let DecoderNamespace = "EXT_mmvec"; 32249} 32250def V6_vavguh : HInst< 32251(outs HvxVR:$Vd32), 32252(ins HvxVR:$Vu32, HvxVR:$Vv32), 32253"$Vd32.uh = vavg($Vu32.uh,$Vv32.uh)", 32254tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 32255let Inst{7-5} = 0b101; 32256let Inst{13-13} = 0b0; 32257let Inst{31-21} = 0b00011100110; 32258let hasNewValue = 1; 32259let opNewValue = 0; 32260let isCVI = 1; 32261let isHVXALU = 1; 32262let isHVXALU2SRC = 1; 32263let DecoderNamespace = "EXT_mmvec"; 32264} 32265def V6_vavguh_alt : HInst< 32266(outs HvxVR:$Vd32), 32267(ins HvxVR:$Vu32, HvxVR:$Vv32), 32268"$Vd32 = vavguh($Vu32,$Vv32)", 32269PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32270let hasNewValue = 1; 32271let opNewValue = 0; 32272let isCVI = 1; 32273let isPseudo = 1; 32274let isCodeGenOnly = 1; 32275let DecoderNamespace = "EXT_mmvec"; 32276} 32277def V6_vavguhrnd : HInst< 32278(outs HvxVR:$Vd32), 32279(ins HvxVR:$Vu32, HvxVR:$Vv32), 32280"$Vd32.uh = vavg($Vu32.uh,$Vv32.uh):rnd", 32281tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 32282let Inst{7-5} = 0b100; 32283let Inst{13-13} = 0b0; 32284let Inst{31-21} = 0b00011100111; 32285let hasNewValue = 1; 32286let opNewValue = 0; 32287let isCVI = 1; 32288let isHVXALU = 1; 32289let isHVXALU2SRC = 1; 32290let DecoderNamespace = "EXT_mmvec"; 32291} 32292def V6_vavguhrnd_alt : HInst< 32293(outs HvxVR:$Vd32), 32294(ins HvxVR:$Vu32, HvxVR:$Vv32), 32295"$Vd32 = vavguh($Vu32,$Vv32):rnd", 32296PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32297let hasNewValue = 1; 32298let opNewValue = 0; 32299let isCVI = 1; 32300let isPseudo = 1; 32301let isCodeGenOnly = 1; 32302let DecoderNamespace = "EXT_mmvec"; 32303} 32304def V6_vavguw : HInst< 32305(outs HvxVR:$Vd32), 32306(ins HvxVR:$Vu32, HvxVR:$Vv32), 32307"$Vd32.uw = vavg($Vu32.uw,$Vv32.uw)", 32308tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> { 32309let Inst{7-5} = 0b010; 32310let Inst{13-13} = 0b1; 32311let Inst{31-21} = 0b00011111000; 32312let hasNewValue = 1; 32313let opNewValue = 0; 32314let isCVI = 1; 32315let isHVXALU = 1; 32316let isHVXALU2SRC = 1; 32317let DecoderNamespace = "EXT_mmvec"; 32318} 32319def V6_vavguw_alt : HInst< 32320(outs HvxVR:$Vd32), 32321(ins HvxVR:$Vu32, HvxVR:$Vv32), 32322"$Vd32 = vavguw($Vu32,$Vv32)", 32323PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 32324let hasNewValue = 1; 32325let opNewValue = 0; 32326let isCVI = 1; 32327let isPseudo = 1; 32328let isCodeGenOnly = 1; 32329let DecoderNamespace = "EXT_mmvec"; 32330} 32331def V6_vavguwrnd : HInst< 32332(outs HvxVR:$Vd32), 32333(ins HvxVR:$Vu32, HvxVR:$Vv32), 32334"$Vd32.uw = vavg($Vu32.uw,$Vv32.uw):rnd", 32335tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> { 32336let Inst{7-5} = 0b011; 32337let Inst{13-13} = 0b1; 32338let Inst{31-21} = 0b00011111000; 32339let hasNewValue = 1; 32340let opNewValue = 0; 32341let isCVI = 1; 32342let isHVXALU = 1; 32343let isHVXALU2SRC = 1; 32344let DecoderNamespace = "EXT_mmvec"; 32345} 32346def V6_vavguwrnd_alt : HInst< 32347(outs HvxVR:$Vd32), 32348(ins HvxVR:$Vu32, HvxVR:$Vv32), 32349"$Vd32 = vavguw($Vu32,$Vv32):rnd", 32350PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 32351let hasNewValue = 1; 32352let opNewValue = 0; 32353let isCVI = 1; 32354let isPseudo = 1; 32355let isCodeGenOnly = 1; 32356let DecoderNamespace = "EXT_mmvec"; 32357} 32358def V6_vavgw : HInst< 32359(outs HvxVR:$Vd32), 32360(ins HvxVR:$Vu32, HvxVR:$Vv32), 32361"$Vd32.w = vavg($Vu32.w,$Vv32.w)", 32362tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 32363let Inst{7-5} = 0b111; 32364let Inst{13-13} = 0b0; 32365let Inst{31-21} = 0b00011100110; 32366let hasNewValue = 1; 32367let opNewValue = 0; 32368let isCVI = 1; 32369let isHVXALU = 1; 32370let isHVXALU2SRC = 1; 32371let DecoderNamespace = "EXT_mmvec"; 32372} 32373def V6_vavgw_alt : HInst< 32374(outs HvxVR:$Vd32), 32375(ins HvxVR:$Vu32, HvxVR:$Vv32), 32376"$Vd32 = vavgw($Vu32,$Vv32)", 32377PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32378let hasNewValue = 1; 32379let opNewValue = 0; 32380let isCVI = 1; 32381let isPseudo = 1; 32382let isCodeGenOnly = 1; 32383let DecoderNamespace = "EXT_mmvec"; 32384} 32385def V6_vavgwrnd : HInst< 32386(outs HvxVR:$Vd32), 32387(ins HvxVR:$Vu32, HvxVR:$Vv32), 32388"$Vd32.w = vavg($Vu32.w,$Vv32.w):rnd", 32389tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 32390let Inst{7-5} = 0b110; 32391let Inst{13-13} = 0b0; 32392let Inst{31-21} = 0b00011100111; 32393let hasNewValue = 1; 32394let opNewValue = 0; 32395let isCVI = 1; 32396let isHVXALU = 1; 32397let isHVXALU2SRC = 1; 32398let DecoderNamespace = "EXT_mmvec"; 32399} 32400def V6_vavgwrnd_alt : HInst< 32401(outs HvxVR:$Vd32), 32402(ins HvxVR:$Vu32, HvxVR:$Vv32), 32403"$Vd32 = vavgw($Vu32,$Vv32):rnd", 32404PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32405let hasNewValue = 1; 32406let opNewValue = 0; 32407let isCVI = 1; 32408let isPseudo = 1; 32409let isCodeGenOnly = 1; 32410let DecoderNamespace = "EXT_mmvec"; 32411} 32412def V6_vccombine : HInst< 32413(outs HvxWR:$Vdd32), 32414(ins PredRegs:$Ps4, HvxVR:$Vu32, HvxVR:$Vv32), 32415"if ($Ps4) $Vdd32 = vcombine($Vu32,$Vv32)", 32416tc_af25efd9, TypeCVI_VA_DV>, Enc_8c2412, Requires<[UseHVXV60]> { 32417let Inst{7-7} = 0b0; 32418let Inst{13-13} = 0b0; 32419let Inst{31-21} = 0b00011010011; 32420let isPredicated = 1; 32421let hasNewValue = 1; 32422let opNewValue = 0; 32423let isCVI = 1; 32424let DecoderNamespace = "EXT_mmvec"; 32425} 32426def V6_vcl0h : HInst< 32427(outs HvxVR:$Vd32), 32428(ins HvxVR:$Vu32), 32429"$Vd32.uh = vcl0($Vu32.uh)", 32430tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> { 32431let Inst{7-5} = 0b111; 32432let Inst{13-13} = 0b0; 32433let Inst{31-16} = 0b0001111000000010; 32434let hasNewValue = 1; 32435let opNewValue = 0; 32436let isCVI = 1; 32437let DecoderNamespace = "EXT_mmvec"; 32438} 32439def V6_vcl0h_alt : HInst< 32440(outs HvxVR:$Vd32), 32441(ins HvxVR:$Vu32), 32442"$Vd32 = vcl0h($Vu32)", 32443PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32444let hasNewValue = 1; 32445let opNewValue = 0; 32446let isCVI = 1; 32447let isPseudo = 1; 32448let isCodeGenOnly = 1; 32449let DecoderNamespace = "EXT_mmvec"; 32450} 32451def V6_vcl0w : HInst< 32452(outs HvxVR:$Vd32), 32453(ins HvxVR:$Vu32), 32454"$Vd32.uw = vcl0($Vu32.uw)", 32455tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> { 32456let Inst{7-5} = 0b101; 32457let Inst{13-13} = 0b0; 32458let Inst{31-16} = 0b0001111000000010; 32459let hasNewValue = 1; 32460let opNewValue = 0; 32461let isCVI = 1; 32462let DecoderNamespace = "EXT_mmvec"; 32463} 32464def V6_vcl0w_alt : HInst< 32465(outs HvxVR:$Vd32), 32466(ins HvxVR:$Vu32), 32467"$Vd32 = vcl0w($Vu32)", 32468PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32469let hasNewValue = 1; 32470let opNewValue = 0; 32471let isCVI = 1; 32472let isPseudo = 1; 32473let isCodeGenOnly = 1; 32474let DecoderNamespace = "EXT_mmvec"; 32475} 32476def V6_vcmov : HInst< 32477(outs HvxVR:$Vd32), 32478(ins PredRegs:$Ps4, HvxVR:$Vu32), 32479"if ($Ps4) $Vd32 = $Vu32", 32480tc_3aacf4a8, TypeCVI_VA>, Enc_770858, Requires<[UseHVXV60]> { 32481let Inst{7-7} = 0b0; 32482let Inst{13-13} = 0b0; 32483let Inst{31-16} = 0b0001101000000000; 32484let isPredicated = 1; 32485let hasNewValue = 1; 32486let opNewValue = 0; 32487let isCVI = 1; 32488let isHVXALU = 1; 32489let DecoderNamespace = "EXT_mmvec"; 32490} 32491def V6_vcombine : HInst< 32492(outs HvxWR:$Vdd32), 32493(ins HvxVR:$Vu32, HvxVR:$Vv32), 32494"$Vdd32 = vcombine($Vu32,$Vv32)", 32495tc_db5555f3, TypeCVI_VA_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 32496let Inst{7-5} = 0b111; 32497let Inst{13-13} = 0b0; 32498let Inst{31-21} = 0b00011111010; 32499let hasNewValue = 1; 32500let opNewValue = 0; 32501let isCVI = 1; 32502let isRegSequence = 1; 32503let DecoderNamespace = "EXT_mmvec"; 32504} 32505def V6_vcombine_tmp : HInst< 32506(outs HvxWR:$Vdd32), 32507(ins HvxVR:$Vu32, HvxVR:$Vv32), 32508"$Vdd32.tmp = vcombine($Vu32,$Vv32)", 32509tc_531b383c, TypeCVI_VX>, Enc_71bb9b, Requires<[UseHVXV69]> { 32510let Inst{7-5} = 0b111; 32511let Inst{13-13} = 0b0; 32512let Inst{31-21} = 0b00011110101; 32513let hasNewValue = 1; 32514let opNewValue = 0; 32515let isCVI = 1; 32516let hasHvxTmp = 1; 32517let DecoderNamespace = "EXT_mmvec"; 32518} 32519def V6_vconv_h_hf : HInst< 32520(outs HvxVR:$Vd32), 32521(ins HvxVR:$Vu32), 32522"$Vd32.h = $Vu32.hf", 32523tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV73]> { 32524let Inst{7-5} = 0b010; 32525let Inst{13-13} = 0b1; 32526let Inst{31-16} = 0b0001111000000101; 32527let hasNewValue = 1; 32528let opNewValue = 0; 32529let isCVI = 1; 32530let DecoderNamespace = "EXT_mmvec"; 32531} 32532def V6_vconv_hf_h : HInst< 32533(outs HvxVR:$Vd32), 32534(ins HvxVR:$Vu32), 32535"$Vd32.hf = $Vu32.h", 32536tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV73]> { 32537let Inst{7-5} = 0b100; 32538let Inst{13-13} = 0b1; 32539let Inst{31-16} = 0b0001111000000101; 32540let hasNewValue = 1; 32541let opNewValue = 0; 32542let isCVI = 1; 32543let DecoderNamespace = "EXT_mmvec"; 32544} 32545def V6_vconv_hf_qf16 : HInst< 32546(outs HvxVR:$Vd32), 32547(ins HvxVR:$Vu32), 32548"$Vd32.hf = $Vu32.qf16", 32549tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV68,UseHVXQFloat]> { 32550let Inst{7-5} = 0b011; 32551let Inst{13-13} = 0b1; 32552let Inst{31-16} = 0b0001111000000100; 32553let hasNewValue = 1; 32554let opNewValue = 0; 32555let isCVI = 1; 32556let DecoderNamespace = "EXT_mmvec"; 32557} 32558def V6_vconv_hf_qf32 : HInst< 32559(outs HvxVR:$Vd32), 32560(ins HvxWR:$Vuu32), 32561"$Vd32.hf = $Vuu32.qf32", 32562tc_51d0ecc3, TypeCVI_VS>, Enc_a33d04, Requires<[UseHVXV68,UseHVXQFloat]> { 32563let Inst{7-5} = 0b110; 32564let Inst{13-13} = 0b1; 32565let Inst{31-16} = 0b0001111000000100; 32566let hasNewValue = 1; 32567let opNewValue = 0; 32568let isCVI = 1; 32569let DecoderNamespace = "EXT_mmvec"; 32570} 32571def V6_vconv_sf_qf32 : HInst< 32572(outs HvxVR:$Vd32), 32573(ins HvxVR:$Vu32), 32574"$Vd32.sf = $Vu32.qf32", 32575tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV68,UseHVXQFloat]> { 32576let Inst{7-5} = 0b000; 32577let Inst{13-13} = 0b1; 32578let Inst{31-16} = 0b0001111000000100; 32579let hasNewValue = 1; 32580let opNewValue = 0; 32581let isCVI = 1; 32582let DecoderNamespace = "EXT_mmvec"; 32583} 32584def V6_vconv_sf_w : HInst< 32585(outs HvxVR:$Vd32), 32586(ins HvxVR:$Vu32), 32587"$Vd32.sf = $Vu32.w", 32588tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV73]> { 32589let Inst{7-5} = 0b011; 32590let Inst{13-13} = 0b1; 32591let Inst{31-16} = 0b0001111000000101; 32592let hasNewValue = 1; 32593let opNewValue = 0; 32594let isCVI = 1; 32595let DecoderNamespace = "EXT_mmvec"; 32596} 32597def V6_vconv_w_sf : HInst< 32598(outs HvxVR:$Vd32), 32599(ins HvxVR:$Vu32), 32600"$Vd32.w = $Vu32.sf", 32601tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV73]> { 32602let Inst{7-5} = 0b001; 32603let Inst{13-13} = 0b1; 32604let Inst{31-16} = 0b0001111000000101; 32605let hasNewValue = 1; 32606let opNewValue = 0; 32607let isCVI = 1; 32608let DecoderNamespace = "EXT_mmvec"; 32609} 32610def V6_vcvt_b_hf : HInst< 32611(outs HvxVR:$Vd32), 32612(ins HvxVR:$Vu32, HvxVR:$Vv32), 32613"$Vd32.b = vcvt($Vu32.hf,$Vv32.hf)", 32614tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> { 32615let Inst{7-5} = 0b110; 32616let Inst{13-13} = 0b1; 32617let Inst{31-21} = 0b00011111110; 32618let hasNewValue = 1; 32619let opNewValue = 0; 32620let isCVI = 1; 32621let DecoderNamespace = "EXT_mmvec"; 32622} 32623def V6_vcvt_bf_sf : HInst< 32624(outs HvxVR:$Vd32), 32625(ins HvxVR:$Vu32, HvxVR:$Vv32), 32626"$Vd32.bf = vcvt($Vu32.sf,$Vv32.sf)", 32627tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV73,UseHVXIEEEFP]> { 32628let Inst{7-5} = 0b011; 32629let Inst{13-13} = 0b1; 32630let Inst{31-21} = 0b00011101010; 32631let hasNewValue = 1; 32632let opNewValue = 0; 32633let isCVI = 1; 32634let DecoderNamespace = "EXT_mmvec"; 32635} 32636def V6_vcvt_h_hf : HInst< 32637(outs HvxVR:$Vd32), 32638(ins HvxVR:$Vu32), 32639"$Vd32.h = vcvt($Vu32.hf)", 32640tc_3c8c15d0, TypeCVI_VX>, Enc_e7581c, Requires<[UseHVXV68,UseHVXIEEEFP]> { 32641let Inst{7-5} = 0b000; 32642let Inst{13-13} = 0b1; 32643let Inst{31-16} = 0b0001111000000110; 32644let hasNewValue = 1; 32645let opNewValue = 0; 32646let isCVI = 1; 32647let DecoderNamespace = "EXT_mmvec"; 32648} 32649def V6_vcvt_hf_b : HInst< 32650(outs HvxWR:$Vdd32), 32651(ins HvxVR:$Vu32), 32652"$Vdd32.hf = vcvt($Vu32.b)", 32653tc_0afc8be9, TypeCVI_VX_DV>, Enc_dd766a, Requires<[UseHVXV68,UseHVXIEEEFP]> { 32654let Inst{7-5} = 0b010; 32655let Inst{13-13} = 0b1; 32656let Inst{31-16} = 0b0001111000000100; 32657let hasNewValue = 1; 32658let opNewValue = 0; 32659let isCVI = 1; 32660let DecoderNamespace = "EXT_mmvec"; 32661} 32662def V6_vcvt_hf_h : HInst< 32663(outs HvxVR:$Vd32), 32664(ins HvxVR:$Vu32), 32665"$Vd32.hf = vcvt($Vu32.h)", 32666tc_3c8c15d0, TypeCVI_VX>, Enc_e7581c, Requires<[UseHVXV68,UseHVXIEEEFP]> { 32667let Inst{7-5} = 0b111; 32668let Inst{13-13} = 0b1; 32669let Inst{31-16} = 0b0001111000000100; 32670let hasNewValue = 1; 32671let opNewValue = 0; 32672let isCVI = 1; 32673let DecoderNamespace = "EXT_mmvec"; 32674} 32675def V6_vcvt_hf_sf : HInst< 32676(outs HvxVR:$Vd32), 32677(ins HvxVR:$Vu32, HvxVR:$Vv32), 32678"$Vd32.hf = vcvt($Vu32.sf,$Vv32.sf)", 32679tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> { 32680let Inst{7-5} = 0b001; 32681let Inst{13-13} = 0b1; 32682let Inst{31-21} = 0b00011111011; 32683let hasNewValue = 1; 32684let opNewValue = 0; 32685let isCVI = 1; 32686let DecoderNamespace = "EXT_mmvec"; 32687} 32688def V6_vcvt_hf_ub : HInst< 32689(outs HvxWR:$Vdd32), 32690(ins HvxVR:$Vu32), 32691"$Vdd32.hf = vcvt($Vu32.ub)", 32692tc_0afc8be9, TypeCVI_VX_DV>, Enc_dd766a, Requires<[UseHVXV68,UseHVXIEEEFP]> { 32693let Inst{7-5} = 0b001; 32694let Inst{13-13} = 0b1; 32695let Inst{31-16} = 0b0001111000000100; 32696let hasNewValue = 1; 32697let opNewValue = 0; 32698let isCVI = 1; 32699let DecoderNamespace = "EXT_mmvec"; 32700} 32701def V6_vcvt_hf_uh : HInst< 32702(outs HvxVR:$Vd32), 32703(ins HvxVR:$Vu32), 32704"$Vd32.hf = vcvt($Vu32.uh)", 32705tc_3c8c15d0, TypeCVI_VX>, Enc_e7581c, Requires<[UseHVXV68,UseHVXIEEEFP]> { 32706let Inst{7-5} = 0b101; 32707let Inst{13-13} = 0b1; 32708let Inst{31-16} = 0b0001111000000100; 32709let hasNewValue = 1; 32710let opNewValue = 0; 32711let isCVI = 1; 32712let DecoderNamespace = "EXT_mmvec"; 32713} 32714def V6_vcvt_sf_hf : HInst< 32715(outs HvxWR:$Vdd32), 32716(ins HvxVR:$Vu32), 32717"$Vdd32.sf = vcvt($Vu32.hf)", 32718tc_0afc8be9, TypeCVI_VX_DV>, Enc_dd766a, Requires<[UseHVXV68,UseHVXIEEEFP]> { 32719let Inst{7-5} = 0b100; 32720let Inst{13-13} = 0b1; 32721let Inst{31-16} = 0b0001111000000100; 32722let hasNewValue = 1; 32723let opNewValue = 0; 32724let isCVI = 1; 32725let DecoderNamespace = "EXT_mmvec"; 32726} 32727def V6_vcvt_ub_hf : HInst< 32728(outs HvxVR:$Vd32), 32729(ins HvxVR:$Vu32, HvxVR:$Vv32), 32730"$Vd32.ub = vcvt($Vu32.hf,$Vv32.hf)", 32731tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> { 32732let Inst{7-5} = 0b101; 32733let Inst{13-13} = 0b1; 32734let Inst{31-21} = 0b00011111110; 32735let hasNewValue = 1; 32736let opNewValue = 0; 32737let isCVI = 1; 32738let DecoderNamespace = "EXT_mmvec"; 32739} 32740def V6_vcvt_uh_hf : HInst< 32741(outs HvxVR:$Vd32), 32742(ins HvxVR:$Vu32), 32743"$Vd32.uh = vcvt($Vu32.hf)", 32744tc_3c8c15d0, TypeCVI_VX>, Enc_e7581c, Requires<[UseHVXV68,UseHVXIEEEFP]> { 32745let Inst{7-5} = 0b000; 32746let Inst{13-13} = 0b1; 32747let Inst{31-16} = 0b0001111000000101; 32748let hasNewValue = 1; 32749let opNewValue = 0; 32750let isCVI = 1; 32751let DecoderNamespace = "EXT_mmvec"; 32752} 32753def V6_vd0 : HInst< 32754(outs HvxVR:$Vd32), 32755(ins), 32756"$Vd32 = #0", 32757CVI_VA, TypeCVI_VA>, Requires<[UseHVXV60]> { 32758let hasNewValue = 1; 32759let opNewValue = 0; 32760let isCVI = 1; 32761let isPseudo = 1; 32762let isCodeGenOnly = 1; 32763let DecoderNamespace = "EXT_mmvec"; 32764} 32765def V6_vdd0 : HInst< 32766(outs HvxWR:$Vdd32), 32767(ins), 32768"$Vdd32 = #0", 32769tc_718b5c53, TypeMAPPING>, Requires<[UseHVXV65]> { 32770let hasNewValue = 1; 32771let opNewValue = 0; 32772let isCVI = 1; 32773let isPseudo = 1; 32774let isCodeGenOnly = 1; 32775let DecoderNamespace = "EXT_mmvec"; 32776} 32777def V6_vdeal : HInst< 32778(outs HvxVR:$Vy32, HvxVR:$Vx32), 32779(ins HvxVR:$Vy32in, HvxVR:$Vx32in, IntRegs:$Rt32), 32780"vdeal($Vy32,$Vx32,$Rt32)", 32781tc_561aaa58, TypeCVI_VP_VS>, Enc_989021, Requires<[UseHVXV60]> { 32782let Inst{7-5} = 0b010; 32783let Inst{13-13} = 0b1; 32784let Inst{31-21} = 0b00011001111; 32785let hasNewValue = 1; 32786let opNewValue = 0; 32787let hasNewValue2 = 1; 32788let opNewValue2 = 1; 32789let isCVI = 1; 32790let DecoderNamespace = "EXT_mmvec"; 32791let Constraints = "$Vy32 = $Vy32in, $Vx32 = $Vx32in"; 32792} 32793def V6_vdealb : HInst< 32794(outs HvxVR:$Vd32), 32795(ins HvxVR:$Vu32), 32796"$Vd32.b = vdeal($Vu32.b)", 32797tc_946013d8, TypeCVI_VP>, Enc_e7581c, Requires<[UseHVXV60]> { 32798let Inst{7-5} = 0b111; 32799let Inst{13-13} = 0b0; 32800let Inst{31-16} = 0b0001111000000000; 32801let hasNewValue = 1; 32802let opNewValue = 0; 32803let isCVI = 1; 32804let DecoderNamespace = "EXT_mmvec"; 32805} 32806def V6_vdealb4w : HInst< 32807(outs HvxVR:$Vd32), 32808(ins HvxVR:$Vu32, HvxVR:$Vv32), 32809"$Vd32.b = vdeale($Vu32.b,$Vv32.b)", 32810tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> { 32811let Inst{7-5} = 0b111; 32812let Inst{13-13} = 0b0; 32813let Inst{31-21} = 0b00011111001; 32814let hasNewValue = 1; 32815let opNewValue = 0; 32816let isCVI = 1; 32817let DecoderNamespace = "EXT_mmvec"; 32818} 32819def V6_vdealb4w_alt : HInst< 32820(outs HvxVR:$Vd32), 32821(ins HvxVR:$Vu32, HvxVR:$Vv32), 32822"$Vd32 = vdealb4w($Vu32,$Vv32)", 32823PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32824let hasNewValue = 1; 32825let opNewValue = 0; 32826let isCVI = 1; 32827let isPseudo = 1; 32828let isCodeGenOnly = 1; 32829let DecoderNamespace = "EXT_mmvec"; 32830} 32831def V6_vdealb_alt : HInst< 32832(outs HvxVR:$Vd32), 32833(ins HvxVR:$Vu32), 32834"$Vd32 = vdealb($Vu32)", 32835PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32836let hasNewValue = 1; 32837let opNewValue = 0; 32838let isCVI = 1; 32839let isPseudo = 1; 32840let isCodeGenOnly = 1; 32841let DecoderNamespace = "EXT_mmvec"; 32842} 32843def V6_vdealh : HInst< 32844(outs HvxVR:$Vd32), 32845(ins HvxVR:$Vu32), 32846"$Vd32.h = vdeal($Vu32.h)", 32847tc_946013d8, TypeCVI_VP>, Enc_e7581c, Requires<[UseHVXV60]> { 32848let Inst{7-5} = 0b110; 32849let Inst{13-13} = 0b0; 32850let Inst{31-16} = 0b0001111000000000; 32851let hasNewValue = 1; 32852let opNewValue = 0; 32853let isCVI = 1; 32854let DecoderNamespace = "EXT_mmvec"; 32855} 32856def V6_vdealh_alt : HInst< 32857(outs HvxVR:$Vd32), 32858(ins HvxVR:$Vu32), 32859"$Vd32 = vdealh($Vu32)", 32860PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32861let hasNewValue = 1; 32862let opNewValue = 0; 32863let isCVI = 1; 32864let isPseudo = 1; 32865let isCodeGenOnly = 1; 32866let DecoderNamespace = "EXT_mmvec"; 32867} 32868def V6_vdealvdd : HInst< 32869(outs HvxWR:$Vdd32), 32870(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 32871"$Vdd32 = vdeal($Vu32,$Vv32,$Rt8)", 32872tc_87adc037, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[UseHVXV60]> { 32873let Inst{7-5} = 0b100; 32874let Inst{13-13} = 0b1; 32875let Inst{31-24} = 0b00011011; 32876let hasNewValue = 1; 32877let opNewValue = 0; 32878let isCVI = 1; 32879let DecoderNamespace = "EXT_mmvec"; 32880} 32881def V6_vdelta : HInst< 32882(outs HvxVR:$Vd32), 32883(ins HvxVR:$Vu32, HvxVR:$Vv32), 32884"$Vd32 = vdelta($Vu32,$Vv32)", 32885tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> { 32886let Inst{7-5} = 0b001; 32887let Inst{13-13} = 0b0; 32888let Inst{31-21} = 0b00011111001; 32889let hasNewValue = 1; 32890let opNewValue = 0; 32891let isCVI = 1; 32892let DecoderNamespace = "EXT_mmvec"; 32893} 32894def V6_vdmpy_sf_hf : HInst< 32895(outs HvxVR:$Vd32), 32896(ins HvxVR:$Vu32, HvxVR:$Vv32), 32897"$Vd32.sf = vdmpy($Vu32.hf,$Vv32.hf)", 32898tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> { 32899let Inst{7-5} = 0b110; 32900let Inst{13-13} = 0b1; 32901let Inst{31-21} = 0b00011111101; 32902let hasNewValue = 1; 32903let opNewValue = 0; 32904let isCVI = 1; 32905let DecoderNamespace = "EXT_mmvec"; 32906} 32907def V6_vdmpy_sf_hf_acc : HInst< 32908(outs HvxVR:$Vx32), 32909(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 32910"$Vx32.sf += vdmpy($Vu32.hf,$Vv32.hf)", 32911tc_a19b9305, TypeCVI_VX>, Enc_a7341a, Requires<[UseHVXV68,UseHVXIEEEFP]> { 32912let Inst{7-5} = 0b011; 32913let Inst{13-13} = 0b1; 32914let Inst{31-21} = 0b00011100010; 32915let hasNewValue = 1; 32916let opNewValue = 0; 32917let isAccumulator = 1; 32918let isCVI = 1; 32919let DecoderNamespace = "EXT_mmvec"; 32920let Constraints = "$Vx32 = $Vx32in"; 32921} 32922def V6_vdmpybus : HInst< 32923(outs HvxVR:$Vd32), 32924(ins HvxVR:$Vu32, IntRegs:$Rt32), 32925"$Vd32.h = vdmpy($Vu32.ub,$Rt32.b)", 32926tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> { 32927let Inst{7-5} = 0b110; 32928let Inst{13-13} = 0b0; 32929let Inst{31-21} = 0b00011001000; 32930let hasNewValue = 1; 32931let opNewValue = 0; 32932let isCVI = 1; 32933let DecoderNamespace = "EXT_mmvec"; 32934} 32935def V6_vdmpybus_acc : HInst< 32936(outs HvxVR:$Vx32), 32937(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 32938"$Vx32.h += vdmpy($Vu32.ub,$Rt32.b)", 32939tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> { 32940let Inst{7-5} = 0b110; 32941let Inst{13-13} = 0b1; 32942let Inst{31-21} = 0b00011001000; 32943let hasNewValue = 1; 32944let opNewValue = 0; 32945let isAccumulator = 1; 32946let isCVI = 1; 32947let DecoderNamespace = "EXT_mmvec"; 32948let Constraints = "$Vx32 = $Vx32in"; 32949} 32950def V6_vdmpybus_acc_alt : HInst< 32951(outs HvxVR:$Vx32), 32952(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 32953"$Vx32 += vdmpybus($Vu32,$Rt32)", 32954PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32955let hasNewValue = 1; 32956let opNewValue = 0; 32957let isAccumulator = 1; 32958let isCVI = 1; 32959let isPseudo = 1; 32960let isCodeGenOnly = 1; 32961let DecoderNamespace = "EXT_mmvec"; 32962let Constraints = "$Vx32 = $Vx32in"; 32963} 32964def V6_vdmpybus_alt : HInst< 32965(outs HvxVR:$Vd32), 32966(ins HvxVR:$Vu32, IntRegs:$Rt32), 32967"$Vd32 = vdmpybus($Vu32,$Rt32)", 32968PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 32969let hasNewValue = 1; 32970let opNewValue = 0; 32971let isCVI = 1; 32972let isPseudo = 1; 32973let isCodeGenOnly = 1; 32974let DecoderNamespace = "EXT_mmvec"; 32975} 32976def V6_vdmpybus_dv : HInst< 32977(outs HvxWR:$Vdd32), 32978(ins HvxWR:$Vuu32, IntRegs:$Rt32), 32979"$Vdd32.h = vdmpy($Vuu32.ub,$Rt32.b)", 32980tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> { 32981let Inst{7-5} = 0b111; 32982let Inst{13-13} = 0b0; 32983let Inst{31-21} = 0b00011001000; 32984let hasNewValue = 1; 32985let opNewValue = 0; 32986let isCVI = 1; 32987let DecoderNamespace = "EXT_mmvec"; 32988} 32989def V6_vdmpybus_dv_acc : HInst< 32990(outs HvxWR:$Vxx32), 32991(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 32992"$Vxx32.h += vdmpy($Vuu32.ub,$Rt32.b)", 32993tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> { 32994let Inst{7-5} = 0b111; 32995let Inst{13-13} = 0b1; 32996let Inst{31-21} = 0b00011001000; 32997let hasNewValue = 1; 32998let opNewValue = 0; 32999let isAccumulator = 1; 33000let isCVI = 1; 33001let DecoderNamespace = "EXT_mmvec"; 33002let Constraints = "$Vxx32 = $Vxx32in"; 33003} 33004def V6_vdmpybus_dv_acc_alt : HInst< 33005(outs HvxWR:$Vxx32), 33006(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 33007"$Vxx32 += vdmpybus($Vuu32,$Rt32)", 33008PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33009let hasNewValue = 1; 33010let opNewValue = 0; 33011let isAccumulator = 1; 33012let isCVI = 1; 33013let isPseudo = 1; 33014let isCodeGenOnly = 1; 33015let DecoderNamespace = "EXT_mmvec"; 33016let Constraints = "$Vxx32 = $Vxx32in"; 33017} 33018def V6_vdmpybus_dv_alt : HInst< 33019(outs HvxWR:$Vdd32), 33020(ins HvxWR:$Vuu32, IntRegs:$Rt32), 33021"$Vdd32 = vdmpybus($Vuu32,$Rt32)", 33022PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33023let hasNewValue = 1; 33024let opNewValue = 0; 33025let isCVI = 1; 33026let isPseudo = 1; 33027let isCodeGenOnly = 1; 33028let DecoderNamespace = "EXT_mmvec"; 33029} 33030def V6_vdmpyhb : HInst< 33031(outs HvxVR:$Vd32), 33032(ins HvxVR:$Vu32, IntRegs:$Rt32), 33033"$Vd32.w = vdmpy($Vu32.h,$Rt32.b)", 33034tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> { 33035let Inst{7-5} = 0b010; 33036let Inst{13-13} = 0b0; 33037let Inst{31-21} = 0b00011001000; 33038let hasNewValue = 1; 33039let opNewValue = 0; 33040let isCVI = 1; 33041let DecoderNamespace = "EXT_mmvec"; 33042} 33043def V6_vdmpyhb_acc : HInst< 33044(outs HvxVR:$Vx32), 33045(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 33046"$Vx32.w += vdmpy($Vu32.h,$Rt32.b)", 33047tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> { 33048let Inst{7-5} = 0b011; 33049let Inst{13-13} = 0b1; 33050let Inst{31-21} = 0b00011001000; 33051let hasNewValue = 1; 33052let opNewValue = 0; 33053let isAccumulator = 1; 33054let isCVI = 1; 33055let DecoderNamespace = "EXT_mmvec"; 33056let Constraints = "$Vx32 = $Vx32in"; 33057} 33058def V6_vdmpyhb_acc_alt : HInst< 33059(outs HvxVR:$Vx32), 33060(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 33061"$Vx32 += vdmpyhb($Vu32,$Rt32)", 33062PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33063let hasNewValue = 1; 33064let opNewValue = 0; 33065let isAccumulator = 1; 33066let isCVI = 1; 33067let isPseudo = 1; 33068let isCodeGenOnly = 1; 33069let DecoderNamespace = "EXT_mmvec"; 33070let Constraints = "$Vx32 = $Vx32in"; 33071} 33072def V6_vdmpyhb_alt : HInst< 33073(outs HvxVR:$Vd32), 33074(ins HvxVR:$Vu32, IntRegs:$Rt32), 33075"$Vd32 = vdmpyhb($Vu32,$Rt32)", 33076PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33077let hasNewValue = 1; 33078let opNewValue = 0; 33079let isCVI = 1; 33080let isPseudo = 1; 33081let isCodeGenOnly = 1; 33082let DecoderNamespace = "EXT_mmvec"; 33083} 33084def V6_vdmpyhb_dv : HInst< 33085(outs HvxWR:$Vdd32), 33086(ins HvxWR:$Vuu32, IntRegs:$Rt32), 33087"$Vdd32.w = vdmpy($Vuu32.h,$Rt32.b)", 33088tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> { 33089let Inst{7-5} = 0b100; 33090let Inst{13-13} = 0b0; 33091let Inst{31-21} = 0b00011001001; 33092let hasNewValue = 1; 33093let opNewValue = 0; 33094let isCVI = 1; 33095let DecoderNamespace = "EXT_mmvec"; 33096} 33097def V6_vdmpyhb_dv_acc : HInst< 33098(outs HvxWR:$Vxx32), 33099(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 33100"$Vxx32.w += vdmpy($Vuu32.h,$Rt32.b)", 33101tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> { 33102let Inst{7-5} = 0b100; 33103let Inst{13-13} = 0b1; 33104let Inst{31-21} = 0b00011001001; 33105let hasNewValue = 1; 33106let opNewValue = 0; 33107let isAccumulator = 1; 33108let isCVI = 1; 33109let DecoderNamespace = "EXT_mmvec"; 33110let Constraints = "$Vxx32 = $Vxx32in"; 33111} 33112def V6_vdmpyhb_dv_acc_alt : HInst< 33113(outs HvxWR:$Vxx32), 33114(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 33115"$Vxx32 += vdmpyhb($Vuu32,$Rt32)", 33116PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33117let hasNewValue = 1; 33118let opNewValue = 0; 33119let isAccumulator = 1; 33120let isCVI = 1; 33121let isPseudo = 1; 33122let isCodeGenOnly = 1; 33123let DecoderNamespace = "EXT_mmvec"; 33124let Constraints = "$Vxx32 = $Vxx32in"; 33125} 33126def V6_vdmpyhb_dv_alt : HInst< 33127(outs HvxWR:$Vdd32), 33128(ins HvxWR:$Vuu32, IntRegs:$Rt32), 33129"$Vdd32 = vdmpyhb($Vuu32,$Rt32)", 33130PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33131let hasNewValue = 1; 33132let opNewValue = 0; 33133let isCVI = 1; 33134let isPseudo = 1; 33135let isCodeGenOnly = 1; 33136let DecoderNamespace = "EXT_mmvec"; 33137} 33138def V6_vdmpyhisat : HInst< 33139(outs HvxVR:$Vd32), 33140(ins HvxWR:$Vuu32, IntRegs:$Rt32), 33141"$Vd32.w = vdmpy($Vuu32.h,$Rt32.h):sat", 33142tc_0b04c6c7, TypeCVI_VX_DV>, Enc_0e41fa, Requires<[UseHVXV60]> { 33143let Inst{7-5} = 0b011; 33144let Inst{13-13} = 0b0; 33145let Inst{31-21} = 0b00011001001; 33146let hasNewValue = 1; 33147let opNewValue = 0; 33148let isCVI = 1; 33149let DecoderNamespace = "EXT_mmvec"; 33150} 33151def V6_vdmpyhisat_acc : HInst< 33152(outs HvxVR:$Vx32), 33153(ins HvxVR:$Vx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 33154"$Vx32.w += vdmpy($Vuu32.h,$Rt32.h):sat", 33155tc_660769f1, TypeCVI_VX_DV>, Enc_cc857d, Requires<[UseHVXV60]> { 33156let Inst{7-5} = 0b010; 33157let Inst{13-13} = 0b1; 33158let Inst{31-21} = 0b00011001001; 33159let hasNewValue = 1; 33160let opNewValue = 0; 33161let isAccumulator = 1; 33162let isCVI = 1; 33163let DecoderNamespace = "EXT_mmvec"; 33164let Constraints = "$Vx32 = $Vx32in"; 33165} 33166def V6_vdmpyhisat_acc_alt : HInst< 33167(outs HvxVR:$Vx32), 33168(ins HvxVR:$Vx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 33169"$Vx32 += vdmpyh($Vuu32,$Rt32):sat", 33170PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33171let hasNewValue = 1; 33172let opNewValue = 0; 33173let isAccumulator = 1; 33174let isCVI = 1; 33175let isPseudo = 1; 33176let isCodeGenOnly = 1; 33177let DecoderNamespace = "EXT_mmvec"; 33178let Constraints = "$Vx32 = $Vx32in"; 33179} 33180def V6_vdmpyhisat_alt : HInst< 33181(outs HvxVR:$Vd32), 33182(ins HvxWR:$Vuu32, IntRegs:$Rt32), 33183"$Vd32 = vdmpyh($Vuu32,$Rt32):sat", 33184PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33185let hasNewValue = 1; 33186let opNewValue = 0; 33187let isCVI = 1; 33188let isPseudo = 1; 33189let isCodeGenOnly = 1; 33190let DecoderNamespace = "EXT_mmvec"; 33191} 33192def V6_vdmpyhsat : HInst< 33193(outs HvxVR:$Vd32), 33194(ins HvxVR:$Vu32, IntRegs:$Rt32), 33195"$Vd32.w = vdmpy($Vu32.h,$Rt32.h):sat", 33196tc_dcca380f, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> { 33197let Inst{7-5} = 0b010; 33198let Inst{13-13} = 0b0; 33199let Inst{31-21} = 0b00011001001; 33200let hasNewValue = 1; 33201let opNewValue = 0; 33202let isCVI = 1; 33203let DecoderNamespace = "EXT_mmvec"; 33204} 33205def V6_vdmpyhsat_acc : HInst< 33206(outs HvxVR:$Vx32), 33207(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 33208"$Vx32.w += vdmpy($Vu32.h,$Rt32.h):sat", 33209tc_72e2b393, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> { 33210let Inst{7-5} = 0b011; 33211let Inst{13-13} = 0b1; 33212let Inst{31-21} = 0b00011001001; 33213let hasNewValue = 1; 33214let opNewValue = 0; 33215let isAccumulator = 1; 33216let isCVI = 1; 33217let DecoderNamespace = "EXT_mmvec"; 33218let Constraints = "$Vx32 = $Vx32in"; 33219} 33220def V6_vdmpyhsat_acc_alt : HInst< 33221(outs HvxVR:$Vx32), 33222(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 33223"$Vx32 += vdmpyh($Vu32,$Rt32):sat", 33224PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33225let hasNewValue = 1; 33226let opNewValue = 0; 33227let isAccumulator = 1; 33228let isCVI = 1; 33229let isPseudo = 1; 33230let isCodeGenOnly = 1; 33231let DecoderNamespace = "EXT_mmvec"; 33232let Constraints = "$Vx32 = $Vx32in"; 33233} 33234def V6_vdmpyhsat_alt : HInst< 33235(outs HvxVR:$Vd32), 33236(ins HvxVR:$Vu32, IntRegs:$Rt32), 33237"$Vd32 = vdmpyh($Vu32,$Rt32):sat", 33238PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33239let hasNewValue = 1; 33240let opNewValue = 0; 33241let isCVI = 1; 33242let isPseudo = 1; 33243let isCodeGenOnly = 1; 33244let DecoderNamespace = "EXT_mmvec"; 33245} 33246def V6_vdmpyhsuisat : HInst< 33247(outs HvxVR:$Vd32), 33248(ins HvxWR:$Vuu32, IntRegs:$Rt32), 33249"$Vd32.w = vdmpy($Vuu32.h,$Rt32.uh,#1):sat", 33250tc_0b04c6c7, TypeCVI_VX_DV>, Enc_0e41fa, Requires<[UseHVXV60]> { 33251let Inst{7-5} = 0b001; 33252let Inst{13-13} = 0b0; 33253let Inst{31-21} = 0b00011001001; 33254let hasNewValue = 1; 33255let opNewValue = 0; 33256let isCVI = 1; 33257let DecoderNamespace = "EXT_mmvec"; 33258} 33259def V6_vdmpyhsuisat_acc : HInst< 33260(outs HvxVR:$Vx32), 33261(ins HvxVR:$Vx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 33262"$Vx32.w += vdmpy($Vuu32.h,$Rt32.uh,#1):sat", 33263tc_660769f1, TypeCVI_VX_DV>, Enc_cc857d, Requires<[UseHVXV60]> { 33264let Inst{7-5} = 0b001; 33265let Inst{13-13} = 0b1; 33266let Inst{31-21} = 0b00011001001; 33267let hasNewValue = 1; 33268let opNewValue = 0; 33269let isAccumulator = 1; 33270let isCVI = 1; 33271let DecoderNamespace = "EXT_mmvec"; 33272let Constraints = "$Vx32 = $Vx32in"; 33273} 33274def V6_vdmpyhsuisat_acc_alt : HInst< 33275(outs HvxVR:$Vx32), 33276(ins HvxVR:$Vx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 33277"$Vx32 += vdmpyhsu($Vuu32,$Rt32,#1):sat", 33278PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33279let hasNewValue = 1; 33280let opNewValue = 0; 33281let isAccumulator = 1; 33282let isCVI = 1; 33283let isPseudo = 1; 33284let isCodeGenOnly = 1; 33285let DecoderNamespace = "EXT_mmvec"; 33286let Constraints = "$Vx32 = $Vx32in"; 33287} 33288def V6_vdmpyhsuisat_alt : HInst< 33289(outs HvxVR:$Vd32), 33290(ins HvxWR:$Vuu32, IntRegs:$Rt32), 33291"$Vd32 = vdmpyhsu($Vuu32,$Rt32,#1):sat", 33292PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33293let hasNewValue = 1; 33294let opNewValue = 0; 33295let isCVI = 1; 33296let isPseudo = 1; 33297let isCodeGenOnly = 1; 33298let DecoderNamespace = "EXT_mmvec"; 33299} 33300def V6_vdmpyhsusat : HInst< 33301(outs HvxVR:$Vd32), 33302(ins HvxVR:$Vu32, IntRegs:$Rt32), 33303"$Vd32.w = vdmpy($Vu32.h,$Rt32.uh):sat", 33304tc_dcca380f, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> { 33305let Inst{7-5} = 0b000; 33306let Inst{13-13} = 0b0; 33307let Inst{31-21} = 0b00011001001; 33308let hasNewValue = 1; 33309let opNewValue = 0; 33310let isCVI = 1; 33311let DecoderNamespace = "EXT_mmvec"; 33312} 33313def V6_vdmpyhsusat_acc : HInst< 33314(outs HvxVR:$Vx32), 33315(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 33316"$Vx32.w += vdmpy($Vu32.h,$Rt32.uh):sat", 33317tc_72e2b393, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> { 33318let Inst{7-5} = 0b000; 33319let Inst{13-13} = 0b1; 33320let Inst{31-21} = 0b00011001001; 33321let hasNewValue = 1; 33322let opNewValue = 0; 33323let isAccumulator = 1; 33324let isCVI = 1; 33325let DecoderNamespace = "EXT_mmvec"; 33326let Constraints = "$Vx32 = $Vx32in"; 33327} 33328def V6_vdmpyhsusat_acc_alt : HInst< 33329(outs HvxVR:$Vx32), 33330(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 33331"$Vx32 += vdmpyhsu($Vu32,$Rt32):sat", 33332PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33333let hasNewValue = 1; 33334let opNewValue = 0; 33335let isAccumulator = 1; 33336let isCVI = 1; 33337let isPseudo = 1; 33338let isCodeGenOnly = 1; 33339let DecoderNamespace = "EXT_mmvec"; 33340let Constraints = "$Vx32 = $Vx32in"; 33341} 33342def V6_vdmpyhsusat_alt : HInst< 33343(outs HvxVR:$Vd32), 33344(ins HvxVR:$Vu32, IntRegs:$Rt32), 33345"$Vd32 = vdmpyhsu($Vu32,$Rt32):sat", 33346PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33347let hasNewValue = 1; 33348let opNewValue = 0; 33349let isCVI = 1; 33350let isPseudo = 1; 33351let isCodeGenOnly = 1; 33352let DecoderNamespace = "EXT_mmvec"; 33353} 33354def V6_vdmpyhvsat : HInst< 33355(outs HvxVR:$Vd32), 33356(ins HvxVR:$Vu32, HvxVR:$Vv32), 33357"$Vd32.w = vdmpy($Vu32.h,$Vv32.h):sat", 33358tc_73efe966, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> { 33359let Inst{7-5} = 0b011; 33360let Inst{13-13} = 0b0; 33361let Inst{31-21} = 0b00011100000; 33362let hasNewValue = 1; 33363let opNewValue = 0; 33364let isCVI = 1; 33365let DecoderNamespace = "EXT_mmvec"; 33366} 33367def V6_vdmpyhvsat_acc : HInst< 33368(outs HvxVR:$Vx32), 33369(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 33370"$Vx32.w += vdmpy($Vu32.h,$Vv32.h):sat", 33371tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> { 33372let Inst{7-5} = 0b011; 33373let Inst{13-13} = 0b1; 33374let Inst{31-21} = 0b00011100000; 33375let hasNewValue = 1; 33376let opNewValue = 0; 33377let isAccumulator = 1; 33378let isCVI = 1; 33379let DecoderNamespace = "EXT_mmvec"; 33380let Constraints = "$Vx32 = $Vx32in"; 33381} 33382def V6_vdmpyhvsat_acc_alt : HInst< 33383(outs HvxVR:$Vx32), 33384(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 33385"$Vx32 += vdmpyh($Vu32,$Vv32):sat", 33386PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33387let hasNewValue = 1; 33388let opNewValue = 0; 33389let isAccumulator = 1; 33390let isCVI = 1; 33391let isPseudo = 1; 33392let isCodeGenOnly = 1; 33393let DecoderNamespace = "EXT_mmvec"; 33394let Constraints = "$Vx32 = $Vx32in"; 33395} 33396def V6_vdmpyhvsat_alt : HInst< 33397(outs HvxVR:$Vd32), 33398(ins HvxVR:$Vu32, HvxVR:$Vv32), 33399"$Vd32 = vdmpyh($Vu32,$Vv32):sat", 33400PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33401let hasNewValue = 1; 33402let opNewValue = 0; 33403let isCVI = 1; 33404let isPseudo = 1; 33405let isCodeGenOnly = 1; 33406let DecoderNamespace = "EXT_mmvec"; 33407} 33408def V6_vdsaduh : HInst< 33409(outs HvxWR:$Vdd32), 33410(ins HvxWR:$Vuu32, IntRegs:$Rt32), 33411"$Vdd32.uw = vdsad($Vuu32.uh,$Rt32.uh)", 33412tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> { 33413let Inst{7-5} = 0b101; 33414let Inst{13-13} = 0b0; 33415let Inst{31-21} = 0b00011001000; 33416let hasNewValue = 1; 33417let opNewValue = 0; 33418let isCVI = 1; 33419let DecoderNamespace = "EXT_mmvec"; 33420} 33421def V6_vdsaduh_acc : HInst< 33422(outs HvxWR:$Vxx32), 33423(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 33424"$Vxx32.uw += vdsad($Vuu32.uh,$Rt32.uh)", 33425tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> { 33426let Inst{7-5} = 0b000; 33427let Inst{13-13} = 0b1; 33428let Inst{31-21} = 0b00011001011; 33429let hasNewValue = 1; 33430let opNewValue = 0; 33431let isAccumulator = 1; 33432let isCVI = 1; 33433let DecoderNamespace = "EXT_mmvec"; 33434let Constraints = "$Vxx32 = $Vxx32in"; 33435} 33436def V6_vdsaduh_acc_alt : HInst< 33437(outs HvxWR:$Vxx32), 33438(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 33439"$Vxx32 += vdsaduh($Vuu32,$Rt32)", 33440PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33441let hasNewValue = 1; 33442let opNewValue = 0; 33443let isAccumulator = 1; 33444let isCVI = 1; 33445let isPseudo = 1; 33446let isCodeGenOnly = 1; 33447let DecoderNamespace = "EXT_mmvec"; 33448let Constraints = "$Vxx32 = $Vxx32in"; 33449} 33450def V6_vdsaduh_alt : HInst< 33451(outs HvxWR:$Vdd32), 33452(ins HvxWR:$Vuu32, IntRegs:$Rt32), 33453"$Vdd32 = vdsaduh($Vuu32,$Rt32)", 33454PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 33455let hasNewValue = 1; 33456let opNewValue = 0; 33457let isCVI = 1; 33458let isPseudo = 1; 33459let isCodeGenOnly = 1; 33460let DecoderNamespace = "EXT_mmvec"; 33461} 33462def V6_veqb : HInst< 33463(outs HvxQR:$Qd4), 33464(ins HvxVR:$Vu32, HvxVR:$Vv32), 33465"$Qd4 = vcmp.eq($Vu32.b,$Vv32.b)", 33466tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> { 33467let Inst{7-2} = 0b000000; 33468let Inst{13-13} = 0b0; 33469let Inst{31-21} = 0b00011111100; 33470let hasNewValue = 1; 33471let opNewValue = 0; 33472let isCVI = 1; 33473let isHVXALU = 1; 33474let isHVXALU2SRC = 1; 33475let DecoderNamespace = "EXT_mmvec"; 33476} 33477def V6_veqb_and : HInst< 33478(outs HvxQR:$Qx4), 33479(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 33480"$Qx4 &= vcmp.eq($Vu32.b,$Vv32.b)", 33481tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 33482let Inst{7-2} = 0b000000; 33483let Inst{13-13} = 0b1; 33484let Inst{31-21} = 0b00011100100; 33485let isCVI = 1; 33486let isHVXALU = 1; 33487let isHVXALU2SRC = 1; 33488let DecoderNamespace = "EXT_mmvec"; 33489let Constraints = "$Qx4 = $Qx4in"; 33490} 33491def V6_veqb_or : HInst< 33492(outs HvxQR:$Qx4), 33493(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 33494"$Qx4 |= vcmp.eq($Vu32.b,$Vv32.b)", 33495tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 33496let Inst{7-2} = 0b010000; 33497let Inst{13-13} = 0b1; 33498let Inst{31-21} = 0b00011100100; 33499let isAccumulator = 1; 33500let isCVI = 1; 33501let isHVXALU = 1; 33502let isHVXALU2SRC = 1; 33503let DecoderNamespace = "EXT_mmvec"; 33504let Constraints = "$Qx4 = $Qx4in"; 33505} 33506def V6_veqb_xor : HInst< 33507(outs HvxQR:$Qx4), 33508(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 33509"$Qx4 ^= vcmp.eq($Vu32.b,$Vv32.b)", 33510tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 33511let Inst{7-2} = 0b100000; 33512let Inst{13-13} = 0b1; 33513let Inst{31-21} = 0b00011100100; 33514let isCVI = 1; 33515let isHVXALU = 1; 33516let isHVXALU2SRC = 1; 33517let DecoderNamespace = "EXT_mmvec"; 33518let Constraints = "$Qx4 = $Qx4in"; 33519} 33520def V6_veqh : HInst< 33521(outs HvxQR:$Qd4), 33522(ins HvxVR:$Vu32, HvxVR:$Vv32), 33523"$Qd4 = vcmp.eq($Vu32.h,$Vv32.h)", 33524tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> { 33525let Inst{7-2} = 0b000001; 33526let Inst{13-13} = 0b0; 33527let Inst{31-21} = 0b00011111100; 33528let hasNewValue = 1; 33529let opNewValue = 0; 33530let isCVI = 1; 33531let isHVXALU = 1; 33532let isHVXALU2SRC = 1; 33533let DecoderNamespace = "EXT_mmvec"; 33534} 33535def V6_veqh_and : HInst< 33536(outs HvxQR:$Qx4), 33537(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 33538"$Qx4 &= vcmp.eq($Vu32.h,$Vv32.h)", 33539tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 33540let Inst{7-2} = 0b000001; 33541let Inst{13-13} = 0b1; 33542let Inst{31-21} = 0b00011100100; 33543let isCVI = 1; 33544let isHVXALU = 1; 33545let isHVXALU2SRC = 1; 33546let DecoderNamespace = "EXT_mmvec"; 33547let Constraints = "$Qx4 = $Qx4in"; 33548} 33549def V6_veqh_or : HInst< 33550(outs HvxQR:$Qx4), 33551(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 33552"$Qx4 |= vcmp.eq($Vu32.h,$Vv32.h)", 33553tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 33554let Inst{7-2} = 0b010001; 33555let Inst{13-13} = 0b1; 33556let Inst{31-21} = 0b00011100100; 33557let isAccumulator = 1; 33558let isCVI = 1; 33559let isHVXALU = 1; 33560let isHVXALU2SRC = 1; 33561let DecoderNamespace = "EXT_mmvec"; 33562let Constraints = "$Qx4 = $Qx4in"; 33563} 33564def V6_veqh_xor : HInst< 33565(outs HvxQR:$Qx4), 33566(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 33567"$Qx4 ^= vcmp.eq($Vu32.h,$Vv32.h)", 33568tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 33569let Inst{7-2} = 0b100001; 33570let Inst{13-13} = 0b1; 33571let Inst{31-21} = 0b00011100100; 33572let isCVI = 1; 33573let isHVXALU = 1; 33574let isHVXALU2SRC = 1; 33575let DecoderNamespace = "EXT_mmvec"; 33576let Constraints = "$Qx4 = $Qx4in"; 33577} 33578def V6_veqw : HInst< 33579(outs HvxQR:$Qd4), 33580(ins HvxVR:$Vu32, HvxVR:$Vv32), 33581"$Qd4 = vcmp.eq($Vu32.w,$Vv32.w)", 33582tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> { 33583let Inst{7-2} = 0b000010; 33584let Inst{13-13} = 0b0; 33585let Inst{31-21} = 0b00011111100; 33586let hasNewValue = 1; 33587let opNewValue = 0; 33588let isCVI = 1; 33589let isHVXALU = 1; 33590let isHVXALU2SRC = 1; 33591let DecoderNamespace = "EXT_mmvec"; 33592} 33593def V6_veqw_and : HInst< 33594(outs HvxQR:$Qx4), 33595(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 33596"$Qx4 &= vcmp.eq($Vu32.w,$Vv32.w)", 33597tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 33598let Inst{7-2} = 0b000010; 33599let Inst{13-13} = 0b1; 33600let Inst{31-21} = 0b00011100100; 33601let isCVI = 1; 33602let isHVXALU = 1; 33603let isHVXALU2SRC = 1; 33604let DecoderNamespace = "EXT_mmvec"; 33605let Constraints = "$Qx4 = $Qx4in"; 33606} 33607def V6_veqw_or : HInst< 33608(outs HvxQR:$Qx4), 33609(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 33610"$Qx4 |= vcmp.eq($Vu32.w,$Vv32.w)", 33611tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 33612let Inst{7-2} = 0b010010; 33613let Inst{13-13} = 0b1; 33614let Inst{31-21} = 0b00011100100; 33615let isAccumulator = 1; 33616let isCVI = 1; 33617let isHVXALU = 1; 33618let isHVXALU2SRC = 1; 33619let DecoderNamespace = "EXT_mmvec"; 33620let Constraints = "$Qx4 = $Qx4in"; 33621} 33622def V6_veqw_xor : HInst< 33623(outs HvxQR:$Qx4), 33624(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 33625"$Qx4 ^= vcmp.eq($Vu32.w,$Vv32.w)", 33626tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 33627let Inst{7-2} = 0b100010; 33628let Inst{13-13} = 0b1; 33629let Inst{31-21} = 0b00011100100; 33630let isCVI = 1; 33631let isHVXALU = 1; 33632let isHVXALU2SRC = 1; 33633let DecoderNamespace = "EXT_mmvec"; 33634let Constraints = "$Qx4 = $Qx4in"; 33635} 33636def V6_vfmax_hf : HInst< 33637(outs HvxVR:$Vd32), 33638(ins HvxVR:$Vu32, HvxVR:$Vv32), 33639"$Vd32.hf = vfmax($Vu32.hf,$Vv32.hf)", 33640tc_cda936da, TypeCVI_VX_LATE>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> { 33641let Inst{7-5} = 0b010; 33642let Inst{13-13} = 0b1; 33643let Inst{31-21} = 0b00011100011; 33644let hasNewValue = 1; 33645let opNewValue = 0; 33646let isCVI = 1; 33647let DecoderNamespace = "EXT_mmvec"; 33648} 33649def V6_vfmax_sf : HInst< 33650(outs HvxVR:$Vd32), 33651(ins HvxVR:$Vu32, HvxVR:$Vv32), 33652"$Vd32.sf = vfmax($Vu32.sf,$Vv32.sf)", 33653tc_cda936da, TypeCVI_VX_LATE>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> { 33654let Inst{7-5} = 0b011; 33655let Inst{13-13} = 0b1; 33656let Inst{31-21} = 0b00011100011; 33657let hasNewValue = 1; 33658let opNewValue = 0; 33659let isCVI = 1; 33660let DecoderNamespace = "EXT_mmvec"; 33661} 33662def V6_vfmin_hf : HInst< 33663(outs HvxVR:$Vd32), 33664(ins HvxVR:$Vu32, HvxVR:$Vv32), 33665"$Vd32.hf = vfmin($Vu32.hf,$Vv32.hf)", 33666tc_cda936da, TypeCVI_VX_LATE>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> { 33667let Inst{7-5} = 0b000; 33668let Inst{13-13} = 0b1; 33669let Inst{31-21} = 0b00011100011; 33670let hasNewValue = 1; 33671let opNewValue = 0; 33672let isCVI = 1; 33673let DecoderNamespace = "EXT_mmvec"; 33674} 33675def V6_vfmin_sf : HInst< 33676(outs HvxVR:$Vd32), 33677(ins HvxVR:$Vu32, HvxVR:$Vv32), 33678"$Vd32.sf = vfmin($Vu32.sf,$Vv32.sf)", 33679tc_cda936da, TypeCVI_VX_LATE>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> { 33680let Inst{7-5} = 0b001; 33681let Inst{13-13} = 0b1; 33682let Inst{31-21} = 0b00011100011; 33683let hasNewValue = 1; 33684let opNewValue = 0; 33685let isCVI = 1; 33686let DecoderNamespace = "EXT_mmvec"; 33687} 33688def V6_vfneg_hf : HInst< 33689(outs HvxVR:$Vd32), 33690(ins HvxVR:$Vu32), 33691"$Vd32.hf = vfneg($Vu32.hf)", 33692tc_5cdf8c84, TypeCVI_VX_LATE>, Enc_e7581c, Requires<[UseHVXV68,UseHVXIEEEFP]> { 33693let Inst{7-5} = 0b010; 33694let Inst{13-13} = 0b1; 33695let Inst{31-16} = 0b0001111000000110; 33696let hasNewValue = 1; 33697let opNewValue = 0; 33698let isCVI = 1; 33699let DecoderNamespace = "EXT_mmvec"; 33700} 33701def V6_vfneg_sf : HInst< 33702(outs HvxVR:$Vd32), 33703(ins HvxVR:$Vu32), 33704"$Vd32.sf = vfneg($Vu32.sf)", 33705tc_5cdf8c84, TypeCVI_VX_LATE>, Enc_e7581c, Requires<[UseHVXV68,UseHVXIEEEFP]> { 33706let Inst{7-5} = 0b011; 33707let Inst{13-13} = 0b1; 33708let Inst{31-16} = 0b0001111000000110; 33709let hasNewValue = 1; 33710let opNewValue = 0; 33711let isCVI = 1; 33712let DecoderNamespace = "EXT_mmvec"; 33713} 33714def V6_vgathermh : HInst< 33715(outs), 33716(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32), 33717"vtmp.h = vgather($Rt32,$Mu2,$Vv32.h).h", 33718tc_a28f32b5, TypeCVI_GATHER>, Enc_8b8927, Requires<[UseHVXV65]> { 33719let Inst{12-5} = 0b00001000; 33720let Inst{31-21} = 0b00101111000; 33721let hasNewValue = 1; 33722let opNewValue = 0; 33723let accessSize = HalfWordAccess; 33724let isCVLoad = 1; 33725let isCVI = 1; 33726let isHVXALU = 1; 33727let mayLoad = 1; 33728let Defs = [VTMP]; 33729let DecoderNamespace = "EXT_mmvec"; 33730} 33731def V6_vgathermhq : HInst< 33732(outs), 33733(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32), 33734"if ($Qs4) vtmp.h = vgather($Rt32,$Mu2,$Vv32.h).h", 33735tc_7d68d5c2, TypeCVI_GATHER>, Enc_158beb, Requires<[UseHVXV65]> { 33736let Inst{12-7} = 0b001010; 33737let Inst{31-21} = 0b00101111000; 33738let hasNewValue = 1; 33739let opNewValue = 0; 33740let accessSize = HalfWordAccess; 33741let isCVLoad = 1; 33742let isCVI = 1; 33743let isHVXALU = 1; 33744let mayLoad = 1; 33745let Defs = [VTMP]; 33746let DecoderNamespace = "EXT_mmvec"; 33747} 33748def V6_vgathermhw : HInst< 33749(outs), 33750(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32), 33751"vtmp.h = vgather($Rt32,$Mu2,$Vvv32.w).h", 33752tc_7095ecba, TypeCVI_GATHER_DV>, Enc_28dcbb, Requires<[UseHVXV65]> { 33753let Inst{12-5} = 0b00010000; 33754let Inst{31-21} = 0b00101111000; 33755let hasNewValue = 1; 33756let opNewValue = 0; 33757let accessSize = HalfWordAccess; 33758let isCVLoad = 1; 33759let isCVI = 1; 33760let mayLoad = 1; 33761let Defs = [VTMP]; 33762let DecoderNamespace = "EXT_mmvec"; 33763} 33764def V6_vgathermhwq : HInst< 33765(outs), 33766(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32), 33767"if ($Qs4) vtmp.h = vgather($Rt32,$Mu2,$Vvv32.w).h", 33768tc_a69eeee1, TypeCVI_GATHER_DV>, Enc_4e4a80, Requires<[UseHVXV65]> { 33769let Inst{12-7} = 0b001100; 33770let Inst{31-21} = 0b00101111000; 33771let hasNewValue = 1; 33772let opNewValue = 0; 33773let accessSize = HalfWordAccess; 33774let isCVLoad = 1; 33775let isCVI = 1; 33776let mayLoad = 1; 33777let Defs = [VTMP]; 33778let DecoderNamespace = "EXT_mmvec"; 33779} 33780def V6_vgathermw : HInst< 33781(outs), 33782(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32), 33783"vtmp.w = vgather($Rt32,$Mu2,$Vv32.w).w", 33784tc_a28f32b5, TypeCVI_GATHER>, Enc_8b8927, Requires<[UseHVXV65]> { 33785let Inst{12-5} = 0b00000000; 33786let Inst{31-21} = 0b00101111000; 33787let hasNewValue = 1; 33788let opNewValue = 0; 33789let accessSize = WordAccess; 33790let isCVLoad = 1; 33791let isCVI = 1; 33792let isHVXALU = 1; 33793let mayLoad = 1; 33794let Defs = [VTMP]; 33795let DecoderNamespace = "EXT_mmvec"; 33796} 33797def V6_vgathermwq : HInst< 33798(outs), 33799(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32), 33800"if ($Qs4) vtmp.w = vgather($Rt32,$Mu2,$Vv32.w).w", 33801tc_7d68d5c2, TypeCVI_GATHER>, Enc_158beb, Requires<[UseHVXV65]> { 33802let Inst{12-7} = 0b001000; 33803let Inst{31-21} = 0b00101111000; 33804let hasNewValue = 1; 33805let opNewValue = 0; 33806let accessSize = WordAccess; 33807let isCVLoad = 1; 33808let isCVI = 1; 33809let isHVXALU = 1; 33810let mayLoad = 1; 33811let Defs = [VTMP]; 33812let DecoderNamespace = "EXT_mmvec"; 33813} 33814def V6_vgtb : HInst< 33815(outs HvxQR:$Qd4), 33816(ins HvxVR:$Vu32, HvxVR:$Vv32), 33817"$Qd4 = vcmp.gt($Vu32.b,$Vv32.b)", 33818tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> { 33819let Inst{7-2} = 0b000100; 33820let Inst{13-13} = 0b0; 33821let Inst{31-21} = 0b00011111100; 33822let hasNewValue = 1; 33823let opNewValue = 0; 33824let isCVI = 1; 33825let isHVXALU = 1; 33826let isHVXALU2SRC = 1; 33827let DecoderNamespace = "EXT_mmvec"; 33828} 33829def V6_vgtb_and : HInst< 33830(outs HvxQR:$Qx4), 33831(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 33832"$Qx4 &= vcmp.gt($Vu32.b,$Vv32.b)", 33833tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 33834let Inst{7-2} = 0b000100; 33835let Inst{13-13} = 0b1; 33836let Inst{31-21} = 0b00011100100; 33837let isCVI = 1; 33838let isHVXALU = 1; 33839let isHVXALU2SRC = 1; 33840let DecoderNamespace = "EXT_mmvec"; 33841let Constraints = "$Qx4 = $Qx4in"; 33842} 33843def V6_vgtb_or : HInst< 33844(outs HvxQR:$Qx4), 33845(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 33846"$Qx4 |= vcmp.gt($Vu32.b,$Vv32.b)", 33847tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 33848let Inst{7-2} = 0b010100; 33849let Inst{13-13} = 0b1; 33850let Inst{31-21} = 0b00011100100; 33851let isAccumulator = 1; 33852let isCVI = 1; 33853let isHVXALU = 1; 33854let isHVXALU2SRC = 1; 33855let DecoderNamespace = "EXT_mmvec"; 33856let Constraints = "$Qx4 = $Qx4in"; 33857} 33858def V6_vgtb_xor : HInst< 33859(outs HvxQR:$Qx4), 33860(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 33861"$Qx4 ^= vcmp.gt($Vu32.b,$Vv32.b)", 33862tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 33863let Inst{7-2} = 0b100100; 33864let Inst{13-13} = 0b1; 33865let Inst{31-21} = 0b00011100100; 33866let isCVI = 1; 33867let isHVXALU = 1; 33868let isHVXALU2SRC = 1; 33869let DecoderNamespace = "EXT_mmvec"; 33870let Constraints = "$Qx4 = $Qx4in"; 33871} 33872def V6_vgtbf : HInst< 33873(outs HvxQR:$Qd4), 33874(ins HvxVR:$Vu32, HvxVR:$Vv32), 33875"$Qd4 = vcmp.gt($Vu32.bf,$Vv32.bf)", 33876tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV73,UseHVXQFloat]> { 33877let Inst{7-2} = 0b011110; 33878let Inst{13-13} = 0b1; 33879let Inst{31-21} = 0b00011100100; 33880let hasNewValue = 1; 33881let opNewValue = 0; 33882let isCVI = 1; 33883let isHVXALU = 1; 33884let isHVXALU2SRC = 1; 33885let DecoderNamespace = "EXT_mmvec"; 33886} 33887def V6_vgtbf_and : HInst< 33888(outs HvxQR:$Qx4), 33889(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 33890"$Qx4 &= vcmp.gt($Vu32.bf,$Vv32.bf)", 33891tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV73,UseHVXQFloat]> { 33892let Inst{7-2} = 0b110100; 33893let Inst{13-13} = 0b1; 33894let Inst{31-21} = 0b00011100100; 33895let isCVI = 1; 33896let isHVXALU = 1; 33897let isHVXALU2SRC = 1; 33898let DecoderNamespace = "EXT_mmvec"; 33899let Constraints = "$Qx4 = $Qx4in"; 33900} 33901def V6_vgtbf_or : HInst< 33902(outs HvxQR:$Qx4), 33903(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 33904"$Qx4 |= vcmp.gt($Vu32.bf,$Vv32.bf)", 33905tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV73,UseHVXQFloat]> { 33906let Inst{7-2} = 0b001110; 33907let Inst{13-13} = 0b1; 33908let Inst{31-21} = 0b00011100100; 33909let isAccumulator = 1; 33910let isCVI = 1; 33911let isHVXALU = 1; 33912let isHVXALU2SRC = 1; 33913let DecoderNamespace = "EXT_mmvec"; 33914let Constraints = "$Qx4 = $Qx4in"; 33915} 33916def V6_vgtbf_xor : HInst< 33917(outs HvxQR:$Qx4), 33918(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 33919"$Qx4 ^= vcmp.gt($Vu32.bf,$Vv32.bf)", 33920tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV73,UseHVXQFloat]> { 33921let Inst{7-2} = 0b111100; 33922let Inst{13-13} = 0b1; 33923let Inst{31-21} = 0b00011100100; 33924let isCVI = 1; 33925let isHVXALU = 1; 33926let isHVXALU2SRC = 1; 33927let DecoderNamespace = "EXT_mmvec"; 33928let Constraints = "$Qx4 = $Qx4in"; 33929} 33930def V6_vgth : HInst< 33931(outs HvxQR:$Qd4), 33932(ins HvxVR:$Vu32, HvxVR:$Vv32), 33933"$Qd4 = vcmp.gt($Vu32.h,$Vv32.h)", 33934tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> { 33935let Inst{7-2} = 0b000101; 33936let Inst{13-13} = 0b0; 33937let Inst{31-21} = 0b00011111100; 33938let hasNewValue = 1; 33939let opNewValue = 0; 33940let isCVI = 1; 33941let isHVXALU = 1; 33942let isHVXALU2SRC = 1; 33943let DecoderNamespace = "EXT_mmvec"; 33944} 33945def V6_vgth_and : HInst< 33946(outs HvxQR:$Qx4), 33947(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 33948"$Qx4 &= vcmp.gt($Vu32.h,$Vv32.h)", 33949tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 33950let Inst{7-2} = 0b000101; 33951let Inst{13-13} = 0b1; 33952let Inst{31-21} = 0b00011100100; 33953let isCVI = 1; 33954let isHVXALU = 1; 33955let isHVXALU2SRC = 1; 33956let DecoderNamespace = "EXT_mmvec"; 33957let Constraints = "$Qx4 = $Qx4in"; 33958} 33959def V6_vgth_or : HInst< 33960(outs HvxQR:$Qx4), 33961(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 33962"$Qx4 |= vcmp.gt($Vu32.h,$Vv32.h)", 33963tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 33964let Inst{7-2} = 0b010101; 33965let Inst{13-13} = 0b1; 33966let Inst{31-21} = 0b00011100100; 33967let isAccumulator = 1; 33968let isCVI = 1; 33969let isHVXALU = 1; 33970let isHVXALU2SRC = 1; 33971let DecoderNamespace = "EXT_mmvec"; 33972let Constraints = "$Qx4 = $Qx4in"; 33973} 33974def V6_vgth_xor : HInst< 33975(outs HvxQR:$Qx4), 33976(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 33977"$Qx4 ^= vcmp.gt($Vu32.h,$Vv32.h)", 33978tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 33979let Inst{7-2} = 0b100101; 33980let Inst{13-13} = 0b1; 33981let Inst{31-21} = 0b00011100100; 33982let isCVI = 1; 33983let isHVXALU = 1; 33984let isHVXALU2SRC = 1; 33985let DecoderNamespace = "EXT_mmvec"; 33986let Constraints = "$Qx4 = $Qx4in"; 33987} 33988def V6_vgthf : HInst< 33989(outs HvxQR:$Qd4), 33990(ins HvxVR:$Vu32, HvxVR:$Vv32), 33991"$Qd4 = vcmp.gt($Vu32.hf,$Vv32.hf)", 33992tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV68,UseHVXFloatingPoint]> { 33993let Inst{7-2} = 0b011101; 33994let Inst{13-13} = 0b1; 33995let Inst{31-21} = 0b00011100100; 33996let hasNewValue = 1; 33997let opNewValue = 0; 33998let isCVI = 1; 33999let isHVXALU = 1; 34000let isHVXALU2SRC = 1; 34001let DecoderNamespace = "EXT_mmvec"; 34002} 34003def V6_vgthf_and : HInst< 34004(outs HvxQR:$Qx4), 34005(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 34006"$Qx4 &= vcmp.gt($Vu32.hf,$Vv32.hf)", 34007tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV68,UseHVXFloatingPoint]> { 34008let Inst{7-2} = 0b110011; 34009let Inst{13-13} = 0b1; 34010let Inst{31-21} = 0b00011100100; 34011let isCVI = 1; 34012let isHVXALU = 1; 34013let isHVXALU2SRC = 1; 34014let DecoderNamespace = "EXT_mmvec"; 34015let Constraints = "$Qx4 = $Qx4in"; 34016} 34017def V6_vgthf_or : HInst< 34018(outs HvxQR:$Qx4), 34019(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 34020"$Qx4 |= vcmp.gt($Vu32.hf,$Vv32.hf)", 34021tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV68,UseHVXFloatingPoint]> { 34022let Inst{7-2} = 0b001101; 34023let Inst{13-13} = 0b1; 34024let Inst{31-21} = 0b00011100100; 34025let isAccumulator = 1; 34026let isCVI = 1; 34027let isHVXALU = 1; 34028let isHVXALU2SRC = 1; 34029let DecoderNamespace = "EXT_mmvec"; 34030let Constraints = "$Qx4 = $Qx4in"; 34031} 34032def V6_vgthf_xor : HInst< 34033(outs HvxQR:$Qx4), 34034(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 34035"$Qx4 ^= vcmp.gt($Vu32.hf,$Vv32.hf)", 34036tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV68,UseHVXFloatingPoint]> { 34037let Inst{7-2} = 0b111011; 34038let Inst{13-13} = 0b1; 34039let Inst{31-21} = 0b00011100100; 34040let isCVI = 1; 34041let isHVXALU = 1; 34042let isHVXALU2SRC = 1; 34043let DecoderNamespace = "EXT_mmvec"; 34044let Constraints = "$Qx4 = $Qx4in"; 34045} 34046def V6_vgtsf : HInst< 34047(outs HvxQR:$Qd4), 34048(ins HvxVR:$Vu32, HvxVR:$Vv32), 34049"$Qd4 = vcmp.gt($Vu32.sf,$Vv32.sf)", 34050tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV68,UseHVXFloatingPoint]> { 34051let Inst{7-2} = 0b011100; 34052let Inst{13-13} = 0b1; 34053let Inst{31-21} = 0b00011100100; 34054let hasNewValue = 1; 34055let opNewValue = 0; 34056let isCVI = 1; 34057let isHVXALU = 1; 34058let isHVXALU2SRC = 1; 34059let DecoderNamespace = "EXT_mmvec"; 34060} 34061def V6_vgtsf_and : HInst< 34062(outs HvxQR:$Qx4), 34063(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 34064"$Qx4 &= vcmp.gt($Vu32.sf,$Vv32.sf)", 34065tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV68,UseHVXFloatingPoint]> { 34066let Inst{7-2} = 0b110010; 34067let Inst{13-13} = 0b1; 34068let Inst{31-21} = 0b00011100100; 34069let isCVI = 1; 34070let isHVXALU = 1; 34071let isHVXALU2SRC = 1; 34072let DecoderNamespace = "EXT_mmvec"; 34073let Constraints = "$Qx4 = $Qx4in"; 34074} 34075def V6_vgtsf_or : HInst< 34076(outs HvxQR:$Qx4), 34077(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 34078"$Qx4 |= vcmp.gt($Vu32.sf,$Vv32.sf)", 34079tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV68,UseHVXFloatingPoint]> { 34080let Inst{7-2} = 0b001100; 34081let Inst{13-13} = 0b1; 34082let Inst{31-21} = 0b00011100100; 34083let isAccumulator = 1; 34084let isCVI = 1; 34085let isHVXALU = 1; 34086let isHVXALU2SRC = 1; 34087let DecoderNamespace = "EXT_mmvec"; 34088let Constraints = "$Qx4 = $Qx4in"; 34089} 34090def V6_vgtsf_xor : HInst< 34091(outs HvxQR:$Qx4), 34092(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 34093"$Qx4 ^= vcmp.gt($Vu32.sf,$Vv32.sf)", 34094tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV68,UseHVXFloatingPoint]> { 34095let Inst{7-2} = 0b111010; 34096let Inst{13-13} = 0b1; 34097let Inst{31-21} = 0b00011100100; 34098let isCVI = 1; 34099let isHVXALU = 1; 34100let isHVXALU2SRC = 1; 34101let DecoderNamespace = "EXT_mmvec"; 34102let Constraints = "$Qx4 = $Qx4in"; 34103} 34104def V6_vgtub : HInst< 34105(outs HvxQR:$Qd4), 34106(ins HvxVR:$Vu32, HvxVR:$Vv32), 34107"$Qd4 = vcmp.gt($Vu32.ub,$Vv32.ub)", 34108tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> { 34109let Inst{7-2} = 0b001000; 34110let Inst{13-13} = 0b0; 34111let Inst{31-21} = 0b00011111100; 34112let hasNewValue = 1; 34113let opNewValue = 0; 34114let isCVI = 1; 34115let isHVXALU = 1; 34116let isHVXALU2SRC = 1; 34117let DecoderNamespace = "EXT_mmvec"; 34118} 34119def V6_vgtub_and : HInst< 34120(outs HvxQR:$Qx4), 34121(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 34122"$Qx4 &= vcmp.gt($Vu32.ub,$Vv32.ub)", 34123tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 34124let Inst{7-2} = 0b001000; 34125let Inst{13-13} = 0b1; 34126let Inst{31-21} = 0b00011100100; 34127let isCVI = 1; 34128let isHVXALU = 1; 34129let isHVXALU2SRC = 1; 34130let DecoderNamespace = "EXT_mmvec"; 34131let Constraints = "$Qx4 = $Qx4in"; 34132} 34133def V6_vgtub_or : HInst< 34134(outs HvxQR:$Qx4), 34135(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 34136"$Qx4 |= vcmp.gt($Vu32.ub,$Vv32.ub)", 34137tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 34138let Inst{7-2} = 0b011000; 34139let Inst{13-13} = 0b1; 34140let Inst{31-21} = 0b00011100100; 34141let isAccumulator = 1; 34142let isCVI = 1; 34143let isHVXALU = 1; 34144let isHVXALU2SRC = 1; 34145let DecoderNamespace = "EXT_mmvec"; 34146let Constraints = "$Qx4 = $Qx4in"; 34147} 34148def V6_vgtub_xor : HInst< 34149(outs HvxQR:$Qx4), 34150(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 34151"$Qx4 ^= vcmp.gt($Vu32.ub,$Vv32.ub)", 34152tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 34153let Inst{7-2} = 0b101000; 34154let Inst{13-13} = 0b1; 34155let Inst{31-21} = 0b00011100100; 34156let isCVI = 1; 34157let isHVXALU = 1; 34158let isHVXALU2SRC = 1; 34159let DecoderNamespace = "EXT_mmvec"; 34160let Constraints = "$Qx4 = $Qx4in"; 34161} 34162def V6_vgtuh : HInst< 34163(outs HvxQR:$Qd4), 34164(ins HvxVR:$Vu32, HvxVR:$Vv32), 34165"$Qd4 = vcmp.gt($Vu32.uh,$Vv32.uh)", 34166tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> { 34167let Inst{7-2} = 0b001001; 34168let Inst{13-13} = 0b0; 34169let Inst{31-21} = 0b00011111100; 34170let hasNewValue = 1; 34171let opNewValue = 0; 34172let isCVI = 1; 34173let isHVXALU = 1; 34174let isHVXALU2SRC = 1; 34175let DecoderNamespace = "EXT_mmvec"; 34176} 34177def V6_vgtuh_and : HInst< 34178(outs HvxQR:$Qx4), 34179(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 34180"$Qx4 &= vcmp.gt($Vu32.uh,$Vv32.uh)", 34181tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 34182let Inst{7-2} = 0b001001; 34183let Inst{13-13} = 0b1; 34184let Inst{31-21} = 0b00011100100; 34185let isCVI = 1; 34186let isHVXALU = 1; 34187let isHVXALU2SRC = 1; 34188let DecoderNamespace = "EXT_mmvec"; 34189let Constraints = "$Qx4 = $Qx4in"; 34190} 34191def V6_vgtuh_or : HInst< 34192(outs HvxQR:$Qx4), 34193(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 34194"$Qx4 |= vcmp.gt($Vu32.uh,$Vv32.uh)", 34195tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 34196let Inst{7-2} = 0b011001; 34197let Inst{13-13} = 0b1; 34198let Inst{31-21} = 0b00011100100; 34199let isAccumulator = 1; 34200let isCVI = 1; 34201let isHVXALU = 1; 34202let isHVXALU2SRC = 1; 34203let DecoderNamespace = "EXT_mmvec"; 34204let Constraints = "$Qx4 = $Qx4in"; 34205} 34206def V6_vgtuh_xor : HInst< 34207(outs HvxQR:$Qx4), 34208(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 34209"$Qx4 ^= vcmp.gt($Vu32.uh,$Vv32.uh)", 34210tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 34211let Inst{7-2} = 0b101001; 34212let Inst{13-13} = 0b1; 34213let Inst{31-21} = 0b00011100100; 34214let isCVI = 1; 34215let isHVXALU = 1; 34216let isHVXALU2SRC = 1; 34217let DecoderNamespace = "EXT_mmvec"; 34218let Constraints = "$Qx4 = $Qx4in"; 34219} 34220def V6_vgtuw : HInst< 34221(outs HvxQR:$Qd4), 34222(ins HvxVR:$Vu32, HvxVR:$Vv32), 34223"$Qd4 = vcmp.gt($Vu32.uw,$Vv32.uw)", 34224tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> { 34225let Inst{7-2} = 0b001010; 34226let Inst{13-13} = 0b0; 34227let Inst{31-21} = 0b00011111100; 34228let hasNewValue = 1; 34229let opNewValue = 0; 34230let isCVI = 1; 34231let isHVXALU = 1; 34232let isHVXALU2SRC = 1; 34233let DecoderNamespace = "EXT_mmvec"; 34234} 34235def V6_vgtuw_and : HInst< 34236(outs HvxQR:$Qx4), 34237(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 34238"$Qx4 &= vcmp.gt($Vu32.uw,$Vv32.uw)", 34239tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 34240let Inst{7-2} = 0b001010; 34241let Inst{13-13} = 0b1; 34242let Inst{31-21} = 0b00011100100; 34243let isCVI = 1; 34244let isHVXALU = 1; 34245let isHVXALU2SRC = 1; 34246let DecoderNamespace = "EXT_mmvec"; 34247let Constraints = "$Qx4 = $Qx4in"; 34248} 34249def V6_vgtuw_or : HInst< 34250(outs HvxQR:$Qx4), 34251(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 34252"$Qx4 |= vcmp.gt($Vu32.uw,$Vv32.uw)", 34253tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 34254let Inst{7-2} = 0b011010; 34255let Inst{13-13} = 0b1; 34256let Inst{31-21} = 0b00011100100; 34257let isAccumulator = 1; 34258let isCVI = 1; 34259let isHVXALU = 1; 34260let isHVXALU2SRC = 1; 34261let DecoderNamespace = "EXT_mmvec"; 34262let Constraints = "$Qx4 = $Qx4in"; 34263} 34264def V6_vgtuw_xor : HInst< 34265(outs HvxQR:$Qx4), 34266(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 34267"$Qx4 ^= vcmp.gt($Vu32.uw,$Vv32.uw)", 34268tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 34269let Inst{7-2} = 0b101010; 34270let Inst{13-13} = 0b1; 34271let Inst{31-21} = 0b00011100100; 34272let isCVI = 1; 34273let isHVXALU = 1; 34274let isHVXALU2SRC = 1; 34275let DecoderNamespace = "EXT_mmvec"; 34276let Constraints = "$Qx4 = $Qx4in"; 34277} 34278def V6_vgtw : HInst< 34279(outs HvxQR:$Qd4), 34280(ins HvxVR:$Vu32, HvxVR:$Vv32), 34281"$Qd4 = vcmp.gt($Vu32.w,$Vv32.w)", 34282tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> { 34283let Inst{7-2} = 0b000110; 34284let Inst{13-13} = 0b0; 34285let Inst{31-21} = 0b00011111100; 34286let hasNewValue = 1; 34287let opNewValue = 0; 34288let isCVI = 1; 34289let isHVXALU = 1; 34290let isHVXALU2SRC = 1; 34291let DecoderNamespace = "EXT_mmvec"; 34292} 34293def V6_vgtw_and : HInst< 34294(outs HvxQR:$Qx4), 34295(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 34296"$Qx4 &= vcmp.gt($Vu32.w,$Vv32.w)", 34297tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 34298let Inst{7-2} = 0b000110; 34299let Inst{13-13} = 0b1; 34300let Inst{31-21} = 0b00011100100; 34301let isCVI = 1; 34302let isHVXALU = 1; 34303let isHVXALU2SRC = 1; 34304let DecoderNamespace = "EXT_mmvec"; 34305let Constraints = "$Qx4 = $Qx4in"; 34306} 34307def V6_vgtw_or : HInst< 34308(outs HvxQR:$Qx4), 34309(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 34310"$Qx4 |= vcmp.gt($Vu32.w,$Vv32.w)", 34311tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 34312let Inst{7-2} = 0b010110; 34313let Inst{13-13} = 0b1; 34314let Inst{31-21} = 0b00011100100; 34315let isAccumulator = 1; 34316let isCVI = 1; 34317let isHVXALU = 1; 34318let isHVXALU2SRC = 1; 34319let DecoderNamespace = "EXT_mmvec"; 34320let Constraints = "$Qx4 = $Qx4in"; 34321} 34322def V6_vgtw_xor : HInst< 34323(outs HvxQR:$Qx4), 34324(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32), 34325"$Qx4 ^= vcmp.gt($Vu32.w,$Vv32.w)", 34326tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> { 34327let Inst{7-2} = 0b100110; 34328let Inst{13-13} = 0b1; 34329let Inst{31-21} = 0b00011100100; 34330let isCVI = 1; 34331let isHVXALU = 1; 34332let isHVXALU2SRC = 1; 34333let DecoderNamespace = "EXT_mmvec"; 34334let Constraints = "$Qx4 = $Qx4in"; 34335} 34336def V6_vhist : HInst< 34337(outs), 34338(ins), 34339"vhist", 34340tc_1381a97c, TypeCVI_HIST>, Enc_e3b0c4, Requires<[UseHVXV60]> { 34341let Inst{13-0} = 0b10000010000000; 34342let Inst{31-16} = 0b0001111000000000; 34343let isCVI = 1; 34344let DecoderNamespace = "EXT_mmvec"; 34345} 34346def V6_vhistq : HInst< 34347(outs), 34348(ins HvxQR:$Qv4), 34349"vhist($Qv4)", 34350tc_e3f68a46, TypeCVI_HIST>, Enc_217147, Requires<[UseHVXV60]> { 34351let Inst{13-0} = 0b10000010000000; 34352let Inst{21-16} = 0b000010; 34353let Inst{31-24} = 0b00011110; 34354let isCVI = 1; 34355let DecoderNamespace = "EXT_mmvec"; 34356} 34357def V6_vinsertwr : HInst< 34358(outs HvxVR:$Vx32), 34359(ins HvxVR:$Vx32in, IntRegs:$Rt32), 34360"$Vx32.w = vinsert($Rt32)", 34361tc_ac4046bc, TypeCVI_VX_LATE>, Enc_569cfe, Requires<[UseHVXV60]> { 34362let Inst{13-5} = 0b100000001; 34363let Inst{31-21} = 0b00011001101; 34364let hasNewValue = 1; 34365let opNewValue = 0; 34366let isCVI = 1; 34367let DecoderNamespace = "EXT_mmvec"; 34368let Constraints = "$Vx32 = $Vx32in"; 34369} 34370def V6_vlalignb : HInst< 34371(outs HvxVR:$Vd32), 34372(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 34373"$Vd32 = vlalign($Vu32,$Vv32,$Rt8)", 34374tc_56e64202, TypeCVI_VP>, Enc_a30110, Requires<[UseHVXV60]> { 34375let Inst{7-5} = 0b001; 34376let Inst{13-13} = 0b0; 34377let Inst{31-24} = 0b00011011; 34378let hasNewValue = 1; 34379let opNewValue = 0; 34380let isCVI = 1; 34381let DecoderNamespace = "EXT_mmvec"; 34382} 34383def V6_vlalignbi : HInst< 34384(outs HvxVR:$Vd32), 34385(ins HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii), 34386"$Vd32 = vlalign($Vu32,$Vv32,#$Ii)", 34387tc_56e64202, TypeCVI_VP>, Enc_0b2e5b, Requires<[UseHVXV60]> { 34388let Inst{13-13} = 0b1; 34389let Inst{31-21} = 0b00011110011; 34390let hasNewValue = 1; 34391let opNewValue = 0; 34392let isCVI = 1; 34393let DecoderNamespace = "EXT_mmvec"; 34394} 34395def V6_vlsrb : HInst< 34396(outs HvxVR:$Vd32), 34397(ins HvxVR:$Vu32, IntRegs:$Rt32), 34398"$Vd32.ub = vlsr($Vu32.ub,$Rt32)", 34399tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV62]> { 34400let Inst{7-5} = 0b011; 34401let Inst{13-13} = 0b0; 34402let Inst{31-21} = 0b00011001100; 34403let hasNewValue = 1; 34404let opNewValue = 0; 34405let isCVI = 1; 34406let DecoderNamespace = "EXT_mmvec"; 34407} 34408def V6_vlsrh : HInst< 34409(outs HvxVR:$Vd32), 34410(ins HvxVR:$Vu32, IntRegs:$Rt32), 34411"$Vd32.uh = vlsr($Vu32.uh,$Rt32)", 34412tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> { 34413let Inst{7-5} = 0b010; 34414let Inst{13-13} = 0b0; 34415let Inst{31-21} = 0b00011001100; 34416let hasNewValue = 1; 34417let opNewValue = 0; 34418let isCVI = 1; 34419let DecoderNamespace = "EXT_mmvec"; 34420} 34421def V6_vlsrh_alt : HInst< 34422(outs HvxVR:$Vd32), 34423(ins HvxVR:$Vu32, IntRegs:$Rt32), 34424"$Vd32 = vlsrh($Vu32,$Rt32)", 34425PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34426let hasNewValue = 1; 34427let opNewValue = 0; 34428let isCVI = 1; 34429let isPseudo = 1; 34430let isCodeGenOnly = 1; 34431let DecoderNamespace = "EXT_mmvec"; 34432} 34433def V6_vlsrhv : HInst< 34434(outs HvxVR:$Vd32), 34435(ins HvxVR:$Vu32, HvxVR:$Vv32), 34436"$Vd32.h = vlsr($Vu32.h,$Vv32.h)", 34437tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> { 34438let Inst{7-5} = 0b010; 34439let Inst{13-13} = 0b0; 34440let Inst{31-21} = 0b00011111101; 34441let hasNewValue = 1; 34442let opNewValue = 0; 34443let isCVI = 1; 34444let DecoderNamespace = "EXT_mmvec"; 34445} 34446def V6_vlsrhv_alt : HInst< 34447(outs HvxVR:$Vd32), 34448(ins HvxVR:$Vu32, HvxVR:$Vv32), 34449"$Vd32 = vlsrh($Vu32,$Vv32)", 34450PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34451let hasNewValue = 1; 34452let opNewValue = 0; 34453let isCVI = 1; 34454let isPseudo = 1; 34455let isCodeGenOnly = 1; 34456let DecoderNamespace = "EXT_mmvec"; 34457} 34458def V6_vlsrw : HInst< 34459(outs HvxVR:$Vd32), 34460(ins HvxVR:$Vu32, IntRegs:$Rt32), 34461"$Vd32.uw = vlsr($Vu32.uw,$Rt32)", 34462tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> { 34463let Inst{7-5} = 0b001; 34464let Inst{13-13} = 0b0; 34465let Inst{31-21} = 0b00011001100; 34466let hasNewValue = 1; 34467let opNewValue = 0; 34468let isCVI = 1; 34469let DecoderNamespace = "EXT_mmvec"; 34470} 34471def V6_vlsrw_alt : HInst< 34472(outs HvxVR:$Vd32), 34473(ins HvxVR:$Vu32, IntRegs:$Rt32), 34474"$Vd32 = vlsrw($Vu32,$Rt32)", 34475PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34476let hasNewValue = 1; 34477let opNewValue = 0; 34478let isCVI = 1; 34479let isPseudo = 1; 34480let isCodeGenOnly = 1; 34481let DecoderNamespace = "EXT_mmvec"; 34482} 34483def V6_vlsrwv : HInst< 34484(outs HvxVR:$Vd32), 34485(ins HvxVR:$Vu32, HvxVR:$Vv32), 34486"$Vd32.w = vlsr($Vu32.w,$Vv32.w)", 34487tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> { 34488let Inst{7-5} = 0b001; 34489let Inst{13-13} = 0b0; 34490let Inst{31-21} = 0b00011111101; 34491let hasNewValue = 1; 34492let opNewValue = 0; 34493let isCVI = 1; 34494let DecoderNamespace = "EXT_mmvec"; 34495} 34496def V6_vlsrwv_alt : HInst< 34497(outs HvxVR:$Vd32), 34498(ins HvxVR:$Vu32, HvxVR:$Vv32), 34499"$Vd32 = vlsrw($Vu32,$Vv32)", 34500PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34501let hasNewValue = 1; 34502let opNewValue = 0; 34503let isCVI = 1; 34504let isPseudo = 1; 34505let isCodeGenOnly = 1; 34506let DecoderNamespace = "EXT_mmvec"; 34507} 34508def V6_vlut4 : HInst< 34509(outs HvxVR:$Vd32), 34510(ins HvxVR:$Vu32, DoubleRegs:$Rtt32), 34511"$Vd32.h = vlut4($Vu32.uh,$Rtt32.h)", 34512tc_f1de44ef, TypeCVI_VX_DV>, Enc_263841, Requires<[UseHVXV65]> { 34513let Inst{7-5} = 0b100; 34514let Inst{13-13} = 0b0; 34515let Inst{31-21} = 0b00011001011; 34516let hasNewValue = 1; 34517let opNewValue = 0; 34518let isCVI = 1; 34519let DecoderNamespace = "EXT_mmvec"; 34520} 34521def V6_vlutvvb : HInst< 34522(outs HvxVR:$Vd32), 34523(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 34524"$Vd32.b = vlut32($Vu32.b,$Vv32.b,$Rt8)", 34525tc_56e64202, TypeCVI_VP>, Enc_a30110, Requires<[UseHVXV60]> { 34526let Inst{7-5} = 0b001; 34527let Inst{13-13} = 0b1; 34528let Inst{31-24} = 0b00011011; 34529let hasNewValue = 1; 34530let opNewValue = 0; 34531let isCVI = 1; 34532let DecoderNamespace = "EXT_mmvec"; 34533} 34534def V6_vlutvvb_nm : HInst< 34535(outs HvxVR:$Vd32), 34536(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 34537"$Vd32.b = vlut32($Vu32.b,$Vv32.b,$Rt8):nomatch", 34538tc_56e64202, TypeCVI_VP>, Enc_a30110, Requires<[UseHVXV62]> { 34539let Inst{7-5} = 0b011; 34540let Inst{13-13} = 0b0; 34541let Inst{31-24} = 0b00011000; 34542let hasNewValue = 1; 34543let opNewValue = 0; 34544let isCVI = 1; 34545let DecoderNamespace = "EXT_mmvec"; 34546} 34547def V6_vlutvvb_oracc : HInst< 34548(outs HvxVR:$Vx32), 34549(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 34550"$Vx32.b |= vlut32($Vu32.b,$Vv32.b,$Rt8)", 34551tc_9d1dc972, TypeCVI_VP_VS>, Enc_245865, Requires<[UseHVXV60]> { 34552let Inst{7-5} = 0b101; 34553let Inst{13-13} = 0b1; 34554let Inst{31-24} = 0b00011011; 34555let hasNewValue = 1; 34556let opNewValue = 0; 34557let isAccumulator = 1; 34558let isCVI = 1; 34559let DecoderNamespace = "EXT_mmvec"; 34560let Constraints = "$Vx32 = $Vx32in"; 34561} 34562def V6_vlutvvb_oracci : HInst< 34563(outs HvxVR:$Vx32), 34564(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii), 34565"$Vx32.b |= vlut32($Vu32.b,$Vv32.b,#$Ii)", 34566tc_9d1dc972, TypeCVI_VP_VS>, Enc_cd4705, Requires<[UseHVXV62]> { 34567let Inst{13-13} = 0b1; 34568let Inst{31-21} = 0b00011100110; 34569let hasNewValue = 1; 34570let opNewValue = 0; 34571let isAccumulator = 1; 34572let isCVI = 1; 34573let DecoderNamespace = "EXT_mmvec"; 34574let Constraints = "$Vx32 = $Vx32in"; 34575} 34576def V6_vlutvvbi : HInst< 34577(outs HvxVR:$Vd32), 34578(ins HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii), 34579"$Vd32.b = vlut32($Vu32.b,$Vv32.b,#$Ii)", 34580tc_56e64202, TypeCVI_VP>, Enc_0b2e5b, Requires<[UseHVXV62]> { 34581let Inst{13-13} = 0b0; 34582let Inst{31-21} = 0b00011110001; 34583let hasNewValue = 1; 34584let opNewValue = 0; 34585let isCVI = 1; 34586let DecoderNamespace = "EXT_mmvec"; 34587} 34588def V6_vlutvwh : HInst< 34589(outs HvxWR:$Vdd32), 34590(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 34591"$Vdd32.h = vlut16($Vu32.b,$Vv32.h,$Rt8)", 34592tc_87adc037, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[UseHVXV60]> { 34593let Inst{7-5} = 0b110; 34594let Inst{13-13} = 0b1; 34595let Inst{31-24} = 0b00011011; 34596let hasNewValue = 1; 34597let opNewValue = 0; 34598let isCVI = 1; 34599let DecoderNamespace = "EXT_mmvec"; 34600} 34601def V6_vlutvwh_nm : HInst< 34602(outs HvxWR:$Vdd32), 34603(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 34604"$Vdd32.h = vlut16($Vu32.b,$Vv32.h,$Rt8):nomatch", 34605tc_87adc037, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[UseHVXV62]> { 34606let Inst{7-5} = 0b100; 34607let Inst{13-13} = 0b0; 34608let Inst{31-24} = 0b00011000; 34609let hasNewValue = 1; 34610let opNewValue = 0; 34611let isCVI = 1; 34612let DecoderNamespace = "EXT_mmvec"; 34613} 34614def V6_vlutvwh_oracc : HInst< 34615(outs HvxWR:$Vxx32), 34616(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 34617"$Vxx32.h |= vlut16($Vu32.b,$Vv32.h,$Rt8)", 34618tc_9d1dc972, TypeCVI_VP_VS>, Enc_7b523d, Requires<[UseHVXV60]> { 34619let Inst{7-5} = 0b111; 34620let Inst{13-13} = 0b1; 34621let Inst{31-24} = 0b00011011; 34622let hasNewValue = 1; 34623let opNewValue = 0; 34624let isAccumulator = 1; 34625let isCVI = 1; 34626let DecoderNamespace = "EXT_mmvec"; 34627let Constraints = "$Vxx32 = $Vxx32in"; 34628} 34629def V6_vlutvwh_oracci : HInst< 34630(outs HvxWR:$Vxx32), 34631(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii), 34632"$Vxx32.h |= vlut16($Vu32.b,$Vv32.h,#$Ii)", 34633tc_9d1dc972, TypeCVI_VP_VS>, Enc_1178da, Requires<[UseHVXV62]> { 34634let Inst{13-13} = 0b1; 34635let Inst{31-21} = 0b00011100111; 34636let hasNewValue = 1; 34637let opNewValue = 0; 34638let isAccumulator = 1; 34639let isCVI = 1; 34640let DecoderNamespace = "EXT_mmvec"; 34641let Constraints = "$Vxx32 = $Vxx32in"; 34642} 34643def V6_vlutvwhi : HInst< 34644(outs HvxWR:$Vdd32), 34645(ins HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii), 34646"$Vdd32.h = vlut16($Vu32.b,$Vv32.h,#$Ii)", 34647tc_87adc037, TypeCVI_VP_VS>, Enc_4b39e4, Requires<[UseHVXV62]> { 34648let Inst{13-13} = 0b0; 34649let Inst{31-21} = 0b00011110011; 34650let hasNewValue = 1; 34651let opNewValue = 0; 34652let isCVI = 1; 34653let DecoderNamespace = "EXT_mmvec"; 34654} 34655def V6_vmax_bf : HInst< 34656(outs HvxVR:$Vd32), 34657(ins HvxVR:$Vu32, HvxVR:$Vv32), 34658"$Vd32.bf = vmax($Vu32.bf,$Vv32.bf)", 34659tc_cda936da, TypeCVI_VX_LATE>, Enc_45364e, Requires<[UseHVXV73,UseHVXIEEEFP]> { 34660let Inst{7-5} = 0b111; 34661let Inst{13-13} = 0b1; 34662let Inst{31-21} = 0b00011101010; 34663let hasNewValue = 1; 34664let opNewValue = 0; 34665let isCVI = 1; 34666let DecoderNamespace = "EXT_mmvec"; 34667} 34668def V6_vmax_hf : HInst< 34669(outs HvxVR:$Vd32), 34670(ins HvxVR:$Vu32, HvxVR:$Vv32), 34671"$Vd32.hf = vmax($Vu32.hf,$Vv32.hf)", 34672tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> { 34673let Inst{7-5} = 0b011; 34674let Inst{13-13} = 0b1; 34675let Inst{31-21} = 0b00011111110; 34676let hasNewValue = 1; 34677let opNewValue = 0; 34678let isCVI = 1; 34679let isHVXALU = 1; 34680let isHVXALU2SRC = 1; 34681let DecoderNamespace = "EXT_mmvec"; 34682} 34683def V6_vmax_sf : HInst< 34684(outs HvxVR:$Vd32), 34685(ins HvxVR:$Vu32, HvxVR:$Vv32), 34686"$Vd32.sf = vmax($Vu32.sf,$Vv32.sf)", 34687tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> { 34688let Inst{7-5} = 0b001; 34689let Inst{13-13} = 0b1; 34690let Inst{31-21} = 0b00011111110; 34691let hasNewValue = 1; 34692let opNewValue = 0; 34693let isCVI = 1; 34694let isHVXALU = 1; 34695let isHVXALU2SRC = 1; 34696let DecoderNamespace = "EXT_mmvec"; 34697} 34698def V6_vmaxb : HInst< 34699(outs HvxVR:$Vd32), 34700(ins HvxVR:$Vu32, HvxVR:$Vv32), 34701"$Vd32.b = vmax($Vu32.b,$Vv32.b)", 34702tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> { 34703let Inst{7-5} = 0b101; 34704let Inst{13-13} = 0b0; 34705let Inst{31-21} = 0b00011111001; 34706let hasNewValue = 1; 34707let opNewValue = 0; 34708let isCVI = 1; 34709let isHVXALU = 1; 34710let isHVXALU2SRC = 1; 34711let DecoderNamespace = "EXT_mmvec"; 34712} 34713def V6_vmaxb_alt : HInst< 34714(outs HvxVR:$Vd32), 34715(ins HvxVR:$Vu32, HvxVR:$Vv32), 34716"$Vd32 = vmaxb($Vu32,$Vv32)", 34717PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 34718let hasNewValue = 1; 34719let opNewValue = 0; 34720let isCVI = 1; 34721let isPseudo = 1; 34722let isCodeGenOnly = 1; 34723let DecoderNamespace = "EXT_mmvec"; 34724} 34725def V6_vmaxh : HInst< 34726(outs HvxVR:$Vd32), 34727(ins HvxVR:$Vu32, HvxVR:$Vv32), 34728"$Vd32.h = vmax($Vu32.h,$Vv32.h)", 34729tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 34730let Inst{7-5} = 0b111; 34731let Inst{13-13} = 0b0; 34732let Inst{31-21} = 0b00011111000; 34733let hasNewValue = 1; 34734let opNewValue = 0; 34735let isCVI = 1; 34736let isHVXALU = 1; 34737let isHVXALU2SRC = 1; 34738let DecoderNamespace = "EXT_mmvec"; 34739} 34740def V6_vmaxh_alt : HInst< 34741(outs HvxVR:$Vd32), 34742(ins HvxVR:$Vu32, HvxVR:$Vv32), 34743"$Vd32 = vmaxh($Vu32,$Vv32)", 34744PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34745let hasNewValue = 1; 34746let opNewValue = 0; 34747let isCVI = 1; 34748let isPseudo = 1; 34749let isCodeGenOnly = 1; 34750let DecoderNamespace = "EXT_mmvec"; 34751} 34752def V6_vmaxub : HInst< 34753(outs HvxVR:$Vd32), 34754(ins HvxVR:$Vu32, HvxVR:$Vv32), 34755"$Vd32.ub = vmax($Vu32.ub,$Vv32.ub)", 34756tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 34757let Inst{7-5} = 0b101; 34758let Inst{13-13} = 0b0; 34759let Inst{31-21} = 0b00011111000; 34760let hasNewValue = 1; 34761let opNewValue = 0; 34762let isCVI = 1; 34763let isHVXALU = 1; 34764let isHVXALU2SRC = 1; 34765let DecoderNamespace = "EXT_mmvec"; 34766} 34767def V6_vmaxub_alt : HInst< 34768(outs HvxVR:$Vd32), 34769(ins HvxVR:$Vu32, HvxVR:$Vv32), 34770"$Vd32 = vmaxub($Vu32,$Vv32)", 34771PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34772let hasNewValue = 1; 34773let opNewValue = 0; 34774let isCVI = 1; 34775let isPseudo = 1; 34776let isCodeGenOnly = 1; 34777let DecoderNamespace = "EXT_mmvec"; 34778} 34779def V6_vmaxuh : HInst< 34780(outs HvxVR:$Vd32), 34781(ins HvxVR:$Vu32, HvxVR:$Vv32), 34782"$Vd32.uh = vmax($Vu32.uh,$Vv32.uh)", 34783tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 34784let Inst{7-5} = 0b110; 34785let Inst{13-13} = 0b0; 34786let Inst{31-21} = 0b00011111000; 34787let hasNewValue = 1; 34788let opNewValue = 0; 34789let isCVI = 1; 34790let isHVXALU = 1; 34791let isHVXALU2SRC = 1; 34792let DecoderNamespace = "EXT_mmvec"; 34793} 34794def V6_vmaxuh_alt : HInst< 34795(outs HvxVR:$Vd32), 34796(ins HvxVR:$Vu32, HvxVR:$Vv32), 34797"$Vd32 = vmaxuh($Vu32,$Vv32)", 34798PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34799let hasNewValue = 1; 34800let opNewValue = 0; 34801let isCVI = 1; 34802let isPseudo = 1; 34803let isCodeGenOnly = 1; 34804let DecoderNamespace = "EXT_mmvec"; 34805} 34806def V6_vmaxw : HInst< 34807(outs HvxVR:$Vd32), 34808(ins HvxVR:$Vu32, HvxVR:$Vv32), 34809"$Vd32.w = vmax($Vu32.w,$Vv32.w)", 34810tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 34811let Inst{7-5} = 0b000; 34812let Inst{13-13} = 0b0; 34813let Inst{31-21} = 0b00011111001; 34814let hasNewValue = 1; 34815let opNewValue = 0; 34816let isCVI = 1; 34817let isHVXALU = 1; 34818let isHVXALU2SRC = 1; 34819let DecoderNamespace = "EXT_mmvec"; 34820} 34821def V6_vmaxw_alt : HInst< 34822(outs HvxVR:$Vd32), 34823(ins HvxVR:$Vu32, HvxVR:$Vv32), 34824"$Vd32 = vmaxw($Vu32,$Vv32)", 34825PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34826let hasNewValue = 1; 34827let opNewValue = 0; 34828let isCVI = 1; 34829let isPseudo = 1; 34830let isCodeGenOnly = 1; 34831let DecoderNamespace = "EXT_mmvec"; 34832} 34833def V6_vmin_bf : HInst< 34834(outs HvxVR:$Vd32), 34835(ins HvxVR:$Vu32, HvxVR:$Vv32), 34836"$Vd32.bf = vmin($Vu32.bf,$Vv32.bf)", 34837tc_cda936da, TypeCVI_VX_LATE>, Enc_45364e, Requires<[UseHVXV73,UseHVXIEEEFP]> { 34838let Inst{7-5} = 0b000; 34839let Inst{13-13} = 0b1; 34840let Inst{31-21} = 0b00011101010; 34841let hasNewValue = 1; 34842let opNewValue = 0; 34843let isCVI = 1; 34844let DecoderNamespace = "EXT_mmvec"; 34845} 34846def V6_vmin_hf : HInst< 34847(outs HvxVR:$Vd32), 34848(ins HvxVR:$Vu32, HvxVR:$Vv32), 34849"$Vd32.hf = vmin($Vu32.hf,$Vv32.hf)", 34850tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> { 34851let Inst{7-5} = 0b100; 34852let Inst{13-13} = 0b1; 34853let Inst{31-21} = 0b00011111110; 34854let hasNewValue = 1; 34855let opNewValue = 0; 34856let isCVI = 1; 34857let isHVXALU = 1; 34858let isHVXALU2SRC = 1; 34859let DecoderNamespace = "EXT_mmvec"; 34860} 34861def V6_vmin_sf : HInst< 34862(outs HvxVR:$Vd32), 34863(ins HvxVR:$Vu32, HvxVR:$Vv32), 34864"$Vd32.sf = vmin($Vu32.sf,$Vv32.sf)", 34865tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> { 34866let Inst{7-5} = 0b010; 34867let Inst{13-13} = 0b1; 34868let Inst{31-21} = 0b00011111110; 34869let hasNewValue = 1; 34870let opNewValue = 0; 34871let isCVI = 1; 34872let isHVXALU = 1; 34873let isHVXALU2SRC = 1; 34874let DecoderNamespace = "EXT_mmvec"; 34875} 34876def V6_vminb : HInst< 34877(outs HvxVR:$Vd32), 34878(ins HvxVR:$Vu32, HvxVR:$Vv32), 34879"$Vd32.b = vmin($Vu32.b,$Vv32.b)", 34880tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> { 34881let Inst{7-5} = 0b100; 34882let Inst{13-13} = 0b0; 34883let Inst{31-21} = 0b00011111001; 34884let hasNewValue = 1; 34885let opNewValue = 0; 34886let isCVI = 1; 34887let isHVXALU = 1; 34888let isHVXALU2SRC = 1; 34889let DecoderNamespace = "EXT_mmvec"; 34890} 34891def V6_vminb_alt : HInst< 34892(outs HvxVR:$Vd32), 34893(ins HvxVR:$Vu32, HvxVR:$Vv32), 34894"$Vd32 = vminb($Vu32,$Vv32)", 34895PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 34896let hasNewValue = 1; 34897let opNewValue = 0; 34898let isCVI = 1; 34899let isPseudo = 1; 34900let isCodeGenOnly = 1; 34901let DecoderNamespace = "EXT_mmvec"; 34902} 34903def V6_vminh : HInst< 34904(outs HvxVR:$Vd32), 34905(ins HvxVR:$Vu32, HvxVR:$Vv32), 34906"$Vd32.h = vmin($Vu32.h,$Vv32.h)", 34907tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 34908let Inst{7-5} = 0b011; 34909let Inst{13-13} = 0b0; 34910let Inst{31-21} = 0b00011111000; 34911let hasNewValue = 1; 34912let opNewValue = 0; 34913let isCVI = 1; 34914let isHVXALU = 1; 34915let isHVXALU2SRC = 1; 34916let DecoderNamespace = "EXT_mmvec"; 34917} 34918def V6_vminh_alt : HInst< 34919(outs HvxVR:$Vd32), 34920(ins HvxVR:$Vu32, HvxVR:$Vv32), 34921"$Vd32 = vminh($Vu32,$Vv32)", 34922PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34923let hasNewValue = 1; 34924let opNewValue = 0; 34925let isCVI = 1; 34926let isPseudo = 1; 34927let isCodeGenOnly = 1; 34928let DecoderNamespace = "EXT_mmvec"; 34929} 34930def V6_vminub : HInst< 34931(outs HvxVR:$Vd32), 34932(ins HvxVR:$Vu32, HvxVR:$Vv32), 34933"$Vd32.ub = vmin($Vu32.ub,$Vv32.ub)", 34934tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 34935let Inst{7-5} = 0b001; 34936let Inst{13-13} = 0b0; 34937let Inst{31-21} = 0b00011111000; 34938let hasNewValue = 1; 34939let opNewValue = 0; 34940let isCVI = 1; 34941let isHVXALU = 1; 34942let isHVXALU2SRC = 1; 34943let DecoderNamespace = "EXT_mmvec"; 34944} 34945def V6_vminub_alt : HInst< 34946(outs HvxVR:$Vd32), 34947(ins HvxVR:$Vu32, HvxVR:$Vv32), 34948"$Vd32 = vminub($Vu32,$Vv32)", 34949PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34950let hasNewValue = 1; 34951let opNewValue = 0; 34952let isCVI = 1; 34953let isPseudo = 1; 34954let isCodeGenOnly = 1; 34955let DecoderNamespace = "EXT_mmvec"; 34956} 34957def V6_vminuh : HInst< 34958(outs HvxVR:$Vd32), 34959(ins HvxVR:$Vu32, HvxVR:$Vv32), 34960"$Vd32.uh = vmin($Vu32.uh,$Vv32.uh)", 34961tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 34962let Inst{7-5} = 0b010; 34963let Inst{13-13} = 0b0; 34964let Inst{31-21} = 0b00011111000; 34965let hasNewValue = 1; 34966let opNewValue = 0; 34967let isCVI = 1; 34968let isHVXALU = 1; 34969let isHVXALU2SRC = 1; 34970let DecoderNamespace = "EXT_mmvec"; 34971} 34972def V6_vminuh_alt : HInst< 34973(outs HvxVR:$Vd32), 34974(ins HvxVR:$Vu32, HvxVR:$Vv32), 34975"$Vd32 = vminuh($Vu32,$Vv32)", 34976PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 34977let hasNewValue = 1; 34978let opNewValue = 0; 34979let isCVI = 1; 34980let isPseudo = 1; 34981let isCodeGenOnly = 1; 34982let DecoderNamespace = "EXT_mmvec"; 34983} 34984def V6_vminw : HInst< 34985(outs HvxVR:$Vd32), 34986(ins HvxVR:$Vu32, HvxVR:$Vv32), 34987"$Vd32.w = vmin($Vu32.w,$Vv32.w)", 34988tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 34989let Inst{7-5} = 0b100; 34990let Inst{13-13} = 0b0; 34991let Inst{31-21} = 0b00011111000; 34992let hasNewValue = 1; 34993let opNewValue = 0; 34994let isCVI = 1; 34995let isHVXALU = 1; 34996let isHVXALU2SRC = 1; 34997let DecoderNamespace = "EXT_mmvec"; 34998} 34999def V6_vminw_alt : HInst< 35000(outs HvxVR:$Vd32), 35001(ins HvxVR:$Vu32, HvxVR:$Vv32), 35002"$Vd32 = vminw($Vu32,$Vv32)", 35003PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35004let hasNewValue = 1; 35005let opNewValue = 0; 35006let isCVI = 1; 35007let isPseudo = 1; 35008let isCodeGenOnly = 1; 35009let DecoderNamespace = "EXT_mmvec"; 35010} 35011def V6_vmpabus : HInst< 35012(outs HvxWR:$Vdd32), 35013(ins HvxWR:$Vuu32, IntRegs:$Rt32), 35014"$Vdd32.h = vmpa($Vuu32.ub,$Rt32.b)", 35015tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> { 35016let Inst{7-5} = 0b110; 35017let Inst{13-13} = 0b0; 35018let Inst{31-21} = 0b00011001001; 35019let hasNewValue = 1; 35020let opNewValue = 0; 35021let isCVI = 1; 35022let DecoderNamespace = "EXT_mmvec"; 35023} 35024def V6_vmpabus_acc : HInst< 35025(outs HvxWR:$Vxx32), 35026(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 35027"$Vxx32.h += vmpa($Vuu32.ub,$Rt32.b)", 35028tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> { 35029let Inst{7-5} = 0b110; 35030let Inst{13-13} = 0b1; 35031let Inst{31-21} = 0b00011001001; 35032let hasNewValue = 1; 35033let opNewValue = 0; 35034let isAccumulator = 1; 35035let isCVI = 1; 35036let DecoderNamespace = "EXT_mmvec"; 35037let Constraints = "$Vxx32 = $Vxx32in"; 35038} 35039def V6_vmpabus_acc_alt : HInst< 35040(outs HvxWR:$Vxx32), 35041(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 35042"$Vxx32 += vmpabus($Vuu32,$Rt32)", 35043PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35044let hasNewValue = 1; 35045let opNewValue = 0; 35046let isAccumulator = 1; 35047let isCVI = 1; 35048let isPseudo = 1; 35049let isCodeGenOnly = 1; 35050let DecoderNamespace = "EXT_mmvec"; 35051let Constraints = "$Vxx32 = $Vxx32in"; 35052} 35053def V6_vmpabus_alt : HInst< 35054(outs HvxWR:$Vdd32), 35055(ins HvxWR:$Vuu32, IntRegs:$Rt32), 35056"$Vdd32 = vmpabus($Vuu32,$Rt32)", 35057PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35058let hasNewValue = 1; 35059let opNewValue = 0; 35060let isCVI = 1; 35061let isPseudo = 1; 35062let isCodeGenOnly = 1; 35063let DecoderNamespace = "EXT_mmvec"; 35064} 35065def V6_vmpabusv : HInst< 35066(outs HvxWR:$Vdd32), 35067(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 35068"$Vdd32.h = vmpa($Vuu32.ub,$Vvv32.b)", 35069tc_d8287c14, TypeCVI_VX_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 35070let Inst{7-5} = 0b011; 35071let Inst{13-13} = 0b0; 35072let Inst{31-21} = 0b00011100001; 35073let hasNewValue = 1; 35074let opNewValue = 0; 35075let isCVI = 1; 35076let DecoderNamespace = "EXT_mmvec"; 35077} 35078def V6_vmpabusv_alt : HInst< 35079(outs HvxWR:$Vdd32), 35080(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 35081"$Vdd32 = vmpabus($Vuu32,$Vvv32)", 35082PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35083let hasNewValue = 1; 35084let opNewValue = 0; 35085let isCVI = 1; 35086let isPseudo = 1; 35087let isCodeGenOnly = 1; 35088let DecoderNamespace = "EXT_mmvec"; 35089} 35090def V6_vmpabuu : HInst< 35091(outs HvxWR:$Vdd32), 35092(ins HvxWR:$Vuu32, IntRegs:$Rt32), 35093"$Vdd32.h = vmpa($Vuu32.ub,$Rt32.ub)", 35094tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV65]> { 35095let Inst{7-5} = 0b011; 35096let Inst{13-13} = 0b0; 35097let Inst{31-21} = 0b00011001011; 35098let hasNewValue = 1; 35099let opNewValue = 0; 35100let isCVI = 1; 35101let DecoderNamespace = "EXT_mmvec"; 35102} 35103def V6_vmpabuu_acc : HInst< 35104(outs HvxWR:$Vxx32), 35105(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 35106"$Vxx32.h += vmpa($Vuu32.ub,$Rt32.ub)", 35107tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV65]> { 35108let Inst{7-5} = 0b100; 35109let Inst{13-13} = 0b1; 35110let Inst{31-21} = 0b00011001101; 35111let hasNewValue = 1; 35112let opNewValue = 0; 35113let isAccumulator = 1; 35114let isCVI = 1; 35115let DecoderNamespace = "EXT_mmvec"; 35116let Constraints = "$Vxx32 = $Vxx32in"; 35117} 35118def V6_vmpabuu_acc_alt : HInst< 35119(outs HvxWR:$Vxx32), 35120(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 35121"$Vxx32 += vmpabuu($Vuu32,$Rt32)", 35122PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 35123let hasNewValue = 1; 35124let opNewValue = 0; 35125let isAccumulator = 1; 35126let isCVI = 1; 35127let isPseudo = 1; 35128let isCodeGenOnly = 1; 35129let DecoderNamespace = "EXT_mmvec"; 35130let Constraints = "$Vxx32 = $Vxx32in"; 35131} 35132def V6_vmpabuu_alt : HInst< 35133(outs HvxWR:$Vdd32), 35134(ins HvxWR:$Vuu32, IntRegs:$Rt32), 35135"$Vdd32 = vmpabuu($Vuu32,$Rt32)", 35136PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 35137let hasNewValue = 1; 35138let opNewValue = 0; 35139let isCVI = 1; 35140let isPseudo = 1; 35141let isCodeGenOnly = 1; 35142let DecoderNamespace = "EXT_mmvec"; 35143} 35144def V6_vmpabuuv : HInst< 35145(outs HvxWR:$Vdd32), 35146(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 35147"$Vdd32.h = vmpa($Vuu32.ub,$Vvv32.ub)", 35148tc_d8287c14, TypeCVI_VX_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 35149let Inst{7-5} = 0b111; 35150let Inst{13-13} = 0b0; 35151let Inst{31-21} = 0b00011100111; 35152let hasNewValue = 1; 35153let opNewValue = 0; 35154let isCVI = 1; 35155let DecoderNamespace = "EXT_mmvec"; 35156} 35157def V6_vmpabuuv_alt : HInst< 35158(outs HvxWR:$Vdd32), 35159(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 35160"$Vdd32 = vmpabuu($Vuu32,$Vvv32)", 35161PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35162let hasNewValue = 1; 35163let opNewValue = 0; 35164let isCVI = 1; 35165let isPseudo = 1; 35166let isCodeGenOnly = 1; 35167let DecoderNamespace = "EXT_mmvec"; 35168} 35169def V6_vmpahb : HInst< 35170(outs HvxWR:$Vdd32), 35171(ins HvxWR:$Vuu32, IntRegs:$Rt32), 35172"$Vdd32.w = vmpa($Vuu32.h,$Rt32.b)", 35173tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> { 35174let Inst{7-5} = 0b111; 35175let Inst{13-13} = 0b0; 35176let Inst{31-21} = 0b00011001001; 35177let hasNewValue = 1; 35178let opNewValue = 0; 35179let isCVI = 1; 35180let DecoderNamespace = "EXT_mmvec"; 35181} 35182def V6_vmpahb_acc : HInst< 35183(outs HvxWR:$Vxx32), 35184(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 35185"$Vxx32.w += vmpa($Vuu32.h,$Rt32.b)", 35186tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> { 35187let Inst{7-5} = 0b111; 35188let Inst{13-13} = 0b1; 35189let Inst{31-21} = 0b00011001001; 35190let hasNewValue = 1; 35191let opNewValue = 0; 35192let isAccumulator = 1; 35193let isCVI = 1; 35194let DecoderNamespace = "EXT_mmvec"; 35195let Constraints = "$Vxx32 = $Vxx32in"; 35196} 35197def V6_vmpahb_acc_alt : HInst< 35198(outs HvxWR:$Vxx32), 35199(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 35200"$Vxx32 += vmpahb($Vuu32,$Rt32)", 35201PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35202let hasNewValue = 1; 35203let opNewValue = 0; 35204let isAccumulator = 1; 35205let isCVI = 1; 35206let isPseudo = 1; 35207let isCodeGenOnly = 1; 35208let DecoderNamespace = "EXT_mmvec"; 35209let Constraints = "$Vxx32 = $Vxx32in"; 35210} 35211def V6_vmpahb_alt : HInst< 35212(outs HvxWR:$Vdd32), 35213(ins HvxWR:$Vuu32, IntRegs:$Rt32), 35214"$Vdd32 = vmpahb($Vuu32,$Rt32)", 35215PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35216let hasNewValue = 1; 35217let opNewValue = 0; 35218let isCVI = 1; 35219let isPseudo = 1; 35220let isCodeGenOnly = 1; 35221let DecoderNamespace = "EXT_mmvec"; 35222} 35223def V6_vmpahhsat : HInst< 35224(outs HvxVR:$Vx32), 35225(ins HvxVR:$Vx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32), 35226"$Vx32.h = vmpa($Vx32in.h,$Vu32.h,$Rtt32.h):sat", 35227tc_90bcc1db, TypeCVI_VX_DV>, Enc_310ba1, Requires<[UseHVXV65]> { 35228let Inst{7-5} = 0b100; 35229let Inst{13-13} = 0b1; 35230let Inst{31-21} = 0b00011001100; 35231let hasNewValue = 1; 35232let opNewValue = 0; 35233let isCVI = 1; 35234let DecoderNamespace = "EXT_mmvec"; 35235let Constraints = "$Vx32 = $Vx32in"; 35236} 35237def V6_vmpauhb : HInst< 35238(outs HvxWR:$Vdd32), 35239(ins HvxWR:$Vuu32, IntRegs:$Rt32), 35240"$Vdd32.w = vmpa($Vuu32.uh,$Rt32.b)", 35241tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV62]> { 35242let Inst{7-5} = 0b101; 35243let Inst{13-13} = 0b0; 35244let Inst{31-21} = 0b00011001100; 35245let hasNewValue = 1; 35246let opNewValue = 0; 35247let isCVI = 1; 35248let DecoderNamespace = "EXT_mmvec"; 35249} 35250def V6_vmpauhb_acc : HInst< 35251(outs HvxWR:$Vxx32), 35252(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 35253"$Vxx32.w += vmpa($Vuu32.uh,$Rt32.b)", 35254tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV62]> { 35255let Inst{7-5} = 0b010; 35256let Inst{13-13} = 0b1; 35257let Inst{31-21} = 0b00011001100; 35258let hasNewValue = 1; 35259let opNewValue = 0; 35260let isAccumulator = 1; 35261let isCVI = 1; 35262let DecoderNamespace = "EXT_mmvec"; 35263let Constraints = "$Vxx32 = $Vxx32in"; 35264} 35265def V6_vmpauhb_acc_alt : HInst< 35266(outs HvxWR:$Vxx32), 35267(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 35268"$Vxx32 += vmpauhb($Vuu32,$Rt32)", 35269PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 35270let hasNewValue = 1; 35271let opNewValue = 0; 35272let isAccumulator = 1; 35273let isCVI = 1; 35274let isPseudo = 1; 35275let isCodeGenOnly = 1; 35276let DecoderNamespace = "EXT_mmvec"; 35277let Constraints = "$Vxx32 = $Vxx32in"; 35278} 35279def V6_vmpauhb_alt : HInst< 35280(outs HvxWR:$Vdd32), 35281(ins HvxWR:$Vuu32, IntRegs:$Rt32), 35282"$Vdd32 = vmpauhb($Vuu32,$Rt32)", 35283PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 35284let hasNewValue = 1; 35285let opNewValue = 0; 35286let isCVI = 1; 35287let isPseudo = 1; 35288let isCodeGenOnly = 1; 35289let DecoderNamespace = "EXT_mmvec"; 35290} 35291def V6_vmpauhuhsat : HInst< 35292(outs HvxVR:$Vx32), 35293(ins HvxVR:$Vx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32), 35294"$Vx32.h = vmpa($Vx32in.h,$Vu32.uh,$Rtt32.uh):sat", 35295tc_90bcc1db, TypeCVI_VX_DV>, Enc_310ba1, Requires<[UseHVXV65]> { 35296let Inst{7-5} = 0b101; 35297let Inst{13-13} = 0b1; 35298let Inst{31-21} = 0b00011001100; 35299let hasNewValue = 1; 35300let opNewValue = 0; 35301let isCVI = 1; 35302let DecoderNamespace = "EXT_mmvec"; 35303let Constraints = "$Vx32 = $Vx32in"; 35304} 35305def V6_vmpsuhuhsat : HInst< 35306(outs HvxVR:$Vx32), 35307(ins HvxVR:$Vx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32), 35308"$Vx32.h = vmps($Vx32in.h,$Vu32.uh,$Rtt32.uh):sat", 35309tc_90bcc1db, TypeCVI_VX_DV>, Enc_310ba1, Requires<[UseHVXV65]> { 35310let Inst{7-5} = 0b110; 35311let Inst{13-13} = 0b1; 35312let Inst{31-21} = 0b00011001100; 35313let hasNewValue = 1; 35314let opNewValue = 0; 35315let isCVI = 1; 35316let DecoderNamespace = "EXT_mmvec"; 35317let Constraints = "$Vx32 = $Vx32in"; 35318} 35319def V6_vmpy_hf_hf : HInst< 35320(outs HvxVR:$Vd32), 35321(ins HvxVR:$Vu32, HvxVR:$Vv32), 35322"$Vd32.hf = vmpy($Vu32.hf,$Vv32.hf)", 35323tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> { 35324let Inst{7-5} = 0b011; 35325let Inst{13-13} = 0b1; 35326let Inst{31-21} = 0b00011111100; 35327let hasNewValue = 1; 35328let opNewValue = 0; 35329let isCVI = 1; 35330let DecoderNamespace = "EXT_mmvec"; 35331} 35332def V6_vmpy_hf_hf_acc : HInst< 35333(outs HvxVR:$Vx32), 35334(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 35335"$Vx32.hf += vmpy($Vu32.hf,$Vv32.hf)", 35336tc_a19b9305, TypeCVI_VX>, Enc_a7341a, Requires<[UseHVXV68,UseHVXIEEEFP]> { 35337let Inst{7-5} = 0b010; 35338let Inst{13-13} = 0b1; 35339let Inst{31-21} = 0b00011100010; 35340let hasNewValue = 1; 35341let opNewValue = 0; 35342let isAccumulator = 1; 35343let isCVI = 1; 35344let DecoderNamespace = "EXT_mmvec"; 35345let Constraints = "$Vx32 = $Vx32in"; 35346} 35347def V6_vmpy_qf16 : HInst< 35348(outs HvxVR:$Vd32), 35349(ins HvxVR:$Vu32, HvxVR:$Vv32), 35350"$Vd32.qf16 = vmpy($Vu32.qf16,$Vv32.qf16)", 35351tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> { 35352let Inst{7-5} = 0b011; 35353let Inst{13-13} = 0b1; 35354let Inst{31-21} = 0b00011111111; 35355let hasNewValue = 1; 35356let opNewValue = 0; 35357let isCVI = 1; 35358let DecoderNamespace = "EXT_mmvec"; 35359} 35360def V6_vmpy_qf16_hf : HInst< 35361(outs HvxVR:$Vd32), 35362(ins HvxVR:$Vu32, HvxVR:$Vv32), 35363"$Vd32.qf16 = vmpy($Vu32.hf,$Vv32.hf)", 35364tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> { 35365let Inst{7-5} = 0b100; 35366let Inst{13-13} = 0b1; 35367let Inst{31-21} = 0b00011111111; 35368let hasNewValue = 1; 35369let opNewValue = 0; 35370let isCVI = 1; 35371let DecoderNamespace = "EXT_mmvec"; 35372} 35373def V6_vmpy_qf16_mix_hf : HInst< 35374(outs HvxVR:$Vd32), 35375(ins HvxVR:$Vu32, HvxVR:$Vv32), 35376"$Vd32.qf16 = vmpy($Vu32.qf16,$Vv32.hf)", 35377tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> { 35378let Inst{7-5} = 0b101; 35379let Inst{13-13} = 0b1; 35380let Inst{31-21} = 0b00011111111; 35381let hasNewValue = 1; 35382let opNewValue = 0; 35383let isCVI = 1; 35384let DecoderNamespace = "EXT_mmvec"; 35385} 35386def V6_vmpy_qf32 : HInst< 35387(outs HvxVR:$Vd32), 35388(ins HvxVR:$Vu32, HvxVR:$Vv32), 35389"$Vd32.qf32 = vmpy($Vu32.qf32,$Vv32.qf32)", 35390tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> { 35391let Inst{7-5} = 0b000; 35392let Inst{13-13} = 0b1; 35393let Inst{31-21} = 0b00011111111; 35394let hasNewValue = 1; 35395let opNewValue = 0; 35396let isCVI = 1; 35397let DecoderNamespace = "EXT_mmvec"; 35398} 35399def V6_vmpy_qf32_hf : HInst< 35400(outs HvxWR:$Vdd32), 35401(ins HvxVR:$Vu32, HvxVR:$Vv32), 35402"$Vdd32.qf32 = vmpy($Vu32.hf,$Vv32.hf)", 35403tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV68,UseHVXQFloat]> { 35404let Inst{7-5} = 0b111; 35405let Inst{13-13} = 0b1; 35406let Inst{31-21} = 0b00011111111; 35407let hasNewValue = 1; 35408let opNewValue = 0; 35409let isCVI = 1; 35410let DecoderNamespace = "EXT_mmvec"; 35411} 35412def V6_vmpy_qf32_mix_hf : HInst< 35413(outs HvxWR:$Vdd32), 35414(ins HvxVR:$Vu32, HvxVR:$Vv32), 35415"$Vdd32.qf32 = vmpy($Vu32.qf16,$Vv32.hf)", 35416tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV68,UseHVXQFloat]> { 35417let Inst{7-5} = 0b000; 35418let Inst{13-13} = 0b1; 35419let Inst{31-21} = 0b00011111100; 35420let hasNewValue = 1; 35421let opNewValue = 0; 35422let isCVI = 1; 35423let DecoderNamespace = "EXT_mmvec"; 35424} 35425def V6_vmpy_qf32_qf16 : HInst< 35426(outs HvxWR:$Vdd32), 35427(ins HvxVR:$Vu32, HvxVR:$Vv32), 35428"$Vdd32.qf32 = vmpy($Vu32.qf16,$Vv32.qf16)", 35429tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV68,UseHVXQFloat]> { 35430let Inst{7-5} = 0b110; 35431let Inst{13-13} = 0b1; 35432let Inst{31-21} = 0b00011111111; 35433let hasNewValue = 1; 35434let opNewValue = 0; 35435let isCVI = 1; 35436let DecoderNamespace = "EXT_mmvec"; 35437} 35438def V6_vmpy_qf32_sf : HInst< 35439(outs HvxVR:$Vd32), 35440(ins HvxVR:$Vu32, HvxVR:$Vv32), 35441"$Vd32.qf32 = vmpy($Vu32.sf,$Vv32.sf)", 35442tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> { 35443let Inst{7-5} = 0b001; 35444let Inst{13-13} = 0b1; 35445let Inst{31-21} = 0b00011111111; 35446let hasNewValue = 1; 35447let opNewValue = 0; 35448let isCVI = 1; 35449let DecoderNamespace = "EXT_mmvec"; 35450} 35451def V6_vmpy_sf_bf : HInst< 35452(outs HvxWR:$Vdd32), 35453(ins HvxVR:$Vu32, HvxVR:$Vv32), 35454"$Vdd32.sf = vmpy($Vu32.bf,$Vv32.bf)", 35455tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV73,UseHVXIEEEFP]> { 35456let Inst{7-5} = 0b100; 35457let Inst{13-13} = 0b1; 35458let Inst{31-21} = 0b00011101010; 35459let hasNewValue = 1; 35460let opNewValue = 0; 35461let isCVI = 1; 35462let DecoderNamespace = "EXT_mmvec"; 35463} 35464def V6_vmpy_sf_bf_acc : HInst< 35465(outs HvxWR:$Vxx32), 35466(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 35467"$Vxx32.sf += vmpy($Vu32.bf,$Vv32.bf)", 35468tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV73,UseHVXIEEEFP]> { 35469let Inst{7-5} = 0b000; 35470let Inst{13-13} = 0b1; 35471let Inst{31-21} = 0b00011101000; 35472let hasNewValue = 1; 35473let opNewValue = 0; 35474let isAccumulator = 1; 35475let isCVI = 1; 35476let DecoderNamespace = "EXT_mmvec"; 35477let Constraints = "$Vxx32 = $Vxx32in"; 35478} 35479def V6_vmpy_sf_hf : HInst< 35480(outs HvxWR:$Vdd32), 35481(ins HvxVR:$Vu32, HvxVR:$Vv32), 35482"$Vdd32.sf = vmpy($Vu32.hf,$Vv32.hf)", 35483tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV68,UseHVXIEEEFP]> { 35484let Inst{7-5} = 0b010; 35485let Inst{13-13} = 0b1; 35486let Inst{31-21} = 0b00011111100; 35487let hasNewValue = 1; 35488let opNewValue = 0; 35489let isCVI = 1; 35490let DecoderNamespace = "EXT_mmvec"; 35491} 35492def V6_vmpy_sf_hf_acc : HInst< 35493(outs HvxWR:$Vxx32), 35494(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 35495"$Vxx32.sf += vmpy($Vu32.hf,$Vv32.hf)", 35496tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV68,UseHVXIEEEFP]> { 35497let Inst{7-5} = 0b001; 35498let Inst{13-13} = 0b1; 35499let Inst{31-21} = 0b00011100010; 35500let hasNewValue = 1; 35501let opNewValue = 0; 35502let isAccumulator = 1; 35503let isCVI = 1; 35504let DecoderNamespace = "EXT_mmvec"; 35505let Constraints = "$Vxx32 = $Vxx32in"; 35506} 35507def V6_vmpy_sf_sf : HInst< 35508(outs HvxVR:$Vd32), 35509(ins HvxVR:$Vu32, HvxVR:$Vv32), 35510"$Vd32.sf = vmpy($Vu32.sf,$Vv32.sf)", 35511tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> { 35512let Inst{7-5} = 0b001; 35513let Inst{13-13} = 0b1; 35514let Inst{31-21} = 0b00011111100; 35515let hasNewValue = 1; 35516let opNewValue = 0; 35517let isCVI = 1; 35518let DecoderNamespace = "EXT_mmvec"; 35519} 35520def V6_vmpybus : HInst< 35521(outs HvxWR:$Vdd32), 35522(ins HvxVR:$Vu32, IntRegs:$Rt32), 35523"$Vdd32.h = vmpy($Vu32.ub,$Rt32.b)", 35524tc_0b04c6c7, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[UseHVXV60]> { 35525let Inst{7-5} = 0b101; 35526let Inst{13-13} = 0b0; 35527let Inst{31-21} = 0b00011001001; 35528let hasNewValue = 1; 35529let opNewValue = 0; 35530let isCVI = 1; 35531let DecoderNamespace = "EXT_mmvec"; 35532} 35533def V6_vmpybus_acc : HInst< 35534(outs HvxWR:$Vxx32), 35535(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32), 35536"$Vxx32.h += vmpy($Vu32.ub,$Rt32.b)", 35537tc_660769f1, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV60]> { 35538let Inst{7-5} = 0b101; 35539let Inst{13-13} = 0b1; 35540let Inst{31-21} = 0b00011001001; 35541let hasNewValue = 1; 35542let opNewValue = 0; 35543let isAccumulator = 1; 35544let isCVI = 1; 35545let DecoderNamespace = "EXT_mmvec"; 35546let Constraints = "$Vxx32 = $Vxx32in"; 35547} 35548def V6_vmpybus_acc_alt : HInst< 35549(outs HvxWR:$Vxx32), 35550(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32), 35551"$Vxx32 += vmpybus($Vu32,$Rt32)", 35552PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35553let hasNewValue = 1; 35554let opNewValue = 0; 35555let isAccumulator = 1; 35556let isCVI = 1; 35557let isPseudo = 1; 35558let isCodeGenOnly = 1; 35559let DecoderNamespace = "EXT_mmvec"; 35560let Constraints = "$Vxx32 = $Vxx32in"; 35561} 35562def V6_vmpybus_alt : HInst< 35563(outs HvxWR:$Vdd32), 35564(ins HvxVR:$Vu32, IntRegs:$Rt32), 35565"$Vdd32 = vmpybus($Vu32,$Rt32)", 35566PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35567let hasNewValue = 1; 35568let opNewValue = 0; 35569let isCVI = 1; 35570let isPseudo = 1; 35571let isCodeGenOnly = 1; 35572let DecoderNamespace = "EXT_mmvec"; 35573} 35574def V6_vmpybusv : HInst< 35575(outs HvxWR:$Vdd32), 35576(ins HvxVR:$Vu32, HvxVR:$Vv32), 35577"$Vdd32.h = vmpy($Vu32.ub,$Vv32.b)", 35578tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 35579let Inst{7-5} = 0b110; 35580let Inst{13-13} = 0b0; 35581let Inst{31-21} = 0b00011100000; 35582let hasNewValue = 1; 35583let opNewValue = 0; 35584let isCVI = 1; 35585let DecoderNamespace = "EXT_mmvec"; 35586} 35587def V6_vmpybusv_acc : HInst< 35588(outs HvxWR:$Vxx32), 35589(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 35590"$Vxx32.h += vmpy($Vu32.ub,$Vv32.b)", 35591tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> { 35592let Inst{7-5} = 0b110; 35593let Inst{13-13} = 0b1; 35594let Inst{31-21} = 0b00011100000; 35595let hasNewValue = 1; 35596let opNewValue = 0; 35597let isAccumulator = 1; 35598let isCVI = 1; 35599let DecoderNamespace = "EXT_mmvec"; 35600let Constraints = "$Vxx32 = $Vxx32in"; 35601} 35602def V6_vmpybusv_acc_alt : HInst< 35603(outs HvxWR:$Vxx32), 35604(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 35605"$Vxx32 += vmpybus($Vu32,$Vv32)", 35606PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35607let hasNewValue = 1; 35608let opNewValue = 0; 35609let isAccumulator = 1; 35610let isCVI = 1; 35611let isPseudo = 1; 35612let isCodeGenOnly = 1; 35613let DecoderNamespace = "EXT_mmvec"; 35614let Constraints = "$Vxx32 = $Vxx32in"; 35615} 35616def V6_vmpybusv_alt : HInst< 35617(outs HvxWR:$Vdd32), 35618(ins HvxVR:$Vu32, HvxVR:$Vv32), 35619"$Vdd32 = vmpybus($Vu32,$Vv32)", 35620PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35621let hasNewValue = 1; 35622let opNewValue = 0; 35623let isCVI = 1; 35624let isPseudo = 1; 35625let isCodeGenOnly = 1; 35626let DecoderNamespace = "EXT_mmvec"; 35627} 35628def V6_vmpybv : HInst< 35629(outs HvxWR:$Vdd32), 35630(ins HvxVR:$Vu32, HvxVR:$Vv32), 35631"$Vdd32.h = vmpy($Vu32.b,$Vv32.b)", 35632tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 35633let Inst{7-5} = 0b100; 35634let Inst{13-13} = 0b0; 35635let Inst{31-21} = 0b00011100000; 35636let hasNewValue = 1; 35637let opNewValue = 0; 35638let isCVI = 1; 35639let DecoderNamespace = "EXT_mmvec"; 35640} 35641def V6_vmpybv_acc : HInst< 35642(outs HvxWR:$Vxx32), 35643(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 35644"$Vxx32.h += vmpy($Vu32.b,$Vv32.b)", 35645tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> { 35646let Inst{7-5} = 0b100; 35647let Inst{13-13} = 0b1; 35648let Inst{31-21} = 0b00011100000; 35649let hasNewValue = 1; 35650let opNewValue = 0; 35651let isAccumulator = 1; 35652let isCVI = 1; 35653let DecoderNamespace = "EXT_mmvec"; 35654let Constraints = "$Vxx32 = $Vxx32in"; 35655} 35656def V6_vmpybv_acc_alt : HInst< 35657(outs HvxWR:$Vxx32), 35658(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 35659"$Vxx32 += vmpyb($Vu32,$Vv32)", 35660PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35661let hasNewValue = 1; 35662let opNewValue = 0; 35663let isAccumulator = 1; 35664let isCVI = 1; 35665let isPseudo = 1; 35666let isCodeGenOnly = 1; 35667let DecoderNamespace = "EXT_mmvec"; 35668let Constraints = "$Vxx32 = $Vxx32in"; 35669} 35670def V6_vmpybv_alt : HInst< 35671(outs HvxWR:$Vdd32), 35672(ins HvxVR:$Vu32, HvxVR:$Vv32), 35673"$Vdd32 = vmpyb($Vu32,$Vv32)", 35674PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35675let hasNewValue = 1; 35676let opNewValue = 0; 35677let isCVI = 1; 35678let isPseudo = 1; 35679let isCodeGenOnly = 1; 35680let DecoderNamespace = "EXT_mmvec"; 35681} 35682def V6_vmpyewuh : HInst< 35683(outs HvxVR:$Vd32), 35684(ins HvxVR:$Vu32, HvxVR:$Vv32), 35685"$Vd32.w = vmpye($Vu32.w,$Vv32.uh)", 35686tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> { 35687let Inst{7-5} = 0b101; 35688let Inst{13-13} = 0b0; 35689let Inst{31-21} = 0b00011111111; 35690let hasNewValue = 1; 35691let opNewValue = 0; 35692let isCVI = 1; 35693let DecoderNamespace = "EXT_mmvec"; 35694} 35695def V6_vmpyewuh_64 : HInst< 35696(outs HvxWR:$Vdd32), 35697(ins HvxVR:$Vu32, HvxVR:$Vv32), 35698"$Vdd32 = vmpye($Vu32.w,$Vv32.uh)", 35699tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV62]> { 35700let Inst{7-5} = 0b110; 35701let Inst{13-13} = 0b0; 35702let Inst{31-21} = 0b00011110101; 35703let hasNewValue = 1; 35704let opNewValue = 0; 35705let isCVI = 1; 35706let DecoderNamespace = "EXT_mmvec"; 35707} 35708def V6_vmpyewuh_alt : HInst< 35709(outs HvxVR:$Vd32), 35710(ins HvxVR:$Vu32, HvxVR:$Vv32), 35711"$Vd32 = vmpyewuh($Vu32,$Vv32)", 35712PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35713let hasNewValue = 1; 35714let opNewValue = 0; 35715let isCVI = 1; 35716let isPseudo = 1; 35717let isCodeGenOnly = 1; 35718let DecoderNamespace = "EXT_mmvec"; 35719} 35720def V6_vmpyh : HInst< 35721(outs HvxWR:$Vdd32), 35722(ins HvxVR:$Vu32, IntRegs:$Rt32), 35723"$Vdd32.w = vmpy($Vu32.h,$Rt32.h)", 35724tc_0b04c6c7, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[UseHVXV60]> { 35725let Inst{7-5} = 0b000; 35726let Inst{13-13} = 0b0; 35727let Inst{31-21} = 0b00011001010; 35728let hasNewValue = 1; 35729let opNewValue = 0; 35730let isCVI = 1; 35731let DecoderNamespace = "EXT_mmvec"; 35732} 35733def V6_vmpyh_acc : HInst< 35734(outs HvxWR:$Vxx32), 35735(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32), 35736"$Vxx32.w += vmpy($Vu32.h,$Rt32.h)", 35737tc_660769f1, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV65]> { 35738let Inst{7-5} = 0b110; 35739let Inst{13-13} = 0b1; 35740let Inst{31-21} = 0b00011001101; 35741let hasNewValue = 1; 35742let opNewValue = 0; 35743let isAccumulator = 1; 35744let isCVI = 1; 35745let DecoderNamespace = "EXT_mmvec"; 35746let Constraints = "$Vxx32 = $Vxx32in"; 35747} 35748def V6_vmpyh_acc_alt : HInst< 35749(outs HvxWR:$Vxx32), 35750(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32), 35751"$Vxx32 += vmpyh($Vu32,$Rt32)", 35752PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 35753let hasNewValue = 1; 35754let opNewValue = 0; 35755let isAccumulator = 1; 35756let isCVI = 1; 35757let isPseudo = 1; 35758let isCodeGenOnly = 1; 35759let DecoderNamespace = "EXT_mmvec"; 35760let Constraints = "$Vxx32 = $Vxx32in"; 35761} 35762def V6_vmpyh_alt : HInst< 35763(outs HvxWR:$Vdd32), 35764(ins HvxVR:$Vu32, IntRegs:$Rt32), 35765"$Vdd32 = vmpyh($Vu32,$Rt32)", 35766PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35767let hasNewValue = 1; 35768let opNewValue = 0; 35769let isCVI = 1; 35770let isPseudo = 1; 35771let isCodeGenOnly = 1; 35772let DecoderNamespace = "EXT_mmvec"; 35773} 35774def V6_vmpyhsat_acc : HInst< 35775(outs HvxWR:$Vxx32), 35776(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32), 35777"$Vxx32.w += vmpy($Vu32.h,$Rt32.h):sat", 35778tc_660769f1, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV60]> { 35779let Inst{7-5} = 0b000; 35780let Inst{13-13} = 0b1; 35781let Inst{31-21} = 0b00011001010; 35782let hasNewValue = 1; 35783let opNewValue = 0; 35784let isAccumulator = 1; 35785let isCVI = 1; 35786let DecoderNamespace = "EXT_mmvec"; 35787let Constraints = "$Vxx32 = $Vxx32in"; 35788} 35789def V6_vmpyhsat_acc_alt : HInst< 35790(outs HvxWR:$Vxx32), 35791(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32), 35792"$Vxx32 += vmpyh($Vu32,$Rt32):sat", 35793PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35794let hasNewValue = 1; 35795let opNewValue = 0; 35796let isAccumulator = 1; 35797let isCVI = 1; 35798let isPseudo = 1; 35799let isCodeGenOnly = 1; 35800let DecoderNamespace = "EXT_mmvec"; 35801let Constraints = "$Vxx32 = $Vxx32in"; 35802} 35803def V6_vmpyhsrs : HInst< 35804(outs HvxVR:$Vd32), 35805(ins HvxVR:$Vu32, IntRegs:$Rt32), 35806"$Vd32.h = vmpy($Vu32.h,$Rt32.h):<<1:rnd:sat", 35807tc_dcca380f, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> { 35808let Inst{7-5} = 0b010; 35809let Inst{13-13} = 0b0; 35810let Inst{31-21} = 0b00011001010; 35811let hasNewValue = 1; 35812let opNewValue = 0; 35813let isCVI = 1; 35814let DecoderNamespace = "EXT_mmvec"; 35815} 35816def V6_vmpyhsrs_alt : HInst< 35817(outs HvxVR:$Vd32), 35818(ins HvxVR:$Vu32, IntRegs:$Rt32), 35819"$Vd32 = vmpyh($Vu32,$Rt32):<<1:rnd:sat", 35820PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35821let hasNewValue = 1; 35822let opNewValue = 0; 35823let isCVI = 1; 35824let isPseudo = 1; 35825let isCodeGenOnly = 1; 35826let DecoderNamespace = "EXT_mmvec"; 35827} 35828def V6_vmpyhss : HInst< 35829(outs HvxVR:$Vd32), 35830(ins HvxVR:$Vu32, IntRegs:$Rt32), 35831"$Vd32.h = vmpy($Vu32.h,$Rt32.h):<<1:sat", 35832tc_dcca380f, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> { 35833let Inst{7-5} = 0b001; 35834let Inst{13-13} = 0b0; 35835let Inst{31-21} = 0b00011001010; 35836let hasNewValue = 1; 35837let opNewValue = 0; 35838let isCVI = 1; 35839let DecoderNamespace = "EXT_mmvec"; 35840} 35841def V6_vmpyhss_alt : HInst< 35842(outs HvxVR:$Vd32), 35843(ins HvxVR:$Vu32, IntRegs:$Rt32), 35844"$Vd32 = vmpyh($Vu32,$Rt32):<<1:sat", 35845PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35846let hasNewValue = 1; 35847let opNewValue = 0; 35848let isCVI = 1; 35849let isPseudo = 1; 35850let isCodeGenOnly = 1; 35851let DecoderNamespace = "EXT_mmvec"; 35852} 35853def V6_vmpyhus : HInst< 35854(outs HvxWR:$Vdd32), 35855(ins HvxVR:$Vu32, HvxVR:$Vv32), 35856"$Vdd32.w = vmpy($Vu32.h,$Vv32.uh)", 35857tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 35858let Inst{7-5} = 0b010; 35859let Inst{13-13} = 0b0; 35860let Inst{31-21} = 0b00011100001; 35861let hasNewValue = 1; 35862let opNewValue = 0; 35863let isCVI = 1; 35864let DecoderNamespace = "EXT_mmvec"; 35865} 35866def V6_vmpyhus_acc : HInst< 35867(outs HvxWR:$Vxx32), 35868(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 35869"$Vxx32.w += vmpy($Vu32.h,$Vv32.uh)", 35870tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> { 35871let Inst{7-5} = 0b001; 35872let Inst{13-13} = 0b1; 35873let Inst{31-21} = 0b00011100001; 35874let hasNewValue = 1; 35875let opNewValue = 0; 35876let isAccumulator = 1; 35877let isCVI = 1; 35878let DecoderNamespace = "EXT_mmvec"; 35879let Constraints = "$Vxx32 = $Vxx32in"; 35880} 35881def V6_vmpyhus_acc_alt : HInst< 35882(outs HvxWR:$Vxx32), 35883(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 35884"$Vxx32 += vmpyhus($Vu32,$Vv32)", 35885PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35886let hasNewValue = 1; 35887let opNewValue = 0; 35888let isAccumulator = 1; 35889let isCVI = 1; 35890let isPseudo = 1; 35891let isCodeGenOnly = 1; 35892let DecoderNamespace = "EXT_mmvec"; 35893let Constraints = "$Vxx32 = $Vxx32in"; 35894} 35895def V6_vmpyhus_alt : HInst< 35896(outs HvxWR:$Vdd32), 35897(ins HvxVR:$Vu32, HvxVR:$Vv32), 35898"$Vdd32 = vmpyhus($Vu32,$Vv32)", 35899PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35900let hasNewValue = 1; 35901let opNewValue = 0; 35902let isCVI = 1; 35903let isPseudo = 1; 35904let isCodeGenOnly = 1; 35905let DecoderNamespace = "EXT_mmvec"; 35906} 35907def V6_vmpyhv : HInst< 35908(outs HvxWR:$Vdd32), 35909(ins HvxVR:$Vu32, HvxVR:$Vv32), 35910"$Vdd32.w = vmpy($Vu32.h,$Vv32.h)", 35911tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 35912let Inst{7-5} = 0b111; 35913let Inst{13-13} = 0b0; 35914let Inst{31-21} = 0b00011100000; 35915let hasNewValue = 1; 35916let opNewValue = 0; 35917let isCVI = 1; 35918let DecoderNamespace = "EXT_mmvec"; 35919} 35920def V6_vmpyhv_acc : HInst< 35921(outs HvxWR:$Vxx32), 35922(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 35923"$Vxx32.w += vmpy($Vu32.h,$Vv32.h)", 35924tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> { 35925let Inst{7-5} = 0b111; 35926let Inst{13-13} = 0b1; 35927let Inst{31-21} = 0b00011100000; 35928let hasNewValue = 1; 35929let opNewValue = 0; 35930let isAccumulator = 1; 35931let isCVI = 1; 35932let DecoderNamespace = "EXT_mmvec"; 35933let Constraints = "$Vxx32 = $Vxx32in"; 35934} 35935def V6_vmpyhv_acc_alt : HInst< 35936(outs HvxWR:$Vxx32), 35937(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 35938"$Vxx32 += vmpyh($Vu32,$Vv32)", 35939PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35940let hasNewValue = 1; 35941let opNewValue = 0; 35942let isAccumulator = 1; 35943let isCVI = 1; 35944let isPseudo = 1; 35945let isCodeGenOnly = 1; 35946let DecoderNamespace = "EXT_mmvec"; 35947let Constraints = "$Vxx32 = $Vxx32in"; 35948} 35949def V6_vmpyhv_alt : HInst< 35950(outs HvxWR:$Vdd32), 35951(ins HvxVR:$Vu32, HvxVR:$Vv32), 35952"$Vdd32 = vmpyh($Vu32,$Vv32)", 35953PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35954let hasNewValue = 1; 35955let opNewValue = 0; 35956let isCVI = 1; 35957let isPseudo = 1; 35958let isCodeGenOnly = 1; 35959let DecoderNamespace = "EXT_mmvec"; 35960} 35961def V6_vmpyhvsrs : HInst< 35962(outs HvxVR:$Vd32), 35963(ins HvxVR:$Vu32, HvxVR:$Vv32), 35964"$Vd32.h = vmpy($Vu32.h,$Vv32.h):<<1:rnd:sat", 35965tc_73efe966, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> { 35966let Inst{7-5} = 0b001; 35967let Inst{13-13} = 0b0; 35968let Inst{31-21} = 0b00011100001; 35969let hasNewValue = 1; 35970let opNewValue = 0; 35971let isCVI = 1; 35972let DecoderNamespace = "EXT_mmvec"; 35973} 35974def V6_vmpyhvsrs_alt : HInst< 35975(outs HvxVR:$Vd32), 35976(ins HvxVR:$Vu32, HvxVR:$Vv32), 35977"$Vd32 = vmpyh($Vu32,$Vv32):<<1:rnd:sat", 35978PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 35979let hasNewValue = 1; 35980let opNewValue = 0; 35981let isCVI = 1; 35982let isPseudo = 1; 35983let isCodeGenOnly = 1; 35984let DecoderNamespace = "EXT_mmvec"; 35985} 35986def V6_vmpyieoh : HInst< 35987(outs HvxVR:$Vd32), 35988(ins HvxVR:$Vu32, HvxVR:$Vv32), 35989"$Vd32.w = vmpyieo($Vu32.h,$Vv32.h)", 35990tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> { 35991let Inst{7-5} = 0b000; 35992let Inst{13-13} = 0b0; 35993let Inst{31-21} = 0b00011111011; 35994let hasNewValue = 1; 35995let opNewValue = 0; 35996let isCVI = 1; 35997let DecoderNamespace = "EXT_mmvec"; 35998} 35999def V6_vmpyiewh_acc : HInst< 36000(outs HvxVR:$Vx32), 36001(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 36002"$Vx32.w += vmpyie($Vu32.w,$Vv32.h)", 36003tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> { 36004let Inst{7-5} = 0b000; 36005let Inst{13-13} = 0b1; 36006let Inst{31-21} = 0b00011100010; 36007let hasNewValue = 1; 36008let opNewValue = 0; 36009let isAccumulator = 1; 36010let isCVI = 1; 36011let DecoderNamespace = "EXT_mmvec"; 36012let Constraints = "$Vx32 = $Vx32in"; 36013} 36014def V6_vmpyiewh_acc_alt : HInst< 36015(outs HvxVR:$Vx32), 36016(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 36017"$Vx32 += vmpyiewh($Vu32,$Vv32)", 36018PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36019let hasNewValue = 1; 36020let opNewValue = 0; 36021let isAccumulator = 1; 36022let isCVI = 1; 36023let isPseudo = 1; 36024let isCodeGenOnly = 1; 36025let DecoderNamespace = "EXT_mmvec"; 36026let Constraints = "$Vx32 = $Vx32in"; 36027} 36028def V6_vmpyiewuh : HInst< 36029(outs HvxVR:$Vd32), 36030(ins HvxVR:$Vu32, HvxVR:$Vv32), 36031"$Vd32.w = vmpyie($Vu32.w,$Vv32.uh)", 36032tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> { 36033let Inst{7-5} = 0b000; 36034let Inst{13-13} = 0b0; 36035let Inst{31-21} = 0b00011111110; 36036let hasNewValue = 1; 36037let opNewValue = 0; 36038let isCVI = 1; 36039let DecoderNamespace = "EXT_mmvec"; 36040} 36041def V6_vmpyiewuh_acc : HInst< 36042(outs HvxVR:$Vx32), 36043(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 36044"$Vx32.w += vmpyie($Vu32.w,$Vv32.uh)", 36045tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> { 36046let Inst{7-5} = 0b101; 36047let Inst{13-13} = 0b1; 36048let Inst{31-21} = 0b00011100001; 36049let hasNewValue = 1; 36050let opNewValue = 0; 36051let isAccumulator = 1; 36052let isCVI = 1; 36053let DecoderNamespace = "EXT_mmvec"; 36054let Constraints = "$Vx32 = $Vx32in"; 36055} 36056def V6_vmpyiewuh_acc_alt : HInst< 36057(outs HvxVR:$Vx32), 36058(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 36059"$Vx32 += vmpyiewuh($Vu32,$Vv32)", 36060PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36061let hasNewValue = 1; 36062let opNewValue = 0; 36063let isAccumulator = 1; 36064let isCVI = 1; 36065let isPseudo = 1; 36066let isCodeGenOnly = 1; 36067let DecoderNamespace = "EXT_mmvec"; 36068let Constraints = "$Vx32 = $Vx32in"; 36069} 36070def V6_vmpyiewuh_alt : HInst< 36071(outs HvxVR:$Vd32), 36072(ins HvxVR:$Vu32, HvxVR:$Vv32), 36073"$Vd32 = vmpyiewuh($Vu32,$Vv32)", 36074PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36075let hasNewValue = 1; 36076let opNewValue = 0; 36077let isCVI = 1; 36078let isPseudo = 1; 36079let isCodeGenOnly = 1; 36080let DecoderNamespace = "EXT_mmvec"; 36081} 36082def V6_vmpyih : HInst< 36083(outs HvxVR:$Vd32), 36084(ins HvxVR:$Vu32, HvxVR:$Vv32), 36085"$Vd32.h = vmpyi($Vu32.h,$Vv32.h)", 36086tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> { 36087let Inst{7-5} = 0b100; 36088let Inst{13-13} = 0b0; 36089let Inst{31-21} = 0b00011100001; 36090let hasNewValue = 1; 36091let opNewValue = 0; 36092let isCVI = 1; 36093let DecoderNamespace = "EXT_mmvec"; 36094} 36095def V6_vmpyih_acc : HInst< 36096(outs HvxVR:$Vx32), 36097(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 36098"$Vx32.h += vmpyi($Vu32.h,$Vv32.h)", 36099tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> { 36100let Inst{7-5} = 0b100; 36101let Inst{13-13} = 0b1; 36102let Inst{31-21} = 0b00011100001; 36103let hasNewValue = 1; 36104let opNewValue = 0; 36105let isAccumulator = 1; 36106let isCVI = 1; 36107let DecoderNamespace = "EXT_mmvec"; 36108let Constraints = "$Vx32 = $Vx32in"; 36109} 36110def V6_vmpyih_acc_alt : HInst< 36111(outs HvxVR:$Vx32), 36112(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 36113"$Vx32 += vmpyih($Vu32,$Vv32)", 36114PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36115let hasNewValue = 1; 36116let opNewValue = 0; 36117let isAccumulator = 1; 36118let isCVI = 1; 36119let isPseudo = 1; 36120let isCodeGenOnly = 1; 36121let DecoderNamespace = "EXT_mmvec"; 36122let Constraints = "$Vx32 = $Vx32in"; 36123} 36124def V6_vmpyih_alt : HInst< 36125(outs HvxVR:$Vd32), 36126(ins HvxVR:$Vu32, HvxVR:$Vv32), 36127"$Vd32 = vmpyih($Vu32,$Vv32)", 36128PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36129let hasNewValue = 1; 36130let opNewValue = 0; 36131let isCVI = 1; 36132let isPseudo = 1; 36133let isCodeGenOnly = 1; 36134let DecoderNamespace = "EXT_mmvec"; 36135} 36136def V6_vmpyihb : HInst< 36137(outs HvxVR:$Vd32), 36138(ins HvxVR:$Vu32, IntRegs:$Rt32), 36139"$Vd32.h = vmpyi($Vu32.h,$Rt32.b)", 36140tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> { 36141let Inst{7-5} = 0b000; 36142let Inst{13-13} = 0b0; 36143let Inst{31-21} = 0b00011001011; 36144let hasNewValue = 1; 36145let opNewValue = 0; 36146let isCVI = 1; 36147let DecoderNamespace = "EXT_mmvec"; 36148} 36149def V6_vmpyihb_acc : HInst< 36150(outs HvxVR:$Vx32), 36151(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 36152"$Vx32.h += vmpyi($Vu32.h,$Rt32.b)", 36153tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> { 36154let Inst{7-5} = 0b001; 36155let Inst{13-13} = 0b1; 36156let Inst{31-21} = 0b00011001011; 36157let hasNewValue = 1; 36158let opNewValue = 0; 36159let isAccumulator = 1; 36160let isCVI = 1; 36161let DecoderNamespace = "EXT_mmvec"; 36162let Constraints = "$Vx32 = $Vx32in"; 36163} 36164def V6_vmpyihb_acc_alt : HInst< 36165(outs HvxVR:$Vx32), 36166(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 36167"$Vx32 += vmpyihb($Vu32,$Rt32)", 36168PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36169let hasNewValue = 1; 36170let opNewValue = 0; 36171let isAccumulator = 1; 36172let isCVI = 1; 36173let isPseudo = 1; 36174let isCodeGenOnly = 1; 36175let DecoderNamespace = "EXT_mmvec"; 36176let Constraints = "$Vx32 = $Vx32in"; 36177} 36178def V6_vmpyihb_alt : HInst< 36179(outs HvxVR:$Vd32), 36180(ins HvxVR:$Vu32, IntRegs:$Rt32), 36181"$Vd32 = vmpyihb($Vu32,$Rt32)", 36182PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36183let hasNewValue = 1; 36184let opNewValue = 0; 36185let isCVI = 1; 36186let isPseudo = 1; 36187let isCodeGenOnly = 1; 36188let DecoderNamespace = "EXT_mmvec"; 36189} 36190def V6_vmpyiowh : HInst< 36191(outs HvxVR:$Vd32), 36192(ins HvxVR:$Vu32, HvxVR:$Vv32), 36193"$Vd32.w = vmpyio($Vu32.w,$Vv32.h)", 36194tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> { 36195let Inst{7-5} = 0b001; 36196let Inst{13-13} = 0b0; 36197let Inst{31-21} = 0b00011111110; 36198let hasNewValue = 1; 36199let opNewValue = 0; 36200let isCVI = 1; 36201let DecoderNamespace = "EXT_mmvec"; 36202} 36203def V6_vmpyiowh_alt : HInst< 36204(outs HvxVR:$Vd32), 36205(ins HvxVR:$Vu32, HvxVR:$Vv32), 36206"$Vd32 = vmpyiowh($Vu32,$Vv32)", 36207PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36208let hasNewValue = 1; 36209let opNewValue = 0; 36210let isCVI = 1; 36211let isPseudo = 1; 36212let isCodeGenOnly = 1; 36213let DecoderNamespace = "EXT_mmvec"; 36214} 36215def V6_vmpyiwb : HInst< 36216(outs HvxVR:$Vd32), 36217(ins HvxVR:$Vu32, IntRegs:$Rt32), 36218"$Vd32.w = vmpyi($Vu32.w,$Rt32.b)", 36219tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> { 36220let Inst{7-5} = 0b000; 36221let Inst{13-13} = 0b0; 36222let Inst{31-21} = 0b00011001101; 36223let hasNewValue = 1; 36224let opNewValue = 0; 36225let isCVI = 1; 36226let DecoderNamespace = "EXT_mmvec"; 36227} 36228def V6_vmpyiwb_acc : HInst< 36229(outs HvxVR:$Vx32), 36230(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 36231"$Vx32.w += vmpyi($Vu32.w,$Rt32.b)", 36232tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> { 36233let Inst{7-5} = 0b010; 36234let Inst{13-13} = 0b1; 36235let Inst{31-21} = 0b00011001010; 36236let hasNewValue = 1; 36237let opNewValue = 0; 36238let isAccumulator = 1; 36239let isCVI = 1; 36240let DecoderNamespace = "EXT_mmvec"; 36241let Constraints = "$Vx32 = $Vx32in"; 36242} 36243def V6_vmpyiwb_acc_alt : HInst< 36244(outs HvxVR:$Vx32), 36245(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 36246"$Vx32 += vmpyiwb($Vu32,$Rt32)", 36247PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36248let hasNewValue = 1; 36249let opNewValue = 0; 36250let isAccumulator = 1; 36251let isCVI = 1; 36252let isPseudo = 1; 36253let isCodeGenOnly = 1; 36254let DecoderNamespace = "EXT_mmvec"; 36255let Constraints = "$Vx32 = $Vx32in"; 36256} 36257def V6_vmpyiwb_alt : HInst< 36258(outs HvxVR:$Vd32), 36259(ins HvxVR:$Vu32, IntRegs:$Rt32), 36260"$Vd32 = vmpyiwb($Vu32,$Rt32)", 36261PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36262let hasNewValue = 1; 36263let opNewValue = 0; 36264let isCVI = 1; 36265let isPseudo = 1; 36266let isCodeGenOnly = 1; 36267let DecoderNamespace = "EXT_mmvec"; 36268} 36269def V6_vmpyiwh : HInst< 36270(outs HvxVR:$Vd32), 36271(ins HvxVR:$Vu32, IntRegs:$Rt32), 36272"$Vd32.w = vmpyi($Vu32.w,$Rt32.h)", 36273tc_0b04c6c7, TypeCVI_VX_DV>, Enc_b087ac, Requires<[UseHVXV60]> { 36274let Inst{7-5} = 0b111; 36275let Inst{13-13} = 0b0; 36276let Inst{31-21} = 0b00011001100; 36277let hasNewValue = 1; 36278let opNewValue = 0; 36279let isCVI = 1; 36280let DecoderNamespace = "EXT_mmvec"; 36281} 36282def V6_vmpyiwh_acc : HInst< 36283(outs HvxVR:$Vx32), 36284(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 36285"$Vx32.w += vmpyi($Vu32.w,$Rt32.h)", 36286tc_660769f1, TypeCVI_VX_DV>, Enc_5138b3, Requires<[UseHVXV60]> { 36287let Inst{7-5} = 0b011; 36288let Inst{13-13} = 0b1; 36289let Inst{31-21} = 0b00011001010; 36290let hasNewValue = 1; 36291let opNewValue = 0; 36292let isAccumulator = 1; 36293let isCVI = 1; 36294let DecoderNamespace = "EXT_mmvec"; 36295let Constraints = "$Vx32 = $Vx32in"; 36296} 36297def V6_vmpyiwh_acc_alt : HInst< 36298(outs HvxVR:$Vx32), 36299(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 36300"$Vx32 += vmpyiwh($Vu32,$Rt32)", 36301PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36302let hasNewValue = 1; 36303let opNewValue = 0; 36304let isAccumulator = 1; 36305let isCVI = 1; 36306let isPseudo = 1; 36307let isCodeGenOnly = 1; 36308let DecoderNamespace = "EXT_mmvec"; 36309let Constraints = "$Vx32 = $Vx32in"; 36310} 36311def V6_vmpyiwh_alt : HInst< 36312(outs HvxVR:$Vd32), 36313(ins HvxVR:$Vu32, IntRegs:$Rt32), 36314"$Vd32 = vmpyiwh($Vu32,$Rt32)", 36315PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36316let hasNewValue = 1; 36317let opNewValue = 0; 36318let isCVI = 1; 36319let isPseudo = 1; 36320let isCodeGenOnly = 1; 36321let DecoderNamespace = "EXT_mmvec"; 36322} 36323def V6_vmpyiwub : HInst< 36324(outs HvxVR:$Vd32), 36325(ins HvxVR:$Vu32, IntRegs:$Rt32), 36326"$Vd32.w = vmpyi($Vu32.w,$Rt32.ub)", 36327tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV62]> { 36328let Inst{7-5} = 0b110; 36329let Inst{13-13} = 0b0; 36330let Inst{31-21} = 0b00011001100; 36331let hasNewValue = 1; 36332let opNewValue = 0; 36333let isCVI = 1; 36334let DecoderNamespace = "EXT_mmvec"; 36335} 36336def V6_vmpyiwub_acc : HInst< 36337(outs HvxVR:$Vx32), 36338(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 36339"$Vx32.w += vmpyi($Vu32.w,$Rt32.ub)", 36340tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV62]> { 36341let Inst{7-5} = 0b001; 36342let Inst{13-13} = 0b1; 36343let Inst{31-21} = 0b00011001100; 36344let hasNewValue = 1; 36345let opNewValue = 0; 36346let isAccumulator = 1; 36347let isCVI = 1; 36348let DecoderNamespace = "EXT_mmvec"; 36349let Constraints = "$Vx32 = $Vx32in"; 36350} 36351def V6_vmpyiwub_acc_alt : HInst< 36352(outs HvxVR:$Vx32), 36353(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 36354"$Vx32 += vmpyiwub($Vu32,$Rt32)", 36355PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 36356let hasNewValue = 1; 36357let opNewValue = 0; 36358let isAccumulator = 1; 36359let isCVI = 1; 36360let isPseudo = 1; 36361let isCodeGenOnly = 1; 36362let DecoderNamespace = "EXT_mmvec"; 36363let Constraints = "$Vx32 = $Vx32in"; 36364} 36365def V6_vmpyiwub_alt : HInst< 36366(outs HvxVR:$Vd32), 36367(ins HvxVR:$Vu32, IntRegs:$Rt32), 36368"$Vd32 = vmpyiwub($Vu32,$Rt32)", 36369PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 36370let hasNewValue = 1; 36371let opNewValue = 0; 36372let isCVI = 1; 36373let isPseudo = 1; 36374let isCodeGenOnly = 1; 36375let DecoderNamespace = "EXT_mmvec"; 36376} 36377def V6_vmpyowh : HInst< 36378(outs HvxVR:$Vd32), 36379(ins HvxVR:$Vu32, HvxVR:$Vv32), 36380"$Vd32.w = vmpyo($Vu32.w,$Vv32.h):<<1:sat", 36381tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> { 36382let Inst{7-5} = 0b111; 36383let Inst{13-13} = 0b0; 36384let Inst{31-21} = 0b00011111111; 36385let hasNewValue = 1; 36386let opNewValue = 0; 36387let isCVI = 1; 36388let DecoderNamespace = "EXT_mmvec"; 36389} 36390def V6_vmpyowh_64_acc : HInst< 36391(outs HvxWR:$Vxx32), 36392(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 36393"$Vxx32 += vmpyo($Vu32.w,$Vv32.h)", 36394tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV62]> { 36395let Inst{7-5} = 0b011; 36396let Inst{13-13} = 0b1; 36397let Inst{31-21} = 0b00011100001; 36398let hasNewValue = 1; 36399let opNewValue = 0; 36400let isAccumulator = 1; 36401let isCVI = 1; 36402let DecoderNamespace = "EXT_mmvec"; 36403let Constraints = "$Vxx32 = $Vxx32in"; 36404} 36405def V6_vmpyowh_alt : HInst< 36406(outs HvxVR:$Vd32), 36407(ins HvxVR:$Vu32, HvxVR:$Vv32), 36408"$Vd32 = vmpyowh($Vu32,$Vv32):<<1:sat", 36409PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36410let hasNewValue = 1; 36411let opNewValue = 0; 36412let isCVI = 1; 36413let isPseudo = 1; 36414let isCodeGenOnly = 1; 36415let DecoderNamespace = "EXT_mmvec"; 36416} 36417def V6_vmpyowh_rnd : HInst< 36418(outs HvxVR:$Vd32), 36419(ins HvxVR:$Vu32, HvxVR:$Vv32), 36420"$Vd32.w = vmpyo($Vu32.w,$Vv32.h):<<1:rnd:sat", 36421tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> { 36422let Inst{7-5} = 0b000; 36423let Inst{13-13} = 0b0; 36424let Inst{31-21} = 0b00011111010; 36425let hasNewValue = 1; 36426let opNewValue = 0; 36427let isCVI = 1; 36428let DecoderNamespace = "EXT_mmvec"; 36429} 36430def V6_vmpyowh_rnd_alt : HInst< 36431(outs HvxVR:$Vd32), 36432(ins HvxVR:$Vu32, HvxVR:$Vv32), 36433"$Vd32 = vmpyowh($Vu32,$Vv32):<<1:rnd:sat", 36434PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36435let hasNewValue = 1; 36436let opNewValue = 0; 36437let isCVI = 1; 36438let isPseudo = 1; 36439let isCodeGenOnly = 1; 36440let DecoderNamespace = "EXT_mmvec"; 36441} 36442def V6_vmpyowh_rnd_sacc : HInst< 36443(outs HvxVR:$Vx32), 36444(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 36445"$Vx32.w += vmpyo($Vu32.w,$Vv32.h):<<1:rnd:sat:shift", 36446tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> { 36447let Inst{7-5} = 0b111; 36448let Inst{13-13} = 0b1; 36449let Inst{31-21} = 0b00011100001; 36450let hasNewValue = 1; 36451let opNewValue = 0; 36452let isAccumulator = 1; 36453let isCVI = 1; 36454let DecoderNamespace = "EXT_mmvec"; 36455let Constraints = "$Vx32 = $Vx32in"; 36456} 36457def V6_vmpyowh_rnd_sacc_alt : HInst< 36458(outs HvxVR:$Vx32), 36459(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 36460"$Vx32 += vmpyowh($Vu32,$Vv32):<<1:rnd:sat:shift", 36461PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36462let hasNewValue = 1; 36463let opNewValue = 0; 36464let isAccumulator = 1; 36465let isCVI = 1; 36466let isPseudo = 1; 36467let DecoderNamespace = "EXT_mmvec"; 36468let Constraints = "$Vx32 = $Vx32in"; 36469} 36470def V6_vmpyowh_sacc : HInst< 36471(outs HvxVR:$Vx32), 36472(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 36473"$Vx32.w += vmpyo($Vu32.w,$Vv32.h):<<1:sat:shift", 36474tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> { 36475let Inst{7-5} = 0b110; 36476let Inst{13-13} = 0b1; 36477let Inst{31-21} = 0b00011100001; 36478let hasNewValue = 1; 36479let opNewValue = 0; 36480let isAccumulator = 1; 36481let isCVI = 1; 36482let DecoderNamespace = "EXT_mmvec"; 36483let Constraints = "$Vx32 = $Vx32in"; 36484} 36485def V6_vmpyowh_sacc_alt : HInst< 36486(outs HvxVR:$Vx32), 36487(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 36488"$Vx32 += vmpyowh($Vu32,$Vv32):<<1:sat:shift", 36489PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36490let hasNewValue = 1; 36491let opNewValue = 0; 36492let isAccumulator = 1; 36493let isCVI = 1; 36494let isPseudo = 1; 36495let DecoderNamespace = "EXT_mmvec"; 36496let Constraints = "$Vx32 = $Vx32in"; 36497} 36498def V6_vmpyub : HInst< 36499(outs HvxWR:$Vdd32), 36500(ins HvxVR:$Vu32, IntRegs:$Rt32), 36501"$Vdd32.uh = vmpy($Vu32.ub,$Rt32.ub)", 36502tc_0b04c6c7, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[UseHVXV60]> { 36503let Inst{7-5} = 0b000; 36504let Inst{13-13} = 0b0; 36505let Inst{31-21} = 0b00011001110; 36506let hasNewValue = 1; 36507let opNewValue = 0; 36508let isCVI = 1; 36509let DecoderNamespace = "EXT_mmvec"; 36510} 36511def V6_vmpyub_acc : HInst< 36512(outs HvxWR:$Vxx32), 36513(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32), 36514"$Vxx32.uh += vmpy($Vu32.ub,$Rt32.ub)", 36515tc_660769f1, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV60]> { 36516let Inst{7-5} = 0b000; 36517let Inst{13-13} = 0b1; 36518let Inst{31-21} = 0b00011001100; 36519let hasNewValue = 1; 36520let opNewValue = 0; 36521let isAccumulator = 1; 36522let isCVI = 1; 36523let DecoderNamespace = "EXT_mmvec"; 36524let Constraints = "$Vxx32 = $Vxx32in"; 36525} 36526def V6_vmpyub_acc_alt : HInst< 36527(outs HvxWR:$Vxx32), 36528(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32), 36529"$Vxx32 += vmpyub($Vu32,$Rt32)", 36530PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36531let hasNewValue = 1; 36532let opNewValue = 0; 36533let isAccumulator = 1; 36534let isCVI = 1; 36535let isPseudo = 1; 36536let isCodeGenOnly = 1; 36537let DecoderNamespace = "EXT_mmvec"; 36538let Constraints = "$Vxx32 = $Vxx32in"; 36539} 36540def V6_vmpyub_alt : HInst< 36541(outs HvxWR:$Vdd32), 36542(ins HvxVR:$Vu32, IntRegs:$Rt32), 36543"$Vdd32 = vmpyub($Vu32,$Rt32)", 36544PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36545let hasNewValue = 1; 36546let opNewValue = 0; 36547let isCVI = 1; 36548let isPseudo = 1; 36549let isCodeGenOnly = 1; 36550let DecoderNamespace = "EXT_mmvec"; 36551} 36552def V6_vmpyubv : HInst< 36553(outs HvxWR:$Vdd32), 36554(ins HvxVR:$Vu32, HvxVR:$Vv32), 36555"$Vdd32.uh = vmpy($Vu32.ub,$Vv32.ub)", 36556tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 36557let Inst{7-5} = 0b101; 36558let Inst{13-13} = 0b0; 36559let Inst{31-21} = 0b00011100000; 36560let hasNewValue = 1; 36561let opNewValue = 0; 36562let isCVI = 1; 36563let DecoderNamespace = "EXT_mmvec"; 36564} 36565def V6_vmpyubv_acc : HInst< 36566(outs HvxWR:$Vxx32), 36567(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 36568"$Vxx32.uh += vmpy($Vu32.ub,$Vv32.ub)", 36569tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> { 36570let Inst{7-5} = 0b101; 36571let Inst{13-13} = 0b1; 36572let Inst{31-21} = 0b00011100000; 36573let hasNewValue = 1; 36574let opNewValue = 0; 36575let isAccumulator = 1; 36576let isCVI = 1; 36577let DecoderNamespace = "EXT_mmvec"; 36578let Constraints = "$Vxx32 = $Vxx32in"; 36579} 36580def V6_vmpyubv_acc_alt : HInst< 36581(outs HvxWR:$Vxx32), 36582(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 36583"$Vxx32 += vmpyub($Vu32,$Vv32)", 36584PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36585let hasNewValue = 1; 36586let opNewValue = 0; 36587let isAccumulator = 1; 36588let isCVI = 1; 36589let isPseudo = 1; 36590let isCodeGenOnly = 1; 36591let DecoderNamespace = "EXT_mmvec"; 36592let Constraints = "$Vxx32 = $Vxx32in"; 36593} 36594def V6_vmpyubv_alt : HInst< 36595(outs HvxWR:$Vdd32), 36596(ins HvxVR:$Vu32, HvxVR:$Vv32), 36597"$Vdd32 = vmpyub($Vu32,$Vv32)", 36598PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36599let hasNewValue = 1; 36600let opNewValue = 0; 36601let isCVI = 1; 36602let isPseudo = 1; 36603let isCodeGenOnly = 1; 36604let DecoderNamespace = "EXT_mmvec"; 36605} 36606def V6_vmpyuh : HInst< 36607(outs HvxWR:$Vdd32), 36608(ins HvxVR:$Vu32, IntRegs:$Rt32), 36609"$Vdd32.uw = vmpy($Vu32.uh,$Rt32.uh)", 36610tc_0b04c6c7, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[UseHVXV60]> { 36611let Inst{7-5} = 0b011; 36612let Inst{13-13} = 0b0; 36613let Inst{31-21} = 0b00011001010; 36614let hasNewValue = 1; 36615let opNewValue = 0; 36616let isCVI = 1; 36617let DecoderNamespace = "EXT_mmvec"; 36618} 36619def V6_vmpyuh_acc : HInst< 36620(outs HvxWR:$Vxx32), 36621(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32), 36622"$Vxx32.uw += vmpy($Vu32.uh,$Rt32.uh)", 36623tc_660769f1, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV60]> { 36624let Inst{7-5} = 0b001; 36625let Inst{13-13} = 0b1; 36626let Inst{31-21} = 0b00011001010; 36627let hasNewValue = 1; 36628let opNewValue = 0; 36629let isAccumulator = 1; 36630let isCVI = 1; 36631let DecoderNamespace = "EXT_mmvec"; 36632let Constraints = "$Vxx32 = $Vxx32in"; 36633} 36634def V6_vmpyuh_acc_alt : HInst< 36635(outs HvxWR:$Vxx32), 36636(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32), 36637"$Vxx32 += vmpyuh($Vu32,$Rt32)", 36638PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36639let hasNewValue = 1; 36640let opNewValue = 0; 36641let isAccumulator = 1; 36642let isCVI = 1; 36643let isPseudo = 1; 36644let isCodeGenOnly = 1; 36645let DecoderNamespace = "EXT_mmvec"; 36646let Constraints = "$Vxx32 = $Vxx32in"; 36647} 36648def V6_vmpyuh_alt : HInst< 36649(outs HvxWR:$Vdd32), 36650(ins HvxVR:$Vu32, IntRegs:$Rt32), 36651"$Vdd32 = vmpyuh($Vu32,$Rt32)", 36652PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36653let hasNewValue = 1; 36654let opNewValue = 0; 36655let isCVI = 1; 36656let isPseudo = 1; 36657let isCodeGenOnly = 1; 36658let DecoderNamespace = "EXT_mmvec"; 36659} 36660def V6_vmpyuhe : HInst< 36661(outs HvxVR:$Vd32), 36662(ins HvxVR:$Vu32, IntRegs:$Rt32), 36663"$Vd32.uw = vmpye($Vu32.uh,$Rt32.uh)", 36664tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV65]> { 36665let Inst{7-5} = 0b010; 36666let Inst{13-13} = 0b0; 36667let Inst{31-21} = 0b00011001011; 36668let hasNewValue = 1; 36669let opNewValue = 0; 36670let isCVI = 1; 36671let DecoderNamespace = "EXT_mmvec"; 36672} 36673def V6_vmpyuhe_acc : HInst< 36674(outs HvxVR:$Vx32), 36675(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 36676"$Vx32.uw += vmpye($Vu32.uh,$Rt32.uh)", 36677tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV65]> { 36678let Inst{7-5} = 0b011; 36679let Inst{13-13} = 0b1; 36680let Inst{31-21} = 0b00011001100; 36681let hasNewValue = 1; 36682let opNewValue = 0; 36683let isAccumulator = 1; 36684let isCVI = 1; 36685let DecoderNamespace = "EXT_mmvec"; 36686let Constraints = "$Vx32 = $Vx32in"; 36687} 36688def V6_vmpyuhv : HInst< 36689(outs HvxWR:$Vdd32), 36690(ins HvxVR:$Vu32, HvxVR:$Vv32), 36691"$Vdd32.uw = vmpy($Vu32.uh,$Vv32.uh)", 36692tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 36693let Inst{7-5} = 0b000; 36694let Inst{13-13} = 0b0; 36695let Inst{31-21} = 0b00011100001; 36696let hasNewValue = 1; 36697let opNewValue = 0; 36698let isCVI = 1; 36699let DecoderNamespace = "EXT_mmvec"; 36700} 36701def V6_vmpyuhv_acc : HInst< 36702(outs HvxWR:$Vxx32), 36703(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 36704"$Vxx32.uw += vmpy($Vu32.uh,$Vv32.uh)", 36705tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> { 36706let Inst{7-5} = 0b000; 36707let Inst{13-13} = 0b1; 36708let Inst{31-21} = 0b00011100001; 36709let hasNewValue = 1; 36710let opNewValue = 0; 36711let isAccumulator = 1; 36712let isCVI = 1; 36713let DecoderNamespace = "EXT_mmvec"; 36714let Constraints = "$Vxx32 = $Vxx32in"; 36715} 36716def V6_vmpyuhv_acc_alt : HInst< 36717(outs HvxWR:$Vxx32), 36718(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), 36719"$Vxx32 += vmpyuh($Vu32,$Vv32)", 36720PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36721let hasNewValue = 1; 36722let opNewValue = 0; 36723let isAccumulator = 1; 36724let isCVI = 1; 36725let isPseudo = 1; 36726let isCodeGenOnly = 1; 36727let DecoderNamespace = "EXT_mmvec"; 36728let Constraints = "$Vxx32 = $Vxx32in"; 36729} 36730def V6_vmpyuhv_alt : HInst< 36731(outs HvxWR:$Vdd32), 36732(ins HvxVR:$Vu32, HvxVR:$Vv32), 36733"$Vdd32 = vmpyuh($Vu32,$Vv32)", 36734PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36735let hasNewValue = 1; 36736let opNewValue = 0; 36737let isCVI = 1; 36738let isPseudo = 1; 36739let isCodeGenOnly = 1; 36740let DecoderNamespace = "EXT_mmvec"; 36741} 36742def V6_vmpyuhvs : HInst< 36743(outs HvxVR:$Vd32), 36744(ins HvxVR:$Vu32, HvxVR:$Vv32), 36745"$Vd32.uh = vmpy($Vu32.uh,$Vv32.uh):>>16", 36746tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV69]> { 36747let Inst{7-5} = 0b111; 36748let Inst{13-13} = 0b1; 36749let Inst{31-21} = 0b00011111110; 36750let hasNewValue = 1; 36751let opNewValue = 0; 36752let isCVI = 1; 36753let DecoderNamespace = "EXT_mmvec"; 36754} 36755def V6_vmux : HInst< 36756(outs HvxVR:$Vd32), 36757(ins HvxQR:$Qt4, HvxVR:$Vu32, HvxVR:$Vv32), 36758"$Vd32 = vmux($Qt4,$Vu32,$Vv32)", 36759tc_257f6f7c, TypeCVI_VA>, Enc_31db33, Requires<[UseHVXV60]> { 36760let Inst{7-7} = 0b0; 36761let Inst{13-13} = 0b1; 36762let Inst{31-21} = 0b00011110111; 36763let hasNewValue = 1; 36764let opNewValue = 0; 36765let isCVI = 1; 36766let isHVXALU = 1; 36767let isHVXALU2SRC = 1; 36768let DecoderNamespace = "EXT_mmvec"; 36769} 36770def V6_vnavgb : HInst< 36771(outs HvxVR:$Vd32), 36772(ins HvxVR:$Vu32, HvxVR:$Vv32), 36773"$Vd32.b = vnavg($Vu32.b,$Vv32.b)", 36774tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> { 36775let Inst{7-5} = 0b110; 36776let Inst{13-13} = 0b1; 36777let Inst{31-21} = 0b00011111000; 36778let hasNewValue = 1; 36779let opNewValue = 0; 36780let isCVI = 1; 36781let isHVXALU = 1; 36782let isHVXALU2SRC = 1; 36783let DecoderNamespace = "EXT_mmvec"; 36784} 36785def V6_vnavgb_alt : HInst< 36786(outs HvxVR:$Vd32), 36787(ins HvxVR:$Vu32, HvxVR:$Vv32), 36788"$Vd32 = vnavgb($Vu32,$Vv32)", 36789PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 36790let hasNewValue = 1; 36791let opNewValue = 0; 36792let isCVI = 1; 36793let isPseudo = 1; 36794let isCodeGenOnly = 1; 36795let DecoderNamespace = "EXT_mmvec"; 36796} 36797def V6_vnavgh : HInst< 36798(outs HvxVR:$Vd32), 36799(ins HvxVR:$Vu32, HvxVR:$Vv32), 36800"$Vd32.h = vnavg($Vu32.h,$Vv32.h)", 36801tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 36802let Inst{7-5} = 0b001; 36803let Inst{13-13} = 0b0; 36804let Inst{31-21} = 0b00011100111; 36805let hasNewValue = 1; 36806let opNewValue = 0; 36807let isCVI = 1; 36808let isHVXALU = 1; 36809let isHVXALU2SRC = 1; 36810let DecoderNamespace = "EXT_mmvec"; 36811} 36812def V6_vnavgh_alt : HInst< 36813(outs HvxVR:$Vd32), 36814(ins HvxVR:$Vu32, HvxVR:$Vv32), 36815"$Vd32 = vnavgh($Vu32,$Vv32)", 36816PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36817let hasNewValue = 1; 36818let opNewValue = 0; 36819let isCVI = 1; 36820let isPseudo = 1; 36821let isCodeGenOnly = 1; 36822let DecoderNamespace = "EXT_mmvec"; 36823} 36824def V6_vnavgub : HInst< 36825(outs HvxVR:$Vd32), 36826(ins HvxVR:$Vu32, HvxVR:$Vv32), 36827"$Vd32.b = vnavg($Vu32.ub,$Vv32.ub)", 36828tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 36829let Inst{7-5} = 0b000; 36830let Inst{13-13} = 0b0; 36831let Inst{31-21} = 0b00011100111; 36832let hasNewValue = 1; 36833let opNewValue = 0; 36834let isCVI = 1; 36835let isHVXALU = 1; 36836let isHVXALU2SRC = 1; 36837let DecoderNamespace = "EXT_mmvec"; 36838} 36839def V6_vnavgub_alt : HInst< 36840(outs HvxVR:$Vd32), 36841(ins HvxVR:$Vu32, HvxVR:$Vv32), 36842"$Vd32 = vnavgub($Vu32,$Vv32)", 36843PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36844let hasNewValue = 1; 36845let opNewValue = 0; 36846let isCVI = 1; 36847let isPseudo = 1; 36848let isCodeGenOnly = 1; 36849let DecoderNamespace = "EXT_mmvec"; 36850} 36851def V6_vnavgw : HInst< 36852(outs HvxVR:$Vd32), 36853(ins HvxVR:$Vu32, HvxVR:$Vv32), 36854"$Vd32.w = vnavg($Vu32.w,$Vv32.w)", 36855tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 36856let Inst{7-5} = 0b010; 36857let Inst{13-13} = 0b0; 36858let Inst{31-21} = 0b00011100111; 36859let hasNewValue = 1; 36860let opNewValue = 0; 36861let isCVI = 1; 36862let isHVXALU = 1; 36863let isHVXALU2SRC = 1; 36864let DecoderNamespace = "EXT_mmvec"; 36865} 36866def V6_vnavgw_alt : HInst< 36867(outs HvxVR:$Vd32), 36868(ins HvxVR:$Vu32, HvxVR:$Vv32), 36869"$Vd32 = vnavgw($Vu32,$Vv32)", 36870PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36871let hasNewValue = 1; 36872let opNewValue = 0; 36873let isCVI = 1; 36874let isPseudo = 1; 36875let isCodeGenOnly = 1; 36876let DecoderNamespace = "EXT_mmvec"; 36877} 36878def V6_vnccombine : HInst< 36879(outs HvxWR:$Vdd32), 36880(ins PredRegs:$Ps4, HvxVR:$Vu32, HvxVR:$Vv32), 36881"if (!$Ps4) $Vdd32 = vcombine($Vu32,$Vv32)", 36882tc_af25efd9, TypeCVI_VA_DV>, Enc_8c2412, Requires<[UseHVXV60]> { 36883let Inst{7-7} = 0b0; 36884let Inst{13-13} = 0b0; 36885let Inst{31-21} = 0b00011010010; 36886let isPredicated = 1; 36887let isPredicatedFalse = 1; 36888let hasNewValue = 1; 36889let opNewValue = 0; 36890let isCVI = 1; 36891let DecoderNamespace = "EXT_mmvec"; 36892} 36893def V6_vncmov : HInst< 36894(outs HvxVR:$Vd32), 36895(ins PredRegs:$Ps4, HvxVR:$Vu32), 36896"if (!$Ps4) $Vd32 = $Vu32", 36897tc_3aacf4a8, TypeCVI_VA>, Enc_770858, Requires<[UseHVXV60]> { 36898let Inst{7-7} = 0b0; 36899let Inst{13-13} = 0b0; 36900let Inst{31-16} = 0b0001101000100000; 36901let isPredicated = 1; 36902let isPredicatedFalse = 1; 36903let hasNewValue = 1; 36904let opNewValue = 0; 36905let isCVI = 1; 36906let isHVXALU = 1; 36907let DecoderNamespace = "EXT_mmvec"; 36908} 36909def V6_vnormamth : HInst< 36910(outs HvxVR:$Vd32), 36911(ins HvxVR:$Vu32), 36912"$Vd32.h = vnormamt($Vu32.h)", 36913tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> { 36914let Inst{7-5} = 0b101; 36915let Inst{13-13} = 0b0; 36916let Inst{31-16} = 0b0001111000000011; 36917let hasNewValue = 1; 36918let opNewValue = 0; 36919let isCVI = 1; 36920let DecoderNamespace = "EXT_mmvec"; 36921} 36922def V6_vnormamth_alt : HInst< 36923(outs HvxVR:$Vd32), 36924(ins HvxVR:$Vu32), 36925"$Vd32 = vnormamth($Vu32)", 36926PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36927let hasNewValue = 1; 36928let opNewValue = 0; 36929let isCVI = 1; 36930let isPseudo = 1; 36931let isCodeGenOnly = 1; 36932let DecoderNamespace = "EXT_mmvec"; 36933} 36934def V6_vnormamtw : HInst< 36935(outs HvxVR:$Vd32), 36936(ins HvxVR:$Vu32), 36937"$Vd32.w = vnormamt($Vu32.w)", 36938tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> { 36939let Inst{7-5} = 0b100; 36940let Inst{13-13} = 0b0; 36941let Inst{31-16} = 0b0001111000000011; 36942let hasNewValue = 1; 36943let opNewValue = 0; 36944let isCVI = 1; 36945let DecoderNamespace = "EXT_mmvec"; 36946} 36947def V6_vnormamtw_alt : HInst< 36948(outs HvxVR:$Vd32), 36949(ins HvxVR:$Vu32), 36950"$Vd32 = vnormamtw($Vu32)", 36951PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 36952let hasNewValue = 1; 36953let opNewValue = 0; 36954let isCVI = 1; 36955let isPseudo = 1; 36956let isCodeGenOnly = 1; 36957let DecoderNamespace = "EXT_mmvec"; 36958} 36959def V6_vnot : HInst< 36960(outs HvxVR:$Vd32), 36961(ins HvxVR:$Vu32), 36962"$Vd32 = vnot($Vu32)", 36963tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> { 36964let Inst{7-5} = 0b100; 36965let Inst{13-13} = 0b0; 36966let Inst{31-16} = 0b0001111000000000; 36967let hasNewValue = 1; 36968let opNewValue = 0; 36969let isCVI = 1; 36970let isHVXALU = 1; 36971let isHVXALU2SRC = 1; 36972let DecoderNamespace = "EXT_mmvec"; 36973} 36974def V6_vor : HInst< 36975(outs HvxVR:$Vd32), 36976(ins HvxVR:$Vu32, HvxVR:$Vv32), 36977"$Vd32 = vor($Vu32,$Vv32)", 36978tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 36979let Inst{7-5} = 0b110; 36980let Inst{13-13} = 0b0; 36981let Inst{31-21} = 0b00011100001; 36982let hasNewValue = 1; 36983let opNewValue = 0; 36984let isCVI = 1; 36985let isHVXALU = 1; 36986let isHVXALU2SRC = 1; 36987let DecoderNamespace = "EXT_mmvec"; 36988} 36989def V6_vpackeb : HInst< 36990(outs HvxVR:$Vd32), 36991(ins HvxVR:$Vu32, HvxVR:$Vv32), 36992"$Vd32.b = vpacke($Vu32.h,$Vv32.h)", 36993tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> { 36994let Inst{7-5} = 0b010; 36995let Inst{13-13} = 0b0; 36996let Inst{31-21} = 0b00011111110; 36997let hasNewValue = 1; 36998let opNewValue = 0; 36999let isCVI = 1; 37000let DecoderNamespace = "EXT_mmvec"; 37001} 37002def V6_vpackeb_alt : HInst< 37003(outs HvxVR:$Vd32), 37004(ins HvxVR:$Vu32, HvxVR:$Vv32), 37005"$Vd32 = vpackeb($Vu32,$Vv32)", 37006PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37007let hasNewValue = 1; 37008let opNewValue = 0; 37009let isCVI = 1; 37010let isPseudo = 1; 37011let isCodeGenOnly = 1; 37012let DecoderNamespace = "EXT_mmvec"; 37013} 37014def V6_vpackeh : HInst< 37015(outs HvxVR:$Vd32), 37016(ins HvxVR:$Vu32, HvxVR:$Vv32), 37017"$Vd32.h = vpacke($Vu32.w,$Vv32.w)", 37018tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> { 37019let Inst{7-5} = 0b011; 37020let Inst{13-13} = 0b0; 37021let Inst{31-21} = 0b00011111110; 37022let hasNewValue = 1; 37023let opNewValue = 0; 37024let isCVI = 1; 37025let DecoderNamespace = "EXT_mmvec"; 37026} 37027def V6_vpackeh_alt : HInst< 37028(outs HvxVR:$Vd32), 37029(ins HvxVR:$Vu32, HvxVR:$Vv32), 37030"$Vd32 = vpackeh($Vu32,$Vv32)", 37031PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37032let hasNewValue = 1; 37033let opNewValue = 0; 37034let isCVI = 1; 37035let isPseudo = 1; 37036let isCodeGenOnly = 1; 37037let DecoderNamespace = "EXT_mmvec"; 37038} 37039def V6_vpackhb_sat : HInst< 37040(outs HvxVR:$Vd32), 37041(ins HvxVR:$Vu32, HvxVR:$Vv32), 37042"$Vd32.b = vpack($Vu32.h,$Vv32.h):sat", 37043tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> { 37044let Inst{7-5} = 0b110; 37045let Inst{13-13} = 0b0; 37046let Inst{31-21} = 0b00011111110; 37047let hasNewValue = 1; 37048let opNewValue = 0; 37049let isCVI = 1; 37050let DecoderNamespace = "EXT_mmvec"; 37051} 37052def V6_vpackhb_sat_alt : HInst< 37053(outs HvxVR:$Vd32), 37054(ins HvxVR:$Vu32, HvxVR:$Vv32), 37055"$Vd32 = vpackhb($Vu32,$Vv32):sat", 37056PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37057let hasNewValue = 1; 37058let opNewValue = 0; 37059let isCVI = 1; 37060let isPseudo = 1; 37061let isCodeGenOnly = 1; 37062let DecoderNamespace = "EXT_mmvec"; 37063} 37064def V6_vpackhub_sat : HInst< 37065(outs HvxVR:$Vd32), 37066(ins HvxVR:$Vu32, HvxVR:$Vv32), 37067"$Vd32.ub = vpack($Vu32.h,$Vv32.h):sat", 37068tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> { 37069let Inst{7-5} = 0b101; 37070let Inst{13-13} = 0b0; 37071let Inst{31-21} = 0b00011111110; 37072let hasNewValue = 1; 37073let opNewValue = 0; 37074let isCVI = 1; 37075let DecoderNamespace = "EXT_mmvec"; 37076} 37077def V6_vpackhub_sat_alt : HInst< 37078(outs HvxVR:$Vd32), 37079(ins HvxVR:$Vu32, HvxVR:$Vv32), 37080"$Vd32 = vpackhub($Vu32,$Vv32):sat", 37081PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37082let hasNewValue = 1; 37083let opNewValue = 0; 37084let isCVI = 1; 37085let isPseudo = 1; 37086let isCodeGenOnly = 1; 37087let DecoderNamespace = "EXT_mmvec"; 37088} 37089def V6_vpackob : HInst< 37090(outs HvxVR:$Vd32), 37091(ins HvxVR:$Vu32, HvxVR:$Vv32), 37092"$Vd32.b = vpacko($Vu32.h,$Vv32.h)", 37093tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> { 37094let Inst{7-5} = 0b001; 37095let Inst{13-13} = 0b0; 37096let Inst{31-21} = 0b00011111111; 37097let hasNewValue = 1; 37098let opNewValue = 0; 37099let isCVI = 1; 37100let DecoderNamespace = "EXT_mmvec"; 37101} 37102def V6_vpackob_alt : HInst< 37103(outs HvxVR:$Vd32), 37104(ins HvxVR:$Vu32, HvxVR:$Vv32), 37105"$Vd32 = vpackob($Vu32,$Vv32)", 37106PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37107let hasNewValue = 1; 37108let opNewValue = 0; 37109let isCVI = 1; 37110let isPseudo = 1; 37111let isCodeGenOnly = 1; 37112let DecoderNamespace = "EXT_mmvec"; 37113} 37114def V6_vpackoh : HInst< 37115(outs HvxVR:$Vd32), 37116(ins HvxVR:$Vu32, HvxVR:$Vv32), 37117"$Vd32.h = vpacko($Vu32.w,$Vv32.w)", 37118tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> { 37119let Inst{7-5} = 0b010; 37120let Inst{13-13} = 0b0; 37121let Inst{31-21} = 0b00011111111; 37122let hasNewValue = 1; 37123let opNewValue = 0; 37124let isCVI = 1; 37125let DecoderNamespace = "EXT_mmvec"; 37126} 37127def V6_vpackoh_alt : HInst< 37128(outs HvxVR:$Vd32), 37129(ins HvxVR:$Vu32, HvxVR:$Vv32), 37130"$Vd32 = vpackoh($Vu32,$Vv32)", 37131PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37132let hasNewValue = 1; 37133let opNewValue = 0; 37134let isCVI = 1; 37135let isPseudo = 1; 37136let isCodeGenOnly = 1; 37137let DecoderNamespace = "EXT_mmvec"; 37138} 37139def V6_vpackwh_sat : HInst< 37140(outs HvxVR:$Vd32), 37141(ins HvxVR:$Vu32, HvxVR:$Vv32), 37142"$Vd32.h = vpack($Vu32.w,$Vv32.w):sat", 37143tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> { 37144let Inst{7-5} = 0b000; 37145let Inst{13-13} = 0b0; 37146let Inst{31-21} = 0b00011111111; 37147let hasNewValue = 1; 37148let opNewValue = 0; 37149let isCVI = 1; 37150let DecoderNamespace = "EXT_mmvec"; 37151} 37152def V6_vpackwh_sat_alt : HInst< 37153(outs HvxVR:$Vd32), 37154(ins HvxVR:$Vu32, HvxVR:$Vv32), 37155"$Vd32 = vpackwh($Vu32,$Vv32):sat", 37156PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37157let hasNewValue = 1; 37158let opNewValue = 0; 37159let isCVI = 1; 37160let isPseudo = 1; 37161let isCodeGenOnly = 1; 37162let DecoderNamespace = "EXT_mmvec"; 37163} 37164def V6_vpackwuh_sat : HInst< 37165(outs HvxVR:$Vd32), 37166(ins HvxVR:$Vu32, HvxVR:$Vv32), 37167"$Vd32.uh = vpack($Vu32.w,$Vv32.w):sat", 37168tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> { 37169let Inst{7-5} = 0b111; 37170let Inst{13-13} = 0b0; 37171let Inst{31-21} = 0b00011111110; 37172let hasNewValue = 1; 37173let opNewValue = 0; 37174let isCVI = 1; 37175let DecoderNamespace = "EXT_mmvec"; 37176} 37177def V6_vpackwuh_sat_alt : HInst< 37178(outs HvxVR:$Vd32), 37179(ins HvxVR:$Vu32, HvxVR:$Vv32), 37180"$Vd32 = vpackwuh($Vu32,$Vv32):sat", 37181PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37182let hasNewValue = 1; 37183let opNewValue = 0; 37184let isCVI = 1; 37185let isPseudo = 1; 37186let isCodeGenOnly = 1; 37187let DecoderNamespace = "EXT_mmvec"; 37188} 37189def V6_vpopcounth : HInst< 37190(outs HvxVR:$Vd32), 37191(ins HvxVR:$Vu32), 37192"$Vd32.h = vpopcount($Vu32.h)", 37193tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> { 37194let Inst{7-5} = 0b110; 37195let Inst{13-13} = 0b0; 37196let Inst{31-16} = 0b0001111000000010; 37197let hasNewValue = 1; 37198let opNewValue = 0; 37199let isCVI = 1; 37200let DecoderNamespace = "EXT_mmvec"; 37201} 37202def V6_vpopcounth_alt : HInst< 37203(outs HvxVR:$Vd32), 37204(ins HvxVR:$Vu32), 37205"$Vd32 = vpopcounth($Vu32)", 37206PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37207let hasNewValue = 1; 37208let opNewValue = 0; 37209let isCVI = 1; 37210let isPseudo = 1; 37211let isCodeGenOnly = 1; 37212let DecoderNamespace = "EXT_mmvec"; 37213} 37214def V6_vprefixqb : HInst< 37215(outs HvxVR:$Vd32), 37216(ins HvxQR:$Qv4), 37217"$Vd32.b = prefixsum($Qv4)", 37218tc_51d0ecc3, TypeCVI_VS>, Enc_6f83e7, Requires<[UseHVXV65]> { 37219let Inst{13-5} = 0b100000010; 37220let Inst{21-16} = 0b000011; 37221let Inst{31-24} = 0b00011110; 37222let hasNewValue = 1; 37223let opNewValue = 0; 37224let isCVI = 1; 37225let DecoderNamespace = "EXT_mmvec"; 37226} 37227def V6_vprefixqh : HInst< 37228(outs HvxVR:$Vd32), 37229(ins HvxQR:$Qv4), 37230"$Vd32.h = prefixsum($Qv4)", 37231tc_51d0ecc3, TypeCVI_VS>, Enc_6f83e7, Requires<[UseHVXV65]> { 37232let Inst{13-5} = 0b100001010; 37233let Inst{21-16} = 0b000011; 37234let Inst{31-24} = 0b00011110; 37235let hasNewValue = 1; 37236let opNewValue = 0; 37237let isCVI = 1; 37238let DecoderNamespace = "EXT_mmvec"; 37239} 37240def V6_vprefixqw : HInst< 37241(outs HvxVR:$Vd32), 37242(ins HvxQR:$Qv4), 37243"$Vd32.w = prefixsum($Qv4)", 37244tc_51d0ecc3, TypeCVI_VS>, Enc_6f83e7, Requires<[UseHVXV65]> { 37245let Inst{13-5} = 0b100010010; 37246let Inst{21-16} = 0b000011; 37247let Inst{31-24} = 0b00011110; 37248let hasNewValue = 1; 37249let opNewValue = 0; 37250let isCVI = 1; 37251let DecoderNamespace = "EXT_mmvec"; 37252} 37253def V6_vrdelta : HInst< 37254(outs HvxVR:$Vd32), 37255(ins HvxVR:$Vu32, HvxVR:$Vv32), 37256"$Vd32 = vrdelta($Vu32,$Vv32)", 37257tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> { 37258let Inst{7-5} = 0b011; 37259let Inst{13-13} = 0b0; 37260let Inst{31-21} = 0b00011111001; 37261let hasNewValue = 1; 37262let opNewValue = 0; 37263let isCVI = 1; 37264let DecoderNamespace = "EXT_mmvec"; 37265} 37266def V6_vrmpybub_rtt : HInst< 37267(outs HvxWR:$Vdd32), 37268(ins HvxVR:$Vu32, DoubleRegs:$Rtt32), 37269"$Vdd32.w = vrmpy($Vu32.b,$Rtt32.ub)", 37270tc_cd94bfe0, TypeCVI_VS_VX>, Enc_cb785b, Requires<[UseHVXV65]> { 37271let Inst{7-5} = 0b101; 37272let Inst{13-13} = 0b0; 37273let Inst{31-21} = 0b00011001110; 37274let hasNewValue = 1; 37275let opNewValue = 0; 37276let isCVI = 1; 37277let DecoderNamespace = "EXT_mmvec"; 37278} 37279def V6_vrmpybub_rtt_acc : HInst< 37280(outs HvxWR:$Vxx32), 37281(ins HvxWR:$Vxx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32), 37282"$Vxx32.w += vrmpy($Vu32.b,$Rtt32.ub)", 37283tc_15fdf750, TypeCVI_VS_VX>, Enc_ad9bef, Requires<[UseHVXV65]> { 37284let Inst{7-5} = 0b000; 37285let Inst{13-13} = 0b1; 37286let Inst{31-21} = 0b00011001101; 37287let hasNewValue = 1; 37288let opNewValue = 0; 37289let isAccumulator = 1; 37290let isCVI = 1; 37291let DecoderNamespace = "EXT_mmvec"; 37292let Constraints = "$Vxx32 = $Vxx32in"; 37293} 37294def V6_vrmpybub_rtt_acc_alt : HInst< 37295(outs HvxWR:$Vxx32), 37296(ins HvxWR:$Vxx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32), 37297"$Vxx32.w += vrmpy($Vu32.b,$Rtt32.ub)", 37298PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 37299let hasNewValue = 1; 37300let opNewValue = 0; 37301let isAccumulator = 1; 37302let isCVI = 1; 37303let isPseudo = 1; 37304let isCodeGenOnly = 1; 37305let DecoderNamespace = "EXT_mmvec"; 37306let Constraints = "$Vxx32 = $Vxx32in"; 37307} 37308def V6_vrmpybub_rtt_alt : HInst< 37309(outs HvxWR:$Vdd32), 37310(ins HvxVR:$Vu32, DoubleRegs:$Rtt32), 37311"$Vdd32.w = vrmpy($Vu32.b,$Rtt32.ub)", 37312PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 37313let hasNewValue = 1; 37314let opNewValue = 0; 37315let isCVI = 1; 37316let isPseudo = 1; 37317let isCodeGenOnly = 1; 37318let DecoderNamespace = "EXT_mmvec"; 37319} 37320def V6_vrmpybus : HInst< 37321(outs HvxVR:$Vd32), 37322(ins HvxVR:$Vu32, IntRegs:$Rt32), 37323"$Vd32.w = vrmpy($Vu32.ub,$Rt32.b)", 37324tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> { 37325let Inst{7-5} = 0b100; 37326let Inst{13-13} = 0b0; 37327let Inst{31-21} = 0b00011001000; 37328let hasNewValue = 1; 37329let opNewValue = 0; 37330let isCVI = 1; 37331let DecoderNamespace = "EXT_mmvec"; 37332} 37333def V6_vrmpybus_acc : HInst< 37334(outs HvxVR:$Vx32), 37335(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 37336"$Vx32.w += vrmpy($Vu32.ub,$Rt32.b)", 37337tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> { 37338let Inst{7-5} = 0b101; 37339let Inst{13-13} = 0b1; 37340let Inst{31-21} = 0b00011001000; 37341let hasNewValue = 1; 37342let opNewValue = 0; 37343let isAccumulator = 1; 37344let isCVI = 1; 37345let DecoderNamespace = "EXT_mmvec"; 37346let Constraints = "$Vx32 = $Vx32in"; 37347} 37348def V6_vrmpybus_acc_alt : HInst< 37349(outs HvxVR:$Vx32), 37350(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 37351"$Vx32 += vrmpybus($Vu32,$Rt32)", 37352PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37353let hasNewValue = 1; 37354let opNewValue = 0; 37355let isAccumulator = 1; 37356let isCVI = 1; 37357let isPseudo = 1; 37358let isCodeGenOnly = 1; 37359let DecoderNamespace = "EXT_mmvec"; 37360let Constraints = "$Vx32 = $Vx32in"; 37361} 37362def V6_vrmpybus_alt : HInst< 37363(outs HvxVR:$Vd32), 37364(ins HvxVR:$Vu32, IntRegs:$Rt32), 37365"$Vd32 = vrmpybus($Vu32,$Rt32)", 37366PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37367let hasNewValue = 1; 37368let opNewValue = 0; 37369let isCVI = 1; 37370let isPseudo = 1; 37371let isCodeGenOnly = 1; 37372let DecoderNamespace = "EXT_mmvec"; 37373} 37374def V6_vrmpybusi : HInst< 37375(outs HvxWR:$Vdd32), 37376(ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 37377"$Vdd32.w = vrmpy($Vuu32.ub,$Rt32.b,#$Ii)", 37378tc_1ad8a370, TypeCVI_VX_DV>, Enc_2f2f04, Requires<[UseHVXV60]> { 37379let Inst{7-6} = 0b10; 37380let Inst{13-13} = 0b0; 37381let Inst{31-21} = 0b00011001010; 37382let hasNewValue = 1; 37383let opNewValue = 0; 37384let isCVI = 1; 37385let DecoderNamespace = "EXT_mmvec"; 37386} 37387def V6_vrmpybusi_acc : HInst< 37388(outs HvxWR:$Vxx32), 37389(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 37390"$Vxx32.w += vrmpy($Vuu32.ub,$Rt32.b,#$Ii)", 37391tc_e675c45a, TypeCVI_VX_DV>, Enc_d483b9, Requires<[UseHVXV60]> { 37392let Inst{7-6} = 0b10; 37393let Inst{13-13} = 0b1; 37394let Inst{31-21} = 0b00011001010; 37395let hasNewValue = 1; 37396let opNewValue = 0; 37397let isAccumulator = 1; 37398let isCVI = 1; 37399let DecoderNamespace = "EXT_mmvec"; 37400let Constraints = "$Vxx32 = $Vxx32in"; 37401} 37402def V6_vrmpybusi_acc_alt : HInst< 37403(outs HvxWR:$Vxx32), 37404(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 37405"$Vxx32 += vrmpybus($Vuu32,$Rt32,#$Ii)", 37406PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37407let hasNewValue = 1; 37408let opNewValue = 0; 37409let isAccumulator = 1; 37410let isCVI = 1; 37411let isPseudo = 1; 37412let isCodeGenOnly = 1; 37413let DecoderNamespace = "EXT_mmvec"; 37414let Constraints = "$Vxx32 = $Vxx32in"; 37415} 37416def V6_vrmpybusi_alt : HInst< 37417(outs HvxWR:$Vdd32), 37418(ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 37419"$Vdd32 = vrmpybus($Vuu32,$Rt32,#$Ii)", 37420PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37421let hasNewValue = 1; 37422let opNewValue = 0; 37423let isCVI = 1; 37424let isPseudo = 1; 37425let isCodeGenOnly = 1; 37426let DecoderNamespace = "EXT_mmvec"; 37427} 37428def V6_vrmpybusv : HInst< 37429(outs HvxVR:$Vd32), 37430(ins HvxVR:$Vu32, HvxVR:$Vv32), 37431"$Vd32.w = vrmpy($Vu32.ub,$Vv32.b)", 37432tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> { 37433let Inst{7-5} = 0b010; 37434let Inst{13-13} = 0b0; 37435let Inst{31-21} = 0b00011100000; 37436let hasNewValue = 1; 37437let opNewValue = 0; 37438let isCVI = 1; 37439let DecoderNamespace = "EXT_mmvec"; 37440} 37441def V6_vrmpybusv_acc : HInst< 37442(outs HvxVR:$Vx32), 37443(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 37444"$Vx32.w += vrmpy($Vu32.ub,$Vv32.b)", 37445tc_37820f4c, TypeCVI_VX>, Enc_a7341a, Requires<[UseHVXV60]> { 37446let Inst{7-5} = 0b010; 37447let Inst{13-13} = 0b1; 37448let Inst{31-21} = 0b00011100000; 37449let hasNewValue = 1; 37450let opNewValue = 0; 37451let isAccumulator = 1; 37452let isCVI = 1; 37453let DecoderNamespace = "EXT_mmvec"; 37454let Constraints = "$Vx32 = $Vx32in"; 37455} 37456def V6_vrmpybusv_acc_alt : HInst< 37457(outs HvxVR:$Vx32), 37458(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 37459"$Vx32 += vrmpybus($Vu32,$Vv32)", 37460PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37461let hasNewValue = 1; 37462let opNewValue = 0; 37463let isAccumulator = 1; 37464let isCVI = 1; 37465let isPseudo = 1; 37466let isCodeGenOnly = 1; 37467let DecoderNamespace = "EXT_mmvec"; 37468let Constraints = "$Vx32 = $Vx32in"; 37469} 37470def V6_vrmpybusv_alt : HInst< 37471(outs HvxVR:$Vd32), 37472(ins HvxVR:$Vu32, HvxVR:$Vv32), 37473"$Vd32 = vrmpybus($Vu32,$Vv32)", 37474PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37475let hasNewValue = 1; 37476let opNewValue = 0; 37477let isCVI = 1; 37478let isPseudo = 1; 37479let isCodeGenOnly = 1; 37480let DecoderNamespace = "EXT_mmvec"; 37481} 37482def V6_vrmpybv : HInst< 37483(outs HvxVR:$Vd32), 37484(ins HvxVR:$Vu32, HvxVR:$Vv32), 37485"$Vd32.w = vrmpy($Vu32.b,$Vv32.b)", 37486tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> { 37487let Inst{7-5} = 0b001; 37488let Inst{13-13} = 0b0; 37489let Inst{31-21} = 0b00011100000; 37490let hasNewValue = 1; 37491let opNewValue = 0; 37492let isCVI = 1; 37493let DecoderNamespace = "EXT_mmvec"; 37494} 37495def V6_vrmpybv_acc : HInst< 37496(outs HvxVR:$Vx32), 37497(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 37498"$Vx32.w += vrmpy($Vu32.b,$Vv32.b)", 37499tc_37820f4c, TypeCVI_VX>, Enc_a7341a, Requires<[UseHVXV60]> { 37500let Inst{7-5} = 0b001; 37501let Inst{13-13} = 0b1; 37502let Inst{31-21} = 0b00011100000; 37503let hasNewValue = 1; 37504let opNewValue = 0; 37505let isAccumulator = 1; 37506let isCVI = 1; 37507let DecoderNamespace = "EXT_mmvec"; 37508let Constraints = "$Vx32 = $Vx32in"; 37509} 37510def V6_vrmpybv_acc_alt : HInst< 37511(outs HvxVR:$Vx32), 37512(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 37513"$Vx32 += vrmpyb($Vu32,$Vv32)", 37514PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37515let hasNewValue = 1; 37516let opNewValue = 0; 37517let isAccumulator = 1; 37518let isCVI = 1; 37519let isPseudo = 1; 37520let isCodeGenOnly = 1; 37521let DecoderNamespace = "EXT_mmvec"; 37522let Constraints = "$Vx32 = $Vx32in"; 37523} 37524def V6_vrmpybv_alt : HInst< 37525(outs HvxVR:$Vd32), 37526(ins HvxVR:$Vu32, HvxVR:$Vv32), 37527"$Vd32 = vrmpyb($Vu32,$Vv32)", 37528PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37529let hasNewValue = 1; 37530let opNewValue = 0; 37531let isCVI = 1; 37532let isPseudo = 1; 37533let isCodeGenOnly = 1; 37534let DecoderNamespace = "EXT_mmvec"; 37535} 37536def V6_vrmpyub : HInst< 37537(outs HvxVR:$Vd32), 37538(ins HvxVR:$Vu32, IntRegs:$Rt32), 37539"$Vd32.uw = vrmpy($Vu32.ub,$Rt32.ub)", 37540tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> { 37541let Inst{7-5} = 0b011; 37542let Inst{13-13} = 0b0; 37543let Inst{31-21} = 0b00011001000; 37544let hasNewValue = 1; 37545let opNewValue = 0; 37546let isCVI = 1; 37547let DecoderNamespace = "EXT_mmvec"; 37548} 37549def V6_vrmpyub_acc : HInst< 37550(outs HvxVR:$Vx32), 37551(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 37552"$Vx32.uw += vrmpy($Vu32.ub,$Rt32.ub)", 37553tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> { 37554let Inst{7-5} = 0b100; 37555let Inst{13-13} = 0b1; 37556let Inst{31-21} = 0b00011001000; 37557let hasNewValue = 1; 37558let opNewValue = 0; 37559let isAccumulator = 1; 37560let isCVI = 1; 37561let DecoderNamespace = "EXT_mmvec"; 37562let Constraints = "$Vx32 = $Vx32in"; 37563} 37564def V6_vrmpyub_acc_alt : HInst< 37565(outs HvxVR:$Vx32), 37566(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32), 37567"$Vx32 += vrmpyub($Vu32,$Rt32)", 37568PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37569let hasNewValue = 1; 37570let opNewValue = 0; 37571let isAccumulator = 1; 37572let isCVI = 1; 37573let isPseudo = 1; 37574let isCodeGenOnly = 1; 37575let DecoderNamespace = "EXT_mmvec"; 37576let Constraints = "$Vx32 = $Vx32in"; 37577} 37578def V6_vrmpyub_alt : HInst< 37579(outs HvxVR:$Vd32), 37580(ins HvxVR:$Vu32, IntRegs:$Rt32), 37581"$Vd32 = vrmpyub($Vu32,$Rt32)", 37582PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37583let hasNewValue = 1; 37584let opNewValue = 0; 37585let isCVI = 1; 37586let isPseudo = 1; 37587let isCodeGenOnly = 1; 37588let DecoderNamespace = "EXT_mmvec"; 37589} 37590def V6_vrmpyub_rtt : HInst< 37591(outs HvxWR:$Vdd32), 37592(ins HvxVR:$Vu32, DoubleRegs:$Rtt32), 37593"$Vdd32.uw = vrmpy($Vu32.ub,$Rtt32.ub)", 37594tc_cd94bfe0, TypeCVI_VS_VX>, Enc_cb785b, Requires<[UseHVXV65]> { 37595let Inst{7-5} = 0b100; 37596let Inst{13-13} = 0b0; 37597let Inst{31-21} = 0b00011001110; 37598let hasNewValue = 1; 37599let opNewValue = 0; 37600let isCVI = 1; 37601let DecoderNamespace = "EXT_mmvec"; 37602} 37603def V6_vrmpyub_rtt_acc : HInst< 37604(outs HvxWR:$Vxx32), 37605(ins HvxWR:$Vxx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32), 37606"$Vxx32.uw += vrmpy($Vu32.ub,$Rtt32.ub)", 37607tc_15fdf750, TypeCVI_VS_VX>, Enc_ad9bef, Requires<[UseHVXV65]> { 37608let Inst{7-5} = 0b111; 37609let Inst{13-13} = 0b1; 37610let Inst{31-21} = 0b00011001101; 37611let hasNewValue = 1; 37612let opNewValue = 0; 37613let isAccumulator = 1; 37614let isCVI = 1; 37615let DecoderNamespace = "EXT_mmvec"; 37616let Constraints = "$Vxx32 = $Vxx32in"; 37617} 37618def V6_vrmpyub_rtt_acc_alt : HInst< 37619(outs HvxWR:$Vxx32), 37620(ins HvxWR:$Vxx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32), 37621"$Vxx32.uw += vrmpy($Vu32.ub,$Rtt32.ub)", 37622PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 37623let hasNewValue = 1; 37624let opNewValue = 0; 37625let isAccumulator = 1; 37626let isCVI = 1; 37627let isPseudo = 1; 37628let isCodeGenOnly = 1; 37629let DecoderNamespace = "EXT_mmvec"; 37630let Constraints = "$Vxx32 = $Vxx32in"; 37631} 37632def V6_vrmpyub_rtt_alt : HInst< 37633(outs HvxWR:$Vdd32), 37634(ins HvxVR:$Vu32, DoubleRegs:$Rtt32), 37635"$Vdd32.uw = vrmpy($Vu32.ub,$Rtt32.ub)", 37636PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 37637let hasNewValue = 1; 37638let opNewValue = 0; 37639let isCVI = 1; 37640let isPseudo = 1; 37641let isCodeGenOnly = 1; 37642let DecoderNamespace = "EXT_mmvec"; 37643} 37644def V6_vrmpyubi : HInst< 37645(outs HvxWR:$Vdd32), 37646(ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 37647"$Vdd32.uw = vrmpy($Vuu32.ub,$Rt32.ub,#$Ii)", 37648tc_1ad8a370, TypeCVI_VX_DV>, Enc_2f2f04, Requires<[UseHVXV60]> { 37649let Inst{7-6} = 0b11; 37650let Inst{13-13} = 0b0; 37651let Inst{31-21} = 0b00011001101; 37652let hasNewValue = 1; 37653let opNewValue = 0; 37654let isCVI = 1; 37655let DecoderNamespace = "EXT_mmvec"; 37656} 37657def V6_vrmpyubi_acc : HInst< 37658(outs HvxWR:$Vxx32), 37659(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 37660"$Vxx32.uw += vrmpy($Vuu32.ub,$Rt32.ub,#$Ii)", 37661tc_e675c45a, TypeCVI_VX_DV>, Enc_d483b9, Requires<[UseHVXV60]> { 37662let Inst{7-6} = 0b11; 37663let Inst{13-13} = 0b1; 37664let Inst{31-21} = 0b00011001011; 37665let hasNewValue = 1; 37666let opNewValue = 0; 37667let isAccumulator = 1; 37668let isCVI = 1; 37669let DecoderNamespace = "EXT_mmvec"; 37670let Constraints = "$Vxx32 = $Vxx32in"; 37671} 37672def V6_vrmpyubi_acc_alt : HInst< 37673(outs HvxWR:$Vxx32), 37674(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 37675"$Vxx32 += vrmpyub($Vuu32,$Rt32,#$Ii)", 37676PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37677let hasNewValue = 1; 37678let opNewValue = 0; 37679let isAccumulator = 1; 37680let isCVI = 1; 37681let isPseudo = 1; 37682let isCodeGenOnly = 1; 37683let DecoderNamespace = "EXT_mmvec"; 37684let Constraints = "$Vxx32 = $Vxx32in"; 37685} 37686def V6_vrmpyubi_alt : HInst< 37687(outs HvxWR:$Vdd32), 37688(ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 37689"$Vdd32 = vrmpyub($Vuu32,$Rt32,#$Ii)", 37690PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37691let hasNewValue = 1; 37692let opNewValue = 0; 37693let isCVI = 1; 37694let isPseudo = 1; 37695let isCodeGenOnly = 1; 37696let DecoderNamespace = "EXT_mmvec"; 37697} 37698def V6_vrmpyubv : HInst< 37699(outs HvxVR:$Vd32), 37700(ins HvxVR:$Vu32, HvxVR:$Vv32), 37701"$Vd32.uw = vrmpy($Vu32.ub,$Vv32.ub)", 37702tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> { 37703let Inst{7-5} = 0b000; 37704let Inst{13-13} = 0b0; 37705let Inst{31-21} = 0b00011100000; 37706let hasNewValue = 1; 37707let opNewValue = 0; 37708let isCVI = 1; 37709let DecoderNamespace = "EXT_mmvec"; 37710} 37711def V6_vrmpyubv_acc : HInst< 37712(outs HvxVR:$Vx32), 37713(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 37714"$Vx32.uw += vrmpy($Vu32.ub,$Vv32.ub)", 37715tc_37820f4c, TypeCVI_VX>, Enc_a7341a, Requires<[UseHVXV60]> { 37716let Inst{7-5} = 0b000; 37717let Inst{13-13} = 0b1; 37718let Inst{31-21} = 0b00011100000; 37719let hasNewValue = 1; 37720let opNewValue = 0; 37721let isAccumulator = 1; 37722let isCVI = 1; 37723let DecoderNamespace = "EXT_mmvec"; 37724let Constraints = "$Vx32 = $Vx32in"; 37725} 37726def V6_vrmpyubv_acc_alt : HInst< 37727(outs HvxVR:$Vx32), 37728(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32), 37729"$Vx32 += vrmpyub($Vu32,$Vv32)", 37730PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37731let hasNewValue = 1; 37732let opNewValue = 0; 37733let isAccumulator = 1; 37734let isCVI = 1; 37735let isPseudo = 1; 37736let isCodeGenOnly = 1; 37737let DecoderNamespace = "EXT_mmvec"; 37738let Constraints = "$Vx32 = $Vx32in"; 37739} 37740def V6_vrmpyubv_alt : HInst< 37741(outs HvxVR:$Vd32), 37742(ins HvxVR:$Vu32, HvxVR:$Vv32), 37743"$Vd32 = vrmpyub($Vu32,$Vv32)", 37744PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 37745let hasNewValue = 1; 37746let opNewValue = 0; 37747let isCVI = 1; 37748let isPseudo = 1; 37749let isCodeGenOnly = 1; 37750let DecoderNamespace = "EXT_mmvec"; 37751} 37752def V6_vrmpyzbb_rt : HInst< 37753(outs HvxVQR:$Vdddd32), 37754(ins HvxVR:$Vu32, IntRegsLow8:$Rt8), 37755"$Vdddd32.w = vrmpyz($Vu32.b,$Rt8.b)", 37756tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> { 37757let Inst{7-5} = 0b000; 37758let Inst{13-13} = 0b0; 37759let Inst{31-19} = 0b0001100111101; 37760let hasNewValue = 1; 37761let opNewValue = 0; 37762let isCVI = 1; 37763let DecoderNamespace = "EXT_mmvec"; 37764} 37765def V6_vrmpyzbb_rt_acc : HInst< 37766(outs HvxVQR:$Vyyyy32), 37767(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8), 37768"$Vyyyy32.w += vrmpyz($Vu32.b,$Rt8.b)", 37769tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> { 37770let Inst{7-5} = 0b010; 37771let Inst{13-13} = 0b1; 37772let Inst{31-19} = 0b0001100111000; 37773let hasNewValue = 1; 37774let opNewValue = 0; 37775let isAccumulator = 1; 37776let isCVI = 1; 37777let DecoderNamespace = "EXT_mmvec"; 37778let Constraints = "$Vyyyy32 = $Vyyyy32in"; 37779} 37780def V6_vrmpyzbb_rx : HInst< 37781(outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8), 37782(ins HvxVR:$Vu32, IntRegsLow8:$Rx8in), 37783"$Vdddd32.w = vrmpyz($Vu32.b,$Rx8.b++)", 37784tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> { 37785let Inst{7-5} = 0b000; 37786let Inst{13-13} = 0b0; 37787let Inst{31-19} = 0b0001100111100; 37788let hasNewValue = 1; 37789let opNewValue = 0; 37790let isCVI = 1; 37791let DecoderNamespace = "EXT_mmvec"; 37792let Constraints = "$Rx8 = $Rx8in"; 37793} 37794def V6_vrmpyzbb_rx_acc : HInst< 37795(outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8), 37796(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rx8in), 37797"$Vyyyy32.w += vrmpyz($Vu32.b,$Rx8.b++)", 37798tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> { 37799let Inst{7-5} = 0b010; 37800let Inst{13-13} = 0b1; 37801let Inst{31-19} = 0b0001100111001; 37802let hasNewValue = 1; 37803let opNewValue = 0; 37804let isAccumulator = 1; 37805let isCVI = 1; 37806let DecoderNamespace = "EXT_mmvec"; 37807let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in"; 37808} 37809def V6_vrmpyzbub_rt : HInst< 37810(outs HvxVQR:$Vdddd32), 37811(ins HvxVR:$Vu32, IntRegsLow8:$Rt8), 37812"$Vdddd32.w = vrmpyz($Vu32.b,$Rt8.ub)", 37813tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> { 37814let Inst{7-5} = 0b010; 37815let Inst{13-13} = 0b0; 37816let Inst{31-19} = 0b0001100111111; 37817let hasNewValue = 1; 37818let opNewValue = 0; 37819let isCVI = 1; 37820let DecoderNamespace = "EXT_mmvec"; 37821} 37822def V6_vrmpyzbub_rt_acc : HInst< 37823(outs HvxVQR:$Vyyyy32), 37824(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8), 37825"$Vyyyy32.w += vrmpyz($Vu32.b,$Rt8.ub)", 37826tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> { 37827let Inst{7-5} = 0b001; 37828let Inst{13-13} = 0b1; 37829let Inst{31-19} = 0b0001100111010; 37830let hasNewValue = 1; 37831let opNewValue = 0; 37832let isAccumulator = 1; 37833let isCVI = 1; 37834let DecoderNamespace = "EXT_mmvec"; 37835let Constraints = "$Vyyyy32 = $Vyyyy32in"; 37836} 37837def V6_vrmpyzbub_rx : HInst< 37838(outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8), 37839(ins HvxVR:$Vu32, IntRegsLow8:$Rx8in), 37840"$Vdddd32.w = vrmpyz($Vu32.b,$Rx8.ub++)", 37841tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> { 37842let Inst{7-5} = 0b010; 37843let Inst{13-13} = 0b0; 37844let Inst{31-19} = 0b0001100111110; 37845let hasNewValue = 1; 37846let opNewValue = 0; 37847let isCVI = 1; 37848let DecoderNamespace = "EXT_mmvec"; 37849let Constraints = "$Rx8 = $Rx8in"; 37850} 37851def V6_vrmpyzbub_rx_acc : HInst< 37852(outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8), 37853(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rx8in), 37854"$Vyyyy32.w += vrmpyz($Vu32.b,$Rx8.ub++)", 37855tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> { 37856let Inst{7-5} = 0b001; 37857let Inst{13-13} = 0b1; 37858let Inst{31-19} = 0b0001100111011; 37859let hasNewValue = 1; 37860let opNewValue = 0; 37861let isAccumulator = 1; 37862let isCVI = 1; 37863let DecoderNamespace = "EXT_mmvec"; 37864let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in"; 37865} 37866def V6_vrmpyzcb_rt : HInst< 37867(outs HvxVQR:$Vdddd32), 37868(ins HvxVR:$Vu32, IntRegsLow8:$Rt8), 37869"$Vdddd32.w = vr16mpyz($Vu32.c,$Rt8.b)", 37870tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> { 37871let Inst{7-5} = 0b001; 37872let Inst{13-13} = 0b0; 37873let Inst{31-19} = 0b0001100111101; 37874let hasNewValue = 1; 37875let opNewValue = 0; 37876let isCVI = 1; 37877let DecoderNamespace = "EXT_mmvec"; 37878} 37879def V6_vrmpyzcb_rt_acc : HInst< 37880(outs HvxVQR:$Vyyyy32), 37881(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8), 37882"$Vyyyy32.w += vr16mpyz($Vu32.c,$Rt8.b)", 37883tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> { 37884let Inst{7-5} = 0b011; 37885let Inst{13-13} = 0b1; 37886let Inst{31-19} = 0b0001100111000; 37887let hasNewValue = 1; 37888let opNewValue = 0; 37889let isAccumulator = 1; 37890let isCVI = 1; 37891let DecoderNamespace = "EXT_mmvec"; 37892let Constraints = "$Vyyyy32 = $Vyyyy32in"; 37893} 37894def V6_vrmpyzcb_rx : HInst< 37895(outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8), 37896(ins HvxVR:$Vu32, IntRegsLow8:$Rx8in), 37897"$Vdddd32.w = vr16mpyz($Vu32.c,$Rx8.b++)", 37898tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> { 37899let Inst{7-5} = 0b001; 37900let Inst{13-13} = 0b0; 37901let Inst{31-19} = 0b0001100111100; 37902let hasNewValue = 1; 37903let opNewValue = 0; 37904let isCVI = 1; 37905let DecoderNamespace = "EXT_mmvec"; 37906let Constraints = "$Rx8 = $Rx8in"; 37907} 37908def V6_vrmpyzcb_rx_acc : HInst< 37909(outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8), 37910(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rx8in), 37911"$Vyyyy32.w += vr16mpyz($Vu32.c,$Rx8.b++)", 37912tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> { 37913let Inst{7-5} = 0b011; 37914let Inst{13-13} = 0b1; 37915let Inst{31-19} = 0b0001100111001; 37916let hasNewValue = 1; 37917let opNewValue = 0; 37918let isAccumulator = 1; 37919let isCVI = 1; 37920let DecoderNamespace = "EXT_mmvec"; 37921let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in"; 37922} 37923def V6_vrmpyzcbs_rt : HInst< 37924(outs HvxVQR:$Vdddd32), 37925(ins HvxVR:$Vu32, IntRegsLow8:$Rt8), 37926"$Vdddd32.w = vr16mpyzs($Vu32.c,$Rt8.b)", 37927tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> { 37928let Inst{7-5} = 0b010; 37929let Inst{13-13} = 0b0; 37930let Inst{31-19} = 0b0001100111101; 37931let hasNewValue = 1; 37932let opNewValue = 0; 37933let isCVI = 1; 37934let DecoderNamespace = "EXT_mmvec"; 37935} 37936def V6_vrmpyzcbs_rt_acc : HInst< 37937(outs HvxVQR:$Vyyyy32), 37938(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8), 37939"$Vyyyy32.w += vr16mpyzs($Vu32.c,$Rt8.b)", 37940tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> { 37941let Inst{7-5} = 0b001; 37942let Inst{13-13} = 0b1; 37943let Inst{31-19} = 0b0001100111000; 37944let hasNewValue = 1; 37945let opNewValue = 0; 37946let isAccumulator = 1; 37947let isCVI = 1; 37948let DecoderNamespace = "EXT_mmvec"; 37949let Constraints = "$Vyyyy32 = $Vyyyy32in"; 37950} 37951def V6_vrmpyzcbs_rx : HInst< 37952(outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8), 37953(ins HvxVR:$Vu32, IntRegsLow8:$Rx8in), 37954"$Vdddd32.w = vr16mpyzs($Vu32.c,$Rx8.b++)", 37955tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> { 37956let Inst{7-5} = 0b010; 37957let Inst{13-13} = 0b0; 37958let Inst{31-19} = 0b0001100111100; 37959let hasNewValue = 1; 37960let opNewValue = 0; 37961let isCVI = 1; 37962let DecoderNamespace = "EXT_mmvec"; 37963let Constraints = "$Rx8 = $Rx8in"; 37964} 37965def V6_vrmpyzcbs_rx_acc : HInst< 37966(outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8), 37967(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rx8in), 37968"$Vyyyy32.w += vr16mpyzs($Vu32.c,$Rx8.b++)", 37969tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> { 37970let Inst{7-5} = 0b001; 37971let Inst{13-13} = 0b1; 37972let Inst{31-19} = 0b0001100111001; 37973let hasNewValue = 1; 37974let opNewValue = 0; 37975let isAccumulator = 1; 37976let isCVI = 1; 37977let DecoderNamespace = "EXT_mmvec"; 37978let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in"; 37979} 37980def V6_vrmpyznb_rt : HInst< 37981(outs HvxVQR:$Vdddd32), 37982(ins HvxVR:$Vu32, IntRegsLow8:$Rt8), 37983"$Vdddd32.w = vr8mpyz($Vu32.n,$Rt8.b)", 37984tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> { 37985let Inst{7-5} = 0b000; 37986let Inst{13-13} = 0b0; 37987let Inst{31-19} = 0b0001100111111; 37988let hasNewValue = 1; 37989let opNewValue = 0; 37990let isCVI = 1; 37991let DecoderNamespace = "EXT_mmvec"; 37992} 37993def V6_vrmpyznb_rt_acc : HInst< 37994(outs HvxVQR:$Vyyyy32), 37995(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8), 37996"$Vyyyy32.w += vr8mpyz($Vu32.n,$Rt8.b)", 37997tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> { 37998let Inst{7-5} = 0b010; 37999let Inst{13-13} = 0b1; 38000let Inst{31-19} = 0b0001100111010; 38001let hasNewValue = 1; 38002let opNewValue = 0; 38003let isAccumulator = 1; 38004let isCVI = 1; 38005let DecoderNamespace = "EXT_mmvec"; 38006let Constraints = "$Vyyyy32 = $Vyyyy32in"; 38007} 38008def V6_vrmpyznb_rx : HInst< 38009(outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8), 38010(ins HvxVR:$Vu32, IntRegsLow8:$Rx8in), 38011"$Vdddd32.w = vr8mpyz($Vu32.n,$Rx8.b++)", 38012tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> { 38013let Inst{7-5} = 0b000; 38014let Inst{13-13} = 0b0; 38015let Inst{31-19} = 0b0001100111110; 38016let hasNewValue = 1; 38017let opNewValue = 0; 38018let isCVI = 1; 38019let DecoderNamespace = "EXT_mmvec"; 38020let Constraints = "$Rx8 = $Rx8in"; 38021} 38022def V6_vrmpyznb_rx_acc : HInst< 38023(outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8), 38024(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rx8in), 38025"$Vyyyy32.w += vr8mpyz($Vu32.n,$Rx8.b++)", 38026tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> { 38027let Inst{7-5} = 0b010; 38028let Inst{13-13} = 0b1; 38029let Inst{31-19} = 0b0001100111011; 38030let hasNewValue = 1; 38031let opNewValue = 0; 38032let isAccumulator = 1; 38033let isCVI = 1; 38034let DecoderNamespace = "EXT_mmvec"; 38035let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in"; 38036} 38037def V6_vror : HInst< 38038(outs HvxVR:$Vd32), 38039(ins HvxVR:$Vu32, IntRegs:$Rt32), 38040"$Vd32 = vror($Vu32,$Rt32)", 38041tc_6e7fa133, TypeCVI_VP>, Enc_b087ac, Requires<[UseHVXV60]> { 38042let Inst{7-5} = 0b001; 38043let Inst{13-13} = 0b0; 38044let Inst{31-21} = 0b00011001011; 38045let hasNewValue = 1; 38046let opNewValue = 0; 38047let isCVI = 1; 38048let DecoderNamespace = "EXT_mmvec"; 38049} 38050def V6_vrotr : HInst< 38051(outs HvxVR:$Vd32), 38052(ins HvxVR:$Vu32, HvxVR:$Vv32), 38053"$Vd32.uw = vrotr($Vu32.uw,$Vv32.uw)", 38054tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV66]> { 38055let Inst{7-5} = 0b111; 38056let Inst{13-13} = 0b1; 38057let Inst{31-21} = 0b00011010100; 38058let hasNewValue = 1; 38059let opNewValue = 0; 38060let isCVI = 1; 38061let DecoderNamespace = "EXT_mmvec"; 38062} 38063def V6_vrotr_alt : HInst< 38064(outs HvxVR:$Vd32), 38065(ins HvxVR:$Vu32, HvxVR:$Vv32), 38066"$Vd32 = vrotr($Vu32,$Vv32)", 38067PSEUDO, TypeMAPPING>, Requires<[UseHVXV66]> { 38068let hasNewValue = 1; 38069let opNewValue = 0; 38070let isCVI = 1; 38071let isPseudo = 1; 38072let isCodeGenOnly = 1; 38073let DecoderNamespace = "EXT_mmvec"; 38074} 38075def V6_vroundhb : HInst< 38076(outs HvxVR:$Vd32), 38077(ins HvxVR:$Vu32, HvxVR:$Vv32), 38078"$Vd32.b = vround($Vu32.h,$Vv32.h):sat", 38079tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> { 38080let Inst{7-5} = 0b110; 38081let Inst{13-13} = 0b0; 38082let Inst{31-21} = 0b00011111011; 38083let hasNewValue = 1; 38084let opNewValue = 0; 38085let isCVI = 1; 38086let DecoderNamespace = "EXT_mmvec"; 38087} 38088def V6_vroundhb_alt : HInst< 38089(outs HvxVR:$Vd32), 38090(ins HvxVR:$Vu32, HvxVR:$Vv32), 38091"$Vd32 = vroundhb($Vu32,$Vv32):sat", 38092PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38093let hasNewValue = 1; 38094let opNewValue = 0; 38095let isCVI = 1; 38096let isPseudo = 1; 38097let isCodeGenOnly = 1; 38098let DecoderNamespace = "EXT_mmvec"; 38099} 38100def V6_vroundhub : HInst< 38101(outs HvxVR:$Vd32), 38102(ins HvxVR:$Vu32, HvxVR:$Vv32), 38103"$Vd32.ub = vround($Vu32.h,$Vv32.h):sat", 38104tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> { 38105let Inst{7-5} = 0b111; 38106let Inst{13-13} = 0b0; 38107let Inst{31-21} = 0b00011111011; 38108let hasNewValue = 1; 38109let opNewValue = 0; 38110let isCVI = 1; 38111let DecoderNamespace = "EXT_mmvec"; 38112} 38113def V6_vroundhub_alt : HInst< 38114(outs HvxVR:$Vd32), 38115(ins HvxVR:$Vu32, HvxVR:$Vv32), 38116"$Vd32 = vroundhub($Vu32,$Vv32):sat", 38117PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38118let hasNewValue = 1; 38119let opNewValue = 0; 38120let isCVI = 1; 38121let isPseudo = 1; 38122let isCodeGenOnly = 1; 38123let DecoderNamespace = "EXT_mmvec"; 38124} 38125def V6_vrounduhub : HInst< 38126(outs HvxVR:$Vd32), 38127(ins HvxVR:$Vu32, HvxVR:$Vv32), 38128"$Vd32.ub = vround($Vu32.uh,$Vv32.uh):sat", 38129tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV62]> { 38130let Inst{7-5} = 0b011; 38131let Inst{13-13} = 0b0; 38132let Inst{31-21} = 0b00011111111; 38133let hasNewValue = 1; 38134let opNewValue = 0; 38135let isCVI = 1; 38136let DecoderNamespace = "EXT_mmvec"; 38137} 38138def V6_vrounduhub_alt : HInst< 38139(outs HvxVR:$Vd32), 38140(ins HvxVR:$Vu32, HvxVR:$Vv32), 38141"$Vd32 = vrounduhub($Vu32,$Vv32):sat", 38142PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 38143let hasNewValue = 1; 38144let opNewValue = 0; 38145let isCVI = 1; 38146let isPseudo = 1; 38147let isCodeGenOnly = 1; 38148let DecoderNamespace = "EXT_mmvec"; 38149} 38150def V6_vrounduwuh : HInst< 38151(outs HvxVR:$Vd32), 38152(ins HvxVR:$Vu32, HvxVR:$Vv32), 38153"$Vd32.uh = vround($Vu32.uw,$Vv32.uw):sat", 38154tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV62]> { 38155let Inst{7-5} = 0b100; 38156let Inst{13-13} = 0b0; 38157let Inst{31-21} = 0b00011111111; 38158let hasNewValue = 1; 38159let opNewValue = 0; 38160let isCVI = 1; 38161let DecoderNamespace = "EXT_mmvec"; 38162} 38163def V6_vrounduwuh_alt : HInst< 38164(outs HvxVR:$Vd32), 38165(ins HvxVR:$Vu32, HvxVR:$Vv32), 38166"$Vd32 = vrounduwuh($Vu32,$Vv32):sat", 38167PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 38168let hasNewValue = 1; 38169let opNewValue = 0; 38170let isCVI = 1; 38171let isPseudo = 1; 38172let isCodeGenOnly = 1; 38173let DecoderNamespace = "EXT_mmvec"; 38174} 38175def V6_vroundwh : HInst< 38176(outs HvxVR:$Vd32), 38177(ins HvxVR:$Vu32, HvxVR:$Vv32), 38178"$Vd32.h = vround($Vu32.w,$Vv32.w):sat", 38179tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> { 38180let Inst{7-5} = 0b100; 38181let Inst{13-13} = 0b0; 38182let Inst{31-21} = 0b00011111011; 38183let hasNewValue = 1; 38184let opNewValue = 0; 38185let isCVI = 1; 38186let DecoderNamespace = "EXT_mmvec"; 38187} 38188def V6_vroundwh_alt : HInst< 38189(outs HvxVR:$Vd32), 38190(ins HvxVR:$Vu32, HvxVR:$Vv32), 38191"$Vd32 = vroundwh($Vu32,$Vv32):sat", 38192PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38193let hasNewValue = 1; 38194let opNewValue = 0; 38195let isCVI = 1; 38196let isPseudo = 1; 38197let isCodeGenOnly = 1; 38198let DecoderNamespace = "EXT_mmvec"; 38199} 38200def V6_vroundwuh : HInst< 38201(outs HvxVR:$Vd32), 38202(ins HvxVR:$Vu32, HvxVR:$Vv32), 38203"$Vd32.uh = vround($Vu32.w,$Vv32.w):sat", 38204tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> { 38205let Inst{7-5} = 0b101; 38206let Inst{13-13} = 0b0; 38207let Inst{31-21} = 0b00011111011; 38208let hasNewValue = 1; 38209let opNewValue = 0; 38210let isCVI = 1; 38211let DecoderNamespace = "EXT_mmvec"; 38212} 38213def V6_vroundwuh_alt : HInst< 38214(outs HvxVR:$Vd32), 38215(ins HvxVR:$Vu32, HvxVR:$Vv32), 38216"$Vd32 = vroundwuh($Vu32,$Vv32):sat", 38217PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38218let hasNewValue = 1; 38219let opNewValue = 0; 38220let isCVI = 1; 38221let isPseudo = 1; 38222let isCodeGenOnly = 1; 38223let DecoderNamespace = "EXT_mmvec"; 38224} 38225def V6_vrsadubi : HInst< 38226(outs HvxWR:$Vdd32), 38227(ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 38228"$Vdd32.uw = vrsad($Vuu32.ub,$Rt32.ub,#$Ii)", 38229tc_1ad8a370, TypeCVI_VX_DV>, Enc_2f2f04, Requires<[UseHVXV60]> { 38230let Inst{7-6} = 0b11; 38231let Inst{13-13} = 0b0; 38232let Inst{31-21} = 0b00011001010; 38233let hasNewValue = 1; 38234let opNewValue = 0; 38235let isCVI = 1; 38236let DecoderNamespace = "EXT_mmvec"; 38237} 38238def V6_vrsadubi_acc : HInst< 38239(outs HvxWR:$Vxx32), 38240(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 38241"$Vxx32.uw += vrsad($Vuu32.ub,$Rt32.ub,#$Ii)", 38242tc_e675c45a, TypeCVI_VX_DV>, Enc_d483b9, Requires<[UseHVXV60]> { 38243let Inst{7-6} = 0b11; 38244let Inst{13-13} = 0b1; 38245let Inst{31-21} = 0b00011001010; 38246let hasNewValue = 1; 38247let opNewValue = 0; 38248let isAccumulator = 1; 38249let isCVI = 1; 38250let DecoderNamespace = "EXT_mmvec"; 38251let Constraints = "$Vxx32 = $Vxx32in"; 38252} 38253def V6_vrsadubi_acc_alt : HInst< 38254(outs HvxWR:$Vxx32), 38255(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 38256"$Vxx32 += vrsadub($Vuu32,$Rt32,#$Ii)", 38257PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38258let hasNewValue = 1; 38259let opNewValue = 0; 38260let isAccumulator = 1; 38261let isCVI = 1; 38262let isPseudo = 1; 38263let isCodeGenOnly = 1; 38264let DecoderNamespace = "EXT_mmvec"; 38265let Constraints = "$Vxx32 = $Vxx32in"; 38266} 38267def V6_vrsadubi_alt : HInst< 38268(outs HvxWR:$Vdd32), 38269(ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii), 38270"$Vdd32 = vrsadub($Vuu32,$Rt32,#$Ii)", 38271PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38272let hasNewValue = 1; 38273let opNewValue = 0; 38274let isCVI = 1; 38275let isPseudo = 1; 38276let isCodeGenOnly = 1; 38277let DecoderNamespace = "EXT_mmvec"; 38278} 38279def V6_vsatdw : HInst< 38280(outs HvxVR:$Vd32), 38281(ins HvxVR:$Vu32, HvxVR:$Vv32), 38282"$Vd32.w = vsatdw($Vu32.w,$Vv32.w)", 38283tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV66]> { 38284let Inst{7-5} = 0b111; 38285let Inst{13-13} = 0b1; 38286let Inst{31-21} = 0b00011101100; 38287let hasNewValue = 1; 38288let opNewValue = 0; 38289let isCVI = 1; 38290let isHVXALU = 1; 38291let isHVXALU2SRC = 1; 38292let DecoderNamespace = "EXT_mmvec"; 38293} 38294def V6_vsathub : HInst< 38295(outs HvxVR:$Vd32), 38296(ins HvxVR:$Vu32, HvxVR:$Vv32), 38297"$Vd32.ub = vsat($Vu32.h,$Vv32.h)", 38298tc_8772086c, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 38299let Inst{7-5} = 0b010; 38300let Inst{13-13} = 0b0; 38301let Inst{31-21} = 0b00011111011; 38302let hasNewValue = 1; 38303let opNewValue = 0; 38304let isCVI = 1; 38305let isHVXALU = 1; 38306let isHVXALU2SRC = 1; 38307let DecoderNamespace = "EXT_mmvec"; 38308} 38309def V6_vsathub_alt : HInst< 38310(outs HvxVR:$Vd32), 38311(ins HvxVR:$Vu32, HvxVR:$Vv32), 38312"$Vd32 = vsathub($Vu32,$Vv32)", 38313PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38314let hasNewValue = 1; 38315let opNewValue = 0; 38316let isCVI = 1; 38317let isPseudo = 1; 38318let isCodeGenOnly = 1; 38319let DecoderNamespace = "EXT_mmvec"; 38320} 38321def V6_vsatuwuh : HInst< 38322(outs HvxVR:$Vd32), 38323(ins HvxVR:$Vu32, HvxVR:$Vv32), 38324"$Vd32.uh = vsat($Vu32.uw,$Vv32.uw)", 38325tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> { 38326let Inst{7-5} = 0b110; 38327let Inst{13-13} = 0b0; 38328let Inst{31-21} = 0b00011111001; 38329let hasNewValue = 1; 38330let opNewValue = 0; 38331let isCVI = 1; 38332let isHVXALU = 1; 38333let isHVXALU2SRC = 1; 38334let DecoderNamespace = "EXT_mmvec"; 38335} 38336def V6_vsatuwuh_alt : HInst< 38337(outs HvxVR:$Vd32), 38338(ins HvxVR:$Vu32, HvxVR:$Vv32), 38339"$Vd32 = vsatuwuh($Vu32,$Vv32)", 38340PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 38341let hasNewValue = 1; 38342let opNewValue = 0; 38343let isCVI = 1; 38344let isPseudo = 1; 38345let isCodeGenOnly = 1; 38346let DecoderNamespace = "EXT_mmvec"; 38347} 38348def V6_vsatwh : HInst< 38349(outs HvxVR:$Vd32), 38350(ins HvxVR:$Vu32, HvxVR:$Vv32), 38351"$Vd32.h = vsat($Vu32.w,$Vv32.w)", 38352tc_8772086c, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 38353let Inst{7-5} = 0b011; 38354let Inst{13-13} = 0b0; 38355let Inst{31-21} = 0b00011111011; 38356let hasNewValue = 1; 38357let opNewValue = 0; 38358let isCVI = 1; 38359let isHVXALU = 1; 38360let isHVXALU2SRC = 1; 38361let DecoderNamespace = "EXT_mmvec"; 38362} 38363def V6_vsatwh_alt : HInst< 38364(outs HvxVR:$Vd32), 38365(ins HvxVR:$Vu32, HvxVR:$Vv32), 38366"$Vd32 = vsatwh($Vu32,$Vv32)", 38367PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38368let hasNewValue = 1; 38369let opNewValue = 0; 38370let isCVI = 1; 38371let isPseudo = 1; 38372let isCodeGenOnly = 1; 38373let DecoderNamespace = "EXT_mmvec"; 38374} 38375def V6_vsb : HInst< 38376(outs HvxWR:$Vdd32), 38377(ins HvxVR:$Vu32), 38378"$Vdd32.h = vsxt($Vu32.b)", 38379tc_b4416217, TypeCVI_VA_DV>, Enc_dd766a, Requires<[UseHVXV60]> { 38380let Inst{7-5} = 0b011; 38381let Inst{13-13} = 0b0; 38382let Inst{31-16} = 0b0001111000000010; 38383let hasNewValue = 1; 38384let opNewValue = 0; 38385let isCVI = 1; 38386let DecoderNamespace = "EXT_mmvec"; 38387} 38388def V6_vsb_alt : HInst< 38389(outs HvxWR:$Vdd32), 38390(ins HvxVR:$Vu32), 38391"$Vdd32 = vsxtb($Vu32)", 38392PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38393let hasNewValue = 1; 38394let opNewValue = 0; 38395let isCVI = 1; 38396let isPseudo = 1; 38397let isCodeGenOnly = 1; 38398let DecoderNamespace = "EXT_mmvec"; 38399} 38400def V6_vscattermh : HInst< 38401(outs), 38402(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 38403"vscatter($Rt32,$Mu2,$Vv32.h).h = $Vw32", 38404tc_9f363d21, TypeCVI_SCATTER>, Enc_16c48b, Requires<[UseHVXV65]> { 38405let Inst{7-5} = 0b001; 38406let Inst{31-21} = 0b00101111001; 38407let accessSize = HalfWordAccess; 38408let isCVI = 1; 38409let isHVXALU = 1; 38410let isHVXALU2SRC = 1; 38411let mayStore = 1; 38412let DecoderNamespace = "EXT_mmvec"; 38413} 38414def V6_vscattermh_add : HInst< 38415(outs), 38416(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 38417"vscatter($Rt32,$Mu2,$Vv32.h).h += $Vw32", 38418tc_9f363d21, TypeCVI_SCATTER>, Enc_16c48b, Requires<[UseHVXV65]> { 38419let Inst{7-5} = 0b101; 38420let Inst{31-21} = 0b00101111001; 38421let accessSize = HalfWordAccess; 38422let isAccumulator = 1; 38423let isCVI = 1; 38424let isHVXALU = 1; 38425let isHVXALU2SRC = 1; 38426let mayStore = 1; 38427let DecoderNamespace = "EXT_mmvec"; 38428} 38429def V6_vscattermh_add_alt : HInst< 38430(outs), 38431(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 38432"vscatter($Rt32,$Mu2,$Vv32.h) += $Vw32.h", 38433PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 38434let isAccumulator = 1; 38435let isCVI = 1; 38436let isPseudo = 1; 38437let isCodeGenOnly = 1; 38438let DecoderNamespace = "EXT_mmvec"; 38439} 38440def V6_vscattermh_alt : HInst< 38441(outs), 38442(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 38443"vscatter($Rt32,$Mu2,$Vv32.h) = $Vw32.h", 38444PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 38445let isCVI = 1; 38446let isPseudo = 1; 38447let isCodeGenOnly = 1; 38448let DecoderNamespace = "EXT_mmvec"; 38449} 38450def V6_vscattermhq : HInst< 38451(outs), 38452(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 38453"if ($Qs4) vscatter($Rt32,$Mu2,$Vv32.h).h = $Vw32", 38454tc_8e420e4d, TypeCVI_SCATTER>, Enc_9be1de, Requires<[UseHVXV65]> { 38455let Inst{7-7} = 0b1; 38456let Inst{31-21} = 0b00101111100; 38457let accessSize = HalfWordAccess; 38458let isCVI = 1; 38459let isHVXALU = 1; 38460let isHVXALU2SRC = 1; 38461let mayStore = 1; 38462let DecoderNamespace = "EXT_mmvec"; 38463} 38464def V6_vscattermhq_alt : HInst< 38465(outs), 38466(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 38467"if ($Qs4) vscatter($Rt32,$Mu2,$Vv32.h) = $Vw32.h", 38468PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 38469let isCVI = 1; 38470let isPseudo = 1; 38471let isCodeGenOnly = 1; 38472let DecoderNamespace = "EXT_mmvec"; 38473} 38474def V6_vscattermhw : HInst< 38475(outs), 38476(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32), 38477"vscatter($Rt32,$Mu2,$Vvv32.w).h = $Vw32", 38478tc_7273323b, TypeCVI_SCATTER_DV>, Enc_a641d0, Requires<[UseHVXV65]> { 38479let Inst{7-5} = 0b010; 38480let Inst{31-21} = 0b00101111001; 38481let accessSize = HalfWordAccess; 38482let isCVI = 1; 38483let mayStore = 1; 38484let DecoderNamespace = "EXT_mmvec"; 38485} 38486def V6_vscattermhw_add : HInst< 38487(outs), 38488(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32), 38489"vscatter($Rt32,$Mu2,$Vvv32.w).h += $Vw32", 38490tc_7273323b, TypeCVI_SCATTER_DV>, Enc_a641d0, Requires<[UseHVXV65]> { 38491let Inst{7-5} = 0b110; 38492let Inst{31-21} = 0b00101111001; 38493let accessSize = HalfWordAccess; 38494let isAccumulator = 1; 38495let isCVI = 1; 38496let mayStore = 1; 38497let DecoderNamespace = "EXT_mmvec"; 38498} 38499def V6_vscattermhwq : HInst< 38500(outs), 38501(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32), 38502"if ($Qs4) vscatter($Rt32,$Mu2,$Vvv32.w).h = $Vw32", 38503tc_58d21193, TypeCVI_SCATTER_DV>, Enc_3d6d37, Requires<[UseHVXV65]> { 38504let Inst{7-7} = 0b0; 38505let Inst{31-21} = 0b00101111101; 38506let accessSize = HalfWordAccess; 38507let isCVI = 1; 38508let mayStore = 1; 38509let DecoderNamespace = "EXT_mmvec"; 38510} 38511def V6_vscattermw : HInst< 38512(outs), 38513(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 38514"vscatter($Rt32,$Mu2,$Vv32.w).w = $Vw32", 38515tc_9f363d21, TypeCVI_SCATTER>, Enc_16c48b, Requires<[UseHVXV65]> { 38516let Inst{7-5} = 0b000; 38517let Inst{31-21} = 0b00101111001; 38518let accessSize = WordAccess; 38519let isCVI = 1; 38520let isHVXALU = 1; 38521let isHVXALU2SRC = 1; 38522let mayStore = 1; 38523let DecoderNamespace = "EXT_mmvec"; 38524} 38525def V6_vscattermw_add : HInst< 38526(outs), 38527(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 38528"vscatter($Rt32,$Mu2,$Vv32.w).w += $Vw32", 38529tc_9f363d21, TypeCVI_SCATTER>, Enc_16c48b, Requires<[UseHVXV65]> { 38530let Inst{7-5} = 0b100; 38531let Inst{31-21} = 0b00101111001; 38532let accessSize = WordAccess; 38533let isAccumulator = 1; 38534let isCVI = 1; 38535let isHVXALU = 1; 38536let isHVXALU2SRC = 1; 38537let mayStore = 1; 38538let DecoderNamespace = "EXT_mmvec"; 38539} 38540def V6_vscattermw_add_alt : HInst< 38541(outs), 38542(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 38543"vscatter($Rt32,$Mu2,$Vv32.w) += $Vw32.w", 38544PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 38545let isAccumulator = 1; 38546let isCVI = 1; 38547let isPseudo = 1; 38548let isCodeGenOnly = 1; 38549let DecoderNamespace = "EXT_mmvec"; 38550} 38551def V6_vscattermw_alt : HInst< 38552(outs), 38553(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 38554"vscatter($Rt32,$Mu2,$Vv32.w) = $Vw32.w", 38555PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 38556let isCVI = 1; 38557let isPseudo = 1; 38558let isCodeGenOnly = 1; 38559let DecoderNamespace = "EXT_mmvec"; 38560} 38561def V6_vscattermwh_add_alt : HInst< 38562(outs), 38563(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32), 38564"vscatter($Rt32,$Mu2,$Vvv32.w) += $Vw32.h", 38565PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 38566let isAccumulator = 1; 38567let isCVI = 1; 38568let isPseudo = 1; 38569let isCodeGenOnly = 1; 38570let DecoderNamespace = "EXT_mmvec"; 38571} 38572def V6_vscattermwh_alt : HInst< 38573(outs), 38574(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32), 38575"vscatter($Rt32,$Mu2,$Vvv32.w) = $Vw32.h", 38576PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 38577let isCVI = 1; 38578let isPseudo = 1; 38579let isCodeGenOnly = 1; 38580let DecoderNamespace = "EXT_mmvec"; 38581} 38582def V6_vscattermwhq_alt : HInst< 38583(outs), 38584(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32), 38585"if ($Qs4) vscatter($Rt32,$Mu2,$Vvv32.w) = $Vw32.h", 38586PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 38587let isCVI = 1; 38588let isPseudo = 1; 38589let isCodeGenOnly = 1; 38590let DecoderNamespace = "EXT_mmvec"; 38591} 38592def V6_vscattermwq : HInst< 38593(outs), 38594(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 38595"if ($Qs4) vscatter($Rt32,$Mu2,$Vv32.w).w = $Vw32", 38596tc_8e420e4d, TypeCVI_SCATTER>, Enc_9be1de, Requires<[UseHVXV65]> { 38597let Inst{7-7} = 0b0; 38598let Inst{31-21} = 0b00101111100; 38599let accessSize = WordAccess; 38600let isCVI = 1; 38601let isHVXALU = 1; 38602let isHVXALU2SRC = 1; 38603let mayStore = 1; 38604let DecoderNamespace = "EXT_mmvec"; 38605} 38606def V6_vscattermwq_alt : HInst< 38607(outs), 38608(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32), 38609"if ($Qs4) vscatter($Rt32,$Mu2,$Vv32.w) = $Vw32.w", 38610PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> { 38611let isCVI = 1; 38612let isPseudo = 1; 38613let isCodeGenOnly = 1; 38614let DecoderNamespace = "EXT_mmvec"; 38615} 38616def V6_vsh : HInst< 38617(outs HvxWR:$Vdd32), 38618(ins HvxVR:$Vu32), 38619"$Vdd32.w = vsxt($Vu32.h)", 38620tc_b4416217, TypeCVI_VA_DV>, Enc_dd766a, Requires<[UseHVXV60]> { 38621let Inst{7-5} = 0b100; 38622let Inst{13-13} = 0b0; 38623let Inst{31-16} = 0b0001111000000010; 38624let hasNewValue = 1; 38625let opNewValue = 0; 38626let isCVI = 1; 38627let DecoderNamespace = "EXT_mmvec"; 38628} 38629def V6_vsh_alt : HInst< 38630(outs HvxWR:$Vdd32), 38631(ins HvxVR:$Vu32), 38632"$Vdd32 = vsxth($Vu32)", 38633PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38634let hasNewValue = 1; 38635let opNewValue = 0; 38636let isCVI = 1; 38637let isPseudo = 1; 38638let isCodeGenOnly = 1; 38639let DecoderNamespace = "EXT_mmvec"; 38640} 38641def V6_vshufeh : HInst< 38642(outs HvxVR:$Vd32), 38643(ins HvxVR:$Vu32, HvxVR:$Vv32), 38644"$Vd32.h = vshuffe($Vu32.h,$Vv32.h)", 38645tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 38646let Inst{7-5} = 0b011; 38647let Inst{13-13} = 0b0; 38648let Inst{31-21} = 0b00011111010; 38649let hasNewValue = 1; 38650let opNewValue = 0; 38651let isCVI = 1; 38652let isHVXALU = 1; 38653let isHVXALU2SRC = 1; 38654let DecoderNamespace = "EXT_mmvec"; 38655} 38656def V6_vshufeh_alt : HInst< 38657(outs HvxVR:$Vd32), 38658(ins HvxVR:$Vu32, HvxVR:$Vv32), 38659"$Vd32 = vshuffeh($Vu32,$Vv32)", 38660PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38661let hasNewValue = 1; 38662let opNewValue = 0; 38663let isCVI = 1; 38664let isPseudo = 1; 38665let isCodeGenOnly = 1; 38666let DecoderNamespace = "EXT_mmvec"; 38667} 38668def V6_vshuff : HInst< 38669(outs HvxVR:$Vy32, HvxVR:$Vx32), 38670(ins HvxVR:$Vy32in, HvxVR:$Vx32in, IntRegs:$Rt32), 38671"vshuff($Vy32,$Vx32,$Rt32)", 38672tc_561aaa58, TypeCVI_VP_VS>, Enc_989021, Requires<[UseHVXV60]> { 38673let Inst{7-5} = 0b001; 38674let Inst{13-13} = 0b1; 38675let Inst{31-21} = 0b00011001111; 38676let hasNewValue = 1; 38677let opNewValue = 0; 38678let hasNewValue2 = 1; 38679let opNewValue2 = 1; 38680let isCVI = 1; 38681let DecoderNamespace = "EXT_mmvec"; 38682let Constraints = "$Vy32 = $Vy32in, $Vx32 = $Vx32in"; 38683} 38684def V6_vshuffb : HInst< 38685(outs HvxVR:$Vd32), 38686(ins HvxVR:$Vu32), 38687"$Vd32.b = vshuff($Vu32.b)", 38688tc_946013d8, TypeCVI_VP>, Enc_e7581c, Requires<[UseHVXV60]> { 38689let Inst{7-5} = 0b000; 38690let Inst{13-13} = 0b0; 38691let Inst{31-16} = 0b0001111000000010; 38692let hasNewValue = 1; 38693let opNewValue = 0; 38694let isCVI = 1; 38695let DecoderNamespace = "EXT_mmvec"; 38696} 38697def V6_vshuffb_alt : HInst< 38698(outs HvxVR:$Vd32), 38699(ins HvxVR:$Vu32), 38700"$Vd32 = vshuffb($Vu32)", 38701PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38702let hasNewValue = 1; 38703let opNewValue = 0; 38704let isCVI = 1; 38705let isPseudo = 1; 38706let isCodeGenOnly = 1; 38707let DecoderNamespace = "EXT_mmvec"; 38708} 38709def V6_vshuffeb : HInst< 38710(outs HvxVR:$Vd32), 38711(ins HvxVR:$Vu32, HvxVR:$Vv32), 38712"$Vd32.b = vshuffe($Vu32.b,$Vv32.b)", 38713tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 38714let Inst{7-5} = 0b001; 38715let Inst{13-13} = 0b0; 38716let Inst{31-21} = 0b00011111010; 38717let hasNewValue = 1; 38718let opNewValue = 0; 38719let isCVI = 1; 38720let isHVXALU = 1; 38721let isHVXALU2SRC = 1; 38722let DecoderNamespace = "EXT_mmvec"; 38723} 38724def V6_vshuffeb_alt : HInst< 38725(outs HvxVR:$Vd32), 38726(ins HvxVR:$Vu32, HvxVR:$Vv32), 38727"$Vd32 = vshuffeb($Vu32,$Vv32)", 38728PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38729let hasNewValue = 1; 38730let opNewValue = 0; 38731let isCVI = 1; 38732let isPseudo = 1; 38733let isCodeGenOnly = 1; 38734let DecoderNamespace = "EXT_mmvec"; 38735} 38736def V6_vshuffh : HInst< 38737(outs HvxVR:$Vd32), 38738(ins HvxVR:$Vu32), 38739"$Vd32.h = vshuff($Vu32.h)", 38740tc_946013d8, TypeCVI_VP>, Enc_e7581c, Requires<[UseHVXV60]> { 38741let Inst{7-5} = 0b111; 38742let Inst{13-13} = 0b0; 38743let Inst{31-16} = 0b0001111000000001; 38744let hasNewValue = 1; 38745let opNewValue = 0; 38746let isCVI = 1; 38747let DecoderNamespace = "EXT_mmvec"; 38748} 38749def V6_vshuffh_alt : HInst< 38750(outs HvxVR:$Vd32), 38751(ins HvxVR:$Vu32), 38752"$Vd32 = vshuffh($Vu32)", 38753PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38754let hasNewValue = 1; 38755let opNewValue = 0; 38756let isCVI = 1; 38757let isPseudo = 1; 38758let isCodeGenOnly = 1; 38759let DecoderNamespace = "EXT_mmvec"; 38760} 38761def V6_vshuffob : HInst< 38762(outs HvxVR:$Vd32), 38763(ins HvxVR:$Vu32, HvxVR:$Vv32), 38764"$Vd32.b = vshuffo($Vu32.b,$Vv32.b)", 38765tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 38766let Inst{7-5} = 0b010; 38767let Inst{13-13} = 0b0; 38768let Inst{31-21} = 0b00011111010; 38769let hasNewValue = 1; 38770let opNewValue = 0; 38771let isCVI = 1; 38772let isHVXALU = 1; 38773let isHVXALU2SRC = 1; 38774let DecoderNamespace = "EXT_mmvec"; 38775} 38776def V6_vshuffob_alt : HInst< 38777(outs HvxVR:$Vd32), 38778(ins HvxVR:$Vu32, HvxVR:$Vv32), 38779"$Vd32 = vshuffob($Vu32,$Vv32)", 38780PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38781let hasNewValue = 1; 38782let opNewValue = 0; 38783let isCVI = 1; 38784let isPseudo = 1; 38785let isCodeGenOnly = 1; 38786let DecoderNamespace = "EXT_mmvec"; 38787} 38788def V6_vshuffvdd : HInst< 38789(outs HvxWR:$Vdd32), 38790(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8), 38791"$Vdd32 = vshuff($Vu32,$Vv32,$Rt8)", 38792tc_87adc037, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[UseHVXV60]> { 38793let Inst{7-5} = 0b011; 38794let Inst{13-13} = 0b1; 38795let Inst{31-24} = 0b00011011; 38796let hasNewValue = 1; 38797let opNewValue = 0; 38798let isCVI = 1; 38799let DecoderNamespace = "EXT_mmvec"; 38800} 38801def V6_vshufoeb : HInst< 38802(outs HvxWR:$Vdd32), 38803(ins HvxVR:$Vu32, HvxVR:$Vv32), 38804"$Vdd32.b = vshuffoe($Vu32.b,$Vv32.b)", 38805tc_db5555f3, TypeCVI_VA_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 38806let Inst{7-5} = 0b110; 38807let Inst{13-13} = 0b0; 38808let Inst{31-21} = 0b00011111010; 38809let hasNewValue = 1; 38810let opNewValue = 0; 38811let isCVI = 1; 38812let DecoderNamespace = "EXT_mmvec"; 38813} 38814def V6_vshufoeb_alt : HInst< 38815(outs HvxWR:$Vdd32), 38816(ins HvxVR:$Vu32, HvxVR:$Vv32), 38817"$Vdd32 = vshuffoeb($Vu32,$Vv32)", 38818PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38819let hasNewValue = 1; 38820let opNewValue = 0; 38821let isCVI = 1; 38822let isPseudo = 1; 38823let isCodeGenOnly = 1; 38824let DecoderNamespace = "EXT_mmvec"; 38825} 38826def V6_vshufoeh : HInst< 38827(outs HvxWR:$Vdd32), 38828(ins HvxVR:$Vu32, HvxVR:$Vv32), 38829"$Vdd32.h = vshuffoe($Vu32.h,$Vv32.h)", 38830tc_db5555f3, TypeCVI_VA_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 38831let Inst{7-5} = 0b101; 38832let Inst{13-13} = 0b0; 38833let Inst{31-21} = 0b00011111010; 38834let hasNewValue = 1; 38835let opNewValue = 0; 38836let isCVI = 1; 38837let DecoderNamespace = "EXT_mmvec"; 38838} 38839def V6_vshufoeh_alt : HInst< 38840(outs HvxWR:$Vdd32), 38841(ins HvxVR:$Vu32, HvxVR:$Vv32), 38842"$Vdd32 = vshuffoeh($Vu32,$Vv32)", 38843PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38844let hasNewValue = 1; 38845let opNewValue = 0; 38846let isCVI = 1; 38847let isPseudo = 1; 38848let isCodeGenOnly = 1; 38849let DecoderNamespace = "EXT_mmvec"; 38850} 38851def V6_vshufoh : HInst< 38852(outs HvxVR:$Vd32), 38853(ins HvxVR:$Vu32, HvxVR:$Vv32), 38854"$Vd32.h = vshuffo($Vu32.h,$Vv32.h)", 38855tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 38856let Inst{7-5} = 0b100; 38857let Inst{13-13} = 0b0; 38858let Inst{31-21} = 0b00011111010; 38859let hasNewValue = 1; 38860let opNewValue = 0; 38861let isCVI = 1; 38862let isHVXALU = 1; 38863let isHVXALU2SRC = 1; 38864let DecoderNamespace = "EXT_mmvec"; 38865} 38866def V6_vshufoh_alt : HInst< 38867(outs HvxVR:$Vd32), 38868(ins HvxVR:$Vu32, HvxVR:$Vv32), 38869"$Vd32 = vshuffoh($Vu32,$Vv32)", 38870PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 38871let hasNewValue = 1; 38872let opNewValue = 0; 38873let isCVI = 1; 38874let isPseudo = 1; 38875let isCodeGenOnly = 1; 38876let DecoderNamespace = "EXT_mmvec"; 38877} 38878def V6_vsub_hf : HInst< 38879(outs HvxVR:$Vd32), 38880(ins HvxVR:$Vu32, HvxVR:$Vv32), 38881"$Vd32.qf16 = vsub($Vu32.hf,$Vv32.hf)", 38882tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> { 38883let Inst{7-5} = 0b110; 38884let Inst{13-13} = 0b1; 38885let Inst{31-21} = 0b00011111011; 38886let hasNewValue = 1; 38887let opNewValue = 0; 38888let isCVI = 1; 38889let DecoderNamespace = "EXT_mmvec"; 38890} 38891def V6_vsub_hf_hf : HInst< 38892(outs HvxVR:$Vd32), 38893(ins HvxVR:$Vu32, HvxVR:$Vv32), 38894"$Vd32.hf = vsub($Vu32.hf,$Vv32.hf)", 38895tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> { 38896let Inst{7-5} = 0b000; 38897let Inst{13-13} = 0b1; 38898let Inst{31-21} = 0b00011111011; 38899let hasNewValue = 1; 38900let opNewValue = 0; 38901let isCVI = 1; 38902let DecoderNamespace = "EXT_mmvec"; 38903} 38904def V6_vsub_qf16 : HInst< 38905(outs HvxVR:$Vd32), 38906(ins HvxVR:$Vu32, HvxVR:$Vv32), 38907"$Vd32.qf16 = vsub($Vu32.qf16,$Vv32.qf16)", 38908tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> { 38909let Inst{7-5} = 0b101; 38910let Inst{13-13} = 0b1; 38911let Inst{31-21} = 0b00011111011; 38912let hasNewValue = 1; 38913let opNewValue = 0; 38914let isCVI = 1; 38915let DecoderNamespace = "EXT_mmvec"; 38916} 38917def V6_vsub_qf16_mix : HInst< 38918(outs HvxVR:$Vd32), 38919(ins HvxVR:$Vu32, HvxVR:$Vv32), 38920"$Vd32.qf16 = vsub($Vu32.qf16,$Vv32.hf)", 38921tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> { 38922let Inst{7-5} = 0b111; 38923let Inst{13-13} = 0b1; 38924let Inst{31-21} = 0b00011111011; 38925let hasNewValue = 1; 38926let opNewValue = 0; 38927let isCVI = 1; 38928let DecoderNamespace = "EXT_mmvec"; 38929} 38930def V6_vsub_qf32 : HInst< 38931(outs HvxVR:$Vd32), 38932(ins HvxVR:$Vu32, HvxVR:$Vv32), 38933"$Vd32.qf32 = vsub($Vu32.qf32,$Vv32.qf32)", 38934tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> { 38935let Inst{7-5} = 0b011; 38936let Inst{13-13} = 0b1; 38937let Inst{31-21} = 0b00011111101; 38938let hasNewValue = 1; 38939let opNewValue = 0; 38940let isCVI = 1; 38941let DecoderNamespace = "EXT_mmvec"; 38942} 38943def V6_vsub_qf32_mix : HInst< 38944(outs HvxVR:$Vd32), 38945(ins HvxVR:$Vu32, HvxVR:$Vv32), 38946"$Vd32.qf32 = vsub($Vu32.qf32,$Vv32.sf)", 38947tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> { 38948let Inst{7-5} = 0b101; 38949let Inst{13-13} = 0b1; 38950let Inst{31-21} = 0b00011111101; 38951let hasNewValue = 1; 38952let opNewValue = 0; 38953let isCVI = 1; 38954let DecoderNamespace = "EXT_mmvec"; 38955} 38956def V6_vsub_sf : HInst< 38957(outs HvxVR:$Vd32), 38958(ins HvxVR:$Vu32, HvxVR:$Vv32), 38959"$Vd32.qf32 = vsub($Vu32.sf,$Vv32.sf)", 38960tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV68,UseHVXQFloat]> { 38961let Inst{7-5} = 0b100; 38962let Inst{13-13} = 0b1; 38963let Inst{31-21} = 0b00011111101; 38964let hasNewValue = 1; 38965let opNewValue = 0; 38966let isCVI = 1; 38967let DecoderNamespace = "EXT_mmvec"; 38968} 38969def V6_vsub_sf_bf : HInst< 38970(outs HvxWR:$Vdd32), 38971(ins HvxVR:$Vu32, HvxVR:$Vv32), 38972"$Vdd32.sf = vsub($Vu32.bf,$Vv32.bf)", 38973tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV73,UseHVXIEEEFP]> { 38974let Inst{7-5} = 0b101; 38975let Inst{13-13} = 0b1; 38976let Inst{31-21} = 0b00011101010; 38977let hasNewValue = 1; 38978let opNewValue = 0; 38979let isCVI = 1; 38980let DecoderNamespace = "EXT_mmvec"; 38981} 38982def V6_vsub_sf_hf : HInst< 38983(outs HvxWR:$Vdd32), 38984(ins HvxVR:$Vu32, HvxVR:$Vv32), 38985"$Vdd32.sf = vsub($Vu32.hf,$Vv32.hf)", 38986tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV68,UseHVXIEEEFP]> { 38987let Inst{7-5} = 0b101; 38988let Inst{13-13} = 0b1; 38989let Inst{31-21} = 0b00011111100; 38990let hasNewValue = 1; 38991let opNewValue = 0; 38992let isCVI = 1; 38993let DecoderNamespace = "EXT_mmvec"; 38994} 38995def V6_vsub_sf_sf : HInst< 38996(outs HvxVR:$Vd32), 38997(ins HvxVR:$Vu32, HvxVR:$Vv32), 38998"$Vd32.sf = vsub($Vu32.sf,$Vv32.sf)", 38999tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV68,UseHVXIEEEFP]> { 39000let Inst{7-5} = 0b111; 39001let Inst{13-13} = 0b1; 39002let Inst{31-21} = 0b00011111100; 39003let hasNewValue = 1; 39004let opNewValue = 0; 39005let isCVI = 1; 39006let DecoderNamespace = "EXT_mmvec"; 39007} 39008def V6_vsubb : HInst< 39009(outs HvxVR:$Vd32), 39010(ins HvxVR:$Vu32, HvxVR:$Vv32), 39011"$Vd32.b = vsub($Vu32.b,$Vv32.b)", 39012tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 39013let Inst{7-5} = 0b101; 39014let Inst{13-13} = 0b0; 39015let Inst{31-21} = 0b00011100010; 39016let hasNewValue = 1; 39017let opNewValue = 0; 39018let isCVI = 1; 39019let isHVXALU = 1; 39020let isHVXALU2SRC = 1; 39021let DecoderNamespace = "EXT_mmvec"; 39022} 39023def V6_vsubb_alt : HInst< 39024(outs HvxVR:$Vd32), 39025(ins HvxVR:$Vu32, HvxVR:$Vv32), 39026"$Vd32 = vsubb($Vu32,$Vv32)", 39027PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 39028let hasNewValue = 1; 39029let opNewValue = 0; 39030let isCVI = 1; 39031let isPseudo = 1; 39032let isCodeGenOnly = 1; 39033let DecoderNamespace = "EXT_mmvec"; 39034} 39035def V6_vsubb_dv : HInst< 39036(outs HvxWR:$Vdd32), 39037(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 39038"$Vdd32.b = vsub($Vuu32.b,$Vvv32.b)", 39039tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 39040let Inst{7-5} = 0b011; 39041let Inst{13-13} = 0b0; 39042let Inst{31-21} = 0b00011100100; 39043let hasNewValue = 1; 39044let opNewValue = 0; 39045let isCVI = 1; 39046let DecoderNamespace = "EXT_mmvec"; 39047} 39048def V6_vsubb_dv_alt : HInst< 39049(outs HvxWR:$Vdd32), 39050(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 39051"$Vdd32 = vsubb($Vuu32,$Vvv32)", 39052PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 39053let hasNewValue = 1; 39054let opNewValue = 0; 39055let isCVI = 1; 39056let isPseudo = 1; 39057let isCodeGenOnly = 1; 39058let DecoderNamespace = "EXT_mmvec"; 39059} 39060def V6_vsubbnq : HInst< 39061(outs HvxVR:$Vx32), 39062(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 39063"if (!$Qv4) $Vx32.b -= $Vu32.b", 39064tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 39065let Inst{7-5} = 0b001; 39066let Inst{13-13} = 0b1; 39067let Inst{21-16} = 0b000010; 39068let Inst{31-24} = 0b00011110; 39069let hasNewValue = 1; 39070let opNewValue = 0; 39071let isCVI = 1; 39072let isHVXALU = 1; 39073let isHVXALU2SRC = 1; 39074let DecoderNamespace = "EXT_mmvec"; 39075let Constraints = "$Vx32 = $Vx32in"; 39076} 39077def V6_vsubbnq_alt : HInst< 39078(outs HvxVR:$Vx32), 39079(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 39080"if (!$Qv4.b) $Vx32.b -= $Vu32.b", 39081PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 39082let hasNewValue = 1; 39083let opNewValue = 0; 39084let isCVI = 1; 39085let isPseudo = 1; 39086let isCodeGenOnly = 1; 39087let DecoderNamespace = "EXT_mmvec"; 39088let Constraints = "$Vx32 = $Vx32in"; 39089} 39090def V6_vsubbq : HInst< 39091(outs HvxVR:$Vx32), 39092(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 39093"if ($Qv4) $Vx32.b -= $Vu32.b", 39094tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 39095let Inst{7-5} = 0b110; 39096let Inst{13-13} = 0b1; 39097let Inst{21-16} = 0b000001; 39098let Inst{31-24} = 0b00011110; 39099let hasNewValue = 1; 39100let opNewValue = 0; 39101let isCVI = 1; 39102let isHVXALU = 1; 39103let isHVXALU2SRC = 1; 39104let DecoderNamespace = "EXT_mmvec"; 39105let Constraints = "$Vx32 = $Vx32in"; 39106} 39107def V6_vsubbq_alt : HInst< 39108(outs HvxVR:$Vx32), 39109(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 39110"if ($Qv4.b) $Vx32.b -= $Vu32.b", 39111PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 39112let hasNewValue = 1; 39113let opNewValue = 0; 39114let isCVI = 1; 39115let isPseudo = 1; 39116let isCodeGenOnly = 1; 39117let DecoderNamespace = "EXT_mmvec"; 39118let Constraints = "$Vx32 = $Vx32in"; 39119} 39120def V6_vsubbsat : HInst< 39121(outs HvxVR:$Vd32), 39122(ins HvxVR:$Vu32, HvxVR:$Vv32), 39123"$Vd32.b = vsub($Vu32.b,$Vv32.b):sat", 39124tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> { 39125let Inst{7-5} = 0b010; 39126let Inst{13-13} = 0b0; 39127let Inst{31-21} = 0b00011111001; 39128let hasNewValue = 1; 39129let opNewValue = 0; 39130let isCVI = 1; 39131let isHVXALU = 1; 39132let isHVXALU2SRC = 1; 39133let DecoderNamespace = "EXT_mmvec"; 39134} 39135def V6_vsubbsat_alt : HInst< 39136(outs HvxVR:$Vd32), 39137(ins HvxVR:$Vu32, HvxVR:$Vv32), 39138"$Vd32 = vsubb($Vu32,$Vv32):sat", 39139PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 39140let hasNewValue = 1; 39141let opNewValue = 0; 39142let isCVI = 1; 39143let isPseudo = 1; 39144let isCodeGenOnly = 1; 39145let DecoderNamespace = "EXT_mmvec"; 39146} 39147def V6_vsubbsat_dv : HInst< 39148(outs HvxWR:$Vdd32), 39149(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 39150"$Vdd32.b = vsub($Vuu32.b,$Vvv32.b):sat", 39151tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV62]> { 39152let Inst{7-5} = 0b001; 39153let Inst{13-13} = 0b0; 39154let Inst{31-21} = 0b00011110101; 39155let hasNewValue = 1; 39156let opNewValue = 0; 39157let isCVI = 1; 39158let DecoderNamespace = "EXT_mmvec"; 39159} 39160def V6_vsubbsat_dv_alt : HInst< 39161(outs HvxWR:$Vdd32), 39162(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 39163"$Vdd32 = vsubb($Vuu32,$Vvv32):sat", 39164PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 39165let hasNewValue = 1; 39166let opNewValue = 0; 39167let isCVI = 1; 39168let isPseudo = 1; 39169let isCodeGenOnly = 1; 39170let DecoderNamespace = "EXT_mmvec"; 39171} 39172def V6_vsubcarry : HInst< 39173(outs HvxVR:$Vd32, HvxQR:$Qx4), 39174(ins HvxVR:$Vu32, HvxVR:$Vv32, HvxQR:$Qx4in), 39175"$Vd32.w = vsub($Vu32.w,$Vv32.w,$Qx4):carry", 39176tc_7e6a3e89, TypeCVI_VA>, Enc_b43b67, Requires<[UseHVXV62]> { 39177let Inst{7-7} = 0b1; 39178let Inst{13-13} = 0b1; 39179let Inst{31-21} = 0b00011100101; 39180let hasNewValue = 1; 39181let opNewValue = 0; 39182let isCVI = 1; 39183let isHVXALU = 1; 39184let isHVXALU2SRC = 1; 39185let DecoderNamespace = "EXT_mmvec"; 39186let Constraints = "$Qx4 = $Qx4in"; 39187} 39188def V6_vsubcarryo : HInst< 39189(outs HvxVR:$Vd32, HvxQR:$Qe4), 39190(ins HvxVR:$Vu32, HvxVR:$Vv32), 39191"$Vd32.w,$Qe4 = vsub($Vu32.w,$Vv32.w):carry", 39192tc_e35c1e93, TypeCVI_VA>, Enc_c1d806, Requires<[UseHVXV66]> { 39193let Inst{7-7} = 0b1; 39194let Inst{13-13} = 0b1; 39195let Inst{31-21} = 0b00011101101; 39196let hasNewValue = 1; 39197let opNewValue = 0; 39198let isCVI = 1; 39199let isHVXALU = 1; 39200let isHVXALU2SRC = 1; 39201let DecoderNamespace = "EXT_mmvec"; 39202} 39203def V6_vsubh : HInst< 39204(outs HvxVR:$Vd32), 39205(ins HvxVR:$Vu32, HvxVR:$Vv32), 39206"$Vd32.h = vsub($Vu32.h,$Vv32.h)", 39207tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 39208let Inst{7-5} = 0b110; 39209let Inst{13-13} = 0b0; 39210let Inst{31-21} = 0b00011100010; 39211let hasNewValue = 1; 39212let opNewValue = 0; 39213let isCVI = 1; 39214let isHVXALU = 1; 39215let isHVXALU2SRC = 1; 39216let DecoderNamespace = "EXT_mmvec"; 39217} 39218def V6_vsubh_alt : HInst< 39219(outs HvxVR:$Vd32), 39220(ins HvxVR:$Vu32, HvxVR:$Vv32), 39221"$Vd32 = vsubh($Vu32,$Vv32)", 39222PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 39223let hasNewValue = 1; 39224let opNewValue = 0; 39225let isCVI = 1; 39226let isPseudo = 1; 39227let isCodeGenOnly = 1; 39228let DecoderNamespace = "EXT_mmvec"; 39229} 39230def V6_vsubh_dv : HInst< 39231(outs HvxWR:$Vdd32), 39232(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 39233"$Vdd32.h = vsub($Vuu32.h,$Vvv32.h)", 39234tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 39235let Inst{7-5} = 0b100; 39236let Inst{13-13} = 0b0; 39237let Inst{31-21} = 0b00011100100; 39238let hasNewValue = 1; 39239let opNewValue = 0; 39240let isCVI = 1; 39241let DecoderNamespace = "EXT_mmvec"; 39242} 39243def V6_vsubh_dv_alt : HInst< 39244(outs HvxWR:$Vdd32), 39245(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 39246"$Vdd32 = vsubh($Vuu32,$Vvv32)", 39247PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 39248let hasNewValue = 1; 39249let opNewValue = 0; 39250let isCVI = 1; 39251let isPseudo = 1; 39252let isCodeGenOnly = 1; 39253let DecoderNamespace = "EXT_mmvec"; 39254} 39255def V6_vsubhnq : HInst< 39256(outs HvxVR:$Vx32), 39257(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 39258"if (!$Qv4) $Vx32.h -= $Vu32.h", 39259tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 39260let Inst{7-5} = 0b010; 39261let Inst{13-13} = 0b1; 39262let Inst{21-16} = 0b000010; 39263let Inst{31-24} = 0b00011110; 39264let hasNewValue = 1; 39265let opNewValue = 0; 39266let isCVI = 1; 39267let isHVXALU = 1; 39268let isHVXALU2SRC = 1; 39269let DecoderNamespace = "EXT_mmvec"; 39270let Constraints = "$Vx32 = $Vx32in"; 39271} 39272def V6_vsubhnq_alt : HInst< 39273(outs HvxVR:$Vx32), 39274(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 39275"if (!$Qv4.h) $Vx32.h -= $Vu32.h", 39276PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 39277let hasNewValue = 1; 39278let opNewValue = 0; 39279let isCVI = 1; 39280let isPseudo = 1; 39281let isCodeGenOnly = 1; 39282let DecoderNamespace = "EXT_mmvec"; 39283let Constraints = "$Vx32 = $Vx32in"; 39284} 39285def V6_vsubhq : HInst< 39286(outs HvxVR:$Vx32), 39287(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 39288"if ($Qv4) $Vx32.h -= $Vu32.h", 39289tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 39290let Inst{7-5} = 0b111; 39291let Inst{13-13} = 0b1; 39292let Inst{21-16} = 0b000001; 39293let Inst{31-24} = 0b00011110; 39294let hasNewValue = 1; 39295let opNewValue = 0; 39296let isCVI = 1; 39297let isHVXALU = 1; 39298let isHVXALU2SRC = 1; 39299let DecoderNamespace = "EXT_mmvec"; 39300let Constraints = "$Vx32 = $Vx32in"; 39301} 39302def V6_vsubhq_alt : HInst< 39303(outs HvxVR:$Vx32), 39304(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 39305"if ($Qv4.h) $Vx32.h -= $Vu32.h", 39306PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 39307let hasNewValue = 1; 39308let opNewValue = 0; 39309let isCVI = 1; 39310let isPseudo = 1; 39311let isCodeGenOnly = 1; 39312let DecoderNamespace = "EXT_mmvec"; 39313let Constraints = "$Vx32 = $Vx32in"; 39314} 39315def V6_vsubhsat : HInst< 39316(outs HvxVR:$Vd32), 39317(ins HvxVR:$Vu32, HvxVR:$Vv32), 39318"$Vd32.h = vsub($Vu32.h,$Vv32.h):sat", 39319tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 39320let Inst{7-5} = 0b010; 39321let Inst{13-13} = 0b0; 39322let Inst{31-21} = 0b00011100011; 39323let hasNewValue = 1; 39324let opNewValue = 0; 39325let isCVI = 1; 39326let isHVXALU = 1; 39327let isHVXALU2SRC = 1; 39328let DecoderNamespace = "EXT_mmvec"; 39329} 39330def V6_vsubhsat_alt : HInst< 39331(outs HvxVR:$Vd32), 39332(ins HvxVR:$Vu32, HvxVR:$Vv32), 39333"$Vd32 = vsubh($Vu32,$Vv32):sat", 39334PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 39335let hasNewValue = 1; 39336let opNewValue = 0; 39337let isCVI = 1; 39338let isPseudo = 1; 39339let isCodeGenOnly = 1; 39340let DecoderNamespace = "EXT_mmvec"; 39341} 39342def V6_vsubhsat_dv : HInst< 39343(outs HvxWR:$Vdd32), 39344(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 39345"$Vdd32.h = vsub($Vuu32.h,$Vvv32.h):sat", 39346tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 39347let Inst{7-5} = 0b000; 39348let Inst{13-13} = 0b0; 39349let Inst{31-21} = 0b00011100101; 39350let hasNewValue = 1; 39351let opNewValue = 0; 39352let isCVI = 1; 39353let DecoderNamespace = "EXT_mmvec"; 39354} 39355def V6_vsubhsat_dv_alt : HInst< 39356(outs HvxWR:$Vdd32), 39357(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 39358"$Vdd32 = vsubh($Vuu32,$Vvv32):sat", 39359PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 39360let hasNewValue = 1; 39361let opNewValue = 0; 39362let isCVI = 1; 39363let isPseudo = 1; 39364let isCodeGenOnly = 1; 39365let DecoderNamespace = "EXT_mmvec"; 39366} 39367def V6_vsubhw : HInst< 39368(outs HvxWR:$Vdd32), 39369(ins HvxVR:$Vu32, HvxVR:$Vv32), 39370"$Vdd32.w = vsub($Vu32.h,$Vv32.h)", 39371tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 39372let Inst{7-5} = 0b111; 39373let Inst{13-13} = 0b0; 39374let Inst{31-21} = 0b00011100101; 39375let hasNewValue = 1; 39376let opNewValue = 0; 39377let isCVI = 1; 39378let DecoderNamespace = "EXT_mmvec"; 39379} 39380def V6_vsubhw_alt : HInst< 39381(outs HvxWR:$Vdd32), 39382(ins HvxVR:$Vu32, HvxVR:$Vv32), 39383"$Vdd32 = vsubh($Vu32,$Vv32)", 39384PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 39385let hasNewValue = 1; 39386let opNewValue = 0; 39387let isCVI = 1; 39388let isPseudo = 1; 39389let isCodeGenOnly = 1; 39390let DecoderNamespace = "EXT_mmvec"; 39391} 39392def V6_vsububh : HInst< 39393(outs HvxWR:$Vdd32), 39394(ins HvxVR:$Vu32, HvxVR:$Vv32), 39395"$Vdd32.h = vsub($Vu32.ub,$Vv32.ub)", 39396tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 39397let Inst{7-5} = 0b101; 39398let Inst{13-13} = 0b0; 39399let Inst{31-21} = 0b00011100101; 39400let hasNewValue = 1; 39401let opNewValue = 0; 39402let isCVI = 1; 39403let DecoderNamespace = "EXT_mmvec"; 39404} 39405def V6_vsububh_alt : HInst< 39406(outs HvxWR:$Vdd32), 39407(ins HvxVR:$Vu32, HvxVR:$Vv32), 39408"$Vdd32 = vsubub($Vu32,$Vv32)", 39409PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 39410let hasNewValue = 1; 39411let opNewValue = 0; 39412let isCVI = 1; 39413let isPseudo = 1; 39414let isCodeGenOnly = 1; 39415let DecoderNamespace = "EXT_mmvec"; 39416} 39417def V6_vsububsat : HInst< 39418(outs HvxVR:$Vd32), 39419(ins HvxVR:$Vu32, HvxVR:$Vv32), 39420"$Vd32.ub = vsub($Vu32.ub,$Vv32.ub):sat", 39421tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 39422let Inst{7-5} = 0b000; 39423let Inst{13-13} = 0b0; 39424let Inst{31-21} = 0b00011100011; 39425let hasNewValue = 1; 39426let opNewValue = 0; 39427let isCVI = 1; 39428let isHVXALU = 1; 39429let isHVXALU2SRC = 1; 39430let DecoderNamespace = "EXT_mmvec"; 39431} 39432def V6_vsububsat_alt : HInst< 39433(outs HvxVR:$Vd32), 39434(ins HvxVR:$Vu32, HvxVR:$Vv32), 39435"$Vd32 = vsubub($Vu32,$Vv32):sat", 39436PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 39437let hasNewValue = 1; 39438let opNewValue = 0; 39439let isCVI = 1; 39440let isPseudo = 1; 39441let isCodeGenOnly = 1; 39442let DecoderNamespace = "EXT_mmvec"; 39443} 39444def V6_vsububsat_dv : HInst< 39445(outs HvxWR:$Vdd32), 39446(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 39447"$Vdd32.ub = vsub($Vuu32.ub,$Vvv32.ub):sat", 39448tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 39449let Inst{7-5} = 0b110; 39450let Inst{13-13} = 0b0; 39451let Inst{31-21} = 0b00011100100; 39452let hasNewValue = 1; 39453let opNewValue = 0; 39454let isCVI = 1; 39455let DecoderNamespace = "EXT_mmvec"; 39456} 39457def V6_vsububsat_dv_alt : HInst< 39458(outs HvxWR:$Vdd32), 39459(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 39460"$Vdd32 = vsubub($Vuu32,$Vvv32):sat", 39461PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 39462let hasNewValue = 1; 39463let opNewValue = 0; 39464let isCVI = 1; 39465let isPseudo = 1; 39466let isCodeGenOnly = 1; 39467let DecoderNamespace = "EXT_mmvec"; 39468} 39469def V6_vsubububb_sat : HInst< 39470(outs HvxVR:$Vd32), 39471(ins HvxVR:$Vu32, HvxVR:$Vv32), 39472"$Vd32.ub = vsub($Vu32.ub,$Vv32.b):sat", 39473tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> { 39474let Inst{7-5} = 0b101; 39475let Inst{13-13} = 0b0; 39476let Inst{31-21} = 0b00011110101; 39477let hasNewValue = 1; 39478let opNewValue = 0; 39479let isCVI = 1; 39480let isHVXALU = 1; 39481let isHVXALU2SRC = 1; 39482let DecoderNamespace = "EXT_mmvec"; 39483} 39484def V6_vsubuhsat : HInst< 39485(outs HvxVR:$Vd32), 39486(ins HvxVR:$Vu32, HvxVR:$Vv32), 39487"$Vd32.uh = vsub($Vu32.uh,$Vv32.uh):sat", 39488tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 39489let Inst{7-5} = 0b001; 39490let Inst{13-13} = 0b0; 39491let Inst{31-21} = 0b00011100011; 39492let hasNewValue = 1; 39493let opNewValue = 0; 39494let isCVI = 1; 39495let isHVXALU = 1; 39496let isHVXALU2SRC = 1; 39497let DecoderNamespace = "EXT_mmvec"; 39498} 39499def V6_vsubuhsat_alt : HInst< 39500(outs HvxVR:$Vd32), 39501(ins HvxVR:$Vu32, HvxVR:$Vv32), 39502"$Vd32 = vsubuh($Vu32,$Vv32):sat", 39503PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 39504let hasNewValue = 1; 39505let opNewValue = 0; 39506let isCVI = 1; 39507let isPseudo = 1; 39508let isCodeGenOnly = 1; 39509let DecoderNamespace = "EXT_mmvec"; 39510} 39511def V6_vsubuhsat_dv : HInst< 39512(outs HvxWR:$Vdd32), 39513(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 39514"$Vdd32.uh = vsub($Vuu32.uh,$Vvv32.uh):sat", 39515tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 39516let Inst{7-5} = 0b111; 39517let Inst{13-13} = 0b0; 39518let Inst{31-21} = 0b00011100100; 39519let hasNewValue = 1; 39520let opNewValue = 0; 39521let isCVI = 1; 39522let DecoderNamespace = "EXT_mmvec"; 39523} 39524def V6_vsubuhsat_dv_alt : HInst< 39525(outs HvxWR:$Vdd32), 39526(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 39527"$Vdd32 = vsubuh($Vuu32,$Vvv32):sat", 39528PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 39529let hasNewValue = 1; 39530let opNewValue = 0; 39531let isCVI = 1; 39532let isPseudo = 1; 39533let isCodeGenOnly = 1; 39534let DecoderNamespace = "EXT_mmvec"; 39535} 39536def V6_vsubuhw : HInst< 39537(outs HvxWR:$Vdd32), 39538(ins HvxVR:$Vu32, HvxVR:$Vv32), 39539"$Vdd32.w = vsub($Vu32.uh,$Vv32.uh)", 39540tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> { 39541let Inst{7-5} = 0b110; 39542let Inst{13-13} = 0b0; 39543let Inst{31-21} = 0b00011100101; 39544let hasNewValue = 1; 39545let opNewValue = 0; 39546let isCVI = 1; 39547let DecoderNamespace = "EXT_mmvec"; 39548} 39549def V6_vsubuhw_alt : HInst< 39550(outs HvxWR:$Vdd32), 39551(ins HvxVR:$Vu32, HvxVR:$Vv32), 39552"$Vdd32 = vsubuh($Vu32,$Vv32)", 39553PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 39554let hasNewValue = 1; 39555let opNewValue = 0; 39556let isCVI = 1; 39557let isPseudo = 1; 39558let isCodeGenOnly = 1; 39559let DecoderNamespace = "EXT_mmvec"; 39560} 39561def V6_vsubuwsat : HInst< 39562(outs HvxVR:$Vd32), 39563(ins HvxVR:$Vu32, HvxVR:$Vv32), 39564"$Vd32.uw = vsub($Vu32.uw,$Vv32.uw):sat", 39565tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> { 39566let Inst{7-5} = 0b100; 39567let Inst{13-13} = 0b0; 39568let Inst{31-21} = 0b00011111110; 39569let hasNewValue = 1; 39570let opNewValue = 0; 39571let isCVI = 1; 39572let isHVXALU = 1; 39573let isHVXALU2SRC = 1; 39574let DecoderNamespace = "EXT_mmvec"; 39575} 39576def V6_vsubuwsat_alt : HInst< 39577(outs HvxVR:$Vd32), 39578(ins HvxVR:$Vu32, HvxVR:$Vv32), 39579"$Vd32 = vsubuw($Vu32,$Vv32):sat", 39580PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 39581let hasNewValue = 1; 39582let opNewValue = 0; 39583let isCVI = 1; 39584let isPseudo = 1; 39585let isCodeGenOnly = 1; 39586let DecoderNamespace = "EXT_mmvec"; 39587} 39588def V6_vsubuwsat_dv : HInst< 39589(outs HvxWR:$Vdd32), 39590(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 39591"$Vdd32.uw = vsub($Vuu32.uw,$Vvv32.uw):sat", 39592tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV62]> { 39593let Inst{7-5} = 0b011; 39594let Inst{13-13} = 0b0; 39595let Inst{31-21} = 0b00011110101; 39596let hasNewValue = 1; 39597let opNewValue = 0; 39598let isCVI = 1; 39599let DecoderNamespace = "EXT_mmvec"; 39600} 39601def V6_vsubuwsat_dv_alt : HInst< 39602(outs HvxWR:$Vdd32), 39603(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 39604"$Vdd32 = vsubuw($Vuu32,$Vvv32):sat", 39605PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> { 39606let hasNewValue = 1; 39607let opNewValue = 0; 39608let isCVI = 1; 39609let isPseudo = 1; 39610let isCodeGenOnly = 1; 39611let DecoderNamespace = "EXT_mmvec"; 39612} 39613def V6_vsubw : HInst< 39614(outs HvxVR:$Vd32), 39615(ins HvxVR:$Vu32, HvxVR:$Vv32), 39616"$Vd32.w = vsub($Vu32.w,$Vv32.w)", 39617tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 39618let Inst{7-5} = 0b111; 39619let Inst{13-13} = 0b0; 39620let Inst{31-21} = 0b00011100010; 39621let hasNewValue = 1; 39622let opNewValue = 0; 39623let isCVI = 1; 39624let isHVXALU = 1; 39625let isHVXALU2SRC = 1; 39626let DecoderNamespace = "EXT_mmvec"; 39627} 39628def V6_vsubw_alt : HInst< 39629(outs HvxVR:$Vd32), 39630(ins HvxVR:$Vu32, HvxVR:$Vv32), 39631"$Vd32 = vsubw($Vu32,$Vv32)", 39632PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 39633let hasNewValue = 1; 39634let opNewValue = 0; 39635let isCVI = 1; 39636let isPseudo = 1; 39637let isCodeGenOnly = 1; 39638let DecoderNamespace = "EXT_mmvec"; 39639} 39640def V6_vsubw_dv : HInst< 39641(outs HvxWR:$Vdd32), 39642(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 39643"$Vdd32.w = vsub($Vuu32.w,$Vvv32.w)", 39644tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 39645let Inst{7-5} = 0b101; 39646let Inst{13-13} = 0b0; 39647let Inst{31-21} = 0b00011100100; 39648let hasNewValue = 1; 39649let opNewValue = 0; 39650let isCVI = 1; 39651let DecoderNamespace = "EXT_mmvec"; 39652} 39653def V6_vsubw_dv_alt : HInst< 39654(outs HvxWR:$Vdd32), 39655(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 39656"$Vdd32 = vsubw($Vuu32,$Vvv32)", 39657PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 39658let hasNewValue = 1; 39659let opNewValue = 0; 39660let isCVI = 1; 39661let isPseudo = 1; 39662let isCodeGenOnly = 1; 39663let DecoderNamespace = "EXT_mmvec"; 39664} 39665def V6_vsubwnq : HInst< 39666(outs HvxVR:$Vx32), 39667(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 39668"if (!$Qv4) $Vx32.w -= $Vu32.w", 39669tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 39670let Inst{7-5} = 0b011; 39671let Inst{13-13} = 0b1; 39672let Inst{21-16} = 0b000010; 39673let Inst{31-24} = 0b00011110; 39674let hasNewValue = 1; 39675let opNewValue = 0; 39676let isCVI = 1; 39677let isHVXALU = 1; 39678let isHVXALU2SRC = 1; 39679let DecoderNamespace = "EXT_mmvec"; 39680let Constraints = "$Vx32 = $Vx32in"; 39681} 39682def V6_vsubwnq_alt : HInst< 39683(outs HvxVR:$Vx32), 39684(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 39685"if (!$Qv4.w) $Vx32.w -= $Vu32.w", 39686PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 39687let hasNewValue = 1; 39688let opNewValue = 0; 39689let isCVI = 1; 39690let isPseudo = 1; 39691let isCodeGenOnly = 1; 39692let DecoderNamespace = "EXT_mmvec"; 39693let Constraints = "$Vx32 = $Vx32in"; 39694} 39695def V6_vsubwq : HInst< 39696(outs HvxVR:$Vx32), 39697(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 39698"if ($Qv4) $Vx32.w -= $Vu32.w", 39699tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> { 39700let Inst{7-5} = 0b000; 39701let Inst{13-13} = 0b1; 39702let Inst{21-16} = 0b000010; 39703let Inst{31-24} = 0b00011110; 39704let hasNewValue = 1; 39705let opNewValue = 0; 39706let isCVI = 1; 39707let isHVXALU = 1; 39708let isHVXALU2SRC = 1; 39709let DecoderNamespace = "EXT_mmvec"; 39710let Constraints = "$Vx32 = $Vx32in"; 39711} 39712def V6_vsubwq_alt : HInst< 39713(outs HvxVR:$Vx32), 39714(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32), 39715"if ($Qv4.w) $Vx32.w -= $Vu32.w", 39716PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 39717let hasNewValue = 1; 39718let opNewValue = 0; 39719let isCVI = 1; 39720let isPseudo = 1; 39721let isCodeGenOnly = 1; 39722let DecoderNamespace = "EXT_mmvec"; 39723let Constraints = "$Vx32 = $Vx32in"; 39724} 39725def V6_vsubwsat : HInst< 39726(outs HvxVR:$Vd32), 39727(ins HvxVR:$Vu32, HvxVR:$Vv32), 39728"$Vd32.w = vsub($Vu32.w,$Vv32.w):sat", 39729tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 39730let Inst{7-5} = 0b011; 39731let Inst{13-13} = 0b0; 39732let Inst{31-21} = 0b00011100011; 39733let hasNewValue = 1; 39734let opNewValue = 0; 39735let isCVI = 1; 39736let isHVXALU = 1; 39737let isHVXALU2SRC = 1; 39738let DecoderNamespace = "EXT_mmvec"; 39739} 39740def V6_vsubwsat_alt : HInst< 39741(outs HvxVR:$Vd32), 39742(ins HvxVR:$Vu32, HvxVR:$Vv32), 39743"$Vd32 = vsubw($Vu32,$Vv32):sat", 39744PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 39745let hasNewValue = 1; 39746let opNewValue = 0; 39747let isCVI = 1; 39748let isPseudo = 1; 39749let isCodeGenOnly = 1; 39750let DecoderNamespace = "EXT_mmvec"; 39751} 39752def V6_vsubwsat_dv : HInst< 39753(outs HvxWR:$Vdd32), 39754(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 39755"$Vdd32.w = vsub($Vuu32.w,$Vvv32.w):sat", 39756tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> { 39757let Inst{7-5} = 0b001; 39758let Inst{13-13} = 0b0; 39759let Inst{31-21} = 0b00011100101; 39760let hasNewValue = 1; 39761let opNewValue = 0; 39762let isCVI = 1; 39763let DecoderNamespace = "EXT_mmvec"; 39764} 39765def V6_vsubwsat_dv_alt : HInst< 39766(outs HvxWR:$Vdd32), 39767(ins HvxWR:$Vuu32, HvxWR:$Vvv32), 39768"$Vdd32 = vsubw($Vuu32,$Vvv32):sat", 39769PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 39770let hasNewValue = 1; 39771let opNewValue = 0; 39772let isCVI = 1; 39773let isPseudo = 1; 39774let isCodeGenOnly = 1; 39775let DecoderNamespace = "EXT_mmvec"; 39776} 39777def V6_vswap : HInst< 39778(outs HvxWR:$Vdd32), 39779(ins HvxQR:$Qt4, HvxVR:$Vu32, HvxVR:$Vv32), 39780"$Vdd32 = vswap($Qt4,$Vu32,$Vv32)", 39781tc_71646d06, TypeCVI_VA_DV>, Enc_3dac0b, Requires<[UseHVXV60]> { 39782let Inst{7-7} = 0b0; 39783let Inst{13-13} = 0b1; 39784let Inst{31-21} = 0b00011110101; 39785let hasNewValue = 1; 39786let opNewValue = 0; 39787let isCVI = 1; 39788let DecoderNamespace = "EXT_mmvec"; 39789} 39790def V6_vtmpyb : HInst< 39791(outs HvxWR:$Vdd32), 39792(ins HvxWR:$Vuu32, IntRegs:$Rt32), 39793"$Vdd32.h = vtmpy($Vuu32.b,$Rt32.b)", 39794tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> { 39795let Inst{7-5} = 0b000; 39796let Inst{13-13} = 0b0; 39797let Inst{31-21} = 0b00011001000; 39798let hasNewValue = 1; 39799let opNewValue = 0; 39800let isCVI = 1; 39801let DecoderNamespace = "EXT_mmvec"; 39802} 39803def V6_vtmpyb_acc : HInst< 39804(outs HvxWR:$Vxx32), 39805(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 39806"$Vxx32.h += vtmpy($Vuu32.b,$Rt32.b)", 39807tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> { 39808let Inst{7-5} = 0b000; 39809let Inst{13-13} = 0b1; 39810let Inst{31-21} = 0b00011001000; 39811let hasNewValue = 1; 39812let opNewValue = 0; 39813let isAccumulator = 1; 39814let isCVI = 1; 39815let DecoderNamespace = "EXT_mmvec"; 39816let Constraints = "$Vxx32 = $Vxx32in"; 39817} 39818def V6_vtmpyb_acc_alt : HInst< 39819(outs HvxWR:$Vxx32), 39820(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 39821"$Vxx32 += vtmpyb($Vuu32,$Rt32)", 39822PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 39823let hasNewValue = 1; 39824let opNewValue = 0; 39825let isAccumulator = 1; 39826let isCVI = 1; 39827let isPseudo = 1; 39828let isCodeGenOnly = 1; 39829let DecoderNamespace = "EXT_mmvec"; 39830let Constraints = "$Vxx32 = $Vxx32in"; 39831} 39832def V6_vtmpyb_alt : HInst< 39833(outs HvxWR:$Vdd32), 39834(ins HvxWR:$Vuu32, IntRegs:$Rt32), 39835"$Vdd32 = vtmpyb($Vuu32,$Rt32)", 39836PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 39837let hasNewValue = 1; 39838let opNewValue = 0; 39839let isCVI = 1; 39840let isPseudo = 1; 39841let isCodeGenOnly = 1; 39842let DecoderNamespace = "EXT_mmvec"; 39843} 39844def V6_vtmpybus : HInst< 39845(outs HvxWR:$Vdd32), 39846(ins HvxWR:$Vuu32, IntRegs:$Rt32), 39847"$Vdd32.h = vtmpy($Vuu32.ub,$Rt32.b)", 39848tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> { 39849let Inst{7-5} = 0b001; 39850let Inst{13-13} = 0b0; 39851let Inst{31-21} = 0b00011001000; 39852let hasNewValue = 1; 39853let opNewValue = 0; 39854let isCVI = 1; 39855let DecoderNamespace = "EXT_mmvec"; 39856} 39857def V6_vtmpybus_acc : HInst< 39858(outs HvxWR:$Vxx32), 39859(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 39860"$Vxx32.h += vtmpy($Vuu32.ub,$Rt32.b)", 39861tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> { 39862let Inst{7-5} = 0b001; 39863let Inst{13-13} = 0b1; 39864let Inst{31-21} = 0b00011001000; 39865let hasNewValue = 1; 39866let opNewValue = 0; 39867let isAccumulator = 1; 39868let isCVI = 1; 39869let DecoderNamespace = "EXT_mmvec"; 39870let Constraints = "$Vxx32 = $Vxx32in"; 39871} 39872def V6_vtmpybus_acc_alt : HInst< 39873(outs HvxWR:$Vxx32), 39874(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 39875"$Vxx32 += vtmpybus($Vuu32,$Rt32)", 39876PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 39877let hasNewValue = 1; 39878let opNewValue = 0; 39879let isAccumulator = 1; 39880let isCVI = 1; 39881let isPseudo = 1; 39882let isCodeGenOnly = 1; 39883let DecoderNamespace = "EXT_mmvec"; 39884let Constraints = "$Vxx32 = $Vxx32in"; 39885} 39886def V6_vtmpybus_alt : HInst< 39887(outs HvxWR:$Vdd32), 39888(ins HvxWR:$Vuu32, IntRegs:$Rt32), 39889"$Vdd32 = vtmpybus($Vuu32,$Rt32)", 39890PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 39891let hasNewValue = 1; 39892let opNewValue = 0; 39893let isCVI = 1; 39894let isPseudo = 1; 39895let isCodeGenOnly = 1; 39896let DecoderNamespace = "EXT_mmvec"; 39897} 39898def V6_vtmpyhb : HInst< 39899(outs HvxWR:$Vdd32), 39900(ins HvxWR:$Vuu32, IntRegs:$Rt32), 39901"$Vdd32.w = vtmpy($Vuu32.h,$Rt32.b)", 39902tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> { 39903let Inst{7-5} = 0b100; 39904let Inst{13-13} = 0b0; 39905let Inst{31-21} = 0b00011001101; 39906let hasNewValue = 1; 39907let opNewValue = 0; 39908let isCVI = 1; 39909let DecoderNamespace = "EXT_mmvec"; 39910} 39911def V6_vtmpyhb_acc : HInst< 39912(outs HvxWR:$Vxx32), 39913(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 39914"$Vxx32.w += vtmpy($Vuu32.h,$Rt32.b)", 39915tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> { 39916let Inst{7-5} = 0b010; 39917let Inst{13-13} = 0b1; 39918let Inst{31-21} = 0b00011001000; 39919let hasNewValue = 1; 39920let opNewValue = 0; 39921let isAccumulator = 1; 39922let isCVI = 1; 39923let DecoderNamespace = "EXT_mmvec"; 39924let Constraints = "$Vxx32 = $Vxx32in"; 39925} 39926def V6_vtmpyhb_acc_alt : HInst< 39927(outs HvxWR:$Vxx32), 39928(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32), 39929"$Vxx32 += vtmpyhb($Vuu32,$Rt32)", 39930PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 39931let hasNewValue = 1; 39932let opNewValue = 0; 39933let isAccumulator = 1; 39934let isCVI = 1; 39935let isPseudo = 1; 39936let isCodeGenOnly = 1; 39937let DecoderNamespace = "EXT_mmvec"; 39938let Constraints = "$Vxx32 = $Vxx32in"; 39939} 39940def V6_vtmpyhb_alt : HInst< 39941(outs HvxWR:$Vdd32), 39942(ins HvxWR:$Vuu32, IntRegs:$Rt32), 39943"$Vdd32 = vtmpyhb($Vuu32,$Rt32)", 39944PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 39945let hasNewValue = 1; 39946let opNewValue = 0; 39947let isCVI = 1; 39948let isPseudo = 1; 39949let isCodeGenOnly = 1; 39950let DecoderNamespace = "EXT_mmvec"; 39951} 39952def V6_vtran2x2_map : HInst< 39953(outs HvxVR:$Vy32, HvxVR:$Vx32), 39954(ins HvxVR:$Vy32in, HvxVR:$Vx32in, IntRegs:$Rt32), 39955"vtrans2x2($Vy32,$Vx32,$Rt32)", 39956PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 39957let hasNewValue = 1; 39958let opNewValue = 0; 39959let hasNewValue2 = 1; 39960let opNewValue2 = 1; 39961let isCVI = 1; 39962let isPseudo = 1; 39963let isCodeGenOnly = 1; 39964let DecoderNamespace = "EXT_mmvec"; 39965let Constraints = "$Vy32 = $Vy32in, $Vx32 = $Vx32in"; 39966} 39967def V6_vunpackb : HInst< 39968(outs HvxWR:$Vdd32), 39969(ins HvxVR:$Vu32), 39970"$Vdd32.h = vunpack($Vu32.b)", 39971tc_04da405a, TypeCVI_VP_VS>, Enc_dd766a, Requires<[UseHVXV60]> { 39972let Inst{7-5} = 0b010; 39973let Inst{13-13} = 0b0; 39974let Inst{31-16} = 0b0001111000000001; 39975let hasNewValue = 1; 39976let opNewValue = 0; 39977let isCVI = 1; 39978let DecoderNamespace = "EXT_mmvec"; 39979} 39980def V6_vunpackb_alt : HInst< 39981(outs HvxWR:$Vdd32), 39982(ins HvxVR:$Vu32), 39983"$Vdd32 = vunpackb($Vu32)", 39984PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 39985let hasNewValue = 1; 39986let opNewValue = 0; 39987let isCVI = 1; 39988let isPseudo = 1; 39989let isCodeGenOnly = 1; 39990let DecoderNamespace = "EXT_mmvec"; 39991} 39992def V6_vunpackh : HInst< 39993(outs HvxWR:$Vdd32), 39994(ins HvxVR:$Vu32), 39995"$Vdd32.w = vunpack($Vu32.h)", 39996tc_04da405a, TypeCVI_VP_VS>, Enc_dd766a, Requires<[UseHVXV60]> { 39997let Inst{7-5} = 0b011; 39998let Inst{13-13} = 0b0; 39999let Inst{31-16} = 0b0001111000000001; 40000let hasNewValue = 1; 40001let opNewValue = 0; 40002let isCVI = 1; 40003let DecoderNamespace = "EXT_mmvec"; 40004} 40005def V6_vunpackh_alt : HInst< 40006(outs HvxWR:$Vdd32), 40007(ins HvxVR:$Vu32), 40008"$Vdd32 = vunpackh($Vu32)", 40009PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 40010let hasNewValue = 1; 40011let opNewValue = 0; 40012let isCVI = 1; 40013let isPseudo = 1; 40014let isCodeGenOnly = 1; 40015let DecoderNamespace = "EXT_mmvec"; 40016} 40017def V6_vunpackob : HInst< 40018(outs HvxWR:$Vxx32), 40019(ins HvxWR:$Vxx32in, HvxVR:$Vu32), 40020"$Vxx32.h |= vunpacko($Vu32.b)", 40021tc_2c745bb8, TypeCVI_VP_VS>, Enc_500cb0, Requires<[UseHVXV60]> { 40022let Inst{7-5} = 0b000; 40023let Inst{13-13} = 0b1; 40024let Inst{31-16} = 0b0001111000000000; 40025let hasNewValue = 1; 40026let opNewValue = 0; 40027let isAccumulator = 1; 40028let isCVI = 1; 40029let DecoderNamespace = "EXT_mmvec"; 40030let Constraints = "$Vxx32 = $Vxx32in"; 40031} 40032def V6_vunpackob_alt : HInst< 40033(outs HvxWR:$Vxx32), 40034(ins HvxWR:$Vxx32in, HvxVR:$Vu32), 40035"$Vxx32 |= vunpackob($Vu32)", 40036PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 40037let hasNewValue = 1; 40038let opNewValue = 0; 40039let isAccumulator = 1; 40040let isCVI = 1; 40041let isPseudo = 1; 40042let DecoderNamespace = "EXT_mmvec"; 40043let Constraints = "$Vxx32 = $Vxx32in"; 40044} 40045def V6_vunpackoh : HInst< 40046(outs HvxWR:$Vxx32), 40047(ins HvxWR:$Vxx32in, HvxVR:$Vu32), 40048"$Vxx32.w |= vunpacko($Vu32.h)", 40049tc_2c745bb8, TypeCVI_VP_VS>, Enc_500cb0, Requires<[UseHVXV60]> { 40050let Inst{7-5} = 0b001; 40051let Inst{13-13} = 0b1; 40052let Inst{31-16} = 0b0001111000000000; 40053let hasNewValue = 1; 40054let opNewValue = 0; 40055let isAccumulator = 1; 40056let isCVI = 1; 40057let DecoderNamespace = "EXT_mmvec"; 40058let Constraints = "$Vxx32 = $Vxx32in"; 40059} 40060def V6_vunpackoh_alt : HInst< 40061(outs HvxWR:$Vxx32), 40062(ins HvxWR:$Vxx32in, HvxVR:$Vu32), 40063"$Vxx32 |= vunpackoh($Vu32)", 40064PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 40065let hasNewValue = 1; 40066let opNewValue = 0; 40067let isAccumulator = 1; 40068let isCVI = 1; 40069let isPseudo = 1; 40070let isCodeGenOnly = 1; 40071let DecoderNamespace = "EXT_mmvec"; 40072let Constraints = "$Vxx32 = $Vxx32in"; 40073} 40074def V6_vunpackub : HInst< 40075(outs HvxWR:$Vdd32), 40076(ins HvxVR:$Vu32), 40077"$Vdd32.uh = vunpack($Vu32.ub)", 40078tc_04da405a, TypeCVI_VP_VS>, Enc_dd766a, Requires<[UseHVXV60]> { 40079let Inst{7-5} = 0b000; 40080let Inst{13-13} = 0b0; 40081let Inst{31-16} = 0b0001111000000001; 40082let hasNewValue = 1; 40083let opNewValue = 0; 40084let isCVI = 1; 40085let DecoderNamespace = "EXT_mmvec"; 40086} 40087def V6_vunpackub_alt : HInst< 40088(outs HvxWR:$Vdd32), 40089(ins HvxVR:$Vu32), 40090"$Vdd32 = vunpackub($Vu32)", 40091PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 40092let hasNewValue = 1; 40093let opNewValue = 0; 40094let isCVI = 1; 40095let isPseudo = 1; 40096let isCodeGenOnly = 1; 40097let DecoderNamespace = "EXT_mmvec"; 40098} 40099def V6_vunpackuh : HInst< 40100(outs HvxWR:$Vdd32), 40101(ins HvxVR:$Vu32), 40102"$Vdd32.uw = vunpack($Vu32.uh)", 40103tc_04da405a, TypeCVI_VP_VS>, Enc_dd766a, Requires<[UseHVXV60]> { 40104let Inst{7-5} = 0b001; 40105let Inst{13-13} = 0b0; 40106let Inst{31-16} = 0b0001111000000001; 40107let hasNewValue = 1; 40108let opNewValue = 0; 40109let isCVI = 1; 40110let DecoderNamespace = "EXT_mmvec"; 40111} 40112def V6_vunpackuh_alt : HInst< 40113(outs HvxWR:$Vdd32), 40114(ins HvxVR:$Vu32), 40115"$Vdd32 = vunpackuh($Vu32)", 40116PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 40117let hasNewValue = 1; 40118let opNewValue = 0; 40119let isCVI = 1; 40120let isPseudo = 1; 40121let isCodeGenOnly = 1; 40122let DecoderNamespace = "EXT_mmvec"; 40123} 40124def V6_vwhist128 : HInst< 40125(outs), 40126(ins), 40127"vwhist128", 40128tc_1381a97c, TypeCVI_HIST>, Enc_e3b0c4, Requires<[UseHVXV62]> { 40129let Inst{13-0} = 0b10010010000000; 40130let Inst{31-16} = 0b0001111000000000; 40131let isCVI = 1; 40132let DecoderNamespace = "EXT_mmvec"; 40133} 40134def V6_vwhist128m : HInst< 40135(outs), 40136(ins u1_0Imm:$Ii), 40137"vwhist128(#$Ii)", 40138tc_b28e51aa, TypeCVI_HIST>, Enc_efaed8, Requires<[UseHVXV62]> { 40139let Inst{7-0} = 0b10000000; 40140let Inst{13-9} = 0b10011; 40141let Inst{31-16} = 0b0001111000000000; 40142let isCVI = 1; 40143let DecoderNamespace = "EXT_mmvec"; 40144} 40145def V6_vwhist128q : HInst< 40146(outs), 40147(ins HvxQR:$Qv4), 40148"vwhist128($Qv4)", 40149tc_e3f68a46, TypeCVI_HIST>, Enc_217147, Requires<[UseHVXV62]> { 40150let Inst{13-0} = 0b10010010000000; 40151let Inst{21-16} = 0b000010; 40152let Inst{31-24} = 0b00011110; 40153let isCVI = 1; 40154let DecoderNamespace = "EXT_mmvec"; 40155} 40156def V6_vwhist128qm : HInst< 40157(outs), 40158(ins HvxQR:$Qv4, u1_0Imm:$Ii), 40159"vwhist128($Qv4,#$Ii)", 40160tc_767c4e9d, TypeCVI_HIST>, Enc_802dc0, Requires<[UseHVXV62]> { 40161let Inst{7-0} = 0b10000000; 40162let Inst{13-9} = 0b10011; 40163let Inst{21-16} = 0b000010; 40164let Inst{31-24} = 0b00011110; 40165let isCVI = 1; 40166let DecoderNamespace = "EXT_mmvec"; 40167} 40168def V6_vwhist256 : HInst< 40169(outs), 40170(ins), 40171"vwhist256", 40172tc_1381a97c, TypeCVI_HIST>, Enc_e3b0c4, Requires<[UseHVXV62]> { 40173let Inst{13-0} = 0b10001010000000; 40174let Inst{31-16} = 0b0001111000000000; 40175let isCVI = 1; 40176let DecoderNamespace = "EXT_mmvec"; 40177} 40178def V6_vwhist256_sat : HInst< 40179(outs), 40180(ins), 40181"vwhist256:sat", 40182tc_1381a97c, TypeCVI_HIST>, Enc_e3b0c4, Requires<[UseHVXV62]> { 40183let Inst{13-0} = 0b10001110000000; 40184let Inst{31-16} = 0b0001111000000000; 40185let isCVI = 1; 40186let DecoderNamespace = "EXT_mmvec"; 40187} 40188def V6_vwhist256q : HInst< 40189(outs), 40190(ins HvxQR:$Qv4), 40191"vwhist256($Qv4)", 40192tc_e3f68a46, TypeCVI_HIST>, Enc_217147, Requires<[UseHVXV62]> { 40193let Inst{13-0} = 0b10001010000000; 40194let Inst{21-16} = 0b000010; 40195let Inst{31-24} = 0b00011110; 40196let isCVI = 1; 40197let DecoderNamespace = "EXT_mmvec"; 40198} 40199def V6_vwhist256q_sat : HInst< 40200(outs), 40201(ins HvxQR:$Qv4), 40202"vwhist256($Qv4):sat", 40203tc_e3f68a46, TypeCVI_HIST>, Enc_217147, Requires<[UseHVXV62]> { 40204let Inst{13-0} = 0b10001110000000; 40205let Inst{21-16} = 0b000010; 40206let Inst{31-24} = 0b00011110; 40207let isCVI = 1; 40208let DecoderNamespace = "EXT_mmvec"; 40209} 40210def V6_vxor : HInst< 40211(outs HvxVR:$Vd32), 40212(ins HvxVR:$Vu32, HvxVR:$Vv32), 40213"$Vd32 = vxor($Vu32,$Vv32)", 40214tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> { 40215let Inst{7-5} = 0b111; 40216let Inst{13-13} = 0b0; 40217let Inst{31-21} = 0b00011100001; 40218let hasNewValue = 1; 40219let opNewValue = 0; 40220let isCVI = 1; 40221let isHVXALU = 1; 40222let isHVXALU2SRC = 1; 40223let DecoderNamespace = "EXT_mmvec"; 40224} 40225def V6_vzb : HInst< 40226(outs HvxWR:$Vdd32), 40227(ins HvxVR:$Vu32), 40228"$Vdd32.uh = vzxt($Vu32.ub)", 40229tc_b4416217, TypeCVI_VA_DV>, Enc_dd766a, Requires<[UseHVXV60]> { 40230let Inst{7-5} = 0b001; 40231let Inst{13-13} = 0b0; 40232let Inst{31-16} = 0b0001111000000010; 40233let hasNewValue = 1; 40234let opNewValue = 0; 40235let isCVI = 1; 40236let DecoderNamespace = "EXT_mmvec"; 40237} 40238def V6_vzb_alt : HInst< 40239(outs HvxWR:$Vdd32), 40240(ins HvxVR:$Vu32), 40241"$Vdd32 = vzxtb($Vu32)", 40242PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 40243let hasNewValue = 1; 40244let opNewValue = 0; 40245let isCVI = 1; 40246let isPseudo = 1; 40247let isCodeGenOnly = 1; 40248let DecoderNamespace = "EXT_mmvec"; 40249} 40250def V6_vzh : HInst< 40251(outs HvxWR:$Vdd32), 40252(ins HvxVR:$Vu32), 40253"$Vdd32.uw = vzxt($Vu32.uh)", 40254tc_b4416217, TypeCVI_VA_DV>, Enc_dd766a, Requires<[UseHVXV60]> { 40255let Inst{7-5} = 0b010; 40256let Inst{13-13} = 0b0; 40257let Inst{31-16} = 0b0001111000000010; 40258let hasNewValue = 1; 40259let opNewValue = 0; 40260let isCVI = 1; 40261let DecoderNamespace = "EXT_mmvec"; 40262} 40263def V6_vzh_alt : HInst< 40264(outs HvxWR:$Vdd32), 40265(ins HvxVR:$Vu32), 40266"$Vdd32 = vzxth($Vu32)", 40267PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> { 40268let hasNewValue = 1; 40269let opNewValue = 0; 40270let isCVI = 1; 40271let isPseudo = 1; 40272let isCodeGenOnly = 1; 40273let DecoderNamespace = "EXT_mmvec"; 40274} 40275def V6_zLd_ai : HInst< 40276(outs), 40277(ins IntRegs:$Rt32, s4_0Imm:$Ii), 40278"z = vmem($Rt32+#$Ii)", 40279tc_e699ae41, TypeCVI_ZW>, Enc_ff3442, Requires<[UseHVXV66,UseZReg]>, PostInc_BaseImm { 40280let Inst{7-0} = 0b00000000; 40281let Inst{12-11} = 0b00; 40282let Inst{31-21} = 0b00101100000; 40283let addrMode = BaseImmOffset; 40284let isCVI = 1; 40285let mayLoad = 1; 40286let isRestrictNoSlot1Store = 1; 40287let CextOpcode = "V6_zLd"; 40288let DecoderNamespace = "EXT_mmvec"; 40289} 40290def V6_zLd_pi : HInst< 40291(outs IntRegs:$Rx32), 40292(ins IntRegs:$Rx32in, s3_0Imm:$Ii), 40293"z = vmem($Rx32++#$Ii)", 40294tc_a0dbea28, TypeCVI_ZW>, Enc_6c9ee0, Requires<[UseHVXV66,UseZReg]>, PostInc_BaseImm { 40295let Inst{7-0} = 0b00000000; 40296let Inst{13-11} = 0b000; 40297let Inst{31-21} = 0b00101101000; 40298let addrMode = PostInc; 40299let isCVI = 1; 40300let mayLoad = 1; 40301let isRestrictNoSlot1Store = 1; 40302let CextOpcode = "V6_zLd"; 40303let DecoderNamespace = "EXT_mmvec"; 40304let Constraints = "$Rx32 = $Rx32in"; 40305} 40306def V6_zLd_ppu : HInst< 40307(outs IntRegs:$Rx32), 40308(ins IntRegs:$Rx32in, ModRegs:$Mu2), 40309"z = vmem($Rx32++$Mu2)", 40310tc_a0dbea28, TypeCVI_ZW>, Enc_44661f, Requires<[UseHVXV66,UseZReg]> { 40311let Inst{12-0} = 0b0000000000001; 40312let Inst{31-21} = 0b00101101000; 40313let addrMode = PostInc; 40314let isCVI = 1; 40315let mayLoad = 1; 40316let isRestrictNoSlot1Store = 1; 40317let DecoderNamespace = "EXT_mmvec"; 40318let Constraints = "$Rx32 = $Rx32in"; 40319} 40320def V6_zLd_pred_ai : HInst< 40321(outs), 40322(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), 40323"if ($Pv4) z = vmem($Rt32+#$Ii)", 40324tc_dd5b0695, TypeCVI_ZW>, Enc_ef601b, Requires<[UseHVXV66,UseZReg]> { 40325let Inst{7-0} = 0b00000000; 40326let Inst{31-21} = 0b00101100100; 40327let isPredicated = 1; 40328let addrMode = BaseImmOffset; 40329let isCVI = 1; 40330let mayLoad = 1; 40331let isRestrictNoSlot1Store = 1; 40332let DecoderNamespace = "EXT_mmvec"; 40333} 40334def V6_zLd_pred_pi : HInst< 40335(outs IntRegs:$Rx32), 40336(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), 40337"if ($Pv4) z = vmem($Rx32++#$Ii)", 40338tc_3ad719fb, TypeCVI_ZW>, Enc_6baed4, Requires<[UseHVXV66,UseZReg]> { 40339let Inst{7-0} = 0b00000000; 40340let Inst{13-13} = 0b0; 40341let Inst{31-21} = 0b00101101100; 40342let isPredicated = 1; 40343let addrMode = PostInc; 40344let isCVI = 1; 40345let mayLoad = 1; 40346let isRestrictNoSlot1Store = 1; 40347let DecoderNamespace = "EXT_mmvec"; 40348let Constraints = "$Rx32 = $Rx32in"; 40349} 40350def V6_zLd_pred_ppu : HInst< 40351(outs IntRegs:$Rx32), 40352(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), 40353"if ($Pv4) z = vmem($Rx32++$Mu2)", 40354tc_3ad719fb, TypeCVI_ZW>, Enc_691712, Requires<[UseHVXV66,UseZReg]> { 40355let Inst{10-0} = 0b00000000001; 40356let Inst{31-21} = 0b00101101100; 40357let isPredicated = 1; 40358let addrMode = PostInc; 40359let isCVI = 1; 40360let mayLoad = 1; 40361let isRestrictNoSlot1Store = 1; 40362let DecoderNamespace = "EXT_mmvec"; 40363let Constraints = "$Rx32 = $Rx32in"; 40364} 40365def V6_zextract : HInst< 40366(outs HvxVR:$Vd32), 40367(ins IntRegs:$Rt32), 40368"$Vd32 = zextract($Rt32)", 40369tc_5bf8afbb, TypeCVI_VP>, Enc_a5ed8a, Requires<[UseHVXV66,UseZReg]> { 40370let Inst{13-5} = 0b000001001; 40371let Inst{31-21} = 0b00011001101; 40372let hasNewValue = 1; 40373let opNewValue = 0; 40374let isCVI = 1; 40375let DecoderNamespace = "EXT_mmvec"; 40376} 40377def V6_zld0 : HInst< 40378(outs), 40379(ins IntRegs:$Rt32), 40380"z = vmem($Rt32)", 40381PSEUDO, TypeMAPPING>, Requires<[UseHVXV66]> { 40382let isCVI = 1; 40383let isPseudo = 1; 40384let isCodeGenOnly = 1; 40385let DecoderNamespace = "EXT_mmvec"; 40386} 40387def V6_zldp0 : HInst< 40388(outs), 40389(ins PredRegs:$Pv4, IntRegs:$Rt32), 40390"if ($Pv4) z = vmem($Rt32)", 40391PSEUDO, TypeMAPPING>, Requires<[UseHVXV66]> { 40392let isCVI = 1; 40393let isPseudo = 1; 40394let isCodeGenOnly = 1; 40395let DecoderNamespace = "EXT_mmvec"; 40396} 40397def Y2_barrier : HInst< 40398(outs), 40399(ins), 40400"barrier", 40401tc_77f94a5e, TypeST>, Enc_e3b0c4 { 40402let Inst{13-0} = 0b00000000000000; 40403let Inst{31-16} = 0b1010100000000000; 40404let isSoloAX = 1; 40405let hasSideEffects = 1; 40406} 40407def Y2_break : HInst< 40408(outs), 40409(ins), 40410"brkpt", 40411tc_55255f2b, TypeCR>, Enc_e3b0c4 { 40412let Inst{13-0} = 0b00000000000000; 40413let Inst{31-16} = 0b0110110000100000; 40414let isSolo = 1; 40415} 40416def Y2_ciad : HInst< 40417(outs), 40418(ins IntRegs:$Rs32), 40419"ciad($Rs32)", 40420tc_0a43be35, TypeCR>, Enc_ecbcc8 { 40421let Inst{13-0} = 0b00000001100000; 40422let Inst{31-21} = 0b01100100000; 40423let isSoloAX = 1; 40424} 40425def Y2_crswap0 : HInst< 40426(outs IntRegs:$Rx32), 40427(ins IntRegs:$Rx32in), 40428"crswap($Rx32,sgp0)", 40429tc_7dc63b5c, TypeCR>, Enc_403871 { 40430let Inst{13-0} = 0b00000000000000; 40431let Inst{31-21} = 0b01100101000; 40432let hasNewValue = 1; 40433let opNewValue = 0; 40434let Uses = [SGP0]; 40435let Defs = [SGP0]; 40436let Constraints = "$Rx32 = $Rx32in"; 40437} 40438def Y2_crswap_old : HInst< 40439(outs IntRegs:$Rx32), 40440(ins IntRegs:$Rx32in), 40441"crswap($Rx32,sgp)", 40442tc_7dc63b5c, TypeMAPPING> { 40443let hasNewValue = 1; 40444let opNewValue = 0; 40445let isPseudo = 1; 40446let isCodeGenOnly = 1; 40447let Constraints = "$Rx32 = $Rx32in"; 40448} 40449def Y2_cswi : HInst< 40450(outs), 40451(ins IntRegs:$Rs32), 40452"cswi($Rs32)", 40453tc_0a43be35, TypeCR>, Enc_ecbcc8 { 40454let Inst{13-0} = 0b00000000100000; 40455let Inst{31-21} = 0b01100100000; 40456let isSoloAX = 1; 40457} 40458def Y2_dccleana : HInst< 40459(outs), 40460(ins IntRegs:$Rs32), 40461"dccleana($Rs32)", 40462tc_b1ae5f67, TypeST>, Enc_ecbcc8 { 40463let Inst{13-0} = 0b00000000000000; 40464let Inst{31-21} = 0b10100000000; 40465let isRestrictSlot1AOK = 1; 40466let hasSideEffects = 1; 40467} 40468def Y2_dccleanidx : HInst< 40469(outs), 40470(ins IntRegs:$Rs32), 40471"dccleanidx($Rs32)", 40472tc_d234b61a, TypeST>, Enc_ecbcc8 { 40473let Inst{13-0} = 0b00000000000000; 40474let Inst{31-21} = 0b10100010001; 40475let isSoloAX = 1; 40476} 40477def Y2_dccleaninva : HInst< 40478(outs), 40479(ins IntRegs:$Rs32), 40480"dccleaninva($Rs32)", 40481tc_b1ae5f67, TypeST>, Enc_ecbcc8 { 40482let Inst{13-0} = 0b00000000000000; 40483let Inst{31-21} = 0b10100000010; 40484let isRestrictSlot1AOK = 1; 40485let hasSideEffects = 1; 40486} 40487def Y2_dccleaninvidx : HInst< 40488(outs), 40489(ins IntRegs:$Rs32), 40490"dccleaninvidx($Rs32)", 40491tc_d234b61a, TypeST>, Enc_ecbcc8 { 40492let Inst{13-0} = 0b00000000000000; 40493let Inst{31-21} = 0b10100010011; 40494let isSoloAX = 1; 40495} 40496def Y2_dcfetch : HInst< 40497(outs), 40498(ins IntRegs:$Rs32), 40499"dcfetch($Rs32)", 40500tc_d45ba9cd, TypeMAPPING> { 40501let hasSideEffects = 1; 40502let isPseudo = 1; 40503let isCodeGenOnly = 1; 40504} 40505def Y2_dcfetchbo : HInst< 40506(outs), 40507(ins IntRegs:$Rs32, u11_3Imm:$Ii), 40508"dcfetch($Rs32+#$Ii)", 40509tc_2237d952, TypeLD>, Enc_2d829e { 40510let Inst{13-11} = 0b000; 40511let Inst{31-21} = 0b10010100000; 40512let addrMode = BaseImmOffset; 40513let isRestrictNoSlot1Store = 1; 40514let hasSideEffects = 1; 40515} 40516def Y2_dcinva : HInst< 40517(outs), 40518(ins IntRegs:$Rs32), 40519"dcinva($Rs32)", 40520tc_b1ae5f67, TypeST>, Enc_ecbcc8 { 40521let Inst{13-0} = 0b00000000000000; 40522let Inst{31-21} = 0b10100000001; 40523let isRestrictSlot1AOK = 1; 40524let hasSideEffects = 1; 40525} 40526def Y2_dcinvidx : HInst< 40527(outs), 40528(ins IntRegs:$Rs32), 40529"dcinvidx($Rs32)", 40530tc_d234b61a, TypeST>, Enc_ecbcc8 { 40531let Inst{13-0} = 0b00000000000000; 40532let Inst{31-21} = 0b10100010010; 40533let isSoloAX = 1; 40534} 40535def Y2_dckill : HInst< 40536(outs), 40537(ins), 40538"dckill", 40539tc_78f87ed3, TypeST>, Enc_e3b0c4 { 40540let Inst{13-0} = 0b00000000000000; 40541let Inst{31-16} = 0b1010001000000000; 40542let isSolo = 1; 40543} 40544def Y2_dctagr : HInst< 40545(outs IntRegs:$Rd32), 40546(ins IntRegs:$Rs32), 40547"$Rd32 = dctagr($Rs32)", 40548tc_a724463d, TypeST>, Enc_5e2823 { 40549let Inst{13-5} = 0b000000000; 40550let Inst{31-21} = 0b10100100001; 40551let hasNewValue = 1; 40552let opNewValue = 0; 40553let isSoloAX = 1; 40554} 40555def Y2_dctagw : HInst< 40556(outs), 40557(ins IntRegs:$Rs32, IntRegs:$Rt32), 40558"dctagw($Rs32,$Rt32)", 40559tc_6fb52018, TypeST>, Enc_ca3887 { 40560let Inst{7-0} = 0b00000000; 40561let Inst{13-13} = 0b0; 40562let Inst{31-21} = 0b10100100000; 40563let isSolo = 1; 40564} 40565def Y2_dczeroa : HInst< 40566(outs), 40567(ins IntRegs:$Rs32), 40568"dczeroa($Rs32)", 40569tc_b1ae5f67, TypeST>, Enc_ecbcc8 { 40570let Inst{13-0} = 0b00000000000000; 40571let Inst{31-21} = 0b10100000110; 40572let isRestrictSlot1AOK = 1; 40573let mayStore = 1; 40574let hasSideEffects = 1; 40575} 40576def Y2_getimask : HInst< 40577(outs IntRegs:$Rd32), 40578(ins IntRegs:$Rs32), 40579"$Rd32 = getimask($Rs32)", 40580tc_46c18ecf, TypeCR>, Enc_5e2823 { 40581let Inst{13-5} = 0b000000000; 40582let Inst{31-21} = 0b01100110000; 40583let hasNewValue = 1; 40584let opNewValue = 0; 40585let isSoloAX = 1; 40586} 40587def Y2_iassignr : HInst< 40588(outs IntRegs:$Rd32), 40589(ins IntRegs:$Rs32), 40590"$Rd32 = iassignr($Rs32)", 40591tc_46c18ecf, TypeCR>, Enc_5e2823 { 40592let Inst{13-5} = 0b000000000; 40593let Inst{31-21} = 0b01100110011; 40594let hasNewValue = 1; 40595let opNewValue = 0; 40596let isSoloAX = 1; 40597} 40598def Y2_iassignw : HInst< 40599(outs), 40600(ins IntRegs:$Rs32), 40601"iassignw($Rs32)", 40602tc_0a43be35, TypeCR>, Enc_ecbcc8 { 40603let Inst{13-0} = 0b00000001000000; 40604let Inst{31-21} = 0b01100100000; 40605let isSoloAX = 1; 40606} 40607def Y2_icdatar : HInst< 40608(outs IntRegs:$Rd32), 40609(ins IntRegs:$Rs32), 40610"$Rd32 = icdatar($Rs32)", 40611tc_9b20a062, TypeJ>, Enc_5e2823 { 40612let Inst{13-5} = 0b000000000; 40613let Inst{31-21} = 0b01010101101; 40614let hasNewValue = 1; 40615let opNewValue = 0; 40616let isSolo = 1; 40617} 40618def Y2_icdataw : HInst< 40619(outs), 40620(ins IntRegs:$Rs32, IntRegs:$Rt32), 40621"icdataw($Rs32,$Rt32)", 40622tc_5a222e89, TypeJ>, Enc_ca3887, Requires<[HasV66]> { 40623let Inst{7-0} = 0b00000000; 40624let Inst{13-13} = 0b1; 40625let Inst{31-21} = 0b01010101110; 40626let isSolo = 1; 40627} 40628def Y2_icinva : HInst< 40629(outs), 40630(ins IntRegs:$Rs32), 40631"icinva($Rs32)", 40632tc_0ba0d5da, TypeJ>, Enc_ecbcc8 { 40633let Inst{13-0} = 0b00000000000000; 40634let Inst{31-21} = 0b01010110110; 40635let isSolo = 1; 40636} 40637def Y2_icinvidx : HInst< 40638(outs), 40639(ins IntRegs:$Rs32), 40640"icinvidx($Rs32)", 40641tc_7d6a2568, TypeJ>, Enc_ecbcc8 { 40642let Inst{13-0} = 0b00100000000000; 40643let Inst{31-21} = 0b01010110110; 40644let isSolo = 1; 40645} 40646def Y2_ickill : HInst< 40647(outs), 40648(ins), 40649"ickill", 40650tc_b9bec29e, TypeJ>, Enc_e3b0c4 { 40651let Inst{13-0} = 0b01000000000000; 40652let Inst{31-16} = 0b0101011011000000; 40653let isSolo = 1; 40654} 40655def Y2_ictagr : HInst< 40656(outs IntRegs:$Rd32), 40657(ins IntRegs:$Rs32), 40658"$Rd32 = ictagr($Rs32)", 40659tc_759e57be, TypeJ>, Enc_5e2823 { 40660let Inst{13-5} = 0b000000000; 40661let Inst{31-21} = 0b01010101111; 40662let hasNewValue = 1; 40663let opNewValue = 0; 40664let isSolo = 1; 40665} 40666def Y2_ictagw : HInst< 40667(outs), 40668(ins IntRegs:$Rs32, IntRegs:$Rt32), 40669"ictagw($Rs32,$Rt32)", 40670tc_139ef484, TypeJ>, Enc_ca3887 { 40671let Inst{7-0} = 0b00000000; 40672let Inst{13-13} = 0b0; 40673let Inst{31-21} = 0b01010101110; 40674let isSolo = 1; 40675} 40676def Y2_isync : HInst< 40677(outs), 40678(ins), 40679"isync", 40680tc_9b34f5e0, TypeJ>, Enc_e3b0c4 { 40681let Inst{13-0} = 0b00000000000010; 40682let Inst{31-16} = 0b0101011111000000; 40683let isSolo = 1; 40684} 40685def Y2_k0lock : HInst< 40686(outs), 40687(ins), 40688"k0lock", 40689tc_7f58404a, TypeCR>, Enc_e3b0c4 { 40690let Inst{13-0} = 0b00000001100000; 40691let Inst{31-16} = 0b0110110000100000; 40692let isSolo = 1; 40693} 40694def Y2_k0unlock : HInst< 40695(outs), 40696(ins), 40697"k0unlock", 40698tc_7f58404a, TypeCR>, Enc_e3b0c4 { 40699let Inst{13-0} = 0b00000010000000; 40700let Inst{31-16} = 0b0110110000100000; 40701let isSolo = 1; 40702} 40703def Y2_k1lock_map : HInst< 40704(outs), 40705(ins), 40706"k1lock", 40707PSEUDO, TypeMAPPING>, Requires<[HasV65]> { 40708let isPseudo = 1; 40709let isCodeGenOnly = 1; 40710} 40711def Y2_k1unlock_map : HInst< 40712(outs), 40713(ins), 40714"k1unlock", 40715PSEUDO, TypeMAPPING>, Requires<[HasV65]> { 40716let isPseudo = 1; 40717let isCodeGenOnly = 1; 40718} 40719def Y2_l2cleaninvidx : HInst< 40720(outs), 40721(ins IntRegs:$Rs32), 40722"l2cleaninvidx($Rs32)", 40723tc_d234b61a, TypeST>, Enc_ecbcc8 { 40724let Inst{13-0} = 0b00000000000000; 40725let Inst{31-21} = 0b10101000011; 40726let isSoloAX = 1; 40727} 40728def Y2_l2kill : HInst< 40729(outs), 40730(ins), 40731"l2kill", 40732tc_b3d46584, TypeST>, Enc_e3b0c4 { 40733let Inst{13-0} = 0b00000000000000; 40734let Inst{31-16} = 0b1010100000100000; 40735let isSolo = 1; 40736} 40737def Y2_resume : HInst< 40738(outs), 40739(ins IntRegs:$Rs32), 40740"resume($Rs32)", 40741tc_0a43be35, TypeCR>, Enc_ecbcc8 { 40742let Inst{13-0} = 0b00000000100000; 40743let Inst{31-21} = 0b01100100010; 40744let isSolo = 1; 40745} 40746def Y2_setimask : HInst< 40747(outs), 40748(ins PredRegs:$Pt4, IntRegs:$Rs32), 40749"setimask($Pt4,$Rs32)", 40750tc_d71ea8fa, TypeCR>, Enc_9e9047 { 40751let Inst{7-0} = 0b00000000; 40752let Inst{13-10} = 0b0000; 40753let Inst{31-21} = 0b01100100100; 40754let isSoloAX = 1; 40755} 40756def Y2_setprio : HInst< 40757(outs), 40758(ins PredRegs:$Pt4, IntRegs:$Rs32), 40759"setprio($Pt4,$Rs32)", 40760tc_d71ea8fa, TypeCR>, Enc_9e9047, Requires<[HasV66]> { 40761let Inst{7-0} = 0b00100000; 40762let Inst{13-10} = 0b0000; 40763let Inst{31-21} = 0b01100100100; 40764} 40765def Y2_start : HInst< 40766(outs), 40767(ins IntRegs:$Rs32), 40768"start($Rs32)", 40769tc_0a43be35, TypeCR>, Enc_ecbcc8 { 40770let Inst{13-0} = 0b00000000100000; 40771let Inst{31-21} = 0b01100100011; 40772let isSolo = 1; 40773} 40774def Y2_stop : HInst< 40775(outs), 40776(ins IntRegs:$Rs32), 40777"stop($Rs32)", 40778tc_0a43be35, TypeCR>, Enc_ecbcc8 { 40779let Inst{13-0} = 0b00000000000000; 40780let Inst{31-21} = 0b01100100011; 40781let isSolo = 1; 40782} 40783def Y2_swi : HInst< 40784(outs), 40785(ins IntRegs:$Rs32), 40786"swi($Rs32)", 40787tc_0a43be35, TypeCR>, Enc_ecbcc8 { 40788let Inst{13-0} = 0b00000000000000; 40789let Inst{31-21} = 0b01100100000; 40790let isSoloAX = 1; 40791} 40792def Y2_syncht : HInst< 40793(outs), 40794(ins), 40795"syncht", 40796tc_77f94a5e, TypeST>, Enc_e3b0c4 { 40797let Inst{13-0} = 0b00000000000000; 40798let Inst{31-16} = 0b1010100001000000; 40799let isSolo = 1; 40800} 40801def Y2_tfrscrr : HInst< 40802(outs IntRegs:$Rd32), 40803(ins SysRegs:$Ss128), 40804"$Rd32 = $Ss128", 40805tc_fae9dfa5, TypeCR>, Enc_7d1542 { 40806let Inst{13-5} = 0b000000000; 40807let Inst{31-23} = 0b011011101; 40808let hasNewValue = 1; 40809let opNewValue = 0; 40810} 40811def Y2_tfrsrcr : HInst< 40812(outs SysRegs:$Sd128), 40813(ins IntRegs:$Rs32), 40814"$Sd128 = $Rs32", 40815tc_6ae3426b, TypeCR>, Enc_8f7633 { 40816let Inst{13-7} = 0b0000000; 40817let Inst{31-21} = 0b01100111000; 40818let hasNewValue = 1; 40819let opNewValue = 0; 40820} 40821def Y2_tlblock : HInst< 40822(outs), 40823(ins), 40824"tlblock", 40825tc_7f58404a, TypeCR>, Enc_e3b0c4 { 40826let Inst{13-0} = 0b00000000100000; 40827let Inst{31-16} = 0b0110110000100000; 40828let isSolo = 1; 40829} 40830def Y2_tlbp : HInst< 40831(outs IntRegs:$Rd32), 40832(ins IntRegs:$Rs32), 40833"$Rd32 = tlbp($Rs32)", 40834tc_6aa823ab, TypeCR>, Enc_5e2823 { 40835let Inst{13-5} = 0b000000000; 40836let Inst{31-21} = 0b01101100100; 40837let hasNewValue = 1; 40838let opNewValue = 0; 40839let isSolo = 1; 40840} 40841def Y2_tlbr : HInst< 40842(outs DoubleRegs:$Rdd32), 40843(ins IntRegs:$Rs32), 40844"$Rdd32 = tlbr($Rs32)", 40845tc_6aa823ab, TypeCR>, Enc_3a3d62 { 40846let Inst{13-5} = 0b000000000; 40847let Inst{31-21} = 0b01101100010; 40848let isSolo = 1; 40849} 40850def Y2_tlbunlock : HInst< 40851(outs), 40852(ins), 40853"tlbunlock", 40854tc_7f58404a, TypeCR>, Enc_e3b0c4 { 40855let Inst{13-0} = 0b00000001000000; 40856let Inst{31-16} = 0b0110110000100000; 40857let isSolo = 1; 40858} 40859def Y2_tlbw : HInst< 40860(outs), 40861(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 40862"tlbw($Rss32,$Rt32)", 40863tc_b2196a3f, TypeCR>, Enc_46f33d { 40864let Inst{7-0} = 0b00000000; 40865let Inst{13-13} = 0b0; 40866let Inst{31-21} = 0b01101100000; 40867let isSolo = 1; 40868} 40869def Y2_wait : HInst< 40870(outs), 40871(ins IntRegs:$Rs32), 40872"wait($Rs32)", 40873tc_2c3e17fc, TypeCR>, Enc_ecbcc8, Requires<[HasV65]> { 40874let Inst{13-0} = 0b00000000000000; 40875let Inst{31-21} = 0b01100100010; 40876let isSolo = 1; 40877} 40878def Y4_crswap1 : HInst< 40879(outs IntRegs:$Rx32), 40880(ins IntRegs:$Rx32in), 40881"crswap($Rx32,sgp1)", 40882tc_7dc63b5c, TypeCR>, Enc_403871 { 40883let Inst{13-0} = 0b00000000000000; 40884let Inst{31-21} = 0b01100101001; 40885let hasNewValue = 1; 40886let opNewValue = 0; 40887let Uses = [SGP1]; 40888let Defs = [SGP1]; 40889let Constraints = "$Rx32 = $Rx32in"; 40890} 40891def Y4_crswap10 : HInst< 40892(outs DoubleRegs:$Rxx32), 40893(ins DoubleRegs:$Rxx32in, sgp10Const:$sgp10), 40894"crswap($Rxx32,$sgp10)", 40895tc_27106296, TypeCR>, Enc_d0fe02 { 40896let Inst{13-0} = 0b00000000000000; 40897let Inst{31-21} = 0b01101101100; 40898let Uses = [SGP0, SGP1]; 40899let Defs = [SGP0, SGP1]; 40900let Constraints = "$Rxx32 = $Rxx32in"; 40901} 40902def Y4_l2fetch : HInst< 40903(outs), 40904(ins IntRegs:$Rs32, IntRegs:$Rt32), 40905"l2fetch($Rs32,$Rt32)", 40906tc_a3070909, TypeST>, Enc_ca3887 { 40907let Inst{7-0} = 0b00000000; 40908let Inst{13-13} = 0b0; 40909let Inst{31-21} = 0b10100110000; 40910let isSoloAX = 1; 40911let hasSideEffects = 1; 40912let mayStore = 1; 40913} 40914def Y4_l2tagr : HInst< 40915(outs IntRegs:$Rd32), 40916(ins IntRegs:$Rs32), 40917"$Rd32 = l2tagr($Rs32)", 40918tc_a724463d, TypeST>, Enc_5e2823 { 40919let Inst{13-5} = 0b000000000; 40920let Inst{31-21} = 0b10100100011; 40921let hasNewValue = 1; 40922let opNewValue = 0; 40923let isSoloAX = 1; 40924} 40925def Y4_l2tagw : HInst< 40926(outs), 40927(ins IntRegs:$Rs32, IntRegs:$Rt32), 40928"l2tagw($Rs32,$Rt32)", 40929tc_512b1653, TypeST>, Enc_ca3887 { 40930let Inst{7-0} = 0b00000000; 40931let Inst{13-13} = 0b0; 40932let Inst{31-21} = 0b10100100010; 40933let isSolo = 1; 40934} 40935def Y4_nmi : HInst< 40936(outs), 40937(ins IntRegs:$Rs32), 40938"nmi($Rs32)", 40939tc_0a43be35, TypeCR>, Enc_ecbcc8 { 40940let Inst{13-0} = 0b00000001000000; 40941let Inst{31-21} = 0b01100100011; 40942let isSolo = 1; 40943} 40944def Y4_siad : HInst< 40945(outs), 40946(ins IntRegs:$Rs32), 40947"siad($Rs32)", 40948tc_0a43be35, TypeCR>, Enc_ecbcc8 { 40949let Inst{13-0} = 0b00000001100000; 40950let Inst{31-21} = 0b01100100100; 40951let isSoloAX = 1; 40952} 40953def Y4_tfrscpp : HInst< 40954(outs DoubleRegs:$Rdd32), 40955(ins SysRegs64:$Sss128), 40956"$Rdd32 = $Sss128", 40957tc_fae9dfa5, TypeCR>, Enc_e32517 { 40958let Inst{13-5} = 0b000000000; 40959let Inst{31-23} = 0b011011110; 40960} 40961def Y4_tfrspcp : HInst< 40962(outs SysRegs64:$Sdd128), 40963(ins DoubleRegs:$Rss32), 40964"$Sdd128 = $Rss32", 40965tc_6ae3426b, TypeCR>, Enc_a705fc { 40966let Inst{13-7} = 0b0000000; 40967let Inst{31-21} = 0b01101101000; 40968let hasNewValue = 1; 40969let opNewValue = 0; 40970} 40971def Y4_trace : HInst< 40972(outs), 40973(ins IntRegs:$Rs32), 40974"trace($Rs32)", 40975tc_d7718fbe, TypeCR>, Enc_ecbcc8 { 40976let Inst{13-0} = 0b00000000000000; 40977let Inst{31-21} = 0b01100010010; 40978let isSoloAX = 1; 40979} 40980def Y5_ctlbw : HInst< 40981(outs IntRegs:$Rd32), 40982(ins DoubleRegs:$Rss32, IntRegs:$Rt32), 40983"$Rd32 = ctlbw($Rss32,$Rt32)", 40984tc_bb78483e, TypeCR>, Enc_3d5b28 { 40985let Inst{7-5} = 0b000; 40986let Inst{13-13} = 0b0; 40987let Inst{31-21} = 0b01101100110; 40988let hasNewValue = 1; 40989let opNewValue = 0; 40990let isSolo = 1; 40991} 40992def Y5_l2cleanidx : HInst< 40993(outs), 40994(ins IntRegs:$Rs32), 40995"l2cleanidx($Rs32)", 40996tc_d234b61a, TypeST>, Enc_ecbcc8 { 40997let Inst{13-0} = 0b00000000000000; 40998let Inst{31-21} = 0b10100110001; 40999let isSoloAX = 1; 41000} 41001def Y5_l2fetch : HInst< 41002(outs), 41003(ins IntRegs:$Rs32, DoubleRegs:$Rtt32), 41004"l2fetch($Rs32,$Rtt32)", 41005tc_a3070909, TypeST>, Enc_e6abcf { 41006let Inst{7-0} = 0b00000000; 41007let Inst{13-13} = 0b0; 41008let Inst{31-21} = 0b10100110100; 41009let isSoloAX = 1; 41010let hasSideEffects = 1; 41011let mayStore = 1; 41012} 41013def Y5_l2gclean : HInst< 41014(outs), 41015(ins), 41016"l2gclean", 41017tc_b3d46584, TypeST>, Enc_e3b0c4 { 41018let Inst{13-0} = 0b01000000000000; 41019let Inst{31-16} = 0b1010100000100000; 41020let isSolo = 1; 41021} 41022def Y5_l2gcleaninv : HInst< 41023(outs), 41024(ins), 41025"l2gcleaninv", 41026tc_b3d46584, TypeST>, Enc_e3b0c4 { 41027let Inst{13-0} = 0b01100000000000; 41028let Inst{31-16} = 0b1010100000100000; 41029let isSolo = 1; 41030} 41031def Y5_l2gunlock : HInst< 41032(outs), 41033(ins), 41034"l2gunlock", 41035tc_b3d46584, TypeST>, Enc_e3b0c4 { 41036let Inst{13-0} = 0b00100000000000; 41037let Inst{31-16} = 0b1010100000100000; 41038let isSolo = 1; 41039} 41040def Y5_l2invidx : HInst< 41041(outs), 41042(ins IntRegs:$Rs32), 41043"l2invidx($Rs32)", 41044tc_d234b61a, TypeST>, Enc_ecbcc8 { 41045let Inst{13-0} = 0b00000000000000; 41046let Inst{31-21} = 0b10100110010; 41047let isSoloAX = 1; 41048} 41049def Y5_l2locka : HInst< 41050(outs PredRegs:$Pd4), 41051(ins IntRegs:$Rs32), 41052"$Pd4 = l2locka($Rs32)", 41053tc_a724463d, TypeST>, Enc_48b75f { 41054let Inst{13-2} = 0b100000000000; 41055let Inst{31-21} = 0b10100000111; 41056let isPredicateLate = 1; 41057let isSoloAX = 1; 41058} 41059def Y5_l2unlocka : HInst< 41060(outs), 41061(ins IntRegs:$Rs32), 41062"l2unlocka($Rs32)", 41063tc_d234b61a, TypeST>, Enc_ecbcc8 { 41064let Inst{13-0} = 0b00000000000000; 41065let Inst{31-21} = 0b10100110011; 41066let isSoloAX = 1; 41067} 41068def Y5_tlbasidi : HInst< 41069(outs), 41070(ins IntRegs:$Rs32), 41071"tlbinvasid($Rs32)", 41072tc_54f0cee2, TypeCR>, Enc_ecbcc8 { 41073let Inst{13-0} = 0b00000000000000; 41074let Inst{31-21} = 0b01101100101; 41075let isSolo = 1; 41076} 41077def Y5_tlboc : HInst< 41078(outs IntRegs:$Rd32), 41079(ins DoubleRegs:$Rss32), 41080"$Rd32 = tlboc($Rss32)", 41081tc_6aa823ab, TypeCR>, Enc_90cd8b { 41082let Inst{13-5} = 0b000000000; 41083let Inst{31-21} = 0b01101100111; 41084let hasNewValue = 1; 41085let opNewValue = 0; 41086let isSolo = 1; 41087} 41088def Y6_diag : HInst< 41089(outs), 41090(ins IntRegs:$Rs32), 41091"diag($Rs32)", 41092tc_2c3e17fc, TypeCR>, Enc_ecbcc8, Requires<[HasV67]> { 41093let Inst{13-0} = 0b00000000100000; 41094let Inst{31-21} = 0b01100010010; 41095} 41096def Y6_diag0 : HInst< 41097(outs), 41098(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 41099"diag0($Rss32,$Rtt32)", 41100tc_28e55c6f, TypeCR>, Enc_b00112, Requires<[HasV67]> { 41101let Inst{7-0} = 0b01000000; 41102let Inst{13-13} = 0b0; 41103let Inst{31-21} = 0b01100010010; 41104} 41105def Y6_diag1 : HInst< 41106(outs), 41107(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), 41108"diag1($Rss32,$Rtt32)", 41109tc_28e55c6f, TypeCR>, Enc_b00112, Requires<[HasV67]> { 41110let Inst{7-0} = 0b01100000; 41111let Inst{13-13} = 0b0; 41112let Inst{31-21} = 0b01100010010; 41113} 41114def Y6_dmlink : HInst< 41115(outs), 41116(ins IntRegs:$Rs32, IntRegs:$Rt32), 41117"dmlink($Rs32,$Rt32)", 41118tc_7af3a37e, TypeST>, Enc_ca3887, Requires<[HasV68]> { 41119let Inst{7-0} = 0b01000000; 41120let Inst{13-13} = 0b0; 41121let Inst{31-21} = 0b10100110000; 41122let hasSideEffects = 1; 41123let isSolo = 1; 41124let mayStore = 1; 41125} 41126def Y6_dmpause : HInst< 41127(outs IntRegs:$Rd32), 41128(ins), 41129"$Rd32 = dmpause", 41130tc_4bf903b0, TypeST>, Enc_a4ef14, Requires<[HasV68]> { 41131let Inst{13-5} = 0b000000011; 41132let Inst{31-16} = 0b1010100000000000; 41133let hasNewValue = 1; 41134let opNewValue = 0; 41135let hasSideEffects = 1; 41136let isSolo = 1; 41137} 41138def Y6_dmpoll : HInst< 41139(outs IntRegs:$Rd32), 41140(ins), 41141"$Rd32 = dmpoll", 41142tc_4bf903b0, TypeST>, Enc_a4ef14, Requires<[HasV68]> { 41143let Inst{13-5} = 0b000000010; 41144let Inst{31-16} = 0b1010100000000000; 41145let hasNewValue = 1; 41146let opNewValue = 0; 41147let hasSideEffects = 1; 41148let isSolo = 1; 41149} 41150def Y6_dmresume : HInst< 41151(outs), 41152(ins IntRegs:$Rs32), 41153"dmresume($Rs32)", 41154tc_db96aa6b, TypeST>, Enc_ecbcc8, Requires<[HasV68]> { 41155let Inst{13-0} = 0b00000010000000; 41156let Inst{31-21} = 0b10100110000; 41157let hasSideEffects = 1; 41158let isSolo = 1; 41159} 41160def Y6_dmstart : HInst< 41161(outs), 41162(ins IntRegs:$Rs32), 41163"dmstart($Rs32)", 41164tc_db96aa6b, TypeST>, Enc_ecbcc8, Requires<[HasV68]> { 41165let Inst{13-0} = 0b00000000100000; 41166let Inst{31-21} = 0b10100110000; 41167let hasSideEffects = 1; 41168let isSolo = 1; 41169} 41170def Y6_dmwait : HInst< 41171(outs IntRegs:$Rd32), 41172(ins), 41173"$Rd32 = dmwait", 41174tc_4bf903b0, TypeST>, Enc_a4ef14, Requires<[HasV68]> { 41175let Inst{13-5} = 0b000000001; 41176let Inst{31-16} = 0b1010100000000000; 41177let hasNewValue = 1; 41178let opNewValue = 0; 41179let hasSideEffects = 1; 41180let isSolo = 1; 41181} 41182def Y6_l2gcleaninvpa : HInst< 41183(outs), 41184(ins DoubleRegs:$Rtt32), 41185"l2gcleaninv($Rtt32)", 41186tc_7c28bd7e, TypeST>, Enc_598f6c { 41187let Inst{7-0} = 0b00000000; 41188let Inst{13-13} = 0b0; 41189let Inst{31-16} = 0b1010011011000000; 41190let isSolo = 1; 41191} 41192def Y6_l2gcleanpa : HInst< 41193(outs), 41194(ins DoubleRegs:$Rtt32), 41195"l2gclean($Rtt32)", 41196tc_7c28bd7e, TypeST>, Enc_598f6c { 41197let Inst{7-0} = 0b00000000; 41198let Inst{13-13} = 0b0; 41199let Inst{31-16} = 0b1010011010100000; 41200let isSolo = 1; 41201} 41202def dep_A2_addsat : HInst< 41203(outs IntRegs:$Rd32), 41204(ins IntRegs:$Rs32, IntRegs:$Rt32), 41205"$Rd32 = add($Rs32,$Rt32):sat:deprecated", 41206tc_8a825db2, TypeALU64>, Enc_5ab2be { 41207let Inst{7-5} = 0b000; 41208let Inst{13-13} = 0b0; 41209let Inst{31-21} = 0b11010101100; 41210let hasNewValue = 1; 41211let opNewValue = 0; 41212let prefersSlot3 = 1; 41213let Defs = [USR_OVF]; 41214} 41215def dep_A2_subsat : HInst< 41216(outs IntRegs:$Rd32), 41217(ins IntRegs:$Rt32, IntRegs:$Rs32), 41218"$Rd32 = sub($Rt32,$Rs32):sat:deprecated", 41219tc_8a825db2, TypeALU64>, Enc_bd6011 { 41220let Inst{7-5} = 0b100; 41221let Inst{13-13} = 0b0; 41222let Inst{31-21} = 0b11010101100; 41223let hasNewValue = 1; 41224let opNewValue = 0; 41225let prefersSlot3 = 1; 41226let Defs = [USR_OVF]; 41227} 41228def dep_S2_packhl : HInst< 41229(outs DoubleRegs:$Rdd32), 41230(ins IntRegs:$Rs32, IntRegs:$Rt32), 41231"$Rdd32 = packhl($Rs32,$Rt32):deprecated", 41232tc_5da50c4b, TypeALU64>, Enc_be32a5 { 41233let Inst{7-5} = 0b000; 41234let Inst{13-13} = 0b0; 41235let Inst{31-21} = 0b11010100000; 41236} 41237def dup_A2_add : HInst< 41238(outs IntRegs:$Rd32), 41239(ins IntRegs:$Rs32, IntRegs:$Rt32), 41240"$Rd32 = add($Rs32,$Rt32)", 41241tc_388f9897, TypeALU32_3op>, Requires<[HasV73]> { 41242let hasNewValue = 1; 41243let opNewValue = 0; 41244let AsmVariantName = "NonParsable"; 41245let isPseudo = 1; 41246} 41247def dup_A2_addi : HInst< 41248(outs IntRegs:$Rd32), 41249(ins IntRegs:$Rs32, s32_0Imm:$Ii), 41250"$Rd32 = add($Rs32,#$Ii)", 41251tc_388f9897, TypeALU32_ADDI>, Requires<[HasV73]> { 41252let hasNewValue = 1; 41253let opNewValue = 0; 41254let AsmVariantName = "NonParsable"; 41255let isPseudo = 1; 41256let isExtendable = 1; 41257let opExtendable = 2; 41258let isExtentSigned = 1; 41259let opExtentBits = 16; 41260let opExtentAlign = 0; 41261} 41262def dup_A2_andir : HInst< 41263(outs IntRegs:$Rd32), 41264(ins IntRegs:$Rs32, s32_0Imm:$Ii), 41265"$Rd32 = and($Rs32,#$Ii)", 41266tc_388f9897, TypeALU32_2op>, Requires<[HasV73]> { 41267let hasNewValue = 1; 41268let opNewValue = 0; 41269let AsmVariantName = "NonParsable"; 41270let isPseudo = 1; 41271let isExtendable = 1; 41272let opExtendable = 2; 41273let isExtentSigned = 1; 41274let opExtentBits = 10; 41275let opExtentAlign = 0; 41276} 41277def dup_A2_combineii : HInst< 41278(outs DoubleRegs:$Rdd32), 41279(ins s32_0Imm:$Ii, s8_0Imm:$II), 41280"$Rdd32 = combine(#$Ii,#$II)", 41281tc_388f9897, TypeALU32_2op>, Requires<[HasV73]> { 41282let AsmVariantName = "NonParsable"; 41283let isPseudo = 1; 41284let isExtendable = 1; 41285let opExtendable = 1; 41286let isExtentSigned = 1; 41287let opExtentBits = 8; 41288let opExtentAlign = 0; 41289} 41290def dup_A2_sxtb : HInst< 41291(outs IntRegs:$Rd32), 41292(ins IntRegs:$Rs32), 41293"$Rd32 = sxtb($Rs32)", 41294tc_9124c04f, TypeALU32_2op>, Requires<[HasV73]> { 41295let hasNewValue = 1; 41296let opNewValue = 0; 41297let AsmVariantName = "NonParsable"; 41298let isPseudo = 1; 41299} 41300def dup_A2_sxth : HInst< 41301(outs IntRegs:$Rd32), 41302(ins IntRegs:$Rs32), 41303"$Rd32 = sxth($Rs32)", 41304tc_9124c04f, TypeALU32_2op>, Requires<[HasV73]> { 41305let hasNewValue = 1; 41306let opNewValue = 0; 41307let AsmVariantName = "NonParsable"; 41308let isPseudo = 1; 41309} 41310def dup_A2_tfr : HInst< 41311(outs IntRegs:$Rd32), 41312(ins IntRegs:$Rs32), 41313"$Rd32 = $Rs32", 41314tc_9124c04f, TypeALU32_2op>, Requires<[HasV73]> { 41315let hasNewValue = 1; 41316let opNewValue = 0; 41317let AsmVariantName = "NonParsable"; 41318let isPseudo = 1; 41319} 41320def dup_A2_tfrsi : HInst< 41321(outs IntRegs:$Rd32), 41322(ins s32_0Imm:$Ii), 41323"$Rd32 = #$Ii", 41324tc_9124c04f, TypeALU32_2op>, Requires<[HasV73]> { 41325let hasNewValue = 1; 41326let opNewValue = 0; 41327let AsmVariantName = "NonParsable"; 41328let isPseudo = 1; 41329let isExtendable = 1; 41330let opExtendable = 1; 41331let isExtentSigned = 1; 41332let opExtentBits = 16; 41333let opExtentAlign = 0; 41334} 41335def dup_A2_zxtb : HInst< 41336(outs IntRegs:$Rd32), 41337(ins IntRegs:$Rs32), 41338"$Rd32 = zxtb($Rs32)", 41339PSEUDO, TypeMAPPING>, Requires<[HasV73]> { 41340let hasNewValue = 1; 41341let opNewValue = 0; 41342let AsmVariantName = "NonParsable"; 41343let isPseudo = 1; 41344} 41345def dup_A2_zxth : HInst< 41346(outs IntRegs:$Rd32), 41347(ins IntRegs:$Rs32), 41348"$Rd32 = zxth($Rs32)", 41349tc_9124c04f, TypeALU32_2op>, Requires<[HasV73]> { 41350let hasNewValue = 1; 41351let opNewValue = 0; 41352let AsmVariantName = "NonParsable"; 41353let isPseudo = 1; 41354} 41355def dup_A4_combineii : HInst< 41356(outs DoubleRegs:$Rdd32), 41357(ins s8_0Imm:$Ii, u32_0Imm:$II), 41358"$Rdd32 = combine(#$Ii,#$II)", 41359tc_388f9897, TypeALU32_2op>, Requires<[HasV73]> { 41360let AsmVariantName = "NonParsable"; 41361let isPseudo = 1; 41362let isExtendable = 1; 41363let opExtendable = 2; 41364let isExtentSigned = 0; 41365let opExtentBits = 6; 41366let opExtentAlign = 0; 41367} 41368def dup_A4_combineir : HInst< 41369(outs DoubleRegs:$Rdd32), 41370(ins s32_0Imm:$Ii, IntRegs:$Rs32), 41371"$Rdd32 = combine(#$Ii,$Rs32)", 41372tc_388f9897, TypeALU32_2op>, Requires<[HasV73]> { 41373let AsmVariantName = "NonParsable"; 41374let isPseudo = 1; 41375let isExtendable = 1; 41376let opExtendable = 1; 41377let isExtentSigned = 1; 41378let opExtentBits = 8; 41379let opExtentAlign = 0; 41380} 41381def dup_A4_combineri : HInst< 41382(outs DoubleRegs:$Rdd32), 41383(ins IntRegs:$Rs32, s32_0Imm:$Ii), 41384"$Rdd32 = combine($Rs32,#$Ii)", 41385tc_388f9897, TypeALU32_2op>, Requires<[HasV73]> { 41386let AsmVariantName = "NonParsable"; 41387let isPseudo = 1; 41388let isExtendable = 1; 41389let opExtendable = 2; 41390let isExtentSigned = 1; 41391let opExtentBits = 8; 41392let opExtentAlign = 0; 41393} 41394def dup_C2_cmoveif : HInst< 41395(outs IntRegs:$Rd32), 41396(ins PredRegs:$Pu4, s32_0Imm:$Ii), 41397"if (!$Pu4) $Rd32 = #$Ii", 41398tc_388f9897, TypeALU32_2op>, Requires<[HasV73]> { 41399let isPredicated = 1; 41400let isPredicatedFalse = 1; 41401let hasNewValue = 1; 41402let opNewValue = 0; 41403let AsmVariantName = "NonParsable"; 41404let isPseudo = 1; 41405let isExtendable = 1; 41406let opExtendable = 2; 41407let isExtentSigned = 1; 41408let opExtentBits = 12; 41409let opExtentAlign = 0; 41410} 41411def dup_C2_cmoveit : HInst< 41412(outs IntRegs:$Rd32), 41413(ins PredRegs:$Pu4, s32_0Imm:$Ii), 41414"if ($Pu4) $Rd32 = #$Ii", 41415tc_388f9897, TypeALU32_2op>, Requires<[HasV73]> { 41416let isPredicated = 1; 41417let hasNewValue = 1; 41418let opNewValue = 0; 41419let AsmVariantName = "NonParsable"; 41420let isPseudo = 1; 41421let isExtendable = 1; 41422let opExtendable = 2; 41423let isExtentSigned = 1; 41424let opExtentBits = 12; 41425let opExtentAlign = 0; 41426} 41427def dup_C2_cmovenewif : HInst< 41428(outs IntRegs:$Rd32), 41429(ins PredRegs:$Pu4, s32_0Imm:$Ii), 41430"if (!$Pu4.new) $Rd32 = #$Ii", 41431tc_4ac61d92, TypeALU32_2op>, Requires<[HasV73]> { 41432let isPredicated = 1; 41433let isPredicatedFalse = 1; 41434let hasNewValue = 1; 41435let opNewValue = 0; 41436let AsmVariantName = "NonParsable"; 41437let isPredicatedNew = 1; 41438let isPseudo = 1; 41439let isExtendable = 1; 41440let opExtendable = 2; 41441let isExtentSigned = 1; 41442let opExtentBits = 12; 41443let opExtentAlign = 0; 41444} 41445def dup_C2_cmovenewit : HInst< 41446(outs IntRegs:$Rd32), 41447(ins PredRegs:$Pu4, s32_0Imm:$Ii), 41448"if ($Pu4.new) $Rd32 = #$Ii", 41449tc_4ac61d92, TypeALU32_2op>, Requires<[HasV73]> { 41450let isPredicated = 1; 41451let hasNewValue = 1; 41452let opNewValue = 0; 41453let AsmVariantName = "NonParsable"; 41454let isPredicatedNew = 1; 41455let isPseudo = 1; 41456let isExtendable = 1; 41457let opExtendable = 2; 41458let isExtentSigned = 1; 41459let opExtentBits = 12; 41460let opExtentAlign = 0; 41461} 41462def dup_C2_cmpeqi : HInst< 41463(outs PredRegs:$Pd4), 41464(ins IntRegs:$Rs32, s32_0Imm:$Ii), 41465"$Pd4 = cmp.eq($Rs32,#$Ii)", 41466tc_388f9897, TypeALU32_2op>, Requires<[HasV73]> { 41467let AsmVariantName = "NonParsable"; 41468let isPseudo = 1; 41469let isExtendable = 1; 41470let opExtendable = 2; 41471let isExtentSigned = 1; 41472let opExtentBits = 10; 41473let opExtentAlign = 0; 41474} 41475def dup_L2_deallocframe : HInst< 41476(outs DoubleRegs:$Rdd32), 41477(ins IntRegs:$Rs32), 41478"$Rdd32 = deallocframe($Rs32):raw", 41479tc_aee6250c, TypeLD>, Requires<[HasV73]> { 41480let accessSize = DoubleWordAccess; 41481let AsmVariantName = "NonParsable"; 41482let mayLoad = 1; 41483let Uses = [FRAMEKEY]; 41484let Defs = [R29]; 41485let isPseudo = 1; 41486} 41487def dup_L2_loadrb_io : HInst< 41488(outs IntRegs:$Rd32), 41489(ins IntRegs:$Rs32, s32_0Imm:$Ii), 41490"$Rd32 = memb($Rs32+#$Ii)", 41491tc_eed07714, TypeLD>, Requires<[HasV73]> { 41492let hasNewValue = 1; 41493let opNewValue = 0; 41494let addrMode = BaseImmOffset; 41495let accessSize = ByteAccess; 41496let AsmVariantName = "NonParsable"; 41497let mayLoad = 1; 41498let isPseudo = 1; 41499let isExtendable = 1; 41500let opExtendable = 2; 41501let isExtentSigned = 1; 41502let opExtentBits = 11; 41503let opExtentAlign = 0; 41504} 41505def dup_L2_loadrd_io : HInst< 41506(outs DoubleRegs:$Rdd32), 41507(ins IntRegs:$Rs32, s29_3Imm:$Ii), 41508"$Rdd32 = memd($Rs32+#$Ii)", 41509tc_eed07714, TypeLD>, Requires<[HasV73]> { 41510let addrMode = BaseImmOffset; 41511let accessSize = DoubleWordAccess; 41512let AsmVariantName = "NonParsable"; 41513let mayLoad = 1; 41514let isPseudo = 1; 41515let isExtendable = 1; 41516let opExtendable = 2; 41517let isExtentSigned = 1; 41518let opExtentBits = 14; 41519let opExtentAlign = 3; 41520} 41521def dup_L2_loadrh_io : HInst< 41522(outs IntRegs:$Rd32), 41523(ins IntRegs:$Rs32, s31_1Imm:$Ii), 41524"$Rd32 = memh($Rs32+#$Ii)", 41525tc_eed07714, TypeLD>, Requires<[HasV73]> { 41526let hasNewValue = 1; 41527let opNewValue = 0; 41528let addrMode = BaseImmOffset; 41529let accessSize = HalfWordAccess; 41530let AsmVariantName = "NonParsable"; 41531let mayLoad = 1; 41532let isPseudo = 1; 41533let isExtendable = 1; 41534let opExtendable = 2; 41535let isExtentSigned = 1; 41536let opExtentBits = 12; 41537let opExtentAlign = 1; 41538} 41539def dup_L2_loadri_io : HInst< 41540(outs IntRegs:$Rd32), 41541(ins IntRegs:$Rs32, s30_2Imm:$Ii), 41542"$Rd32 = memw($Rs32+#$Ii)", 41543tc_eed07714, TypeLD>, Requires<[HasV73]> { 41544let hasNewValue = 1; 41545let opNewValue = 0; 41546let addrMode = BaseImmOffset; 41547let accessSize = WordAccess; 41548let AsmVariantName = "NonParsable"; 41549let mayLoad = 1; 41550let isPseudo = 1; 41551let isExtendable = 1; 41552let opExtendable = 2; 41553let isExtentSigned = 1; 41554let opExtentBits = 13; 41555let opExtentAlign = 2; 41556} 41557def dup_L2_loadrub_io : HInst< 41558(outs IntRegs:$Rd32), 41559(ins IntRegs:$Rs32, s32_0Imm:$Ii), 41560"$Rd32 = memub($Rs32+#$Ii)", 41561tc_eed07714, TypeLD>, Requires<[HasV73]> { 41562let hasNewValue = 1; 41563let opNewValue = 0; 41564let addrMode = BaseImmOffset; 41565let accessSize = ByteAccess; 41566let AsmVariantName = "NonParsable"; 41567let mayLoad = 1; 41568let isPseudo = 1; 41569let isExtendable = 1; 41570let opExtendable = 2; 41571let isExtentSigned = 1; 41572let opExtentBits = 11; 41573let opExtentAlign = 0; 41574} 41575def dup_L2_loadruh_io : HInst< 41576(outs IntRegs:$Rd32), 41577(ins IntRegs:$Rs32, s31_1Imm:$Ii), 41578"$Rd32 = memuh($Rs32+#$Ii)", 41579tc_eed07714, TypeLD>, Requires<[HasV73]> { 41580let hasNewValue = 1; 41581let opNewValue = 0; 41582let addrMode = BaseImmOffset; 41583let accessSize = HalfWordAccess; 41584let AsmVariantName = "NonParsable"; 41585let mayLoad = 1; 41586let isPseudo = 1; 41587let isExtendable = 1; 41588let opExtendable = 2; 41589let isExtentSigned = 1; 41590let opExtentBits = 12; 41591let opExtentAlign = 1; 41592} 41593def dup_S2_allocframe : HInst< 41594(outs IntRegs:$Rx32), 41595(ins IntRegs:$Rx32in, u11_3Imm:$Ii), 41596"allocframe($Rx32,#$Ii):raw", 41597tc_74a42bda, TypeST>, Requires<[HasV73]> { 41598let hasNewValue = 1; 41599let opNewValue = 0; 41600let addrMode = BaseImmOffset; 41601let accessSize = DoubleWordAccess; 41602let AsmVariantName = "NonParsable"; 41603let mayStore = 1; 41604let Uses = [FRAMEKEY, FRAMELIMIT, R30, R31]; 41605let Defs = [R30]; 41606let isPseudo = 1; 41607let Constraints = "$Rx32 = $Rx32in"; 41608} 41609def dup_S2_storerb_io : HInst< 41610(outs), 41611(ins IntRegs:$Rs32, s32_0Imm:$Ii, IntRegs:$Rt32), 41612"memb($Rs32+#$Ii) = $Rt32", 41613tc_a9edeffa, TypeST>, Requires<[HasV73]> { 41614let addrMode = BaseImmOffset; 41615let accessSize = ByteAccess; 41616let AsmVariantName = "NonParsable"; 41617let mayStore = 1; 41618let isPseudo = 1; 41619let isExtendable = 1; 41620let opExtendable = 1; 41621let isExtentSigned = 1; 41622let opExtentBits = 11; 41623let opExtentAlign = 0; 41624} 41625def dup_S2_storerd_io : HInst< 41626(outs), 41627(ins IntRegs:$Rs32, s29_3Imm:$Ii, DoubleRegs:$Rtt32), 41628"memd($Rs32+#$Ii) = $Rtt32", 41629tc_a9edeffa, TypeST>, Requires<[HasV73]> { 41630let addrMode = BaseImmOffset; 41631let accessSize = DoubleWordAccess; 41632let AsmVariantName = "NonParsable"; 41633let mayStore = 1; 41634let isPseudo = 1; 41635let isExtendable = 1; 41636let opExtendable = 1; 41637let isExtentSigned = 1; 41638let opExtentBits = 14; 41639let opExtentAlign = 3; 41640} 41641def dup_S2_storerh_io : HInst< 41642(outs), 41643(ins IntRegs:$Rs32, s31_1Imm:$Ii, IntRegs:$Rt32), 41644"memh($Rs32+#$Ii) = $Rt32", 41645tc_a9edeffa, TypeST>, Requires<[HasV73]> { 41646let addrMode = BaseImmOffset; 41647let accessSize = HalfWordAccess; 41648let AsmVariantName = "NonParsable"; 41649let mayStore = 1; 41650let isPseudo = 1; 41651let isExtendable = 1; 41652let opExtendable = 1; 41653let isExtentSigned = 1; 41654let opExtentBits = 12; 41655let opExtentAlign = 1; 41656} 41657def dup_S2_storeri_io : HInst< 41658(outs), 41659(ins IntRegs:$Rs32, s30_2Imm:$Ii, IntRegs:$Rt32), 41660"memw($Rs32+#$Ii) = $Rt32", 41661tc_a9edeffa, TypeST>, Requires<[HasV73]> { 41662let addrMode = BaseImmOffset; 41663let accessSize = WordAccess; 41664let AsmVariantName = "NonParsable"; 41665let mayStore = 1; 41666let isPseudo = 1; 41667let isExtendable = 1; 41668let opExtendable = 1; 41669let isExtentSigned = 1; 41670let opExtentBits = 13; 41671let opExtentAlign = 2; 41672} 41673def dup_S4_storeirb_io : HInst< 41674(outs), 41675(ins IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II), 41676"memb($Rs32+#$Ii) = #$II", 41677tc_838c4d7a, TypeV4LDST>, Requires<[HasV73]> { 41678let addrMode = BaseImmOffset; 41679let accessSize = ByteAccess; 41680let AsmVariantName = "NonParsable"; 41681let mayStore = 1; 41682let isPseudo = 1; 41683let isExtendable = 1; 41684let opExtendable = 2; 41685let isExtentSigned = 1; 41686let opExtentBits = 8; 41687let opExtentAlign = 0; 41688} 41689def dup_S4_storeiri_io : HInst< 41690(outs), 41691(ins IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II), 41692"memw($Rs32+#$Ii) = #$II", 41693tc_838c4d7a, TypeV4LDST>, Requires<[HasV73]> { 41694let addrMode = BaseImmOffset; 41695let accessSize = WordAccess; 41696let AsmVariantName = "NonParsable"; 41697let mayStore = 1; 41698let isPseudo = 1; 41699let isExtendable = 1; 41700let opExtendable = 2; 41701let isExtentSigned = 1; 41702let opExtentBits = 8; 41703let opExtentAlign = 0; 41704} 41705