mirror of
https://github.com/pgvector/pgvector.git
synced 2026-07-01 10:11:20 +08:00
Improved consistency of CPU dispatching code
This commit is contained in:
@@ -2,19 +2,24 @@
|
||||
#define BITUTILS_H
|
||||
|
||||
/* Only enable for more recent compilers */
|
||||
/* TODO Move to better place */
|
||||
#if defined(__x86_64__) && defined(__GNUC__) && __GNUC__ >= 8
|
||||
#define BIT_DISPATCH
|
||||
#define USE_DISPATCH
|
||||
#elif defined(__x86_64__) && defined(__clang_major__) && __clang_major__ >= 7
|
||||
#define BIT_DISPATCH
|
||||
#define USE_DISPATCH
|
||||
#elif defined(_M_AMD64) && defined(_MSC_VER) && _MSC_VER >= 1920
|
||||
#define BIT_DISPATCH
|
||||
#define USE_DISPATCH
|
||||
#endif
|
||||
|
||||
/* target_clones requires glibc */
|
||||
#if defined(BIT_DISPATCH) && defined(__gnu_linux__)
|
||||
#if defined(USE_DISPATCH) && defined(__gnu_linux__)
|
||||
#define USE_TARGET_CLONES
|
||||
#endif
|
||||
|
||||
#if defined(USE_DISPATCH)
|
||||
#define BIT_DISPATCH
|
||||
#endif
|
||||
|
||||
extern uint64 (*BitHammingDistance) (uint32 bytes, unsigned char *ax, unsigned char *bx, uint64 distance);
|
||||
extern double (*BitJaccardDistance) (uint32 bytes, unsigned char *ax, unsigned char *bx, uint64 ab, uint64 aa, uint64 bb);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user