Skip to content

Commit 3c9bf9a

Browse files
author
Raghuveer Devulapalli
authored
Merge pull request #93 from sterrettm2/avx2-64bit
AVX2 64-bit support
2 parents fa4afb8 + 6d111f5 commit 3c9bf9a

File tree

5 files changed

+728
-9
lines changed

5 files changed

+728
-9
lines changed

lib/x86simdsort-avx2.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
// AVX2 specific routines:
22
#include "avx2-32bit-qsort.hpp"
3+
#include "avx2-64bit-qsort.hpp"
34
#include "x86simdsort-internal.h"
45

56
#define DEFINE_ALL_METHODS(type) \
@@ -24,5 +25,8 @@ namespace avx2 {
2425
DEFINE_ALL_METHODS(uint32_t)
2526
DEFINE_ALL_METHODS(int32_t)
2627
DEFINE_ALL_METHODS(float)
28+
DEFINE_ALL_METHODS(uint64_t)
29+
DEFINE_ALL_METHODS(int64_t)
30+
DEFINE_ALL_METHODS(double)
2731
} // namespace avx2
2832
} // namespace xss

lib/x86simdsort.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -150,15 +150,15 @@ DISPATCH(argselect, _Float16, ISA_LIST("none"))
150150
DISPATCH_ALL(qsort,
151151
(ISA_LIST("avx512_icl")),
152152
(ISA_LIST("avx512_skx", "avx2")),
153-
(ISA_LIST("avx512_skx")))
153+
(ISA_LIST("avx512_skx", "avx2")))
154154
DISPATCH_ALL(qselect,
155155
(ISA_LIST("avx512_icl")),
156156
(ISA_LIST("avx512_skx", "avx2")),
157-
(ISA_LIST("avx512_skx")))
157+
(ISA_LIST("avx512_skx", "avx2")))
158158
DISPATCH_ALL(partial_qsort,
159159
(ISA_LIST("avx512_icl")),
160160
(ISA_LIST("avx512_skx", "avx2")),
161-
(ISA_LIST("avx512_skx")))
161+
(ISA_LIST("avx512_skx", "avx2")))
162162
DISPATCH_ALL(argsort,
163163
(ISA_LIST("none")),
164164
(ISA_LIST("avx512_skx")),

src/avx2-32bit-qsort.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ struct avx2_vector<int32_t> {
135135
}
136136
static void mask_compressstoreu(void *mem, opmask_t mask, reg_t x)
137137
{
138-
return avx2_emu_mask_compressstoreu<type_t>(mem, mask, x);
138+
return avx2_emu_mask_compressstoreu32<type_t>(mem, mask, x);
139139
}
140140
static reg_t maskz_loadu(opmask_t mask, void const *mem)
141141
{
@@ -289,7 +289,7 @@ struct avx2_vector<uint32_t> {
289289
}
290290
static void mask_compressstoreu(void *mem, opmask_t mask, reg_t x)
291291
{
292-
return avx2_emu_mask_compressstoreu<type_t>(mem, mask, x);
292+
return avx2_emu_mask_compressstoreu32<type_t>(mem, mask, x);
293293
}
294294
static reg_t mask_loadu(reg_t x, opmask_t mask, void const *mem)
295295
{
@@ -459,7 +459,7 @@ struct avx2_vector<float> {
459459
}
460460
static void mask_compressstoreu(void *mem, opmask_t mask, reg_t x)
461461
{
462-
return avx2_emu_mask_compressstoreu<type_t>(mem, mask, x);
462+
return avx2_emu_mask_compressstoreu32<type_t>(mem, mask, x);
463463
}
464464
static reg_t mask_loadu(reg_t x, opmask_t mask, void const *mem)
465465
{

0 commit comments

Comments
 (0)