[llvm] [AMDGPU] Disable atomic optimization of fadd/fsub with result (PR #96479)
Jay Foad via llvm-commits
llvm-commits at lists.llvm.org
Thu Jul 4 02:09:54 PDT 2024
================
@@ -224,7 +224,14 @@ void AMDGPUAtomicOptimizerImpl::visitAtomicRMWInst(AtomicRMWInst &I) {
return;
}
- const bool ValDivergent = UA->isDivergentUse(I.getOperandUse(ValIdx));
+ bool ValDivergent = UA->isDivergentUse(I.getOperandUse(ValIdx));
+
+ if ((Op == AtomicRMWInst::FAdd || Op == AtomicRMWInst::FSub) &&
+ !I.use_empty()) {
+ // Disable the uniform return value calculation using fmul because it
+ // mishandles infinities, NaNs and signed zeros. FIXME.
+ ValDivergent = true;
----------------
jayfoad wrote:
Yes
https://github.com/llvm/llvm-project/pull/96479
More information about the llvm-commits
mailing list