g++ ICEs when compiling valid SSE code using intrinsics. The code compiles correctly if either, the optimisation level is -O0 or the line '_mm_store_ps(pDataIn, accum);' is removed (line 30 in main.cpp).
/opt/gcc-3.4.3/bin/g++-3.4 -O2 -march=pentium4 -save-temps -Wall -c main.cpp main.cpp: In function `void SSEFunc(float*, float*)': main.cpp:16: warning: 'accum' might be used uninitialized in this function main.cpp:33: internal compiler error: in immed_double_const, at emit-rtl.c:481 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. GCC build: Reading specs from /opt/gcc-3.4.3/lib/gcc/i686-pc-linux-gnu/3.4.3/specs Configured with: ../configure --prefix=/opt/gcc-3.4.3 --program-suffix=-3.4 --enable-threads --with-tune=pentium4 --enable-languages=c,c++ Thread model: posix gcc version 3.4.3 -- Summary: ICE when compiling SSE intrinics Product: gcc Version: 3.4.3 Status: UNCONFIRMED Severity: normal Priority: P2 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: m dot broadbent at signal dot qinetiq dot com CC: gcc-bugs at gcc dot gnu dot org GCC build triplet: i686-pc-linux-gnu GCC host triplet: i686-pc-linux-gnu GCC target triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20051