diff --git a/include/aidge/backend/cpu/operator/SliceImpl_forward_kernels.hpp b/include/aidge/backend/cpu/operator/SliceImpl_forward_kernels.hpp
index df2299f6b2a4a298cdd56c1901372fb25d6c8f35..6b9adc69481e7975cde186324bb8b6d2aa4e1e9e 100644
--- a/include/aidge/backend/cpu/operator/SliceImpl_forward_kernels.hpp
+++ b/include/aidge/backend/cpu/operator/SliceImpl_forward_kernels.hpp
@@ -44,7 +44,7 @@ void SliceImpl_cpu_forward_kernel(const Slice_Op::Attrs &attrs, const std::vecto
                            static_cast<DimSize_t>(std::get<1>(attrs)[i] + static_cast<std::int64_t>(inputDims[axis]));
         std::int64_t step = std::get<3>(attrs)[i];
 
-        std::size_t sliceSize = static_cast<std::size_t>(std::ceil(static_cast<float>(end - start) / static_cast<float>(step)));
+        std::size_t sliceSize = static_cast<std::size_t>(std::ceil((static_cast<float>(end) - static_cast<float>(start)) / static_cast<float>(step)));
 
         if ( i > 0) {
             outputAccumulation = new I[totalSize];