Hello! > 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.
> 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. Attached patch also fixes AVX failures. 2012-04-20 Uros Bizjak <ubiz...@gmail.com> * gcc.target/x86_64/abi/avx/test_passing_unions.c: Avoid undefined array access. * gcc.target/x86_64/abi/avx/test_passing_structs.c: Likewise. Tested on x86_64-pc-linux-gnu AVX target, committed to mainline SVN. Uros.
Index: gcc.target/x86_64/abi/avx/test_passing_structs.c =================================================================== --- gcc.target/x86_64/abi/avx/test_passing_structs.c (revision 186624) +++ gcc.target/x86_64/abi/avx/test_passing_structs.c (working copy) @@ -53,7 +53,7 @@ clear_struct_registers; for (i = 0; i < 8; i++) - fregs.ymm0._m256[i] = m256s[i].x; + (&fregs.ymm0)[i]._m256[0] = m256s[i].x; num_fregs = 8; WRAP_CALL (check_struct_passing1)(m256s[0], m256s[1], m256s[2], m256s[3], m256s[4], m256s[5], m256s[6], m256s[7]); Index: gcc.target/x86_64/abi/avx/test_passing_unions.c =================================================================== --- gcc.target/x86_64/abi/avx/test_passing_unions.c (revision 186624) +++ gcc.target/x86_64/abi/avx/test_passing_unions.c (working copy) @@ -113,7 +113,7 @@ clear_struct_registers; for (i = 0; i < 8; i++) - fregs.ymm0._m256[i] = u1[i].x; + (&fregs.ymm0)[i]._m256[0] = u1[i].x; num_fregs = 8; check_union_passing1(u1[0], u1[1], u1[2], u1[3], u1[4], u1[5], u1[6], u1[7]); @@ -122,7 +122,7 @@ for (i = 0; i < 8; i++) { u2[i].x = u1[i].x; - fregs.ymm0._m256[i] = u2[i].x; + (&fregs.ymm0)[i]._m256[0] = u2[i].x; } num_fregs = 8; check_union_passing2(u2[0], u2[1], u2[2], u2[3], @@ -132,7 +132,7 @@ for (i = 0; i < 8; i++) { u3[i].x = u1[i].x; - fregs.ymm0._m256[i] = u3[i].x; + (&fregs.ymm0)[i]._m256[0] = u3[i].x; } num_fregs = 8; check_union_passing3(u3[0], u3[1], u3[2], u3[3],