# ********************************************************************************** # Copyright (c) 2022, The OpenBLAS Project # All rights reserved. # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are # met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in # the documentation and/or other materials provided with the # distribution. # 3. Neither the name of the OpenBLAS project nor the names of # its contributors may be used to endorse or promote products # derived from this software without specific prior written permission. # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE OPENBLAS PROJECT OR CONTRIBUTORS BE # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE # USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # ********************************************************************************** SAMAXKERNEL = amax_rvv.c DAMAXKERNEL = amax_rvv.c CAMAXKERNEL = zamax_rvv.c ZAMAXKERNEL = zamax_rvv.c SAMINKERNEL = amin_rvv.c DAMINKERNEL = amin_rvv.c CAMINKERNEL = zamin_rvv.c ZAMINKERNEL = zamin_rvv.c SMAXKERNEL = max_rvv.c DMAXKERNEL = max_rvv.c SMINKERNEL = min_rvv.c DMINKERNEL = min_rvv.c ISAMAXKERNEL = iamax_rvv.c IDAMAXKERNEL = iamax_rvv.c ICAMAXKERNEL = izamax_rvv.c IZAMAXKERNEL = izamax_rvv.c ISAMINKERNEL = iamin_rvv.c IDAMINKERNEL = iamin_rvv.c ICAMINKERNEL = izamin_rvv.c IZAMINKERNEL = izamin_rvv.c ISMAXKERNEL = imax_rvv.c IDMAXKERNEL = imax_rvv.c ISMINKERNEL = imin_rvv.c IDMINKERNEL = imin_rvv.c SASUMKERNEL = asum_rvv.c DASUMKERNEL = asum_rvv.c CASUMKERNEL = zasum_rvv.c ZASUMKERNEL = zasum_rvv.c SSUMKERNEL = sum_rvv.c DSUMKERNEL = sum_rvv.c CSUMKERNEL = zsum_rvv.c ZSUMKERNEL = zsum_rvv.c SAXPYKERNEL = axpy_rvv.c DAXPYKERNEL = axpy_rvv.c CAXPYKERNEL = zaxpy_rvv.c ZAXPYKERNEL = zaxpy_rvv.c SAXPBYKERNEL = axpby_rvv.c DAXPBYKERNEL = axpby_rvv.c CAXPBYKERNEL = zaxpby_rvv.c ZAXPBYKERNEL = zaxpby_rvv.c SCOPYKERNEL = copy_rvv.c DCOPYKERNEL = copy_rvv.c CCOPYKERNEL = zcopy_rvv.c ZCOPYKERNEL = zcopy_rvv.c SDOTKERNEL = dot_rvv.c DDOTKERNEL = dot_rvv.c CDOTKERNEL = zdot_rvv.c ZDOTKERNEL = zdot_rvv.c DSDOTKERNEL = dot_rvv.c SNRM2KERNEL = nrm2_rvv.c DNRM2KERNEL = nrm2_rvv.c CNRM2KERNEL = znrm2_rvv.c ZNRM2KERNEL = znrm2_rvv.c SROTKERNEL = rot_rvv.c DROTKERNEL = rot_rvv.c CROTKERNEL = zrot_rvv.c ZROTKERNEL = zrot_rvv.c SROTMKERNEL = rotm_rvv.c DROTMKERNEL = rotm_rvv.c QROTMKERNEL = ../generic/rotm.c SSCALKERNEL = scal_rvv.c DSCALKERNEL = scal_rvv.c CSCALKERNEL = zscal_rvv.c ZSCALKERNEL = zscal_rvv.c SSWAPKERNEL = swap_rvv.c DSWAPKERNEL = swap_rvv.c CSWAPKERNEL = zswap_rvv.c ZSWAPKERNEL = zswap_rvv.c SGEMVNKERNEL = gemv_n_rvv.c DGEMVNKERNEL = gemv_n_rvv.c CGEMVNKERNEL = zgemv_n_rvv.c ZGEMVNKERNEL = zgemv_n_rvv.c SGEMVTKERNEL = gemv_t_rvv.c DGEMVTKERNEL = gemv_t_rvv.c CGEMVTKERNEL = zgemv_t_rvv.c ZGEMVTKERNEL = zgemv_t_rvv.c CTRMMKERNEL = ztrmmkernel_rvv_v1x4.c ZTRMMKERNEL = ztrmmkernel_rvv_v1x4.c # SGEMM_UNROLL_N set in params.h ifeq ($(SGEMM_UNROLL_N), 8) # UNROLL_M is VLMAX SGEMMKERNEL = gemmkernel_rvv_v1x8.c SGEMMINCOPY = gemm_ncopy_rvv_v1.c SGEMMITCOPY = gemm_tcopy_rvv_v1.c SGEMMONCOPY = gemm_ncopy_$(SGEMM_UNROLL_N)_rvv.c SGEMMOTCOPY = gemm_tcopy_$(SGEMM_UNROLL_N)_rvv.c SGEMMINCOPYOBJ = sgemm_incopy$(TSUFFIX).$(SUFFIX) SGEMMITCOPYOBJ = sgemm_itcopy$(TSUFFIX).$(SUFFIX) SGEMMONCOPYOBJ = sgemm_oncopy$(TSUFFIX).$(SUFFIX) SGEMMOTCOPYOBJ = sgemm_otcopy$(TSUFFIX).$(SUFFIX) STRMMKERNEL = trmmkernel_rvv_v1x8.c STRMMUNCOPY_M = trmm_uncopy_rvv_v1.c STRMMLNCOPY_M = trmm_lncopy_rvv_v1.c STRMMUTCOPY_M = trmm_utcopy_rvv_v1.c STRMMLTCOPY_M = trmm_ltcopy_rvv_v1.c SSYMMUCOPY_M = symm_ucopy_rvv_v1.c SSYMMLCOPY_M = symm_lcopy_rvv_v1.c endif # SGEMM_UNROLL_N set in params.h ifeq ($(DGEMM_UNROLL_N), 8) # UNROLL_M is VLMAX DGEMMKERNEL = gemmkernel_rvv_v1x8.c DGEMMINCOPY = gemm_ncopy_rvv_v1.c DGEMMITCOPY = gemm_tcopy_rvv_v1.c DGEMMONCOPY = gemm_ncopy_$(DGEMM_UNROLL_N)_rvv.c DGEMMOTCOPY = gemm_tcopy_$(DGEMM_UNROLL_N)_rvv.c DGEMMINCOPYOBJ = dgemm_incopy$(TSUFFIX).$(SUFFIX) DGEMMITCOPYOBJ = dgemm_itcopy$(TSUFFIX).$(SUFFIX) DGEMMONCOPYOBJ = dgemm_oncopy$(TSUFFIX).$(SUFFIX) DGEMMOTCOPYOBJ = dgemm_otcopy$(TSUFFIX).$(SUFFIX) DTRMMKERNEL = trmmkernel_rvv_v1x8.c DTRMMUNCOPY_M = trmm_uncopy_rvv_v1.c DTRMMLNCOPY_M = trmm_lncopy_rvv_v1.c DTRMMUTCOPY_M = trmm_utcopy_rvv_v1.c DTRMMLTCOPY_M = trmm_ltcopy_rvv_v1.c DSYMMUCOPY_M = symm_ucopy_rvv_v1.c DSYMMLCOPY_M = symm_lcopy_rvv_v1.c endif CGEMMKERNEL = zgemmkernel_rvv_v1x4.c CGEMMINCOPY = zgemm_ncopy_rvv_v1.c CGEMMITCOPY = zgemm_tcopy_rvv_v1.c CGEMMONCOPY = zgemm_ncopy_4_rvv.c CGEMMOTCOPY = zgemm_tcopy_4_rvv.c CGEMMINCOPYOBJ = cgemm_incopy$(TSUFFIX).$(SUFFIX) CGEMMITCOPYOBJ = cgemm_itcopy$(TSUFFIX).$(SUFFIX) CGEMMONCOPYOBJ = cgemm_oncopy$(TSUFFIX).$(SUFFIX) CGEMMOTCOPYOBJ = cgemm_otcopy$(TSUFFIX).$(SUFFIX) ZGEMMKERNEL = zgemmkernel_rvv_v1x4.c ZGEMMINCOPY = zgemm_ncopy_rvv_v1.c ZGEMMITCOPY = zgemm_tcopy_rvv_v1.c ZGEMMONCOPY = zgemm_ncopy_4_rvv.c ZGEMMOTCOPY = zgemm_tcopy_4_rvv.c ZGEMMINCOPYOBJ = zgemm_incopy$(TSUFFIX).$(SUFFIX) ZGEMMITCOPYOBJ = zgemm_itcopy$(TSUFFIX).$(SUFFIX) ZGEMMONCOPYOBJ = zgemm_oncopy$(TSUFFIX).$(SUFFIX) ZGEMMOTCOPYOBJ = zgemm_otcopy$(TSUFFIX).$(SUFFIX) STRSMKERNEL_LN = trsm_kernel_LN_rvv_v1.c STRSMKERNEL_LT = trsm_kernel_LT_rvv_v1.c STRSMKERNEL_RN = trsm_kernel_RN_rvv_v1.c STRSMKERNEL_RT = trsm_kernel_RT_rvv_v1.c DTRSMKERNEL_LN = trsm_kernel_LN_rvv_v1.c DTRSMKERNEL_LT = trsm_kernel_LT_rvv_v1.c DTRSMKERNEL_RN = trsm_kernel_RN_rvv_v1.c DTRSMKERNEL_RT = trsm_kernel_RT_rvv_v1.c CTRSMKERNEL_LN = trsm_kernel_LN_rvv_v1.c CTRSMKERNEL_LT = trsm_kernel_LT_rvv_v1.c CTRSMKERNEL_RN = trsm_kernel_RN_rvv_v1.c CTRSMKERNEL_RT = trsm_kernel_RT_rvv_v1.c ZTRSMKERNEL_LN = trsm_kernel_LN_rvv_v1.c ZTRSMKERNEL_LT = trsm_kernel_LT_rvv_v1.c ZTRSMKERNEL_RN = trsm_kernel_RN_rvv_v1.c ZTRSMKERNEL_RT = trsm_kernel_RT_rvv_v1.c TRSMCOPYLN_M = trsm_lncopy_rvv_v1.c TRSMCOPYLT_M = trsm_ltcopy_rvv_v1.c TRSMCOPYUN_M = trsm_uncopy_rvv_v1.c TRSMCOPYUT_M = trsm_utcopy_rvv_v1.c ZTRSMCOPYLN_M = ztrsm_lncopy_rvv_v1.c ZTRSMCOPYLT_M = ztrsm_ltcopy_rvv_v1.c ZTRSMCOPYUN_M = ztrsm_uncopy_rvv_v1.c ZTRSMCOPYUT_M = ztrsm_utcopy_rvv_v1.c SSYMV_U_KERNEL = symv_U_rvv.c SSYMV_L_KERNEL = symv_L_rvv.c DSYMV_U_KERNEL = symv_U_rvv.c DSYMV_L_KERNEL = symv_L_rvv.c CSYMV_U_KERNEL = zsymv_U_rvv.c CSYMV_L_KERNEL = zsymv_L_rvv.c ZSYMV_U_KERNEL = zsymv_U_rvv.c ZSYMV_L_KERNEL = zsymv_L_rvv.c CHEMV_L_KERNEL = zhemv_LM_rvv.c CHEMV_M_KERNEL = zhemv_LM_rvv.c CHEMV_U_KERNEL = zhemv_UV_rvv.c CHEMV_V_KERNEL = zhemv_UV_rvv.c ZHEMV_L_KERNEL = zhemv_LM_rvv.c ZHEMV_M_KERNEL = zhemv_LM_rvv.c ZHEMV_U_KERNEL = zhemv_UV_rvv.c ZHEMV_V_KERNEL = zhemv_UV_rvv.c ZHEMMLTCOPY_M = zhemm_ltcopy_rvv_v1.c ZHEMMUTCOPY_M = zhemm_utcopy_rvv_v1.c CHEMMLTCOPY_M = zhemm_ltcopy_rvv_v1.c CHEMMUTCOPY_M = zhemm_utcopy_rvv_v1.c ZSYMMUCOPY_M = zsymm_ucopy_rvv_v1.c ZSYMMLCOPY_M = zsymm_lcopy_rvv_v1.c CSYMMUCOPY_M = zsymm_ucopy_rvv_v1.c CSYMMLCOPY_M = zsymm_lcopy_rvv_v1.c ZTRMMUNCOPY_M = ztrmm_uncopy_rvv_v1.c ZTRMMLNCOPY_M = ztrmm_lncopy_rvv_v1.c ZTRMMUTCOPY_M = ztrmm_utcopy_rvv_v1.c ZTRMMLTCOPY_M = ztrmm_ltcopy_rvv_v1.c CTRMMUNCOPY_M = ztrmm_uncopy_rvv_v1.c CTRMMLNCOPY_M = ztrmm_lncopy_rvv_v1.c CTRMMUTCOPY_M = ztrmm_utcopy_rvv_v1.c CTRMMLTCOPY_M = ztrmm_ltcopy_rvv_v1.c LSAME_KERNEL = ../generic/lsame.c SCABS_KERNEL = ../generic/cabs.c DCABS_KERNEL = ../generic/cabs.c QCABS_KERNEL = ../generic/cabs.c ifndef SGEMM_BETA SGEMM_BETA = gemm_beta_rvv.c endif ifndef DGEMM_BETA DGEMM_BETA = gemm_beta_rvv.c endif ifndef CGEMM_BETA CGEMM_BETA = zgemm_beta_rvv.c endif ifndef ZGEMM_BETA ZGEMM_BETA = zgemm_beta_rvv.c endif ZOMATCOPY_CN = zomatcopy_cn_rvv.c COMATCOPY_CN = zomatcopy_cn_rvv.c DOMATCOPY_CN = omatcopy_cn_rvv.c SOMATCOPY_CN = omatcopy_cn_rvv.c