mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-05-02 00:34:14 +08:00
Make sure that calls to broadcast4 are 16 bytes aligned
This commit is contained in:
parent
f9d2f3903e
commit
450d0c3de0
@ -486,7 +486,7 @@ template<> EIGEN_STRONG_INLINE void
|
|||||||
pbroadcast4<Packet4f>(const float *a,
|
pbroadcast4<Packet4f>(const float *a,
|
||||||
Packet4f& a0, Packet4f& a1, Packet4f& a2, Packet4f& a3)
|
Packet4f& a0, Packet4f& a1, Packet4f& a2, Packet4f& a3)
|
||||||
{
|
{
|
||||||
a3 = ploadu<Packet4f>(a);
|
a3 = pload<Packet4f>(a);
|
||||||
a0 = vec4f_swizzle1(a3, 0,0,0,0);
|
a0 = vec4f_swizzle1(a3, 0,0,0,0);
|
||||||
a1 = vec4f_swizzle1(a3, 1,1,1,1);
|
a1 = vec4f_swizzle1(a3, 1,1,1,1);
|
||||||
a2 = vec4f_swizzle1(a3, 2,2,2,2);
|
a2 = vec4f_swizzle1(a3, 2,2,2,2);
|
||||||
@ -502,10 +502,10 @@ pbroadcast4<Packet2d>(const double *a,
|
|||||||
a2 = _mm_loaddup_pd(a+2);
|
a2 = _mm_loaddup_pd(a+2);
|
||||||
a3 = _mm_loaddup_pd(a+3);
|
a3 = _mm_loaddup_pd(a+3);
|
||||||
#else
|
#else
|
||||||
a1 = ploadu<Packet2d>(a);
|
a1 = pload<Packet2d>(a);
|
||||||
a0 = vec2d_swizzle1(a1, 0,0);
|
a0 = vec2d_swizzle1(a1, 0,0);
|
||||||
a1 = vec2d_swizzle1(a1, 1,1);
|
a1 = vec2d_swizzle1(a1, 1,1);
|
||||||
a3 = ploadu<Packet2d>(a+2);
|
a3 = pload<Packet2d>(a+2);
|
||||||
a2 = vec2d_swizzle1(a3, 0,0);
|
a2 = vec2d_swizzle1(a3, 0,0);
|
||||||
a3 = vec2d_swizzle1(a3, 1,1);
|
a3 = vec2d_swizzle1(a3, 1,1);
|
||||||
#endif
|
#endif
|
||||||
|
@ -300,6 +300,7 @@ EIGEN_DONT_INLINE void product_triangular_matrix_matrix<Scalar,Index,Mode,false,
|
|||||||
Index ts = (IsLower && actual_k2>=cols) ? 0 : actual_kc;
|
Index ts = (IsLower && actual_k2>=cols) ? 0 : actual_kc;
|
||||||
|
|
||||||
Scalar* geb = blockB+ts*ts;
|
Scalar* geb = blockB+ts*ts;
|
||||||
|
geb = geb + internal::first_aligned(geb,EIGEN_ALIGN_BYTES/sizeof(Scalar));
|
||||||
|
|
||||||
pack_rhs(geb, &rhs(actual_k2,IsLower ? 0 : k2), rhsStride, actual_kc, rs);
|
pack_rhs(geb, &rhs(actual_k2,IsLower ? 0 : k2), rhsStride, actual_kc, rs);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user