cpp: void kernel_mvt(int n,\nDATA_TYPE POLYBENCH_1D(x1,N,n),\nDATA_TYPE POLYBENCH_1D(x2,N,n),\nDATA_TYPE POLYBENCH_1D(y_1,N,n),\nDATA_TYPE POLYBENCH_1D(y_2,N,n),\nDATA_TYPE POLYBENCH_2D(A,N,N,n,n))\n{\nint i, j;\n\n#pragma scop\nfor (i = 0; i < _PB_N; i++)\nfor (j = 0; j < _PB_N; j++)\nx1[i] = x1[i] + A[i][j] * y_1[j];\nfor (i = 0; i < _PB_N; i++)\nfor (j = 0; j < _PB_N; j++)\nx2[i] = x2[i] + A[j][i] * y_2[j];\n#pragma endscop\n\n}
fortran: subroutine kernel_mvt(n, x1, x2, y1, y2, a)\nimplicit none\n\nDATA_TYPE, dimension(n, n) :: a\nDATA_TYPE, dimension(n) :: x1\nDATA_TYPE, dimension(n) :: y1\nDATA_TYPE, dimension(n) :: x2\nDATA_TYPE, dimension(n) :: y2\ninteger :: n\ninteger :: i, j\n\n!$pragma scop\ndo i = 1, _PB_N\ndo j = 1, _PB_N\nx1(i) = x1(i) + (a(j, i) * y1(j))\nend do\nend do\ndo i = 1, _PB_N\ndo j = 1, _PB_N\nx2(i) = x2(i) + (a(i, j) * y2(j))\nend do\nend do\n!$pragma endscop\nend subroutine