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

Oleg Endo <olegendo at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever confirmed|0                           |1
   Last reconfirmed|                            |2024-09-26

--- Comment #5 from Oleg Endo <olegendo at gcc dot gnu.org> ---
(In reply to Oleg Endo from comment #4)
> (In reply to Kazumoto Kojima from comment #2)
> > 
> > void
> > foo (float mat[])
> > {
> >   float *p = &mat[16];
> > 
> >   *--p = 0.0;  *--p = 0.0;  *--p = 0.0;  *--p = 0.0;
> >   *--p = 0.0;  *--p = 0.0;  *--p = 0.0;  *--p = 0.0;
> > }
> > 
> 
> I've just checked this example on the AMS branch..
> 
> Without AMS (compiled with -m4-single -ml -O2):
> 
> _foo:
>         mov     r4,r1
>         add     #60,r1
>         fldi0   fr1
>         add     #32,r4
>         fmov.s  fr1,@r1
>         add     #-4,r1
>         fmov.s  fr1,@r1
>         add     #-4,r1
>         fmov.s  fr1,@r1
>         add     #-4,r1
>         fmov.s  fr1,@r1
>         add     #-4,r1
>         fmov.s  fr1,@r1
>         add     #-4,r1
>         fmov.s  fr1,@r1
>         add     #-4,r1
>         fmov.s  fr1,@r1
>         rts   
>         fmov.s  fr1,@r4
> 

It seems this case got even worse at some point.
Trying on the GCC-15 branch https://github.com/olegendo/gcc/tree/devel/sh-lra
gives:

        mov     r4,r1
        add     #60,r1
        fldi0   fr1
        fmov.s  fr1,@r1
        mov     r4,r1
        add     #56,r1
        fmov.s  fr1,@r1
        mov     r4,r1
        add     #52,r1
        fmov.s  fr1,@r1
        mov     r4,r1
        add     #48,r1
        fmov.s  fr1,@r1
        mov     r4,r1
        add     #44,r1
        fmov.s  fr1,@r1
        mov     r4,r1
        add     #40,r1
        fmov.s  fr1,@r1
        mov     r4,r1
        add     #36,r1
        fmov.s  fr1,@r1
        add     #32,r4
        rts
        fmov.s  fr1,@r4

Reply via email to