Bug#680776: gcc-4.7: does not use aligned load
Package: gcc-4.7
Version: 4.7.1-2
Severity: normal
Tags: upstream
Gcc uses unaligned load instruction movdqu even if aligned load movdqa
was requested and data are aligned.
An example follows
#include <emmintrin.h>
__m128i x(char *s){
__m128i sz,z,mvec;
s-=((unsigned long) s)%16;
sz=_mm_load_si128(s);
return sz;
}
and output of gcc -O3 -S
.file "int.c"
.text
.p2align 4,,15
.globl x
.type x, @function
x:
.LFB517:
.cfi_startproc
movq %rdi, %rax
andl $15, %eax
negq %rax
movdqu (%rdi,%rax), %xmm0
ret
.cfi_endproc
.LFE517:
.size x, .-x
.ident "GCC: (Debian 4.7.1-2) 4.7.1"
.section .note.GNU-stack,"",@progbits
-- System Information:
Debian Release: wheezy/sid
APT prefers unstable
APT policy: (500, 'unstable'), (500, 'stable')
Architecture: amd64 (x86_64)
Kernel: Linux 3.2.0-2-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF8, LC_CTYPE=en_US.UTF8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages gcc-4.7 depends on:
ii binutils 2.21.52.20110606-2 The GNU assembler, linker and bina
ii cpp-4.7 4.7.1-2 GNU C preprocessor
ii gcc-4.7-base 4.7.1-2 GCC, the GNU Compiler Collection (
ii libc6 2.13-33 Embedded GNU C Library: Shared lib
ii libgcc1 1:4.7.1-2 GCC support library
ii libgmp10 2:5.0.5+dfsg-2 Multiprecision arithmetic library
ii libgomp1 4.7.1-2 GCC OpenMP (GOMP) support library
ii libitm1 4.7.1-2 GNU Transactional Memory Library
ii libmpc2 0.9-4 multiple precision complex floatin
ii libmpfr4 3.1.0-5 multiple precision floating-point
ii libquadmath0 4.7.1-2 GCC Quad-Precision Math Library
ii zlib1g 1:1.2.6.dfsg-2 compression library - runtime
Versions of packages gcc-4.7 recommends:
ii libc6-dev 2.13-33 Embedded GNU C Library: Developmen
Versions of packages gcc-4.7 suggests:
pn binutils-gold <none> (no description available)
pn gcc-4.7-doc <none> (no description available)
pn gcc-4.7-locales <none> (no description available)
pn gcc-4.7-multilib <none> (no description available)
pn libgcc1-dbg <none> (no description available)
pn libgomp1-dbg <none> (no description available)
pn libitm1-dbg <none> (no description available)
pn libmudflap0-4.7-dev <none> (no description available)
pn libmudflap0-dbg <none> (no description available)
pn libquadmath0-dbg <none> (no description available)
-- no debconf information
Reply to: