So, a patch of mine runs into the following testsuite issues. Fixed with the following patch, tested on x86_64-unknown-linux-gnu and committed.
Richard. 2012-04-18 Richard Guenther <rguent...@suse.de> * gcc.target/x86_64/abi/test_passing_unions.c: Avoid undefined array access. * gcc.target/x86_64/abi/test_passing_structs.c: Likewise. * gcc.target/i386/avx256-unaligned-load-4.c: Fix array sizes. Index: gcc/testsuite/gcc.target/x86_64/abi/test_passing_unions.c =================================================================== *** gcc/testsuite/gcc.target/x86_64/abi/test_passing_unions.c (revision 186528) --- gcc/testsuite/gcc.target/x86_64/abi/test_passing_unions.c (working copy) *************** main (void) *** 206,212 **** for (i = 0; i < 8; i++) { u4[i].x = (__m128){32+i, 0, i, 0}; ! fregs.xmm0._m128[i] = u4[i].x; } num_fregs = 8; clear_float_hardware_registers; --- 206,212 ---- for (i = 0; i < 8; i++) { u4[i].x = (__m128){32+i, 0, i, 0}; ! (&fregs.xmm0)[i]._m128[0] = u4[i].x; } num_fregs = 8; clear_float_hardware_registers; Index: gcc/testsuite/gcc.target/x86_64/abi/test_passing_structs.c =================================================================== *** gcc/testsuite/gcc.target/x86_64/abi/test_passing_structs.c (revision 186528) --- gcc/testsuite/gcc.target/x86_64/abi/test_passing_structs.c (working copy) *************** main (void) *** 216,222 **** for (i = 0; i < 8; i++) { m128s[i].x = (__m128){32+i, 0, i, 0}; ! fregs.xmm0._m128[i] = m128s[i].x; } num_fregs = 8; clear_float_hardware_registers; --- 216,222 ---- for (i = 0; i < 8; i++) { m128s[i].x = (__m128){32+i, 0, i, 0}; ! (&fregs.xmm0)[i]._m128[0] = m128s[i].x; } num_fregs = 8; clear_float_hardware_registers; Index: gcc/testsuite/gcc.target/i386/avx256-unaligned-load-4.c =================================================================== *** gcc/testsuite/gcc.target/i386/avx256-unaligned-load-4.c (revision 186528) --- gcc/testsuite/gcc.target/i386/avx256-unaligned-load-4.c (working copy) *************** *** 3,9 **** #define N 1024 ! float a[N], b[N+3]; void avx_test (void) --- 3,9 ---- #define N 1024 ! float a[N+3], b[N]; void avx_test (void)