From 1c8fca4b779066cc185e25821e9e2d681a3676e5 Mon Sep 17 00:00:00 2001
From: Mathieu Faverge <mathieu.faverge@inria.fr>
Date: Mon, 29 Apr 2024 11:17:45 +0200
Subject: [PATCH] codelet/starpu: Add assert to make sure we use the correct
 datatype

---
 runtime/starpu/codelets/codelet_zgemm.c  | 4 ++++
 runtime/starpu/codelets/codelet_zherk.c  | 3 +++
 runtime/starpu/codelets/codelet_zpotrf.c | 2 ++
 runtime/starpu/codelets/codelet_zsyrk.c  | 3 +++
 runtime/starpu/codelets/codelet_ztrsm.c  | 3 +++
 5 files changed, 15 insertions(+)

diff --git a/runtime/starpu/codelets/codelet_zgemm.c b/runtime/starpu/codelets/codelet_zgemm.c
index 4321e152f..9a5dbcc32 100644
--- a/runtime/starpu/codelets/codelet_zgemm.c
+++ b/runtime/starpu/codelets/codelet_zgemm.c
@@ -44,6 +44,10 @@ cl_zgemm_cpu_func( void *descr[], void *cl_arg )
     tileB = cti_interface_get(descr[1]);
     tileC = cti_interface_get(descr[2]);
 
+    assert( tileA->flttype == ChamComplexDouble );
+    assert( tileB->flttype == ChamComplexDouble );
+    assert( tileC->flttype == ChamComplexDouble );
+
     TCORE_zgemm( clargs->transA, clargs->transB,
                  clargs->m, clargs->n, clargs->k,
                  clargs->alpha, tileA, tileB,
diff --git a/runtime/starpu/codelets/codelet_zherk.c b/runtime/starpu/codelets/codelet_zherk.c
index 75acb58bf..243d8346c 100644
--- a/runtime/starpu/codelets/codelet_zherk.c
+++ b/runtime/starpu/codelets/codelet_zherk.c
@@ -48,6 +48,9 @@ cl_zherk_cpu_func(void *descr[], void *cl_arg)
     tileA = cti_interface_get(descr[0]);
     tileC = cti_interface_get(descr[1]);
 
+    assert( tileA->flttype == ChamComplexDouble );
+    assert( tileC->flttype == ChamComplexDouble );
+
     TCORE_zherk( clargs->uplo, clargs->trans, clargs->n, clargs->k,
                  clargs->alpha, tileA, clargs->beta, tileC );
 }
diff --git a/runtime/starpu/codelets/codelet_zpotrf.c b/runtime/starpu/codelets/codelet_zpotrf.c
index 79576c58b..5c9e183b7 100644
--- a/runtime/starpu/codelets/codelet_zpotrf.c
+++ b/runtime/starpu/codelets/codelet_zpotrf.c
@@ -46,6 +46,8 @@ cl_zpotrf_cpu_func(void *descr[], void *cl_arg)
 
     tileA = cti_interface_get(descr[0]);
 
+    assert( tileA->flttype == ChamComplexDouble );
+
     TCORE_zpotrf( clargs->uplo, clargs->n, tileA, &info );
 
     if ( (clargs->sequence->status == CHAMELEON_SUCCESS) && (info != 0) ) {
diff --git a/runtime/starpu/codelets/codelet_zsyrk.c b/runtime/starpu/codelets/codelet_zsyrk.c
index bde74c161..0bd8f348f 100644
--- a/runtime/starpu/codelets/codelet_zsyrk.c
+++ b/runtime/starpu/codelets/codelet_zsyrk.c
@@ -49,6 +49,9 @@ cl_zsyrk_cpu_func(void *descr[], void *cl_arg)
     tileA = cti_interface_get(descr[0]);
     tileC = cti_interface_get(descr[1]);
 
+    assert( tileA->flttype == ChamComplexDouble );
+    assert( tileC->flttype == ChamComplexDouble );
+
     TCORE_zsyrk( clargs->uplo, clargs->trans, clargs->n, clargs->k,
                  clargs->alpha, tileA, clargs->beta, tileC );
 }
diff --git a/runtime/starpu/codelets/codelet_ztrsm.c b/runtime/starpu/codelets/codelet_ztrsm.c
index 90c621fe6..c6e924475 100644
--- a/runtime/starpu/codelets/codelet_ztrsm.c
+++ b/runtime/starpu/codelets/codelet_ztrsm.c
@@ -50,6 +50,9 @@ cl_ztrsm_cpu_func(void *descr[], void *cl_arg)
     tileA = cti_interface_get(descr[0]);
     tileB = cti_interface_get(descr[1]);
 
+    assert( tileA->flttype == ChamComplexDouble );
+    assert( tileB->flttype == ChamComplexDouble );
+
     TCORE_ztrsm( clargs->side, clargs->uplo, clargs->transA, clargs->diag,
                  clargs->m, clargs->n, clargs->alpha, tileA, tileB );
 }
-- 
GitLab