------- 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

Reply via email to