Skip to content

Commit 75e133e

Browse files
committed
[oneDPL][ranges][merge] support size limit for output; + __parallel_merge sycl pattern support
1 parent 01c63ce commit 75e133e

File tree

2 files changed

+2
-2
lines changed

2 files changed

+2
-2
lines changed

include/oneapi/dpl/pstl/hetero/algorithm_ranges_impl_hetero.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ template <typename _BackendTag, typename _ExecutionPolicy, typename _Function, t
5454
void
5555
__pattern_walk_n(__hetero_tag<_BackendTag>, _ExecutionPolicy&& __exec, _Function __f, _Ranges&&... __rngs)
5656
{
57-
auto __n = oneapi::dpl::__ranges::__get_first_range_size(__rngs...);
57+
auto __n = std::min({__rngs.size()...});
5858
if (__n > 0)
5959
{
6060
oneapi::dpl::__par_backend_hetero::__parallel_for(_BackendTag{}, ::std::forward<_ExecutionPolicy>(__exec),

include/oneapi/dpl/pstl/hetero/dpcpp/parallel_backend_sycl_merge.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ struct __parallel_merge_submitter<_IdType, __internal::__optional_kernel_name<_N
142142
{
143143
const _IdType __n1 = __rng1.size();
144144
const _IdType __n2 = __rng2.size();
145-
const _IdType __n = __n1 + __n2;
145+
const _IdType __n = std::min<_IdType>(__n1 + __n2, __rng3.size());
146146

147147
assert(__n1 > 0 || __n2 > 0);
148148

0 commit comments

Comments
 (0)