------- Comment #13 from hubicka at gcc dot gnu dot org  2006-05-09 11:59 
-------
The simplified testcase seems to be solved now (on mainline and Athlon):
[EMAIL PROTECTED]:/aux/hubicka/gcc/build/gcc$ gcc-2.95 -O3 t.C -march=i686  
[EMAIL PROTECTED]:/aux/hubicka/gcc/build/gcc$ ./a.out
[EMAIL PROTECTED]:/aux/hubicka/gcc/build/gcc$ time ./a.out

real    0m1.809s
user    0m1.798s
sys     0m0.000s
[EMAIL PROTECTED]:/aux/hubicka/gcc/build/gcc$ time ./a.out

real    0m1.841s
user    0m1.796s
sys     0m0.002s
[EMAIL PROTECTED]:/aux/hubicka/gcc/build/gcc$ /aux/hubicka/egcs-mainline/bin/g++
 -O3 t.C -static  -march=i686  
[EMAIL PROTECTED]:/aux/hubicka/gcc/build/gcc$ time ./a.out

real    0m1.713s
user    0m1.676s
sys     0m0.003s
[EMAIL PROTECTED]:/aux/hubicka/gcc/build/gcc$ time ./a.out

real    0m1.719s
user    0m1.700s
sys     0m0.000s
[EMAIL PROTECTED]:/aux/hubicka/gcc/build/gcc$ /aux/hubicka/egcs-mainline/bin/g++
 -O3 t.C -static  -march=athlon
[EMAIL PROTECTED]:/aux/hubicka/gcc/build/gcc$ time ./a.out
real    0m1.353s
user    0m1.347s
sys     0m0.002s
[EMAIL PROTECTED]:/aux/hubicka/gcc/build/gcc$ 

The assembly looks comparable to 2.95 one (instruction count wise, form is
closer to 4.0)
.L29:
        andl    $-16, %edx
        cmpb    $80, %dl
        jne     .L27
        decl    %ecx
        je      .L28
.L18:
        movl    $86, %edx
        movb    $86, b_rec
        movl    %edx, %eax
        andl    $7, %eax
        cmpb    $6, %al
        je      .L29
.L27:
        call    abort


Since no direct testcase for code in comment 5 is attached, can I ask if the
problem presist with generic model?  It looks like the benchmark was executed
on different core than i686 but compiled with i686.  With generic we should now
assume the partial memory stores and thus avoid the integer moves by halves of
destination.

Honza


-- 

hubicka at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |WAITING


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22563

Reply via email to