diff --git a/runtime/quark/codelets/codelet_zgetrf.c b/runtime/quark/codelets/codelet_zgetrf.c
index a73e7e7b51fa2c45b8c2c8de52e94b12c45a61ee..47b5c96e517cb1aabfcbc67dd7f2f0f2326e4bee 100644
--- a/runtime/quark/codelets/codelet_zgetrf.c
+++ b/runtime/quark/codelets/codelet_zgetrf.c
@@ -65,7 +65,7 @@ void CORE_zgetrf_quark(Quark *quark)
     int info;
 
     quark_unpack_args_9(quark, m, n, A, lda, IPIV, sequence, request, check_info, iinfo);
-    info = LAPACKE_zgetrf_work(LAPACK_COL_MAJOR, m, n, A, lda, IPIV );
+    CORE_zgetrf( m, n, A, lda, IPIV, &info );
     if (info != MORSE_SUCCESS && check_info)
         RUNTIME_sequence_flush(quark, sequence, request, iinfo+info);
 }
diff --git a/runtime/quark/codelets/codelet_zlacpy.c b/runtime/quark/codelets/codelet_zlacpy.c
index a48db4e20db709c327da2fe54039f675feba1d13..fedac25e120ee5569f226f2831bb0642aab95760 100644
--- a/runtime/quark/codelets/codelet_zlacpy.c
+++ b/runtime/quark/codelets/codelet_zlacpy.c
@@ -67,9 +67,6 @@ void CORE_zlacpy_quark(Quark *quark)
     int LDB;
 
     quark_unpack_args_7(quark, uplo, M, N, A, LDA, B, LDB);
-    LAPACKE_zlacpy_work(
-        LAPACK_COL_MAJOR,
-        morse_lapack_const(uplo),
-        M, N, A, LDA, B, LDB);
+    CORE_zlacpy(uplo, M, N, A, LDA, B, LDB);
 }
 
diff --git a/runtime/quark/codelets/codelet_zlag2c.c b/runtime/quark/codelets/codelet_zlag2c.c
index 43804a3e43265450d451dd14e990b092c12d81d6..3a009d81172a7503e86c8ae231c52bc80e012c52 100644
--- a/runtime/quark/codelets/codelet_zlag2c.c
+++ b/runtime/quark/codelets/codelet_zlag2c.c
@@ -68,7 +68,7 @@ void CORE_zlag2c_quark(Quark *quark)
     int info;
 
     quark_unpack_args_8(quark, m, n, A, lda, B, ldb, sequence, request);
-    info = LAPACKE_zlag2c_work(LAPACK_COL_MAJOR, m, n, A, lda, B, ldb);
+    CORE_zlag2c( m, n, A, lda, B, ldb);
     if (sequence->status == MORSE_SUCCESS && info != 0)
         RUNTIME_sequence_flush(quark, sequence, request, info);
 }
@@ -105,6 +105,6 @@ void CORE_clag2z_quark(Quark *quark)
     int ldb;
 
     quark_unpack_args_6(quark, m, n, A, lda, B, ldb);
-    LAPACKE_clag2z_work(LAPACK_COL_MAJOR, m, n, A, lda, B, ldb);
+    CORE_clag2z( m, n, A, lda, B, ldb);
 }
 
diff --git a/runtime/quark/codelets/codelet_zlaset.c b/runtime/quark/codelets/codelet_zlaset.c
index 37ef013993134e28faaaf00b546d0c11fda40dec..872cfa621a715e709fac468ced115b6554104242 100644
--- a/runtime/quark/codelets/codelet_zlaset.c
+++ b/runtime/quark/codelets/codelet_zlaset.c
@@ -97,8 +97,5 @@ void CORE_zlaset_quark(Quark *quark)
     int LDA;
 
     quark_unpack_args_7(quark, uplo, M, N, alpha, beta, A, LDA);
-    LAPACKE_zlaset_work(
-        LAPACK_COL_MAJOR,
-        morse_lapack_const(uplo),
-        M, N, alpha, beta, A, LDA);
+    CORE_zlaset(uplo, M, N, alpha, beta, A, LDA);
 }
diff --git a/runtime/quark/codelets/codelet_zlauum.c b/runtime/quark/codelets/codelet_zlauum.c
index bc36ab363dedd983d437c57a802c3aac7249c694..beea79f527129d38a4e5838c0f94594b1bf325e7 100644
--- a/runtime/quark/codelets/codelet_zlauum.c
+++ b/runtime/quark/codelets/codelet_zlauum.c
@@ -60,5 +60,5 @@ void CORE_zlauum_quark(Quark *quark)
     int LDA;
 
     quark_unpack_args_4(quark, uplo, N, A, LDA);
-    LAPACKE_zlauum_work(LAPACK_COL_MAJOR, morse_lapack_const(uplo), N, A, LDA);
+    CORE_zlauum(uplo, N, A, LDA);
 }
diff --git a/runtime/quark/codelets/codelet_zpotrf.c b/runtime/quark/codelets/codelet_zpotrf.c
index de22c1698c7407fa639a6207d0c79d71de2b77e7..e9151f11e43fae7b6c5f4c5613f837e14d37a0a0 100644
--- a/runtime/quark/codelets/codelet_zpotrf.c
+++ b/runtime/quark/codelets/codelet_zpotrf.c
@@ -69,10 +69,7 @@ void CORE_zpotrf_quark(Quark *quark)
     int info;
 
     quark_unpack_args_7(quark, uplo, n, A, lda, sequence, request, iinfo);
-    info = LAPACKE_zpotrf_work(
-        LAPACK_COL_MAJOR,
-        morse_lapack_const(uplo),
-        n, A, lda);
+    CORE_zpotrf(uplo, n, A, lda, &info);
     if (sequence->status == MORSE_SUCCESS && info != 0)
         RUNTIME_sequence_flush(quark, sequence, request, iinfo+info);
 }
diff --git a/runtime/quark/codelets/codelet_ztrtri.c b/runtime/quark/codelets/codelet_ztrtri.c
index d502fc3eb51be578405eaa87eebdde15b12cf84c..8a8000a6517d8ec8fb9ea83c68eefbcedaf1ae65 100644
--- a/runtime/quark/codelets/codelet_ztrtri.c
+++ b/runtime/quark/codelets/codelet_ztrtri.c
@@ -72,10 +72,7 @@ void CORE_ztrtri_quark(Quark *quark)
     int info;
 
     quark_unpack_args_8(quark, uplo, diag, N, A, LDA, sequence, request, iinfo);
-    info = LAPACKE_ztrtri_work(
-        LAPACK_COL_MAJOR,
-        morse_lapack_const(uplo), morse_lapack_const(diag),
-        N, A, LDA);
+    CORE_ztrtri(uplo, diag, N, A, LDA, &info);
     if ((sequence->status == MORSE_SUCCESS) && (info > 0))
         RUNTIME_sequence_flush(quark, sequence, request, iinfo + info);
 }
diff --git a/runtime/starpu/codelets/codelet_zgetrf.c b/runtime/starpu/codelets/codelet_zgetrf.c
index 1f6bcef9d7ac6e84b598aa635ab60f6fa3b67f41..316fa65d09b3d16230a325c024e6faf63492f12c 100644
--- a/runtime/starpu/codelets/codelet_zgetrf.c
+++ b/runtime/starpu/codelets/codelet_zgetrf.c
@@ -71,7 +71,7 @@ static void cl_zgetrf_cpu_func(void *descr[], void *cl_arg)
 
     A = (MORSE_Complex64_t *)STARPU_MATRIX_GET_PTR(descr[0]);
     starpu_codelet_unpack_args(cl_arg, &m, &n, &lda, &IPIV, &check_info, &iinfo);
-    info = LAPACKE_zgetrf_work(LAPACK_COL_MAJOR, m, n, A, lda, IPIV );
+    CORE_zgetrf( m, n, A, lda, IPIV, &info );
 }
 /*
  * Codelet definition
diff --git a/runtime/starpu/codelets/codelet_zlacpy.c b/runtime/starpu/codelets/codelet_zlacpy.c
index 088601d9ab986dc9163b407d5fd918c9e6a99e62..41b514f1eb901a492aa857260a7bc8dd13fe6e2f 100644
--- a/runtime/starpu/codelets/codelet_zlacpy.c
+++ b/runtime/starpu/codelets/codelet_zlacpy.c
@@ -79,10 +79,7 @@ static void cl_zlacpy_cpu_func(void *descr[], void *cl_arg)
     A = (MORSE_Complex64_t *)STARPU_MATRIX_GET_PTR(descr[0]);
     B = (MORSE_Complex64_t *)STARPU_MATRIX_GET_PTR(descr[1]);
     starpu_codelet_unpack_args(cl_arg, &uplo, &M, &N, &LDA, &LDB);
-    LAPACKE_zlacpy_work(
-        LAPACK_COL_MAJOR,
-        morse_lapack_const(uplo),
-        M, N, A, LDA, B, LDB);
+    CORE_zlacpy(uplo, M, N, A, LDA, B, LDB);
 }
 
 /*
diff --git a/runtime/starpu/codelets/codelet_zlag2c.c b/runtime/starpu/codelets/codelet_zlag2c.c
index 3352b4cccfe352cf7dfc0e9ccd1a1fc9692e6ef3..bdc5ed6eacc3bbf76b9ef0a305bedfb602df5245 100644
--- a/runtime/starpu/codelets/codelet_zlag2c.c
+++ b/runtime/starpu/codelets/codelet_zlag2c.c
@@ -73,7 +73,7 @@ static void cl_zlag2c_cpu_func(void *descr[], void *cl_arg)
     A = (MORSE_Complex64_t *)STARPU_MATRIX_GET_PTR(descr[0]);
     B = (MORSE_Complex32_t *)STARPU_MATRIX_GET_PTR(descr[1]);
     starpu_codelet_unpack_args(cl_arg, &m, &n, &lda, &ldb);
-    LAPACKE_zlag2c_work(LAPACK_COL_MAJOR, m, n, A, lda, B, ldb);
+    CORE_zlag2c( m, n, A, lda, B, ldb);
 }
 
 void MORSE_TASK_clag2z(MORSE_option_t *options,
@@ -115,7 +115,7 @@ static void cl_clag2z_cpu_func(void *descr[], void *cl_arg)
     A = (MORSE_Complex32_t *)STARPU_MATRIX_GET_PTR(descr[0]);
     B = (MORSE_Complex64_t *)STARPU_MATRIX_GET_PTR(descr[1]);
     starpu_codelet_unpack_args(cl_arg, &m, &n, &lda, &ldb);
-    LAPACKE_clag2z_work(LAPACK_COL_MAJOR, m, n, A, lda, B, ldb);
+    CORE_clag2z( m, n, A, lda, B, ldb);
 }
 
 /*
diff --git a/runtime/starpu/codelets/codelet_zlaset.c b/runtime/starpu/codelets/codelet_zlaset.c
index 18096ecf68092729191b7824a8fd2f66161e6dbd..6cd692d2215b4ac8260a2ba632b9a7b50a188a8f 100644
--- a/runtime/starpu/codelets/codelet_zlaset.c
+++ b/runtime/starpu/codelets/codelet_zlaset.c
@@ -107,10 +107,7 @@ static void cl_zlaset_cpu_func(void *descr[], void *cl_arg)
 
     A = (MORSE_Complex64_t *)STARPU_MATRIX_GET_PTR(descr[0]);
     starpu_codelet_unpack_args(cl_arg, &uplo, &M, &N, &alpha, &beta, &LDA);
-    LAPACKE_zlaset_work(
-        LAPACK_COL_MAJOR,
-        morse_lapack_const(uplo),
-        M, N, alpha, beta, A, LDA);
+    CORE_zlaset(uplo, M, N, alpha, beta, A, LDA);
 }
 /*
  * Codelet definition
diff --git a/runtime/starpu/codelets/codelet_zlauum.c b/runtime/starpu/codelets/codelet_zlauum.c
index 155e9fa7414780a34c26cb14bcb05796169c2b05..0c3ba14bd9c2e3bb0507d22084419e1b2ad31a31 100644
--- a/runtime/starpu/codelets/codelet_zlauum.c
+++ b/runtime/starpu/codelets/codelet_zlauum.c
@@ -70,7 +70,7 @@ static void cl_zlauum_cpu_func(void *descr[], void *cl_arg)
 
     A = (MORSE_Complex64_t *)STARPU_MATRIX_GET_PTR(descr[0]);
     starpu_codelet_unpack_args(cl_arg, &uplo, &N, &LDA);
-    LAPACKE_zlauum_work(LAPACK_COL_MAJOR, morse_lapack_const(uplo), N, A, LDA);
+    CORE_zlauum(uplo, N, A, LDA);
 }
 
 #if defined(CHAMELEON_USE_MAGMA)
diff --git a/runtime/starpu/codelets/codelet_zpotrf.c b/runtime/starpu/codelets/codelet_zpotrf.c
index c3cf8adc0541c4577de80197205eb41639326802..939a9e1da4f2a8a2ebaa8ef29b9eb7b0256dd7a4 100644
--- a/runtime/starpu/codelets/codelet_zpotrf.c
+++ b/runtime/starpu/codelets/codelet_zpotrf.c
@@ -76,10 +76,7 @@ static void cl_zpotrf_cpu_func(void *descr[], void *cl_arg)
     A = (MORSE_Complex64_t *)STARPU_MATRIX_GET_PTR(descr[0]);
 
     starpu_codelet_unpack_args(cl_arg, &uplo, &n, &lda, &iinfo);
-    info = LAPACKE_zpotrf_work(
-        LAPACK_COL_MAJOR,
-        morse_lapack_const(uplo),
-        n, A, lda);
+    CORE_zpotrf(uplo, n, A, lda, &info);
 }
 
 #ifdef CHAMELEON_USE_MAGMA
diff --git a/runtime/starpu/codelets/codelet_ztrtri.c b/runtime/starpu/codelets/codelet_ztrtri.c
index 0acfe578624b2fbfc2bb28f9e6f2a92285320bc1..4f7145c596b38da9c585f8977dfcef500c4ddb70 100644
--- a/runtime/starpu/codelets/codelet_ztrtri.c
+++ b/runtime/starpu/codelets/codelet_ztrtri.c
@@ -78,10 +78,7 @@ static void cl_ztrtri_cpu_func(void *descr[], void *cl_arg)
 
     A = (MORSE_Complex64_t *)STARPU_MATRIX_GET_PTR(descr[0]);
     starpu_codelet_unpack_args(cl_arg, &uplo, &diag, &N, &LDA, &iinfo);
-    info = LAPACKE_ztrtri_work(
-        LAPACK_COL_MAJOR,
-        morse_lapack_const(uplo), morse_lapack_const(diag),
-        N, A, LDA);
+    CORE_ztrtri(uplo, diag, N, A, LDA, &info);
 }
 
 #if defined(CHAMELEON_USE_MAGMA)