@@ -766,16 +766,16 @@ defm V_SUBB_U32 : VOP2bInst <"v_subb_u32", VOP2b_I32_I1_I32_I32_I1, null_frag, "
766
766
defm V_SUBBREV_U32 : VOP2bInst <"v_subbrev_u32", VOP2b_I32_I1_I32_I32_I1, null_frag, "v_subb_u32">;
767
767
768
768
769
- let SubtargetPredicate = HasAddNoCarryInsts, isReMaterializable = 1 in {
769
+ let SubtargetPredicate = HasAddNoCarryInsts, isReMaterializable = 1 in {
770
770
defm V_SUB_U32 : VOP2Inst <"v_sub_u32", VOP_I32_I32_I32_ARITH, null_frag, "v_sub_u32">;
771
771
defm V_SUBREV_U32 : VOP2Inst <"v_subrev_u32", VOP_I32_I32_I32_ARITH, null_frag, "v_sub_u32">;
772
772
}
773
773
774
- let SubtargetPredicate = HasAddNoCarryInsts, isReMaterializable = 1, isAdd = 1 in {
774
+ let SubtargetPredicate = HasAddNoCarryInsts, isReMaterializable = 1, isAdd = 1 in {
775
775
defm V_ADD_U32 : VOP2Inst_VOPD <"v_add_u32", VOP_I32_I32_I32_ARITH, 0x10, "v_add_nc_u32", null_frag, "v_add_u32">;
776
776
}
777
777
778
- let isAdd = 1 in {
778
+ let isAdd = 1 in {
779
779
defm V_ADD_CO_U32 : VOP2bInst <"v_add_co_u32", VOP2b_I32_I1_I32_I32, null_frag, "v_add_co_u32">;
780
780
defm V_ADDC_U32 : VOP2bInst <"v_addc_u32", VOP2b_I32_I1_I32_I32_I1, null_frag, "v_addc_u32">;
781
781
}
@@ -2290,10 +2290,10 @@ multiclass Base_VOP2_Real_e32e64_vi <bits<6> op> :
2290
2290
2291
2291
} // End AssemblerPredicate = isGFX8GFX9, DecoderNamespace = "GFX8"
2292
2292
2293
- multiclass VOP2_SDWA_Real <bits<6> op> {
2293
+ multiclass VOP2_SDWA8_Real <bits<6> op> {
2294
2294
if !cast<VOP2_Pseudo>(NAME#"_e32").Pfl.HasExtSDWA then
2295
2295
def _sdwa_vi :
2296
- VOP_SDWA_Real <!cast<VOP2_SDWA_Pseudo>(NAME#"_sdwa")>,
2296
+ VOP_SDWA8_Real <!cast<VOP2_SDWA_Pseudo>(NAME#"_sdwa")>,
2297
2297
VOP2_SDWAe <op{5-0}, !cast<VOP2_SDWA_Pseudo>(NAME#"_sdwa").Pfl>;
2298
2298
}
2299
2299
@@ -2321,7 +2321,7 @@ multiclass VOP2be_Real_e32e64_vi_only <bits<6> op, string OpName, string AsmName
2321
2321
}
2322
2322
if !cast<VOP2_Pseudo>(OpName#"_e32").Pfl.HasExtSDWA then
2323
2323
def _sdwa_vi :
2324
- VOP_SDWA_Real <!cast<VOP2_SDWA_Pseudo>(OpName#"_sdwa")>,
2324
+ VOP_SDWA8_Real <!cast<VOP2_SDWA_Pseudo>(OpName#"_sdwa")>,
2325
2325
VOP2_SDWAe <op{5-0}, !cast<VOP2_SDWA_Pseudo>(OpName#"_sdwa").Pfl> {
2326
2326
VOP2_SDWA_Pseudo ps = !cast<VOP2_SDWA_Pseudo>(OpName#"_sdwa");
2327
2327
let AsmString = AsmName # ps.AsmOperands;
@@ -2337,7 +2337,7 @@ multiclass VOP2be_Real_e32e64_vi_only <bits<6> op, string OpName, string AsmName
2337
2337
2338
2338
} // End AssemblerPredicate = isGFX8Only, DecoderNamespace = "GFX8"
2339
2339
2340
- let AssemblerPredicate = isGFX9Only, DecoderNamespace = "GFX9" in {
2340
+ let DecoderNamespace = "GFX9" in {
2341
2341
2342
2342
multiclass VOP2be_Real_e32e64_gfx9 <bits<6> op, string OpName, string AsmName> {
2343
2343
def _e32_gfx9 :
@@ -2386,10 +2386,10 @@ multiclass VOP2_Real_e32e64_gfx9 <bits<6> op> {
2386
2386
VOP2_DPPe<op, !cast<VOP2_DPP_Pseudo>(NAME#"_dpp")>;
2387
2387
}
2388
2388
2389
- } // End AssemblerPredicate = isGFX9Only, DecoderNamespace = "GFX9"
2389
+ } // End DecoderNamespace = "GFX9"
2390
2390
2391
2391
multiclass 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> {
2393
2393
2394
2394
if !cast<VOP2_Pseudo>(NAME#"_e32").Pfl.HasExtDPP then
2395
2395
def _dpp_vi :
@@ -2401,7 +2401,7 @@ defm V_CNDMASK_B32 : VOP2_Real_e32e64_vi <0x0>;
2401
2401
defm V_ADD_F32 : VOP2_Real_e32e64_vi <0x1>;
2402
2402
defm V_SUB_F32 : VOP2_Real_e32e64_vi <0x2>;
2403
2403
defm V_SUBREV_F32 : VOP2_Real_e32e64_vi <0x3>;
2404
- let AssemblerPredicate = isGCN3ExcludingGFX90A in
2404
+ let OtherPredicates = [ isGCN3ExcludingGFX90A] in
2405
2405
defm V_MUL_LEGACY_F32 : VOP2_Real_e32e64_vi <0x4>;
2406
2406
defm V_MUL_F32 : VOP2_Real_e32e64_vi <0x5>;
2407
2407
defm 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", "
2431
2431
defm V_SUBB_U32 : VOP2be_Real_e32e64_vi_only <0x1d, "V_SUBB_U32", "v_subb_u32">;
2432
2432
defm V_SUBBREV_U32 : VOP2be_Real_e32e64_vi_only <0x1e, "V_SUBBREV_U32", "v_subbrev_u32">;
2433
2433
2434
+ let AssemblerPredicate = isGFX9Only in {
2434
2435
defm V_ADD_CO_U32 : VOP2be_Real_e32e64_gfx9 <0x19, "V_ADD_CO_U32", "v_add_co_u32">;
2435
2436
defm V_SUB_CO_U32 : VOP2be_Real_e32e64_gfx9 <0x1a, "V_SUB_CO_U32", "v_sub_co_u32">;
2436
2437
defm 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
2441
2442
defm V_ADD_U32 : VOP2_Real_e32e64_gfx9 <0x34>;
2442
2443
defm V_SUB_U32 : VOP2_Real_e32e64_gfx9 <0x35>;
2443
2444
defm V_SUBREV_U32 : VOP2_Real_e32e64_gfx9 <0x36>;
2445
+ } // End AssemblerPredicate = isGFX9Only
2444
2446
2445
2447
defm V_BFM_B32 : VOP2_Real_e64only_vi <0x293>;
2446
2448
defm V_BCNT_U32_B32 : VOP2_Real_e64only_vi <0x28b>;
@@ -2518,7 +2520,7 @@ defm V_XNOR_B32 : VOP2_Real_e32e64_vi <0x3d>;
2518
2520
2519
2521
} // End SubtargetPredicate = HasDLInsts
2520
2522
2521
- let AssemblerPredicate = isGFX90APlus, DecoderNamespace = "GFX90A" in {
2523
+ let DecoderNamespace = "GFX90A" in {
2522
2524
multiclass VOP2_Real_e32_gfx90a <bits<6> op> {
2523
2525
def _e32_gfx90a :
2524
2526
VOP2_Real<!cast<VOP2_Pseudo>(NAME#"_e32"), SIEncodingFamily.GFX90A>,
@@ -2551,7 +2553,7 @@ let SubtargetPredicate = HasFmacF64Inst in {
2551
2553
defm V_FMAC_F64 : VOP2_Real_e32e64_gfx90a <0x4>;
2552
2554
} // End SubtargetPredicate = HasFmacF64Inst
2553
2555
2554
- let SubtargetPredicate = isGFX90APlus, IsSingle = 1 in {
2556
+ let IsSingle = 1 in {
2555
2557
defm V_MUL_LEGACY_F32 : VOP2_Real_e64_gfx90a <0x2a1>;
2556
2558
}
2557
2559
0 commit comments