This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug tree-optimization/57223] Auto-vectorization fails for nested multiple loops depending on type of array


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]