This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug tree-optimization/57206] Auto-vectorization fails when array index is an unsigned int expression


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57206

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2013-05-08
             Blocks|                            |53947
     Ever Confirmed|0                           |1

--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> 2013-05-08 13:22:27 UTC ---
That's because we cannot compute the evolution of _7

  <bb 4>:
  # n_14 = PHI <n_11(5), n_3(D)(3)>
  _5 = n_3(D) - n_14;
  _6 = (long unsigned int) _5;
  _7 = _6 * 4;
  _9 = d_8(D) + _7;
  *_9 = 0.0;

(set_scalar_evolution
  instantiated_below = 3
  (scalar = _6)
  (scalar_evolution = (long unsigned int) {0, +, 1}_1))
)

because 4 * (long unsigned int) {0, +, 1}_1 is not affine and we
fail to prove that  _5 = n_3(D) - n_14; does not wrap.

All kind-of side-effects of us forcing the offset operand of POINTER_PLUS_EXPR
to be sizetype and to perform the array index * array element size computation
in that type.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]