See testsuite/gcc.dg/vect/pr27151.c:

float vs_data[75];
void vis_clear_data ()
{
  int vis_type, i;
  for (i = 0; i < 75; i++)
    {
      vs_data[i] = (vis_type == 1);
    }
}

the loop is not vectorized because the COND_EXPRs condition has a different
type than the COND_EXPRs true/false results.

See also http://gcc.gnu.org/ml/gcc-patches/2006-05/msg00255.html for
more analysis on this problem.


-- 
           Summary: Does not vectorize statements with mixed type COND_EXPRs
           Product: gcc
           Version: 4.2.0
            Status: UNCONFIRMED
          Keywords: missed-optimization
          Severity: normal
          Priority: P3
         Component: tree-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: rguenth at gcc dot gnu dot org
OtherBugsDependingO 27151
             nThis:


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27460

Reply via email to