[Bug target/43225] New: Structure copies not vectorized
astrange at ithinksw dot com
gcc-bugzilla@gcc.gnu.org
Tue Mar 2 04:24:00 GMT 2010
Source:
#include <emmintrin.h>
struct a1 { char l[16];};
struct a2 { __m128i l; };
void f1(struct a1 *a, struct a1 *b)
{
*a = *b;
}
void f2(struct a2 *a, struct a2 *b)
{
*a = *b;
}
> /usr/local/gcc45/bin/gcc -O3 -fomit-frame-pointer -S copy_gcc.c
_f1:
movq (%rsi), %rax
movq %rax, (%rdi)
movq 8(%rsi), %rax
movq %rax, 8(%rdi)
ret
_f2:
movdqa (%rsi), %xmm0
movdqa %xmm0, (%rdi)
ret
Both are appropriately aligned and should use movdqa. This might not show up in
generic code, but I could have used it in an ffmpeg optimization.
--
Summary: Structure copies not vectorized
Product: gcc
Version: 4.5.0
Status: UNCONFIRMED
Severity: enhancement
Priority: P3
Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: astrange at ithinksw dot com
GCC host triplet: x86_64-*-*
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43225
More information about the Gcc-bugs
mailing list