------- Comment #2 from rguenth at gcc dot gnu dot org 2010-07-23 12:35 ------- Confirmed. We end up vectorizing
void foo (int *a, int n) { int *lasta = a + n; for (; a != lasta; a++) { *a *= 2; a[1] = a[-1] + a[-2]; } } not seeing the dependence of *a vs a[-1] because via initialize_data_dependence_relation we ask the alias-oracle whether *a may alias a[-1] (which it doesn't). So we end up not computing a dependence distance. May we not use the alias-oracle (on the full ref) here? -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |spop at gcc dot gnu dot org Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|0000-00-00 00:00:00 |2010-07-23 12:35:43 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44913