############################################################################### # Copyright (c) 2025, 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. ############################################################################### include $(KERNELDIR)/KERNEL.ARMV8SVE SGEMVNKERNEL = gemv_n_sve_v1x3.c DGEMVNKERNEL = gemv_n_sve_v1x3.c SGEMVTKERNEL = gemv_t_sve_v1x3.c DGEMVTKERNEL = gemv_t_sve_v1x3.c SAXPYKERNEL = axpy_sve.c DAXPYKERNEL = axpy_sve.c ifeq ($(BUILD_BFLOAT16), 1) BGEMM_BETA = bgemm_beta_neon.c BGEMMKERNEL = bgemm_kernel_2vlx4_neoversev1.c ifneq ($(BGEMM_UNROLL_M), $(BGEMM_UNROLL_N)) BGEMMINCOPY = bgemm_ncopy_2vl_neoversev1.c BGEMMITCOPY = bgemm_tcopy_2vl_neoversev1.c BGEMMINCOPYOBJ = bgemm_incopy$(TSUFFIX).$(SUFFIX) BGEMMITCOPYOBJ = bgemm_itcopy$(TSUFFIX).$(SUFFIX) endif BGEMMONCOPY = bgemm_ncopy_4_neoversev1.c BGEMMOTCOPY = bgemm_tcopy_4_neoversev1.c BGEMMONCOPYOBJ = bgemm_oncopy$(TSUFFIX).$(SUFFIX) BGEMMOTCOPYOBJ = bgemm_otcopy$(TSUFFIX).$(SUFFIX) BGEMVTKERNEL = sbgemv_t_bfdot.c BGEMVNKERNEL = bgemv_n_sve_v3x4.c SBGEMM_BETA = sbgemm_beta_neoversev1.c SBGEMMKERNEL = bgemm_kernel_2vlx4_neoversev1.c ifneq ($(SBGEMM_UNROLL_M), $(SBGEMM_UNROLL_N)) SBGEMMINCOPY = bgemm_ncopy_2vl_neoversev1.c SBGEMMITCOPY = bgemm_tcopy_2vl_neoversev1.c SBGEMMINCOPYOBJ = sbgemm_incopy$(TSUFFIX).$(SUFFIX) SBGEMMITCOPYOBJ = sbgemm_itcopy$(TSUFFIX).$(SUFFIX) endif SBGEMMONCOPY = bgemm_ncopy_4_neoversev1.c SBGEMMOTCOPY = bgemm_tcopy_4_neoversev1.c SBGEMMONCOPYOBJ = sbgemm_oncopy$(TSUFFIX).$(SUFFIX) SBGEMMOTCOPYOBJ = sbgemm_otcopy$(TSUFFIX).$(SUFFIX) SBGEMVNKERNEL = sbgemv_n_neon.c SBGEMVTKERNEL = sbgemv_t_bfdot.c endif