blob: 596c7d222fe853cc31b07940c173f8706f609447 [file] [log] [blame]
# 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>