TurboPFor: Bit Unpacking
This commit is contained in:
@ -22,6 +22,8 @@
|
|||||||
- email : powturbo [_AT_] gmail [_DOT_] com
|
- email : powturbo [_AT_] gmail [_DOT_] com
|
||||||
**/
|
**/
|
||||||
// "Integer Compression" Bit Packing
|
// "Integer Compression" Bit Packing
|
||||||
|
#define BITUTIL_IN
|
||||||
|
#define VINT_IN
|
||||||
#include "conf.h"
|
#include "conf.h"
|
||||||
#include "bitutil.h"
|
#include "bitutil.h"
|
||||||
#include "bitpack.h"
|
#include "bitpack.h"
|
||||||
@ -50,7 +52,7 @@ typedef unsigned char *(*BITUNPACK_D64)(const unsigned char *__restrict in, unsi
|
|||||||
|
|
||||||
#if !defined(SSE2_ON) && !defined(AVX2_ON)
|
#if !defined(SSE2_ON) && !defined(AVX2_ON)
|
||||||
|
|
||||||
#if 0
|
#if 0 //????
|
||||||
#define OP(_op_, _x_) *_op_++
|
#define OP(_op_, _x_) *_op_++
|
||||||
#define OPX(_op_)
|
#define OPX(_op_)
|
||||||
#else
|
#else
|
||||||
@ -765,9 +767,7 @@ size_t bitnfunpack128v32( unsigned char *__restrict in, size_t n, uint32_t *__re
|
|||||||
#define mm256_maskz_loadu_epi32( _m_,_v_) _mm256_maskz_loadu_epi32( _m_,_v_)
|
#define mm256_maskz_loadu_epi32( _m_,_v_) _mm256_maskz_loadu_epi32( _m_,_v_)
|
||||||
#else
|
#else
|
||||||
#if !(defined(_M_X64) || defined(__amd64__)) && (defined(__i386__) || defined(_M_IX86))
|
#if !(defined(_M_X64) || defined(__amd64__)) && (defined(__i386__) || defined(_M_IX86))
|
||||||
static inline __m128i _mm_cvtsi64_si128(__int64 a) {
|
static inline __m128i _mm_cvtsi64_si128(__int64 a) { return _mm_loadl_epi64((__m128i*)&a); }
|
||||||
return _mm_loadl_epi64((__m128i*)&a);
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
static ALIGNED(unsigned char, permv[256][8], 32) = {
|
static ALIGNED(unsigned char, permv[256][8], 32) = {
|
||||||
0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,
|
||||||
|
Reference in New Issue
Block a user