https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117248

--- Comment #20 from John David Anglin <danglin at gcc dot gnu.org> ---
It appears I again forgot to add -mlra to the compile command.

The problem is clear in the generated assembly code:

        extrs %r5,31,16,%r26
        extrs %r24,31,16,%r7
        copy %r7,%r25
        .IMPORT $$divI,MILLICODE
        bl $$divI,%r31
        nop
        stws %r29,-16(%sp)
        fldws -16(%sp),%fr10R
        copy %r7,%r25
        bl $$remI,%r31
        nop

The first millicode call to $$divI clobbers r1, r25, r26 and r31.  r25
and r26 are the input arguments.  The same is true for the call to $$remI.
But the instruction to set r26 is dropped during reload:

deleting insn with uid = 341.

Reply via email to