Skip to content

Commit 3380b00

Browse files
sterrettm2Raghuveer Devulapalli
authored andcommitted
Adds testing for kv-sort base case
1 parent 4c3ade9 commit 3380b00

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

.github/workflows/c-cpp.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ jobs:
135135
- name: Run test suite on SPR
136136
run: sde -spr -- ./builddir/testexe
137137

138-
SPR-gcc13-min-networksort:
138+
SPR-gcc13-special-cases:
139139

140140
runs-on: intel-ubuntu-latest
141141

@@ -156,7 +156,7 @@ jobs:
156156
- name: Build
157157
env:
158158
CXX: g++-13
159-
CXXFLAGS: -DXSS_MINIMAL_NETWORK_SORT
159+
CXXFLAGS: "-DXSS_MINIMAL_NETWORK_SORT -DXSS_TEST_KEYVALUE_BASE_CASE"
160160
run: |
161161
make clean
162162
meson setup -Dbuild_tests=true --warnlevel 2 --werror --buildtype release builddir

src/avx512-64bit-keyvaluesort.hpp

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -371,12 +371,15 @@ X86_SIMD_SORT_INLINE void qsort_64bit_(type1_t *keys,
371371
/*
372372
* Resort to std::sort if quicksort isnt making any progress
373373
*/
374+
#ifndef XSS_TEST_KEYVALUE_BASE_CASE
374375
if (max_iters <= 0) {
375-
//std::sort(keys+left,keys+right+1);
376+
#endif // XSS_TEST_KEYVALUE_BASE_CASE
376377
heap_sort<vtype1, vtype2>(
377378
keys + left, indexes + left, right - left + 1);
378379
return;
380+
#ifndef XSS_TEST_KEYVALUE_BASE_CASE
379381
}
382+
#endif // XSS_TEST_KEYVALUE_BASE_CASE
380383
/*
381384
* Base case: use bitonic networks to sort arrays <= 128
382385
*/
@@ -417,7 +420,9 @@ avx512_qsort_kv(T1 *keys, T2 *indexes, arrsize_t arrsize, bool hasnan = false)
417420
ymm_vector<T2>,
418421
zmm_vector<T2>>::type;
419422

423+
#ifndef XSS_TEST_KEYVALUE_BASE_CASE
420424
if (arrsize > 1) {
425+
#endif // XSS_TEST_KEYVALUE_BASE_CASE
421426
if constexpr (xss::fp::is_floating_point_v<T1>) {
422427
arrsize_t nan_count = 0;
423428
if (UNLIKELY(hasnan)) {
@@ -438,6 +443,8 @@ avx512_qsort_kv(T1 *keys, T2 *indexes, arrsize_t arrsize, bool hasnan = false)
438443
arrsize - 1,
439444
2 * (arrsize_t)log2(arrsize));
440445
}
446+
#ifndef XSS_TEST_KEYVALUE_BASE_CASE
441447
}
448+
#endif // XSS_TEST_KEYVALUE_BASE_CASE
442449
}
443450
#endif // AVX512_QSORT_64BIT_KV

0 commit comments

Comments
 (0)