Package: sleef

Version: 3.6.1

Severity: wishlist

Tags: patch

User: [email protected]

Usertags: loong64

Dear maintainer,
I applied the upstream patch and verified it locally. I know this is not the complete patch to add loong64 architecture support, but it is the first step to add loong64 architecture support. Couldyou consider applying it in debian?


The attachment is a patch I made locally, which has been verified and can be used for reference.

Upstream PR link:https://github.com/shibatch/sleef/pull/672/files


If you have any questions or suggestions, you can contact me at any time.

thanks,
Xiaojuan Zhai

Description: add loong64 initial support

--- sleef-3.6.1.orig/Configure.cmake
+++ sleef-3.6.1/Configure.cmake
@@ -137,6 +137,8 @@ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "s
   set(CLANG_FLAGS_ENABLE_PURECFMA_SCALAR "-march=z14;-mzvector")
 elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "riscv64")
   set(SLEEF_ARCH_RISCV64 ON CACHE INTERNAL "True for RISCV64 architecture.")
+elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "loongarch64")
+  set(SLEEF_ARCH_LOONGARCH64 ON CACHE INTERNAL "True for LoongArch64 architecture.")
 endif()
 
 set(COMPILER_SUPPORTS_PUREC_SCALAR 1)
--- sleef-3.6.1.orig/src/arch/helperpurec_scalar.h
+++ sleef-3.6.1/src/arch/helperpurec_scalar.h
@@ -54,7 +54,7 @@
 #define ENABLE_FMA_SP
 //@#define ENABLE_FMA_SP
 
-#if defined(__AVX2__) || defined(__aarch64__) || defined(__arm__) || defined(__powerpc64__) || defined(__zarch__) || defined(__riscv) || CONFIG == 3
+#if defined(__AVX2__) || defined(__aarch64__) || defined(__arm__) || defined(__powerpc64__) || defined(__zarch__) || defined(__riscv) || defined(__loongarch64) || CONFIG == 3
 #ifndef FP_FAST_FMA
 //@#ifndef FP_FAST_FMA
 #define FP_FAST_FMA
--- sleef-3.6.1.orig/src/libm-tester/CMakeLists.txt
+++ sleef-3.6.1/src/libm-tester/CMakeLists.txt
@@ -55,6 +55,9 @@ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "s
 elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "riscv64")
   set(TEST3_CINZ purec_scalar rvvm1nofma rvvm2nofma)
   set(TEST3_FINZ purecfma_scalar rvvm1 rvvm2)
+elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "loongarch64")
+  set(TEST3_CINZ purec_scalar)
+  set(TEST3_FINZ purecfma_scalar)
 endif()
 
 #
--- sleef-3.6.1.orig/src/libm/CMakeLists.txt
+++ sleef-3.6.1/src/libm/CMakeLists.txt
@@ -69,6 +69,12 @@ elseif(SLEEF_ARCH_RISCV64)
     PUREC_SCALAR
     PURECFMA_SCALAR
     )
+elseif(SLEEF_ARCH_LOONGARCH64)
+  set(SLEEF_HEADER_LIST
+    PUREC_SCALAR
+    PURECFMA_SCALAR
+    DSP_SCALAR
+    )
 endif()
 
 # HEADER_PARAMS
--- sleef-3.6.1.orig/src/libm/sleeflibm_header.h.org.in
+++ sleef-3.6.1/src/libm/sleeflibm_header.h.org.in
@@ -21,7 +21,7 @@
 #define SLEEF_INLINE __forceinline
 #endif
 
-#if defined(__AVX2__) || defined(__aarch64__) || defined(__arm__) || defined(__powerpc64__) || defined(__zarch__)
+#if defined(__AVX2__) || defined(__aarch64__) || defined(__arm__) || defined(__powerpc64__) || defined(__zarch__) || defined(__loongarch64)
 #ifndef FP_FAST_FMA
 #define FP_FAST_FMA
 #endif
--- sleef-3.6.1.orig/src/quad/CMakeLists.txt
+++ sleef-3.6.1/src/quad/CMakeLists.txt
@@ -93,6 +93,12 @@ elseif(SLEEF_ARCH_RISCV64)
     PURECFMA_SCALAR
     DSPSCALAR
     )
+elseif(SLEEF_ARCH_LOONGARCH64)
+  set(SLEEF_HEADER_LIST
+    PUREC_SCALAR
+    PURECFMA_SCALAR
+    DSPSCALAR
+    )
 endif()
 
 #

Reply via email to