TurboPFor decode: Scalar + Direct Access, SIMD

This commit is contained in:
powturbo
2015-06-18 17:54:55 +02:00
parent a92e6afe38
commit db937dfba3

View File

@ -26,14 +26,17 @@
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
#define P4DSIZE 128 //64 //
#define P4DN (P4DSIZE/64)
//---------------- Bulk decompress of TurboPFor compressed integer array -------------------------------------------------------
// decompress a previously (with p4denc32) 32 bits packed array. Return value = end of packed buffer in
unsigned char *p4ddec32( unsigned char *__restrict in, unsigned n, unsigned *__restrict out);
unsigned char *p4ddec64( unsigned char *__restrict in, unsigned n, uint64_t *__restrict out);
unsigned char *p4dd32( unsigned char *__restrict in, unsigned n, unsigned *__restrict out, unsigned b, unsigned bx);
unsigned char *p4dd64( unsigned char *__restrict in, unsigned n, uint64_t *__restrict out, unsigned b, unsigned bx);
// decompress a previously (with p4denc32) 32 bits packed array. Return value = end of packed buffer in
unsigned char *p4ddecv32( unsigned char *__restrict in, unsigned n, unsigned *__restrict out);
@ -53,7 +56,7 @@ unsigned char *p4dddv32( unsigned char *__restrict in, unsigned n, unsigned *_
unsigned char *p4dd1d32( unsigned char *__restrict in, unsigned n, unsigned *__restrict out, unsigned start, unsigned b, unsigned bx);
unsigned char *p4dd1dv32( unsigned char *__restrict in, unsigned n, unsigned *__restrict out, unsigned start, unsigned b, unsigned bx);
//---------------- Direct Access functions to compressed (DELTAR + p4denc see icbench) TurboPFor array -------------------------------------------------------
//---------------- Direct Access functions to compressed TurboPFor array -------------------------------------------------------
#define P4D_PAD8(__x) ( (((__x)+8-1)/8) )
#define P4D_B(__x) (((__x) >> 1) & 0x3f)
#define P4D_XB(__x) (((__x) & 1)?((__x) >> 8):0)