http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57223
--- Comment #5 from Marc Glisse <glisse at gcc dot gnu.org> --- (In reply to Usishchev Yury from comment #3) > I'm testing it on current trunk, and second loop is not vectorized both with > floating point and integer types. > For floating point types it is not vectorized due to control flow in loop: > > <bb 15>: > // ... > if (t_56 > _61) > goto <bb 16>; > else > goto <bb 17>; > <bb 16>: > <bb 17>: > # iftmp.2_7 = PHI <_61(16), t_56(15)> > > This can be optimized to MIN_EXPR in phiopt pass, but is not because of NaNs: Even without MIN_EXPR, ifcvt should turn this into a COND_EXPR that can be vectorized, no?