diff --git a/include/aidge/backend/cpu/operator/AddImpl_forward_kernels.hpp b/include/aidge/backend/cpu/operator/AddImpl_forward_kernels.hpp
index 478a0226f43ccbc64d567a56ab89a558179438c5..94b22dcc7fc8251f8ca907ab0b060b0275309c9d 100644
--- a/include/aidge/backend/cpu/operator/AddImpl_forward_kernels.hpp
+++ b/include/aidge/backend/cpu/operator/AddImpl_forward_kernels.hpp
@@ -14,6 +14,8 @@
 
 #include "aidge/utils/Registrar.hpp"
 
+#include <cstdint>     // std::int32_t, std::int64_t
+
 #include "aidge/backend/cpu/data/Broadcasting.hpp"
 #include "aidge/backend/cpu/operator/AddImpl.hpp"
 
@@ -42,10 +44,12 @@ void AddImpl_cpu_forward_kernel(const std::vector<const void*> inputs_, const st
 namespace {
 static Registrar<AddImplForward_cpu> registrarAddImplForward_cpu_Float32(
         {DataType::Float32, DataType::Float32}, Aidge::AddImpl_cpu_forward_kernel<float, float>);
-static Registrar<AddImplForward_cpu> registrarAddImplForward_cpu_Int32(
-        {DataType::Int32, DataType::Int32}, Aidge::AddImpl_cpu_forward_kernel<int, int>);
 static Registrar<AddImplForward_cpu> registrarAddImplForward_cpu_Float64(
         {DataType::Float64, DataType::Float64}, Aidge::AddImpl_cpu_forward_kernel<double, double>);
+static Registrar<AddImplForward_cpu> registrarAddImplForward_cpu_Int32(
+        {DataType::Int32, DataType::Int32}, Aidge::AddImpl_cpu_forward_kernel<std::int32_t, std::int32_t>);
+static Registrar<AddImplForward_cpu> registrarAddImplForward_cpu_Int64(
+        {DataType::Int64, DataType::Int64}, Aidge::AddImpl_cpu_forward_kernel<std::int64_t, std::int64_t>);
 }  // namespace
 }  // namespace Aidge
 
diff --git a/include/aidge/backend/cpu/operator/DivImpl_forward_kernels.hpp b/include/aidge/backend/cpu/operator/DivImpl_forward_kernels.hpp
index 3cdcefa9e1c865f66b64ed527605d46af31be8af..74db1128c111ae62bedb6fa61682abca62429cdb 100644
--- a/include/aidge/backend/cpu/operator/DivImpl_forward_kernels.hpp
+++ b/include/aidge/backend/cpu/operator/DivImpl_forward_kernels.hpp
@@ -14,6 +14,7 @@
 
 #include <numeric>     // std::accumulate
 #include <cstddef>     // std::size_t
+#include <cstdint>     // std::int32_t, std::int64_t
 #include <functional>  // std::multiplies
 
 #include "aidge/utils/Registrar.hpp"
@@ -76,7 +77,7 @@ static Registrar<DivImplForward_cpu> registrarDivImplForward_cpu_Float32(
         Aidge::DivImpl_cpu_forward_kernel<float, float, float>);
 static Registrar<DivImplForward_cpu> registrarDivImplForward_cpu_Int32(
         {DataType::Int32, DataType::Int32, DataType::Int32},
-        Aidge::DivImpl_cpu_forward_kernel<int, int, int>);
+        Aidge::DivImpl_cpu_forward_kernel<std::int32_t, std::int32_t, std::int32_t>);
 static Registrar<DivImplForward_cpu> registrarDivImplForward_cpu_Float64(
         {DataType::Float64, DataType::Float64, DataType::Float64},
         Aidge::DivImpl_cpu_forward_kernel<double, double, double>);
diff --git a/include/aidge/backend/cpu/operator/MulImpl_forward_kernels.hpp b/include/aidge/backend/cpu/operator/MulImpl_forward_kernels.hpp
index e1387768ea02e2a9f35790c64c7674c321a1faa7..c44199ba4797682362f4a7cb223435d6d1585443 100644
--- a/include/aidge/backend/cpu/operator/MulImpl_forward_kernels.hpp
+++ b/include/aidge/backend/cpu/operator/MulImpl_forward_kernels.hpp
@@ -14,6 +14,8 @@
 
 #include "aidge/utils/Registrar.hpp"
 
+#include <cstdint>     // std::int32_t, std::int64_t
+
 #include "aidge/backend/cpu/data/Broadcasting.hpp"
 #include "aidge/backend/cpu/operator/MulImpl.hpp"
 
@@ -35,13 +37,13 @@ void MulImpl_cpu_forward_kernel(const std::vector<std::size_t>& input1Dims,
         totalElements *= dimSize;
     }
 
-	for (std::size_t oIndex = 0; oIndex < totalElements; ++oIndex) 
+	for (std::size_t oIndex = 0; oIndex < totalElements; ++oIndex)
 	{
 		std::vector<size_t> indexes = getMultiDimIndices(outputDims, oIndex);
 
 		std::size_t idx1 = getFlattenedIndex(input1Dims, indexes);
 		std::size_t idx2 = getFlattenedIndex(input2Dims, indexes);
-		
+
         output[oIndex] = input_1[idx1] * input_2[idx2];
     }
 }
@@ -50,12 +52,15 @@ namespace {
 static Registrar<MulImplForward_cpu> registrarMulImplForward_cpu_Float32(
         {DataType::Float32, DataType::Float32, DataType::Float32},
         Aidge::MulImpl_cpu_forward_kernel<float, float, float>);
-static Registrar<MulImplForward_cpu> registrarMulImplForward_cpu_Int32(
-        {DataType::Int32, DataType::Int32, DataType::Int32},
-        Aidge::MulImpl_cpu_forward_kernel<int, int, int>);
 static Registrar<MulImplForward_cpu> registrarMulImplForward_cpu_Float64(
         {DataType::Float64, DataType::Float64, DataType::Float64},
         Aidge::MulImpl_cpu_forward_kernel<double, double, double>);
+static Registrar<MulImplForward_cpu> registrarMulImplForward_cpu_Int32(
+        {DataType::Int32, DataType::Int32, DataType::Int32},
+        Aidge::MulImpl_cpu_forward_kernel<std::int32_t, std::int32_t, std::int32_t>);
+static Registrar<MulImplForward_cpu> registrarMulImplForward_cpu_Int64(
+        {DataType::Int64, DataType::Int64, DataType::Int64},
+        Aidge::MulImpl_cpu_forward_kernel<std::int64_t, std::int64_t, std::int64_t>);
 }  // namespace
 }  // namespace Aidge
 
diff --git a/include/aidge/backend/cpu/operator/SubImpl_forward_kernels.hpp b/include/aidge/backend/cpu/operator/SubImpl_forward_kernels.hpp
index 19b0bd21de129ed303151987323234364ce5f6f2..10e6f58bb44b63f2d8712dc0aa64e0660f3356b2 100644
--- a/include/aidge/backend/cpu/operator/SubImpl_forward_kernels.hpp
+++ b/include/aidge/backend/cpu/operator/SubImpl_forward_kernels.hpp
@@ -14,6 +14,10 @@
 
 #include "aidge/utils/Registrar.hpp"
 
+#include <cstddef>     // std::size_t
+#include <cstdint>     // std::int32_t, std::int64_t
+#include <vector>
+
 #include "aidge/backend/cpu/data/Broadcasting.hpp"
 #include "aidge/backend/cpu/operator/SubImpl.hpp"
 
@@ -36,7 +40,7 @@ void SubImpl_cpu_forward_kernel(const std::vector<std::size_t>& input1Dims,
         totalElements *= dimSize;
     }
 
-	for (std::size_t oIndex = 0; oIndex < totalElements; ++oIndex) 
+	for (std::size_t oIndex = 0; oIndex < totalElements; ++oIndex)
 	{
 		std::vector<size_t> indexes = getMultiDimIndices(outputDims, oIndex);
 		std::size_t idx1 = getFlattenedIndex(input1Dims, indexes);
@@ -49,12 +53,15 @@ namespace {
 static Registrar<SubImplForward_cpu> registrarSubImplForward_cpu_Float32(
         {DataType::Float32, DataType::Float32, DataType::Float32},
         Aidge::SubImpl_cpu_forward_kernel<float, float, float>);
-static Registrar<SubImplForward_cpu> registrarSubImplForward_cpu_Int32(
-        {DataType::Int32, DataType::Int32, DataType::Int32},
-        Aidge::SubImpl_cpu_forward_kernel<int, int, int>);
 static Registrar<SubImplForward_cpu> registrarSubImplForward_cpu_Float64(
         {DataType::Float64, DataType::Float64, DataType::Float64},
         Aidge::SubImpl_cpu_forward_kernel<double, double, double>);
+static Registrar<SubImplForward_cpu> registrarSubImplForward_cpu_Int32(
+        {DataType::Int32, DataType::Int32, DataType::Int32},
+        Aidge::SubImpl_cpu_forward_kernel<std::int32_t, std::int32_t, std::int32_t>);
+static Registrar<SubImplForward_cpu> registrarSubImplForward_cpu_Int64(
+        {DataType::Int64, DataType::Int64, DataType::Int64},
+        Aidge::SubImpl_cpu_forward_kernel<std::int64_t, std::int64_t, std::int64_t>);
 }  // namespace
 }  // namespace Aidge