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

--- Comment #3 from vincenzo Innocente <vincenzo.innocente at cern dot ch> ---
indeed

float * bar3() {
  const float * a = (float*) malloc(4*128);
  const float * b = (float*) malloc(4*128);
  float *  c = (float*) malloc(4*128);

  a = (const float*)__builtin_assume_aligned (a, 16, 0);
  b = (const float*)__builtin_assume_aligned (b, 16, 0);
  c = (float*)__builtin_assume_aligned (c, 16, 0);

    for (int iat=0; iat<128; ++iat)
    c[iat] = a[iat]+b[iat];

  return c;

}

produces no aliases

Reply via email to