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.

Reply via email to