ROOT  6.06/09
Reference Guide
Namespaces | Macros | Typedefs | Functions
intrinsics.h File Reference
#include "../common/windows_fix_intrin.h"
#include <Vc/global.h>
#include <immintrin.h>
#include "../common/fix_clang_emmintrin.h"
#include "const_data.h"
#include "macros.h"
#include <cstdlib>
#include "undomacros.h"
#include "shuffle.h"
+ Include dependency graph for intrinsics.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 ROOT
 Namespace for new ROOT classes and functions.
 
 ROOT::Vc
 
 ROOT::Vc::AVX
 

Macros

#define AVX_TO_SSE_2(name)
 
#define AVX_TO_SSE_2_si128_si256(name)
 
#define AVX_TO_SSE_1(name)
 
#define AVX_TO_SSE_1i(name)
 

Typedefs

typedef __m128 ROOT::Vc::AVX::m128
 
typedef __m128d ROOT::Vc::AVX::m128d
 
typedef __m128i ROOT::Vc::AVX::m128i
 
typedef __m256 ROOT::Vc::AVX::m256
 
typedef __m256d ROOT::Vc::AVX::m256d
 
typedef __m256i ROOT::Vc::AVX::m256i
 
typedef const m128 ROOT::Vc::AVX::param128
 
typedef const m128d ROOT::Vc::AVX::param128d
 
typedef const m128i ROOT::Vc::AVX::param128i
 
typedef const m256 ROOT::Vc::AVX::param256
 
typedef const m256d ROOT::Vc::AVX::param256d
 
typedef const m256i ROOT::Vc::AVX::param256i
 

Functions

static Vc_INTRINSIC m256 Vc_CONST ROOT::Vc::AVX::_mm256_set1_ps (float a)
 
static Vc_INTRINSIC m256d Vc_CONST ROOT::Vc::AVX::_mm256_set1_pd (double a)
 
static Vc_INTRINSIC m256i Vc_CONST ROOT::Vc::AVX::_mm256_set1_epi32 (int a)
 
static Vc_INTRINSIC m128i Vc_CONST ROOT::Vc::AVX::_mm_setallone ()
 
static Vc_INTRINSIC m128i Vc_CONST ROOT::Vc::AVX::_mm_setallone_si128 ()
 
static Vc_INTRINSIC m128d Vc_CONST ROOT::Vc::AVX::_mm_setallone_pd ()
 
static Vc_INTRINSIC m128 Vc_CONST ROOT::Vc::AVX::_mm_setallone_ps ()
 
static Vc_INTRINSIC m128i Vc_CONST ROOT::Vc::AVX::_mm_setone_epi8 ()
 
static Vc_INTRINSIC m128i Vc_CONST ROOT::Vc::AVX::_mm_setone_epu8 ()
 
static Vc_INTRINSIC m128i Vc_CONST ROOT::Vc::AVX::_mm_setone_epi16 ()
 
static Vc_INTRINSIC m128i Vc_CONST ROOT::Vc::AVX::_mm_setone_epu16 ()
 
static Vc_INTRINSIC m128i Vc_CONST ROOT::Vc::AVX::_mm_setone_epi32 ()
 
static Vc_INTRINSIC m256 Vc_CONST ROOT::Vc::AVX::_mm256_setallone ()
 
static Vc_INTRINSIC m256i Vc_CONST ROOT::Vc::AVX::_mm256_setallone_si256 ()
 
static Vc_INTRINSIC m256d Vc_CONST ROOT::Vc::AVX::_mm256_setallone_pd ()
 
static Vc_INTRINSIC m256 Vc_CONST ROOT::Vc::AVX::_mm256_setallone_ps ()
 
static Vc_INTRINSIC m256i Vc_CONST ROOT::Vc::AVX::_mm256_setone_epi8 ()
 
static Vc_INTRINSIC m256i Vc_CONST ROOT::Vc::AVX::_mm256_setone_epu8 ()
 
static Vc_INTRINSIC m256i Vc_CONST ROOT::Vc::AVX::_mm256_setone_epi16 ()
 
static Vc_INTRINSIC m256i Vc_CONST ROOT::Vc::AVX::_mm256_setone_epu16 ()
 
static Vc_INTRINSIC m256i Vc_CONST ROOT::Vc::AVX::_mm256_setone_epi32 ()
 
static Vc_INTRINSIC m256i Vc_CONST ROOT::Vc::AVX::_mm256_setone_epu32 ()
 
static Vc_INTRINSIC m256 Vc_CONST ROOT::Vc::AVX::_mm256_setone_ps ()
 
static Vc_INTRINSIC m256d Vc_CONST ROOT::Vc::AVX::_mm256_setone_pd ()
 
static Vc_INTRINSIC m256d Vc_CONST ROOT::Vc::AVX::_mm256_setabsmask_pd ()
 
static Vc_INTRINSIC m256 Vc_CONST ROOT::Vc::AVX::_mm256_setabsmask_ps ()
 
static Vc_INTRINSIC m256d Vc_CONST ROOT::Vc::AVX::_mm256_setsignmask_pd ()
 
static Vc_INTRINSIC m256 Vc_CONST ROOT::Vc::AVX::_mm256_setsignmask_ps ()
 
static Vc_INTRINSIC m256 Vc_CONST ROOT::Vc::AVX::_mm256_set2power31_ps ()
 
static Vc_INTRINSIC m256i Vc_CONST ROOT::Vc::AVX::_mm256_set2power31_epu32 ()
 
static Vc_INTRINSIC m128i Vc_CONST ROOT::Vc::AVX::_mm_setmin_epi16 ()
 
static Vc_INTRINSIC m128i Vc_CONST ROOT::Vc::AVX::_mm_setmin_epi32 ()
 
static Vc_INTRINSIC m256i Vc_CONST ROOT::Vc::AVX::_mm256_setmin_epi16 ()
 
static Vc_INTRINSIC m256i Vc_CONST ROOT::Vc::AVX::_mm256_setmin_epi32 ()
 
static Vc_INTRINSIC unsigned char Vc_CONST ROOT::Vc::AVX::_mm_extract_epu8 (param128i x, const int i)
 
static Vc_INTRINSIC unsigned short Vc_CONST ROOT::Vc::AVX::_mm_extract_epu16 (param128i x, const int i)
 
static Vc_INTRINSIC unsigned int Vc_CONST ROOT::Vc::AVX::_mm_extract_epu32 (param128i x, const int i)
 
static Vc_INTRINSIC m256d Vc_CONST ROOT::Vc::AVX::_mm256_cmpeq_pd (param256d a, param256d b)
 
static Vc_INTRINSIC m256d Vc_CONST ROOT::Vc::AVX::_mm256_cmpneq_pd (param256d a, param256d b)
 
static Vc_INTRINSIC m256d Vc_CONST ROOT::Vc::AVX::_mm256_cmplt_pd (param256d a, param256d b)
 
static Vc_INTRINSIC m256d Vc_CONST ROOT::Vc::AVX::_mm256_cmpnlt_pd (param256d a, param256d b)
 
static Vc_INTRINSIC m256d Vc_CONST ROOT::Vc::AVX::_mm256_cmple_pd (param256d a, param256d b)
 
static Vc_INTRINSIC m256d Vc_CONST ROOT::Vc::AVX::_mm256_cmpnle_pd (param256d a, param256d b)
 
static Vc_INTRINSIC m256d Vc_CONST ROOT::Vc::AVX::_mm256_cmpord_pd (param256d a, param256d b)
 
static Vc_INTRINSIC m256d Vc_CONST ROOT::Vc::AVX::_mm256_cmpunord_pd (param256d a, param256d b)
 
static Vc_INTRINSIC m256 Vc_CONST ROOT::Vc::AVX::_mm256_cmpeq_ps (param256 a, param256 b)
 
static Vc_INTRINSIC m256 Vc_CONST ROOT::Vc::AVX::_mm256_cmpneq_ps (param256 a, param256 b)
 
static Vc_INTRINSIC m256 Vc_CONST ROOT::Vc::AVX::_mm256_cmplt_ps (param256 a, param256 b)
 
static Vc_INTRINSIC m256 Vc_CONST ROOT::Vc::AVX::_mm256_cmpnlt_ps (param256 a, param256 b)
 
static Vc_INTRINSIC m256 Vc_CONST ROOT::Vc::AVX::_mm256_cmpge_ps (param256 a, param256 b)
 
static Vc_INTRINSIC m256 Vc_CONST ROOT::Vc::AVX::_mm256_cmple_ps (param256 a, param256 b)
 
static Vc_INTRINSIC m256 Vc_CONST ROOT::Vc::AVX::_mm256_cmpnle_ps (param256 a, param256 b)
 
static Vc_INTRINSIC m256 Vc_CONST ROOT::Vc::AVX::_mm256_cmpgt_ps (param256 a, param256 b)
 
static Vc_INTRINSIC m256 Vc_CONST ROOT::Vc::AVX::_mm256_cmpord_ps (param256 a, param256 b)
 
static Vc_INTRINSIC m256 Vc_CONST ROOT::Vc::AVX::_mm256_cmpunord_ps (param256 a, param256 b)
 
static Vc_INTRINSIC m128i ROOT::Vc::AVX::_mm_cmplt_epu16 (param128i a, param128i b)
 
static Vc_INTRINSIC m128i ROOT::Vc::AVX::_mm_cmpgt_epu16 (param128i a, param128i b)
 
static Vc_INTRINSIC m256i Vc_CONST ROOT::Vc::AVX::_mm256_srli_si256 (param256i a0, const int i)
 
static Vc_INTRINSIC m256i Vc_CONST ROOT::Vc::AVX::_mm256_slli_si256 (param256i a0, const int i)
 
static Vc_INTRINSIC m256i Vc_CONST ROOT::Vc::AVX::_mm256_and_si256 (param256i x, param256i y)
 
static Vc_INTRINSIC m256i Vc_CONST ROOT::Vc::AVX::_mm256_andnot_si256 (param256i x, param256i y)
 
static Vc_INTRINSIC m256i Vc_CONST ROOT::Vc::AVX::_mm256_or_si256 (param256i x, param256i y)
 
static Vc_INTRINSIC m256i Vc_CONST ROOT::Vc::AVX::_mm256_xor_si256 (param256i x, param256i y)
 
 ROOT::Vc::AVX::AVX_TO_SSE_1i (slli_epi16) AVX_TO_SSE_1i(slli_epi32) AVX_TO_SSE_1i(slli_epi64) AVX_TO_SSE_1i(srai_epi16) AVX_TO_SSE_1i(srai_epi32) AVX_TO_SSE_1i(srli_epi16) AVX_TO_SSE_1i(srli_epi32) AVX_TO_SSE_1i(srli_epi64) Vc_INTRINSIC int Vc_CONST _mm256_movemask_epi8(param256i a0)
 
m256i Vc_INTRINSIC Vc_CONST ROOT::Vc::AVX::_mm256_blend_epi16 (param256i a0, param256i b0, const int m)
 
Vc_INTRINSIC m256i Vc_CONST ROOT::Vc::AVX::_mm256_blendv_epi8 (param256i a0, param256i b0, param256i m0)
 
static Vc_INTRINSIC m256i Vc_CONST ROOT::Vc::AVX::_mm256_cmplt_epu32 (param256i _a, param256i _b)
 
static Vc_INTRINSIC m256i Vc_CONST ROOT::Vc::AVX::_mm256_cmpgt_epu32 (param256i _a, param256i _b)
 
static Vc_INTRINSIC void ROOT::Vc::AVX::_mm256_maskstore (float *mem, const param256 mask, const param256 v)
 
static Vc_INTRINSIC void ROOT::Vc::AVX::_mm256_maskstore (double *mem, const param256d mask, const param256d v)
 
static Vc_INTRINSIC void ROOT::Vc::AVX::_mm256_maskstore (int *mem, const param256i mask, const param256i v)
 
static Vc_INTRINSIC void ROOT::Vc::AVX::_mm256_maskstore (unsigned int *mem, const param256i mask, const param256i v)
 

Macro Definition Documentation

#define AVX_TO_SSE_1 (   name)
Value:
static Vc_INTRINSIC m256i Vc_CONST _mm256_##name(param256i a0) { \
m128i a1 = _mm256_extractf128_si256(a0, 1); \
m128i r0 = _mm_##name(_mm256_castsi256_si128(a0)); \
m128i r1 = _mm_##name(a1); \
return _mm256_insertf128_si256(_mm256_castsi128_si256(r0), r1, 1); \
}
__m128i m128i
Definition: intrinsics.h:112
#define Vc_INTRINSIC
Definition: macros.h:139
const m256i param256i
Definition: intrinsics.h:130
return
Definition: TBase64.cxx:62
unsigned int r1[N_CITIES]
Definition: simanTSP.cxx:321
__m256i m256i
Definition: intrinsics.h:115
#define Vc_CONST
Definition: macros.h:133
#define name(a, b)
Definition: linkTestLib0.cpp:5

Definition at line 267 of file intrinsics.h.

#define AVX_TO_SSE_1i (   name)
Value:
static Vc_INTRINSIC m256i Vc_CONST _mm256_##name(param256i a0, const int i) { \
m128i a1 = _mm256_extractf128_si256(a0, 1); \
m128i r0 = _mm_##name(_mm256_castsi256_si128(a0), i); \
m128i r1 = _mm_##name(a1, i); \
return _mm256_insertf128_si256(_mm256_castsi128_si256(r0), r1, 1); \
}
__m128i m128i
Definition: intrinsics.h:112
#define Vc_INTRINSIC
Definition: macros.h:139
const m256i param256i
Definition: intrinsics.h:130
return
Definition: TBase64.cxx:62
unsigned int r1[N_CITIES]
Definition: simanTSP.cxx:321
__m256i m256i
Definition: intrinsics.h:115
#define Vc_CONST
Definition: macros.h:133
#define name(a, b)
Definition: linkTestLib0.cpp:5

Definition at line 274 of file intrinsics.h.

#define AVX_TO_SSE_2 (   name)
Value:
static Vc_INTRINSIC m256i Vc_CONST _mm256_##name(param256i a0, param256i b0) { \
m128i a1 = _mm256_extractf128_si256(a0, 1); \
m128i b1 = _mm256_extractf128_si256(b0, 1); \
m128i r0 = _mm_##name(_mm256_castsi256_si128(a0), _mm256_castsi256_si128(b0)); \
m128i r1 = _mm_##name(a1, b1); \
return _mm256_insertf128_si256(_mm256_castsi128_si256(r0), r1, 1); \
}
__m128i m128i
Definition: intrinsics.h:112
#define Vc_INTRINSIC
Definition: macros.h:139
const m256i param256i
Definition: intrinsics.h:130
return
Definition: TBase64.cxx:62
unsigned int r1[N_CITIES]
Definition: simanTSP.cxx:321
__m256i m256i
Definition: intrinsics.h:115
#define Vc_CONST
Definition: macros.h:133
#define name(a, b)
Definition: linkTestLib0.cpp:5

Definition at line 251 of file intrinsics.h.

#define AVX_TO_SSE_2_si128_si256 (   name)
Value:
static Vc_INTRINSIC m256i Vc_CONST _mm256_##name##_si256(param256i a0, param256i b0) { \
m128i a1 = _mm256_extractf128_si256(a0, 1); \
m128i b1 = _mm256_extractf128_si256(b0, 1); \
m128i r0 = _mm_##name##_si128(_mm256_castsi256_si128(a0), _mm256_castsi256_si128(b0)); \
m128i r1 = _mm_##name##_si128(a1, b1); \
return _mm256_insertf128_si256(_mm256_castsi128_si256(r0), r1, 1); \
}
__m128i m128i
Definition: intrinsics.h:112
#define Vc_INTRINSIC
Definition: macros.h:139
const m256i param256i
Definition: intrinsics.h:130
return
Definition: TBase64.cxx:62
unsigned int r1[N_CITIES]
Definition: simanTSP.cxx:321
__m256i m256i
Definition: intrinsics.h:115
#define Vc_CONST
Definition: macros.h:133
#define name(a, b)
Definition: linkTestLib0.cpp:5

Definition at line 259 of file intrinsics.h.