You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

KERNEL.POWER10 6.3 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. ifeq ($(HAVE_GAS), 1)
  2. include $(KERNELDIR)/KERNEL.POWER8
  3. else
  4. #SGEMM_BETA = ../generic/gemm_beta.c
  5. #DGEMM_BETA = ../generic/gemm_beta.c
  6. #CGEMM_BETA = ../generic/zgemm_beta.c
  7. #ZGEMM_BETA = ../generic/zgemm_beta.c
  8. SBGEMM_BETA = ../generic/gemm_beta.c
  9. SBGEMMKERNEL = sbgemm_kernel_power10.c
  10. SBGEMMINCOPY = sbgemm_ncopy_16_power10.c
  11. SBGEMMITCOPY = sbgemm_tcopy_16_power10.c
  12. SBGEMMONCOPY = sbgemm_ncopy_8_power10.c
  13. SBGEMMOTCOPY = sbgemm_tcopy_8_power10.c
  14. SBGEMMINCOPYOBJ = sbgemm_incopy$(TSUFFIX).$(SUFFIX)
  15. SBGEMMITCOPYOBJ = sbgemm_itcopy$(TSUFFIX).$(SUFFIX)
  16. SBGEMMONCOPYOBJ = sbgemm_oncopy$(TSUFFIX).$(SUFFIX)
  17. SBGEMMOTCOPYOBJ = sbgemm_otcopy$(TSUFFIX).$(SUFFIX)
  18. STRMMKERNEL = sgemm_kernel_power10.c
  19. DTRMMKERNEL = dgemm_kernel_power10.c
  20. CTRMMKERNEL = cgemm_kernel_power10.S
  21. ZTRMMKERNEL = zgemm_kernel_power10.S
  22. SGEMMKERNEL = sgemm_kernel_power10.c
  23. SGEMMINCOPY = ../generic/gemm_ncopy_16.c
  24. SGEMMITCOPY = sgemm_tcopy_16_power8.S
  25. SGEMMONCOPY = ../generic/gemm_ncopy_8.c
  26. SGEMMOTCOPY = sgemm_tcopy_8_power8.S
  27. SGEMMINCOPYOBJ = sgemm_incopy$(TSUFFIX).$(SUFFIX)
  28. SGEMMITCOPYOBJ = sgemm_itcopy$(TSUFFIX).$(SUFFIX)
  29. SGEMMONCOPYOBJ = sgemm_oncopy$(TSUFFIX).$(SUFFIX)
  30. SGEMMOTCOPYOBJ = sgemm_otcopy$(TSUFFIX).$(SUFFIX)
  31. DGEMMKERNEL = dgemm_kernel_power10.c
  32. DGEMMINCOPY =
  33. DGEMMITCOPY =
  34. DGEMMONCOPY = dgemm_ncopy_8_power10.c
  35. DGEMMOTCOPY = ../generic/gemm_tcopy_8.c
  36. DGEMMINCOPYOBJ =
  37. DGEMMITCOPYOBJ =
  38. DGEMMONCOPYOBJ = dgemm_oncopy$(TSUFFIX).$(SUFFIX)
  39. DGEMMOTCOPYOBJ = dgemm_otcopy$(TSUFFIX).$(SUFFIX)
  40. CGEMMKERNEL = cgemm_kernel_power10.S
  41. #CGEMMKERNEL = cgemm_kernel_8x4_power8.S
  42. CGEMMINCOPY = ../generic/zgemm_ncopy_8.c
  43. CGEMMITCOPY = ../generic/zgemm_tcopy_8.c
  44. CGEMMONCOPY = ../generic/zgemm_ncopy_4.c
  45. CGEMMOTCOPY = ../generic/zgemm_tcopy_4.c
  46. CGEMMONCOPYOBJ = cgemm_oncopy$(TSUFFIX).$(SUFFIX)
  47. CGEMMOTCOPYOBJ = cgemm_otcopy$(TSUFFIX).$(SUFFIX)
  48. CGEMMINCOPYOBJ = cgemm_incopy$(TSUFFIX).$(SUFFIX)
  49. CGEMMITCOPYOBJ = cgemm_itcopy$(TSUFFIX).$(SUFFIX)
  50. ZGEMMKERNEL = zgemm_kernel_power10.S
  51. ZGEMMONCOPY = ../generic/zgemm_ncopy_2.c
  52. ZGEMMOTCOPY = ../generic/zgemm_tcopy_2.c
  53. ZGEMMINCOPY = ../generic/zgemm_ncopy_8.c
  54. ZGEMMITCOPY = zgemm_tcopy_8_power8.S
  55. ZGEMMONCOPYOBJ = zgemm_oncopy$(TSUFFIX).$(SUFFIX)
  56. ZGEMMOTCOPYOBJ = zgemm_otcopy$(TSUFFIX).$(SUFFIX)
  57. ZGEMMINCOPYOBJ = zgemm_incopy$(TSUFFIX).$(SUFFIX)
  58. ZGEMMITCOPYOBJ = zgemm_itcopy$(TSUFFIX).$(SUFFIX)
  59. STRSMKERNEL_LN = trsm_kernel_LN_power10.c
  60. STRSMKERNEL_LT = trsm_kernel_LT_power10.c
  61. STRSMKERNEL_RN = trsm_kernel_RN_power10.c
  62. STRSMKERNEL_RT = trsm_kernel_RT_power10.c
  63. DTRSMKERNEL_LN = trsm_kernel_LN_power10.c
  64. DTRSMKERNEL_LT = trsm_kernel_LT_power10.c
  65. DTRSMKERNEL_RN = trsm_kernel_RN_power10.c
  66. DTRSMKERNEL_RT = trsm_kernel_RT_power10.c
  67. CTRSMKERNEL_LN = ../generic/trsm_kernel_LN.c
  68. CTRSMKERNEL_LT = ../generic/trsm_kernel_LT.c
  69. CTRSMKERNEL_RN = ../generic/trsm_kernel_RN.c
  70. CTRSMKERNEL_RT = ../generic/trsm_kernel_RT.c
  71. ZTRSMKERNEL_LN = ../generic/trsm_kernel_LN.c
  72. ZTRSMKERNEL_LT = ../generic/trsm_kernel_LT.c
  73. ZTRSMKERNEL_RN = ../generic/trsm_kernel_RN.c
  74. ZTRSMKERNEL_RT = ../generic/trsm_kernel_RT.c
  75. #Todo: CGEMM3MKERNEL should be 4x4 blocksizes.
  76. #CGEMM3MKERNEL = zgemm3m_kernel_8x4_sse3.S
  77. #ZGEMM3MKERNEL = zgemm3m_kernel_4x4_sse3.S
  78. #Pure C for other kernels
  79. #SAMAXKERNEL = ../arm/amax.c
  80. #DAMAXKERNEL = ../arm/amax.c
  81. #CAMAXKERNEL = ../arm/zamax.c
  82. #ZAMAXKERNEL = ../arm/zamax.c
  83. #
  84. #SAMINKERNEL = ../arm/amin.c
  85. #DAMINKERNEL = ../arm/amin.c
  86. #CAMINKERNEL = ../arm/zamin.c
  87. #ZAMINKERNEL = ../arm/zamin.c
  88. #
  89. #SMAXKERNEL = ../arm/max.c
  90. #DMAXKERNEL = ../arm/max.c
  91. #
  92. #SMINKERNEL = ../arm/min.c
  93. #DMINKERNEL = ../arm/min.c
  94. #
  95. ifneq ($(GCCVERSIONGTEQ9),1)
  96. ISAMAXKERNEL = isamax_power9.S
  97. else
  98. ISAMAXKERNEL = isamax.c
  99. endif
  100. IDAMAXKERNEL = idamax.c
  101. ifneq ($(GCCVERSIONGTEQ9),1)
  102. ICAMAXKERNEL = icamax_power9.S
  103. else
  104. ICAMAXKERNEL = icamax.c
  105. endif
  106. IZAMAXKERNEL = izamax.c
  107. #
  108. ifneq ($(GCCVERSIONGTEQ9),1)
  109. ISAMINKERNEL = isamin_power9.S
  110. else
  111. ISAMINKERNEL = isamin.c
  112. endif
  113. IDAMINKERNEL = idamin.c
  114. ifneq ($(GCCVERSIONGTEQ9),1)
  115. ICAMINKERNEL = icamin_power9.S
  116. else
  117. ICAMINKERNEL = icamin.c
  118. endif
  119. IZAMINKERNEL = izamin.c
  120. #
  121. #ISMAXKERNEL = ../arm/imax.c
  122. #IDMAXKERNEL = ../arm/imax.c
  123. #
  124. #ISMINKERNEL = ../arm/imin.c
  125. #IDMINKERNEL = ../arm/imin.c
  126. #
  127. SASUMKERNEL = sasum.c
  128. DASUMKERNEL = dasum.c
  129. CASUMKERNEL = casum.c
  130. ZASUMKERNEL = zasum.c
  131. #
  132. SAXPYKERNEL = saxpy_power10.c
  133. DAXPYKERNEL = daxpy_power10.c
  134. CAXPYKERNEL = caxpy_power10.c
  135. ZAXPYKERNEL = zaxpy_power10.c
  136. #
  137. SCOPYKERNEL = scopy_power10.c
  138. DCOPYKERNEL = dcopy_power10.c
  139. CCOPYKERNEL = ccopy_power10.c
  140. ZCOPYKERNEL = zcopy_power10.c
  141. #
  142. SDOTKERNEL = sdot_power10.c
  143. DDOTKERNEL = ddot_power10.c
  144. DSDOTKERNEL = sdot_power10.c
  145. CDOTKERNEL = cdot.c
  146. ZDOTKERNEL = zdot.c
  147. #
  148. SNRM2KERNEL = ../arm/nrm2.c
  149. DNRM2KERNEL = ../arm/nrm2.c
  150. CNRM2KERNEL = ../arm/znrm2.c
  151. ZNRM2KERNEL = ../arm/znrm2.c
  152. #
  153. SROTKERNEL = srot.c
  154. DROTKERNEL = drot.c
  155. CROTKERNEL = crot.c
  156. ZROTKERNEL = zrot.c
  157. #
  158. SSCALKERNEL = sscal.c
  159. DSCALKERNEL = dscal.c
  160. ifeq ($(C_COMPILER), PGI)
  161. CSCALKERNEL = ../arm/zscal.c
  162. ZSCALKERNEL = ../arm/zscal.c
  163. else
  164. CSCALKERNEL = zscal.c
  165. ZSCALKERNEL = zscal.c
  166. endif
  167. #
  168. SSWAPKERNEL = sswap.c
  169. DSWAPKERNEL = dswap.c
  170. CSWAPKERNEL = cswap.c
  171. ZSWAPKERNEL = zswap.c
  172. #
  173. SGEMVNKERNEL = sgemv_n.c
  174. DGEMVNKERNEL = dgemv_n_power10.c
  175. CGEMVNKERNEL = cgemv_n.c
  176. ZGEMVNKERNEL = zgemv_n_power10.c
  177. #
  178. SGEMVTKERNEL = sgemv_t.c
  179. DGEMVTKERNEL = dgemv_t_power10.c
  180. CGEMVTKERNEL = cgemv_t.c
  181. ZGEMVTKERNEL = zgemv_t_4.c
  182. #SSYMV_U_KERNEL = ../generic/symv_k.c
  183. #SSYMV_L_KERNEL = ../generic/symv_k.c
  184. #DSYMV_U_KERNEL = ../generic/symv_k.c
  185. #DSYMV_L_KERNEL = ../generic/symv_k.c
  186. #QSYMV_U_KERNEL = ../generic/symv_k.c
  187. #QSYMV_L_KERNEL = ../generic/symv_k.c
  188. #CSYMV_U_KERNEL = ../generic/zsymv_k.c
  189. #CSYMV_L_KERNEL = ../generic/zsymv_k.c
  190. #ZSYMV_U_KERNEL = ../generic/zsymv_k.c
  191. #ZSYMV_L_KERNEL = ../generic/zsymv_k.c
  192. #XSYMV_U_KERNEL = ../generic/zsymv_k.c
  193. #XSYMV_L_KERNEL = ../generic/zsymv_k.c
  194. #ZHEMV_U_KERNEL = ../generic/zhemv_k.c
  195. #ZHEMV_L_KERNEL = ../generic/zhemv_k.c
  196. LSAME_KERNEL = ../generic/lsame.c
  197. SCABS_KERNEL = ../generic/cabs.c
  198. DCABS_KERNEL = ../generic/cabs.c
  199. QCABS_KERNEL = ../generic/cabs.c
  200. #Dump kernel
  201. CGEMM3MKERNEL = ../generic/zgemm3mkernel_dump.c
  202. ZGEMM3MKERNEL = ../generic/zgemm3mkernel_dump.c
  203. endif