1 #ifndef COMMON_Q_H 2 #define COMMON_Q_H 3 4 #ifndef DYNAMIC_ARCH 5 6 #define QAMAX_K qamax_k 7 #define QAMIN_K qamin_k 8 #define QMAX_K qmax_k 9 #define QMIN_K qmin_k 10 #define IQAMAX_K iqamax_k 11 #define IQAMIN_K iqamin_k 12 #define IQMAX_K iqmax_k 13 #define IQMIN_K iqmin_k 14 #define QASUM_K qasum_k 15 #define QAXPYU_K qaxpy_k 16 #define QAXPYC_K qaxpy_k 17 #define QCOPY_K qcopy_k 18 #define QDOTU_K qdot_k 19 #define QDOTC_K qdot_k 20 #define QNRM2_K qnrm2_k 21 #define QSCAL_K qscal_k 22 #define QSWAP_K qswap_k 23 #define QROT_K qrot_k 24 25 #define QGEMV_N qgemv_n 26 #define QGEMV_T qgemv_t 27 #define QGEMV_R qgemv_n 28 #define QGEMV_C qgemv_t 29 #define QGEMV_O qgemv_n 30 #define QGEMV_U qgemv_t 31 #define QGEMV_S qgemv_n 32 #define QGEMV_D qgemv_t 33 34 #define QGERU_K qger_k 35 #define QGERC_K qger_k 36 #define QGERV_K qger_k 37 #define QGERD_K qger_k 38 39 #define QSYMV_U qsymv_U 40 #define QSYMV_L qsymv_L 41 #define QSYMV_THREAD_U qsymv_thread_U 42 #define QSYMV_THREAD_L qsymv_thread_L 43 44 #define QGEMM_ONCOPY qgemm_oncopy 45 #define QGEMM_OTCOPY qgemm_otcopy 46 47 #if QGEMM_DEFAULT_UNROLL_M == QGEMM_DEFAULT_UNROLL_N 48 #define QGEMM_INCOPY qgemm_oncopy 49 #define QGEMM_ITCOPY qgemm_otcopy 50 #else 51 #define QGEMM_INCOPY qgemm_incopy 52 #define QGEMM_ITCOPY qgemm_itcopy 53 #endif 54 55 #define QTRMM_OUNUCOPY qtrmm_ounucopy 56 #define QTRMM_OUNNCOPY qtrmm_ounncopy 57 #define QTRMM_OUTUCOPY qtrmm_outucopy 58 #define QTRMM_OUTNCOPY qtrmm_outncopy 59 #define QTRMM_OLNUCOPY qtrmm_olnucopy 60 #define QTRMM_OLNNCOPY qtrmm_olnncopy 61 #define QTRMM_OLTUCOPY qtrmm_oltucopy 62 #define QTRMM_OLTNCOPY qtrmm_oltncopy 63 64 #define QTRSM_OUNUCOPY qtrsm_ounucopy 65 #define QTRSM_OUNNCOPY qtrsm_ounncopy 66 #define QTRSM_OUTUCOPY qtrsm_outucopy 67 #define QTRSM_OUTNCOPY qtrsm_outncopy 68 #define QTRSM_OLNUCOPY qtrsm_olnucopy 69 #define QTRSM_OLNNCOPY qtrsm_olnncopy 70 #define QTRSM_OLTUCOPY qtrsm_oltucopy 71 #define QTRSM_OLTNCOPY qtrsm_oltncopy 72 73 #if QGEMM_DEFAULT_UNROLL_M == QGEMM_DEFAULT_UNROLL_N 74 #define QTRMM_IUNUCOPY qtrmm_ounucopy 75 #define QTRMM_IUNNCOPY qtrmm_ounncopy 76 #define QTRMM_IUTUCOPY qtrmm_outucopy 77 #define QTRMM_IUTNCOPY qtrmm_outncopy 78 #define QTRMM_ILNUCOPY qtrmm_olnucopy 79 #define QTRMM_ILNNCOPY qtrmm_olnncopy 80 #define QTRMM_ILTUCOPY qtrmm_oltucopy 81 #define QTRMM_ILTNCOPY qtrmm_oltncopy 82 83 #define QTRSM_IUNUCOPY qtrsm_ounucopy 84 #define QTRSM_IUNNCOPY qtrsm_ounncopy 85 #define QTRSM_IUTUCOPY qtrsm_outucopy 86 #define QTRSM_IUTNCOPY qtrsm_outncopy 87 #define QTRSM_ILNUCOPY qtrsm_olnucopy 88 #define QTRSM_ILNNCOPY qtrsm_olnncopy 89 #define QTRSM_ILTUCOPY qtrsm_oltucopy 90 #define QTRSM_ILTNCOPY qtrsm_oltncopy 91 #else 92 #define QTRMM_IUNUCOPY qtrmm_iunucopy 93 #define QTRMM_IUNNCOPY qtrmm_iunncopy 94 #define QTRMM_IUTUCOPY qtrmm_iutucopy 95 #define QTRMM_IUTNCOPY qtrmm_iutncopy 96 #define QTRMM_ILNUCOPY qtrmm_ilnucopy 97 #define QTRMM_ILNNCOPY qtrmm_ilnncopy 98 #define QTRMM_ILTUCOPY qtrmm_iltucopy 99 #define QTRMM_ILTNCOPY qtrmm_iltncopy 100 101 #define QTRSM_IUNUCOPY qtrsm_iunucopy 102 #define QTRSM_IUNNCOPY qtrsm_iunncopy 103 #define QTRSM_IUTUCOPY qtrsm_iutucopy 104 #define QTRSM_IUTNCOPY qtrsm_iutncopy 105 #define QTRSM_ILNUCOPY qtrsm_ilnucopy 106 #define QTRSM_ILNNCOPY qtrsm_ilnncopy 107 #define QTRSM_ILTUCOPY qtrsm_iltucopy 108 #define QTRSM_ILTNCOPY qtrsm_iltncopy 109 #endif 110 111 #define QGEMM_BETA qgemm_beta 112 113 #define QGEMM_KERNEL qgemm_kernel 114 115 #define QTRMM_KERNEL_LN qtrmm_kernel_LN 116 #define QTRMM_KERNEL_LT qtrmm_kernel_LT 117 #define QTRMM_KERNEL_LR qtrmm_kernel_LN 118 #define QTRMM_KERNEL_LC qtrmm_kernel_LT 119 #define QTRMM_KERNEL_RN qtrmm_kernel_RN 120 #define QTRMM_KERNEL_RT qtrmm_kernel_RT 121 #define QTRMM_KERNEL_RR qtrmm_kernel_RN 122 #define QTRMM_KERNEL_RC qtrmm_kernel_RT 123 124 #define QTRSM_KERNEL_LN qtrsm_kernel_LN 125 #define QTRSM_KERNEL_LT qtrsm_kernel_LT 126 #define QTRSM_KERNEL_LR qtrsm_kernel_LN 127 #define QTRSM_KERNEL_LC qtrsm_kernel_LT 128 #define QTRSM_KERNEL_RN qtrsm_kernel_RN 129 #define QTRSM_KERNEL_RT qtrsm_kernel_RT 130 #define QTRSM_KERNEL_RR qtrsm_kernel_RN 131 #define QTRSM_KERNEL_RC qtrsm_kernel_RT 132 133 #define QSYMM_OUTCOPY qsymm_outcopy 134 #define QSYMM_OLTCOPY qsymm_oltcopy 135 #if QGEMM_DEFAULT_UNROLL_M == QGEMM_DEFAULT_UNROLL_N 136 #define QSYMM_IUTCOPY qsymm_outcopy 137 #define QSYMM_ILTCOPY qsymm_oltcopy 138 #else 139 #define QSYMM_IUTCOPY qsymm_iutcopy 140 #define QSYMM_ILTCOPY qsymm_iltcopy 141 #endif 142 143 #define QNEG_TCOPY qneg_tcopy 144 #define QLASWP_NCOPY qlaswp_ncopy 145 146 #else 147 148 #define QAMAX_K gotoblas -> qamax_k 149 #define QAMIN_K gotoblas -> qamin_k 150 #define QMAX_K gotoblas -> qmax_k 151 #define QMIN_K gotoblas -> qmin_k 152 #define IQAMAX_K gotoblas -> iqamax_k 153 #define IQAMIN_K gotoblas -> iqamin_k 154 #define IQMAX_K gotoblas -> iqmax_k 155 #define IQMIN_K gotoblas -> iqmin_k 156 #define QASUM_K gotoblas -> qasum_k 157 #define QAXPYU_K gotoblas -> qaxpy_k 158 #define QAXPYC_K gotoblas -> qaxpy_k 159 #define QCOPY_K gotoblas -> qcopy_k 160 #define QDOTU_K gotoblas -> qdot_k 161 #define QDOTC_K gotoblas -> qdot_k 162 #define QNRM2_K gotoblas -> qnrm2_k 163 #define QSCAL_K gotoblas -> qscal_k 164 #define QSWAP_K gotoblas -> qswap_k 165 #define QROT_K gotoblas -> qrot_k 166 167 #define QGEMV_N gotoblas -> qgemv_n 168 #define QGEMV_T gotoblas -> qgemv_t 169 #define QGEMV_R gotoblas -> qgemv_n 170 #define QGEMV_C gotoblas -> qgemv_t 171 #define QGEMV_O gotoblas -> qgemv_n 172 #define QGEMV_U gotoblas -> qgemv_t 173 #define QGEMV_S gotoblas -> qgemv_n 174 #define QGEMV_D gotoblas -> qgemv_t 175 176 #define QGERU_K gotoblas -> qger_k 177 #define QGERC_K gotoblas -> qger_k 178 #define QGERV_K gotoblas -> qger_k 179 #define QGERD_K gotoblas -> qger_k 180 181 #define QSYMV_U gotoblas -> qsymv_U 182 #define QSYMV_L gotoblas -> qsymv_L 183 184 #define QSYMV_THREAD_U qsymv_thread_U 185 #define QSYMV_THREAD_L qsymv_thread_L 186 187 #define QGEMM_ONCOPY gotoblas -> qgemm_oncopy 188 #define QGEMM_OTCOPY gotoblas -> qgemm_otcopy 189 #define QGEMM_INCOPY gotoblas -> qgemm_incopy 190 #define QGEMM_ITCOPY gotoblas -> qgemm_itcopy 191 192 #define QTRMM_OUNUCOPY gotoblas -> qtrmm_ounucopy 193 #define QTRMM_OUTUCOPY gotoblas -> qtrmm_outucopy 194 #define QTRMM_OLNUCOPY gotoblas -> qtrmm_olnucopy 195 #define QTRMM_OLTUCOPY gotoblas -> qtrmm_oltucopy 196 #define QTRSM_OUNUCOPY gotoblas -> qtrsm_ounucopy 197 #define QTRSM_OUTUCOPY gotoblas -> qtrsm_outucopy 198 #define QTRSM_OLNUCOPY gotoblas -> qtrsm_olnucopy 199 #define QTRSM_OLTUCOPY gotoblas -> qtrsm_oltucopy 200 201 #define QTRMM_IUNUCOPY gotoblas -> qtrmm_iunucopy 202 #define QTRMM_IUTUCOPY gotoblas -> qtrmm_iutucopy 203 #define QTRMM_ILNUCOPY gotoblas -> qtrmm_ilnucopy 204 #define QTRMM_ILTUCOPY gotoblas -> qtrmm_iltucopy 205 #define QTRSM_IUNUCOPY gotoblas -> qtrsm_iunucopy 206 #define QTRSM_IUTUCOPY gotoblas -> qtrsm_iutucopy 207 #define QTRSM_ILNUCOPY gotoblas -> qtrsm_ilnucopy 208 #define QTRSM_ILTUCOPY gotoblas -> qtrsm_iltucopy 209 210 #define QTRMM_OUNNCOPY gotoblas -> qtrmm_ounncopy 211 #define QTRMM_OUTNCOPY gotoblas -> qtrmm_outncopy 212 #define QTRMM_OLNNCOPY gotoblas -> qtrmm_olnncopy 213 #define QTRMM_OLTNCOPY gotoblas -> qtrmm_oltncopy 214 #define QTRSM_OUNNCOPY gotoblas -> qtrsm_ounncopy 215 #define QTRSM_OUTNCOPY gotoblas -> qtrsm_outncopy 216 #define QTRSM_OLNNCOPY gotoblas -> qtrsm_olnncopy 217 #define QTRSM_OLTNCOPY gotoblas -> qtrsm_oltncopy 218 219 #define QTRMM_IUNNCOPY gotoblas -> qtrmm_iunncopy 220 #define QTRMM_IUTNCOPY gotoblas -> qtrmm_iutncopy 221 #define QTRMM_ILNNCOPY gotoblas -> qtrmm_ilnncopy 222 #define QTRMM_ILTNCOPY gotoblas -> qtrmm_iltncopy 223 #define QTRSM_IUNNCOPY gotoblas -> qtrsm_iunncopy 224 #define QTRSM_IUTNCOPY gotoblas -> qtrsm_iutncopy 225 #define QTRSM_ILNNCOPY gotoblas -> qtrsm_ilnncopy 226 #define QTRSM_ILTNCOPY gotoblas -> qtrsm_iltncopy 227 228 #define QGEMM_BETA gotoblas -> qgemm_beta 229 #define QGEMM_KERNEL gotoblas -> qgemm_kernel 230 231 #define QTRMM_KERNEL_LN gotoblas -> qtrmm_kernel_LN 232 #define QTRMM_KERNEL_LT gotoblas -> qtrmm_kernel_LT 233 #define QTRMM_KERNEL_LR gotoblas -> qtrmm_kernel_LN 234 #define QTRMM_KERNEL_LC gotoblas -> qtrmm_kernel_LT 235 #define QTRMM_KERNEL_RN gotoblas -> qtrmm_kernel_RN 236 #define QTRMM_KERNEL_RT gotoblas -> qtrmm_kernel_RT 237 #define QTRMM_KERNEL_RR gotoblas -> qtrmm_kernel_RN 238 #define QTRMM_KERNEL_RC gotoblas -> qtrmm_kernel_RT 239 240 #define QTRSM_KERNEL_LN gotoblas -> qtrsm_kernel_LN 241 #define QTRSM_KERNEL_LT gotoblas -> qtrsm_kernel_LT 242 #define QTRSM_KERNEL_LR gotoblas -> qtrsm_kernel_LN 243 #define QTRSM_KERNEL_LC gotoblas -> qtrsm_kernel_LT 244 #define QTRSM_KERNEL_RN gotoblas -> qtrsm_kernel_RN 245 #define QTRSM_KERNEL_RT gotoblas -> qtrsm_kernel_RT 246 #define QTRSM_KERNEL_RR gotoblas -> qtrsm_kernel_RN 247 #define QTRSM_KERNEL_RC gotoblas -> qtrsm_kernel_RT 248 249 #define QSYMM_IUTCOPY gotoblas -> qsymm_iutcopy 250 #define QSYMM_ILTCOPY gotoblas -> qsymm_iltcopy 251 #define QSYMM_OUTCOPY gotoblas -> qsymm_outcopy 252 #define QSYMM_OLTCOPY gotoblas -> qsymm_oltcopy 253 254 #define QNEG_TCOPY gotoblas -> qneg_tcopy 255 #define QLASWP_NCOPY gotoblas -> qlaswp_ncopy 256 257 #endif 258 259 #define QGEMM_NN qgemm_nn 260 #define QGEMM_CN qgemm_tn 261 #define QGEMM_TN qgemm_tn 262 #define QGEMM_NC qgemm_nt 263 #define QGEMM_NT qgemm_nt 264 #define QGEMM_CC qgemm_tt 265 #define QGEMM_CT qgemm_tt 266 #define QGEMM_TC qgemm_tt 267 #define QGEMM_TT qgemm_tt 268 #define QGEMM_NR qgemm_nn 269 #define QGEMM_TR qgemm_tn 270 #define QGEMM_CR qgemm_tn 271 #define QGEMM_RN qgemm_nn 272 #define QGEMM_RT qgemm_nt 273 #define QGEMM_RC qgemm_nt 274 #define QGEMM_RR qgemm_nn 275 276 #define QSYMM_LU qsymm_LU 277 #define QSYMM_LL qsymm_LL 278 #define QSYMM_RU qsymm_RU 279 #define QSYMM_RL qsymm_RL 280 281 #define QHEMM_LU qhemm_LU 282 #define QHEMM_LL qhemm_LL 283 #define QHEMM_RU qhemm_RU 284 #define QHEMM_RL qhemm_RL 285 286 #define QSYRK_UN qsyrk_UN 287 #define QSYRK_UT qsyrk_UT 288 #define QSYRK_LN qsyrk_LN 289 #define QSYRK_LT qsyrk_LT 290 #define QSYRK_UR qsyrk_UN 291 #define QSYRK_UC qsyrk_UT 292 #define QSYRK_LR qsyrk_LN 293 #define QSYRK_LC qsyrk_LT 294 295 #define QSYRK_KERNEL_U qsyrk_kernel_U 296 #define QSYRK_KERNEL_L qsyrk_kernel_L 297 298 #define QHERK_UN qsyrk_UN 299 #define QHERK_LN qsyrk_LN 300 #define QHERK_UC qsyrk_UT 301 #define QHERK_LC qsyrk_LT 302 303 #define QHER2K_UN qsyr2k_UN 304 #define QHER2K_LN qsyr2k_LN 305 #define QHER2K_UC qsyr2k_UT 306 #define QHER2K_LC qsyr2k_LT 307 308 #define QSYR2K_UN qsyr2k_UN 309 #define QSYR2K_UT qsyr2k_UT 310 #define QSYR2K_LN qsyr2k_LN 311 #define QSYR2K_LT qsyr2k_LT 312 #define QSYR2K_UR qsyr2k_UN 313 #define QSYR2K_UC qsyr2k_UT 314 #define QSYR2K_LR qsyr2k_LN 315 #define QSYR2K_LC qsyr2k_LT 316 317 #define QSYR2K_KERNEL_U qsyr2k_kernel_U 318 #define QSYR2K_KERNEL_L qsyr2k_kernel_L 319 320 #define QTRMM_LNUU qtrmm_LNUU 321 #define QTRMM_LNUN qtrmm_LNUN 322 #define QTRMM_LNLU qtrmm_LNLU 323 #define QTRMM_LNLN qtrmm_LNLN 324 #define QTRMM_LTUU qtrmm_LTUU 325 #define QTRMM_LTUN qtrmm_LTUN 326 #define QTRMM_LTLU qtrmm_LTLU 327 #define QTRMM_LTLN qtrmm_LTLN 328 #define QTRMM_LRUU qtrmm_LNUU 329 #define QTRMM_LRUN qtrmm_LNUN 330 #define QTRMM_LRLU qtrmm_LNLU 331 #define QTRMM_LRLN qtrmm_LNLN 332 #define QTRMM_LCUU qtrmm_LTUU 333 #define QTRMM_LCUN qtrmm_LTUN 334 #define QTRMM_LCLU qtrmm_LTLU 335 #define QTRMM_LCLN qtrmm_LTLN 336 #define QTRMM_RNUU qtrmm_RNUU 337 #define QTRMM_RNUN qtrmm_RNUN 338 #define QTRMM_RNLU qtrmm_RNLU 339 #define QTRMM_RNLN qtrmm_RNLN 340 #define QTRMM_RTUU qtrmm_RTUU 341 #define QTRMM_RTUN qtrmm_RTUN 342 #define QTRMM_RTLU qtrmm_RTLU 343 #define QTRMM_RTLN qtrmm_RTLN 344 #define QTRMM_RRUU qtrmm_RNUU 345 #define QTRMM_RRUN qtrmm_RNUN 346 #define QTRMM_RRLU qtrmm_RNLU 347 #define QTRMM_RRLN qtrmm_RNLN 348 #define QTRMM_RCUU qtrmm_RTUU 349 #define QTRMM_RCUN qtrmm_RTUN 350 #define QTRMM_RCLU qtrmm_RTLU 351 #define QTRMM_RCLN qtrmm_RTLN 352 353 #define QTRSM_LNUU qtrsm_LNUU 354 #define QTRSM_LNUN qtrsm_LNUN 355 #define QTRSM_LNLU qtrsm_LNLU 356 #define QTRSM_LNLN qtrsm_LNLN 357 #define QTRSM_LTUU qtrsm_LTUU 358 #define QTRSM_LTUN qtrsm_LTUN 359 #define QTRSM_LTLU qtrsm_LTLU 360 #define QTRSM_LTLN qtrsm_LTLN 361 #define QTRSM_LRUU qtrsm_LNUU 362 #define QTRSM_LRUN qtrsm_LNUN 363 #define QTRSM_LRLU qtrsm_LNLU 364 #define QTRSM_LRLN qtrsm_LNLN 365 #define QTRSM_LCUU qtrsm_LTUU 366 #define QTRSM_LCUN qtrsm_LTUN 367 #define QTRSM_LCLU qtrsm_LTLU 368 #define QTRSM_LCLN qtrsm_LTLN 369 #define QTRSM_RNUU qtrsm_RNUU 370 #define QTRSM_RNUN qtrsm_RNUN 371 #define QTRSM_RNLU qtrsm_RNLU 372 #define QTRSM_RNLN qtrsm_RNLN 373 #define QTRSM_RTUU qtrsm_RTUU 374 #define QTRSM_RTUN qtrsm_RTUN 375 #define QTRSM_RTLU qtrsm_RTLU 376 #define QTRSM_RTLN qtrsm_RTLN 377 #define QTRSM_RRUU qtrsm_RNUU 378 #define QTRSM_RRUN qtrsm_RNUN 379 #define QTRSM_RRLU qtrsm_RNLU 380 #define QTRSM_RRLN qtrsm_RNLN 381 #define QTRSM_RCUU qtrsm_RTUU 382 #define QTRSM_RCUN qtrsm_RTUN 383 #define QTRSM_RCLU qtrsm_RTLU 384 #define QTRSM_RCLN qtrsm_RTLN 385 386 #define QGEMM_THREAD_NN qgemm_thread_nn 387 #define QGEMM_THREAD_CN qgemm_thread_tn 388 #define QGEMM_THREAD_TN qgemm_thread_tn 389 #define QGEMM_THREAD_NC qgemm_thread_nt 390 #define QGEMM_THREAD_NT qgemm_thread_nt 391 #define QGEMM_THREAD_CC qgemm_thread_tt 392 #define QGEMM_THREAD_CT qgemm_thread_tt 393 #define QGEMM_THREAD_TC qgemm_thread_tt 394 #define QGEMM_THREAD_TT qgemm_thread_tt 395 #define QGEMM_THREAD_NR qgemm_thread_nn 396 #define QGEMM_THREAD_TR qgemm_thread_tn 397 #define QGEMM_THREAD_CR qgemm_thread_tn 398 #define QGEMM_THREAD_RN qgemm_thread_nn 399 #define QGEMM_THREAD_RT qgemm_thread_nt 400 #define QGEMM_THREAD_RC qgemm_thread_nt 401 #define QGEMM_THREAD_RR qgemm_thread_nn 402 403 #define QSYMM_THREAD_LU qsymm_thread_LU 404 #define QSYMM_THREAD_LL qsymm_thread_LL 405 #define QSYMM_THREAD_RU qsymm_thread_RU 406 #define QSYMM_THREAD_RL qsymm_thread_RL 407 408 #define QHEMM_THREAD_LU qhemm_thread_LU 409 #define QHEMM_THREAD_LL qhemm_thread_LL 410 #define QHEMM_THREAD_RU qhemm_thread_RU 411 #define QHEMM_THREAD_RL qhemm_thread_RL 412 413 #define QSYRK_THREAD_UN qsyrk_thread_UN 414 #define QSYRK_THREAD_UT qsyrk_thread_UT 415 #define QSYRK_THREAD_LN qsyrk_thread_LN 416 #define QSYRK_THREAD_LT qsyrk_thread_LT 417 #define QSYRK_THREAD_UR qsyrk_thread_UN 418 #define QSYRK_THREAD_UC qsyrk_thread_UT 419 #define QSYRK_THREAD_LR qsyrk_thread_LN 420 #define QSYRK_THREAD_LC qsyrk_thread_LT 421 422 #define QHERK_THREAD_UN qsyrk_thread_UN 423 #define QHERK_THREAD_UT qsyrk_thread_UT 424 #define QHERK_THREAD_LN qsyrk_thread_LN 425 #define QHERK_THREAD_LT qsyrk_thread_LT 426 #define QHERK_THREAD_UR qsyrk_thread_UN 427 #define QHERK_THREAD_UC qsyrk_thread_UT 428 #define QHERK_THREAD_LR qsyrk_thread_LN 429 #define QHERK_THREAD_LC qsyrk_thread_LT 430 431 #endif 432