Skip to content

Commit

Permalink
Merge pull request #93 from sterrettm2/avx2-64bit
Browse files Browse the repository at this point in the history
AVX2 64-bit support
  • Loading branch information
r-devulap authored Oct 25, 2023
2 parents fa4afb8 + 6d111f5 commit 3c9bf9a
Show file tree
Hide file tree
Showing 5 changed files with 728 additions and 9 deletions.
4 changes: 4 additions & 0 deletions lib/x86simdsort-avx2.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
// AVX2 specific routines:
#include "avx2-32bit-qsort.hpp"
#include "avx2-64bit-qsort.hpp"
#include "x86simdsort-internal.h"

#define DEFINE_ALL_METHODS(type) \
Expand All @@ -24,5 +25,8 @@ namespace avx2 {
DEFINE_ALL_METHODS(uint32_t)
DEFINE_ALL_METHODS(int32_t)
DEFINE_ALL_METHODS(float)
DEFINE_ALL_METHODS(uint64_t)
DEFINE_ALL_METHODS(int64_t)
DEFINE_ALL_METHODS(double)
} // namespace avx2
} // namespace xss
6 changes: 3 additions & 3 deletions lib/x86simdsort.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -150,15 +150,15 @@ DISPATCH(argselect, _Float16, ISA_LIST("none"))
DISPATCH_ALL(qsort,
(ISA_LIST("avx512_icl")),
(ISA_LIST("avx512_skx", "avx2")),
(ISA_LIST("avx512_skx")))
(ISA_LIST("avx512_skx", "avx2")))
DISPATCH_ALL(qselect,
(ISA_LIST("avx512_icl")),
(ISA_LIST("avx512_skx", "avx2")),
(ISA_LIST("avx512_skx")))
(ISA_LIST("avx512_skx", "avx2")))
DISPATCH_ALL(partial_qsort,
(ISA_LIST("avx512_icl")),
(ISA_LIST("avx512_skx", "avx2")),
(ISA_LIST("avx512_skx")))
(ISA_LIST("avx512_skx", "avx2")))
DISPATCH_ALL(argsort,
(ISA_LIST("none")),
(ISA_LIST("avx512_skx")),
Expand Down
6 changes: 3 additions & 3 deletions src/avx2-32bit-qsort.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ struct avx2_vector<int32_t> {
}
static void mask_compressstoreu(void *mem, opmask_t mask, reg_t x)
{
return avx2_emu_mask_compressstoreu<type_t>(mem, mask, x);
return avx2_emu_mask_compressstoreu32<type_t>(mem, mask, x);
}
static reg_t maskz_loadu(opmask_t mask, void const *mem)
{
Expand Down Expand Up @@ -289,7 +289,7 @@ struct avx2_vector<uint32_t> {
}
static void mask_compressstoreu(void *mem, opmask_t mask, reg_t x)
{
return avx2_emu_mask_compressstoreu<type_t>(mem, mask, x);
return avx2_emu_mask_compressstoreu32<type_t>(mem, mask, x);
}
static reg_t mask_loadu(reg_t x, opmask_t mask, void const *mem)
{
Expand Down Expand Up @@ -459,7 +459,7 @@ struct avx2_vector<float> {
}
static void mask_compressstoreu(void *mem, opmask_t mask, reg_t x)
{
return avx2_emu_mask_compressstoreu<type_t>(mem, mask, x);
return avx2_emu_mask_compressstoreu32<type_t>(mem, mask, x);
}
static reg_t mask_loadu(reg_t x, opmask_t mask, void const *mem)
{
Expand Down
Loading

0 comments on commit 3c9bf9a

Please sign in to comment.