tried on snapshot 3.4-20040414 but exists since 3.4-20040218 3.3.2 20040108 (Red Hat Linux 3.3.2-6) is OK CVS HEAD from 3.5 is OK ICE is: gcc_snapshot/build/bin/gcc -v -save-temps -O1 -S -msse2 -mfpmath=sse v2dfxor3.c ... /beatle/home1/sw/gcc_snapshot/build/libexec/gcc/i686-pc-linux-gnu/3.4.0/cc1 -fpreprocessed v2dfxor3.i -quiet -dumpbase v2dfxor3.c -msse2 -mfpmath=sse -mtune=pentiumpro -auxbase v2dfxor3 -O1 -version -o v2dfxor3.s GNU C version 3.4.0 20040414 (prerelease) (i686-pc-linux-gnu) compiled by GNU C version 3.3.2 20040108 (Red Hat Linux 3.3.2-6). GGC heuristics: --param ggc-min-expand=64 --param ggc-min-heapsize=64266 v2dfxor3.c: In function `xorv2df3': v2dfxor3.c:10: 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. it is caused by immed_double_const() mistakenly been called by simplify_immed_subreg(). the latter is not ready to take TImode in outer_class ... the test is not worth an attachment: #include <emmintrin.h> __v2df res; void xorv2df3(double *x) { __v2df temp0={x[0],x[1]}; __v2df temp1={0x0, 0x0}; res = _mm_xor_pd(temp0, temp1); }
This is a dup of bug 14981. *** This bug has been marked as a duplicate of 14981 ***