https://gcc.gnu.org/bugzilla/show_bug.cgi?id=127129
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |rguenth at gcc dot gnu.org,
| |tnfchris at gcc dot gnu.org
Priority|P3 |P2
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
t.c:5:13: note: Symbolic number of iterations is -(unsigned long) dc_6(D)
/[ex] 2 + 1
t.c:5:13: note: Loop to be versioned with niter assumption ((unsigned long)
dc_6(D) & 1) == 0
...
t.c:5:25: missed: versioning for alias required: can't determine dependence
between *sc_8(D) and *dc_3
consider run-time aliasing test between *sc_8(D) and *dc_3
t.c:5:13: note: === vect_prune_runtime_alias_test_list ===
merged alias checks:
reference: *sc_8(D) vs. *dc_3
segment length: 0 vs. -(sizetype) dc_6(D)
access size: 1 vs. 2
alignment: 1 vs. 2
flags: WAR
t.c:5:13: note: improved number of alias checks from 1 to 1
so possibly an niter issue and/or bad interaction with early break
vectorization.
generated runtime tests are
_19 = (unsigned long) dc_6(D);
_20 = _19 & 1;
_21 = _20 == 0;
_22 = _21;
_23 = sc_8(D) + 1;
_24 = dc_6(D) >= _23;
_25 = (sizetype) dc_6(D);
_26 = 2 - _25;
_27 = dc_6(D) + _26;
_28 = sc_8(D) >= _27;
_29 = _24 | _28;
_30 = _22 & _29;
if (_30 != 0)
goto <bb 11>; [89.44%]
else
goto <bb 12>; [10.56%]