Fix a mistake
This commit is contained in:
@@ -679,7 +679,7 @@ inline simd4_t<double,4>::simd4_t(const simd4_t<double,2>& v) {
|
||||
}
|
||||
template<>
|
||||
inline simd4_t<double,3>::simd4_t(const simd4_t<double,4>& v) {
|
||||
simd4 = _mm_and_pd(v.v4(), dmask3);
|
||||
simd4 = _mm256_and_pd(v.v4(), dmask3);
|
||||
}
|
||||
template<>
|
||||
inline simd4_t<double,3>::simd4_t(const simd4_t<double,3>& v) {
|
||||
@@ -691,11 +691,11 @@ inline simd4_t<double,3>::simd4_t(const simd4_t<double,2>& v) {
|
||||
}
|
||||
template<>
|
||||
inline simd4_t<double,2>::simd4_t(const simd4_t<double,4>& v) {
|
||||
simd4 = _mm_and_pd(v.v4(), dmask2);
|
||||
simd4 = _mm256_and_pd(v.v4(), dmask2);
|
||||
}
|
||||
template<>
|
||||
inline simd4_t<double,2>::simd4_t(const simd4_t<double,3>& v) {
|
||||
simd4 = _mm_and_pd(v.v4(), dmask2);
|
||||
simd4 = _mm256_and_pd(v.v4(), dmask2);
|
||||
}
|
||||
template<>
|
||||
inline simd4_t<double,2>::simd4_t(const simd4_t<double,2>& v) {
|
||||
|
||||
@@ -1062,23 +1062,25 @@ public:
|
||||
}
|
||||
|
||||
inline simd4x4_t<int,4>& operator*=(int v) {
|
||||
__m128i v4 = _mm_set1_epi32(v);
|
||||
simd4_t<int,4> v4(v);
|
||||
for (int i=0; i<4; ++i) {
|
||||
simd4x4[i] = _mm_mul_epi32(simd4x4[i], v4);
|
||||
simd4x4[i] *= v4.v4();
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
simd4x4_t<int,4>& operator*=(const simd4x4_t<int,4>& m2) {
|
||||
__m128i row, col;
|
||||
for (int i=0; i<4; ++i ) {
|
||||
col = _mm_set1_epi32(m2.ptr()[i][0]);
|
||||
row = _mm_mul_epi32(simd4x4[0], col);
|
||||
simd4x4_t<int,4> m1 = *this;
|
||||
simd4_t<int,4> row, col;
|
||||
|
||||
for (int i=0; i<4; ++i) {
|
||||
simd4_t<int,4> col(m2.ptr()[i][0]);
|
||||
row.v4() = m1.m4x4()[0] * col.v4();
|
||||
for (int j=1; j<4; ++j) {
|
||||
col = _mm_set1_epi32(m2.ptr()[i][j]);
|
||||
row = _mm_add_epi32(row, _mm_mul_epi32(simd4x4[j], col));
|
||||
simd4_t<int,4> col(m2.ptr()[i][j]);
|
||||
row.v4() += m1.m4x4()[j] * col.v4();
|
||||
}
|
||||
simd4x4[i] = row;
|
||||
simd4x4[i] = row.v4();
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user