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

Reply via email to