#include <256.h>
|
| Pack ()=default |
|
| Pack (__m256 reg) |
|
| Pack (float val) |
|
| Pack (double val) |
|
| Pack (int val) |
|
| Pack (std::size_t val) |
|
| Pack (float a, float b, float c, float d, float e, float f, float g, float h) |
|
| Pack (const float *ptr) |
|
| Pack (const float *ptr, const index_t *idx) |
|
| operator __m256 () |
|
Pack & | operator= (Pack rhs) |
|
float | operator[] (unsigned i) const |
|
float & | operator[] (unsigned i) |
|
Pack | operator+ (Pack rhs) const |
|
Pack & | operator+= (Pack rhs) |
|
Pack | operator- (Pack rhs) const |
|
Pack & | operator-= (Pack rhs) |
|
Pack | operator* (Pack rhs) const |
|
Pack & | operator*= (Pack rhs) |
|
Pack | operator/ (Pack rhs) const |
|
Pack & | operator/= (Pack rhs) |
|
Pack | operator- () const |
|
__m256 | sqrt () |
|
| Pack ()=default |
|
| Pack (__m512 reg) |
|
| Pack (float val) |
|
| Pack (double val) |
|
| Pack (int val) |
|
| Pack (std::size_t val) |
|
| Pack (float a, float b, float c, float d, float e, float f, float g, float h, float i, float j, float k, float l, float m, float n, float o, float p) |
|
| Pack (const float *ptr) |
|
| Pack (const float *ptr, const index_t *idx) |
|
| operator __m512 () |
|
Pack & | operator= (Pack rhs) |
|
float | operator[] (unsigned i) const |
|
float & | operator[] (unsigned i) |
|
Pack | operator+ (Pack rhs) const |
|
Pack & | operator+= (Pack rhs) |
|
Pack | operator- (Pack rhs) const |
|
Pack & | operator-= (Pack rhs) |
|
Pack | operator* (Pack rhs) const |
|
Pack & | operator*= (Pack rhs) |
|
Pack | operator/ (Pack rhs) const |
|
Pack & | operator/= (Pack rhs) |
|
Pack | operator- () const |
|
__m512 | sqrt () const |
|
|
static constexpr std::size_t | size = 8 |
|
Definition at line 244 of file 512.h.
◆ index_t
◆ mask_t
◆ Pack() [1/18]
◆ Pack() [2/18]
◆ Pack() [3/18]
Definition at line 296 of file 256.h.
296 :
297 Pack(_mm256_set1_ps(val)) { }
◆ Pack() [4/18]
Definition at line 299 of file 256.h.
299 :
300 Pack(
static_cast<float>(val)) { }
◆ Pack() [5/18]
Definition at line 302 of file 256.h.
302 :
303 Pack(
static_cast<float>(val)) { }
◆ Pack() [6/18]
Definition at line 305 of file 256.h.
305 :
306 Pack(
static_cast<float>(val)) { }
◆ Pack() [7/18]
olb::cpu::simd::Pack< float >::Pack |
( |
float | a, |
|
|
float | b, |
|
|
float | c, |
|
|
float | d, |
|
|
float | e, |
|
|
float | f, |
|
|
float | g, |
|
|
float | h ) |
|
inline |
Definition at line 308 of file 256.h.
308 :
309 Pack(_mm256_set_ps(h,g,f,e,d,c,b,a)) { }
◆ Pack() [8/18]
Definition at line 311 of file 256.h.
311 :
312 Pack(_mm256_loadu_ps(ptr)) { }
◆ Pack() [9/18]
Definition at line 314 of file 256.h.
314 :
315 Pack(_mm256_i32gather_ps(ptr, _mm256_loadu_si256(
reinterpret_cast<const __m256i*
>(idx)),
sizeof(
float))) { }
◆ Pack() [10/18]
◆ Pack() [11/18]
◆ Pack() [12/18]
Definition at line 259 of file 512.h.
259 :
260 Pack(_mm512_set1_ps(val)) { }
◆ Pack() [13/18]
Definition at line 262 of file 512.h.
262 :
263 Pack(
static_cast<float>(val)) { }
◆ Pack() [14/18]
Definition at line 265 of file 512.h.
265 :
266 Pack(
static_cast<float>(val)) { }
◆ Pack() [15/18]
Definition at line 268 of file 512.h.
268 :
269 Pack(
static_cast<float>(val)) { }
◆ Pack() [16/18]
olb::cpu::simd::Pack< float >::Pack |
( |
float | a, |
|
|
float | b, |
|
|
float | c, |
|
|
float | d, |
|
|
float | e, |
|
|
float | f, |
|
|
float | g, |
|
|
float | h, |
|
|
float | i, |
|
|
float | j, |
|
|
float | k, |
|
|
float | l, |
|
|
float | m, |
|
|
float | n, |
|
|
float | o, |
|
|
float | p ) |
|
inline |
Definition at line 271 of file 512.h.
271 :
272 Pack(_mm512_set_ps(p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a)) { }
◆ Pack() [17/18]
Definition at line 274 of file 512.h.
274 :
275 Pack(_mm512_loadu_ps(ptr)) { }
◆ Pack() [18/18]
Definition at line 277 of file 512.h.
277 :
278 Pack(_mm512_i32gather_ps(_mm512_loadu_si512(
reinterpret_cast<const __m512i*
>(idx)), ptr,
sizeof(
float))) { }
◆ operator __m256()
Definition at line 317 of file 256.h.
318 {
319 return _reg;
320 }
◆ operator __m512()
Definition at line 280 of file 512.h.
281 {
282 return _reg;
283 }
◆ operator*() [1/2]
Definition at line 360 of file 256.h.
361 {
362 return Pack(_mm256_mul_ps(_reg, rhs));
363 }
◆ operator*() [2/2]
Definition at line 323 of file 512.h.
324 {
325 return Pack(_mm512_mul_ps(_reg, rhs));
326 }
◆ operator*=() [1/2]
Definition at line 365 of file 256.h.
366 {
367 _reg = _mm256_mul_ps(_reg, rhs);
368 return *this;
369 }
◆ operator*=() [2/2]
Definition at line 328 of file 512.h.
329 {
330 _reg = _mm512_mul_ps(_reg, rhs);
331 return *this;
332 }
◆ operator+() [1/2]
Definition at line 338 of file 256.h.
339 {
340 return Pack(_mm256_add_ps(_reg, rhs));
341 }
◆ operator+() [2/2]
Definition at line 301 of file 512.h.
302 {
303 return Pack(_mm512_add_ps(_reg, rhs));
304 }
◆ operator+=() [1/2]
Definition at line 343 of file 256.h.
344 {
345 _reg = _mm256_add_ps(_reg, rhs);
346 return *this;
347 }
◆ operator+=() [2/2]
Definition at line 306 of file 512.h.
307 {
308 _reg = _mm512_add_ps(_reg, rhs);
309 return *this;
310 }
◆ operator-() [1/4]
Definition at line 382 of file 256.h.
383 {
384 return *
this *
Pack(-1);
385 }
◆ operator-() [2/4]
Definition at line 345 of file 512.h.
346 {
347 return *
this *
Pack(-1);
348 }
◆ operator-() [3/4]
Definition at line 349 of file 256.h.
350 {
351 return Pack(_mm256_sub_ps(_reg, rhs));
352 }
◆ operator-() [4/4]
Definition at line 312 of file 512.h.
313 {
314 return Pack(_mm512_sub_ps(_reg, rhs));
315 }
◆ operator-=() [1/2]
Definition at line 354 of file 256.h.
355 {
356 _reg = _mm256_sub_ps(_reg, rhs);
357 return *this;
358 }
◆ operator-=() [2/2]
Definition at line 317 of file 512.h.
318 {
319 _reg = _mm512_sub_ps(_reg, rhs);
320 return *this;
321 }
◆ operator/() [1/2]
Definition at line 371 of file 256.h.
372 {
373 return Pack(_mm256_div_ps(_reg, rhs));
374 }
◆ operator/() [2/2]
Definition at line 334 of file 512.h.
335 {
336 return Pack(_mm512_div_ps(_reg, rhs));
337 }
◆ operator/=() [1/2]
Definition at line 376 of file 256.h.
377 {
378 _reg = _mm256_div_ps(_reg, rhs);
379 return *this;
380 }
◆ operator/=() [2/2]
Definition at line 339 of file 512.h.
340 {
341 _reg = _mm512_div_ps(_reg, rhs);
342 return *this;
343 }
◆ operator=() [1/2]
Definition at line 322 of file 256.h.
323 {
324 _reg = rhs._reg;
325 return *this;
326 }
◆ operator=() [2/2]
Definition at line 285 of file 512.h.
286 {
287 _reg = rhs._reg;
288 return *this;
289 }
◆ operator[]() [1/4]
Definition at line 333 of file 256.h.
334 {
335 return reinterpret_cast<float*>(&_reg)[i];
336 }
◆ operator[]() [2/4]
Definition at line 296 of file 512.h.
297 {
298 return reinterpret_cast<float*>(&_reg)[i];
299 }
◆ operator[]() [3/4]
Definition at line 328 of file 256.h.
329 {
330 return reinterpret_cast<const float*>(&_reg)[i];
331 }
◆ operator[]() [4/4]
Definition at line 291 of file 512.h.
292 {
293 return reinterpret_cast<const float*>(&_reg)[i];
294 }
◆ sqrt() [1/2]
Definition at line 387 of file 256.h.
388 {
389 return _mm256_sqrt_ps(_reg);
390 }
◆ sqrt() [2/2]
Definition at line 350 of file 512.h.
351 {
352 return _mm512_sqrt_ps(_reg);
353 }
◆ size
The documentation for this class was generated from the following files:
- src/core/platform/cpu/simd/256.h
- src/core/platform/cpu/simd/512.h