AVX.h File Reference

Detailed Description

Wrapper functions around AVX intrinsics.

Author
Martin Bauer marti.nosp@m.n.ba.nosp@m.uer@f.nosp@m.au.d.nosp@m.e
#include "immintrin.h"
#include "IntelVecTypesCppOperators.h"

Namespaces

 walberla
 \file TimestepTracker.h \ingroup lbm \author Frederik Hennig frede.nosp@m.rik..nosp@m.henni.nosp@m.g@fa.nosp@m.u.de
 
 walberla::simd
 
 walberla::simd::avx
 

Typedefs

typedef __m256d walberla::simd::avx::double4_t
 

Functions

const char * walberla::simd::avx::usedInstructionSet ()
 
double4_t walberla::simd::avx::make_double4 (double d, double c, double b, double a)
 
double4_t walberla::simd::avx::make_double4_r (double a, double b, double c, double d)
 
double4_t walberla::simd::avx::make_double4 (double a)
 
double4_t walberla::simd::avx::make_zero ()
 
double4_t walberla::simd::avx::load_aligned (double const *mem_addr)
 
double4_t walberla::simd::avx::load_unaligned (double const *mem_addr)
 
void walberla::simd::avx::loadNeighbors (const double *p, double4_t &r_left, double4_t &r_center, double4_t &r_right)
 
void walberla::simd::avx::store_aligned (double *mem_addr, double4_t a)
 
double walberla::simd::avx::getComponent (const double4_t &v, int i)
 
double walberla::simd::avx::getComponent (const double4_t &v, unsigned long i)
 
bool walberla::simd::avx::getBoolComponent (const double4_t &v, int i)
 
bool walberla::simd::avx::getBoolComponent (const double4_t &v, unsigned long i)
 
double4_t walberla::simd::avx::hadd (double4_t a, double4_t b)
 
double4_t walberla::simd::avx::horizontalSum (double4_t a)
 
double4_t walberla::simd::avx::exchangeLowerUpperHalf (double4_t a)
 
void walberla::simd::avx::extract (double4_t in, double4_t &d, double4_t &c, double4_t &b, double4_t &a)
 
double4_t walberla::simd::avx::rotateRight (double4_t a)
 
double4_t walberla::simd::avx::rotateLeft (double4_t a)
 
double4_t walberla::simd::avx::compareEQ (double4_t a, double4_t b)
 
double4_t walberla::simd::avx::compareNEQ (double4_t a, double4_t b)
 
double4_t walberla::simd::avx::compareGE (double4_t a, double4_t b)
 
double4_t walberla::simd::avx::compareLE (double4_t a, double4_t b)
 
double4_t walberla::simd::avx::logicalAND (double4_t a, double4_t b)
 
double4_t walberla::simd::avx::logicalOR (double4_t a, double4_t b)
 
int walberla::simd::avx::movemask (double4_t m)
 
double4_t walberla::simd::avx::blendv (double4_t a, double4_t b, double4_t mask)
 
template<int mask>
double4_t walberla::simd::avx::blend (double4_t a, double4_t b)
 
double4_t walberla::simd::avx::sqrt (double4_t a)
 
template<unsigned int numIter = 3>
double4_t walberla::simd::avx::invSqrt (double4_t y)