From 3f2d921547c6faaaa8aad8bc0f1401f77628ef40 Mon Sep 17 00:00:00 2001 From: Raghuveer Devulapalli Date: Tue, 11 Jul 2023 13:28:31 -0700 Subject: [PATCH] Expose avx512_qsort functions to C programs --- src/avx512-16bit-qsort.hpp | 15 +++++++++++++++ src/avx512-32bit-qsort.hpp | 15 +++++++++++++++ src/avx512-64bit-qsort.hpp | 16 ++++++++++++++++ 3 files changed, 46 insertions(+) diff --git a/src/avx512-16bit-qsort.hpp b/src/avx512-16bit-qsort.hpp index 1efcf1e9..58a6271f 100644 --- a/src/avx512-16bit-qsort.hpp +++ b/src/avx512-16bit-qsort.hpp @@ -469,4 +469,19 @@ void avx512_qsort_fp16(uint16_t *arr, int64_t arrsize) } } +extern "C" { + void int16_avx512_qsort(int16_t* arr, int64_t arrsize) + { + avx512_qsort(arr, arrsize); + } + void uint16_avx512_qsort(uint16_t* arr, int64_t arrsize) + { + avx512_qsort(arr, arrsize); + } + void float16_avx512_qsort(uint16_t* arr, int64_t arrsize) + { + avx512_qsort_fp16(arr, arrsize); + } +} + #endif // AVX512_QSORT_16BIT diff --git a/src/avx512-32bit-qsort.hpp b/src/avx512-32bit-qsort.hpp index bfd4a151..9b17e871 100644 --- a/src/avx512-32bit-qsort.hpp +++ b/src/avx512-32bit-qsort.hpp @@ -774,4 +774,19 @@ void avx512_qsort(float *arr, int64_t arrsize) } } +extern "C" { + void int32_avx512_qsort(int32_t* arr, int64_t arrsize) + { + avx512_qsort(arr, arrsize); + } + void uint32_avx512_qsort(uint32_t* arr, int64_t arrsize) + { + avx512_qsort(arr, arrsize); + } + void float_avx512_qsort(float* arr, int64_t arrsize) + { + avx512_qsort(arr, arrsize); + } +} + #endif //AVX512_QSORT_32BIT diff --git a/src/avx512-64bit-qsort.hpp b/src/avx512-64bit-qsort.hpp index aa5d7958..6eee7e96 100644 --- a/src/avx512-64bit-qsort.hpp +++ b/src/avx512-64bit-qsort.hpp @@ -842,4 +842,20 @@ void avx512_qsort(double *arr, int64_t arrsize) replace_inf_with_nan(arr, arrsize, nan_count); } } + +extern "C" { + void int64_avx512_qsort(int64_t* arr, int64_t arrsize) + { + avx512_qsort(arr, arrsize); + } + void uint64_avx512_qsort(uint64_t* arr, int64_t arrsize) + { + avx512_qsort(arr, arrsize); + } + void double_avx512_qsort(double* arr, int64_t arrsize) + { + avx512_qsort(arr, arrsize); + } +} + #endif // AVX512_QSORT_64BIT