http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51955
Bug #: 51955
Summary: _mm_setzero_si128 intri causes segfault without -O
Classification: Unclassified
Product: gcc
Version: 4.6.2
Status: UNCONFIRMED
Severity: major
Priority: P3
Component: c
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: graphi...@gmail.com
Created attachment 26419
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26419
gcc -v -save-temps output
There seems to be an issue in respect to the _mm_setzero_si128() intrinsic in
using the following __m128i xmm0 = _mm_setzero_si128(); causes a segmentation
fault. GDB reports the following
Program received signal SIGSEGV, Segmentation fault.
0x00400631 in _mm_setzero_si128 () at
/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.2/include/emmintrin.h:734
734 return __extension__ (__m128i)(__v4si){ 0, 0, 0, 0 };
The bug seems to dissapear when optimization levels 1,2,3 are used.
The compiler flags I'm using:
-Wall -nostdlib -std=c99 -fno-builtin -ffreestanding -pedantic-errors
GCC version and specs are below:
gcc -v:
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.2/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: /build/src/gcc-4.6-20111223/configure --prefix=/usr
--libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man
--infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/
--enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ --enable-shared
--enable-threads=posix --with-system-zlib --enable-__cxa_atexit
--disable-libunwind-exceptions --enable-clocale=gnu --enable-gnu-unique-object
--enable-linker-build-id --with-ppl --enable-cloog-backend=isl --enable-lto
--enable-gold --enable-ld=default --enable-plugin --with-plugin-ld=ld.gold
--enable-multilib --disable-libssp --disable-libstdcxx-pch
--enable-checking=release --with-fpmath=sse
Thread model: posix
gcc version 4.6.2 20111223 (prerelease) (GCC)
uname -a:
Linux (graphitemaster) 3.1.9-2-ARCH #1 SMP PREEMPT Sat Jan 14 09:11:37 CET 2012
x86_64 AMD Phenom(tm) AuthenticAMD GNU/Linux
attached is the gcc -v -save-temps output