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