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.POWER8 6.4 kB

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