39 scalar = _mm_load_sd(scalep);
43 tmp1 = _mm_setzero_pd();
44 tmp1 = _mm_shuffle_pd(scalar, scalar, 0x1);
45 scalar = _mm_add_pd(scalar, tmp1);
50 if( n_4spin <
L2BY2 ) {
57 for(
int i=0; i < 3*n_4spin; i++) {
60 add1 = _mm_load_pd(out_p);
61 in1 = _mm_load_pd(in_p);
62 tmp1 = _mm_mul_pd(scalar, in1);
63 out1 = _mm_add_pd(tmp1,add1);
64 _mm_store_pd(out_p, out1);
66 add2 = _mm_load_pd(out_p+2);
67 in2 = _mm_load_pd(in_p+2);
68 tmp2 = _mm_mul_pd(scalar, in2);
69 out2 = _mm_add_pd(tmp2,add2);
70 _mm_store_pd(out_p+2, out2);
72 add3 = _mm_load_pd(out_p+4);
73 in3 = _mm_load_pd(in_p+4);
74 tmp3 = _mm_mul_pd(scalar, in3);
75 out3 = _mm_add_pd(tmp3,add3);
76 _mm_store_pd(out_p+4, out3);
78 add1 = _mm_load_pd(out_p+6);
79 in1 = _mm_load_pd(in_p+6);
80 tmp1 = _mm_mul_pd(scalar, in1);
81 out1 = _mm_add_pd(tmp1,add1);
82 _mm_store_pd(out_p+6, out1);
92 for(
int i=0; i < 3*n_4spin; i++) {
96 add1 = _mm_load_pd(out_p);
97 in1 = _mm_load_pd(in_p);
98 tmp1 = _mm_mul_pd(scalar, in1);
99 out1 = _mm_add_pd(tmp1,add1);
100 _mm_store_pd(out_p, out1);
102 add2 = _mm_load_pd(out_p+2);
103 in2 = _mm_load_pd(in_p+2);
104 tmp2 = _mm_mul_pd(scalar, in2);
105 out2 = _mm_add_pd(tmp2,add2);
106 _mm_store_pd(out_p+2, out2);
108 add3 = _mm_load_pd(out_p+4);
109 in3 = _mm_load_pd(in_p+4);
110 tmp3 = _mm_mul_pd(scalar, in3);
111 out3 = _mm_add_pd(tmp3,add3);
112 _mm_store_pd(out_p+4, out3);
114 add1 = _mm_load_pd(out_p+6);
115 in1 = _mm_load_pd(in_p+6);
116 tmp1 = _mm_mul_pd(scalar, in1);
117 out1 = _mm_add_pd(tmp1,add1);
118 _mm_store_pd(out_p+6, out1);
148 scalar = _mm_load_sd(scalep);
152 tmp1 = _mm_setzero_pd();
154 tmp1 = _mm_shuffle_pd(scalar, scalar, 0x1);
155 scalar = _mm_add_pd(scalar, tmp1);
158 double *in_p=InScale;
163 if( n_4vec <
L2BY2 ) {
172 for(
int i=0; i < 3*n_4vec; i++) {
174 add1 = _mm_load_pd(add_p);
175 in1 = _mm_load_pd(in_p);
176 tmp1 = _mm_mul_pd(scalar, in1);
177 out1 = _mm_add_pd(tmp1,add1);
178 _mm_store_pd(out_p, out1);
180 add2 = _mm_load_pd(add_p+2);
181 in2 = _mm_load_pd(in_p+2);
182 tmp2 = _mm_mul_pd(scalar, in2);
183 out2 = _mm_add_pd(tmp2,add2);
184 _mm_store_pd(out_p+2, out2);
186 add3 = _mm_load_pd(add_p+4);
187 in3 = _mm_load_pd(in_p+4);
188 tmp3 = _mm_mul_pd(scalar, in3);
189 out3 = _mm_add_pd(tmp3,add3);
190 _mm_store_pd(out_p+4, out3);
192 add1 = _mm_load_pd(add_p+6);
193 in1 = _mm_load_pd(in_p+6);
194 tmp1 = _mm_mul_pd(scalar, in1);
195 out1 = _mm_add_pd(tmp1,add1);
196 _mm_store_pd(out_p+6, out1);
198 out_p+=8; in_p+=8; add_p+=8;
204 for(
int i=0; i < 3*n_4vec; i++) {
209 add1 = _mm_load_pd(add_p);
210 in1 = _mm_load_pd(in_p);
211 tmp1 = _mm_mul_pd(scalar, in1);
212 out1 = _mm_add_pd(tmp1,add1);
213 _mm_stream_pd(out_p, out1);
216 add2 = _mm_load_pd(add_p+2);
217 in2 = _mm_load_pd(in_p+2);
218 tmp2 = _mm_mul_pd(scalar, in2);
219 out2 = _mm_add_pd(tmp2,add2);
220 _mm_stream_pd(out_p+2, out2);
222 add3 = _mm_load_pd(add_p+4);
223 in3 = _mm_load_pd(in_p+4);
224 tmp3 = _mm_mul_pd(scalar, in3);
225 out3 = _mm_add_pd(tmp3,add3);
226 _mm_stream_pd(out_p+4, out3);
229 add1 = _mm_load_pd(add_p+6);
230 in1 = _mm_load_pd(in_p+6);
231 tmp1 = _mm_mul_pd(scalar, in1);
232 out1 = _mm_add_pd(tmp1,add1);
233 _mm_stream_pd(out_p+6, out1);
235 out_p+=8; in_p+=8; add_p+=8;