#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 |
|
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 281 of file 256.h.
◆ index_t [1/2]
◆ index_t [2/2]
◆ mask_t [1/2]
◆ mask_t [2/2]
◆ 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 254 of file 512.h.
254 :
255 Pack(_mm512_set1_ps(val)) { }
◆ Pack() [13/18]
Definition at line 257 of file 512.h.
257 :
258 Pack(
static_cast<float>(val)) { }
◆ Pack() [14/18]
Definition at line 260 of file 512.h.
260 :
261 Pack(
static_cast<float>(val)) { }
◆ Pack() [15/18]
Definition at line 263 of file 512.h.
263 :
264 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 266 of file 512.h.
266 :
267 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 269 of file 512.h.
269 :
270 Pack(_mm512_loadu_ps(ptr)) { }
◆ Pack() [18/18]
Definition at line 272 of file 512.h.
272 :
273 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 275 of file 512.h.
276 {
277 return _reg;
278 }
◆ 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 313 of file 512.h.
314 {
315 return Pack(_mm512_mul_ps(_reg, rhs));
316 }
◆ 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 318 of file 512.h.
319 {
320 _reg = _mm512_mul_ps(_reg, rhs);
321 return *this;
322 }
◆ 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 291 of file 512.h.
292 {
293 return Pack(_mm512_add_ps(_reg, rhs));
294 }
◆ 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 296 of file 512.h.
297 {
298 _reg = _mm512_add_ps(_reg, rhs);
299 return *this;
300 }
◆ operator-() [1/4]
Definition at line 382 of file 256.h.
383 {
384 return *
this *
Pack(-1);
385 }
◆ operator-() [2/4]
Definition at line 335 of file 512.h.
336 {
337 return *
this *
Pack(-1);
338 }
◆ 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 302 of file 512.h.
303 {
304 return Pack(_mm512_sub_ps(_reg, rhs));
305 }
◆ 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 307 of file 512.h.
308 {
309 _reg = _mm512_sub_ps(_reg, rhs);
310 return *this;
311 }
◆ 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 324 of file 512.h.
325 {
326 return Pack(_mm512_div_ps(_reg, rhs));
327 }
◆ 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 329 of file 512.h.
330 {
331 _reg = _mm512_div_ps(_reg, rhs);
332 return *this;
333 }
◆ 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 280 of file 512.h.
281 {
282 _reg = rhs._reg;
283 return *this;
284 }
◆ operator[]() [1/3]
Definition at line 333 of file 256.h.
334 {
335 return reinterpret_cast<float*>(&_reg)[i];
336 }
◆ operator[]() [2/3]
Definition at line 328 of file 256.h.
329 {
330 return reinterpret_cast<const float*>(&_reg)[i];
331 }
◆ operator[]() [3/3]
Definition at line 286 of file 512.h.
287 {
288 return reinterpret_cast<const float*>(&_reg)[i];
289 }
◆ 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 340 of file 512.h.
341 {
342 return _mm512_sqrt_ps(_reg);
343 }
◆ 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