@@ -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 "HasMemoryAtomicFaddF32DenormalSupport",
@@ -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<
@@ -1932,11 +1941,9 @@ def isGFX12Plus :
19321941def HasFlatAddressSpace : Predicate<"Subtarget->hasFlatAddressSpace()">,
19331942 AssemblerPredicate<(all_of FeatureFlatAddressSpace)>;
19341943
1935-
1936- def HasBufferFlatGlobalAtomicsF64 : // FIXME: Rename to show it's only for fadd
1937- Predicate<"Subtarget->hasBufferFlatGlobalAtomicsF64()">,
1938- // FIXME: This is too coarse, and working around using pseudo's predicates on real instruction.
1939- AssemblerPredicate<(any_of FeatureGFX90AInsts, FeatureGFX10Insts, FeatureSouthernIslands, FeatureSeaIslands)>;
1944+ def HasFlatBufferGlobalAtomicFaddF64Inst :
1945+ Predicate<"Subtarget->hasFlatBufferGlobalAtomicFaddF64Inst()">,
1946+ AssemblerPredicate<(any_of FeatureFlatBufferGlobalAtomicFaddF64Inst)>;
19401947
19411948def HasAtomicFMinFMaxF32GlobalInsts :
19421949 Predicate<"Subtarget->hasAtomicFMinFMaxF32GlobalInsts()">,
0 commit comments