diff --git a/cmake_modules/morse_cmake b/cmake_modules/morse_cmake
index 657741dbab25d4008c4dfc2ebdf34a3f43bf00e6..be970c0169f847f9a61993d2e6a7cd49a409399e 160000
--- a/cmake_modules/morse_cmake
+++ b/cmake_modules/morse_cmake
@@ -1 +1 @@
-Subproject commit 657741dbab25d4008c4dfc2ebdf34a3f43bf00e6
+Subproject commit be970c0169f847f9a61993d2e6a7cd49a409399e
diff --git a/runtime/starpu/control/runtime_descriptor.c b/runtime/starpu/control/runtime_descriptor.c
index 8402ec55b4d1fe7610092916f550e97aa99cc631..a6d9f84c7f9923bb379707516c32f5d3ccf0056b 100644
--- a/runtime/starpu/control/runtime_descriptor.c
+++ b/runtime/starpu/control/runtime_descriptor.c
@@ -31,7 +31,7 @@
  These values can be changed through the call CHAMELEON_user_tag_size(int tag_width, int tag_sep) */
 #define TAG_WIDTH_MIN 20
 static int tag_width = 64;
-static int tag_sep   = 50;
+static int tag_sep   = 40;
 static int _tag_mpi_initialized_ = 0;
 
 static inline int
diff --git a/testing/chameleon_ztesting.c b/testing/chameleon_ztesting.c
index e41178a64e4afad629fa148408fba776a5470def..0d6d6e5d93d4ff1c1251f1994ad07ffcb04e28d3 100644
--- a/testing/chameleon_ztesting.c
+++ b/testing/chameleon_ztesting.c
@@ -98,10 +98,11 @@ static parameter_t parameters[] = {
     { "||A||",         "Norm of the matrix A",                  1005, PARAM_OUTPUT, 2, 13, TestValDouble, {0}, NULL, pread_double, sprint_double },
     { "||B||",         "Norm of the matrix B",                  1006, PARAM_OUTPUT, 2, 13, TestValDouble, {0}, NULL, pread_double, sprint_double },
     { "||C||",         "Norm of the matrix C",                  1007, PARAM_OUTPUT, 2, 13, TestValDouble, {0}, NULL, pread_double, sprint_double },
-    { "||b||",         "Norm of the vector b",                  1008, PARAM_OUTPUT, 2, 13, TestValDouble, {0}, NULL, pread_double, sprint_double },
-    { "||x||",         "Norm of the vector x",                  1009, PARAM_OUTPUT, 2, 13, TestValDouble, {0}, NULL, pread_double, sprint_double },
-    { "||Ax-b||/N/eps/(||A||||x||+||b||", "",                   1010, PARAM_OUTPUT, 2, 22, TestValDouble, {0}, NULL, pread_double, sprint_double },
-    { "||I-QQ'||",     "Orthonormality of Q",                   1011, PARAM_OUTPUT, 2, 13, TestValDouble, {0}, NULL, pread_double, sprint_double },
+    { "||R||",         "Residual norm",                         1008, PARAM_OUTPUT, 2, 13, TestValDouble, {0}, NULL, pread_double, sprint_double },
+    { "||b||",         "Norm of the vector b",                  1009, PARAM_OUTPUT, 2, 13, TestValDouble, {0}, NULL, pread_double, sprint_double },
+    { "||x||",         "Norm of the vector x",                  1010, PARAM_OUTPUT, 2, 13, TestValDouble, {0}, NULL, pread_double, sprint_double },
+    { "||Ax-b||/N/eps/(||A||||x||+||b||", "",                   1011, PARAM_OUTPUT, 2, 22, TestValDouble, {0}, NULL, pread_double, sprint_double },
+    { "||I-QQ'||",     "Orthonormality of Q",                   1012, PARAM_OUTPUT, 2, 13, TestValDouble, {0}, NULL, pread_double, sprint_double },
 };
 
 #define STR_MAX_LENGTH 256
diff --git a/testing/input/geadd.in b/testing/input/geadd.in
index 180fa9a87214d6b5bf1715c8ef341f39f76aa4d9..8e6fe98f11e7ec97f464df6a4cbb76f114f22daa 100644
--- a/testing/input/geadd.in
+++ b/testing/input/geadd.in
@@ -12,6 +12,8 @@
 # alpha: Scalar alpha
 # beta: Scalar beta
 
+alpha = 0., 3.45
+beta = 0., -4.86
 op = geadd
 nb = 16, 17
 ib = 8
diff --git a/testing/input/gemm.in b/testing/input/gemm.in
index f4df5ce2ce5384429096b78aa37d291962c09c0b..ae01aee4dc82bcba9d6ebc60584d296dadb4a9e2 100644
--- a/testing/input/gemm.in
+++ b/testing/input/gemm.in
@@ -15,6 +15,8 @@
 # alpha: Scalar alpha
 # beta: Scalar beta
 
+alpha = 0., 3.45
+beta = 0., -4.86
 op = gemm
 nb = 16, 17
 ib = 8
diff --git a/testing/input/hemm.in b/testing/input/hemm.in
index a571443045e1661b43a50adcd3bb9f96d5038362..047e5e9a6192508b071b714e77b6b6f80c79b508 100644
--- a/testing/input/hemm.in
+++ b/testing/input/hemm.in
@@ -15,6 +15,8 @@
 # beta: Scalar beta
 # bump: bump value for Hermitian matrices
 
+alpha = 0., 3.45
+beta = 0., -4.86
 op = hemm
 nb = 16, 17
 ib = 8
diff --git a/testing/input/her2k.in b/testing/input/her2k.in
index 8b420b62aa61c76e1937b7adbef00a6453d04c7c..261c63cee3a189eb96d5616ff494db43dc3c67ae 100644
--- a/testing/input/her2k.in
+++ b/testing/input/her2k.in
@@ -15,6 +15,8 @@
 # beta: Scalar beta
 # bump: Bump value for symmetric matrices
 
+alpha = 0., 3.45
+beta = 0., -4.86
 op = her2k
 nb = 16, 17
 ib = 8
diff --git a/testing/input/herk.in b/testing/input/herk.in
index c00df4c16f8fb4fa1f1c97e975a117d3de1b1974..eeec8f5201125c10128242fab32e7cced7250c83 100644
--- a/testing/input/herk.in
+++ b/testing/input/herk.in
@@ -14,6 +14,8 @@
 # beta: Scalar beta
 # bump: Bump value for symmetric matrices
 
+alpha = 0., 3.45
+beta = 0., -4.86
 op = herk
 nb = 16, 17
 ib = 8
diff --git a/testing/input/lascal.in b/testing/input/lascal.in
index ba7171b1b6abf98c90a8ab333a937456f566b4a6..14bccea0cb61f9ee3c6d09557e42c7b3f4340351 100644
--- a/testing/input/lascal.in
+++ b/testing/input/lascal.in
@@ -10,6 +10,7 @@
 # uplo: Part of the matrix to be copied (0 for Upper, 1 for Lower and 2 for UpperLower)
 # alpha: Scale to apply
 
+alpha = 0., 3.45
 op = lascal
 nb = 16, 17
 ib = 8
diff --git a/testing/input/symm.in b/testing/input/symm.in
index 17c7c3dacaa616116c1aa8fba89a6b5797034724..6981e403d4a56a29242983db24e61e02d3a7f799 100644
--- a/testing/input/symm.in
+++ b/testing/input/symm.in
@@ -15,6 +15,8 @@
 # beta: Scalar beta
 # bump: bump value for Hermitian matrices
 
+alpha = 0., 3.45
+beta = 0., -4.86
 op = symm
 nb = 16, 17
 ib = 8
diff --git a/testing/input/syr2k.in b/testing/input/syr2k.in
index fe434797ba148ca5847228e1c08ea845dfb42af8..24ced3073bec2c06dee53f4ea44803791a5c779d 100644
--- a/testing/input/syr2k.in
+++ b/testing/input/syr2k.in
@@ -15,6 +15,8 @@
 # beta: Scalar beta
 # bump: Bump value for symmetric matrices
 
+alpha = 0., 3.45
+beta = 0., -4.86
 op = syr2k
 nb = 16, 17
 ib = 8
diff --git a/testing/input/syrk.in b/testing/input/syrk.in
index 82daa929d76c69cfd164dceea7af1632d9c89fd4..b37b6a823d5db1bf788dd046190c39852219d6ae 100644
--- a/testing/input/syrk.in
+++ b/testing/input/syrk.in
@@ -14,6 +14,8 @@
 # beta: Scalar beta
 # bump: Bump value for symmetric matrices
 
+alpha = 0., 3.45
+beta = 0., -4.86
 op = syrk
 nb = 16, 17
 ib = 8
diff --git a/testing/input/tradd.in b/testing/input/tradd.in
index b930006627c68b1e14a3ebe245fb418e53150bdb..a574f03519847cf4183b360ba06e743d2c243492 100644
--- a/testing/input/tradd.in
+++ b/testing/input/tradd.in
@@ -13,6 +13,8 @@
 # alpha: Scalar alpha
 # beta: Scalar beta
 
+alpha = 0., 3.45
+beta = 0., -4.86
 op = tradd
 nb = 16, 17
 ib = 8
diff --git a/testing/input/trmm.in b/testing/input/trmm.in
index d570337401e27e1c6991f68b42cb09d5a363e0df..6c6228f1430fae996d28e3f4588d2cff4764f665 100644
--- a/testing/input/trmm.in
+++ b/testing/input/trmm.in
@@ -14,6 +14,7 @@
 # diag: Whether or not A is unit triangular
 # alpha: Scalar alpha
 
+alpha = 0., 3.45
 op = trmm
 nb = 16, 17
 ib = 8
diff --git a/testing/input/trsm.in b/testing/input/trsm.in
index 2882e91427de91845e5a63c5a5188d393e1e505e..93098cc254da1411d468f01b564e5bb50dcb3ca9 100644
--- a/testing/input/trsm.in
+++ b/testing/input/trsm.in
@@ -15,6 +15,7 @@
 # diag: Whether or not A is unit triangular
 # alpha: Scalar alpha
 
+alpha = 0., 3.45
 op = trsm
 nb = 16, 17
 ib = 8
diff --git a/testing/testing_zcheck.c b/testing/testing_zcheck.c
index 5a5f9f302e24a3c962aac79989f521f683e5feae..e0d4c1964c4ef857b78d3d79f1f9829a84ae039f 100644
--- a/testing/testing_zcheck.c
+++ b/testing/testing_zcheck.c
@@ -105,7 +105,12 @@ int check_zmatrices( run_arg_list_t *args, cham_uplo_t uplo, CHAM_desc_t *descA,
             Rnorm = LAPACKE_zlantr_work( LAPACK_COL_MAJOR, 'M', chameleon_lapack_const(uplo), 'N',
                                          M, N, B, LDA, work );
         }
-        result = Rnorm / (Anorm * eps);
+        if ( Anorm != 0. ) {
+            result = Rnorm / (Anorm * eps);
+        }
+        else {
+            result = Rnorm;
+        }
 
         /* Verifies if the result is inside a threshold */
         if (  isnan(Rnorm) || isinf(Rnorm) || isnan(result) || isinf(result) || (result > 10.0) ) {
@@ -537,7 +542,16 @@ int check_zgemm( run_arg_list_t *args, cham_trans_t transA, cham_trans_t transB,
         /* Calculates the norm with the core function's result */
         Rnorm = LAPACKE_zlange_work( LAPACK_COL_MAJOR, 'M', M, N, Cref, LDC, NULL );
 
-        result = Rnorm / ((cabs(alpha) * max(Anorm, Bnorm) + cabs(beta) * Crefnorm) * K * eps);
+        if ( ( alpha != 0. ) || (beta != 0. ) ) {
+            result = Rnorm / ((cabs(alpha) * max(Anorm, Bnorm) + cabs(beta) * Crefnorm) * K * eps);
+        }
+        else {
+            result = Rnorm;
+        }
+        run_arg_add_double( args, "||A||", Anorm );
+        run_arg_add_double( args, "||B||", Bnorm );
+        run_arg_add_double( args, "||C||", Crefnorm );
+        run_arg_add_double( args, "||R||", Rnorm );
 
         /* Verifies if the result is inside a threshold */
         if (  isnan(Rnorm) || isinf(Rnorm) || isnan(result) || isinf(result) || (result > 10.0) ) {
@@ -685,7 +699,12 @@ int check_zsymm( run_arg_list_t *args, cham_mtxtype_t matrix_type, cham_side_t s
         Clapacknorm = LAPACKE_zlange_work( LAPACK_COL_MAJOR, 'M', M, N, Cref, LDC, NULL );
         Rnorm       = LAPACKE_zlange_work( LAPACK_COL_MAJOR, 'M', M, N, Cref, LDC, NULL );
 
-        result = Rnorm / ((cabs(alpha) * max(Anorm, Bnorm) + cabs(beta) * Crefnorm) * An * eps);
+        if ( ( alpha != 0. ) || (beta != 0. ) ) {
+            result = Rnorm / ((cabs(alpha) * max(Anorm, Bnorm) + cabs(beta) * Crefnorm) * An * eps);
+        }
+        else {
+            result = Rnorm;
+        }
 
         /* Verifies if the result is inside a threshold */
         if (  isnan(Rnorm) || isinf(Rnorm) || isnan(result) || isinf(result) || (result > 10.0) ) {
diff --git a/testing/testing_zgemm.c b/testing/testing_zgemm.c
index 17d39874d0d3799dbdb482a789f58e25393fd041..b3f2bea7cc7190abfa2487585a1efe09f912bede 100644
--- a/testing/testing_zgemm.c
+++ b/testing/testing_zgemm.c
@@ -114,7 +114,7 @@ testing_t   test_zgemm;
 const char *zgemm_params[] = { "mtxfmt", "nb", "transA", "transB", "m",     "n",     "k",     "lda", "ldb",
                                "ldc", "alpha",  "beta",   "seedA", "seedB", "seedC", NULL };
 const char *zgemm_output[] = { NULL };
-const char *zgemm_outchk[] = { "RETURN", NULL };
+const char *zgemm_outchk[] = { "||A||", "||B||", "||C||", "||R||", "RETURN", NULL };
 
 /**
  * @brief Testing registration function