summaryrefslogtreecommitdiff
path: root/omegalib/examples/syr2k.out
diff options
context:
space:
mode:
Diffstat (limited to 'omegalib/examples/syr2k.out')
-rw-r--r--omegalib/examples/syr2k.out69
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);
+ }
+ }
+}
+
+