[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