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%]

Reply via email to