@@ -788,6 +788,13 @@ def FeatureFlatAtomicFaddF32Inst
788788 "Has flat_atomic_add_f32 instruction"
789789>;
790790
791+ def FeatureFlatBufferGlobalAtomicFaddF64Inst
792+ : SubtargetFeature<"flat-buffer-global-fadd-f64-inst",
793+ "HasFlatBufferGlobalAtomicFaddF64Inst",
794+ "true",
795+ "Has flat, buffer, and global instructions for f64 atomic fadd"
796+ >;
797+
791798def FeatureMemoryAtomicFaddF32DenormalSupport
792799 : SubtargetFeature<"memory-atomic-fadd-f32-denormal-support",
793800 "HasAtomicMemoryAtomicFaddF32DenormalSupport",
@@ -1388,7 +1395,8 @@ def FeatureISAVersion9_0_A : FeatureSet<
13881395 FeatureBackOffBarrier,
13891396 FeatureKernargPreload,
13901397 FeatureAtomicFMinFMaxF64GlobalInsts,
1391- FeatureAtomicFMinFMaxF64FlatInsts
1398+ FeatureAtomicFMinFMaxF64FlatInsts,
1399+ FeatureFlatBufferGlobalAtomicFaddF64Inst
13921400 ])>;
13931401
13941402def FeatureISAVersion9_0_C : FeatureSet<
@@ -1433,7 +1441,8 @@ def FeatureISAVersion9_4_Common : FeatureSet<
14331441 FeatureAtomicFMinFMaxF64GlobalInsts,
14341442 FeatureAtomicFMinFMaxF64FlatInsts,
14351443 FeatureAgentScopeFineGrainedRemoteMemoryAtomics,
1436- FeatureMemoryAtomicFaddF32DenormalSupport
1444+ FeatureMemoryAtomicFaddF32DenormalSupport,
1445+ FeatureFlatBufferGlobalAtomicFaddF64Inst
14371446 ]>;
14381447
14391448def FeatureISAVersion9_4_0 : FeatureSet<
@@ -1928,11 +1937,9 @@ def isGFX12Plus :
19281937def HasFlatAddressSpace : Predicate<"Subtarget->hasFlatAddressSpace()">,
19291938 AssemblerPredicate<(all_of FeatureFlatAddressSpace)>;
19301939
1931-
1932- def HasBufferFlatGlobalAtomicsF64 : // FIXME: Rename to show it's only for fadd
1933- Predicate<"Subtarget->hasBufferFlatGlobalAtomicsF64()">,
1934- // FIXME: This is too coarse, and working around using pseudo's predicates on real instruction.
1935- AssemblerPredicate<(any_of FeatureGFX90AInsts, FeatureGFX10Insts, FeatureSouthernIslands, FeatureSeaIslands)>;
1940+ def HasFlatBufferGlobalAtomicFaddF64Inst :
1941+ Predicate<"Subtarget->hasFlatBufferGlobalAtomicFaddF64Inst()">,
1942+ AssemblerPredicate<(any_of FeatureFlatBufferGlobalAtomicFaddF64Inst)>;
19361943
19371944def HasAtomicFMinFMaxF32GlobalInsts :
19381945 Predicate<"Subtarget->hasAtomicFMinFMaxF32GlobalInsts()">,
0 commit comments