Skip to content

Commit a3f6753

Browse files
author
Raghuveer Devulapalli
committed
Build issues on macOS: deduce the pointer to arg with templates
1 parent 1372aeb commit a3f6753

File tree

1 file changed

+28
-18
lines changed

1 file changed

+28
-18
lines changed

src/xss-common-argsort.h

Lines changed: 28 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -291,14 +291,15 @@ X86_SIMD_SORT_INLINE arrsize_t partition_avx512(type_t *arr,
291291
template <typename vtype,
292292
typename argtype,
293293
int num_unroll,
294-
typename type_t = typename vtype::type_t>
295-
X86_SIMD_SORT_INLINE arrsize_t partition_avx512_unrolled(type_t *arr,
296-
arrsize_t *arg,
297-
arrsize_t left,
298-
arrsize_t right,
299-
type_t pivot,
300-
type_t *smallest,
301-
type_t *biggest)
294+
typename type_t = typename vtype::type_t,
295+
typename argtype_t = typename argtype::type_t>
296+
X86_SIMD_SORT_INLINE arrsize_t argpartition_unrolled(type_t *arr,
297+
argtype_t *arg,
298+
arrsize_t left,
299+
arrsize_t right,
300+
type_t pivot,
301+
type_t *smallest,
302+
type_t *biggest)
302303
{
303304
if (right - left <= 8 * num_unroll * vtype::numlanes) {
304305
return partition_avx512<vtype, argtype>(
@@ -422,9 +423,12 @@ X86_SIMD_SORT_INLINE arrsize_t partition_avx512_unrolled(type_t *arr,
422423
return l_store;
423424
}
424425

425-
template <typename vtype, typename type_t>
426+
template <typename vtype,
427+
typename argtype,
428+
typename type_t = typename vtype::type_t,
429+
typename argtype_t = typename argtype::type_t>
426430
X86_SIMD_SORT_INLINE type_t get_pivot_64bit(type_t *arr,
427-
arrsize_t *arg,
431+
argtype_t *arg,
428432
const arrsize_t left,
429433
const arrsize_t right)
430434
{
@@ -468,9 +472,12 @@ X86_SIMD_SORT_INLINE type_t get_pivot_64bit(type_t *arr,
468472
}
469473
}
470474

471-
template <typename vtype, typename argtype, typename type_t>
475+
template <typename vtype,
476+
typename argtype,
477+
typename type_t = typename vtype::type_t,
478+
typename argtype_t = typename argtype::type_t>
472479
X86_SIMD_SORT_INLINE void argsort_64bit_(type_t *arr,
473-
arrsize_t *arg,
480+
argtype_t *arg,
474481
arrsize_t left,
475482
arrsize_t right,
476483
arrsize_t max_iters)
@@ -490,10 +497,10 @@ X86_SIMD_SORT_INLINE void argsort_64bit_(type_t *arr,
490497
arr, arg + left, (int32_t)(right + 1 - left));
491498
return;
492499
}
493-
type_t pivot = get_pivot_64bit<vtype>(arr, arg, left, right);
500+
type_t pivot = get_pivot_64bit<vtype, argtype>(arr, arg, left, right);
494501
type_t smallest = vtype::type_max();
495502
type_t biggest = vtype::type_min();
496-
arrsize_t pivot_index = partition_avx512_unrolled<vtype, argtype, 4>(
503+
arrsize_t pivot_index = argpartition_unrolled<vtype, argtype, 4>(
497504
arr, arg, left, right + 1, pivot, &smallest, &biggest);
498505
if (pivot != smallest)
499506
argsort_64bit_<vtype, argtype>(
@@ -503,9 +510,12 @@ X86_SIMD_SORT_INLINE void argsort_64bit_(type_t *arr,
503510
arr, arg, pivot_index, right, max_iters - 1);
504511
}
505512

506-
template <typename vtype, typename argtype, typename type_t>
513+
template <typename vtype,
514+
typename argtype,
515+
typename type_t = typename vtype::type_t,
516+
typename argtype_t = typename argtype::type_t>
507517
X86_SIMD_SORT_INLINE void argselect_64bit_(type_t *arr,
508-
arrsize_t *arg,
518+
argtype_t *arg,
509519
arrsize_t pos,
510520
arrsize_t left,
511521
arrsize_t right,
@@ -526,10 +536,10 @@ X86_SIMD_SORT_INLINE void argselect_64bit_(type_t *arr,
526536
arr, arg + left, (int32_t)(right + 1 - left));
527537
return;
528538
}
529-
type_t pivot = get_pivot_64bit<vtype>(arr, arg, left, right);
539+
type_t pivot = get_pivot_64bit<vtype, argtype>(arr, arg, left, right);
530540
type_t smallest = vtype::type_max();
531541
type_t biggest = vtype::type_min();
532-
arrsize_t pivot_index = partition_avx512_unrolled<vtype, argtype, 4>(
542+
arrsize_t pivot_index = argpartition_unrolled<vtype, argtype, 4>(
533543
arr, arg, left, right + 1, pivot, &smallest, &biggest);
534544
if ((pivot != smallest) && (pos < pivot_index))
535545
argselect_64bit_<vtype, argtype>(

0 commit comments

Comments
 (0)