@@ -1036,9 +1036,11 @@ defm GLOBAL_LOAD_LDS_DWORDX3 : FLAT_Global_Load_LDS_Pseudo <"global_load_lds_dwo
10361036defm GLOBAL_LOAD_LDS_DWORDX4 : FLAT_Global_Load_LDS_Pseudo <"global_load_lds_dwordx4">;
10371037}
10381038
1039+ let SubtargetPredicate = isGFX12PlusNot12_50 in
1040+ defm GLOBAL_ATOMIC_ORDERED_ADD_B64 : FLAT_Global_Atomic_Pseudo <"global_atomic_ordered_add_b64", VReg_64, i64>;
1041+
10391042let SubtargetPredicate = isGFX12Plus in {
10401043 defm GLOBAL_ATOMIC_COND_SUB_U32 : FLAT_Global_Atomic_Pseudo <"global_atomic_cond_sub_u32", VGPR_32, i32>;
1041- defm GLOBAL_ATOMIC_ORDERED_ADD_B64 : FLAT_Global_Atomic_Pseudo <"global_atomic_ordered_add_b64", VReg_64, i64>;
10421044
10431045 def GLOBAL_INV : FLAT_Global_Invalidate_Writeback<"global_inv">;
10441046 def GLOBAL_WB : FLAT_Global_Invalidate_Writeback<"global_wb">;
@@ -1827,19 +1829,19 @@ let SubtargetPredicate = isGFX12Plus in {
18271829 defm : GlobalFLATAtomicPatsNoRtnWithAddrSpace <"GLOBAL_ATOMIC_COND_SUB_U32", "int_amdgcn_atomic_cond_sub_u32", "global_addrspace", i32>;
18281830}
18291831
1830- let OtherPredicates = [isGFX12Plus ] in {
1832+ let OtherPredicates = [isGFX12PlusNot12_50 ] in
18311833 defm : GlobalFLATAtomicPatsRtn <"GLOBAL_ATOMIC_ORDERED_ADD_B64", "int_amdgcn_global_atomic_ordered_add_b64", i64, i64, /* isIntr */ 1>;
18321834
1833- let WaveSizePredicate = isWave32 in {
1834- defm : GlobalFLATLoadPats <GLOBAL_LOAD_TR_B64_w32, int_amdgcn_global_load_tr_b64, v2i32>;
1835- foreach vt = [v8i16, v8f16, v8bf16] in
1836- defm : GlobalFLATLoadPats <GLOBAL_LOAD_TR_B128_w32, int_amdgcn_global_load_tr_b128, vt>;
1837- }
1838- let WaveSizePredicate = isWave64 in {
1839- defm : GlobalFLATLoadPats <GLOBAL_LOAD_TR_B64_w64, int_amdgcn_global_load_tr_b64, i32>;
1840- foreach vt = [v4i16, v4f16, v4bf16] in
1841- defm : GlobalFLATLoadPats <GLOBAL_LOAD_TR_B128_w64, int_amdgcn_global_load_tr_b128, vt>;
1842- }
1835+ let WaveSizePredicate = isWave32, OtherPredicates = [isGFX12Plus] in {
1836+ defm : GlobalFLATLoadPats <GLOBAL_LOAD_TR_B64_w32, int_amdgcn_global_load_tr_b64, v2i32>;
1837+ foreach vt = [v8i16, v8f16, v8bf16] in
1838+ defm : GlobalFLATLoadPats <GLOBAL_LOAD_TR_B128_w32, int_amdgcn_global_load_tr_b128, vt>;
1839+ }
1840+
1841+ let WaveSizePredicate = isWave64, OtherPredicates = [isGFX12PlusNot12_50] in {
1842+ defm : GlobalFLATLoadPats <GLOBAL_LOAD_TR_B64_w64, int_amdgcn_global_load_tr_b64, i32>;
1843+ foreach vt = [v4i16, v4f16, v4bf16] in
1844+ defm : GlobalFLATLoadPats <GLOBAL_LOAD_TR_B128_w64, int_amdgcn_global_load_tr_b128, vt>;
18431845}
18441846
18451847let SubtargetPredicate = HasAtomicFMinFMaxF32GlobalInsts, OtherPredicates = [HasFlatGlobalInsts] in {
0 commit comments