From 91eeb3b7a5642ac23ae367040dc96b93e8540e1f Mon Sep 17 00:00:00 2001
From: Russel Arbore <rarbore2@illinois.edu>
Date: Wed, 5 Mar 2025 17:39:11 -0600
Subject: [PATCH] parallelize sum reduction in srad

---
 juno_samples/rodinia/srad/src/cpu.sch | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/juno_samples/rodinia/srad/src/cpu.sch b/juno_samples/rodinia/srad/src/cpu.sch
index 8fa22aaa..5487355d 100644
--- a/juno_samples/rodinia/srad/src/cpu.sch
+++ b/juno_samples/rodinia/srad/src/cpu.sch
@@ -28,14 +28,28 @@ fixpoint {
   fork-guard-elim(*);
   fork-coalesce(*);
 }
+fork-dim-merge(loop1);
 simpl!(*);
-fork-interchange[0, 1](loop1);
 reduce-slf(*);
 simpl!(*);
 slf(*);
 simpl!(*);
 
 if !feature("seq") {
+  fork-tile[32, 0, false, false](loop1);
+  simpl!(loop1);
+  let split = fork-split(loop1);
+  simpl!(loop1);
+  clean-monoid-reduces(loop1);
+  let loop1_body = outline(split.srad_0.fj1);
+  simpl!(loop1, loop1_body);
+  unforkify(loop1_body);
+  let fission = fork-fission[split.srad_0.fj0](loop1);
+  simpl!(loop1, loop1_body);
+  unforkify(fission.srad_0.fj_bottom);
+  simpl!(loop1, loop1_body);
+  loop1 = loop1_body;
+
   fork-tile[32, 0, false, false](loop2);
   let split = fork-split(loop2);
   let loop2_body = outline(split.srad_1.fj1);
-- 
GitLab