Added conj gemv objects for complex build.

This commit is contained in:
Hank Anderson 2015-02-23 10:24:31 -06:00
parent b2284647a3
commit 1b7f427401
3 changed files with 202 additions and 120 deletions

View File

@ -1,110 +1,158 @@
# helper functions for the kernel CMakeLists.txt # helper functions for the kernel CMakeLists.txt
# Set the default filenames for L1 objects. Most of these will be overriden by the appropriate KERNEL file. # Set the default filenames for L1 objects. Most of these will be overriden by the appropriate KERNEL file.
macro(SetDefaultL1) macro(SetDefaultL1)
set(SAMAXKERNEL amax.S) set(SAMAXKERNEL amax.S)
set(DAMAXKERNEL amax.S) set(DAMAXKERNEL amax.S)
set(QAMAXKERNEL amax.S) set(QAMAXKERNEL amax.S)
set(CAMAXKERNEL zamax.S) set(CAMAXKERNEL zamax.S)
set(ZAMAXKERNEL zamax.S) set(ZAMAXKERNEL zamax.S)
set(XAMAXKERNEL zamax.S) set(XAMAXKERNEL zamax.S)
set(SAMINKERNEL amin.S) set(SAMINKERNEL amin.S)
set(DAMINKERNEL amin.S) set(DAMINKERNEL amin.S)
set(QAMINKERNEL amin.S) set(QAMINKERNEL amin.S)
set(CAMINKERNEL zamin.S) set(CAMINKERNEL zamin.S)
set(ZAMINKERNEL zamin.S) set(ZAMINKERNEL zamin.S)
set(XAMINKERNEL zamin.S) set(XAMINKERNEL zamin.S)
set(SMAXKERNEL max.S) set(SMAXKERNEL max.S)
set(DMAXKERNEL max.S) set(DMAXKERNEL max.S)
set(QMAXKERNEL max.S) set(QMAXKERNEL max.S)
set(SMINKERNEL min.S) set(SMINKERNEL min.S)
set(DMINKERNEL min.S) set(DMINKERNEL min.S)
set(QMINKERNEL min.S) set(QMINKERNEL min.S)
set(ISAMAXKERNEL iamax.S) set(ISAMAXKERNEL iamax.S)
set(IDAMAXKERNEL iamax.S) set(IDAMAXKERNEL iamax.S)
set(IQAMAXKERNEL iamax.S) set(IQAMAXKERNEL iamax.S)
set(ICAMAXKERNEL izamax.S) set(ICAMAXKERNEL izamax.S)
set(IZAMAXKERNEL izamax.S) set(IZAMAXKERNEL izamax.S)
set(IXAMAXKERNEL izamax.S) set(IXAMAXKERNEL izamax.S)
set(ISAMINKERNEL iamin.S) set(ISAMINKERNEL iamin.S)
set(IDAMINKERNEL iamin.S) set(IDAMINKERNEL iamin.S)
set(IQAMINKERNEL iamin.S) set(IQAMINKERNEL iamin.S)
set(ICAMINKERNEL izamin.S) set(ICAMINKERNEL izamin.S)
set(IZAMINKERNEL izamin.S) set(IZAMINKERNEL izamin.S)
set(IXAMINKERNEL izamin.S) set(IXAMINKERNEL izamin.S)
set(ISMAXKERNEL iamax.S) set(ISMAXKERNEL iamax.S)
set(IDMAXKERNEL iamax.S) set(IDMAXKERNEL iamax.S)
set(IQMAXKERNEL iamax.S) set(IQMAXKERNEL iamax.S)
set(ISMINKERNEL iamin.S) set(ISMINKERNEL iamin.S)
set(IDMINKERNEL iamin.S) set(IDMINKERNEL iamin.S)
set(IQMINKERNEL iamin.S) set(IQMINKERNEL iamin.S)
set(SASUMKERNEL asum.S) set(SASUMKERNEL asum.S)
set(DASUMKERNEL asum.S) set(DASUMKERNEL asum.S)
set(CASUMKERNEL zasum.S) set(CASUMKERNEL zasum.S)
set(ZASUMKERNEL zasum.S) set(ZASUMKERNEL zasum.S)
set(QASUMKERNEL asum.S) set(QASUMKERNEL asum.S)
set(XASUMKERNEL zasum.S) set(XASUMKERNEL zasum.S)
set(SAXPYKERNEL axpy.S) set(SAXPYKERNEL axpy.S)
set(DAXPYKERNEL axpy.S) set(DAXPYKERNEL axpy.S)
set(CAXPYKERNEL zaxpy.S) set(CAXPYKERNEL zaxpy.S)
set(ZAXPYKERNEL zaxpy.S) set(ZAXPYKERNEL zaxpy.S)
set(QAXPYKERNEL axpy.S) set(QAXPYKERNEL axpy.S)
set(XAXPYKERNEL zaxpy.S) set(XAXPYKERNEL zaxpy.S)
set(SCOPYKERNEL copy.S) set(SCOPYKERNEL copy.S)
set(DCOPYKERNEL copy.S) set(DCOPYKERNEL copy.S)
set(CCOPYKERNEL zcopy.S) set(CCOPYKERNEL zcopy.S)
set(ZCOPYKERNEL zcopy.S) set(ZCOPYKERNEL zcopy.S)
set(QCOPYKERNEL copy.S) set(QCOPYKERNEL copy.S)
set(XCOPYKERNEL zcopy.S) set(XCOPYKERNEL zcopy.S)
set(SDOTKERNEL dot.S) set(SDOTKERNEL dot.S)
set(DDOTKERNEL dot.S) set(DDOTKERNEL dot.S)
set(CDOTKERNEL zdot.S) set(CDOTKERNEL zdot.S)
set(ZDOTKERNEL zdot.S) set(ZDOTKERNEL zdot.S)
set(QDOTKERNEL dot.S) set(QDOTKERNEL dot.S)
set(XDOTKERNEL zdot.S) set(XDOTKERNEL zdot.S)
set(SNRM2KERNEL nrm2.S) set(SNRM2KERNEL nrm2.S)
set(DNRM2KERNEL nrm2.S) set(DNRM2KERNEL nrm2.S)
set(QNRM2KERNEL nrm2.S) set(QNRM2KERNEL nrm2.S)
set(CNRM2KERNEL znrm2.S) set(CNRM2KERNEL znrm2.S)
set(ZNRM2KERNEL znrm2.S) set(ZNRM2KERNEL znrm2.S)
set(XNRM2KERNEL znrm2.S) set(XNRM2KERNEL znrm2.S)
set(SROTKERNEL rot.S) set(SROTKERNEL rot.S)
set(DROTKERNEL rot.S) set(DROTKERNEL rot.S)
set(QROTKERNEL rot.S) set(QROTKERNEL rot.S)
set(CROTKERNEL zrot.S) set(CROTKERNEL zrot.S)
set(ZROTKERNEL zrot.S) set(ZROTKERNEL zrot.S)
set(XROTKERNEL zrot.S) set(XROTKERNEL zrot.S)
set(SSCALKERNEL scal.S) set(SSCALKERNEL scal.S)
set(DSCALKERNEL scal.S) set(DSCALKERNEL scal.S)
set(CSCALKERNEL zscal.S) set(CSCALKERNEL zscal.S)
set(ZSCALKERNEL zscal.S) set(ZSCALKERNEL zscal.S)
set(QSCALKERNEL scal.S) set(QSCALKERNEL scal.S)
set(XSCALKERNEL zscal.S) set(XSCALKERNEL zscal.S)
set(SSWAPKERNEL swap.S) set(SSWAPKERNEL swap.S)
set(DSWAPKERNEL swap.S) set(DSWAPKERNEL swap.S)
set(CSWAPKERNEL zswap.S) set(CSWAPKERNEL zswap.S)
set(ZSWAPKERNEL zswap.S) set(ZSWAPKERNEL zswap.S)
set(QSWAPKERNEL swap.S) set(QSWAPKERNEL swap.S)
set(XSWAPKERNEL zswap.S) set(XSWAPKERNEL zswap.S)
set(SGEMVNKERNEL gemv_n.S) set(SGEMVNKERNEL gemv_n.S)
set(SGEMVTKERNEL gemv_t.S) set(SGEMVTKERNEL gemv_t.S)
set(DGEMVNKERNEL gemv_n.S) set(DGEMVNKERNEL gemv_n.S)
set(DGEMVTKERNEL gemv_t.S) set(DGEMVTKERNEL gemv_t.S)
set(CGEMVNKERNEL zgemv_n.S) set(CGEMVNKERNEL zgemv_n.S)
set(CGEMVTKERNEL zgemv_t.S) set(CGEMVTKERNEL zgemv_t.S)
set(ZGEMVNKERNEL zgemv_n.S) set(ZGEMVNKERNEL zgemv_n.S)
set(ZGEMVTKERNEL zgemv_t.S) set(ZGEMVTKERNEL zgemv_t.S)
set(QGEMVNKERNEL gemv_n.S) set(QGEMVNKERNEL gemv_n.S)
set(QGEMVTKERNEL gemv_t.S) set(QGEMVTKERNEL gemv_t.S)
set(XGEMVNKERNEL zgemv_n.S) set(XGEMVNKERNEL zgemv_n.S)
set(XGEMVTKERNEL zgemv_t.S) set(XGEMVTKERNEL zgemv_t.S)
set(SCABS_KERNEL cabs.S) set(SCABS_KERNEL cabs.S)
set(DCABS_KERNEL cabs.S) set(DCABS_KERNEL cabs.S)
set(QCABS_KERNEL cabs.S) set(QCABS_KERNEL cabs.S)
set(LSAME_KERNEL lsame.S) set(LSAME_KERNEL lsame.S)
set(SAXPBYKERNEL ../arm/axpby.c) set(SAXPBYKERNEL ../arm/axpby.c)
set(DAXPBYKERNEL ../arm/axpby.c) set(DAXPBYKERNEL ../arm/axpby.c)
set(CAXPBYKERNEL ../arm/zaxpby.c) set(CAXPBYKERNEL ../arm/zaxpby.c)
set(ZAXPBYKERNEL ../arm/zaxpby.c) set(ZAXPBYKERNEL ../arm/zaxpby.c)
endmacro () endmacro ()
macro(SetDefaultL2)
set(SGEMVNKERNEL gemv_n.S)
set(SGEMVTKERNEL gemv_t.S)
set(DGEMVNKERNEL gemv_n.S)
set(DGEMVTKERNEL gemv_t.S)
set(CGEMVNKERNEL zgemv_n.S)
set(CGEMVTKERNEL zgemv_t.S)
set(ZGEMVNKERNEL zgemv_n.S)
set(ZGEMVTKERNEL zgemv_t.S)
set(QGEMVNKERNEL gemv_n.S)
set(QGEMVTKERNEL gemv_t.S)
set(XGEMVNKERNEL zgemv_n.S)
set(XGEMVTKERNEL zgemv_t.S)
set(SGERKERNEL ../generic/ger.c)
set(DGERKERNEL ../generic/ger.c)
set(QGERKERNEL ../generic/ger.c)
set(CGERUKERNEL ../generic/zger.c)
set(CGERCKERNEL ../generic/zger.c)
set(ZGERUKERNEL ../generic/zger.c)
set(ZGERCKERNEL ../generic/zger.c)
set(XGERUKERNEL ../generic/zger.c)
set(XGERCKERNEL ../generic/zger.c)
set(SSYMV_U_KERNEL ../generic/symv_k.c)
set(SSYMV_L_KERNEL ../generic/symv_k.c)
set(DSYMV_U_KERNEL ../generic/symv_k.c)
set(DSYMV_L_KERNEL ../generic/symv_k.c)
set(QSYMV_U_KERNEL ../generic/symv_k.c)
set(QSYMV_L_KERNEL ../generic/symv_k.c)
set(CSYMV_U_KERNEL ../generic/zsymv_k.c)
set(CSYMV_L_KERNEL ../generic/zsymv_k.c)
set(ZSYMV_U_KERNEL ../generic/zsymv_k.c)
set(ZSYMV_L_KERNEL ../generic/zsymv_k.c)
set(XSYMV_U_KERNEL ../generic/zsymv_k.c)
set(XSYMV_L_KERNEL ../generic/zsymv_k.c)
set(CHEMV_U_KERNEL ../generic/zhemv_k.c)
set(CHEMV_L_KERNEL ../generic/zhemv_k.c)
set(CHEMV_V_KERNEL ../generic/zhemv_k.c)
set(CHEMV_M_KERNEL ../generic/zhemv_k.c)
set(ZHEMV_U_KERNEL ../generic/zhemv_k.c)
set(ZHEMV_L_KERNEL ../generic/zhemv_k.c)
set(ZHEMV_V_KERNEL ../generic/zhemv_k.c)
set(ZHEMV_M_KERNEL ../generic/zhemv_k.c)
set(XHEMV_U_KERNEL ../generic/zhemv_k.c)
set(XHEMV_L_KERNEL ../generic/zhemv_k.c)
set(XHEMV_V_KERNEL ../generic/zhemv_k.c)
set(XHEMV_M_KERNEL ../generic/zhemv_k.c)
endmacro ()

View File

@ -54,14 +54,6 @@ endforeach ()
if (SMP) if (SMP)
# gbmv uses a lowercase n and t. N.B. this uses TRANSA where gbmv.c uses TRANS. Intentional?
GenerateNamedObjects("gbmv_thread.c" "" "gbmv_thread_n")
GenerateNamedObjects("gbmv_thread.c" "TRANSA" "gbmv_thread_t")
GenerateNamedObjects("gemv_thread.c" "" "gemv_thread_n")
GenerateNamedObjects("gemv_thread.c" "TRANSA" "gemv_thread_t")
GenerateNamedObjects("ger_thread.c")
set(UL_SMP_SOURCES set(UL_SMP_SOURCES
symv_thread.c symv_thread.c
@ -84,10 +76,41 @@ if (SMP)
GenerateCombinationObjects("${NU_SMP_SOURCES}" "TRANSA;LOWER;UNIT" "N;U;N" "" 2) GenerateCombinationObjects("${NU_SMP_SOURCES}" "TRANSA;LOWER;UNIT" "N;U;N" "" 2)
foreach (float_type ${FLOAT_TYPES}) foreach (float_type ${FLOAT_TYPES})
GenerateNamedObjects("gemv_thread.c" "" "gemv_thread_n" false "" "" false ${float_type})
GenerateNamedObjects("gemv_thread.c" "TRANSA" "gemv_thread_t" false "" "" false ${float_type})
GenerateNamedObjects("gbmv_thread.c" "" "gbmv_thread_n" false "" "" false ${float_type})
GenerateNamedObjects("gbmv_thread.c" "TRANSA" "gbmv_thread_t" false "" "" false ${float_type})
if (${float_type} STREQUAL "COMPLEX" OR ${float_type} STREQUAL "ZCOMPLEX") if (${float_type} STREQUAL "COMPLEX" OR ${float_type} STREQUAL "ZCOMPLEX")
GenerateCombinationObjects("trmv_thread.c" "LOWER;UNIT" "U;N" "TRANSA=3" 0 "trmv_thread_R" false ${float_type}) GenerateCombinationObjects("trmv_thread.c" "LOWER;UNIT" "U;N" "TRANSA=3" 0 "trmv_thread_R" false ${float_type})
GenerateCombinationObjects("trmv_thread.c" "LOWER;UNIT" "U;N" "TRANSA=4" 0 "trmv_thread_C" false ${float_type}) GenerateCombinationObjects("trmv_thread.c" "LOWER;UNIT" "U;N" "TRANSA=4" 0 "trmv_thread_C" false ${float_type})
GenerateNamedObjects("gemv_thread.c" "CONJ" "gemv_thread_r" false "" "" false ${float_type})
GenerateNamedObjects("gemv_thread.c" "CONJ;TRANSA" "gemv_thread_c" false "" "" false ${float_type})
GenerateNamedObjects("gemv_thread.c" "XCONJ" "gemv_thread_o" false "" "" false ${float_type})
GenerateNamedObjects("gemv_thread.c" "XCONJ;TRANSA" "gemv_thread_u" false "" "" false ${float_type})
GenerateNamedObjects("gemv_thread.c" "XCONJ;CONJ" "gemv_thread_s" false "" "" false ${float_type})
GenerateNamedObjects("gemv_thread.c" "XCONJ;CONJ;TRANSA" "gemv_thread_d" false "" "" false ${float_type})
GenerateNamedObjects("gbmv_thread.c" "CONJ" "gbmv_thread_r" false "" "" false ${float_type})
GenerateNamedObjects("gbmv_thread.c" "CONJ;TRANSA" "gbmv_thread_c" false "" "" false ${float_type})
GenerateNamedObjects("gbmv_thread.c" "XCONJ" "gbmv_thread_o" false "" "" false ${float_type})
GenerateNamedObjects("gbmv_thread.c" "XCONJ;TRANSA" "gbmv_thread_u" false "" "" false ${float_type})
GenerateNamedObjects("gbmv_thread.c" "XCONJ;CONJ" "gbmv_thread_s" false "" "" false ${float_type})
GenerateNamedObjects("gbmv_thread.c" "XCONJ;CONJ;TRANSA" "gbmv_thread_d" false "" "" false ${float_type})
GenerateNamedObjects("ger_thread.c" "" "ger_thread_U" false "" "" false ${float_type})
GenerateNamedObjects("ger_thread.c" "CONJ" "ger_thread_C" false "" "" false ${float_type})
GenerateNamedObjects("ger_thread.c" "XCONJ" "ger_thread_V" false "" "" false ${float_type})
GenerateNamedObjects("ger_thread.c" "XCONJ;CONJ" "ger_thread_D" false "" "" false ${float_type})
else ()
GenerateNamedObjects("ger_thread.c" "" "" false "" "" false ${float_type})
endif () endif ()
endforeach () endforeach ()
endif () endif ()

View File

@ -67,8 +67,7 @@ foreach (float_type ${FLOAT_TYPES})
endforeach () endforeach ()
# Makefile.L2 # Makefile.L2
GenerateNamedObjects("${KERNELDIR}/gemv_n.S" "DOUBLE") SetDefaultL2()
GenerateNamedObjects("${KERNELDIR}/gemv_t.S" "TRANS")
GenerateCombinationObjects("generic/symv_k.c" "LOWER" "U" "" 1 "" "" 3) GenerateCombinationObjects("generic/symv_k.c" "LOWER" "U" "" 1 "" "" 3)
GenerateNamedObjects("generic/ger.c" "" "ger_k" false "" "" "" 3) GenerateNamedObjects("generic/ger.c" "" "ger_k" false "" "" "" 3)
foreach (float_type ${FLOAT_TYPES}) foreach (float_type ${FLOAT_TYPES})
@ -78,6 +77,18 @@ foreach (float_type ${FLOAT_TYPES})
GenerateNamedObjects("${KERNELDIR}/${${float_char}GERCKERNEL}" "CONJ" "gerc_k" false "" "" false ${float_type}) GenerateNamedObjects("${KERNELDIR}/${${float_char}GERCKERNEL}" "CONJ" "gerc_k" false "" "" false ${float_type})
GenerateNamedObjects("${KERNELDIR}/${${float_char}GERUKERNEL}" "XCONJ" "gerv_k" false "" "" false ${float_type}) GenerateNamedObjects("${KERNELDIR}/${${float_char}GERUKERNEL}" "XCONJ" "gerv_k" false "" "" false ${float_type})
GenerateNamedObjects("${KERNELDIR}/${${float_char}GERCKERNEL}" "CONJ;XCONJ" "gerd_k" false "" "" false ${float_type}) GenerateNamedObjects("${KERNELDIR}/${${float_char}GERCKERNEL}" "CONJ;XCONJ" "gerd_k" false "" "" false ${float_type})
GenerateNamedObjects("${KERNELDIR}/${${float_char}GEMVNKERNEL}" "" "gemv_n" false "" "" false ${float_type})
GenerateNamedObjects("${KERNELDIR}/${${float_char}GEMVTKERNEL}" "TRANSA" "gemv_t" false "" "" false ${float_type})
GenerateNamedObjects("${KERNELDIR}/${${float_char}GEMVNKERNEL}" "CONJ" "gemv_r" false "" "" false ${float_type})
GenerateNamedObjects("${KERNELDIR}/${${float_char}GEMVTKERNEL}" "CONJ;TRANSA" "${KERNELDIR}/${${float_char}GEMVUKERNEL}" false "" "" false ${float_type})
GenerateNamedObjects("${KERNELDIR}/${${float_char}GEMVNKERNEL}" "XCONJ" "gemv_o" false "" "" false ${float_type})
GenerateNamedObjects("${KERNELDIR}/${${float_char}GEMVTKERNEL}" "XCONJ;TRANSA" "gemv_u" false "" "" false ${float_type})
GenerateNamedObjects("${KERNELDIR}/${${float_char}GEMVNKERNEL}" "XCONJ;CONJ" "gemv_s" false "" "" false ${float_type})
GenerateNamedObjects("${KERNELDIR}/${${float_char}GEMVTKERNEL}" "XCONJ;CONJ;TRANSA" "gemv_d" false "" "" false ${float_type})
else ()
GenerateNamedObjects("${KERNELDIR}/${${float_char}GEMVNKERNEL}" "" "gemv_n" false "" "" false ${float_type})
GenerateNamedObjects("${KERNELDIR}/${${float_char}GEMVTKERNEL}" "TRANS" "gemv_t" false "" "" false ${float_type})
endif () endif ()
endforeach () endforeach ()