diff --git a/juno_samples/cava/src/cpu.sch b/juno_samples/cava/src/cpu.sch
index 32e2b63b55c69e6e2c05cabc3221f3c8feff674b..16beceebbfc77a5ca229d0e3c514b77418ca8b75 100644
--- a/juno_samples/cava/src/cpu.sch
+++ b/juno_samples/cava/src/cpu.sch
@@ -105,17 +105,20 @@ fixpoint {
   fork-coalesce(fuse4);
 }
 simpl!(fuse4);
-fork-unroll(fuse4@channel_loop);
-simpl!(fuse4);
-fixpoint {
-  fork-fusion(fuse4@channel_loop);
+
+if !feature("dont_fuse_gamut") {
+  fork-unroll(fuse4@channel_loop);
+  simpl!(fuse4);
+  fixpoint {
+    fork-fusion(fuse4@channel_loop);
+  }
+  simpl!(fuse4);
+  array-slf(fuse4);
+  simpl!(fuse4);
 }
-simpl!(fuse4);
-array-slf(fuse4);
-simpl!(fuse4);
 
 if !feature("seq") {
-  let par = fuse4@image_loop \ fuse4@channel_loop;
+  let par = fuse4@image_loop \ fuse4@channel_loop \ fuse4@cp_loop;
   fork-tile[4, 1, false, false](par);
   fork-tile[8, 0, false, false](par);
   fork-interchange[1, 2](par);