2 #include <hmlp_internal.hpp> 13 float* restrict c, inc_t rs_c, inc_t cs_c,
17 void bli_dgemm_opt_4x4
20 double* restrict alpha,
23 double* restrict beta,
24 double* restrict c, inc_t rs_c, inc_t cs_c,
99 inline void operator()
105 float **c,
int ldc,
float *alpha,
109 float c_reg[ 4 * 4 ] = { 0.0 };
111 for (
int p = 0; p < k; p ++ )
114 for (
int j = 0; j < 4; j ++ )
117 for (
int i = 0; i < 4; i ++ )
119 c_reg[ j * 4 + i ] += a[ p * 4 + i ] * b[ p * 4 + j ];
124 for (
int t = 0; t < len; t ++ )
127 for (
int j = 0; j < 4; j ++ )
130 for (
int i = 0; i < 4; i ++ )
132 c[ t ][ j * ldc + i ] += alpha[ t ] * c_reg[ j * 4 + i ];
138 inline void operator()
148 float beta = aux->pc ? 1.0 : 0.0;
177 inline void operator()
183 double **c,
int ldc,
double *alpha,
187 double c_reg[ 4 * 4 ] = { 0.0 };
189 for (
int p = 0; p < k; p ++ )
192 for (
int j = 0; j < 4; j ++ )
195 for (
int i = 0; i < 4; i ++ )
197 c_reg[ j * 4 + i ] += a[ p * 4 + i ] * b[ p * 4 + j ];
202 for (
int t = 0; t < len; t ++ )
205 for (
int j = 0; j < 4; j ++ )
208 for (
int i = 0; i < 4; i ++ )
210 c[ t ][ j * ldc + i ] += alpha[ t ] * c_reg[ j * 4 + i ];
216 inline void operator()
226 double beta = aux->pc ? 1.0 : 0.0;
Definition: rank_k_d4x4.hpp:174
Definition: hmlp_internal.hpp:38
Definition: rank_k_d4x4.hpp:96