@@ -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",
@@ -1390,7 +1397,8 @@ def FeatureISAVersion9_0_A : FeatureSet<
13901397 FeatureBackOffBarrier,
13911398 FeatureKernargPreload,
13921399 FeatureAtomicFMinFMaxF64GlobalInsts,
1393- FeatureAtomicFMinFMaxF64FlatInsts
1400+ FeatureAtomicFMinFMaxF64FlatInsts,
1401+ FeatureFlatBufferGlobalAtomicFaddF64Inst
13941402 ])>;
13951403
13961404def FeatureISAVersion9_0_C : FeatureSet<
@@ -1435,7 +1443,8 @@ def FeatureISAVersion9_4_Common : FeatureSet<
14351443 FeatureAtomicFMinFMaxF64GlobalInsts,
14361444 FeatureAtomicFMinFMaxF64FlatInsts,
14371445 FeatureAgentScopeFineGrainedRemoteMemoryAtomics,
1438- FeatureMemoryAtomicFaddF32DenormalSupport
1446+ FeatureMemoryAtomicFaddF32DenormalSupport,
1447+ FeatureFlatBufferGlobalAtomicFaddF64Inst
14391448 ]>;
14401449
14411450def FeatureISAVersion9_4_0 : FeatureSet<
@@ -1930,11 +1939,9 @@ def isGFX12Plus :
19301939def HasFlatAddressSpace : Predicate<"Subtarget->hasFlatAddressSpace()">,
19311940 AssemblerPredicate<(all_of FeatureFlatAddressSpace)>;
19321941
1933-
1934- def HasBufferFlatGlobalAtomicsF64 : // FIXME: Rename to show it's only for fadd
1935- Predicate<"Subtarget->hasBufferFlatGlobalAtomicsF64()">,
1936- // FIXME: This is too coarse, and working around using pseudo's predicates on real instruction.
1937- AssemblerPredicate<(any_of FeatureGFX90AInsts, FeatureGFX10Insts, FeatureSouthernIslands, FeatureSeaIslands)>;
1942+ def HasFlatBufferGlobalAtomicFaddF64Inst :
1943+ Predicate<"Subtarget->hasFlatBufferGlobalAtomicFaddF64Inst()">,
1944+ AssemblerPredicate<(any_of FeatureFlatBufferGlobalAtomicFaddF64Inst)>;
19381945
19391946def HasAtomicFMinFMaxF32GlobalInsts :
19401947 Predicate<"Subtarget->hasAtomicFMinFMaxF32GlobalInsts()">,
0 commit comments