[Bug tree-optimization/43434] Missed vectorization: "not vectorized: data ref analysis": pointer incremented by a parameter
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Feb 12 12:29:00 GMT 2016
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.
More information about the Gcc-bugs
mailing list