Skip to content

Commit 760f34a

Browse files
author
Simon Hosie
committed
enable RVV libquad targets
1 parent 9ce2480 commit 760f34a

File tree

3 files changed

+13
-3
lines changed

3 files changed

+13
-3
lines changed

.github/workflows/build_and_test.yml

-2
Original file line numberDiff line numberDiff line change
@@ -227,8 +227,6 @@ jobs:
227227
EXTRA_CMAKE_FLAGS="${EXTRA_CMAKE_FLAGS} -DSLEEF_ENFORCE_RVVM1=ON -DSLEEF_ENFORCE_RVVM2=ON"
228228
# Disable inline headers, they just don't compile on riscv64
229229
EXTRA_CMAKE_FLAGS="${EXTRA_CMAKE_FLAGS} -DSLEEF_BUILD_INLINE_HEADERS=OFF"
230-
# Disable quad, it's missing the `Sleef_quad` function
231-
EXTRA_CMAKE_FLAGS="${EXTRA_CMAKE_FLAGS} -DSLEEF_BUILD_QUAD=OFF"
232230
fi
233231
234232
cmake -S . -B _build-${{ matrix.arch }} -GNinja \

CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ set(SLEEF_SUPPORTED_GNUABI_EXTENSIONS
8585
)
8686

8787
set(SLEEF_SUPPORTED_QUAD_EXTENSIONS
88-
PUREC_SCALAR PURECFMA_SCALAR SSE2 AVX2128 AVX2 AVX512F ADVSIMD SVE VSX VSX3 VXE VXE2)
88+
PUREC_SCALAR PURECFMA_SCALAR SSE2 AVX2128 AVX2 AVX512F ADVSIMD SVE VSX VSX3 VXE VXE2 RVVM1 RVVM2)
8989

9090
# MKMASKED_PARAMS
9191

src/quad/CMakeLists.txt

+12
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ set(QUAD_HEADER_PARAMS_AVX512F 8 Sleef_quadx8 Sleef_quadx8_2 __m512d
1212
set(QUAD_HEADER_PARAMS_ADVSIMD 2 Sleef_quadx2 Sleef_quadx2_2 float64x2_t float32x4_t uint32x4_t int32x2_t int64x2_t uint64x2_t __ARM_NEON advsimd)
1313
set(QUAD_HEADER_PARAMS_DSPX2_AARCH64 2 Sleef_quadx2 Sleef_quadx2_2 float64x2_t float32x4_t uint32x4_t int32x2_t int64x2_t uint64x2_t __ARM_NEON)
1414
set(QUAD_HEADER_PARAMS_SVE x Sleef_svquad Sleef_svquad_2 svfloat64_t svfloat32_t svint32_t svint32_t svint64_t svuint64_t __ARM_FEATURE_SVE sve)
15+
set(QUAD_HEADER_PARAMS_RVVM1 x Sleef_rvvm1quad Sleef_rvvm1quad_2 vfloat64m1_t vfloat32m1_t rvv_dp_mask vint32mf2_t vint64m1_t vuint64m1_t __riscv_vector rvvm1)
16+
set(QUAD_HEADER_PARAMS_RVVM2 x Sleef_rvvm2quad Sleef_rvvm2quad_2 vfloat64m2_t vfloat32m2_t rvv_dp_mask vint32m1_t vint64m2_t vuint64m2_t __riscv_vector rvvm2)
1517
set(QUAD_HEADER_PARAMS_VSX 2 Sleef_quadx2 Sleef_quadx2_2 "SLEEF_VECTOR_DOUBLE" "SLEEF_VECTOR_FLOAT" "SLEEF_VECTOR_UINT" "SLEEF_VECTOR_INT" "SLEEF_VECTOR_LONGLONG" "SLEEF_VECTOR_ULONGLONG" __VSX__ vsx)
1618
set(QUAD_HEADER_PARAMS_VSX3 2 Sleef_quadx2 Sleef_quadx2_2 "SLEEF_VECTOR_DOUBLE" "SLEEF_VECTOR_FLOAT" "SLEEF_VECTOR_UINT" "SLEEF_VECTOR_INT" "SLEEF_VECTOR_LONGLONG" "SLEEF_VECTOR_ULONGLONG" __VSX__ vsx3)
1719
set(QUAD_HEADER_PARAMS_DSPX2_PPC64 2 Sleef_quadx2 Sleef_quadx2_2 "SLEEF_VECTOR_DOUBLE" "SLEEF_VECTOR_FLOAT" "SLEEF_VECTOR_UINT" "SLEEF_VECTOR_INT" "SLEEF_VECTOR_LONGLONG" "SLEEF_VECTOR_ULONGLONG" __VSX__)
@@ -27,6 +29,8 @@ set(QUAD_RENAME_PARAMS_AVX2 4 avx2)
2729
set(QUAD_RENAME_PARAMS_AVX512F 8 avx512f)
2830
set(QUAD_RENAME_PARAMS_ADVSIMD 2 advsimd)
2931
set(QUAD_RENAME_PARAMS_SVE x sve)
32+
set(QUAD_RENAME_PARAMS_RVVM1 x rvvm1)
33+
set(QUAD_RENAME_PARAMS_RVVM2 x rvvm2)
3034
set(QUAD_RENAME_PARAMS_VSX 2 vsx)
3135
set(QUAD_RENAME_PARAMS_VSX3 2 vsx3)
3236
set(QUAD_RENAME_PARAMS_VXE 2 vxe)
@@ -81,6 +85,14 @@ elseif(SLEEF_ARCH_S390X)
8185
DSPX2_S390X
8286
)
8387
set(QMKDISP_PARAMS_X2 2 Sleef_quadx2 "SLEEF_VECTOR_DOUBLE" "SLEEF_VECTOR_INT" "SLEEF_VECTOR_LONGLONG" "SLEEF_VECTOR_ULONGLONG" vxe vxe2)
88+
elseif(SLEEF_ARCH_RISCV64)
89+
set(SLEEF_HEADER_LIST
90+
RVVM1
91+
RVVM2
92+
PUREC_SCALAR
93+
PURECFMA_SCALAR
94+
DSPSCALAR
95+
)
8496
endif()
8597

8698
#

0 commit comments

Comments
 (0)