https://gcc.gnu.org/bugzilla/show_bug.cgi?id=5360
Jeffrey A. Law <law at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC|gcc-bugs at gcc dot gnu.org |
--- Comment #7 from Jeffrey A. Law <law at gcc dot gnu.org> ---
For rv64gc this shows an interesting missed LICM case. In particular in the
loop we have:
fld fa3,0(a5)
fmv.d.x fa4,zero
addi a5,a5,8
fnmsub.d fa5,fa3,fa4,fa5
fsd fa5,0(a4)
bne a5,a4,.L4
Register pressure is virtually non-existent and fa4 is not modified in the
loops. So it would be clearly better to pull that fmv.d.x out of the loop
saving an instruction and a transfer from IXU to FXU which often incurrs an
extra cycle penalty as well.