HMLP: High-performance Machine Learning Primitives
weighted_sum_int_d8x6.hpp
1 
3 a03.v = _mm256_load_pd( (double*) u );
4 a47.v = _mm256_load_pd( (double*)( u + 4 ) );
5 
6 b0.v = _mm256_broadcast_sd( w );
7 b1.v = _mm256_broadcast_sd( w + 1 );
8 a03.v = _mm256_fmadd_pd( c03_0.v, b0.v, a03.v );
9 a47.v = _mm256_fmadd_pd( c47_0.v, b0.v, a47.v );
10 a03.v = _mm256_fmadd_pd( c03_1.v, b1.v, a03.v );
11 a47.v = _mm256_fmadd_pd( c47_1.v, b1.v, a47.v );
12 
13 b0.v = _mm256_broadcast_sd( w + 2 );
14 b1.v = _mm256_broadcast_sd( w + 3 );
15 a03.v = _mm256_fmadd_pd( c03_2.v, b0.v, a03.v );
16 a47.v = _mm256_fmadd_pd( c47_2.v, b0.v, a47.v );
17 a03.v = _mm256_fmadd_pd( c03_3.v, b1.v, a03.v );
18 a47.v = _mm256_fmadd_pd( c47_3.v, b1.v, a47.v );
19 
20 b0.v = _mm256_broadcast_sd( w + 4 );
21 b1.v = _mm256_broadcast_sd( w + 5 );
22 a03.v = _mm256_fmadd_pd( c03_4.v, b0.v, a03.v );
23 a47.v = _mm256_fmadd_pd( c47_4.v, b0.v, a47.v );
24 a03.v = _mm256_fmadd_pd( c03_5.v, b1.v, a03.v );
25 a47.v = _mm256_fmadd_pd( c47_5.v, b1.v, a47.v );
26 
27 _mm256_store_pd( u , a03.v );
28 _mm256_store_pd( u + 4 , a47.v );