/* { dg-do compile } */
/* { dg-require-effective-target size32plus } */

typedef unsigned long long uint64_t;

#define n 4096
double A[n][n] __attribute__((aligned(16)));
double B[n][n] __attribute__((aligned(16)));
double C[n][n] __attribute__((aligned(16)));

#define tilesize 128

typedef double adouble __attribute__((__aligned__(16)));

void foo ()
{
  int ih, jh, kh, il, kl, jl;
  for (ih = 0; ih < n; ih += tilesize) 
    for (jh = 0; jh < n; jh += tilesize)                 
      for (kh = 0; kh < n; kh += tilesize)                      
	for (il = 0; il < tilesize; ++il)
	  {
	    adouble *Ap = (adouble *)&A[ih+il][kh];
	    for (kl = 0; kl < tilesize; ++kl)
	      for (jl = 0; jl < tilesize; ++jl)
		C[ih+il][jh+jl] += Ap[kl] * B[kh+kl][jh+jl];
	  }
}
