[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: