46{
49 double* restrict
chi1;
54
58
61 v2df_t a11v, a12v, x1v, w1v;
62 v2df_t a21v, a22v, x2v, w2v;
63
64 if ( inc_a1 != 1 ||
65 inc_a2 != 1 ||
66 inc_x != 1 ||
68
70 if ( ( unsigned long ) a1 % 16 != 0 )
71 {
72 if ( ( unsigned long ) a2 % 16 == 0 ||
73 ( unsigned long ) x % 16 == 0 ||
74 (
unsigned long ) w % 16 == 0 )
bl1_abort();
75
77 }
78
81
86
89
91 {
96 double chi1_c = *
chi1;
98
101
104
106
111 }
112
113 rho1v.
v = _mm_setzero_pd();
114 rho2v.
v = _mm_setzero_pd();
115
116 k1v.
v = _mm_loaddup_pd( (
double* )kappa1 );
117 k2v.
v = _mm_loaddup_pd( (
double* )kappa2 );
118
120 {
121 a11v.
v = _mm_load_pd( (
double* )
alpha1 );
122 a12v.
v = _mm_load_pd( (
double* )
alpha2 );
123 x1v.
v = _mm_load_pd( (
double* )
chi1 );
124 w1v.
v = _mm_load_pd( (
double* )
omega1 );
125
126 rho1v.
v += a11v.
v * x1v.
v;
127 w1v.
v += k1v.
v * a11v.
v;
128
129 rho2v.
v += a12v.
v * x1v.
v;
130 w1v.
v += k2v.
v * a12v.
v;
131
132 _mm_store_pd( (
double* )
omega1, w1v.
v );
133
134 a21v.
v = _mm_load_pd( (
double* )(
alpha1 + 2) );
135 a22v.
v = _mm_load_pd( (
double* )(
alpha2 + 2) );
136 x2v.
v = _mm_load_pd( (
double* )(
chi1 + 2) );
137 w2v.
v = _mm_load_pd( (
double* )(
omega1 + 2) );
138
139 rho1v.
v += a21v.
v * x2v.
v;
140 w2v.
v += k1v.
v * a21v.
v;
141
142 rho2v.
v += a22v.
v * x2v.
v;
143 w2v.
v += k2v.
v * a22v.
v;
144
145 _mm_store_pd( (
double* )(
omega1 + 2), w2v.
v );
146
151 }
152
154 {
156 {
161 double chi1_c = *
chi1;
162 double omega1_c = *
omega1;
163
166
169
171
176 }
177 }
178
181
184}
double alpha1_c
Definition bl1_axpyv2b.c:144
double alpha2_c
Definition bl1_axpyv2b.c:145
double *restrict omega1
Definition bl1_dotv2axpyv2b.c:190
double rho2_c
Definition bl1_dotv2axpyv2b.c:194
double *restrict chi1
Definition bl1_dotv2axpyv2b.c:189
double kappa1_c
Definition bl1_dotv2axpyv2b.c:191
alpha1
Definition bl1_dotv2axpyv2b.c:456
* rho2
Definition bl1_dotv2axpyv2b.c:312
int n_left
Definition bl1_dotv2axpyv2b.c:199
double rho1_c
Definition bl1_dotv2axpyv2b.c:193
int n_pre
Definition bl1_dotv2axpyv2b.c:197
* rho1
Definition bl1_dotv2axpyv2b.c:311
int n_run
Definition bl1_dotv2axpyv2b.c:198
double kappa2_c
Definition bl1_dotv2axpyv2b.c:192
int i
Definition bl1_dotv2axpyv2b.c:195
double *restrict alpha2
Definition bl1_dotv2axpyv2b.c:188
Definition blis_type_defs.h:117
double d[2]
Definition blis_type_defs.h:119
__m128d v
Definition blis_type_defs.h:118