<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/97554>97554</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
AMDGPUAtomicOptimizer: re-enable uniform path for fadd/fsub with result
</td>
</tr>
<tr>
<th>Labels</th>
<td>
backend:AMDGPU
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
jayfoad
</td>
</tr>
</table>
<pre>
See #96479: the uniform path for fadd/fsub was disabled because it can return the wrong value in the first active lane of the result in the presence of NaNs and signed zeros.
We should find a way to fix and re-enable it, e.g. by overwriting the first active lane of `%y * +0.0` with -0.0. And maybe this can be optimized more if certain values are known not to be zero or nan.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx8Uk1v2zAM_TXyhYjByh-ZDz64K7LTugHDsDNl0TZbWwokOVn66wc7HXraLhIgkk_vPT6KUUbH3KrqUVVPGa1p8qF9odvgyWbG21v7gxmULpq6PDaq6CBNDKuTwYcFzpQmGHyAgaxV-jTE1cCVIliJZGa2YLinNTJIgp4cBE5rcDvGNXg3woXmlUHuT4OEmID6JBeGmRyDH_ZC4LjO6W_bOXBk1-_VZ3qOQM7CLsTCGwcfc4VPCrv7-YshTn6dLQziLBBc6QbJwyC_98HAB3YbWZCk9GfgfMzB3MBfOFyDJHHjv8mpGpWubqB0B0o_Yo6qRrhKmuCAOebQOQsL3QxDmiTuHhgGf06yyBtbWHxgkAF6DonE3f2IQIHh1fmrA-fTxtbwLg18AEcuz2xb2KZoKOP24agRsdClzqa2LrEiQ1VVFvWn_gGboT4WjNpQj0iFyaTVqEs8YvGAJZY6t7VBO_QGTWOxrFCVyAvJnM_zZcl9GDOJceW2OVZVmc1keI57XvQG-srOqqLrvj59-f5Tab2lKLTb6MGsY1QlzhJT_ABLkmZu7_1d8ov0397NCFu6Prbx_4xtDt9Tka1hbqeUzlEVndInpU-jpGk1ee8XpU_bz-_X4Rz8C_dJ6dOuKSp9usu6tPpPAAAA___8YwGg">