waLBerla 7.3
Loading...
Searching...
No Matches
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

namespace  walberla
 Storage for detected contacts which can be used to perform actions for all contacts, e.g.
namespace  walberla::simd
namespace  walberla::simd::avx

Typedefs

using walberla::simd::avx::double4_t = __m256d

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)