------- Comment #2 from dorit at gcc dot gnu dot org 2007-09-04 11:44 ------- (In reply to comment #1) > Confirmed. It looks like the vectorizer forgets to update the PHI node for > stmp_var:
yes. I suspect I didn't expect at the time that there would be two loop-closed-ssa-form phi-nodes at the loop exit for s_3, so I probably update just one of them (s_10) and not the other (s_4). This is how it looks before vectorization: <bb 7>: # s_4 = PHI <s_3(3)> # s_10 = PHI <s_3(3)> D.1368_15 = *x_14(D); if (D.1368_15 < 0.0) goto <bb 8>; else goto <bb 9>; <bb 8>: s_16 = -s_10; <bb 9>: # s_1 = PHI <s_4(7), s_16(8)> return s_1; I'll prepare a fix. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33299