<html><body>
<p><font size="2" face="sans-serif">Hi,</font><br>
<br>
<font size="2" face="sans-serif">I propose to override the TLI callback enableAggressiveFMAFusion for the NVPTX backend and return true instead of false. The reason is the same as for PPC: fmul, fmadd and fadd nodes cost the same number of cycles (see </font><a href="http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#arithmetic-instructions"><font size="2" face="sans-serif">http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#arithmetic-instructions</font></a><font size="2" face="sans-serif">)</font><font size="2" face="sans-serif">, so we can enable more combining heuristics to produce more FMAs. For instance, this pattern would be considered:</font><br>
<br>
<font size="2" face="sans-serif">// fold (fadd (fma x, y, (fmul u, v)), z) -> (fma x, y (fma u, v, z))</font><br>
<br>
<font size="2" face="sans-serif">cf. commits:</font><br>
<a href="http://llvm.org/viewvc/llvm-project?view=revision&revision=218120"><font size="2" face="sans-serif">http://llvm.org/viewvc/llvm-project?view=revision&revision=218120</font></a><br>
<a href="http://llvm.org/viewvc/llvm-project?view=revision&revision=225380"><font size="2" face="sans-serif">http://llvm.org/viewvc/llvm-project?view=revision&revision=225380</font></a><br>
<br>
<font size="2" face="sans-serif">Please tell me what you think.</font><br>
<br>
<font size="2" face="sans-serif">Olivier</font></body></html>