@@ -788,6 +788,13 @@ def FeatureFlatAtomicFaddF32Inst
788788 "Has flat_atomic_add_f32 instruction"
789789>;
790790
791+ def FeatureMemoryAtomicFAddF32DenormalSupport
792+ : SubtargetFeature<"memory-atomic-fadd-f32-denormal-support",
793+ "HasMemoryAtomicFaddF32DenormalSupport",
794+ "true",
795+ "global/flat/buffer atomic fadd for float supports denormal handling"
796+ >;
797+
791798def FeatureAgentScopeFineGrainedRemoteMemoryAtomics
792799 : SubtargetFeature<"agent-scope-fine-grained-remote-memory-atomics",
793800 "HasAgentScopeFineGrainedRemoteMemoryAtomics",
@@ -1427,7 +1434,8 @@ def FeatureISAVersion9_4_Common : FeatureSet<
14271434 FeatureKernargPreload,
14281435 FeatureAtomicFMinFMaxF64GlobalInsts,
14291436 FeatureAtomicFMinFMaxF64FlatInsts,
1430- FeatureAgentScopeFineGrainedRemoteMemoryAtomics
1437+ FeatureAgentScopeFineGrainedRemoteMemoryAtomics,
1438+ FeatureMemoryAtomicFAddF32DenormalSupport
14311439 ]>;
14321440
14331441def FeatureISAVersion9_4_0 : FeatureSet<
@@ -1539,7 +1547,8 @@ def FeatureISAVersion11_Common : FeatureSet<
15391547 FeatureFlatAtomicFaddF32Inst,
15401548 FeatureImageInsts,
15411549 FeaturePackedTID,
1542- FeatureVcmpxPermlaneHazard]>;
1550+ FeatureVcmpxPermlaneHazard,
1551+ FeatureMemoryAtomicFAddF32DenormalSupport]>;
15431552
15441553// There are few workarounds that need to be
15451554// added to all targets. This pessimizes codegen
@@ -1631,7 +1640,9 @@ def FeatureISAVersion12 : FeatureSet<
16311640 FeatureScalarDwordx3Loads,
16321641 FeatureDPPSrc1SGPR,
16331642 FeatureMaxHardClauseLength32,
1634- Feature1_5xVGPRs]>;
1643+ Feature1_5xVGPRs,
1644+ FeatureMemoryAtomicFAddF32DenormalSupport
1645+ ]>;
16351646
16361647def FeatureISAVersion12_Generic: FeatureSet<
16371648 !listconcat(FeatureISAVersion12.Features,
0 commit comments