https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78396

            Bug ID: 78396
           Summary: [7 regression] gcc.dg/vect/bb-slp-cond-1.c FAILs after
                    fix for PR77848
           Product: gcc
           Version: 7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: wschmidt at gcc dot gnu.org
  Target Milestone: ---

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77848 identified a case where
if-conversion modified a loop that was not subsequently vectorized, with the
resulting code being significantly worse than without if-conversion.  Since
if-conversion has no cost model, this was resolved by requiring loop versioning
for all if-converted loops unless if-conversion was specifically requested.

There was one bit of fallout from this, as gcc.dg/vect/bb-slp-cond-1.c now
fails.  This test expected if-converted input that the BB vectorizer would be
able to handle after the loop vectorizer failed on it.

There are two ways this can be resolved:
 - Improve the data dependence analysis in the loop vectorizer; or
 - Teach the basic block vectorizer to if-convert PHIs in otherwise
straight-line code.

Reply via email to