[Bug target/62631] gcc.dg/tree-ssa/ivopts-lt-2.c FAILs
amker at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Feb 6 07:22:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62631
--- Comment #20 from amker at gcc dot gnu.org ---
(In reply to Eric Botcazou from comment #19)
> > The assembly is as below on sparc64:
> > f1:
> > .register %g2, #scratch
> > sllx %o1, 2, %g1
> > mov 99, %g2
> > add %o0, %g1, %o0
> > sub %g2, %o1, %o1
> > srl %o1, 0, %g1
> > add %g1, 1, %g1
> > sllx %g1, 2, %g1
> > add %o0, %g1, %g1
> > st %g0, [%o0]
> > .LL5:
> > add %o0, 4, %o0
> > cmp %o0, %g1
> > blu,a,pt %xcc, .LL5
> > st %g0, [%o0]
> > jmp %o7+8
> > nop
>
> How did you configure the compiler? We're talking about 64-bit
> SPARC/Solaris and here's the code actually generated for the time being:
>
> .type f1, #function
> .proc 020
> f1:
> sllx %o1, 2, %g1
> add %o0, %g1, %o0
> .LL2:
> st %g0, [%o0]
> add %o1, 1, %g1
> add %o0, 4, %o0
> cmp %g1, 99
> bleu,pt %icc, .LL2
> srl %g1, 0, %o1
> jmp %o7+8
> nop
>
> so it is still suboptimal, hence my generic fix.
Ouch, my bad. That code is generated because I forced gcc to do the iv
replacement by decreasing the cost. The trunk generates assembly just like
yours.
Thanks.
More information about the Gcc-bugs
mailing list