From 453273488567c1dfee38ca0df287b9e51dfa9025 Mon Sep 17 00:00:00 2001
From: Mathieu Faverge <mathieu.faverge@inria.fr>
Date: Sat, 13 Jan 2018 15:02:36 +0100
Subject: [PATCH] Reorder getoncpu async

---
 compute/zgeadd.c        | 2 +-
 compute/zgelqf.c        | 2 +-
 compute/zgelqf_param.c  | 2 +-
 compute/zgelqs.c        | 2 +-
 compute/zgelqs_param.c  | 2 +-
 compute/zgels.c         | 2 +-
 compute/zgels_param.c   | 2 +-
 compute/zgemm.c         | 2 +-
 compute/zgeqrf.c        | 2 +-
 compute/zgeqrf_param.c  | 2 +-
 compute/zgeqrs.c        | 2 +-
 compute/zgeqrs_param.c  | 2 +-
 compute/zgesv_incpiv.c  | 2 +-
 compute/zgesv_nopiv.c   | 2 +-
 compute/zgetrf_incpiv.c | 2 +-
 compute/zgetrf_nopiv.c  | 2 +-
 compute/zgetrs_incpiv.c | 2 +-
 compute/zgetrs_nopiv.c  | 2 +-
 compute/zhemm.c         | 2 +-
 compute/zher2k.c        | 2 +-
 compute/zherk.c         | 2 +-
 compute/zlange.c        | 2 +-
 compute/zlanhe.c        | 2 +-
 compute/zlauum.c        | 2 +-
 compute/zposv.c         | 2 +-
 compute/zpotrf.c        | 2 +-
 compute/zpotri.c        | 2 +-
 compute/zpotrimm.c      | 2 +-
 compute/zpotrs.c        | 2 +-
 compute/zsymm.c         | 2 +-
 compute/zsyr2k.c        | 2 +-
 compute/zsyrk.c         | 2 +-
 compute/zsysv.c         | 2 +-
 compute/zsytrf.c        | 2 +-
 compute/zsytrs.c        | 2 +-
 compute/ztpgqrt.c       | 2 +-
 compute/ztpqrt.c        | 2 +-
 compute/ztradd.c        | 2 +-
 compute/ztrmm.c         | 2 +-
 compute/ztrsm.c         | 2 +-
 compute/ztrsmpl.c       | 2 +-
 compute/ztrtri.c        | 2 +-
 compute/zunglq.c        | 2 +-
 compute/zunglq_param.c  | 2 +-
 compute/zungqr.c        | 2 +-
 compute/zungqr_param.c  | 2 +-
 compute/zunmlq.c        | 2 +-
 compute/zunmlq_param.c  | 2 +-
 compute/zunmqr.c        | 2 +-
 compute/zunmqr_param.c  | 2 +-
 50 files changed, 50 insertions(+), 50 deletions(-)

diff --git a/compute/zgeadd.c b/compute/zgeadd.c
index 2a6f0ea1c..bb3e9afec 100644
--- a/compute/zgeadd.c
+++ b/compute/zgeadd.c
@@ -249,9 +249,9 @@ int MORSE_zgeadd_Tile(MORSE_enum trans,
     }
     morse_sequence_create(morse, &sequence);
     MORSE_zgeadd_Tile_Async(trans, alpha, A, beta, B, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( A, sequence );
     RUNTIME_desc_getoncpu_async( B, sequence );
+    morse_sequence_wait(morse, sequence);
 
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/zgelqf.c b/compute/zgelqf.c
index 11e4cc421..9dcd6e8f1 100644
--- a/compute/zgelqf.c
+++ b/compute/zgelqf.c
@@ -200,8 +200,8 @@ int MORSE_zgelqf_Tile(MORSE_desc_t *A, MORSE_desc_t *T)
     }
     morse_sequence_create(morse, &sequence);
     MORSE_zgelqf_Tile_Async(A, T, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( A, sequence );
+    morse_sequence_wait(morse, sequence);
 
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/zgelqf_param.c b/compute/zgelqf_param.c
index de955081e..215f6efd5 100644
--- a/compute/zgelqf_param.c
+++ b/compute/zgelqf_param.c
@@ -197,8 +197,8 @@ int MORSE_zgelqf_param_Tile(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_
     }
     morse_sequence_create(morse, &sequence);
     MORSE_zgelqf_param_Tile_Async(qrtree, A, TS, TT, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( A, sequence );
+    morse_sequence_wait(morse, sequence);
 
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/zgelqs.c b/compute/zgelqs.c
index 1e4d304c0..c82f52ecd 100644
--- a/compute/zgelqs.c
+++ b/compute/zgelqs.c
@@ -222,9 +222,9 @@ int MORSE_zgelqs_Tile(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *B)
     }
     morse_sequence_create(morse, &sequence);
     MORSE_zgelqs_Tile_Async(A, T, B, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( A, sequence );
     RUNTIME_desc_getoncpu_async( B, sequence );
+    morse_sequence_wait(morse, sequence);
 
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/zgelqs_param.c b/compute/zgelqs_param.c
index d32485202..76384fb7d 100644
--- a/compute/zgelqs_param.c
+++ b/compute/zgelqs_param.c
@@ -227,9 +227,9 @@ int MORSE_zgelqs_param_Tile(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_
     }
     morse_sequence_create(morse, &sequence);
     MORSE_zgelqs_param_Tile_Async(qrtree, A, TS, TT, B, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( A, sequence );
     RUNTIME_desc_getoncpu_async( B, sequence );
+    morse_sequence_wait(morse, sequence);
 
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/zgels.c b/compute/zgels.c
index cc2126d79..9a83d4fa9 100644
--- a/compute/zgels.c
+++ b/compute/zgels.c
@@ -286,9 +286,9 @@ int MORSE_zgels_Tile(MORSE_enum trans, MORSE_desc_t *A,
     }
     morse_sequence_create(morse, &sequence);
     MORSE_zgels_Tile_Async(trans, A, T, B, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( A, sequence );
     RUNTIME_desc_getoncpu_async( B, sequence );
+    morse_sequence_wait(morse, sequence);
 
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/zgels_param.c b/compute/zgels_param.c
index 3f7e3653a..4588de3a1 100644
--- a/compute/zgels_param.c
+++ b/compute/zgels_param.c
@@ -291,9 +291,9 @@ int MORSE_zgels_param_Tile(const libhqr_tree_t *qrtree, MORSE_enum trans, MORSE_
     }
     morse_sequence_create(morse, &sequence);
     MORSE_zgels_param_Tile_Async(qrtree, trans, A, TS, TT, B, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( A, sequence );
     RUNTIME_desc_getoncpu_async( B, sequence );
+    morse_sequence_wait(morse, sequence);
 
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/zgemm.c b/compute/zgemm.c
index 44f4bb889..b69e804a3 100644
--- a/compute/zgemm.c
+++ b/compute/zgemm.c
@@ -321,10 +321,10 @@ int MORSE_zgemm_Tile(MORSE_enum transA, MORSE_enum transB,
     }
     morse_sequence_create(morse, &sequence);
     MORSE_zgemm_Tile_Async(transA, transB, alpha, A, B, beta, C, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( A, sequence );
     RUNTIME_desc_getoncpu_async( B, sequence );
     RUNTIME_desc_getoncpu_async( C, sequence );
+    morse_sequence_wait(morse, sequence);
 
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/zgeqrf.c b/compute/zgeqrf.c
index 0ec53a853..04433b567 100644
--- a/compute/zgeqrf.c
+++ b/compute/zgeqrf.c
@@ -199,8 +199,8 @@ int MORSE_zgeqrf_Tile(MORSE_desc_t *A, MORSE_desc_t *T)
     }
     morse_sequence_create(morse, &sequence);
     MORSE_zgeqrf_Tile_Async(A, T, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( A, sequence );
+    morse_sequence_wait(morse, sequence);
 
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/zgeqrf_param.c b/compute/zgeqrf_param.c
index 2c456a5c5..3924becd6 100644
--- a/compute/zgeqrf_param.c
+++ b/compute/zgeqrf_param.c
@@ -206,8 +206,8 @@ int MORSE_zgeqrf_param_Tile(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_
     }
     morse_sequence_create(morse, &sequence);
     MORSE_zgeqrf_param_Tile_Async(qrtree, A, TS, TT, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( A, sequence );
+    morse_sequence_wait(morse, sequence);
 
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/zgeqrs.c b/compute/zgeqrs.c
index e3f40ec0d..99e7cea47 100644
--- a/compute/zgeqrs.c
+++ b/compute/zgeqrs.c
@@ -221,10 +221,10 @@ int MORSE_zgeqrs_Tile(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *B)
     }
     morse_sequence_create(morse, &sequence);
     MORSE_zgeqrs_Tile_Async(A, T, B, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( A, sequence );
     RUNTIME_desc_getoncpu_async( T, sequence );
     RUNTIME_desc_getoncpu_async( B, sequence );
+    morse_sequence_wait(morse, sequence);
 
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/zgeqrs_param.c b/compute/zgeqrs_param.c
index 21abd84e1..83d16068e 100644
--- a/compute/zgeqrs_param.c
+++ b/compute/zgeqrs_param.c
@@ -216,11 +216,11 @@ int MORSE_zgeqrs_param_Tile(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_
     }
     morse_sequence_create(morse, &sequence);
     MORSE_zgeqrs_param_Tile_Async(qrtree, A, TS, TT, B, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( A, sequence );
     RUNTIME_desc_getoncpu_async( TS, sequence );
     RUNTIME_desc_getoncpu_async( TT, sequence );
     RUNTIME_desc_getoncpu_async( B, sequence );
+    morse_sequence_wait(morse, sequence);
 
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/zgesv_incpiv.c b/compute/zgesv_incpiv.c
index 4ab52cd8b..59b3b9f81 100644
--- a/compute/zgesv_incpiv.c
+++ b/compute/zgesv_incpiv.c
@@ -226,9 +226,9 @@ int MORSE_zgesv_incpiv_Tile(MORSE_desc_t *A, MORSE_desc_t *L, int *IPIV, MORSE_d
     }
     morse_sequence_create(morse, &sequence);
     MORSE_zgesv_incpiv_Tile_Async(A, L, IPIV, B, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( A, sequence );
     RUNTIME_desc_getoncpu_async( B, sequence );
+    morse_sequence_wait(morse, sequence);
     
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/zgesv_nopiv.c b/compute/zgesv_nopiv.c
index 3261da14d..0e8ae5277 100644
--- a/compute/zgesv_nopiv.c
+++ b/compute/zgesv_nopiv.c
@@ -218,9 +218,9 @@ int MORSE_zgesv_nopiv_Tile(MORSE_desc_t *A, MORSE_desc_t *B)
     }
     morse_sequence_create(morse, &sequence);
     MORSE_zgesv_nopiv_Tile_Async(A, B, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( A, sequence );
     RUNTIME_desc_getoncpu_async( B, sequence );
+    morse_sequence_wait(morse, sequence);
     
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/zgetrf_incpiv.c b/compute/zgetrf_incpiv.c
index 6e4ba0ecf..9ea8c5562 100644
--- a/compute/zgetrf_incpiv.c
+++ b/compute/zgetrf_incpiv.c
@@ -204,8 +204,8 @@ int MORSE_zgetrf_incpiv_Tile(MORSE_desc_t *A, MORSE_desc_t *L, int *IPIV)
     }
     morse_sequence_create(morse, &sequence);
     MORSE_zgetrf_incpiv_Tile_Async(A, L, IPIV, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( A, sequence );
+    morse_sequence_wait(morse, sequence);
 
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/zgetrf_nopiv.c b/compute/zgetrf_nopiv.c
index 17cac2dd2..14546df8d 100644
--- a/compute/zgetrf_nopiv.c
+++ b/compute/zgetrf_nopiv.c
@@ -192,8 +192,8 @@ int MORSE_zgetrf_nopiv_Tile(MORSE_desc_t *A)
     }
     morse_sequence_create(morse, &sequence);
     MORSE_zgetrf_nopiv_Tile_Async(A, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( A, sequence );
+    morse_sequence_wait(morse, sequence);
     
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/zgetrs_incpiv.c b/compute/zgetrs_incpiv.c
index d5d79a006..5cf6d483a 100644
--- a/compute/zgetrs_incpiv.c
+++ b/compute/zgetrs_incpiv.c
@@ -229,9 +229,9 @@ int MORSE_zgetrs_incpiv_Tile(MORSE_desc_t *A, MORSE_desc_t *L, int *IPIV, MORSE_
     }
     morse_sequence_create(morse, &sequence);
     MORSE_zgetrs_incpiv_Tile_Async(A, L, IPIV, B, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( A, sequence );
     RUNTIME_desc_getoncpu_async( B, sequence );
+    morse_sequence_wait(morse, sequence);
     
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/zgetrs_nopiv.c b/compute/zgetrs_nopiv.c
index 80d3f8e48..8be6d99d9 100644
--- a/compute/zgetrs_nopiv.c
+++ b/compute/zgetrs_nopiv.c
@@ -217,9 +217,9 @@ int MORSE_zgetrs_nopiv_Tile(MORSE_desc_t *A, MORSE_desc_t *B)
     }
     morse_sequence_create(morse, &sequence);
     MORSE_zgetrs_nopiv_Tile_Async(A, B, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( A, sequence );
     RUNTIME_desc_getoncpu_async( B, sequence );
+    morse_sequence_wait(morse, sequence);
 
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/zhemm.c b/compute/zhemm.c
index 834557cc7..ad7429942 100644
--- a/compute/zhemm.c
+++ b/compute/zhemm.c
@@ -286,10 +286,10 @@ int MORSE_zhemm_Tile(MORSE_enum side, MORSE_enum uplo,
     }
     morse_sequence_create(morse, &sequence);
     MORSE_zhemm_Tile_Async(side, uplo, alpha, A, B, beta, C, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( A, sequence );
     RUNTIME_desc_getoncpu_async( B, sequence );
     RUNTIME_desc_getoncpu_async( C, sequence );
+    morse_sequence_wait(morse, sequence);
     
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/zher2k.c b/compute/zher2k.c
index 64ef671cc..2f41bd1a7 100644
--- a/compute/zher2k.c
+++ b/compute/zher2k.c
@@ -285,10 +285,10 @@ int MORSE_zher2k_Tile(MORSE_enum uplo, MORSE_enum trans,
     }
     morse_sequence_create(morse, &sequence);
     MORSE_zher2k_Tile_Async(uplo, trans, alpha, A, B, beta, C, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( A, sequence );
     RUNTIME_desc_getoncpu_async( B, sequence );
     RUNTIME_desc_getoncpu_async( C, sequence );
+    morse_sequence_wait(morse, sequence);
     
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/zherk.c b/compute/zherk.c
index 4a079f951..e0a0a1b87 100644
--- a/compute/zherk.c
+++ b/compute/zherk.c
@@ -261,9 +261,9 @@ int MORSE_zherk_Tile(MORSE_enum uplo, MORSE_enum trans,
     }
     morse_sequence_create(morse, &sequence);
     MORSE_zherk_Tile_Async(uplo, trans, alpha, A, beta, C, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( A, sequence );
     RUNTIME_desc_getoncpu_async( C, sequence );
+    morse_sequence_wait(morse, sequence);
     
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/zlange.c b/compute/zlange.c
index a83b03d17..a11499a2b 100644
--- a/compute/zlange.c
+++ b/compute/zlange.c
@@ -147,8 +147,8 @@ double MORSE_zlange(MORSE_enum norm, int M, int N,
 
 /*    if ( MORSE_TRANSLATION == MORSE_OUTOFPLACE ) {*/
         morse_zooptile2lap(descA, A, NB, NB, LDA, N,  sequence, &request);
-        morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( &descA, sequence );
+        morse_sequence_wait(morse, sequence);
         morse_desc_mat_free(&descA);
 /*    } else {*/
 /*        morse_ziptile2lap( descA, A, NB, NB, LDA, N,  sequence, &request);*/
diff --git a/compute/zlanhe.c b/compute/zlanhe.c
index e4941322c..7130bd6bd 100644
--- a/compute/zlanhe.c
+++ b/compute/zlanhe.c
@@ -147,8 +147,8 @@ double MORSE_zlanhe(MORSE_enum norm, MORSE_enum uplo, int N,
 
 /*    if ( MORSE_TRANSLATION == MORSE_OUTOFPLACE ) {*/
     morse_zooptile2lap(descA, A, NB, NB, LDA, N,  sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( &descA, sequence );
+    morse_sequence_wait(morse, sequence);
     morse_desc_mat_free(&descA);
 /*    } else {*/
 /*        morse_ziptile2lap( descA, A, NB, NB, LDA, N,  sequence, &request);*/
diff --git a/compute/zlauum.c b/compute/zlauum.c
index 926bfbc0b..23ac0ebb2 100644
--- a/compute/zlauum.c
+++ b/compute/zlauum.c
@@ -201,8 +201,8 @@ int MORSE_zlauum_Tile(MORSE_enum uplo, MORSE_desc_t *A)
     }
     morse_sequence_create(morse, &sequence);
     MORSE_zlauum_Tile_Async(uplo, A, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( A, sequence );
+    morse_sequence_wait(morse, sequence);
     
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/zposv.c b/compute/zposv.c
index 96d393df0..4bcbd9c59 100644
--- a/compute/zposv.c
+++ b/compute/zposv.c
@@ -244,9 +244,9 @@ int MORSE_zposv_Tile(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B)
     }
     morse_sequence_create(morse, &sequence);
     MORSE_zposv_Tile_Async(uplo, A, B, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( A, sequence );
     RUNTIME_desc_getoncpu_async( B, sequence );
+    morse_sequence_wait(morse, sequence);
     
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/zpotrf.c b/compute/zpotrf.c
index 3cfa25b04..63c1b7b2c 100644
--- a/compute/zpotrf.c
+++ b/compute/zpotrf.c
@@ -213,8 +213,8 @@ int MORSE_zpotrf_Tile(MORSE_enum uplo, MORSE_desc_t *A)
     }
     morse_sequence_create(morse, &sequence);
     MORSE_zpotrf_Tile_Async(uplo, A, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( A, sequence );
+    morse_sequence_wait(morse, sequence);
 
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/zpotri.c b/compute/zpotri.c
index fec3b0f7f..cf15fe29e 100644
--- a/compute/zpotri.c
+++ b/compute/zpotri.c
@@ -201,8 +201,8 @@ int MORSE_zpotri_Tile(MORSE_enum uplo, MORSE_desc_t *A)
     }
     morse_sequence_create(morse, &sequence);
     MORSE_zpotri_Tile_Async(uplo, A, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( A, sequence );
+    morse_sequence_wait(morse, sequence);
     
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/zpotrimm.c b/compute/zpotrimm.c
index f83321f3b..2d2089164 100644
--- a/compute/zpotrimm.c
+++ b/compute/zpotrimm.c
@@ -219,8 +219,8 @@ int MORSE_zpotrimm_Tile(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE
     }
     morse_sequence_create(morse, &sequence);
     MORSE_zpotrimm_Tile_Async(uplo, A, B, C, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( C, sequence );
+    morse_sequence_wait(morse, sequence);
 
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/zpotrs.c b/compute/zpotrs.c
index 21cc2a3c6..21cb261cf 100644
--- a/compute/zpotrs.c
+++ b/compute/zpotrs.c
@@ -219,9 +219,9 @@ int MORSE_zpotrs_Tile(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B)
     }
     morse_sequence_create(morse, &sequence);
     MORSE_zpotrs_Tile_Async(uplo, A, B, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( A, sequence );
     RUNTIME_desc_getoncpu_async( B, sequence );
+    morse_sequence_wait(morse, sequence);
 
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/zsymm.c b/compute/zsymm.c
index bd66fa6b3..51fdca0bd 100644
--- a/compute/zsymm.c
+++ b/compute/zsymm.c
@@ -286,10 +286,10 @@ int MORSE_zsymm_Tile(MORSE_enum side, MORSE_enum uplo,
     }
     morse_sequence_create(morse, &sequence);
     MORSE_zsymm_Tile_Async(side, uplo, alpha, A, B, beta, C, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( A, sequence );
     RUNTIME_desc_getoncpu_async( B, sequence );
     RUNTIME_desc_getoncpu_async( C, sequence );
+    morse_sequence_wait(morse, sequence);
 
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/zsyr2k.c b/compute/zsyr2k.c
index 4f38cf71a..9ad897f4e 100644
--- a/compute/zsyr2k.c
+++ b/compute/zsyr2k.c
@@ -285,10 +285,10 @@ int MORSE_zsyr2k_Tile(MORSE_enum uplo, MORSE_enum trans,
     }
     morse_sequence_create(morse, &sequence);
     MORSE_zsyr2k_Tile_Async(uplo, trans, alpha, A, B, beta, C, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( A, sequence );
     RUNTIME_desc_getoncpu_async( B, sequence );
     RUNTIME_desc_getoncpu_async( C, sequence );
+    morse_sequence_wait(morse, sequence);
     
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/zsyrk.c b/compute/zsyrk.c
index 59da04f0f..ac57f0292 100644
--- a/compute/zsyrk.c
+++ b/compute/zsyrk.c
@@ -261,9 +261,9 @@ int MORSE_zsyrk_Tile(MORSE_enum uplo, MORSE_enum trans,
     }
     morse_sequence_create(morse, &sequence);
     MORSE_zsyrk_Tile_Async(uplo, trans, alpha, A, beta, C, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( A, sequence );
     RUNTIME_desc_getoncpu_async( C, sequence );
+    morse_sequence_wait(morse, sequence);
     
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/zsysv.c b/compute/zsysv.c
index 1e5dafbda..818b77282 100644
--- a/compute/zsysv.c
+++ b/compute/zsysv.c
@@ -237,9 +237,9 @@ int MORSE_zsysv_Tile(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B)
     }
     morse_sequence_create(morse, &sequence);
     MORSE_zsysv_Tile_Async(uplo, A, B, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( A, sequence );
     RUNTIME_desc_getoncpu_async( B, sequence );
+    morse_sequence_wait(morse, sequence);
 
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/zsytrf.c b/compute/zsytrf.c
index b0457b5f1..c0cce1f3d 100644
--- a/compute/zsytrf.c
+++ b/compute/zsytrf.c
@@ -202,8 +202,8 @@ int MORSE_zsytrf_Tile(MORSE_enum uplo, MORSE_desc_t *A)
     }
     morse_sequence_create(morse, &sequence);
     MORSE_zsytrf_Tile_Async(uplo, A, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( A, sequence );
+    morse_sequence_wait(morse, sequence);
 
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/zsytrs.c b/compute/zsytrs.c
index 57666d946..7411d2479 100644
--- a/compute/zsytrs.c
+++ b/compute/zsytrs.c
@@ -215,9 +215,9 @@ int MORSE_zsytrs_Tile(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B)
     }
     morse_sequence_create(morse, &sequence);
     MORSE_zsytrs_Tile_Async(uplo, A, B, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( A, sequence );
     RUNTIME_desc_getoncpu_async( B, sequence );
+    morse_sequence_wait(morse, sequence);
 
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/ztpgqrt.c b/compute/ztpgqrt.c
index a4e176b70..f5f2b0595 100644
--- a/compute/ztpgqrt.c
+++ b/compute/ztpgqrt.c
@@ -296,9 +296,9 @@ int MORSE_ztpgqrt_Tile( int L,
     }
     morse_sequence_create(morse, &sequence);
     MORSE_ztpgqrt_Tile_Async(L, V1, T1, V2, T2, Q1, Q2, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( Q1, sequence );
     RUNTIME_desc_getoncpu_async( Q2, sequence );
+    morse_sequence_wait(morse, sequence);
 
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/ztpqrt.c b/compute/ztpqrt.c
index 0e1729f13..b8cf1b384 100644
--- a/compute/ztpqrt.c
+++ b/compute/ztpqrt.c
@@ -268,9 +268,9 @@ int MORSE_ztpqrt_Tile( int L, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_desc_t *T
     }
     morse_sequence_create(morse, &sequence);
     MORSE_ztpqrt_Tile_Async(L, A, B, T, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( A, sequence );
     RUNTIME_desc_getoncpu_async( B, sequence );
+    morse_sequence_wait(morse, sequence);
 
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/ztradd.c b/compute/ztradd.c
index d9c62b0b2..ab16ed277 100644
--- a/compute/ztradd.c
+++ b/compute/ztradd.c
@@ -265,9 +265,9 @@ int MORSE_ztradd_Tile(MORSE_enum uplo, MORSE_enum trans,
     }
     morse_sequence_create(morse, &sequence);
     MORSE_ztradd_Tile_Async(uplo, trans, alpha, A, beta, B, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( A, sequence );
     RUNTIME_desc_getoncpu_async( B, sequence );
+    morse_sequence_wait(morse, sequence);
 
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/ztrmm.c b/compute/ztrmm.c
index 2590c24eb..1e7411a54 100644
--- a/compute/ztrmm.c
+++ b/compute/ztrmm.c
@@ -287,9 +287,9 @@ int MORSE_ztrmm_Tile(MORSE_enum side, MORSE_enum uplo,
     }
     morse_sequence_create(morse, &sequence);
     MORSE_ztrmm_Tile_Async(side, uplo, transA, diag, alpha, A, B, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( A, sequence );
     RUNTIME_desc_getoncpu_async( B, sequence );
+    morse_sequence_wait(morse, sequence);
 
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/ztrsm.c b/compute/ztrsm.c
index 6ca114999..282ec5e2e 100644
--- a/compute/ztrsm.c
+++ b/compute/ztrsm.c
@@ -285,9 +285,9 @@ int MORSE_ztrsm_Tile(MORSE_enum side, MORSE_enum uplo,
     }
     morse_sequence_create(morse, &sequence);
     MORSE_ztrsm_Tile_Async(side, uplo, transA, diag, alpha, A, B, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( A, sequence );
     RUNTIME_desc_getoncpu_async( B, sequence );
+    morse_sequence_wait(morse, sequence);
     
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/ztrsmpl.c b/compute/ztrsmpl.c
index 14246f6ba..6bac3866c 100644
--- a/compute/ztrsmpl.c
+++ b/compute/ztrsmpl.c
@@ -214,9 +214,9 @@ int MORSE_ztrsmpl_Tile(MORSE_desc_t *A, MORSE_desc_t *L, int *IPIV, MORSE_desc_t
     }
     morse_sequence_create(morse, &sequence);
     MORSE_ztrsmpl_Tile_Async(A, L, IPIV, B, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( A, sequence );
     RUNTIME_desc_getoncpu_async( B, sequence );
+    morse_sequence_wait(morse, sequence);
     
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/ztrtri.c b/compute/ztrtri.c
index ddef7c2ff..01ca06dbc 100644
--- a/compute/ztrtri.c
+++ b/compute/ztrtri.c
@@ -220,8 +220,8 @@ int MORSE_ztrtri_Tile(MORSE_enum uplo, MORSE_enum diag, MORSE_desc_t *A)
     }
     morse_sequence_create(morse, &sequence);
     MORSE_ztrtri_Tile_Async(uplo, diag, A, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( A, sequence );
+    morse_sequence_wait(morse, sequence);
     
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/zunglq.c b/compute/zunglq.c
index 69b28301b..ff911006d 100644
--- a/compute/zunglq.c
+++ b/compute/zunglq.c
@@ -216,9 +216,9 @@ int MORSE_zunglq_Tile(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *Q)
     }
     morse_sequence_create(morse, &sequence);
     MORSE_zunglq_Tile_Async(A, T, Q, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( A, sequence );
     RUNTIME_desc_getoncpu_async( Q, sequence );
+    morse_sequence_wait(morse, sequence);
 
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/zunglq_param.c b/compute/zunglq_param.c
index 8e292e0dc..957ae5b3c 100644
--- a/compute/zunglq_param.c
+++ b/compute/zunglq_param.c
@@ -213,9 +213,9 @@ int MORSE_zunglq_param_Tile(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_
     }
     morse_sequence_create(morse, &sequence);
     MORSE_zunglq_param_Tile_Async(qrtree, A, TS, TT, Q, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( A, sequence );
     RUNTIME_desc_getoncpu_async( Q, sequence );
+    morse_sequence_wait(morse, sequence);
 
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/zungqr.c b/compute/zungqr.c
index ba592be85..9e0b3d1bf 100644
--- a/compute/zungqr.c
+++ b/compute/zungqr.c
@@ -215,9 +215,9 @@ int MORSE_zungqr_Tile(MORSE_desc_t *A, MORSE_desc_t *T, MORSE_desc_t *Q)
     }
     morse_sequence_create(morse, &sequence);
     MORSE_zungqr_Tile_Async(A, T, Q, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( A, sequence );
     RUNTIME_desc_getoncpu_async( Q, sequence );
+    morse_sequence_wait(morse, sequence);
     
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/zungqr_param.c b/compute/zungqr_param.c
index fcd8c79d1..5a3b71855 100644
--- a/compute/zungqr_param.c
+++ b/compute/zungqr_param.c
@@ -214,9 +214,9 @@ int MORSE_zungqr_param_Tile(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_
     }
     morse_sequence_create(morse, &sequence);
     MORSE_zungqr_param_Tile_Async(qrtree, A, TS, TT, Q, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( A, sequence );
     RUNTIME_desc_getoncpu_async( Q, sequence );
+    morse_sequence_wait(morse, sequence);
 
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/zunmlq.c b/compute/zunmlq.c
index 238d953f0..ef13e6fca 100644
--- a/compute/zunmlq.c
+++ b/compute/zunmlq.c
@@ -269,9 +269,9 @@ int MORSE_zunmlq_Tile(MORSE_enum side, MORSE_enum trans,
     }
     morse_sequence_create(morse, &sequence);
     MORSE_zunmlq_Tile_Async(side, trans, A, T, C, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( A, sequence );
     RUNTIME_desc_getoncpu_async( C, sequence );
+    morse_sequence_wait(morse, sequence);
 
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/zunmlq_param.c b/compute/zunmlq_param.c
index 6fe8c120a..6a2fdcfa3 100644
--- a/compute/zunmlq_param.c
+++ b/compute/zunmlq_param.c
@@ -268,9 +268,9 @@ int MORSE_zunmlq_param_Tile(const libhqr_tree_t *qrtree, MORSE_enum side, MORSE_
     }
     morse_sequence_create(morse, &sequence);
     MORSE_zunmlq_param_Tile_Async(qrtree, side, trans, A, TS, TT, C, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( A, sequence );
     RUNTIME_desc_getoncpu_async( C, sequence );
+    morse_sequence_wait(morse, sequence);
 
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/zunmqr.c b/compute/zunmqr.c
index 821e4ce63..ab3d7659d 100644
--- a/compute/zunmqr.c
+++ b/compute/zunmqr.c
@@ -273,9 +273,9 @@ int MORSE_zunmqr_Tile(MORSE_enum side, MORSE_enum trans,
     }
     morse_sequence_create(morse, &sequence);
     MORSE_zunmqr_Tile_Async(side, trans, A, T, C, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( A, sequence );
     RUNTIME_desc_getoncpu_async( C, sequence );
+    morse_sequence_wait(morse, sequence);
 
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
diff --git a/compute/zunmqr_param.c b/compute/zunmqr_param.c
index f591e94db..a8cb3ae25 100644
--- a/compute/zunmqr_param.c
+++ b/compute/zunmqr_param.c
@@ -274,9 +274,9 @@ int MORSE_zunmqr_param_Tile(const libhqr_tree_t *qrtree, MORSE_enum side, MORSE_
     }
     morse_sequence_create(morse, &sequence);
     MORSE_zunmqr_param_Tile_Async(qrtree, side, trans, A, TS, TT, C, sequence, &request);
-    morse_sequence_wait(morse, sequence);
     RUNTIME_desc_getoncpu_async( A, sequence );
     RUNTIME_desc_getoncpu_async( C, sequence );
+    morse_sequence_wait(morse, sequence);
 
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
-- 
GitLab