diff options
Diffstat (limited to 'omegalib/examples/syr2k.out')
-rw-r--r-- | omegalib/examples/syr2k.out | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/omegalib/examples/syr2k.out b/omegalib/examples/syr2k.out new file mode 100644 index 0000000..345ad04 --- /dev/null +++ b/omegalib/examples/syr2k.out @@ -0,0 +1,69 @@ +>>> # This example of code generation comes from +>>> # "Access Normalization: Loop Restructuring for NUMA Compilers" +>>> # by Wei Li and Keshav Pingali +>>> # Cornell Tech. report TR 92-1278 +>>> Symbolic n,b; +>>> +>>> IS10 := {[i,j,k] : 1 <= i <= j <= n && j <= i+2b-2 +>>> && i-b+1,j-b+1,1 <= k <= i+b-1,j+b-1,n}; +>>> T10 :={[i,j,k] -> [j-i+1,k-j,k]}; +>>> +>>> known := {[*,*,*] : 1 <= b <= n}; +>>> +>>> codegen T10:IS10; +for(t1 = 1; t1 <= min(2*b-1,n); t1++) { + for(t2 = max(-b+1,-n+1); t2 <= min(b-t1,n-t1); t2++) { + for(t3 = max(t1+t2,1); t3 <= min(t2+n,n); t3++) { + s1(t3-t1-t2+1,t3-t2,t3); + } + } +} + +>>> codegen T10:IS10 given known; +for(t1 = 1; t1 <= min(n,2*b-1); t1++) { + for(t2 = -b+1; t2 <= b-t1; t2++) { + for(t3 = max(t1+t2,1); t3 <= min(n,n+t2); t3++) { + s1(t3-t1-t2+1,t3-t2,t3); + } + } +} + +>>> codegen 2 T10:IS10; +for(t1 = 1; t1 <= min(2*b-1,n); t1++) { + for(t2 = max(-b+1,-n+1); t2 <= -t1; t2++) { + for(t3 = 1; t3 <= t2+n; t3++) { + s1(t3-t1-t2+1,t3-t2,t3); + } + } + for(t2 = max(-t1+1,-b+1); t2 <= min(-t1+b,-1); t2++) { + for(t3 = t1+t2; t3 <= t2+n; t3++) { + s1(t3-t1-t2+1,t3-t2,t3); + } + } + for(t2 = 0; t2 <= min(-t1+n,-t1+b); t2++) { + for(t3 = t1+t2; t3 <= n; t3++) { + s1(t3-t1-t2+1,t3-t2,t3); + } + } +} + +>>> codegen 2 T10:IS10 given known; +for(t1 = 1; t1 <= min(n,2*b-1); t1++) { + for(t2 = -b+1; t2 <= -t1; t2++) { + for(t3 = 1; t3 <= t2+n; t3++) { + s1(t3-t1-t2+1,t3-t2,t3); + } + } + for(t2 = max(-t1+1,-b+1); t2 <= min(b-t1,0); t2++) { + for(t3 = t2+t1; t3 <= t2+n; t3++) { + s1(t3-t1-t2+1,t3-t2,t3); + } + } + for(t2 = 1; t2 <= b-t1; t2++) { + for(t3 = t1+t2; t3 <= n; t3++) { + s1(t3-t1-t2+1,t3-t2,t3); + } + } +} + + |