buildtools/cloog/osl/tests/test_matmult.scop
Jerome Duval 5873a060ca imported PPL 0.11.1 and CLooG 0.18.0.
* these are dependencies for gcc 4 Graphite engine build.
* CLooG 0.18.0 includes ISL 0.11.1 which is the backend that the build script enables.
* PPL is needed by GCC build even if it isn't the chosen backend.
2013-04-06 15:10:34 +02:00

137 lines
3.9 KiB
Plaintext

# Matmul example, relation representation
<OpenScop>
# =============================================== Global
# Backend Language
C
# Context
CONTEXT
1 3 0 0 0 1
1 1 -1 ## N-1 >= 0
# Parameter names are provided
1
# Parameter names
<strings>
N
</strings>
# Number of statements
2
# =============================================== Statement 1
# Number of relations describing the statement
3
# ---------------------------------------------- 1.1 Domain
DOMAIN
4 5 2 0 0 1
# e/i i j N 1
1 1 0 0 0 ## i >= 0
1 -1 0 1 -1 ## -i+N-1 >= 0
1 0 1 0 0 ## j >= 0
1 0 -1 1 -1 ## -j+N-1 >= 0
# ---------------------------------------------- 1.2 Scattering
SCATTERING
5 10 5 2 0 1
# e/i s1 s2 s3 s4 s5 i j N 1
0 -1 0 0 0 0 0 0 0 0 ## s1 = 0
0 0 -1 0 0 0 1 0 0 0 ## s2 = i
0 0 0 -1 0 0 0 0 0 0 ## s3 = 0
0 0 0 0 -1 0 0 1 0 0 ## s4 = j
0 0 0 0 0 -1 0 0 0 0 ## s5 = 0
# ---------------------------------------------- 1.3 Access
WRITE
3 8 3 2 0 1
# e/i Arr [1] [2] i j N 1
0 -1 0 0 0 0 0 1 ## C
0 0 -1 0 1 0 0 0 ## [i]
0 0 0 -1 0 1 0 0 ## [j]
# ---------------------------------------------- 1.4 Body
# Statement body is provided
1
<body>
# Number of original iterators
2
# Original iterator names
i j
# Statement body
C[i][j] = 0.0;
</body>
# =============================================== Statement 2
# Number of relations describing the statement
6
# ---------------------------------------------- 2.1 Domain
DOMAIN
6 6 3 0 0 1
# e/i i j k N 1
1 1 0 0 0 0 ## i >= 0
1 -1 0 0 1 -1 ## -i+N-1 >= 0
1 0 1 0 0 0 ## j >= 0
1 0 -1 0 1 -1 ## -j+N-1 >= 0
1 0 0 1 0 0 ## k >= 0
1 0 0 -1 1 -1 ## -k+N-1 >= 0
# ---------------------------------------------- 2.2 Scattering
SCATTERING
7 13 7 3 0 1
# e/i s1 s2 s3 s4 s5 s6 s7 i j k N 1
0 -1 0 0 0 0 0 0 0 0 0 0 0 ## s1 = 0
0 0 -1 0 0 0 0 0 1 0 0 0 0 ## s2 = i
0 0 0 -1 0 0 0 0 0 0 0 0 0 ## s3 = 0
0 0 0 0 -1 0 0 0 0 1 0 0 0 ## s4 = j
0 0 0 0 0 -1 0 0 0 0 0 0 1 ## s5 = 1
0 0 0 0 0 0 -1 0 0 0 1 0 0 ## s6 = k
0 0 0 0 0 0 0 -1 0 0 0 0 0 ## s7 = 0
# ---------------------------------------------- 2.3 Access
WRITE
3 9 3 3 0 1
# e/i Arr [1] [2] i j k N 1
0 -1 0 0 0 0 0 0 1 ## C
0 0 -1 0 1 0 0 0 0 ## [i]
0 0 0 -1 0 1 0 0 0 ## [j]
READ
3 9 3 3 0 1
# e/i Arr [1] [2] i j k N 1
0 -1 0 0 0 0 0 0 1 ## C
0 0 -1 0 1 0 0 0 0 ## [i]
0 0 0 -1 0 1 0 0 0 ## [j]
READ
3 9 3 3 0 1
# e/i Arr [1] [2] i j k N 1
0 -1 0 0 0 0 0 0 2 ## A
0 0 -1 0 1 0 0 0 0 ## [i]
0 0 0 -1 0 0 1 0 0 ## [k]
READ
3 9 3 3 0 1
# e/i Arr [1] [2] i j k N 1
0 -1 0 0 0 0 0 0 3 ## B
0 0 -1 0 0 0 1 0 0 ## [k]
0 0 0 -1 0 1 0 0 0 ## [j]
# ---------------------------------------------- 2.4 Body
# Statement body is provided
1
<body>
# Number of original iterators
3
# Original iterator names
i j k
# Statement body
C[i][j] = C[i][j] + A[i][k] * B[k][j];
</body>
</OpenScop>