3 __asm__
volatile(
"prefetcht0 0(%0) \n\t" : :
"r"( aa ) );
4 __asm__
volatile(
"prefetcht0 0(%0) \n\t" : :
"r"( bb ) );
10 a03.v = _mm256_broadcast_sd( &neg2 );
11 c03_0.v = _mm256_mul_pd( a03.v, c03_0.v );
12 c03_1.v = _mm256_mul_pd( a03.v, c03_1.v );
13 c03_2.v = _mm256_mul_pd( a03.v, c03_2.v );
14 c03_3.v = _mm256_mul_pd( a03.v, c03_3.v );
15 c03_4.v = _mm256_mul_pd( a03.v, c03_4.v );
16 c03_5.v = _mm256_mul_pd( a03.v, c03_5.v );
18 c47_0.v = _mm256_mul_pd( a03.v, c47_0.v );
19 c47_1.v = _mm256_mul_pd( a03.v, c47_1.v );
20 c47_2.v = _mm256_mul_pd( a03.v, c47_2.v );
21 c47_3.v = _mm256_mul_pd( a03.v, c47_3.v );
22 c47_4.v = _mm256_mul_pd( a03.v, c47_4.v );
23 c47_5.v = _mm256_mul_pd( a03.v, c47_5.v );
25 a03.v = _mm256_load_pd( (
double*)aa );
26 c03_0.v = _mm256_add_pd( a03.v, c03_0.v );
27 c03_1.v = _mm256_add_pd( a03.v, c03_1.v );
28 c03_2.v = _mm256_add_pd( a03.v, c03_2.v );
29 c03_3.v = _mm256_add_pd( a03.v, c03_3.v );
30 c03_4.v = _mm256_add_pd( a03.v, c03_4.v );
31 c03_5.v = _mm256_add_pd( a03.v, c03_5.v );
33 a47.v = _mm256_load_pd( (
double*)( aa + 4 ) );
34 c47_0.v = _mm256_add_pd( a47.v, c47_0.v );
35 c47_1.v = _mm256_add_pd( a47.v, c47_1.v );
36 c47_2.v = _mm256_add_pd( a47.v, c47_2.v );
37 c47_3.v = _mm256_add_pd( a47.v, c47_3.v );
38 c47_4.v = _mm256_add_pd( a47.v, c47_4.v );
39 c47_5.v = _mm256_add_pd( a47.v, c47_5.v );
41 b0.v = _mm256_broadcast_sd( (
double*)( bb ) );
42 c03_0.v = _mm256_add_pd( b0.v, c03_0.v );
43 c47_0.v = _mm256_add_pd( b0.v, c47_0.v );
45 b1.v = _mm256_broadcast_sd( (
double*)( bb + 1 ) );
46 c03_1.v = _mm256_add_pd( b1.v, c03_1.v );
47 c47_1.v = _mm256_add_pd( b1.v, c47_1.v );
49 b0.v = _mm256_broadcast_sd( (
double*)( bb + 2 ) );
50 c03_2.v = _mm256_add_pd( b0.v, c03_2.v );
51 c47_2.v = _mm256_add_pd( b0.v, c47_2.v );
53 b1.v = _mm256_broadcast_sd( (
double*)( bb + 3 ) );
54 c03_3.v = _mm256_add_pd( b1.v, c03_3.v );
55 c47_3.v = _mm256_add_pd( b1.v, c47_3.v );
57 b0.v = _mm256_broadcast_sd( (
double*)( bb + 4 ) );
58 c03_4.v = _mm256_add_pd( b0.v, c03_4.v );
59 c47_4.v = _mm256_add_pd( b0.v, c47_4.v );
61 b1.v = _mm256_broadcast_sd( (
double*)( bb + 5 ) );
62 c03_5.v = _mm256_add_pd( b1.v, c03_5.v );
63 c47_5.v = _mm256_add_pd( b1.v, c47_5.v );
66 a03.v = _mm256_broadcast_sd( &dzero );
67 c03_0.v = _mm256_max_pd( a03.v, c03_0.v );
68 c03_1.v = _mm256_max_pd( a03.v, c03_1.v );
69 c03_2.v = _mm256_max_pd( a03.v, c03_2.v );
70 c03_3.v = _mm256_max_pd( a03.v, c03_3.v );
71 c03_4.v = _mm256_max_pd( a03.v, c03_4.v );
72 c03_5.v = _mm256_max_pd( a03.v, c03_5.v );
74 c47_0.v = _mm256_max_pd( a03.v, c47_0.v );
75 c47_1.v = _mm256_max_pd( a03.v, c47_1.v );
76 c47_2.v = _mm256_max_pd( a03.v, c47_2.v );
77 c47_3.v = _mm256_max_pd( a03.v, c47_3.v );
78 c47_4.v = _mm256_max_pd( a03.v, c47_4.v );
79 c47_5.v = _mm256_max_pd( a03.v, c47_5.v );