1# A SCoP from matmul (matmul.B.main.scop1.cloog) to check normalization 2# 3# Options: 4# cloog -f 8 -l 9 vasilache.cloog 5# 6# Correct: 7# S1; 8# S2; 9# for (p0=0;p0<=N-1;p0++) { 10# for (p1=0;p1<=N-1;p1++) { 11# S4(i = p0,j = p1); 12# S5(i = p0,j = p1); 13# } 14# } 15# for (p0=0;p0<=N-1;p0++) { 16# for (p1=0;p1<=N-1;p1++) { 17# for (p2=0;p2<=floord(N-1,32);p2++) { 18# S7(i = p0,j = p1,k = p2,l = 32*p2); 19# for (p3=32*p2+1;p3<=min(N-1,32*p2+31);p3++) { 20# S6(i = p0,j = p1,k = p2,l = p3-1); 21# S7(i = p0,j = p1,k = p2,l = p3); 22# } 23# if (p2 >= ceild(N-32,32)) { 24# S6(i = p0,j = p1,k = p2,l = N-1); 25# } 26# if (p2 <= floord(N-33,32)) { 27# S6(i = p0,j = p1,k = p2,l = 32*p2+31); 28# } 29# } 30# } 31# } 32# S8; 33# 34# 35# NOT correct: 36# S1 ; 37# S2 ; 38# for (p1=0;p1<=N-1;p1++) { 39# for (p3=0;p3<=N-1;p3++) { 40# S4(i = p1,j = p3) ; 41# S5(i = p1,j = p3) ; 42# } 43# } 44# for (p1=0;p1<=N-1;p1++) { 45# for (p3=0;p3<=N-1;p3++) { 46# for (p5=0;p5<=floord(N-1,32);p5++) { 47# if (p5 <= 0) { 48# S7(i = p1,j = p3,k = p5,l = 0) ; 49# } 50# p7 = 32*p5 ; 51# l = 32*p5 ; 52# S7(i = p1,j = p3,k = p5) ; 53# for (p7=max(32*p5+1,1);p7<=min(32*p5+31,N-1);p7++) { 54# l = p7-1 ; 55# S6(i = p1,j = p3,k = p5) ; 56# S7(i = p1,j = p3,k = p5,l = p7) ; 57# } 58# if (p5 >= ceild(N-32,32)) { 59# l = N-1 ; 60# S6(i = p1,j = p3,k = p5) ; 61# } 62# p7 = 32*p5+32 ; 63# l = 32*p5+31 ; 64# S6(i = p1,j = p3,k = p5) ; 65# } 66# } 67# } 68# S8 ; 69 70 71 72c # language is C 73# ---------- CONTEXT ---------- 74# Context (constraints on parameters) 752 4 # 1 lines, 4 columns 761 -1 0 3 771 0 1 -100 78 79 800 # Automatically find parameter names 81 82# ---------- STATEMENTS ---------- 838 # Number of statements 84 851 # Statement has a non resticted domain 861 4 871 0 0 0 880 0 0 89 901 # Statement has a non resticted domain 911 4 921 0 0 0 930 0 0 94 951 # Statement has 1 domain 961 4 971 1 0 -79 980 0 0 99 1001 # Statement has 1 domain 1014 6 1021 1 0 0 0 0 1031 -1 0 0 1 -1 1041 0 1 0 0 0 1051 0 -1 0 1 -1 1060 0 0 107 1081 # Statement has 1 domain 1094 6 1101 1 0 0 0 0 1111 -1 0 0 1 -1 1121 0 1 0 0 0 1131 0 -1 0 1 -1 1140 0 0 115 1161 # Statement has 1 domain 1178 8 1181 1 0 0 0 0 0 0 1191 -1 0 0 0 0 1 -1 1201 0 1 0 0 0 0 0 1211 0 -1 0 0 0 1 -1 1221 0 0 0 1 0 0 0 1231 0 0 0 -1 0 1 -1 1241 0 0 -32 1 0 0 0 1251 0 0 32 -1 0 0 31 1260 0 0 127 1281 # Statement has 1 domain 1298 8 1301 1 0 0 0 0 0 0 1311 -1 0 0 0 0 1 -1 1321 0 1 0 0 0 0 0 1331 0 -1 0 0 0 1 -1 1341 0 0 0 1 0 0 0 1351 0 0 0 -1 0 1 -1 1361 0 0 -32 1 0 0 0 1371 0 0 32 -1 0 0 31 1380 0 0 139 1401 # Statement has a non resticted domain 1411 4 1421 0 0 0 1430 0 0 144 1450 # Automatically find iterator names. 146 147# ---------- SCATTERING FUNCTIONS ---------- 1488 # Number of scattering functions 149 1509 13 151# p0 p1 p2 p3 p4 p5 p6 p7 p8 1520 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 0 1530 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 1540 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 1 1550 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 1560 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 2 1570 0 0 0 0 0 1 0 0 0 0 0 0 # Alpha & Gamma 3 1580 0 0 0 0 0 0 1 0 0 0 0 0 # Beta 3 1590 0 0 0 0 0 0 0 1 0 0 0 0 # Alpha & Gamma 4 1600 0 0 0 0 0 0 0 0 1 0 0 0 # Beta 4 161 1629 13 163# p0 p1 p2 p3 p4 p5 p6 p7 p8 1640 1 0 0 0 0 0 0 0 0 0 0 -1 # Beta 0 1650 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 1660 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 1 1670 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 1680 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 2 1690 0 0 0 0 0 1 0 0 0 0 0 0 # Alpha & Gamma 3 1700 0 0 0 0 0 0 1 0 0 0 0 0 # Beta 3 1710 0 0 0 0 0 0 0 1 0 0 0 0 # Alpha & Gamma 4 1720 0 0 0 0 0 0 0 0 1 0 0 0 # Beta 4 173 1749 13 175# p0 p1 p2 p3 p4 p5 p6 p7 p8 1760 1 0 0 0 0 0 0 0 0 0 0 -2 # Beta 0 1770 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 1780 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 1 1790 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 1800 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 2 1810 0 0 0 0 0 1 0 0 0 0 0 0 # Alpha & Gamma 3 1820 0 0 0 0 0 0 1 0 0 0 0 0 # Beta 3 1830 0 0 0 0 0 0 0 1 0 0 0 0 # Alpha & Gamma 4 1840 0 0 0 0 0 0 0 0 1 0 0 0 # Beta 4 185 1869 15 187# p0 p1 p2 p3 p4 p5 p6 p7 p8 1880 1 0 0 0 0 0 0 0 0 0 0 0 0 -3 # Beta 0 1890 0 1 0 0 0 0 0 0 0 -1 0 0 0 0 # Alpha & Gamma 1 1900 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 1910 0 0 0 1 0 0 0 0 0 0 -1 0 0 0 # Alpha & Gamma 2 1920 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 2 1930 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 1940 0 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 3 1950 0 0 0 0 0 0 0 1 0 0 0 0 0 0 # Alpha & Gamma 4 1960 0 0 0 0 0 0 0 0 1 0 0 0 0 0 # Beta 4 197 1989 15 199# p0 p1 p2 p3 p4 p5 p6 p7 p8 2000 1 0 0 0 0 0 0 0 0 0 0 0 0 -3 # Beta 0 2010 0 1 0 0 0 0 0 0 0 -1 0 0 0 0 # Alpha & Gamma 1 2020 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 2030 0 0 0 1 0 0 0 0 0 0 -1 0 0 0 # Alpha & Gamma 2 2040 0 0 0 0 1 0 0 0 0 0 0 0 0 -1 # Beta 2 2050 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 2060 0 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 3 2070 0 0 0 0 0 0 0 1 0 0 0 0 0 0 # Alpha & Gamma 4 2080 0 0 0 0 0 0 0 0 1 0 0 0 0 0 # Beta 4 209 2109 17 211# p0 p1 p2 p3 p4 p5 p6 p7 p8 2120 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -4 # Beta 0 2130 0 1 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 # Alpha & Gamma 1 2140 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 2150 0 0 0 1 0 0 0 0 0 0 -1 0 0 0 0 0 # Alpha & Gamma 2 2160 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 2 2170 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 # Alpha & Gamma 3 2180 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 3 2190 0 0 0 0 0 0 0 1 0 0 0 0 -1 0 0 -1 # Alpha & Gamma 4 2200 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 4 221 2229 17 223# p0 p1 p2 p3 p4 p5 p6 p7 p8 2240 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -4 # Beta 0 2250 0 1 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 # Alpha & Gamma 1 2260 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 2270 0 0 0 1 0 0 0 0 0 0 -1 0 0 0 0 0 # Alpha & Gamma 2 2280 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 2 2290 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 # Alpha & Gamma 3 2300 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 3 2310 0 0 0 0 0 0 0 1 0 0 0 0 -1 0 0 0 # Alpha & Gamma 4 2320 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 -1 # Beta 4 233 2349 13 235# p0 p1 p2 p3 p4 p5 p6 p7 p8 2360 1 0 0 0 0 0 0 0 0 0 0 -5 # Beta 0 2370 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 2380 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 1 2390 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 2400 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 2 2410 0 0 0 0 0 1 0 0 0 0 0 0 # Alpha & Gamma 3 2420 0 0 0 0 0 0 1 0 0 0 0 0 # Beta 3 2430 0 0 0 0 0 0 0 1 0 0 0 0 # Alpha & Gamma 4 2440 0 0 0 0 0 0 0 0 1 0 0 0 # Beta 4 245 2461 # Set the scattering parameter names. 247p0 p1 p2 p3 p4 p5 p6 p7 p8 248 249