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.