[PATCH] D130579: AMDGPU: Remove manual selection for atomic fadd

Petar Avramovic via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 29 09:00:05 PDT 2022


Petar.Avramovic added inline comments.


================
Comment at: llvm/lib/Target/AMDGPU/FLATInstructions.td:1266
 
-  let AddedComplexity = 13 in
-  def : GlobalAtomicSaddrPat<!cast<FLAT_Pseudo>(inst#"_SADDR"), noRtnNode, vt, data_vt>;
+  let AddedComplexity = 10 in
+  def : FlatSignedAtomicPatBase<!cast<FLAT_Pseudo>(inst#"_RTN"), rtnNode, vt, data_vt>;
----------------
these added complexity numbers are calculated by refactoring. Although I think it would be enough to have AddedComplexity = 1 on nortn patterns since they no longer have a way to get higher complexity then ret pattern (we no longer use complex patterns for no ret checks).
Is there some desired precedence for regular vs saddr pattern?


================
Comment at: llvm/lib/Target/AMDGPU/FLATInstructions.td:1459
+let OtherPredicates = [HasAtomicPkFaddNoRtnInsts] in {
+defm : GlobalFLATAtomicPatsNoRtnBase <"GLOBAL_ATOMIC_PK_ADD_F16", atomic_load_fadd_v2f16_global_noret_32, v2f16>;
+defm : GlobalFLATAtomicIntrPatsNoRet <"GLOBAL_ATOMIC_PK_ADD_F16", "int_amdgcn_global_atomic_fadd", v2f16>;
----------------
Strange name: atomic_load_fadd_v2f16_global_noret_32.


================
Comment at: llvm/lib/Target/AMDGPU/SIISelLowering.cpp:12737
         Subtarget->hasAtomicFaddNoRtnInsts()) {
-      if (Subtarget->hasGFX940Insts())
+      if (Subtarget->hasGFX940Insts() || AMDGPU::isGFX11(*Subtarget))
         return AtomicExpansionKind::None;
----------------
I wanted to avoid lowering for gfx11, I am not sure if this is the correct place.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D130579/new/

https://reviews.llvm.org/D130579



More information about the llvm-commits mailing list