With revision 144357, I got FAIL: gcc.target/i386/avx-set-v4di-4.c (internal compiler error) FAIL: gcc.target/i386/avx-set-v4di-4.c (test for excess errors) FAIL: gcc.target/i386/avx-set-v4di-5.c (internal compiler error) FAIL: gcc.target/i386/avx-set-v4di-5.c (test for excess errors) bash-3.2$ cat /tmp/x.c typedef long long __m256i __attribute__ ((__vector_size__ (32), __may_alias__)); __m256i foo (long long x) { return (__m256i) {0, x, 0, 0}; } __m256i bar (long long x) { return (__m256i) {1, x, 1, 1}; } bash-3.2$ ./xgcc -B./ -S -O2 -mavx /tmp/x.c -m32 /tmp/x.c: In function ‘foo’: /tmp/x.c:7: error: unrecognizable insn: (insn 8 7 9 3 /tmp/x.c:5 (set (reg:V2DI 61) (vec_merge:V2DI (vec_duplicate:V2DI (reg/v:DI 59 [ x ])) (reg:V2DI 61) (const_int 2 [0x2]))) -1 (nil)) /tmp/x.c:7: internal compiler error: in extract_insn, at recog.c:2038 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. bash-3.2$
A patch is posted at http://gcc.gnu.org/ml/gcc-patches/2009-02/msg01004.html
Subject: Bug 39261 Author: hjl Date: Sun Feb 22 00:44:23 2009 New Revision: 144366 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=144366 Log: 2008-02-21 H.J. Lu <hongjiu.lu@intel.com> PR target/39261 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use ix86_expand_vector_set for V4DImode in 64bit mode only. (ix86_expand_vector_init_one_var): Likewise. Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/i386.c
Fixed.