@@ -2248,10 +2248,10 @@ multiclass Base_VOP2_Real_e32e64_vi <bits<6> op> :
22482248
22492249} // End AssemblerPredicate = isGFX8GFX9, DecoderNamespace = "GFX8"
22502250
2251- multiclass VOP2_SDWA_Real <bits<6> op> {
2251+ multiclass VOP2_SDWA8_Real <bits<6> op> {
22522252 if !cast<VOP2_Pseudo>(NAME#"_e32").Pfl.HasExtSDWA then
22532253 def _sdwa_vi :
2254- VOP_SDWA_Real <!cast<VOP2_SDWA_Pseudo>(NAME#"_sdwa")>,
2254+ VOP_SDWA8_Real <!cast<VOP2_SDWA_Pseudo>(NAME#"_sdwa")>,
22552255 VOP2_SDWAe <op{5-0}, !cast<VOP2_SDWA_Pseudo>(NAME#"_sdwa").Pfl>;
22562256}
22572257
@@ -2279,7 +2279,7 @@ multiclass VOP2be_Real_e32e64_vi_only <bits<6> op, string OpName, string AsmName
22792279 }
22802280 if !cast<VOP2_Pseudo>(OpName#"_e32").Pfl.HasExtSDWA then
22812281 def _sdwa_vi :
2282- VOP_SDWA_Real <!cast<VOP2_SDWA_Pseudo>(OpName#"_sdwa")>,
2282+ VOP_SDWA8_Real <!cast<VOP2_SDWA_Pseudo>(OpName#"_sdwa")>,
22832283 VOP2_SDWAe <op{5-0}, !cast<VOP2_SDWA_Pseudo>(OpName#"_sdwa").Pfl> {
22842284 VOP2_SDWA_Pseudo ps = !cast<VOP2_SDWA_Pseudo>(OpName#"_sdwa");
22852285 let AsmString = AsmName # ps.AsmOperands;
@@ -2295,7 +2295,7 @@ multiclass VOP2be_Real_e32e64_vi_only <bits<6> op, string OpName, string AsmName
22952295
22962296} // End AssemblerPredicate = isGFX8Only, DecoderNamespace = "GFX8"
22972297
2298- let AssemblerPredicate = isGFX9Only, DecoderNamespace = "GFX9" in {
2298+ let DecoderNamespace = "GFX9" in {
22992299
23002300multiclass VOP2be_Real_e32e64_gfx9 <bits<6> op, string OpName, string AsmName> {
23012301 def _e32_gfx9 :
@@ -2344,10 +2344,10 @@ multiclass VOP2_Real_e32e64_gfx9 <bits<6> op> {
23442344 VOP2_DPPe<op, !cast<VOP2_DPP_Pseudo>(NAME#"_dpp")>;
23452345}
23462346
2347- } // End AssemblerPredicate = isGFX9Only, DecoderNamespace = "GFX9"
2347+ } // End DecoderNamespace = "GFX9"
23482348
23492349multiclass VOP2_Real_e32e64_vi <bits<6> op> :
2350- Base_VOP2_Real_e32e64_vi<op>, VOP2_SDWA_Real <op>, VOP2_SDWA9_Real<op> {
2350+ Base_VOP2_Real_e32e64_vi<op>, VOP2_SDWA8_Real <op>, VOP2_SDWA9_Real<op> {
23512351
23522352 if !cast<VOP2_Pseudo>(NAME#"_e32").Pfl.HasExtDPP then
23532353 def _dpp_vi :
@@ -2359,7 +2359,7 @@ defm V_CNDMASK_B32 : VOP2_Real_e32e64_vi <0x0>;
23592359defm V_ADD_F32 : VOP2_Real_e32e64_vi <0x1>;
23602360defm V_SUB_F32 : VOP2_Real_e32e64_vi <0x2>;
23612361defm V_SUBREV_F32 : VOP2_Real_e32e64_vi <0x3>;
2362- let AssemblerPredicate = isGCN3ExcludingGFX90A in
2362+ let OtherPredicates = [ isGCN3ExcludingGFX90A] in
23632363defm V_MUL_LEGACY_F32 : VOP2_Real_e32e64_vi <0x4>;
23642364defm V_MUL_F32 : VOP2_Real_e32e64_vi <0x5>;
23652365defm V_MUL_I32_I24 : VOP2_Real_e32e64_vi <0x6>;
@@ -2389,6 +2389,7 @@ defm V_ADDC_U32 : VOP2be_Real_e32e64_vi_only <0x1c, "V_ADDC_U32", "
23892389defm V_SUBB_U32 : VOP2be_Real_e32e64_vi_only <0x1d, "V_SUBB_U32", "v_subb_u32">;
23902390defm V_SUBBREV_U32 : VOP2be_Real_e32e64_vi_only <0x1e, "V_SUBBREV_U32", "v_subbrev_u32">;
23912391
2392+ let AssemblerPredicate = isGFX9Only in {
23922393defm V_ADD_CO_U32 : VOP2be_Real_e32e64_gfx9 <0x19, "V_ADD_CO_U32", "v_add_co_u32">;
23932394defm V_SUB_CO_U32 : VOP2be_Real_e32e64_gfx9 <0x1a, "V_SUB_CO_U32", "v_sub_co_u32">;
23942395defm V_SUBREV_CO_U32 : VOP2be_Real_e32e64_gfx9 <0x1b, "V_SUBREV_CO_U32", "v_subrev_co_u32">;
@@ -2399,6 +2400,7 @@ defm V_SUBBREV_CO_U32 : VOP2be_Real_e32e64_gfx9 <0x1e, "V_SUBBREV_U32", "v_s
23992400defm V_ADD_U32 : VOP2_Real_e32e64_gfx9 <0x34>;
24002401defm V_SUB_U32 : VOP2_Real_e32e64_gfx9 <0x35>;
24012402defm V_SUBREV_U32 : VOP2_Real_e32e64_gfx9 <0x36>;
2403+ } // End AssemblerPredicate = isGFX9Only
24022404
24032405defm V_BFM_B32 : VOP2_Real_e64only_vi <0x293>;
24042406defm V_BCNT_U32_B32 : VOP2_Real_e64only_vi <0x28b>;
@@ -2476,7 +2478,7 @@ defm V_XNOR_B32 : VOP2_Real_e32e64_vi <0x3d>;
24762478
24772479} // End SubtargetPredicate = HasDLInsts
24782480
2479- let AssemblerPredicate = isGFX90APlus, DecoderNamespace = "GFX90A" in {
2481+ let DecoderNamespace = "GFX90A" in {
24802482 multiclass VOP2_Real_e32_gfx90a <bits<6> op> {
24812483 def _e32_gfx90a :
24822484 VOP2_Real<!cast<VOP2_Pseudo>(NAME#"_e32"), SIEncodingFamily.GFX90A>,
@@ -2509,7 +2511,7 @@ let SubtargetPredicate = HasFmacF64Inst in {
25092511 defm V_FMAC_F64 : VOP2_Real_e32e64_gfx90a <0x4>;
25102512} // End SubtargetPredicate = HasFmacF64Inst
25112513
2512- let SubtargetPredicate = isGFX90APlus, IsSingle = 1 in {
2514+ let IsSingle = 1 in {
25132515 defm V_MUL_LEGACY_F32 : VOP2_Real_e64_gfx90a <0x2a1>;
25142516}
25152517
0 commit comments