------- Comment #26 from rguenth at gcc dot gnu dot org 2010-07-07 14:48 ------- The first difference appears in .093t.pre (comparing -nouid dumps):
cat ii386.3.3.i.gk.094t.pre | grep -v '# DEBUG' | diff -u ii386.3.3.i.094t.pre - | less void _ZL31ix86_expand_vector_init_generalb12machine_modeP7rtx_defS1_.isra.0(boo l, machine_mode, rtx, rtvec_def**) (bool mmx_ok, machine_mode mode, struct rtx_d ef * target, struct rtvec_def * * ISRA.45) { - int pretmp.167; struct rtvec_def * pretmp.166; int pretmp.165; struct rtvec_def * pretmp.164; @@ -4625,11 +4624,11 @@ goto <bb 8>; <bb 44>: - pretmp.166_99 = *ISRA.45_147(D); + pretmp.166_11 = *ISRA.45_147(D); <bb 7>: # i_173 = PHI <i_13(46), 0(44)> - D.xxxx_10 = pretmp.166_99; + D.xxxx_10 = pretmp.166_11; D.xxxx_12 = D.xxxx_10->elem[i_173]; ops[i_173] = D.xxxx_12; i_13 = i_173 + 1; where we have differences in assigned value-numbers and walk SCCs in a different oder. SCC consists of: i_172 i_21 vs. SCC consists of: i_173 i_13 thus I think we have to look for an instability in the SCC walker. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44832