diff --git a/juno_samples/cava/src/cpu.sch b/juno_samples/cava/src/cpu.sch
index 0b8869d55de67ab8e796397bc25d5c15cc926d59..623dcfbccb35a2716a9339b674643ec9cd22bc6e 100644
--- a/juno_samples/cava/src/cpu.sch
+++ b/juno_samples/cava/src/cpu.sch
@@ -38,8 +38,6 @@ fixpoint {
 }
 simpl!(fuse1);
 array-slf(fuse1);
-simpl!(fuse1);
-unforkify(fuse1);
 
 inline(fuse2);
 no-memset(fuse2@res);
@@ -78,8 +76,6 @@ sroa(*);
 array-slf(fuse2);
 write-predication(fuse2);
 simpl!(fuse2);
-fork-split(fuse2);
-unforkify(fuse2);
 
 no-memset(fuse3@res);
 fixpoint {
@@ -88,8 +84,6 @@ fixpoint {
   fork-coalesce(fuse3);
 }
 simpl!(fuse3);
-fork-split(fuse3);
-unforkify(fuse3);
 
 no-memset(fuse4@res);
 no-memset(fuse4@l2);
@@ -107,8 +101,6 @@ fixpoint {
 simpl!(fuse4);
 array-slf(fuse4);
 simpl!(fuse4);
-fork-split(fuse4);
-unforkify(fuse4);
 
 no-memset(fuse5@res1);
 no-memset(fuse5@res2);
@@ -120,9 +112,23 @@ fixpoint {
 simpl!(fuse5);
 array-slf(fuse5);
 simpl!(fuse5);
+
+delete-uncalled(*);
+simpl!(*);
+xdot[true](*);
+
+simpl!(fuse1);
+unforkify(fuse1);
+fork-split(fuse2);
+unforkify(fuse2);
+fork-split(fuse3);
+unforkify(fuse3);
+fork-split(fuse4);
+unforkify(fuse4);
 fork-split(fuse5);
 unforkify(fuse5);
 
 simpl!(*);
+
 delete-uncalled(*);
 gcm(*);