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 5.9 kB

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