diff --git a/src/operator/ConvImpl.cpp b/src/operator/ConvImpl.cpp
index 096ee9485a03b736326f46e9a569c6b3c9b5a631..c0c32d3bbb758c9403577c84500bfe951e5e1a96 100644
--- a/src/operator/ConvImpl.cpp
+++ b/src/operator/ConvImpl.cpp
@@ -102,18 +102,11 @@ void Aidge::ConvImpl_cuda<DIM>::forward() {
     // Do the actual forward computation
     // Template is only for scaling parameters, which are always in float
     // excepted when the convolution is performed in double precision.
-    switch(op.getOutput(0)->dataType()) {
-        case DataType::Float64:
-            forward_<double>(input0, input1, input2);
-            break;
-        case DataType::Float32:
-            forward_<float>(input0, input1, input2);
-            break;
-        case DataType::Float16:
-            forward_<half>(input0, input1, input2);
-            break;
-        default:
-            AIDGE_THROW_OR_ABORT(std::runtime_error, "Data type is not supported by Backend Cuda");
+    if (op.getOutput(0)->dataType() == DataType::Float64) {
+        forward_<double>(input0, input1, input2);
+    }
+    else {
+        forward_<float>(input0, input1, input2);
     }
 }