1 /* { dg-require-effective-target size32plus } */
2 /* { dg-require-effective-target int32plus } */
3 /* { dg-options "-O2 -floop-nest-optimize" } */
5 static void kernel_gemm(int ni
, int nj
, int nk
, double alpha
, double beta
, double C
[1024][1024], double A
[1024][1024], double B
[1024][1024])
8 for (i
= 0; i
< ni
; i
++)
9 for (j
= 0; j
< nj
; j
++)
12 for (k
= 0; k
< nk
; ++k
)
13 C
[i
][j
] += alpha
* A
[i
][k
] * B
[k
][j
];
17 void *polybench_alloc_data (int, int);
19 int main(int argc
, char** argv
) {
25 double (*C
)[1024][1024];
26 C
= (double(*)[1024][1024])polybench_alloc_data ((1024) * (1024), sizeof(double));
27 double (*A
)[1024][1024];
28 A
= (double(*)[1024][1024])polybench_alloc_data ((1024) * (1024), sizeof(double));
29 double (*B
)[1024][1024];
30 kernel_gemm (ni
, nj
, nk
, alpha
, beta
, *C
, *A
, *B
);