[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