LSX/TypeCasting.h
Go to the documentation of this file.
1 // This file is part of Eigen, a lightweight C++ template library
2 // for linear algebra.
3 //
4 // Copyright (C) 2023 Zang Ruochen <zangruochen@loongson.cn>
5 // Copyright (C) 2024 XiWei Gu <guxiwei-hf@loongson.cn>
6 //
7 // This Source Code Form is subject to the terms of the Mozilla
8 // Public License v. 2.0. If a copy of the MPL was not distributed
9 // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
10 
11 #ifndef EIGEN_TYPE_CASTING_LSX_H
12 #define EIGEN_TYPE_CASTING_LSX_H
13 
14 // IWYU pragma: private
15 #include "../../InternalHeaderCheck.h"
16 
17 namespace Eigen {
18 
19 namespace internal {
20 
21 //==============================================================================
22 // preinterpret
23 //==============================================================================
24 template <>
26  return (__m128)((__m128i)a);
27 }
28 template <>
30  return (__m128)((__m128i)a);
31 }
32 template <>
34  return (__m128d)((__m128i)a);
35 }
36 template <>
38  return (__m128d)((__m128i)a);
39 }
40 template <>
42  return (__m128d)((__m128i)a);
43 }
44 template <>
46  return (__m128i)a;
47 }
48 template <>
50  return (__m128i)a;
51 }
52 template <>
54  return (__m128i)a;
55 }
56 template <>
58  return (__m128i)a;
59 }
60 template <>
62  return (__m128i)a;
63 }
64 template <>
66  return (__m128i)a;
67 }
68 template <>
70  return (__m128i)a;
71 }
72 template <>
74  return (__m128i)a;
75 }
76 template <>
78  return (__m128i)a;
79 }
80 template <>
82  return (__m128i)a;
83 }
84 template <>
86  return (__m128i)a;
87 }
88 template <>
90  return (__m128i)a;
91 }
92 
93 template <>
95  Packet2d tmp = __lsx_vfcvtl_d_s(a);
96  return __lsx_vftint_l_d(tmp);
97 }
98 template <>
100  Packet2d tmp = __lsx_vfcvtl_d_s(a);
101  return __lsx_vftint_lu_d(tmp);
102 }
103 template <>
105  return __lsx_vftint_w_s(a);
106 }
107 template <>
109  return __lsx_vftint_wu_s(a);
110 }
111 template <>
113  return __lsx_vssrlni_h_w(__lsx_vftint_w_s(a), __lsx_vftint_w_s(b), 0);
114 }
115 template <>
117  return __lsx_vssrlni_hu_w(__lsx_vftint_wu_s(a), __lsx_vftint_wu_s(b), 0);
118 }
119 template <>
121  const Packet4f& d) {
122  Packet8s tmp1 = __lsx_vssrlni_h_w(__lsx_vftint_w_s(a), __lsx_vftint_w_s(b), 0);
123  Packet8s tmp2 = __lsx_vssrlni_h_w(__lsx_vftint_w_s(c), __lsx_vftint_w_s(d), 0);
124  return __lsx_vssrlni_b_h((__m128i)tmp1, (__m128i)tmp2, 0);
125 }
126 template <>
128  const Packet4f& d) {
129  Packet8us tmp1 = __lsx_vssrlni_hu_w(__lsx_vftint_wu_s(a), __lsx_vftint_wu_s(b), 0);
130  Packet8us tmp2 = __lsx_vssrlni_hu_w(__lsx_vftint_wu_s(c), __lsx_vftint_wu_s(d), 0);
131  return __lsx_vssrlni_bu_h((__m128i)tmp1, (__m128i)tmp2, 0);
132 }
133 
134 template <>
136  Packet8s tmp1 = __lsx_vsllwil_h_b((__m128i)a, 0);
137  Packet4i tmp2 = __lsx_vsllwil_w_h((__m128i)tmp1, 0);
138  return __lsx_vffint_s_w(tmp2);
139 }
140 template <>
142  Packet8s tmp1 = __lsx_vsllwil_h_b((__m128i)a, 0);
143  Packet4i tmp2 = __lsx_vsllwil_w_h((__m128i)tmp1, 0);
144  return __lsx_vsllwil_d_w((__m128i)tmp2, 0);
145 }
146 template <>
148  Packet8s tmp1 = __lsx_vsllwil_h_b((__m128i)a, 0);
149  Packet4i tmp2 = __lsx_vsllwil_w_h((__m128i)tmp1, 0);
150  return (Packet2ul)__lsx_vsllwil_d_w((__m128i)tmp2, 0);
151 }
152 template <>
154  Packet8s tmp1 = __lsx_vsllwil_h_b((__m128i)a, 0);
155  return __lsx_vsllwil_w_h((__m128i)tmp1, 0);
156 }
157 template <>
159  Packet8s tmp1 = __lsx_vsllwil_h_b((__m128i)a, 0);
160  return (Packet4ui)__lsx_vsllwil_w_h((__m128i)tmp1, 0);
161 }
162 template <>
164  return __lsx_vsllwil_h_b((__m128i)a, 0);
165 }
166 template <>
168  return (Packet8us)__lsx_vsllwil_h_b((__m128i)a, 0);
169 }
170 
171 template <>
173  Packet8us tmp1 = __lsx_vsllwil_hu_bu((__m128i)a, 0);
174  Packet4ui tmp2 = __lsx_vsllwil_wu_hu((__m128i)tmp1, 0);
175  return __lsx_vffint_s_wu(tmp2);
176 }
177 template <>
179  Packet8us tmp1 = __lsx_vsllwil_hu_bu((__m128i)a, 0);
180  Packet4ui tmp2 = __lsx_vsllwil_wu_hu((__m128i)tmp1, 0);
181  return __lsx_vsllwil_du_wu((__m128i)tmp2, 0);
182 }
183 template <>
185  Packet8us tmp1 = __lsx_vsllwil_hu_bu((__m128i)a, 0);
186  Packet4ui tmp2 = __lsx_vsllwil_wu_hu((__m128i)tmp1, 0);
187  return (Packet2l)__lsx_vsllwil_du_wu((__m128i)tmp2, 0);
188 }
189 template <>
191  Packet8us tmp1 = __lsx_vsllwil_hu_bu((__m128i)a, 0);
192  return __lsx_vsllwil_wu_hu((__m128i)tmp1, 0);
193 }
194 template <>
196  Packet8us tmp1 = __lsx_vsllwil_hu_bu((__m128i)a, 0);
197  return (Packet4i)__lsx_vsllwil_wu_hu((__m128i)tmp1, 0);
198 }
199 template <>
201  return __lsx_vsllwil_hu_bu((__m128i)a, 0);
202 }
203 template <>
205  return (Packet8s)__lsx_vsllwil_hu_bu((__m128i)a, 0);
206 }
207 
208 template <>
210  Packet4i tmp1 = __lsx_vsllwil_w_h((__m128i)a, 0);
211  return __lsx_vffint_s_w(tmp1);
212 }
213 template <>
215  Packet4i tmp1 = __lsx_vsllwil_w_h((__m128i)a, 0);
216  return __lsx_vsllwil_d_w((__m128i)tmp1, 0);
217 }
218 template <>
220  Packet4i tmp1 = __lsx_vsllwil_w_h((__m128i)a, 0);
221  return (Packet2ul)__lsx_vsllwil_d_w((__m128i)tmp1, 0);
222 }
223 template <>
225  return __lsx_vsllwil_w_h((__m128i)a, 0);
226 }
227 template <>
229  return (Packet4ui)__lsx_vsllwil_w_h((__m128i)a, 0);
230 }
231 template <>
233  return __lsx_vssrlni_b_h((__m128i)a, (__m128i)b, 0);
234 }
235 template <>
237  return (Packet16uc)__lsx_vssrlni_b_h((__m128i)a, (__m128i)b, 0);
238 }
239 
240 template <>
242  Packet4ui tmp1 = __lsx_vsllwil_wu_hu((__m128i)a, 0);
243  return __lsx_vffint_s_wu(tmp1);
244 }
245 template <>
247  Packet4ui tmp1 = __lsx_vsllwil_wu_hu((__m128i)a, 0);
248  return __lsx_vsllwil_du_wu((__m128i)tmp1, 0);
249 }
250 template <>
252  Packet4ui tmp1 = __lsx_vsllwil_wu_hu((__m128i)a, 0);
253  return (Packet2l)__lsx_vsllwil_du_wu((__m128i)tmp1, 0);
254 }
255 template <>
257  return __lsx_vsllwil_wu_hu((__m128i)a, 0);
258 }
259 template <>
261  return (Packet4i)__lsx_vsllwil_wu_hu((__m128i)a, 0);
262 }
263 template <>
265  return __lsx_vssrlni_bu_h((__m128i)a, (__m128i)b, 0);
266 }
267 template <>
269  return (Packet16c)__lsx_vssrlni_bu_h((__m128i)a, (__m128i)b, 0);
270 }
271 
272 template <>
274  return __lsx_vffint_s_w(a);
275 }
276 template <>
278  return __lsx_vsllwil_d_w((__m128i)a, 0);
279 }
280 template <>
282  return (Packet2ul)__lsx_vsllwil_d_w((__m128i)a, 0);
283 }
284 template <>
286  return __lsx_vssrlni_h_w((__m128i)a, (__m128i)b, 0);
287 }
288 template <>
290  return (Packet8us)__lsx_vssrlni_h_w((__m128i)a, (__m128i)b, 0);
291 }
292 template <>
294  const Packet4i& d) {
295  Packet8s tmp1 = __lsx_vssrlni_h_w((__m128i)a, (__m128i)b, 0);
296  Packet8s tmp2 = __lsx_vssrlni_h_w((__m128i)c, (__m128i)d, 0);
297  return __lsx_vssrlni_b_h((__m128i)tmp1, (__m128i)tmp2, 0);
298 }
299 template <>
301  const Packet4i& d) {
302  Packet8s tmp1 = __lsx_vssrlni_h_w((__m128i)a, (__m128i)b, 0);
303  Packet8s tmp2 = __lsx_vssrlni_h_w((__m128i)c, (__m128i)d, 0);
304  return (Packet16uc)__lsx_vssrlni_b_h((__m128i)tmp1, (__m128i)tmp2, 0);
305 }
306 
307 template <>
309  return __lsx_vffint_s_wu(a);
310 }
311 template <>
313  return __lsx_vsllwil_du_wu((__m128i)a, 0);
314 }
315 template <>
317  return (Packet2l)__lsx_vsllwil_du_wu((__m128i)a, 0);
318 }
319 template <>
321  return __lsx_vssrlni_hu_w((__m128i)a, (__m128i)b, 0);
322 }
323 template <>
325  return (Packet8s)__lsx_vssrlni_hu_w((__m128i)a, (__m128i)b, 0);
326 }
327 template <>
329  const Packet4ui& d) {
330  Packet8us tmp1 = __lsx_vssrlni_hu_w((__m128i)a, (__m128i)b, 0);
331  Packet8us tmp2 = __lsx_vssrlni_hu_w((__m128i)c, (__m128i)d, 0);
332  return __lsx_vssrlni_bu_h((__m128i)tmp1, (__m128i)tmp2, 0);
333 }
334 template <>
336  const Packet4ui& d) {
337  Packet8us tmp1 = __lsx_vssrlni_hu_w((__m128i)a, (__m128i)b, 0);
338  Packet8us tmp2 = __lsx_vssrlni_hu_w((__m128i)c, (__m128i)d, 0);
339  return (Packet16c)__lsx_vssrlni_bu_h((__m128i)tmp1, (__m128i)tmp2, 0);
340 }
341 
342 template <>
344  return __lsx_vffint_s_w(__lsx_vssrlni_w_d((__m128i)a, (__m128i)b, 0));
345 }
346 template <>
348  return __lsx_vssrlni_w_d((__m128i)a, (__m128i)b, 0);
349 }
350 template <>
352  return (Packet4ui)__lsx_vssrlni_w_d((__m128i)a, (__m128i)b, 0);
353 }
354 template <>
356  const Packet2l& d) {
357  Packet4i tmp1 = __lsx_vssrlni_w_d((__m128i)a, (__m128i)b, 0);
358  Packet4i tmp2 = __lsx_vssrlni_w_d((__m128i)c, (__m128i)d, 0);
359  return __lsx_vssrlni_h_w((__m128i)tmp1, (__m128i)tmp2, 0);
360 }
361 template <>
363  const Packet2l& d) {
364  Packet4i tmp1 = __lsx_vssrlni_w_d((__m128i)a, (__m128i)b, 0);
365  Packet4i tmp2 = __lsx_vssrlni_w_d((__m128i)c, (__m128i)d, 0);
366  return (Packet8us)__lsx_vssrlni_h_w((__m128i)tmp1, (__m128i)tmp2, 0);
367 }
368 template <>
370  const Packet2l& d, const Packet2l& e, const Packet2l& f,
371  const Packet2l& g, const Packet2l& h) {
372  const Packet8s abcd = pcast<Packet2l, Packet8s>(a, b, c, d);
373  const Packet8s efgh = pcast<Packet2l, Packet8s>(e, f, g, h);
374  return __lsx_vssrlni_b_h((__m128i)abcd, (__m128i)efgh, 0);
375 }
376 template <>
378  const Packet2l& d, const Packet2l& e, const Packet2l& f,
379  const Packet2l& g, const Packet2l& h) {
380  const Packet8us abcd = pcast<Packet2l, Packet8us>(a, b, c, d);
381  const Packet8us efgh = pcast<Packet2l, Packet8us>(e, f, g, h);
382  return __lsx_vssrlni_bu_h((__m128i)abcd, (__m128i)efgh, 0);
383 }
384 
385 template <>
387  return __lsx_vffint_s_wu(__lsx_vssrlni_w_d((__m128i)a, (__m128i)b, 0));
388 }
389 template <>
391  return __lsx_vssrlni_wu_d((__m128i)a, (__m128i)b, 0);
392 }
393 template <>
395  return (Packet4i)__lsx_vssrlni_wu_d((__m128i)a, (__m128i)b, 0);
396 }
397 template <>
399  const Packet2ul& d) {
400  Packet4ui tmp1 = __lsx_vssrlni_wu_d((__m128i)a, (__m128i)b, 0);
401  Packet4ui tmp2 = __lsx_vssrlni_wu_d((__m128i)c, (__m128i)d, 0);
402  return __lsx_vssrlni_hu_w((__m128i)tmp1, (__m128i)tmp2, 0);
403 }
404 template <>
406  const Packet2ul& d) {
407  Packet4ui tmp1 = __lsx_vssrlni_wu_d((__m128i)a, (__m128i)b, 0);
408  Packet4ui tmp2 = __lsx_vssrlni_wu_d((__m128i)c, (__m128i)d, 0);
409  return (Packet8s)__lsx_vssrlni_hu_w((__m128i)tmp1, (__m128i)tmp2, 0);
410 }
411 template <>
413  const Packet2ul& d, const Packet2ul& e, const Packet2ul& f,
414  const Packet2ul& g, const Packet2ul& h) {
415  const Packet8s abcd = pcast<Packet2ul, Packet8s>(a, b, c, d);
416  const Packet8s efgh = pcast<Packet2ul, Packet8s>(e, f, g, h);
417  return __lsx_vssrlni_b_h((__m128i)abcd, (__m128i)efgh, 0);
418 }
419 template <>
421  const Packet2ul& d, const Packet2ul& e, const Packet2ul& f,
422  const Packet2ul& g, const Packet2ul& h) {
423  const Packet8us abcd = pcast<Packet2ul, Packet8us>(a, b, c, d);
424  const Packet8us efgh = pcast<Packet2ul, Packet8us>(e, f, g, h);
425  return __lsx_vssrlni_bu_h((__m128i)abcd, (__m128i)efgh, 0);
426 }
427 
428 template <>
430  return __lsx_vfcvt_s_d(b, a);
431 }
432 template <>
434  return __lsx_vftint_l_d(a);
435 }
436 template <>
438  return __lsx_vftint_lu_d(a);
439 }
440 template <>
442  return __lsx_vssrlni_w_d(__lsx_vftint_l_d(a), __lsx_vftint_l_d(b), 0);
443 }
444 template <>
446  return __lsx_vssrlni_wu_d(__lsx_vftint_lu_d(a), __lsx_vftint_lu_d(b), 0);
447 }
448 template <>
450  const Packet2d& d) {
451  Packet4i tmp1 = __lsx_vssrlni_w_d(__lsx_vftint_l_d(a), __lsx_vftint_l_d(b), 0);
452  Packet4i tmp2 = __lsx_vssrlni_w_d(__lsx_vftint_l_d(c), __lsx_vftint_l_d(d), 0);
453  return __lsx_vssrlni_h_w((__m128i)tmp1, (__m128i)tmp2, 0);
454 }
455 template <>
457  const Packet2d& d) {
458  Packet4ui tmp1 = __lsx_vssrlni_wu_d(__lsx_vftint_lu_d(a), __lsx_vftint_lu_d(b), 0);
459  Packet4ui tmp2 = __lsx_vssrlni_wu_d(__lsx_vftint_lu_d(c), __lsx_vftint_lu_d(d), 0);
460  return __lsx_vssrlni_hu_w((__m128i)tmp1, (__m128i)tmp2, 0);
461 }
462 template <>
464  const Packet2d& d, const Packet2d& e, const Packet2d& f,
465  const Packet2d& g, const Packet2d& h) {
466  const Packet8s abcd = pcast<Packet2d, Packet8s>(a, b, c, d);
467  const Packet8s efgh = pcast<Packet2d, Packet8s>(e, f, g, h);
468  return __lsx_vssrlni_b_h((__m128i)abcd, (__m128i)efgh, 0);
469 }
470 template <>
472  const Packet2d& d, const Packet2d& e, const Packet2d& f,
473  const Packet2d& g, const Packet2d& h) {
474  const Packet8us abcd = pcast<Packet2d, Packet8us>(a, b, c, d);
475  const Packet8us efgh = pcast<Packet2d, Packet8us>(e, f, g, h);
476  return __lsx_vssrlni_bu_h((__m128i)abcd, (__m128i)efgh, 0);
477 }
478 
479 template <>
481  return __lsx_vfcvtl_d_s(a);
482 }
483 template <>
485  Packet8s tmp1 = __lsx_vsllwil_h_b((__m128i)a, 0);
486  Packet4i tmp2 = __lsx_vsllwil_w_h((__m128i)tmp1, 0);
487  return __lsx_vffint_d_l(__lsx_vsllwil_d_w((__m128i)tmp2, 0));
488 }
489 template <>
491  Packet8us tmp1 = __lsx_vsllwil_hu_bu((__m128i)a, 0);
492  Packet4ui tmp2 = __lsx_vsllwil_wu_hu((__m128i)tmp1, 0);
493  return __lsx_vffint_d_lu(__lsx_vsllwil_du_wu((__m128i)tmp2, 0));
494 }
495 template <>
497  Packet4i tmp = __lsx_vsllwil_w_h((__m128i)a, 0);
498  return __lsx_vffint_d_l(__lsx_vsllwil_d_w((__m128i)tmp, 0));
499 }
500 template <>
502  Packet4ui tmp = __lsx_vsllwil_wu_hu((__m128i)a, 0);
503  return __lsx_vffint_d_lu(__lsx_vsllwil_du_wu((__m128i)tmp, 0));
504 }
505 template <>
507  return __lsx_vffint_d_l(__lsx_vsllwil_d_w((__m128i)a, 0));
508 }
509 template <>
511  return __lsx_vffint_d_lu(__lsx_vsllwil_du_wu((__m128i)a, 0));
512 }
513 template <>
515  return __lsx_vffint_d_l(a);
516 }
517 template <>
519  return __lsx_vffint_d_lu(a);
520 }
521 
522 } // end namespace internal
523 
524 } // end namespace Eigen
525 
526 #endif // EIGEN_TYPE_CASTING_LSX_H
Array< double, 1, 3 > e(1./3., 0.5, 2.)
#define EIGEN_STRONG_INLINE
Definition: Macros.h:834
Scalar * b
Definition: benchVecAdd.cpp:17
static int f(const TensorMap< Tensor< int, 3 > > &tensor)
Definition: cxx11_tensor_map.cpp:237
const Scalar * a
Definition: level2_cplx_impl.h:32
Eigen::Matrix< Scalar, Dynamic, Dynamic, ColMajor > tmp
Definition: level3_impl.h:365
EIGEN_STRONG_INLINE Packet4i pcast< Packet8s, Packet4i >(const Packet8s &a)
Definition: LSX/TypeCasting.h:224
__m128d Packet2d
Definition: LSX/PacketMath.h:36
EIGEN_STRONG_INLINE Packet16c pcast< Packet8us, Packet16c >(const Packet8us &a, const Packet8us &b)
Definition: LSX/TypeCasting.h:268
EIGEN_STRONG_INLINE Packet4f pcast< Packet8s, Packet4f >(const Packet8s &a)
Definition: LSX/TypeCasting.h:209
EIGEN_STRONG_INLINE Packet2d pcast< Packet4i, Packet2d >(const Packet4i &a)
Definition: LSX/TypeCasting.h:506
EIGEN_STRONG_INLINE Packet2ul pcast< Packet4f, Packet2ul >(const Packet4f &a)
Definition: LSX/TypeCasting.h:99
EIGEN_STRONG_INLINE Packet16uc pcast< Packet2ul, Packet16uc >(const Packet2ul &a, const Packet2ul &b, const Packet2ul &c, const Packet2ul &d, const Packet2ul &e, const Packet2ul &f, const Packet2ul &g, const Packet2ul &h)
Definition: LSX/TypeCasting.h:412
EIGEN_STRONG_INLINE Packet8us pcast< Packet2ul, Packet8us >(const Packet2ul &a, const Packet2ul &b, const Packet2ul &c, const Packet2ul &d)
Definition: LSX/TypeCasting.h:398
EIGEN_STRONG_INLINE Packet4i pcast< Packet2d, Packet4i >(const Packet2d &a, const Packet2d &b)
Definition: LSX/TypeCasting.h:441
__vector int Packet4i
Definition: AltiVec/PacketMath.h:34
EIGEN_STRONG_INLINE Packet2ul pcast< Packet2d, Packet2ul >(const Packet2d &a)
Definition: LSX/TypeCasting.h:437
EIGEN_STRONG_INLINE Packet2l pcast< Packet8s, Packet2l >(const Packet8s &a)
Definition: LSX/TypeCasting.h:214
EIGEN_STRONG_INLINE Packet4i preinterpret< Packet4i, Packet2d >(const Packet2d &a)
Definition: LSX/TypeCasting.h:61
__vector unsigned char Packet16uc
Definition: AltiVec/PacketMath.h:41
EIGEN_STRONG_INLINE Packet2ul preinterpret< Packet2ul, Packet2d >(const Packet2d &a)
Definition: LSX/TypeCasting.h:85
EIGEN_STRONG_INLINE Packet8s pcast< Packet4f, Packet8s >(const Packet4f &a, const Packet4f &b)
Definition: LSX/TypeCasting.h:112
EIGEN_STRONG_INLINE Packet8us pcast< Packet4f, Packet8us >(const Packet4f &a, const Packet4f &b)
Definition: LSX/TypeCasting.h:116
EIGEN_STRONG_INLINE Packet8us pcast< Packet2d, Packet8us >(const Packet2d &a, const Packet2d &b, const Packet2d &c, const Packet2d &d)
Definition: LSX/TypeCasting.h:456
EIGEN_STRONG_INLINE Packet2l pcast< Packet4f, Packet2l >(const Packet4f &a)
Definition: LSX/TypeCasting.h:94
EIGEN_STRONG_INLINE Packet2ul pcast< Packet8us, Packet2ul >(const Packet8us &a)
Definition: LSX/TypeCasting.h:246
EIGEN_STRONG_INLINE Packet2d pcast< Packet4ui, Packet2d >(const Packet4ui &a)
Definition: LSX/TypeCasting.h:510
EIGEN_STRONG_INLINE Packet16uc pcast< Packet8s, Packet16uc >(const Packet8s &a, const Packet8s &b)
Definition: LSX/TypeCasting.h:236
EIGEN_STRONG_INLINE Packet16c pcast< Packet4i, Packet16c >(const Packet4i &a, const Packet4i &b, const Packet4i &c, const Packet4i &d)
Definition: LSX/TypeCasting.h:293
EIGEN_STRONG_INLINE Packet8s pcast< Packet16c, Packet8s >(const Packet16c &a)
Definition: LSX/TypeCasting.h:163
EIGEN_STRONG_INLINE Packet2d preinterpret< Packet2d, Packet2l >(const Packet2l &a)
Definition: LSX/TypeCasting.h:33
EIGEN_STRONG_INLINE Packet2d pcast< Packet2ul, Packet2d >(const Packet2ul &a)
Definition: LSX/TypeCasting.h:518
__vector unsigned short int Packet8us
Definition: AltiVec/PacketMath.h:38
EIGEN_STRONG_INLINE Packet8s pcast< Packet4i, Packet8s >(const Packet4i &a, const Packet4i &b)
Definition: LSX/TypeCasting.h:285
EIGEN_STRONG_INLINE Packet16c pcast< Packet4f, Packet16c >(const Packet4f &a, const Packet4f &b, const Packet4f &c, const Packet4f &d)
Definition: LSX/TypeCasting.h:120
EIGEN_STRONG_INLINE Packet2d pcast< Packet4f, Packet2d >(const Packet4f &a)
Definition: LSX/TypeCasting.h:480
EIGEN_STRONG_INLINE Packet4f pcast< Packet16c, Packet4f >(const Packet16c &a)
Definition: LSX/TypeCasting.h:135
EIGEN_STRONG_INLINE Packet2l pcast< Packet2d, Packet2l >(const Packet2d &a)
Definition: LSX/TypeCasting.h:433
EIGEN_STRONG_INLINE Packet16uc pcast< Packet2d, Packet16uc >(const Packet2d &a, const Packet2d &b, const Packet2d &c, const Packet2d &d, const Packet2d &e, const Packet2d &f, const Packet2d &g, const Packet2d &h)
Definition: LSX/TypeCasting.h:471
EIGEN_STRONG_INLINE Packet8us pcast< Packet4ui, Packet8us >(const Packet4ui &a, const Packet4ui &b)
Definition: LSX/TypeCasting.h:320
EIGEN_STRONG_INLINE Packet8s pcast< Packet16uc, Packet8s >(const Packet16uc &a)
Definition: LSX/TypeCasting.h:204
EIGEN_STRONG_INLINE Packet16uc pcast< Packet8us, Packet16uc >(const Packet8us &a, const Packet8us &b)
Definition: LSX/TypeCasting.h:264
EIGEN_STRONG_INLINE Packet4ui preinterpret< Packet4ui, Packet4f >(const Packet4f &a)
Definition: LSX/TypeCasting.h:77
EIGEN_STRONG_INLINE Packet8s preinterpret< Packet8s, Packet8us >(const Packet8us &a)
Definition: LSX/TypeCasting.h:49
EIGEN_STRONG_INLINE Packet4i preinterpret< Packet4i, Packet4ui >(const Packet4ui &a)
Definition: LSX/TypeCasting.h:57
EIGEN_STRONG_INLINE Packet16uc pcast< Packet4f, Packet16uc >(const Packet4f &a, const Packet4f &b, const Packet4f &c, const Packet4f &d)
Definition: LSX/TypeCasting.h:127
__vector signed char Packet16c
Definition: AltiVec/PacketMath.h:40
EIGEN_STRONG_INLINE Packet8s pcast< Packet4ui, Packet8s >(const Packet4ui &a, const Packet4ui &b)
Definition: LSX/TypeCasting.h:324
EIGEN_STRONG_INLINE Packet2d pcast< Packet16c, Packet2d >(const Packet16c &a)
Definition: LSX/TypeCasting.h:484
EIGEN_STRONG_INLINE Packet8us pcast< Packet2l, Packet8us >(const Packet2l &a, const Packet2l &b, const Packet2l &c, const Packet2l &d)
Definition: LSX/TypeCasting.h:362
EIGEN_STRONG_INLINE Packet4f pcast< Packet2l, Packet4f >(const Packet2l &a, const Packet2l &b)
Definition: LSX/TypeCasting.h:343
EIGEN_STRONG_INLINE Packet16c pcast< Packet4ui, Packet16c >(const Packet4ui &a, const Packet4ui &b, const Packet4ui &c, const Packet4ui &d)
Definition: LSX/TypeCasting.h:335
EIGEN_STRONG_INLINE Packet2l pcast< Packet8us, Packet2l >(const Packet8us &a)
Definition: LSX/TypeCasting.h:251
__vector unsigned int Packet4ui
Definition: AltiVec/PacketMath.h:35
EIGEN_STRONG_INLINE Packet4f pcast< Packet2ul, Packet4f >(const Packet2ul &a, const Packet2ul &b)
Definition: LSX/TypeCasting.h:386
EIGEN_STRONG_INLINE Packet2ul pcast< Packet16uc, Packet2ul >(const Packet16uc &a)
Definition: LSX/TypeCasting.h:178
EIGEN_STRONG_INLINE Packet4f pcast< Packet4i, Packet4f >(const Packet4i &a)
Definition: AltiVec/TypeCasting.h:51
EIGEN_STRONG_INLINE Packet8us preinterpret< Packet8us, Packet8s >(const Packet8s &a)
Definition: LSX/TypeCasting.h:73
EIGEN_STRONG_INLINE Packet4i pcast< Packet8us, Packet4i >(const Packet8us &a)
Definition: LSX/TypeCasting.h:260
EIGEN_STRONG_INLINE Packet8us pcast< Packet4i, Packet8us >(const Packet4i &a, const Packet4i &b)
Definition: LSX/TypeCasting.h:289
EIGEN_STRONG_INLINE Packet2ul preinterpret< Packet2ul, Packet2l >(const Packet2l &a)
Definition: LSX/TypeCasting.h:89
EIGEN_STRONG_INLINE Packet2d preinterpret< Packet2d, Packet4i >(const Packet4i &a)
Definition: LSX/TypeCasting.h:41
EIGEN_STRONG_INLINE Packet4i pcast< Packet16c, Packet4i >(const Packet16c &a)
Definition: LSX/TypeCasting.h:153
EIGEN_STRONG_INLINE Packet4ui preinterpret< Packet4ui, Packet4i >(const Packet4i &a)
Definition: LSX/TypeCasting.h:81
EIGEN_STRONG_INLINE Packet2d pcast< Packet16uc, Packet2d >(const Packet16uc &a)
Definition: LSX/TypeCasting.h:490
EIGEN_STRONG_INLINE Packet2ul pcast< Packet8s, Packet2ul >(const Packet8s &a)
Definition: LSX/TypeCasting.h:219
__vector short int Packet8s
Definition: AltiVec/PacketMath.h:37
EIGEN_STRONG_INLINE Packet4i pcast< Packet16uc, Packet4i >(const Packet16uc &a)
Definition: LSX/TypeCasting.h:195
EIGEN_STRONG_INLINE Packet8s pcast< Packet2ul, Packet8s >(const Packet2ul &a, const Packet2ul &b, const Packet2ul &c, const Packet2ul &d)
Definition: LSX/TypeCasting.h:405
EIGEN_STRONG_INLINE Packet2d pcast< Packet2l, Packet2d >(const Packet2l &a)
Definition: LSX/TypeCasting.h:514
EIGEN_STRONG_INLINE Packet2d pcast< Packet8s, Packet2d >(const Packet8s &a)
Definition: LSX/TypeCasting.h:496
EIGEN_STRONG_INLINE Packet4ui pcast< Packet8s, Packet4ui >(const Packet8s &a)
Definition: LSX/TypeCasting.h:228
EIGEN_STRONG_INLINE Packet4f pcast< Packet16uc, Packet4f >(const Packet16uc &a)
Definition: LSX/TypeCasting.h:172
EIGEN_STRONG_INLINE Packet2l pcast< Packet16uc, Packet2l >(const Packet16uc &a)
Definition: LSX/TypeCasting.h:184
EIGEN_STRONG_INLINE Packet4f pcast< Packet8us, Packet4f >(const Packet8us &a)
Definition: LSX/TypeCasting.h:241
EIGEN_STRONG_INLINE Packet4ui pcast< Packet8us, Packet4ui >(const Packet8us &a)
Definition: LSX/TypeCasting.h:256
EIGEN_STRONG_INLINE Packet2l preinterpret< Packet2l, Packet2d >(const Packet2d &a)
Definition: LSX/TypeCasting.h:65
EIGEN_STRONG_INLINE Packet16uc pcast< Packet4i, Packet16uc >(const Packet4i &a, const Packet4i &b, const Packet4i &c, const Packet4i &d)
Definition: LSX/TypeCasting.h:300
EIGEN_STRONG_INLINE Packet8us pcast< Packet16c, Packet8us >(const Packet16c &a)
Definition: LSX/TypeCasting.h:167
EIGEN_STRONG_INLINE Packet4ui pcast< Packet2d, Packet4ui >(const Packet2d &a, const Packet2d &b)
Definition: LSX/TypeCasting.h:445
EIGEN_STRONG_INLINE Packet2ul pcast< Packet16c, Packet2ul >(const Packet16c &a)
Definition: LSX/TypeCasting.h:147
EIGEN_STRONG_INLINE Packet4i pcast< Packet2l, Packet4i >(const Packet2l &a, const Packet2l &b)
Definition: LSX/TypeCasting.h:347
EIGEN_STRONG_INLINE Packet16uc pcast< Packet2l, Packet16uc >(const Packet2l &a, const Packet2l &b, const Packet2l &c, const Packet2l &d, const Packet2l &e, const Packet2l &f, const Packet2l &g, const Packet2l &h)
Definition: LSX/TypeCasting.h:377
EIGEN_STRONG_INLINE Packet4i pcast< Packet4f, Packet4i >(const Packet4f &a)
Definition: AltiVec/TypeCasting.h:41
EIGEN_STRONG_INLINE Packet8us pcast< Packet16uc, Packet8us >(const Packet16uc &a)
Definition: LSX/TypeCasting.h:200
EIGEN_STRONG_INLINE Packet4ui pcast< Packet2ul, Packet4ui >(const Packet2ul &a, const Packet2ul &b)
Definition: LSX/TypeCasting.h:390
EIGEN_STRONG_INLINE Packet16c pcast< Packet2l, Packet16c >(const Packet2l &a, const Packet2l &b, const Packet2l &c, const Packet2l &d, const Packet2l &e, const Packet2l &f, const Packet2l &g, const Packet2l &h)
Definition: LSX/TypeCasting.h:369
EIGEN_STRONG_INLINE Packet2l pcast< Packet16c, Packet2l >(const Packet16c &a)
Definition: LSX/TypeCasting.h:141
EIGEN_STRONG_INLINE Packet8s pcast< Packet2d, Packet8s >(const Packet2d &a, const Packet2d &b, const Packet2d &c, const Packet2d &d)
Definition: LSX/TypeCasting.h:449
EIGEN_STRONG_INLINE Packet4i preinterpret< Packet4i, Packet4f >(const Packet4f &a)
Definition: AltiVec/TypeCasting.h:122
EIGEN_STRONG_INLINE Packet4f preinterpret< Packet4f, Packet4i >(const Packet4i &a)
Definition: AltiVec/TypeCasting.h:127
EIGEN_STRONG_INLINE Packet4ui pcast< Packet16c, Packet4ui >(const Packet16c &a)
Definition: LSX/TypeCasting.h:158
EIGEN_STRONG_INLINE Packet4f preinterpret< Packet4f, Packet4ui >(const Packet4ui &a)
Definition: LSX/TypeCasting.h:29
EIGEN_STRONG_INLINE Packet2l pcast< Packet4ui, Packet2l >(const Packet4ui &a)
Definition: LSX/TypeCasting.h:316
EIGEN_STRONG_INLINE Packet16c pcast< Packet2ul, Packet16c >(const Packet2ul &a, const Packet2ul &b, const Packet2ul &c, const Packet2ul &d, const Packet2ul &e, const Packet2ul &f, const Packet2ul &g, const Packet2ul &h)
Definition: LSX/TypeCasting.h:420
EIGEN_STRONG_INLINE Packet8s pcast< Packet2l, Packet8s >(const Packet2l &a, const Packet2l &b, const Packet2l &c, const Packet2l &d)
Definition: LSX/TypeCasting.h:355
EIGEN_STRONG_INLINE Packet16uc pcast< Packet4ui, Packet16uc >(const Packet4ui &a, const Packet4ui &b, const Packet4ui &c, const Packet4ui &d)
Definition: LSX/TypeCasting.h:328
EIGEN_STRONG_INLINE Packet4ui pcast< Packet16uc, Packet4ui >(const Packet16uc &a)
Definition: LSX/TypeCasting.h:190
__vector float Packet4f
Definition: AltiVec/PacketMath.h:33
EIGEN_STRONG_INLINE Packet2ul pcast< Packet4i, Packet2ul >(const Packet4i &a)
Definition: LSX/TypeCasting.h:281
EIGEN_STRONG_INLINE Packet2l pcast< Packet4i, Packet2l >(const Packet4i &a)
Definition: LSX/TypeCasting.h:277
EIGEN_STRONG_INLINE Packet4f pcast< Packet4ui, Packet4f >(const Packet4ui &a)
Definition: AltiVec/TypeCasting.h:56
EIGEN_STRONG_INLINE Packet16c preinterpret< Packet16c, Packet16uc >(const Packet16uc &a)
Definition: LSX/TypeCasting.h:45
EIGEN_STRONG_INLINE Packet4f pcast< Packet2d, Packet4f >(const Packet2d &a, const Packet2d &b)
Definition: LSX/TypeCasting.h:429
EIGEN_STRONG_INLINE Packet4i pcast< Packet2ul, Packet4i >(const Packet2ul &a, const Packet2ul &b)
Definition: LSX/TypeCasting.h:394
EIGEN_STRONG_INLINE Packet16c pcast< Packet2d, Packet16c >(const Packet2d &a, const Packet2d &b, const Packet2d &c, const Packet2d &d, const Packet2d &e, const Packet2d &f, const Packet2d &g, const Packet2d &h)
Definition: LSX/TypeCasting.h:463
EIGEN_STRONG_INLINE Packet2d preinterpret< Packet2d, Packet2ul >(const Packet2ul &a)
Definition: LSX/TypeCasting.h:37
EIGEN_STRONG_INLINE Packet4ui pcast< Packet4f, Packet4ui >(const Packet4f &a)
Definition: AltiVec/TypeCasting.h:46
EIGEN_STRONG_INLINE Packet16c pcast< Packet8s, Packet16c >(const Packet8s &a, const Packet8s &b)
Definition: LSX/TypeCasting.h:232
EIGEN_STRONG_INLINE Packet16uc preinterpret< Packet16uc, Packet16c >(const Packet16c &a)
Definition: LSX/TypeCasting.h:69
EIGEN_STRONG_INLINE Packet4ui pcast< Packet2l, Packet4ui >(const Packet2l &a, const Packet2l &b)
Definition: LSX/TypeCasting.h:351
EIGEN_STRONG_INLINE Packet2ul pcast< Packet4ui, Packet2ul >(const Packet4ui &a)
Definition: LSX/TypeCasting.h:312
EIGEN_STRONG_INLINE Packet2d pcast< Packet8us, Packet2d >(const Packet8us &a)
Definition: LSX/TypeCasting.h:501
Namespace containing all symbols from the Eigen library.
Definition: bench_norm.cpp:70
int c
Definition: calibrate.py:100
Definition: Eigen_Colamd.h:49