diff --git a/include/aidge/backend/cpu/operator/GatherImpl_forward_kernels.hpp b/include/aidge/backend/cpu/operator/GatherImpl_forward_kernels.hpp
index 1373c8a64d37258a4cc112dfe5a23c1589587ccc..7cb1f6c04d503e94f7b8862c2266be5466a8896e 100644
--- a/include/aidge/backend/cpu/operator/GatherImpl_forward_kernels.hpp
+++ b/include/aidge/backend/cpu/operator/GatherImpl_forward_kernels.hpp
@@ -40,12 +40,12 @@ void GatherImpl_cpu_forward_kernel(const typename Gather_Op::Attrs& attrs, const
         preAxisElems *= inputDims[i];
     }
 
-    const std::vector<std::int64_t> indices = std::get<0>(attrs);
+    const std::vector<std::int32_t> indices = std::get<0>(attrs);
     for (std::size_t i=0; i<preAxisElems; ++i)
     {
         for(std::size_t j=0; j<indices.size(); ++j)
         {
-            const std::size_t idx = indices[j] >= 0 ? indices[j] : indices[j] + inputDims[axisIdx];
+            const std::size_t idx = indices[j] >= 0 ? indices[j] : static_cast<std::size_t>(indices[j]) + inputDims[axisIdx];
             const I* startPtr = std::next(input, i * postAxisElems * inputDims[axisIdx] + idx * postAxisElems);
             std::copy_n(startPtr, postAxisElems, output);
             output += postAxisElems;