@@ -161,7 +161,7 @@ BLASLONG (*isbmin_k) (BLASLONG, float *, BLASLONG);
161161#endif
162162#endif
163163
164- #if defined(BUILD_SINGLE ) || defined(BUILD_COMPLEX )
164+ #if defined(BUILD_SINGLE ) || defined(BUILD_DOUBLE ) || defined( BUILD_COMPLEX ) || defined( BUILD_COMPLEX16 )
165165 int sgemm_p , sgemm_q , sgemm_r ;
166166 int sgemm_unroll_m , sgemm_unroll_n , sgemm_unroll_mn ;
167167#endif
@@ -173,8 +173,12 @@ BLASLONG (*isbmin_k) (BLASLONG, float *, BLASLONG);
173173 float (* samin_k ) (BLASLONG , float * , BLASLONG );
174174 float (* smax_k ) (BLASLONG , float * , BLASLONG );
175175 float (* smin_k ) (BLASLONG , float * , BLASLONG );
176+ #endif
176177
178+ #if defined(BUILD_SINGLE ) || defined(BUILD_DOUBLE ) || defined(BUILD_COMPLEX )
177179BLASLONG (* isamax_k )(BLASLONG , float * , BLASLONG );
180+ #endif
181+ #if defined(BUILD_SINGLE ) || defined(BUILD_COMPLEX )
178182BLASLONG (* isamin_k )(BLASLONG , float * , BLASLONG );
179183BLASLONG (* ismax_k ) (BLASLONG , float * , BLASLONG );
180184BLASLONG (* ismin_k ) (BLASLONG , float * , BLASLONG );
@@ -184,28 +188,34 @@ BLASLONG (*ismin_k) (BLASLONG, float *, BLASLONG);
184188#ifdef BUILD_SINGLE
185189 float (* ssum_k ) (BLASLONG , float * , BLASLONG );
186190#endif
187- #if defined(BUILD_SINGLE ) || defined(BUILD_COMPLEX )
191+ #if defined(BUILD_SINGLE ) || defined(BUILD_DOUBLE ) || defined( BUILD_COMPLEX )
188192 int (* scopy_k ) (BLASLONG , float * , BLASLONG , float * , BLASLONG );
189193 float (* sdot_k ) (BLASLONG , float * , BLASLONG , float * , BLASLONG );
190194 //double (*dsdot_k) (BLASLONG, float *, BLASLONG, float *, BLASLONG);
191195
192196 int (* srot_k ) (BLASLONG , float * , BLASLONG , float * , BLASLONG , float , float );
193-
197+ #endif
198+ #if defined(BUILD_SINGLE ) || defined(BUILD_DOUBLE ) || defined(BUILD_COMPLEX )
194199 int (* saxpy_k ) (BLASLONG , BLASLONG , BLASLONG , float , float * , BLASLONG , float * , BLASLONG , float * , BLASLONG );
200+ #endif
201+ #if defined(BUILD_SINGLE ) || defined(BUILD_DOUBLE ) || defined(BUILD_COMPLEX ) || defined(BUILD_COMPLEX16 )
195202 int (* sscal_k ) (BLASLONG , BLASLONG , BLASLONG , float , float * , BLASLONG , float * , BLASLONG , float * , BLASLONG );
203+ #endif
204+ #if defined(BUILD_SINGLE ) || defined(BUILD_DOUBLE ) || defined(BUILD_COMPLEX )
196205 int (* sswap_k ) (BLASLONG , BLASLONG , BLASLONG , float , float * , BLASLONG , float * , BLASLONG , float * , BLASLONG );
197206
198207 int (* sgemv_n ) (BLASLONG , BLASLONG , BLASLONG , float , float * , BLASLONG , float * , BLASLONG , float * , BLASLONG , float * );
199208 int (* sgemv_t ) (BLASLONG , BLASLONG , BLASLONG , float , float * , BLASLONG , float * , BLASLONG , float * , BLASLONG , float * );
200209#endif
201- #ifdef BUILD_SINGLE
210+ #if defined( BUILD_SINGLE )
202211 int (* sger_k ) (BLASLONG , BLASLONG , BLASLONG , float , float * , BLASLONG , float * , BLASLONG , float * , BLASLONG , float * );
203-
212+ #endif
213+ #if defined(BUILD_SINGLE )
204214 int (* ssymv_L ) (BLASLONG , BLASLONG , float , float * , BLASLONG , float * , BLASLONG , float * , BLASLONG , float * );
205215 int (* ssymv_U ) (BLASLONG , BLASLONG , float , float * , BLASLONG , float * , BLASLONG , float * , BLASLONG , float * );
206216#endif
207217
208- #if defined(BUILD_SINGLE ) || defined(BUILD_COMPLEX )
218+ #if defined(BUILD_SINGLE ) || defined(BUILD_DOUBLE ) || defined( BUILD_COMPLEX )
209219#ifdef ARCH_X86_64
210220 void (* sgemm_direct ) (BLASLONG , BLASLONG , BLASLONG , float * , BLASLONG , float * , BLASLONG , float * , BLASLONG );
211221 int (* sgemm_direct_performant ) (BLASLONG M , BLASLONG N , BLASLONG K );
@@ -220,7 +230,7 @@ BLASLONG (*ismin_k) (BLASLONG, float *, BLASLONG);
220230 int (* sgemm_oncopy )(BLASLONG , BLASLONG , float * , BLASLONG , float * );
221231 int (* sgemm_otcopy )(BLASLONG , BLASLONG , float * , BLASLONG , float * );
222232#endif
223- #ifdef BUILD_SINGLE
233+ #if defined( BUILD_SINGLE ) || defined( BUILD_DOUBLE ) || defined( BUILD_COMPLEX )
224234#ifdef SMALL_MATRIX_OPT
225235 int (* sgemm_small_matrix_permit )(int transa , int transb , BLASLONG m , BLASLONG n , BLASLONG k , float alpha , float beta );
226236
@@ -256,7 +266,8 @@ BLASLONG (*ismin_k) (BLASLONG, float *, BLASLONG);
256266 int (* strsm_olnncopy )(BLASLONG , BLASLONG , float * , BLASLONG , BLASLONG , float * );
257267 int (* strsm_oltucopy )(BLASLONG , BLASLONG , float * , BLASLONG , BLASLONG , float * );
258268 int (* strsm_oltncopy )(BLASLONG , BLASLONG , float * , BLASLONG , BLASLONG , float * );
259-
269+ #endif
270+ #if defined (BUILD_SINGLE )
260271 int (* strmm_kernel_RN )(BLASLONG , BLASLONG , BLASLONG , float , float * , float * , float * , BLASLONG , BLASLONG );
261272 int (* strmm_kernel_RT )(BLASLONG , BLASLONG , BLASLONG , float , float * , float * , float * , BLASLONG , BLASLONG );
262273 int (* strmm_kernel_LN )(BLASLONG , BLASLONG , BLASLONG , float , float * , float * , float * , BLASLONG , BLASLONG );
@@ -341,7 +352,7 @@ BLASLONG (*idmin_k) (BLASLONG, double *, BLASLONG);
341352 int (* dgemm_oncopy )(BLASLONG , BLASLONG , double * , BLASLONG , double * );
342353 int (* dgemm_otcopy )(BLASLONG , BLASLONG , double * , BLASLONG , double * );
343354#endif
344- #ifdef BUILD_DOUBLE
355+ #if defined( BUILD_DOUBLE ) || defined( BUILD_COMPLEX16 )
345356#ifdef SMALL_MATRIX_OPT
346357 int (* dgemm_small_matrix_permit )(int transa , int transb , BLASLONG m , BLASLONG n , BLASLONG k , double alpha , double beta );
347358
@@ -355,6 +366,8 @@ BLASLONG (*idmin_k) (BLASLONG, double *, BLASLONG);
355366 int (* dgemm_small_kernel_b0_tn )(BLASLONG m , BLASLONG n , BLASLONG k , double * A , BLASLONG lda , double alpha , double * B , BLASLONG ldb , double * C , BLASLONG ldc );
356367 int (* dgemm_small_kernel_b0_tt )(BLASLONG m , BLASLONG n , BLASLONG k , double * A , BLASLONG lda , double alpha , double * B , BLASLONG ldb , double * C , BLASLONG ldc );
357368#endif
369+ #endif
370+ #if defined(BUILD_DOUBLE )
358371 int (* dtrsm_kernel_LN )(BLASLONG , BLASLONG , BLASLONG , double , double * , double * , double * , BLASLONG , BLASLONG );
359372 int (* dtrsm_kernel_LT )(BLASLONG , BLASLONG , BLASLONG , double , double * , double * , double * , BLASLONG , BLASLONG );
360373 int (* dtrsm_kernel_RN )(BLASLONG , BLASLONG , BLASLONG , double , double * , double * , double * , BLASLONG , BLASLONG );
@@ -501,23 +514,33 @@ BLASLONG (*iqmin_k) (BLASLONG, xdouble *, BLASLONG);
501514
502515#endif
503516
504- #ifdef BUILD_COMPLEX
517+ #if defined ( BUILD_COMPLEX ) || defined ( BUILD_COMPLEX16 )
505518 int cgemm_p , cgemm_q , cgemm_r ;
506519 int cgemm_unroll_m , cgemm_unroll_n , cgemm_unroll_mn ;
507-
520+ #endif
521+ #ifdef BUILD_COMPLEX
508522 float (* camax_k ) (BLASLONG , float * , BLASLONG );
509523 float (* camin_k ) (BLASLONG , float * , BLASLONG );
524+ #endif
525+ #if defined(BUILD_COMPLEX ) || defined(BUILD_COMPLEX16 )
510526BLASLONG (* icamax_k )(BLASLONG , float * , BLASLONG );
527+ #endif
528+ #ifdef BUILD_COMPLEX
511529BLASLONG (* icamin_k )(BLASLONG , float * , BLASLONG );
512530
513531 float (* cnrm2_k ) (BLASLONG , float * , BLASLONG );
514532 float (* casum_k ) (BLASLONG , float * , BLASLONG );
515533 float (* csum_k ) (BLASLONG , float * , BLASLONG );
534+ #endif
535+ #if defined(BUILD_COMPLEX ) || defined(BUILD_COMPLEX16 )
516536 int (* ccopy_k ) (BLASLONG , float * , BLASLONG , float * , BLASLONG );
517537 openblas_complex_float (* cdotu_k ) (BLASLONG , float * , BLASLONG , float * , BLASLONG );
518538 openblas_complex_float (* cdotc_k ) (BLASLONG , float * , BLASLONG , float * , BLASLONG );
539+ #endif
540+ #ifdef BUILD_COMPLEX
519541 int (* csrot_k ) (BLASLONG , float * , BLASLONG , float * , BLASLONG , float , float );
520-
542+ #endif
543+ #if defined(BUILD_COMPLEX ) || defined(BUILD_COMPLEX16 )
521544 int (* caxpy_k ) (BLASLONG , BLASLONG , BLASLONG , float , float , float * , BLASLONG , float * , BLASLONG , float * , BLASLONG );
522545 int (* caxpyc_k )(BLASLONG , BLASLONG , BLASLONG , float , float , float * , BLASLONG , float * , BLASLONG , float * , BLASLONG );
523546 int (* cscal_k ) (BLASLONG , BLASLONG , BLASLONG , float , float , float * , BLASLONG , float * , BLASLONG , float * , BLASLONG );
@@ -531,6 +554,8 @@ BLASLONG (*icamin_k)(BLASLONG, float *, BLASLONG);
531554 int (* cgemv_u ) (BLASLONG , BLASLONG , BLASLONG , float , float , float * , BLASLONG , float * , BLASLONG , float * , BLASLONG , float * );
532555 int (* cgemv_s ) (BLASLONG , BLASLONG , BLASLONG , float , float , float * , BLASLONG , float * , BLASLONG , float * , BLASLONG , float * );
533556 int (* cgemv_d ) (BLASLONG , BLASLONG , BLASLONG , float , float , float * , BLASLONG , float * , BLASLONG , float * , BLASLONG , float * );
557+ #endif
558+ #ifdef BUILD_COMPLEX
534559 int (* cgeru_k ) (BLASLONG , BLASLONG , BLASLONG , float , float , float * , BLASLONG , float * , BLASLONG , float * , BLASLONG , float * );
535560 int (* cgerc_k ) (BLASLONG , BLASLONG , BLASLONG , float , float , float * , BLASLONG , float * , BLASLONG , float * , BLASLONG , float * );
536561 int (* cgerv_k ) (BLASLONG , BLASLONG , BLASLONG , float , float , float * , BLASLONG , float * , BLASLONG , float * , BLASLONG , float * );
@@ -543,6 +568,8 @@ BLASLONG (*icamin_k)(BLASLONG, float *, BLASLONG);
543568 int (* chemv_M ) (BLASLONG , BLASLONG , float , float , float * , BLASLONG , float * , BLASLONG , float * , BLASLONG , float * );
544569 int (* chemv_V ) (BLASLONG , BLASLONG , float , float , float * , BLASLONG , float * , BLASLONG , float * , BLASLONG , float * );
545570
571+ #endif
572+ #if defined BUILD_COMPLEX || defined BUILD_COMPLEX16
546573 int (* cgemm_kernel_n )(BLASLONG , BLASLONG , BLASLONG , float , float , float * , float * , float * , BLASLONG );
547574 int (* cgemm_kernel_l )(BLASLONG , BLASLONG , BLASLONG , float , float , float * , float * , float * , BLASLONG );
548575 int (* cgemm_kernel_r )(BLASLONG , BLASLONG , BLASLONG , float , float , float * , float * , float * , BLASLONG );
@@ -623,7 +650,8 @@ BLASLONG (*icamin_k)(BLASLONG, float *, BLASLONG);
623650 int (* ctrsm_olnncopy )(BLASLONG , BLASLONG , float * , BLASLONG , BLASLONG , float * );
624651 int (* ctrsm_oltucopy )(BLASLONG , BLASLONG , float * , BLASLONG , BLASLONG , float * );
625652 int (* ctrsm_oltncopy )(BLASLONG , BLASLONG , float * , BLASLONG , BLASLONG , float * );
626-
653+ #endif
654+ #if defined(BUILD_COMPLEX )
627655 int (* ctrmm_kernel_RN )(BLASLONG , BLASLONG , BLASLONG , float , float , float * , float * , float * , BLASLONG , BLASLONG );
628656 int (* ctrmm_kernel_RT )(BLASLONG , BLASLONG , BLASLONG , float , float , float * , float * , float * , BLASLONG , BLASLONG );
629657 int (* ctrmm_kernel_RR )(BLASLONG , BLASLONG , BLASLONG , float , float , float * , float * , float * , BLASLONG , BLASLONG );
@@ -706,7 +734,8 @@ BLASLONG (*icamin_k)(BLASLONG, float *, BLASLONG);
706734 int (* chemm3m_olcopyr )(BLASLONG , BLASLONG , float * , BLASLONG , BLASLONG , BLASLONG , float , float , float * );
707735 int (* chemm3m_oucopyi )(BLASLONG , BLASLONG , float * , BLASLONG , BLASLONG , BLASLONG , float , float , float * );
708736 int (* chemm3m_olcopyi )(BLASLONG , BLASLONG , float * , BLASLONG , BLASLONG , BLASLONG , float , float , float * );
709-
737+ #endif
738+ #if defined(BUILD_COMPLEX ) || defined(BUILD_COMPLEX16 )
710739 int (* cneg_tcopy ) (BLASLONG , BLASLONG , float * , BLASLONG , float * );
711740 int (* claswp_ncopy ) (BLASLONG , BLASLONG , BLASLONG , float * , BLASLONG , blasint * , float * );
712741#endif
@@ -1232,6 +1261,14 @@ extern gotoblas_t *gotoblas;
12321261#define DGEMM_UNROLL_M gotoblas -> dgemm_unroll_m
12331262#define DGEMM_UNROLL_N gotoblas -> dgemm_unroll_n
12341263#define DGEMM_UNROLL_MN gotoblas -> dgemm_unroll_mn
1264+ #ifndef BUILD_SINGLE
1265+ #define SGEMM_P gotoblas -> sgemm_p
1266+ #define SGEMM_Q gotoblas -> sgemm_q
1267+ #define SGEMM_R 1024
1268+ #define SGEMM_UNROLL_M gotoblas -> sgemm_unroll_m
1269+ #define SGEMM_UNROLL_N gotoblas -> sgemm_unroll_n
1270+ #define SGEMM_UNROLL_MN gotoblas -> sgemm_unroll_mn
1271+ #endif
12351272#endif
12361273
12371274#define QGEMM_P gotoblas -> qgemm_p
@@ -1273,6 +1310,14 @@ extern gotoblas_t *gotoblas;
12731310#define DGEMM_UNROLL_N gotoblas -> dgemm_unroll_n
12741311#define DGEMM_UNROLL_MN gotoblas -> dgemm_unroll_mn
12751312#endif
1313+ #ifndef BUILD_COMPLEX
1314+ #define CGEMM_P gotoblas -> cgemm_p
1315+ #define CGEMM_Q gotoblas -> cgemm_q
1316+ #define CGEMM_R gotoblas -> cgemm_r
1317+ #define CGEMM_UNROLL_M gotoblas -> cgemm_unroll_m
1318+ #define CGEMM_UNROLL_N gotoblas -> cgemm_unroll_n
1319+ #define CGEMM_UNROLL_MN gotoblas -> cgemm_unroll_mn
1320+ #endif
12761321#endif
12771322
12781323#define XGEMM_P gotoblas -> xgemm_p
0 commit comments