@@ -1036,9 +1036,11 @@ defm GLOBAL_LOAD_LDS_DWORDX3 : FLAT_Global_Load_LDS_Pseudo <"global_load_lds_dwo
1036
1036
defm GLOBAL_LOAD_LDS_DWORDX4 : FLAT_Global_Load_LDS_Pseudo <"global_load_lds_dwordx4">;
1037
1037
}
1038
1038
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
+
1039
1042
let SubtargetPredicate = isGFX12Plus in {
1040
1043
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>;
1042
1044
1043
1045
def GLOBAL_INV : FLAT_Global_Invalidate_Writeback<"global_inv">;
1044
1046
def GLOBAL_WB : FLAT_Global_Invalidate_Writeback<"global_wb">;
@@ -1827,19 +1829,19 @@ let SubtargetPredicate = isGFX12Plus in {
1827
1829
defm : GlobalFLATAtomicPatsNoRtnWithAddrSpace <"GLOBAL_ATOMIC_COND_SUB_U32", "int_amdgcn_atomic_cond_sub_u32", "global_addrspace", i32>;
1828
1830
}
1829
1831
1830
- let OtherPredicates = [isGFX12Plus ] in {
1832
+ let OtherPredicates = [isGFX12PlusNot12_50 ] in
1831
1833
defm : GlobalFLATAtomicPatsRtn <"GLOBAL_ATOMIC_ORDERED_ADD_B64", "int_amdgcn_global_atomic_ordered_add_b64", i64, i64, /* isIntr */ 1>;
1832
1834
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>;
1843
1845
}
1844
1846
1845
1847
let SubtargetPredicate = HasAtomicFMinFMaxF32GlobalInsts, OtherPredicates = [HasFlatGlobalInsts] in {
0 commit comments