SASC
DVBSoftCAM

parallel_128_sse2.h File Reference

#include <emmintrin.h>
#include "fftable.h"

Go to the source code of this file.

Classes

union  __u128i

Defines

#define MEMALIGN_VAL   16
#define GROUP_PARALLELISM   128
#define FF0()   ff0.v
#define FF1()   ff1.v
#define FFAND(a, b)   _mm_and_si128((a),(b))
#define FFOR(a, b)   _mm_or_si128((a),(b))
#define FFXOR(a, b)   _mm_xor_si128((a),(b))
#define FFNOT(a)   _mm_xor_si128((a),FF1())
#define MALLOC(X)   _mm_malloc(X,16)
#define FREE(X)   _mm_free(X)
#define BYTES_PER_BATCH   16
#define B_FFN_ALL_29()   ff29.v
#define B_FFN_ALL_02()   ff02.v
#define B_FFN_ALL_04()   ff04.v
#define B_FFN_ALL_10()   ff10.v
#define B_FFN_ALL_40()   ff40.v
#define B_FFN_ALL_80()   ff80.v
#define B_FFAND(a, b)   FFAND(a,b)
#define B_FFOR(a, b)   FFOR(a,b)
#define B_FFXOR(a, b)   FFXOR(a,b)
#define B_FFSH8L(a, n)   _mm_slli_epi64((a),(n))
#define B_FFSH8R(a, n)   _mm_srli_epi64((a),(n))
#define M_EMPTY()
#define BEST_SPAN   16

Typedefs

typedef __m128i group
typedef __m128i batch

Functions

static void XOR_BEST_BY (unsigned char *d, unsigned char *s1, unsigned char *s2)

Variables

static union __u128i ff0 = {{0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U}}
static union __u128i ff1 = {{0xffffffffU, 0xffffffffU, 0xffffffffU, 0xffffffffU}}
static union __u128i ff29 = {{0x29292929U, 0x29292929U, 0x29292929U, 0x29292929U}}
static union __u128i ff02 = {{0x02020202U, 0x02020202U, 0x02020202U, 0x02020202U}}
static union __u128i ff04 = {{0x04040404U, 0x04040404U, 0x04040404U, 0x04040404U}}
static union __u128i ff10 = {{0x10101010U, 0x10101010U, 0x10101010U, 0x10101010U}}
static union __u128i ff40 = {{0x40404040U, 0x40404040U, 0x40404040U, 0x40404040U}}
static union __u128i ff80 = {{0x80808080U, 0x80808080U, 0x80808080U, 0x80808080U}}

Define Documentation

#define B_FFAND (   a,
  b 
)    FFAND(a,b)

Definition at line 62 of file parallel_128_sse2.h.

#define B_FFN_ALL_02 ( )    ff02.v

Definition at line 56 of file parallel_128_sse2.h.

#define B_FFN_ALL_04 ( )    ff04.v

Definition at line 57 of file parallel_128_sse2.h.

#define B_FFN_ALL_10 ( )    ff10.v

Definition at line 58 of file parallel_128_sse2.h.

#define B_FFN_ALL_29 ( )    ff29.v

Definition at line 55 of file parallel_128_sse2.h.

#define B_FFN_ALL_40 ( )    ff40.v

Definition at line 59 of file parallel_128_sse2.h.

#define B_FFN_ALL_80 ( )    ff80.v

Definition at line 60 of file parallel_128_sse2.h.

#define B_FFOR (   a,
  b 
)    FFOR(a,b)

Definition at line 63 of file parallel_128_sse2.h.

#define B_FFSH8L (   a,
  n 
)    _mm_slli_epi64((a),(n))

Definition at line 65 of file parallel_128_sse2.h.

#define B_FFSH8R (   a,
  n 
)    _mm_srli_epi64((a),(n))

Definition at line 66 of file parallel_128_sse2.h.

#define B_FFXOR (   a,
  b 
)    FFXOR(a,b)

Definition at line 64 of file parallel_128_sse2.h.

#define BEST_SPAN   16

Definition at line 71 of file parallel_128_sse2.h.

#define BYTES_PER_BATCH   16

Definition at line 54 of file parallel_128_sse2.h.

#define FF0 ( )    ff0.v

Definition at line 35 of file parallel_128_sse2.h.

#define FF1 ( )    ff1.v

Definition at line 36 of file parallel_128_sse2.h.

#define FFAND (   a,
  b 
)    _mm_and_si128((a),(b))

Definition at line 37 of file parallel_128_sse2.h.

#define FFNOT (   a)    _mm_xor_si128((a),FF1())

Definition at line 40 of file parallel_128_sse2.h.

#define FFOR (   a,
  b 
)    _mm_or_si128((a),(b))

Definition at line 38 of file parallel_128_sse2.h.

#define FFXOR (   a,
  b 
)    _mm_xor_si128((a),(b))

Definition at line 39 of file parallel_128_sse2.h.

#define FREE (   X)    _mm_free(X)

Definition at line 42 of file parallel_128_sse2.h.

#define GROUP_PARALLELISM   128

Definition at line 34 of file parallel_128_sse2.h.

#define M_EMPTY (   void)

Definition at line 68 of file parallel_128_sse2.h.

#define MALLOC (   X)    _mm_malloc(X,16)

Definition at line 41 of file parallel_128_sse2.h.

#define MEMALIGN_VAL   16

Definition at line 23 of file parallel_128_sse2.h.


Typedef Documentation

typedef __m128i batch

Definition at line 53 of file parallel_128_sse2.h.

typedef __m128i group

Definition at line 33 of file parallel_128_sse2.h.


Function Documentation

static void XOR_BEST_BY ( unsigned char *  d,
unsigned char *  s1,
unsigned char *  s2 
) [inline, static]

Definition at line 74 of file parallel_128_sse2.h.

{
        __m128i vs1 = _mm_load_si128((__m128i*)s1);
        __m128i vs2 = _mm_load_si128((__m128i*)s2);
        vs1 = _mm_xor_si128(vs1, vs2);
        _mm_store_si128((__m128i*)d, vs1);
}

Variable Documentation

union __u128i ff0 = {{0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U}} [static]

Definition at line 30 of file parallel_128_sse2.h.

union __u128i ff02 = {{0x02020202U, 0x02020202U, 0x02020202U, 0x02020202U}} [static]

Definition at line 47 of file parallel_128_sse2.h.

union __u128i ff04 = {{0x04040404U, 0x04040404U, 0x04040404U, 0x04040404U}} [static]

Definition at line 48 of file parallel_128_sse2.h.

union __u128i ff1 = {{0xffffffffU, 0xffffffffU, 0xffffffffU, 0xffffffffU}} [static]

Definition at line 31 of file parallel_128_sse2.h.

union __u128i ff10 = {{0x10101010U, 0x10101010U, 0x10101010U, 0x10101010U}} [static]

Definition at line 49 of file parallel_128_sse2.h.

union __u128i ff29 = {{0x29292929U, 0x29292929U, 0x29292929U, 0x29292929U}} [static]

Definition at line 46 of file parallel_128_sse2.h.

union __u128i ff40 = {{0x40404040U, 0x40404040U, 0x40404040U, 0x40404040U}} [static]

Definition at line 50 of file parallel_128_sse2.h.

union __u128i ff80 = {{0x80808080U, 0x80808080U, 0x80808080U, 0x80808080U}} [static]

Definition at line 51 of file parallel_128_sse2.h.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines