From a719e98a368e59b4278ea60d9aad11f103ae1b92 Mon Sep 17 00:00:00 2001 From: yala Date: Sun, 7 Apr 2024 09:28:20 +0800 Subject: [PATCH] Add loongarch compilation support to makefile --- Makefile | 5 +++++ ggml-quants.c | 8 ++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 22d521856..e456ac8c8 100644 --- a/Makefile +++ b/Makefile @@ -379,6 +379,11 @@ ifneq ($(filter ppc64le%,$(UNAME_M)),) CUDA_POWER_ARCH = 1 endif +ifneq ($(filter loongarch64%,$(UNAME_M)),) + MK_CFLAGS += -mlasx + MK_CXXFLAGS += -mlasx +endif + else MK_CFLAGS += -march=rv64gcv -mabi=lp64d MK_CXXFLAGS += -march=rv64gcv -mabi=lp64d diff --git a/ggml-quants.c b/ggml-quants.c index a7da2811d..8ea857971 100644 --- a/ggml-quants.c +++ b/ggml-quants.c @@ -294,7 +294,7 @@ static __m256 __lasx_xvreplfr2vr_s(float val) static inline __m256i ____m256i(__m128i in) { __m256i out = __lasx_xvldi(0); - asm volatile ( + __asm__ volatile ( ".irp i," __ALL_REGS "\n\t" " .ifc %[out], " XREGS_PREFIX"\\i \n\t" " .irp j," __ALL_REGS "\n\t" @@ -312,7 +312,7 @@ static inline __m256i ____m256i(__m128i in) static inline __m256i lasx_set_q(__m128i inhi, __m128i inlo) { __m256i out; - asm volatile ( + __asm__ volatile ( ".irp i," __ALL_REGS "\n\t" " .ifc %[hi], " VREGS_PREFIX "\\i \n\t" " .irp j," __ALL_REGS "\n\t" @@ -342,7 +342,7 @@ static inline __m256i lasx_set_q(__m128i inhi, __m128i inlo) static inline __m128i lasx_extracti128_lo(__m256i in) { __m128i out; - asm volatile ( + __asm__ volatile ( ".ifnc %[out], %[in] \n\t" ".irp i," __ALL_REGS "\n\t" " .ifc %[out], " VREGS_PREFIX "\\i \n\t" @@ -362,7 +362,7 @@ static inline __m128i lasx_extracti128_lo(__m256i in) static inline __m128i lasx_extracti128_hi(__m256i in) { __m128i out; - asm volatile ( + __asm__ volatile ( ".irp i," __ALL_REGS "\n\t" " .ifc %[out], " VREGS_PREFIX "\\i \n\t" " .irp j," __ALL_REGS "\n\t"