From 40fb2f77134e03524c7f7ec791333a52d38c19d0 Mon Sep 17 00:00:00 2001 From: Pawel Tarasiuk Date: Wed, 17 Sep 2025 12:46:46 +0000 Subject: [PATCH] Allow sorting arrays of more than 2^30 elements --- src/sort/merge_sort.jl | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/sort/merge_sort.jl b/src/sort/merge_sort.jl index 5fb7b20..6e767d7 100644 --- a/src/sort/merge_sort.jl +++ b/src/sort/merge_sort.jl @@ -163,9 +163,12 @@ function merge_sort!( _merge_sort_block!(backend, block_size)(v, comp, ndrange=(block_size * blocks,)) # Global level - half_size_group = Int32(block_size * 2) - size_group = half_size_group * 2 len = length(v) + half_size_group = block_size * 2 + if len <= 2^30 + half_size_group = Int32(half_size_group) + end + size_group = half_size_group * 2 if len > half_size_group p1 = v p2 = isnothing(temp) ? similar(v) : temp