blob: 02767511851060b93c95c608ae5faa4ac6760b0f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
/* { dg-additional-options "-O2" } */
int foo (int);
void
mult (float *matrix1, float *matrix2, float *result,
unsigned dim0, unsigned dim1, unsigned dim2, unsigned dim3)
{
#pragma omp taskloop collapse(3)
for (unsigned i = 0; i < dim0; i++)
#pragma omp tile sizes(2, 2)
#pragma omp tile sizes(2, 2)
#pragma omp tile sizes(2, 2)
for (unsigned j = 0; j < dim1; j += dim2 * foo (0))
#pragma omp unroll partial(2)
#pragma omp unroll partial(2)
for (unsigned k = 0; k < dim1; k += dim3 * foo (1))
result[i * dim1 + j] += matrix1[i * dim1 + k] * matrix2[k * dim0 + j];
}
|