diff --git a/juno_samples/rodinia/srad/src/cpu.sch b/juno_samples/rodinia/srad/src/cpu.sch
index 5a8c180e23a4af9f013c65b0cdccaaca2b2b48b6..43d8ceacbcddcdb1f956443acce3064db6d3cb98 100644
--- a/juno_samples/rodinia/srad/src/cpu.sch
+++ b/juno_samples/rodinia/srad/src/cpu.sch
@@ -35,7 +35,12 @@ simpl!(*);
 slf(*);
 simpl!(*);
 
-fork-split(*);
-unforkify(*);
+fork-tile[32, 0, false, false](loop2);
+let split = fork-split(loop2);
+let loop2_body = outline(split.srad_1.fj1);
+simpl!(loop2, loop2_body);
+
+fork-split(extract, compress, loop1, loop2_body, loop3);
+unforkify(extract, compress, loop1, loop2_body, loop3);
 
 gcm(*);
diff --git a/juno_samples/rodinia/srad/src/srad.jn b/juno_samples/rodinia/srad/src/srad.jn
index b055b296b678eb38791ef7353e528bff5e79b4c2..024be598becdabb9ae9c32380a2b584871240cf7 100644
--- a/juno_samples/rodinia/srad/src/srad.jn
+++ b/juno_samples/rodinia/srad/src/srad.jn
@@ -51,7 +51,7 @@ fn srad<nrows, ncols: usize>(
     @scratch let dE : f32[ncols, nrows];
     @scratch let dW : f32[ncols, nrows];
 
-    let c : f32[ncols, nrows];
+    @scratch let c : f32[ncols, nrows];
 
     @loop2 for j in 0..ncols {
       for i in 0..nrows {