35 #ifndef _BLAZE_MATH_INTRINSICS_MULTIPLICATION_H_
36 #define _BLAZE_MATH_INTRINSICS_MULTIPLICATION_H_
68 return _mm256_mullo_epi16( a.value, b.value );
73 return _mm_mullo_epi16( a.value, b.value );
91 return _mm512_mullo_epi32( a.value, b.value );
96 return _mm256_mullo_epi32( a.value, b.value );
101 return _mm_mullo_epi32( a.value, b.value );
119 return _mm512_mul_ps( a.value, b.value );
124 return _mm256_mul_ps( a.value, b.value );
129 return _mm_mul_ps( a.value, b.value );
147 return _mm512_mul_pd( a.value, b.value );
152 return _mm256_mul_pd( a.value, b.value );
154 #elif BLAZE_SSE2_MODE
157 return _mm_mul_pd( a.value, b.value );
177 x = _mm256_shuffle_ps( a.value, a.value, 0xA0A0 );
178 z = _mm256_mul_ps( x, b.value );
179 x = _mm256_shuffle_ps( a.value, a.value, 0xF5F5 );
180 y = _mm256_shuffle_ps( b.value, b.value, 0xB1B1 );
181 y = _mm256_mul_ps( x, y );
182 return _mm256_addsub_ps( z, y );
184 #elif BLAZE_SSE3_MODE
189 x = _mm_shuffle_ps( a.value, a.value, 0xA0 );
190 z = _mm_mul_ps( x, b.value );
191 x = _mm_shuffle_ps( a.value, a.value, 0xF5 );
192 y = _mm_shuffle_ps( b.value, b.value, 0xB1 );
193 y = _mm_mul_ps( x, y );
194 return _mm_addsub_ps( z, y );
214 x = _mm256_shuffle_pd( a.value, a.value, 0 );
215 z = _mm256_mul_pd( x, b.value );
216 x = _mm256_shuffle_pd( a.value, a.value, 15 );
217 y = _mm256_shuffle_pd( b.value, b.value, 5 );
218 y = _mm256_mul_pd( x, y );
219 return _mm256_addsub_pd( z, y );
221 #elif BLAZE_SSE3_MODE
226 x = _mm_shuffle_pd( a.value, a.value, 0 );
227 z = _mm_mul_pd( x, b.value );
228 x = _mm_shuffle_pd( a.value, a.value, 3 );
229 y = _mm_shuffle_pd( b.value, b.value, 1 );
230 y = _mm_mul_pd( x, y );
231 return _mm_addsub_pd( z, y );
const DMatDMatMultExpr< T1, T2 > operator*(const DenseMatrix< T1, false > &lhs, const DenseMatrix< T2, false > &rhs)
Multiplication operator for the multiplication of two row-major dense matrices ( ).
Definition: DMatDMatMultExpr.h:4838
#define BLAZE_ALWAYS_INLINE
Platform dependent setup of an enforced inline keyword.
Definition: Inline.h:85
Header file for the basic intrinsic types.
System settings for the SSE mode.
System settings for the inline keywords.