#include <256.h>
|
| Pack ()=default |
|
| Pack (__m256d reg) |
|
| Pack (double val) |
|
| Pack (int val) |
|
| Pack (std::size_t val) |
|
| Pack (double a, double b, double c, double d) |
|
| Pack (const double *ptr) |
|
| Pack (const double *ptr, const index_t *idx) |
|
| operator __m256d () |
|
Pack & | operator= (Pack rhs) |
|
double | operator[] (unsigned i) const |
|
double & | 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 |
|
Pack | sqrt () const |
|
| Pack ()=default |
|
| Pack (__m512d reg) |
|
| Pack (double val) |
|
| Pack (int val) |
|
| Pack (std::size_t val) |
|
| Pack (double a, double b, double c, double d, double e, double f, double g, double h) |
|
| Pack (const double *ptr) |
|
| Pack (const double *ptr, const index_t *idx) |
|
| operator __m512d () |
|
Pack & | operator= (Pack rhs) |
|
double | 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 |
|
Pack | sqrt () const |
|
|
static constexpr std::size_t | size = 4 |
|
Definition at line 171 of file 256.h.
◆ index_t [1/2]
◆ index_t [2/2]
◆ mask_t [1/2]
◆ mask_t [2/2]
◆ Pack() [1/16]
◆ Pack() [2/16]
◆ Pack() [3/16]
Definition at line 186 of file 256.h.
186 :
187 Pack(_mm256_set1_pd(val)) { }
◆ Pack() [4/16]
Definition at line 189 of file 256.h.
189 :
190 Pack(
static_cast<double>(val)) { }
◆ Pack() [5/16]
Definition at line 192 of file 256.h.
192 :
193 Pack(
static_cast<double>(val)) { }
◆ Pack() [6/16]
Definition at line 195 of file 256.h.
195 :
196 Pack(_mm256_set_pd(d,c,b,a)) { }
◆ Pack() [7/16]
Definition at line 198 of file 256.h.
198 :
199 Pack(_mm256_loadu_pd(ptr)) { }
◆ Pack() [8/16]
Definition at line 201 of file 256.h.
201 :
202 Pack(_mm256_i32gather_pd(ptr, _mm_loadu_si128(
reinterpret_cast<const __m128i*
>(idx)),
sizeof(
double))) { }
◆ Pack() [9/16]
◆ Pack() [10/16]
◆ Pack() [11/16]
Definition at line 149 of file 512.h.
149 :
150 Pack(_mm512_set1_pd(val)) { }
◆ Pack() [12/16]
Definition at line 152 of file 512.h.
152 :
153 Pack(
static_cast<double>(val)) { }
◆ Pack() [13/16]
Definition at line 155 of file 512.h.
155 :
156 Pack(
static_cast<double>(val)) { }
◆ Pack() [14/16]
olb::cpu::simd::Pack< double >::Pack |
( |
double | a, |
|
|
double | b, |
|
|
double | c, |
|
|
double | d, |
|
|
double | e, |
|
|
double | f, |
|
|
double | g, |
|
|
double | h ) |
|
inline |
Definition at line 158 of file 512.h.
158 :
159 Pack(_mm512_set_pd(h,g,f,e,d,c,b,a)) { }
◆ Pack() [15/16]
Definition at line 161 of file 512.h.
161 :
162 Pack(_mm512_loadu_pd(ptr)) { }
◆ Pack() [16/16]
Definition at line 164 of file 512.h.
164 :
165 Pack(_mm512_i32gather_pd(_mm256_loadu_si256(
reinterpret_cast<const __m256i*
>(idx)), ptr,
sizeof(
double))) { }
◆ operator __m256d()
Definition at line 204 of file 256.h.
205 {
206 return _reg;
207 }
◆ operator __m512d()
Definition at line 167 of file 512.h.
168 {
169 return _reg;
170 }
◆ operator*() [1/2]
Definition at line 247 of file 256.h.
248 {
249 return Pack(_mm256_mul_pd(_reg, rhs));
250 }
◆ operator*() [2/2]
Definition at line 205 of file 512.h.
206 {
207 return Pack(_mm512_mul_pd(_reg, rhs));
208 }
◆ operator*=() [1/2]
Definition at line 252 of file 256.h.
253 {
254 _reg = _mm256_mul_pd(_reg, rhs);
255 return *this;
256 }
◆ operator*=() [2/2]
Definition at line 210 of file 512.h.
211 {
212 _reg = _mm512_mul_pd(_reg, rhs);
213 return *this;
214 }
◆ operator+() [1/2]
Definition at line 225 of file 256.h.
226 {
227 return Pack(_mm256_add_pd(_reg, rhs));
228 }
◆ operator+() [2/2]
Definition at line 183 of file 512.h.
184 {
185 return Pack(_mm512_add_pd(_reg, rhs));
186 }
◆ operator+=() [1/2]
Definition at line 230 of file 256.h.
231 {
232 _reg = _mm256_add_pd(_reg, rhs);
233 return *this;
234 }
◆ operator+=() [2/2]
Definition at line 188 of file 512.h.
189 {
190 _reg = _mm512_add_pd(_reg, rhs);
191 return *this;
192 }
◆ operator-() [1/4]
Definition at line 269 of file 256.h.
270 {
271 return *
this *
Pack(-1);
272 }
◆ operator-() [2/4]
Definition at line 227 of file 512.h.
228 {
229 return *
this *
Pack(-1);
230 }
◆ operator-() [3/4]
Definition at line 236 of file 256.h.
237 {
238 return Pack(_mm256_sub_pd(_reg, rhs));
239 }
◆ operator-() [4/4]
Definition at line 194 of file 512.h.
195 {
196 return Pack(_mm512_sub_pd(_reg, rhs));
197 }
◆ operator-=() [1/2]
Definition at line 241 of file 256.h.
242 {
243 _reg = _mm256_sub_pd(_reg, rhs);
244 return *this;
245 }
◆ operator-=() [2/2]
Definition at line 199 of file 512.h.
200 {
201 _reg = _mm512_sub_pd(_reg, rhs);
202 return *this;
203 }
◆ operator/() [1/2]
Definition at line 258 of file 256.h.
259 {
260 return Pack(_mm256_div_pd(_reg, rhs));
261 }
◆ operator/() [2/2]
Definition at line 216 of file 512.h.
217 {
218 return Pack(_mm512_div_pd(_reg, rhs));
219 }
◆ operator/=() [1/2]
Definition at line 263 of file 256.h.
264 {
265 _reg = _mm256_div_pd(_reg, rhs);
266 return *this;
267 }
◆ operator/=() [2/2]
Definition at line 221 of file 512.h.
222 {
223 _reg = _mm512_div_pd(_reg, rhs);
224 return *this;
225 }
◆ operator=() [1/2]
Definition at line 209 of file 256.h.
210 {
211 _reg = rhs._reg;
212 return *this;
213 }
◆ operator=() [2/2]
Definition at line 172 of file 512.h.
173 {
174 _reg = rhs._reg;
175 return *this;
176 }
◆ operator[]() [1/3]
Definition at line 220 of file 256.h.
221 {
222 return reinterpret_cast<double*>(&_reg)[i];
223 }
◆ operator[]() [2/3]
Definition at line 215 of file 256.h.
216 {
217 return reinterpret_cast<const double*>(&_reg)[i];
218 }
◆ operator[]() [3/3]
Definition at line 178 of file 512.h.
179 {
180 return reinterpret_cast<const double*>(&_reg)[i];
181 }
◆ sqrt() [1/2]
Definition at line 274 of file 256.h.
275 {
276 return _mm256_sqrt_pd(_reg);
277 }
◆ sqrt() [2/2]
Definition at line 232 of file 512.h.
233 {
234 return _mm512_sqrt_pd(_reg);
235 }
◆ 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