#ifndef COMMON_S_H
#define COMMON_S_H
#ifndef DYNAMIC_ARCH
#define SAMAX_K samax_k
#define SAMIN_K samin_k
#define SMAX_K smax_k
#define SMIN_K smin_k
#define ISAMAX_K isamax_k
#define ISAMIN_K isamin_k
#define ISMAX_K ismax_k
#define ISMIN_K ismin_k
#define SASUM_K sasum_k
#define SAXPYU_K saxpy_k
#define SAXPYC_K saxpy_k
#define SCOPY_K scopy_k
#define SDOTU_K sdot_k
#define SDOTC_K sdot_k
#define SDSDOT_K sdot_k
#define DSDOT_K dsdot_k
#define SNRM2_K snrm2_k
#define SSCAL_K sscal_k
#define SSWAP_K sswap_k
#define SROT_K srot_k
#define SGEMV_N sgemv_n
#define SGEMV_T sgemv_t
#define SGEMV_R sgemv_n
#define SGEMV_C sgemv_t
#define SGEMV_O sgemv_n
#define SGEMV_U sgemv_t
#define SGEMV_S sgemv_n
#define SGEMV_D sgemv_t
#define SGERU_K sger_k
#define SGERC_K sger_k
#define SGERV_K sger_k
#define SGERD_K sger_k
#define SSYMV_U ssymv_U
#define SSYMV_L ssymv_L
#define SSYMV_THREAD_U ssymv_thread_U
#define SSYMV_THREAD_L ssymv_thread_L
#define SGEMM_ONCOPY sgemm_oncopy
#define SGEMM_OTCOPY sgemm_otcopy
#if SGEMM_DEFAULT_UNROLL_M == SGEMM_DEFAULT_UNROLL_N
#define SGEMM_INCOPY sgemm_oncopy
#define SGEMM_ITCOPY sgemm_otcopy
#else
#define SGEMM_INCOPY sgemm_incopy
#define SGEMM_ITCOPY sgemm_itcopy
#endif
#define STRMM_OUNUCOPY strmm_ounucopy
#define STRMM_OUNNCOPY strmm_ounncopy
#define STRMM_OUTUCOPY strmm_outucopy
#define STRMM_OUTNCOPY strmm_outncopy
#define STRMM_OLNUCOPY strmm_olnucopy
#define STRMM_OLNNCOPY strmm_olnncopy
#define STRMM_OLTUCOPY strmm_oltucopy
#define STRMM_OLTNCOPY strmm_oltncopy
#define STRSM_OUNUCOPY strsm_ounucopy
#define STRSM_OUNNCOPY strsm_ounncopy
#define STRSM_OUTUCOPY strsm_outucopy
#define STRSM_OUTNCOPY strsm_outncopy
#define STRSM_OLNUCOPY strsm_olnucopy
#define STRSM_OLNNCOPY strsm_olnncopy
#define STRSM_OLTUCOPY strsm_oltucopy
#define STRSM_OLTNCOPY strsm_oltncopy
#if SGEMM_DEFAULT_UNROLL_M == SGEMM_DEFAULT_UNROLL_N
#define STRMM_IUNUCOPY strmm_ounucopy
#define STRMM_IUNNCOPY strmm_ounncopy
#define STRMM_IUTUCOPY strmm_outucopy
#define STRMM_IUTNCOPY strmm_outncopy
#define STRMM_ILNUCOPY strmm_olnucopy
#define STRMM_ILNNCOPY strmm_olnncopy
#define STRMM_ILTUCOPY strmm_oltucopy
#define STRMM_ILTNCOPY strmm_oltncopy
#define STRSM_IUNUCOPY strsm_ounucopy
#define STRSM_IUNNCOPY strsm_ounncopy
#define STRSM_IUTUCOPY strsm_outucopy
#define STRSM_IUTNCOPY strsm_outncopy
#define STRSM_ILNUCOPY strsm_olnucopy
#define STRSM_ILNNCOPY strsm_olnncopy
#define STRSM_ILTUCOPY strsm_oltucopy
#define STRSM_ILTNCOPY strsm_oltncopy
#else
#define STRMM_IUNUCOPY strmm_iunucopy
#define STRMM_IUNNCOPY strmm_iunncopy
#define STRMM_IUTUCOPY strmm_iutucopy
#define STRMM_IUTNCOPY strmm_iutncopy
#define STRMM_ILNUCOPY strmm_ilnucopy
#define STRMM_ILNNCOPY strmm_ilnncopy
#define STRMM_ILTUCOPY strmm_iltucopy
#define STRMM_ILTNCOPY strmm_iltncopy
#define STRSM_IUNUCOPY strsm_iunucopy
#define STRSM_IUNNCOPY strsm_iunncopy
#define STRSM_IUTUCOPY strsm_iutucopy
#define STRSM_IUTNCOPY strsm_iutncopy
#define STRSM_ILNUCOPY strsm_ilnucopy
#define STRSM_ILNNCOPY strsm_ilnncopy
#define STRSM_ILTUCOPY strsm_iltucopy
#define STRSM_ILTNCOPY strsm_iltncopy
#endif
#define SGEMM_BETA sgemm_beta
#define SGEMM_KERNEL sgemm_kernel
#define STRMM_KERNEL_LN strmm_kernel_LN
#define STRMM_KERNEL_LT strmm_kernel_LT
#define STRMM_KERNEL_LR strmm_kernel_LN
#define STRMM_KERNEL_LC strmm_kernel_LT
#define STRMM_KERNEL_RN strmm_kernel_RN
#define STRMM_KERNEL_RT strmm_kernel_RT
#define STRMM_KERNEL_RR strmm_kernel_RN
#define STRMM_KERNEL_RC strmm_kernel_RT
#define STRSM_KERNEL_LN strsm_kernel_LN
#define STRSM_KERNEL_LT strsm_kernel_LT
#define STRSM_KERNEL_LR strsm_kernel_LN
#define STRSM_KERNEL_LC strsm_kernel_LT
#define STRSM_KERNEL_RN strsm_kernel_RN
#define STRSM_KERNEL_RT strsm_kernel_RT
#define STRSM_KERNEL_RR strsm_kernel_RN
#define STRSM_KERNEL_RC strsm_kernel_RT
#define SSYMM_OUTCOPY ssymm_outcopy
#define SSYMM_OLTCOPY ssymm_oltcopy
#if SGEMM_DEFAULT_UNROLL_M == SGEMM_DEFAULT_UNROLL_N
#define SSYMM_IUTCOPY ssymm_outcopy
#define SSYMM_ILTCOPY ssymm_oltcopy
#else
#define SSYMM_IUTCOPY ssymm_iutcopy
#define SSYMM_ILTCOPY ssymm_iltcopy
#endif
#define SNEG_TCOPY sneg_tcopy
#define SLASWP_NCOPY slaswp_ncopy
#else
#define SAMAX_K gotoblas -> samax_k
#define SAMIN_K gotoblas -> samin_k
#define SMAX_K gotoblas -> smax_k
#define SMIN_K gotoblas -> smin_k
#define ISAMAX_K gotoblas -> isamax_k
#define ISAMIN_K gotoblas -> isamin_k
#define ISMAX_K gotoblas -> ismax_k
#define ISMIN_K gotoblas -> ismin_k
#define SASUM_K gotoblas -> sasum_k
#define SAXPYU_K gotoblas -> saxpy_k
#define SAXPYC_K gotoblas -> saxpy_k
#define SCOPY_K gotoblas -> scopy_k
#define SDOTU_K gotoblas -> sdot_k
#define SDOTC_K gotoblas -> sdot_k
#define SDSDOT_K gotoblas -> sdot_k
#define DSDOT_K gotoblas -> dsdot_k
#define SNRM2_K gotoblas -> snrm2_k
#define SSCAL_K gotoblas -> sscal_k
#define SSWAP_K gotoblas -> sswap_k
#define SROT_K gotoblas -> srot_k
#define SGEMV_N gotoblas -> sgemv_n
#define SGEMV_T gotoblas -> sgemv_t
#define SGEMV_R gotoblas -> sgemv_n
#define SGEMV_C gotoblas -> sgemv_t
#define SGEMV_O gotoblas -> sgemv_n
#define SGEMV_U gotoblas -> sgemv_t
#define SGEMV_S gotoblas -> sgemv_n
#define SGEMV_D gotoblas -> sgemv_t
#define SGERU_K gotoblas -> sger_k
#define SGERC_K gotoblas -> sger_k
#define SGERV_K gotoblas -> sger_k
#define SGERD_K gotoblas -> sger_k
#define SSYMV_U gotoblas -> ssymv_U
#define SSYMV_L gotoblas -> ssymv_L
#define SSYMV_THREAD_U ssymv_thread_U
#define SSYMV_THREAD_L ssymv_thread_L
#define SGEMM_ONCOPY gotoblas -> sgemm_oncopy
#define SGEMM_OTCOPY gotoblas -> sgemm_otcopy
#define SGEMM_INCOPY gotoblas -> sgemm_incopy
#define SGEMM_ITCOPY gotoblas -> sgemm_itcopy
#define STRMM_OUNUCOPY gotoblas -> strmm_ounucopy
#define STRMM_OUTUCOPY gotoblas -> strmm_outucopy
#define STRMM_OLNUCOPY gotoblas -> strmm_olnucopy
#define STRMM_OLTUCOPY gotoblas -> strmm_oltucopy
#define STRSM_OUNUCOPY gotoblas -> strsm_ounucopy
#define STRSM_OUTUCOPY gotoblas -> strsm_outucopy
#define STRSM_OLNUCOPY gotoblas -> strsm_olnucopy
#define STRSM_OLTUCOPY gotoblas -> strsm_oltucopy
#define STRMM_IUNUCOPY gotoblas -> strmm_iunucopy
#define STRMM_IUTUCOPY gotoblas -> strmm_iutucopy
#define STRMM_ILNUCOPY gotoblas -> strmm_ilnucopy
#define STRMM_ILTUCOPY gotoblas -> strmm_iltucopy
#define STRSM_IUNUCOPY gotoblas -> strsm_iunucopy
#define STRSM_IUTUCOPY gotoblas -> strsm_iutucopy
#define STRSM_ILNUCOPY gotoblas -> strsm_ilnucopy
#define STRSM_ILTUCOPY gotoblas -> strsm_iltucopy
#define STRMM_OUNNCOPY gotoblas -> strmm_ounncopy
#define STRMM_OUTNCOPY gotoblas -> strmm_outncopy
#define STRMM_OLNNCOPY gotoblas -> strmm_olnncopy
#define STRMM_OLTNCOPY gotoblas -> strmm_oltncopy
#define STRSM_OUNNCOPY gotoblas -> strsm_ounncopy
#define STRSM_OUTNCOPY gotoblas -> strsm_outncopy
#define STRSM_OLNNCOPY gotoblas -> strsm_olnncopy
#define STRSM_OLTNCOPY gotoblas -> strsm_oltncopy
#define STRMM_IUNNCOPY gotoblas -> strmm_iunncopy
#define STRMM_IUTNCOPY gotoblas -> strmm_iutncopy
#define STRMM_ILNNCOPY gotoblas -> strmm_ilnncopy
#define STRMM_ILTNCOPY gotoblas -> strmm_iltncopy
#define STRSM_IUNNCOPY gotoblas -> strsm_iunncopy
#define STRSM_IUTNCOPY gotoblas -> strsm_iutncopy
#define STRSM_ILNNCOPY gotoblas -> strsm_ilnncopy
#define STRSM_ILTNCOPY gotoblas -> strsm_iltncopy
#define SGEMM_BETA gotoblas -> sgemm_beta
#define SGEMM_KERNEL gotoblas -> sgemm_kernel
#define STRMM_KERNEL_LN gotoblas -> strmm_kernel_LN
#define STRMM_KERNEL_LT gotoblas -> strmm_kernel_LT
#define STRMM_KERNEL_LR gotoblas -> strmm_kernel_LN
#define STRMM_KERNEL_LC gotoblas -> strmm_kernel_LT
#define STRMM_KERNEL_RN gotoblas -> strmm_kernel_RN
#define STRMM_KERNEL_RT gotoblas -> strmm_kernel_RT
#define STRMM_KERNEL_RR gotoblas -> strmm_kernel_RN
#define STRMM_KERNEL_RC gotoblas -> strmm_kernel_RT
#define STRSM_KERNEL_LN gotoblas -> strsm_kernel_LN
#define STRSM_KERNEL_LT gotoblas -> strsm_kernel_LT
#define STRSM_KERNEL_LR gotoblas -> strsm_kernel_LN
#define STRSM_KERNEL_LC gotoblas -> strsm_kernel_LT
#define STRSM_KERNEL_RN gotoblas -> strsm_kernel_RN
#define STRSM_KERNEL_RT gotoblas -> strsm_kernel_RT
#define STRSM_KERNEL_RR gotoblas -> strsm_kernel_RN
#define STRSM_KERNEL_RC gotoblas -> strsm_kernel_RT
#define SSYMM_IUTCOPY gotoblas -> ssymm_iutcopy
#define SSYMM_ILTCOPY gotoblas -> ssymm_iltcopy
#define SSYMM_OUTCOPY gotoblas -> ssymm_outcopy
#define SSYMM_OLTCOPY gotoblas -> ssymm_oltcopy
#define SNEG_TCOPY gotoblas -> sneg_tcopy
#define SLASWP_NCOPY gotoblas -> slaswp_ncopy
#endif
#define SGEMM_NN sgemm_nn
#define SGEMM_CN sgemm_tn
#define SGEMM_TN sgemm_tn
#define SGEMM_NC sgemm_nt
#define SGEMM_NT sgemm_nt
#define SGEMM_CC sgemm_tt
#define SGEMM_CT sgemm_tt
#define SGEMM_TC sgemm_tt
#define SGEMM_TT sgemm_tt
#define SGEMM_NR sgemm_nn
#define SGEMM_TR sgemm_tn
#define SGEMM_CR sgemm_tn
#define SGEMM_RN sgemm_nn
#define SGEMM_RT sgemm_nt
#define SGEMM_RC sgemm_nt
#define SGEMM_RR sgemm_nn
#define SSYMM_LU ssymm_LU
#define SSYMM_LL ssymm_LL
#define SSYMM_RU ssymm_RU
#define SSYMM_RL ssymm_RL
#define SHEMM_LU shemm_LU
#define SHEMM_LL shemm_LL
#define SHEMM_RU shemm_RU
#define SHEMM_RL shemm_RL
#define SSYRK_UN ssyrk_UN
#define SSYRK_UT ssyrk_UT
#define SSYRK_LN ssyrk_LN
#define SSYRK_LT ssyrk_LT
#define SSYRK_UR ssyrk_UN
#define SSYRK_UC ssyrk_UT
#define SSYRK_LR ssyrk_LN
#define SSYRK_LC ssyrk_LT
#define SSYRK_KERNEL_U ssyrk_kernel_U
#define SSYRK_KERNEL_L ssyrk_kernel_L
#define SHERK_UN ssyrk_UN
#define SHERK_LN ssyrk_LN
#define SHERK_UC ssyrk_UT
#define SHERK_LC ssyrk_LT
#define SHER2K_UN ssyr2k_UN
#define SHER2K_LN ssyr2k_LN
#define SHER2K_UC ssyr2k_UT
#define SHER2K_LC ssyr2k_LT
#define SSYR2K_UN ssyr2k_UN
#define SSYR2K_UT ssyr2k_UT
#define SSYR2K_LN ssyr2k_LN
#define SSYR2K_LT ssyr2k_LT
#define SSYR2K_UR ssyr2k_UN
#define SSYR2K_UC ssyr2k_UT
#define SSYR2K_LR ssyr2k_LN
#define SSYR2K_LC ssyr2k_LT
#define SSYR2K_KERNEL_U ssyr2k_kernel_U
#define SSYR2K_KERNEL_L ssyr2k_kernel_L
#define STRMM_LNUU strmm_LNUU
#define STRMM_LNUN strmm_LNUN
#define STRMM_LNLU strmm_LNLU
#define STRMM_LNLN strmm_LNLN
#define STRMM_LTUU strmm_LTUU
#define STRMM_LTUN strmm_LTUN
#define STRMM_LTLU strmm_LTLU
#define STRMM_LTLN strmm_LTLN
#define STRMM_LRUU strmm_LNUU
#define STRMM_LRUN strmm_LNUN
#define STRMM_LRLU strmm_LNLU
#define STRMM_LRLN strmm_LNLN
#define STRMM_LCUU strmm_LTUU
#define STRMM_LCUN strmm_LTUN
#define STRMM_LCLU strmm_LTLU
#define STRMM_LCLN strmm_LTLN
#define STRMM_RNUU strmm_RNUU
#define STRMM_RNUN strmm_RNUN
#define STRMM_RNLU strmm_RNLU
#define STRMM_RNLN strmm_RNLN
#define STRMM_RTUU strmm_RTUU
#define STRMM_RTUN strmm_RTUN
#define STRMM_RTLU strmm_RTLU
#define STRMM_RTLN strmm_RTLN
#define STRMM_RRUU strmm_RNUU
#define STRMM_RRUN strmm_RNUN
#define STRMM_RRLU strmm_RNLU
#define STRMM_RRLN strmm_RNLN
#define STRMM_RCUU strmm_RTUU
#define STRMM_RCUN strmm_RTUN
#define STRMM_RCLU strmm_RTLU
#define STRMM_RCLN strmm_RTLN
#define STRSM_LNUU strsm_LNUU
#define STRSM_LNUN strsm_LNUN
#define STRSM_LNLU strsm_LNLU
#define STRSM_LNLN strsm_LNLN
#define STRSM_LTUU strsm_LTUU
#define STRSM_LTUN strsm_LTUN
#define STRSM_LTLU strsm_LTLU
#define STRSM_LTLN strsm_LTLN
#define STRSM_LRUU strsm_LNUU
#define STRSM_LRUN strsm_LNUN
#define STRSM_LRLU strsm_LNLU
#define STRSM_LRLN strsm_LNLN
#define STRSM_LCUU strsm_LTUU
#define STRSM_LCUN strsm_LTUN
#define STRSM_LCLU strsm_LTLU
#define STRSM_LCLN strsm_LTLN
#define STRSM_RNUU strsm_RNUU
#define STRSM_RNUN strsm_RNUN
#define STRSM_RNLU strsm_RNLU
#define STRSM_RNLN strsm_RNLN
#define STRSM_RTUU strsm_RTUU
#define STRSM_RTUN strsm_RTUN
#define STRSM_RTLU strsm_RTLU
#define STRSM_RTLN strsm_RTLN
#define STRSM_RRUU strsm_RNUU
#define STRSM_RRUN strsm_RNUN
#define STRSM_RRLU strsm_RNLU
#define STRSM_RRLN strsm_RNLN
#define STRSM_RCUU strsm_RTUU
#define STRSM_RCUN strsm_RTUN
#define STRSM_RCLU strsm_RTLU
#define STRSM_RCLN strsm_RTLN
#define SGEMM_THREAD_NN sgemm_thread_nn
#define SGEMM_THREAD_CN sgemm_thread_tn
#define SGEMM_THREAD_TN sgemm_thread_tn
#define SGEMM_THREAD_NC sgemm_thread_nt
#define SGEMM_THREAD_NT sgemm_thread_nt
#define SGEMM_THREAD_CC sgemm_thread_tt
#define SGEMM_THREAD_CT sgemm_thread_tt
#define SGEMM_THREAD_TC sgemm_thread_tt
#define SGEMM_THREAD_TT sgemm_thread_tt
#define SGEMM_THREAD_NR sgemm_thread_nn
#define SGEMM_THREAD_TR sgemm_thread_tn
#define SGEMM_THREAD_CR sgemm_thread_tn
#define SGEMM_THREAD_RN sgemm_thread_nn
#define SGEMM_THREAD_RT sgemm_thread_nt
#define SGEMM_THREAD_RC sgemm_thread_nt
#define SGEMM_THREAD_RR sgemm_thread_nn
#define SSYMM_THREAD_LU ssymm_thread_LU
#define SSYMM_THREAD_LL ssymm_thread_LL
#define SSYMM_THREAD_RU ssymm_thread_RU
#define SSYMM_THREAD_RL ssymm_thread_RL
#define SHEMM_THREAD_LU shemm_thread_LU
#define SHEMM_THREAD_LL shemm_thread_LL
#define SHEMM_THREAD_RU shemm_thread_RU
#define SHEMM_THREAD_RL shemm_thread_RL
#define SSYRK_THREAD_UN ssyrk_thread_UN
#define SSYRK_THREAD_UT ssyrk_thread_UT
#define SSYRK_THREAD_LN ssyrk_thread_LN
#define SSYRK_THREAD_LT ssyrk_thread_LT
#define SSYRK_THREAD_UR ssyrk_thread_UN
#define SSYRK_THREAD_UC ssyrk_thread_UT
#define SSYRK_THREAD_LR ssyrk_thread_LN
#define SSYRK_THREAD_LC ssyrk_thread_LT
#define SHERK_THREAD_UN ssyrk_thread_UN
#define SHERK_THREAD_UT ssyrk_thread_UT
#define SHERK_THREAD_LN ssyrk_thread_LN
#define SHERK_THREAD_LT ssyrk_thread_LT
#define SHERK_THREAD_UR ssyrk_thread_UN
#define SHERK_THREAD_UC ssyrk_thread_UT
#define SHERK_THREAD_LR ssyrk_thread_LN
#define SHERK_THREAD_LC ssyrk_thread_LT
#endif