[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