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

            Bug ID: 69765
           Summary: [SH] Addidional reg copies when compiling with LRA
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: rtl-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: olegendo at gcc dot gnu.org
                CC: kkojima at gcc dot gnu.org, vmakarov at gcc dot gnu.org
  Target Milestone: ---
            Target: sh*-*-*

Compiling the following code

double _Complex foo(double _Complex arg);
double _Complex bar(double _Complex arg) { return foo(arg); }

with -O2 -m2 -mb -mno-lra:

_bar:
        mov.l   .L2,r0
        jmp     @r0
        nop
.L3:
        .align 2
.L2:
        .long   _foo

and with -O2 -m2 -mb -mlra:

_bar:
        mov     r4,r0
        mov     r0,r4
        mov.l   .L2,r0
        mov     r5,r1
        mov     r6,r2
        mov     r7,r3
        mov     r1,r5
        mov     r2,r6
        jmp     @r0
        mov     r3,r7
.L3:
        .align 2
.L2:
        .long   _foo

Reply via email to