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/32375] not vectorized: can't determine dependence (array sections)


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

--- Comment #8 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-07-16 13:03:10 UTC ---
The issue is that we have

<bb 5>:
  # j_2 = PHI <2(4), j_30(10)>
  pretmp.38_71 = (integer(kind=8)) j_2;
  pretmp.38_72 = stride.2_6 * pretmp.38_71;
  pretmp.38_73 = offset.3_8 + pretmp.38_72;
  pretmp.39_75 = j_2 + -1;
  pretmp.40_76 = (integer(kind=8)) pretmp.39_75;
  pretmp.40_77 = stride.2_6 * pretmp.40_76;
  pretmp.40_78 = offset.3_8 + pretmp.40_77;

<bb 6>:
  # i_37 = PHI <i_29(7), 1(5)>
...
  D.1940_22 = *aa_21(D)[D.1939_20];
  *aa_21(D)[D.1934_14] = D.1950_28;

and data-dependence analysis sees

(analyze_overlapping_iterations
  (chrec_a = {pretmp.40_78 + 1, +, 1}_2)
  (chrec_b = {pretmp.38_73 + 1, +, 1}_2)

and

(analyze_overlapping_iterations
  (chrec_a = {{(stride.2_6 + offset.3_8) + 1, +, stride.2_6}_1, +, 1}_2)
  (chrec_b = {{(stride.2_6 * 2 + offset.3_8) + 1, +, stride.2_6}_1, +, 1}_2)


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