Added conj gemv objects for complex build.
authorHank Anderson <hank.p.anderson@gmail.com>
Mon, 23 Feb 2015 16:24:31 +0000 (10:24 -0600)
committerHank Anderson <hank.p.anderson@gmail.com>
Mon, 23 Feb 2015 16:24:31 +0000 (10:24 -0600)
cmake/kernel.cmake
driver/level2/CMakeLists.txt
kernel/CMakeLists.txt

index 211da22..3a4d138 100644 (file)
-# helper functions for the kernel CMakeLists.txt\r
-\r
-\r
-# Set the default filenames for L1 objects. Most of these will be overriden by the appropriate KERNEL file.\r
-macro(SetDefaultL1)\r
-  set(SAMAXKERNEL amax.S)\r
-  set(DAMAXKERNEL amax.S)\r
-  set(QAMAXKERNEL amax.S)\r
-  set(CAMAXKERNEL zamax.S)\r
-  set(ZAMAXKERNEL zamax.S)\r
-  set(XAMAXKERNEL zamax.S)\r
-  set(SAMINKERNEL amin.S)\r
-  set(DAMINKERNEL amin.S)\r
-  set(QAMINKERNEL amin.S)\r
-  set(CAMINKERNEL zamin.S)\r
-  set(ZAMINKERNEL zamin.S)\r
-  set(XAMINKERNEL zamin.S)\r
-  set(SMAXKERNEL max.S)\r
-  set(DMAXKERNEL max.S)\r
-  set(QMAXKERNEL max.S)\r
-  set(SMINKERNEL min.S)\r
-  set(DMINKERNEL min.S)\r
-  set(QMINKERNEL min.S)\r
-  set(ISAMAXKERNEL iamax.S)\r
-  set(IDAMAXKERNEL iamax.S)\r
-  set(IQAMAXKERNEL iamax.S)\r
-  set(ICAMAXKERNEL izamax.S)\r
-  set(IZAMAXKERNEL izamax.S)\r
-  set(IXAMAXKERNEL izamax.S)\r
-  set(ISAMINKERNEL iamin.S)\r
-  set(IDAMINKERNEL iamin.S)\r
-  set(IQAMINKERNEL iamin.S)\r
-  set(ICAMINKERNEL izamin.S)\r
-  set(IZAMINKERNEL izamin.S)\r
-  set(IXAMINKERNEL izamin.S)\r
-  set(ISMAXKERNEL iamax.S)\r
-  set(IDMAXKERNEL iamax.S)\r
-  set(IQMAXKERNEL iamax.S)\r
-  set(ISMINKERNEL iamin.S)\r
-  set(IDMINKERNEL iamin.S)\r
-  set(IQMINKERNEL iamin.S)\r
-  set(SASUMKERNEL asum.S)\r
-  set(DASUMKERNEL asum.S)\r
-  set(CASUMKERNEL zasum.S)\r
-  set(ZASUMKERNEL zasum.S)\r
-  set(QASUMKERNEL asum.S)\r
-  set(XASUMKERNEL zasum.S)\r
-  set(SAXPYKERNEL axpy.S)\r
-  set(DAXPYKERNEL axpy.S)\r
-  set(CAXPYKERNEL zaxpy.S)\r
-  set(ZAXPYKERNEL zaxpy.S)\r
-  set(QAXPYKERNEL axpy.S)\r
-  set(XAXPYKERNEL zaxpy.S)\r
-  set(SCOPYKERNEL copy.S)\r
-  set(DCOPYKERNEL copy.S)\r
-  set(CCOPYKERNEL zcopy.S)\r
-  set(ZCOPYKERNEL zcopy.S)\r
-  set(QCOPYKERNEL copy.S)\r
-  set(XCOPYKERNEL zcopy.S)\r
-  set(SDOTKERNEL dot.S)\r
-  set(DDOTKERNEL dot.S)\r
-  set(CDOTKERNEL zdot.S)\r
-  set(ZDOTKERNEL zdot.S)\r
-  set(QDOTKERNEL dot.S)\r
-  set(XDOTKERNEL zdot.S)\r
-  set(SNRM2KERNEL nrm2.S)\r
-  set(DNRM2KERNEL nrm2.S)\r
-  set(QNRM2KERNEL nrm2.S)\r
-  set(CNRM2KERNEL znrm2.S)\r
-  set(ZNRM2KERNEL znrm2.S)\r
-  set(XNRM2KERNEL znrm2.S)\r
-  set(SROTKERNEL rot.S)\r
-  set(DROTKERNEL rot.S)\r
-  set(QROTKERNEL rot.S)\r
-  set(CROTKERNEL zrot.S)\r
-  set(ZROTKERNEL zrot.S)\r
-  set(XROTKERNEL zrot.S)\r
-  set(SSCALKERNEL scal.S)\r
-  set(DSCALKERNEL scal.S)\r
-  set(CSCALKERNEL zscal.S)\r
-  set(ZSCALKERNEL zscal.S)\r
-  set(QSCALKERNEL scal.S)\r
-  set(XSCALKERNEL zscal.S)\r
-  set(SSWAPKERNEL swap.S)\r
-  set(DSWAPKERNEL swap.S)\r
-  set(CSWAPKERNEL zswap.S)\r
-  set(ZSWAPKERNEL zswap.S)\r
-  set(QSWAPKERNEL swap.S)\r
-  set(XSWAPKERNEL zswap.S)\r
-  set(SGEMVNKERNEL gemv_n.S)\r
-  set(SGEMVTKERNEL gemv_t.S)\r
-  set(DGEMVNKERNEL gemv_n.S)\r
-  set(DGEMVTKERNEL gemv_t.S)\r
-  set(CGEMVNKERNEL zgemv_n.S)\r
-  set(CGEMVTKERNEL zgemv_t.S)\r
-  set(ZGEMVNKERNEL zgemv_n.S)\r
-  set(ZGEMVTKERNEL zgemv_t.S)\r
-  set(QGEMVNKERNEL gemv_n.S)\r
-  set(QGEMVTKERNEL gemv_t.S)\r
-  set(XGEMVNKERNEL zgemv_n.S)\r
-  set(XGEMVTKERNEL zgemv_t.S)\r
-  set(SCABS_KERNEL cabs.S)\r
-  set(DCABS_KERNEL cabs.S)\r
-  set(QCABS_KERNEL cabs.S)\r
-  set(LSAME_KERNEL lsame.S)\r
-  set(SAXPBYKERNEL ../arm/axpby.c)\r
-  set(DAXPBYKERNEL ../arm/axpby.c)\r
-  set(CAXPBYKERNEL ../arm/zaxpby.c)\r
-  set(ZAXPBYKERNEL ../arm/zaxpby.c)\r
-endmacro ()\r
+# 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.
+macro(SetDefaultL1)
+  set(SAMAXKERNEL amax.S)
+  set(DAMAXKERNEL amax.S)
+  set(QAMAXKERNEL amax.S)
+  set(CAMAXKERNEL zamax.S)
+  set(ZAMAXKERNEL zamax.S)
+  set(XAMAXKERNEL zamax.S)
+  set(SAMINKERNEL amin.S)
+  set(DAMINKERNEL amin.S)
+  set(QAMINKERNEL amin.S)
+  set(CAMINKERNEL zamin.S)
+  set(ZAMINKERNEL zamin.S)
+  set(XAMINKERNEL zamin.S)
+  set(SMAXKERNEL max.S)
+  set(DMAXKERNEL max.S)
+  set(QMAXKERNEL max.S)
+  set(SMINKERNEL min.S)
+  set(DMINKERNEL min.S)
+  set(QMINKERNEL min.S)
+  set(ISAMAXKERNEL iamax.S)
+  set(IDAMAXKERNEL iamax.S)
+  set(IQAMAXKERNEL iamax.S)
+  set(ICAMAXKERNEL izamax.S)
+  set(IZAMAXKERNEL izamax.S)
+  set(IXAMAXKERNEL izamax.S)
+  set(ISAMINKERNEL iamin.S)
+  set(IDAMINKERNEL iamin.S)
+  set(IQAMINKERNEL iamin.S)
+  set(ICAMINKERNEL izamin.S)
+  set(IZAMINKERNEL izamin.S)
+  set(IXAMINKERNEL izamin.S)
+  set(ISMAXKERNEL iamax.S)
+  set(IDMAXKERNEL iamax.S)
+  set(IQMAXKERNEL iamax.S)
+  set(ISMINKERNEL iamin.S)
+  set(IDMINKERNEL iamin.S)
+  set(IQMINKERNEL iamin.S)
+  set(SASUMKERNEL asum.S)
+  set(DASUMKERNEL asum.S)
+  set(CASUMKERNEL zasum.S)
+  set(ZASUMKERNEL zasum.S)
+  set(QASUMKERNEL asum.S)
+  set(XASUMKERNEL zasum.S)
+  set(SAXPYKERNEL axpy.S)
+  set(DAXPYKERNEL axpy.S)
+  set(CAXPYKERNEL zaxpy.S)
+  set(ZAXPYKERNEL zaxpy.S)
+  set(QAXPYKERNEL axpy.S)
+  set(XAXPYKERNEL zaxpy.S)
+  set(SCOPYKERNEL copy.S)
+  set(DCOPYKERNEL copy.S)
+  set(CCOPYKERNEL zcopy.S)
+  set(ZCOPYKERNEL zcopy.S)
+  set(QCOPYKERNEL copy.S)
+  set(XCOPYKERNEL zcopy.S)
+  set(SDOTKERNEL dot.S)
+  set(DDOTKERNEL dot.S)
+  set(CDOTKERNEL zdot.S)
+  set(ZDOTKERNEL zdot.S)
+  set(QDOTKERNEL dot.S)
+  set(XDOTKERNEL zdot.S)
+  set(SNRM2KERNEL nrm2.S)
+  set(DNRM2KERNEL nrm2.S)
+  set(QNRM2KERNEL nrm2.S)
+  set(CNRM2KERNEL znrm2.S)
+  set(ZNRM2KERNEL znrm2.S)
+  set(XNRM2KERNEL znrm2.S)
+  set(SROTKERNEL rot.S)
+  set(DROTKERNEL rot.S)
+  set(QROTKERNEL rot.S)
+  set(CROTKERNEL zrot.S)
+  set(ZROTKERNEL zrot.S)
+  set(XROTKERNEL zrot.S)
+  set(SSCALKERNEL scal.S)
+  set(DSCALKERNEL scal.S)
+  set(CSCALKERNEL zscal.S)
+  set(ZSCALKERNEL zscal.S)
+  set(QSCALKERNEL scal.S)
+  set(XSCALKERNEL zscal.S)
+  set(SSWAPKERNEL swap.S)
+  set(DSWAPKERNEL swap.S)
+  set(CSWAPKERNEL zswap.S)
+  set(ZSWAPKERNEL zswap.S)
+  set(QSWAPKERNEL swap.S)
+  set(XSWAPKERNEL zswap.S)
+  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(SCABS_KERNEL cabs.S)
+  set(DCABS_KERNEL cabs.S)
+  set(QCABS_KERNEL cabs.S)
+  set(LSAME_KERNEL lsame.S)
+  set(SAXPBYKERNEL ../arm/axpby.c)
+  set(DAXPBYKERNEL ../arm/axpby.c)
+  set(CAXPBYKERNEL ../arm/zaxpby.c)
+  set(ZAXPBYKERNEL ../arm/zaxpby.c)
+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 ()
index 8b37917..54e0eb4 100644 (file)
@@ -54,14 +54,6 @@ endforeach ()
 
 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
     symv_thread.c
@@ -84,10 +76,41 @@ if (SMP)
   GenerateCombinationObjects("${NU_SMP_SOURCES}" "TRANSA;LOWER;UNIT" "N;U;N" "" 2)
 
   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")
       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})
+
+      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 ()
+
   endforeach ()
 
 endif ()
index 656090c..cacd0f3 100644 (file)
@@ -67,8 +67,7 @@ foreach (float_type ${FLOAT_TYPES})
 endforeach ()
 
 # Makefile.L2
-GenerateNamedObjects("${KERNELDIR}/gemv_n.S" "DOUBLE")
-GenerateNamedObjects("${KERNELDIR}/gemv_t.S" "TRANS")
+SetDefaultL2()
 GenerateCombinationObjects("generic/symv_k.c" "LOWER" "U" "" 1 "" "" 3)
 GenerateNamedObjects("generic/ger.c" "" "ger_k" false "" "" "" 3)
 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}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}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 ()
 endforeach ()