Skip to content

Commit a9b62c0

Browse files
authored
Substitute precompiled gcc7 codes only when gcc is older than 9.x
1 parent 9776223 commit a9b62c0

File tree

1 file changed

+208
-184
lines changed

1 file changed

+208
-184
lines changed

kernel/power/KERNEL.POWER9

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

0 commit comments

Comments
 (0)