Vector Optimized Library of Kernels 3.1.1
Architecture-tuned implementations of math kernels
 
Loading...
Searching...
No Matches
common.h File Reference
#include <cstdint>

Go to the source code of this file.

Namespaces

namespace  SSE2NEON
 

Macros

#define ASSERT_RETURN(x)
 
#define ALL_BIT_1_32   (*(float *) &NaN)
 
#define ALL_BIT_1_64   (*(double *) &NaN64)
 
#define VALIDATE_INT8_M128(A, B)
 
#define VALIDATE_UINT8_M128(A, B)
 
#define VALIDATE_INT16_M128(A, B)    validateInt16(A, B[0], B[1], B[2], B[3], B[4], B[5], B[6], B[7])
 
#define VALIDATE_UINT16_M128(A, B)    validateUInt16(A, B[0], B[1], B[2], B[3], B[4], B[5], B[6], B[7])
 
#define VALIDATE_INT32_M128(A, B)   validateInt32(A, B[0], B[1], B[2], B[3])
 
#define VALIDATE_UINT32_M128(A, B)   validateUInt32(A, B[0], B[1], B[2], B[3])
 
#define VALIDATE_INT8_M64(A, B)    validateInt8(A, B[0], B[1], B[2], B[3], B[4], B[5], B[6], B[7])
 
#define VALIDATE_UINT8_M64(A, B)    validateUInt8(A, B[0], B[1], B[2], B[3], B[4], B[5], B[6], B[7])
 
#define VALIDATE_INT16_M64(A, B)   validateInt16(A, B[0], B[1], B[2], B[3])
 
#define VALIDATE_UINT16_M64(A, B)   validateUInt16(A, B[0], B[1], B[2], B[3])
 
#define VALIDATE_INT32_M64(A, B)   validateInt32(A, B[0], B[1])
 
#define VALIDATE_UINT32_M64(A, B)   validateUInt32(A, B[0], B[1])
 
#define CHECK_RESULT(EXP)
 
#define IMM_2_ITER
 
#define IMM_4_ITER
 
#define IMM_8_ITER
 
#define IMM_16_ITER
 
#define IMM_32_ITER
 
#define IMM_64_ITER
 
#define IMM_128_ITER
 
#define IMM_256_ITER
 

Enumerations

enum  SSE2NEON::result_t { SSE2NEON::TEST_SUCCESS = 1 , SSE2NEON::TEST_FAIL = 0 , SSE2NEON::TEST_UNIMPL = -1 }
 

Functions

template<typename T >
result_t SSE2NEON::validate128 (T a, T b)
 
result_t SSE2NEON::validateInt64 (__m128i a, int64_t i0, int64_t i1)
 
result_t SSE2NEON::validateInt64 (__m64 a, int64_t i0)
 
result_t SSE2NEON::validateUInt64 (__m128i a, uint64_t u0, uint64_t u1)
 
result_t SSE2NEON::validateUInt64 (__m64 a, uint64_t u0)
 
result_t SSE2NEON::validateInt32 (__m128i a, int32_t i0, int32_t i1, int32_t i2, int32_t i3)
 
result_t SSE2NEON::validateUInt32 (__m128i a, uint32_t u0, uint32_t u1, uint32_t u2, uint32_t u3)
 
result_t SSE2NEON::validateUInt32 (__m64 a, uint32_t u0, uint32_t u1)
 
result_t SSE2NEON::validateInt32 (__m64 a, int32_t u0, int32_t u1)
 
result_t SSE2NEON::validateInt16 (__m128i a, int16_t i0, int16_t i1, int16_t i2, int16_t i3, int16_t i4, int16_t i5, int16_t i6, int16_t i7)
 
result_t SSE2NEON::validateInt16 (__m64 a, int16_t i0, int16_t i1, int16_t i2, int16_t i3)
 
result_t SSE2NEON::validateUInt16 (__m128i a, uint16_t u0, uint16_t u1, uint16_t u2, uint16_t u3, uint16_t u4, uint16_t u5, uint16_t u6, uint16_t u7)
 
result_t SSE2NEON::validateUInt16 (__m64 a, uint16_t u0, uint16_t u1, uint16_t u2, uint16_t u3)
 
result_t SSE2NEON::validateInt8 (__m128i a, int8_t i0, int8_t i1, int8_t i2, int8_t i3, int8_t i4, int8_t i5, int8_t i6, int8_t i7, int8_t i8, int8_t i9, int8_t i10, int8_t i11, int8_t i12, int8_t i13, int8_t i14, int8_t i15)
 
result_t SSE2NEON::validateInt8 (__m64 a, int8_t i0, int8_t i1, int8_t i2, int8_t i3, int8_t i4, int8_t i5, int8_t i6, int8_t i7)
 
result_t SSE2NEON::validateUInt8 (__m128i a, uint8_t u0, uint8_t u1, uint8_t u2, uint8_t u3, uint8_t u4, uint8_t u5, uint8_t u6, uint8_t u7, uint8_t u8, uint8_t u9, uint8_t u10, uint8_t u11, uint8_t u12, uint8_t u13, uint8_t u14, uint8_t u15)
 
result_t SSE2NEON::validateUInt8 (__m64 a, uint8_t u0, uint8_t u1, uint8_t u2, uint8_t u3, uint8_t u4, uint8_t u5, uint8_t u6, uint8_t u7)
 
result_t SSE2NEON::validateSingleFloatPair (float a, float b)
 
result_t SSE2NEON::validateSingleDoublePair (double a, double b)
 
result_t SSE2NEON::validateFloat (__m128 a, float f0, float f1, float f2, float f3)
 
result_t SSE2NEON::validateFloatEpsilon (__m128 a, float f0, float f1, float f2, float f3, float epsilon)
 
result_t SSE2NEON::validateFloatError (__m128 a, float f0, float f1, float f2, float f3, float err)
 
result_t SSE2NEON::validateDouble (__m128d a, double d0, double d1)
 
result_t SSE2NEON::validateFloatError (__m128d a, double d0, double d1, double err)
 

Macro Definition Documentation

◆ ALL_BIT_1_32

#define ALL_BIT_1_32   (*(float *) &NaN)

◆ ALL_BIT_1_64

#define ALL_BIT_1_64   (*(double *) &NaN64)

◆ ASSERT_RETURN

#define ASSERT_RETURN (   x)
Value:
if (!(x)) \
return TEST_FAIL;

◆ CHECK_RESULT

#define CHECK_RESULT (   EXP)
Value:
if (EXP != TEST_SUCCESS) { \
return TEST_FAIL; \
}

◆ IMM_128_ITER

#define IMM_128_ITER

◆ IMM_16_ITER

#define IMM_16_ITER
Value:
IMM_8_ITER \
TEST_IMPL(8) \
TEST_IMPL(9) \
TEST_IMPL(10) \
TEST_IMPL(11) \
TEST_IMPL(12) \
TEST_IMPL(13) \
TEST_IMPL(14) \
TEST_IMPL(15)

◆ IMM_256_ITER

#define IMM_256_ITER

◆ IMM_2_ITER

#define IMM_2_ITER
Value:
TEST_IMPL(0) \
TEST_IMPL(1)
#define TEST_IMPL(IDX)

◆ IMM_32_ITER

#define IMM_32_ITER
Value:
IMM_16_ITER \
TEST_IMPL(16) \
TEST_IMPL(17) \
TEST_IMPL(18) \
TEST_IMPL(19) \
TEST_IMPL(20) \
TEST_IMPL(21) \
TEST_IMPL(22) \
TEST_IMPL(23) \
TEST_IMPL(24) \
TEST_IMPL(25) \
TEST_IMPL(26) \
TEST_IMPL(27) \
TEST_IMPL(28) \
TEST_IMPL(29) \
TEST_IMPL(30) \
TEST_IMPL(31)

◆ IMM_4_ITER

#define IMM_4_ITER
Value:
IMM_2_ITER \
TEST_IMPL(2) \
TEST_IMPL(3)

◆ IMM_64_ITER

#define IMM_64_ITER

◆ IMM_8_ITER

#define IMM_8_ITER
Value:
IMM_4_ITER \
TEST_IMPL(4) \
TEST_IMPL(5) \
TEST_IMPL(6) \
TEST_IMPL(7)

◆ VALIDATE_INT16_M128

#define VALIDATE_INT16_M128 (   A,
  B 
)     validateInt16(A, B[0], B[1], B[2], B[3], B[4], B[5], B[6], B[7])

◆ VALIDATE_INT16_M64

#define VALIDATE_INT16_M64 (   A,
  B 
)    validateInt16(A, B[0], B[1], B[2], B[3])

◆ VALIDATE_INT32_M128

#define VALIDATE_INT32_M128 (   A,
  B 
)    validateInt32(A, B[0], B[1], B[2], B[3])

◆ VALIDATE_INT32_M64

#define VALIDATE_INT32_M64 (   A,
  B 
)    validateInt32(A, B[0], B[1])

◆ VALIDATE_INT8_M128

#define VALIDATE_INT8_M128 (   A,
  B 
)
Value:
validateInt8(A, B[0], B[1], B[2], B[3], B[4], B[5], B[6], B[7], B[8], \
B[9], B[10], B[11], B[12], B[13], B[14], B[15])
#define B
Definition: volk_32f_expfast_32f.h:58
#define A
Definition: volk_32f_expfast_32f.h:57

◆ VALIDATE_INT8_M64

#define VALIDATE_INT8_M64 (   A,
  B 
)     validateInt8(A, B[0], B[1], B[2], B[3], B[4], B[5], B[6], B[7])

◆ VALIDATE_UINT16_M128

#define VALIDATE_UINT16_M128 (   A,
  B 
)     validateUInt16(A, B[0], B[1], B[2], B[3], B[4], B[5], B[6], B[7])

◆ VALIDATE_UINT16_M64

#define VALIDATE_UINT16_M64 (   A,
  B 
)    validateUInt16(A, B[0], B[1], B[2], B[3])

◆ VALIDATE_UINT32_M128

#define VALIDATE_UINT32_M128 (   A,
  B 
)    validateUInt32(A, B[0], B[1], B[2], B[3])

◆ VALIDATE_UINT32_M64

#define VALIDATE_UINT32_M64 (   A,
  B 
)    validateUInt32(A, B[0], B[1])

◆ VALIDATE_UINT8_M128

#define VALIDATE_UINT8_M128 (   A,
  B 
)
Value:
validateUInt8(A, B[0], B[1], B[2], B[3], B[4], B[5], B[6], B[7], B[8], \
B[9], B[10], B[11], B[12], B[13], B[14], B[15])

◆ VALIDATE_UINT8_M64

#define VALIDATE_UINT8_M64 (   A,
  B 
)     validateUInt8(A, B[0], B[1], B[2], B[3], B[4], B[5], B[6], B[7])