summaryrefslogtreecommitdiff
path: root/omega/examples/old_test/p.delft.oc-rt
diff options
context:
space:
mode:
Diffstat (limited to 'omega/examples/old_test/p.delft.oc-rt')
-rw-r--r--omega/examples/old_test/p.delft.oc-rt43
1 files changed, 43 insertions, 0 deletions
diff --git a/omega/examples/old_test/p.delft.oc-rt b/omega/examples/old_test/p.delft.oc-rt
new file mode 100644
index 0000000..d59a886
--- /dev/null
+++ b/omega/examples/old_test/p.delft.oc-rt
@@ -0,0 +1,43 @@
+# Omega Calculator v1.2 (based on Omega Library 1.2, August, 2000):
+# # Generate local code for this HPF code fragment
+# # !HPF$ template T(0:150,0:150)
+# # !HPF$ align X(I,J) with T(3*I,3*J)
+# A := { [i,j] -> [3i,3j] };
+#
+# # !HPF$ processors P(0:3, 0:3)
+# # !HPF$ distribute
+# # !HPF$ T(cyclic(4), cyclic(4)) onto P
+# D := { [t1,t2] -> [p1,p2,c1,c2,l1,l2] :
+# t1 = 16c1+4p1+l1
+# && t2 = 16c2+4p2+l2
+# && 0 <= p1,p2 <= 3
+# && 0 <= l1,l2 <= 3 };
+#
+# # do I = 0, 14
+# # Y(I,I) = 1.0
+# # enddo
+# I := { [i] : 0 <= i <= 14 };
+#
+# X := { [i] -> [i,i] };
+#
+# R := D(A(X(I)));
+#
+# R;
+
+{[p1,p1,c1,c1,l1,l1]: Exists ( alpha : p1+l1+c1 = 3alpha && 0 <= p1 <= -4c1+10, 3 && 0 <= l1 <= 3 && 0 <= c1)}
+
+#
+# symbolic P1,P2;
+#
+# selectLocal := {[P1,P2,c1,c2,l1,l2] -> [c1,c2,l1,l2]};
+#
+# codegen selectLocal(R);
+if (P1 == P2 && P1 >= 0 && P1 <= 3) {
+ for(t1 = 0; t1 <= min(-P1+4,2); t1++) {
+ for(t3 = intMod((-P1-t1),3); t3 <= 3; t3 += 3) {
+ s1(t1,t1,t3,t3);
+ }
+ }
+}
+
+#