@@ -766,16 +766,16 @@ defm V_SUBB_U32 : VOP2bInst <"v_subb_u32", VOP2b_I32_I1_I32_I32_I1, null_frag, "
766766defm V_SUBBREV_U32 : VOP2bInst <"v_subbrev_u32", VOP2b_I32_I1_I32_I32_I1, null_frag, "v_subb_u32">;
767767
768768
769- let SubtargetPredicate = HasAddNoCarryInsts, isReMaterializable = 1 in {
769+ let SubtargetPredicate = HasAddNoCarryInsts, isReMaterializable = 1 in {
770770 defm V_SUB_U32 : VOP2Inst <"v_sub_u32", VOP_I32_I32_I32_ARITH, null_frag, "v_sub_u32">;
771771 defm V_SUBREV_U32 : VOP2Inst <"v_subrev_u32", VOP_I32_I32_I32_ARITH, null_frag, "v_sub_u32">;
772772}
773773
774- let SubtargetPredicate = HasAddNoCarryInsts, isReMaterializable = 1, isAdd = 1 in {
774+ let SubtargetPredicate = HasAddNoCarryInsts, isReMaterializable = 1, isAdd = 1 in {
775775 defm V_ADD_U32 : VOP2Inst_VOPD <"v_add_u32", VOP_I32_I32_I32_ARITH, 0x10, "v_add_nc_u32", null_frag, "v_add_u32">;
776776}
777777
778- let isAdd = 1 in {
778+ let isAdd = 1 in {
779779 defm V_ADD_CO_U32 : VOP2bInst <"v_add_co_u32", VOP2b_I32_I1_I32_I32, null_frag, "v_add_co_u32">;
780780 defm V_ADDC_U32 : VOP2bInst <"v_addc_u32", VOP2b_I32_I1_I32_I32_I1, null_frag, "v_addc_u32">;
781781}
@@ -2290,10 +2290,10 @@ multiclass Base_VOP2_Real_e32e64_vi <bits<6> op> :
22902290
22912291} // End AssemblerPredicate = isGFX8GFX9, DecoderNamespace = "GFX8"
22922292
2293- multiclass VOP2_SDWA_Real <bits<6> op> {
2293+ multiclass VOP2_SDWA8_Real <bits<6> op> {
22942294 if !cast<VOP2_Pseudo>(NAME#"_e32").Pfl.HasExtSDWA then
22952295 def _sdwa_vi :
2296- VOP_SDWA_Real <!cast<VOP2_SDWA_Pseudo>(NAME#"_sdwa")>,
2296+ VOP_SDWA8_Real <!cast<VOP2_SDWA_Pseudo>(NAME#"_sdwa")>,
22972297 VOP2_SDWAe <op{5-0}, !cast<VOP2_SDWA_Pseudo>(NAME#"_sdwa").Pfl>;
22982298}
22992299
@@ -2321,7 +2321,7 @@ multiclass VOP2be_Real_e32e64_vi_only <bits<6> op, string OpName, string AsmName
23212321 }
23222322 if !cast<VOP2_Pseudo>(OpName#"_e32").Pfl.HasExtSDWA then
23232323 def _sdwa_vi :
2324- VOP_SDWA_Real <!cast<VOP2_SDWA_Pseudo>(OpName#"_sdwa")>,
2324+ VOP_SDWA8_Real <!cast<VOP2_SDWA_Pseudo>(OpName#"_sdwa")>,
23252325 VOP2_SDWAe <op{5-0}, !cast<VOP2_SDWA_Pseudo>(OpName#"_sdwa").Pfl> {
23262326 VOP2_SDWA_Pseudo ps = !cast<VOP2_SDWA_Pseudo>(OpName#"_sdwa");
23272327 let AsmString = AsmName # ps.AsmOperands;
@@ -2337,7 +2337,7 @@ multiclass VOP2be_Real_e32e64_vi_only <bits<6> op, string OpName, string AsmName
23372337
23382338} // End AssemblerPredicate = isGFX8Only, DecoderNamespace = "GFX8"
23392339
2340- let AssemblerPredicate = isGFX9Only, DecoderNamespace = "GFX9" in {
2340+ let DecoderNamespace = "GFX9" in {
23412341
23422342multiclass VOP2be_Real_e32e64_gfx9 <bits<6> op, string OpName, string AsmName> {
23432343 def _e32_gfx9 :
@@ -2386,10 +2386,10 @@ multiclass VOP2_Real_e32e64_gfx9 <bits<6> op> {
23862386 VOP2_DPPe<op, !cast<VOP2_DPP_Pseudo>(NAME#"_dpp")>;
23872387}
23882388
2389- } // End AssemblerPredicate = isGFX9Only, DecoderNamespace = "GFX9"
2389+ } // End DecoderNamespace = "GFX9"
23902390
23912391multiclass VOP2_Real_e32e64_vi <bits<6> op> :
2392- Base_VOP2_Real_e32e64_vi<op>, VOP2_SDWA_Real <op>, VOP2_SDWA9_Real<op> {
2392+ Base_VOP2_Real_e32e64_vi<op>, VOP2_SDWA8_Real <op>, VOP2_SDWA9_Real<op> {
23932393
23942394 if !cast<VOP2_Pseudo>(NAME#"_e32").Pfl.HasExtDPP then
23952395 def _dpp_vi :
@@ -2401,7 +2401,7 @@ defm V_CNDMASK_B32 : VOP2_Real_e32e64_vi <0x0>;
24012401defm V_ADD_F32 : VOP2_Real_e32e64_vi <0x1>;
24022402defm V_SUB_F32 : VOP2_Real_e32e64_vi <0x2>;
24032403defm V_SUBREV_F32 : VOP2_Real_e32e64_vi <0x3>;
2404- let AssemblerPredicate = isGCN3ExcludingGFX90A in
2404+ let OtherPredicates = [ isGCN3ExcludingGFX90A] in
24052405defm V_MUL_LEGACY_F32 : VOP2_Real_e32e64_vi <0x4>;
24062406defm V_MUL_F32 : VOP2_Real_e32e64_vi <0x5>;
24072407defm V_MUL_I32_I24 : VOP2_Real_e32e64_vi <0x6>;
@@ -2431,6 +2431,7 @@ defm V_ADDC_U32 : VOP2be_Real_e32e64_vi_only <0x1c, "V_ADDC_U32", "
24312431defm V_SUBB_U32 : VOP2be_Real_e32e64_vi_only <0x1d, "V_SUBB_U32", "v_subb_u32">;
24322432defm V_SUBBREV_U32 : VOP2be_Real_e32e64_vi_only <0x1e, "V_SUBBREV_U32", "v_subbrev_u32">;
24332433
2434+ let AssemblerPredicate = isGFX9Only in {
24342435defm V_ADD_CO_U32 : VOP2be_Real_e32e64_gfx9 <0x19, "V_ADD_CO_U32", "v_add_co_u32">;
24352436defm V_SUB_CO_U32 : VOP2be_Real_e32e64_gfx9 <0x1a, "V_SUB_CO_U32", "v_sub_co_u32">;
24362437defm V_SUBREV_CO_U32 : VOP2be_Real_e32e64_gfx9 <0x1b, "V_SUBREV_CO_U32", "v_subrev_co_u32">;
@@ -2441,6 +2442,7 @@ defm V_SUBBREV_CO_U32 : VOP2be_Real_e32e64_gfx9 <0x1e, "V_SUBBREV_U32", "v_s
24412442defm V_ADD_U32 : VOP2_Real_e32e64_gfx9 <0x34>;
24422443defm V_SUB_U32 : VOP2_Real_e32e64_gfx9 <0x35>;
24432444defm V_SUBREV_U32 : VOP2_Real_e32e64_gfx9 <0x36>;
2445+ } // End AssemblerPredicate = isGFX9Only
24442446
24452447defm V_BFM_B32 : VOP2_Real_e64only_vi <0x293>;
24462448defm V_BCNT_U32_B32 : VOP2_Real_e64only_vi <0x28b>;
@@ -2518,7 +2520,7 @@ defm V_XNOR_B32 : VOP2_Real_e32e64_vi <0x3d>;
25182520
25192521} // End SubtargetPredicate = HasDLInsts
25202522
2521- let AssemblerPredicate = isGFX90APlus, DecoderNamespace = "GFX90A" in {
2523+ let DecoderNamespace = "GFX90A" in {
25222524 multiclass VOP2_Real_e32_gfx90a <bits<6> op> {
25232525 def _e32_gfx90a :
25242526 VOP2_Real<!cast<VOP2_Pseudo>(NAME#"_e32"), SIEncodingFamily.GFX90A>,
@@ -2551,7 +2553,7 @@ let SubtargetPredicate = HasFmacF64Inst in {
25512553 defm V_FMAC_F64 : VOP2_Real_e32e64_gfx90a <0x4>;
25522554} // End SubtargetPredicate = HasFmacF64Inst
25532555
2554- let SubtargetPredicate = isGFX90APlus, IsSingle = 1 in {
2556+ let IsSingle = 1 in {
25552557 defm V_MUL_LEGACY_F32 : VOP2_Real_e64_gfx90a <0x2a1>;
25562558}
25572559
0 commit comments