diff --git a/pstl/include/pstl/internal/omp/parallel_reduce.h b/pstl/include/pstl/internal/omp/parallel_reduce.h --- a/pstl/include/pstl/internal/omp/parallel_reduce.h +++ b/pstl/include/pstl/internal/omp/parallel_reduce.h @@ -23,6 +23,11 @@ __parallel_reduce_body(_RandomAccessIterator __first, _RandomAccessIterator __last, _Value __identity, _RealBody __real_body, _Reduction __reduce) { + if (__should_run_serial(__first, __last)) + { + return __real_body(__first, __last, __identity); + } + auto __middle = __first + ((__last - __first) / 2); _Value __v1(__identity), __v2(__identity); __parallel_invoke_body(