https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80481
Vladimir Makarov <vmakarov at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |vmakarov at gcc dot gnu.org --- Comment #2 from Vladimir Makarov <vmakarov at gcc dot gnu.org> --- I've started to work on this. The problem is not in LRA. It is driven by IRA decision which assigns different registers to pseudos should be the same in fma_fnmadd_v16sf. This results in generation of the additional move insns. IRA is driven by many heuristics which sometimes contradict each other and for this particular case the result is not good. I'll try to find what heuristics are responsible for this. As heuristics affect the generated code performance, the fix might take a lot of time because besides patch creation the fix will need a performance evaluation probably on a few targets.