when the testcase g++.dg/tree-ssa/pr27549.C is compiled with -ftree-vectorize it ICEs with:
Unable to coalesce ssa_names 141 and 280 which are marked as MUST COALESCE. s$b_141(ab) and s$b_280(ab) /Develop/mainline-dn/gcc/gcc/testsuite/g++.dg/tree-ssa/pr27549.C: In function âconst char* foo()â: /Develop/mainline-dn/gcc/gcc/testsuite/g++.dg/tree-ssa/pr27549.C:72: internal compiler error: SSA corruption The testcase is vectorized using versioning-for-aliasing, although it is known at compile time that there is a dependence for sure, so there's no point in testing this at runtime (as pointed out here: http://gcc.gnu.org/ml/gcc-patches/2007-08/msg01211.html). With --param vect-max-version-for-alias-checks=0 the testcase doesn't get vectorized and doesn't ICE. So, Disabling versioning-for-aliasing when it's redundant (like in the above case) would avoid the ICE, but we should probably figure out what is really causing the ICE. (this is how the testcase is compiled: /Develop/mainline-dn/build1/gcc/testsuite/g++/../../g++ -B/Develop/mainline-dn/build1/gcc/testsuite/g++/../../ /Develop/mainline-dn/gcc/gcc/testsuite/g++.dg/tree-ssa/pr27549.C -nostdinc++ -I/Develop/mainline-dn/build1/powerpc64-unknown-linux-gnu/libstdc++-v3/include/powerpc64-unknown-linux-gnu -I/Develop/mainline-dn/build1/powerpc64-unknown-linux-gnu/libstdc++-v3/include -I/Develop/mainline-dn/gcc/libstdc++-v3/libsupc++ -I/Develop/mainline-dn/gcc/libstdc++-v3/include/backward -I/Develop/mainline-dn/gcc/libstdc++-v3/testsuite/util -fmessage-length=0 -O2 -S -m64 -O2 -ftree-vectorize -maltivec -fdump-tree-vect-details -o pr27549.s) -- Summary: ICE with vectorization in Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: dorit at gcc dot gnu dot org GCC build triplet: powerpc-linux GCC host triplet: powerpc-linux GCC target triplet: powerpc-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33319