Declarations for omp private variables
[cloog.git] / test / openscop / loops.c
blob07a6833562d67a76ddf0ece2ea117cd1e43abc94
1 /* Useful macros. */
2 #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d))
3 #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d))
4 #define max(x,y) ((x) > (y) ? (x) : (y))
5 #define min(x,y) ((x) < (y) ? (x) : (y))
7 #ifdef TIME
8 #define IF_TIME(foo) foo;
9 #else
10 #define IF_TIME(foo)
11 #endif
12 /* matmul.c 128*128 matrix multiply */
13 #pragma scop
14 /* Scattering iterators. */
15 int t2, t3, t4, t5, t6, t9;
16 /* Original iterators. */
17 int i, j, k, l, m, n;
18 int lbv, ubv;
19 if (N >= 1) {
20 lbp=0;
21 ubp=floord(N-1,32);
22 #pragma omp parallel for private(lbv,ubv,t3,t4,t5,t6,t7,t8,t9)
23 for (t2=lbp;t2<=ubp;t2++) {
24 for (t3=0;t3<=floord(N-1,32);t3++) {
25 for (t4=32*t2;t4<=min(N-1,32*t2+31);t4++) {
26 lbv=32*t3;
27 ubv=min(N-1,32*t3+31);
28 #pragma ivdep
29 #pragma vector always
30 for (t9=lbv;t9<=ubv;t9++) {
31 c[t4][t9] = 0.0;
36 lbp=0;
37 ubp=floord(N-1,32);
38 #pragma omp parallel for private(lbv,ubv,t3,t4,t5,t6,t7,t8,t9)
39 for (t2=lbp;t2<=ubp;t2++) {
40 for (t3=0;t3<=floord(N-1,32);t3++) {
41 for (t4=0;t4<=floord(N-1,32);t4++) {
42 for (t5=32*t2;t5<=min(N-1,32*t2+31);t5++) {
43 for (t6=32*t4;t6<=min(N-1,32*t4+31);t6++) {
44 lbv=32*t3;
45 ubv=min(N-1,32*t3+31);
46 #pragma ivdep
47 #pragma vector always
48 for (t9=lbv;t9<=ubv;t9++) {
49 c[t5][t9] = c[t5][t9] + a[t5][t6]*b[t6][t9];
57 #pragma endscop