[Bug optimization/14559] New: casts between vector pointer types are very slow

michaelni at gmx dot at gcc-bugzilla@gcc.gnu.org
Fri Mar 12 17:38:00 GMT 2004


see attached trivial code (return *(mmxdw*)&w;) 
 
gcc  testyy.c -O3 -mtune=pentium3 -march=pentium3 -fomit-frame-pointer 
generates: 
test: 
        subl    $20, %esp 
        movl    24(%esp), %eax 
        movq    %mm0, 8(%esp) 
        movl    8(%esp), %ecx 
        movl    12(%esp), %edx 
        movl    %ecx, (%esp) 
        movl    %edx, 4(%esp) 
        movq    (%esp), %mm0 
        movq    %mm0, (%eax) 
        addl    $20, %esp 
        ret     $4 
 
human generator: 
        movl    4(%esp), %eax 
        movq    %mm0, (%eax) 
        ret     $4 
 
additionally note, that reading after writing from the same address with a 
different size may cause partial memory stalls

-- 
           Summary: casts between vector pointer types are very slow
           Product: gcc
           Version: 3.4.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: michaelni at gmx dot at
                CC: gcc-bugs at gcc dot gnu dot org
  GCC host triplet: pentium3-debian-linux
GCC target triplet: pentium3-debian-linux


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



More information about the Gcc-bugs mailing list