Skip to content

Commit b5f48e1

Browse files
author
Simon Hosie
committed
enable RVV libquad targets
1 parent 950ba29 commit b5f48e1

File tree

3 files changed

+19
-3
lines changed

3 files changed

+19
-3
lines changed

.github/workflows/build_and_test.yml

-2
Original file line numberDiff line numberDiff line change
@@ -225,8 +225,6 @@ jobs:
225225
EXTRA_CMAKE_FLAGS="${EXTRA_CMAKE_FLAGS} -DDISABLE_VXE2=ON"
226226
elif [[ ${{ matrix.arch }} = "riscv64" ]]; then
227227
EXTRA_CMAKE_FLAGS="${EXTRA_CMAKE_FLAGS} -DENFORCE_RVVM1=ON -DENFORCE_RVVM2=ON"
228-
# Disable quad, it's missing the `Sleef_quad` function
229-
EXTRA_CMAKE_FLAGS="${EXTRA_CMAKE_FLAGS} -DBUILD_QUAD=OFF"
230228
fi
231229
232230
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 RVVM1NOFMA RVVM1 RVVM2NOFMA RVVM2)
8989

9090
# MKMASKED_PARAMS
9191

src/quad/CMakeLists.txt

+18
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ 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_RVVM1NOFMA x Sleef_rvvm1quad Sleef_rvvm1quad_2 vfloat64m1_t vfloat32m1_t rvv_dp_mask vint32mf2_t vint64m1_t vuint64m1_t __riscv_vector rvvm1nofma)
17+
set(QUAD_HEADER_PARAMS_RVVM2 x Sleef_rvvm2quad Sleef_rvvm2quad_2 vfloat64m2_t vfloat32m2_t rvv_dp_mask vint32m1_t vint64m1_t vuint64m1_t __riscv_vector rvvm2 )
18+
set(QUAD_HEADER_PARAMS_RVVM2NOFMA x Sleef_rvvm2quad Sleef_rvvm2quad_2 vfloat64m2_t vfloat32m2_t rvv_dp_mask vint32m1_t vint64m1_t vuint64m1_t __riscv_vector rvvm2nofma)
1519
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)
1620
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)
1721
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 +31,10 @@ set(QUAD_RENAME_PARAMS_AVX2 4 avx2)
2731
set(QUAD_RENAME_PARAMS_AVX512F 8 avx512f)
2832
set(QUAD_RENAME_PARAMS_ADVSIMD 2 advsimd)
2933
set(QUAD_RENAME_PARAMS_SVE x sve)
34+
set(QUAD_RENAME_PARAMS_RVVM1 x rvvm1)
35+
set(QUAD_RENAME_PARAMS_RVVM1NOFMA x rvvm1nofma)
36+
set(QUAD_RENAME_PARAMS_RVVM2 x rvvm2)
37+
set(QUAD_RENAME_PARAMS_RVVM2NOFMA x rvvm2nofma)
3038
set(QUAD_RENAME_PARAMS_VSX 2 vsx)
3139
set(QUAD_RENAME_PARAMS_VSX3 2 vsx3)
3240
set(QUAD_RENAME_PARAMS_VXE 2 vxe)
@@ -81,6 +89,16 @@ elseif(SLEEF_ARCH_S390X)
8189
DSPX2_S390X
8290
)
8391
set(QMKDISP_PARAMS_X2 2 Sleef_quadx2 "SLEEF_VECTOR_DOUBLE" "SLEEF_VECTOR_INT" "SLEEF_VECTOR_LONGLONG" "SLEEF_VECTOR_ULONGLONG" vxe vxe2)
92+
elseif(SLEEF_ARCH_RISCV64)
93+
set(SLEEF_HEADER_LIST
94+
RVVM1
95+
RVVM1NOFMA
96+
RVVM2
97+
RVVM2NOFMA
98+
PUREC_SCALAR
99+
PURECFMA_SCALAR
100+
DSPSCALAR
101+
)
84102
endif()
85103

86104
#

0 commit comments

Comments
 (0)