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

--- Comment #8 from Richard Biener <rguenth at gcc dot gnu.org> ---
Now that strided SLP is implemented we run into

t.c:10:3: note: versioning for alias required: can't determine dependence
between *s1_82 and MEM[(DCTELEM *)block_81 clique 1 base 1]
t.c:10:3: note: mark for run-time aliasing test between *s1_82 and *block_81
t.c:10:3: note: versioning not yet supported for non-constant step
t.c:10:3: note: bad data dependence.

that's because our restrict support doesn't yet handle this case.  Oops.

With that fixed we get the loop in diff_pixels_c vectorized.

For the loop in pix_sum_c our cost model decides that vectorization is not
profitable:

t.c:39:3: note: Cost model analysis:
  Vector inside of loop cost: 53
  Vector prologue cost: 1
  Vector epilogue cost: 5
  Scalar iteration cost: 48
  Scalar outside cost: 0
  Vector outside cost: 6
  prologue iterations: 0
  epilogue iterations: 0
t.c:39:3: note: cost model: the vector iteration cost = 53 divided by the
scalar iteration cost = 48 is greater or equal to the vectorization factor = 1.

the inner loop is already unrolled before vectorization.

Reply via email to