43{
44 double* restrict
chi1;
45 double* restrict
chi2;
46 double* restrict chi3;
47 double* restrict
psi1;
49
53
59
60 if ( inc_x1 != 1 ||
61 inc_x2 != 1 ||
62 inc_x3 != 1 ||
64
66 if ( ( unsigned long ) y % 16 != 0 )
67 {
68 if ( (
unsigned long )
x1 % 16 == 0 ||
69 ( unsigned long ) x2 % 16 == 0 ||
70 (
unsigned long ) x3 % 16 == 0 )
bl1_abort();
71
73 }
74
77
80 chi3 = x3;
82
84 {
87 double alpha3_c = *alpha3;
88 double chi11_c = *
chi1;
89 double chi12_c = *
chi2;
90 double chi13_c = *chi3;
91
93
96 chi3 += inc_x3;
98 }
99
100 a1v.
v = _mm_loaddup_pd( (
double* )
alpha1 );
101 a2v.
v = _mm_loaddup_pd( (
double* )
alpha2 );
102 a3v.
v = _mm_loaddup_pd( (
double* )alpha3 );
103
105 {
106 x11v.
v = _mm_load_pd( (
double* )
chi1 );
107 x12v.
v = _mm_load_pd( (
double* )
chi2 );
108 x13v.
v = _mm_load_pd( (
double* )chi3 );
109 y1v.
v = _mm_load_pd( (
double* )
psi1 );
110
111 y1v.
v += a1v.
v * x11v.
v + a2v.
v * x12v.
v + a3v.
v * x13v.
v;
112
113 _mm_store_pd( (
double* )
psi1, y1v.
v );
114
115 x21v.
v = _mm_load_pd( (
double* )(
chi1 + 2) );
116 x22v.
v = _mm_load_pd( (
double* )(
chi2 + 2) );
117 x23v.
v = _mm_load_pd( (
double* )(chi3 + 2) );
118 y2v.
v = _mm_load_pd( (
double* )(
psi1 + 2) );
119
120 y2v.
v += a1v.
v * x21v.
v + a2v.
v * x22v.
v + a3v.
v * x23v.
v;
121
122 _mm_store_pd( (
double* )(
psi1 + 2), y2v.
v );
123
126 chi3 += 4;
128 }
129
131 {
134 double alpha3_c = *alpha3;
135
137 {
138 double chi11_c = *
chi1;
139 double chi12_c = *
chi2;
140 double chi13_c = *chi3;
141
143
146 chi3 += inc_x3;
148 }
149 }
150}
int n_pre
Definition bl1_axmyv2.c:147
double *restrict alpha1
Definition bl1_axpyv2bdotaxpy.c:198
chi1
Definition bl1_axpyv3b.c:168
int n_left
Definition bl1_axpyv3b.c:163
double *restrict chi2
Definition bl1_axpyv3b.c:154
double alpha1_c
Definition bl1_axpyv3b.c:156
int n_run
Definition bl1_axpyv3b.c:162
double *restrict psi1
Definition bl1_axpyv3b.c:155
int i
Definition bl1_axpyv3b.c:160
double alpha2_c
Definition bl1_axpyv3b.c:157
x1
Definition bl1_dotsv2.c:374
double *restrict alpha2
Definition bl1_dotv2axpyv2b.c:188
Definition blis_type_defs.h:117
__m128d v
Definition blis_type_defs.h:118