http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57223
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2013-09-26 Ever confirmed|0 |1 --- Comment #6 from Richard Biener <rguenth at gcc dot gnu.org> --- (In reply to Marc Glisse from comment #5) > (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? I think it is. Both loops are vectorized with -O3 -fno-tree-pre and test_t == float on x86_64. Confirmed for the PRE issue.