mirror of https://github.com/opencv/opencv.git
- Added cross compile cmake file for target riscv64-clang - Extended cmake for RISC-V and added instruction checks - Created intrin_rvv.hpp with C++ version universal intrinsicspull/17922/head
parent
9039284d96
commit
ff4c3873f2
9 changed files with 1782 additions and 0 deletions
@ -0,0 +1,23 @@ |
||||
#include <stdio.h> |
||||
|
||||
#if defined(__riscv) |
||||
# include <riscv_vector.h> |
||||
# define CV_RVV 1 |
||||
#endif |
||||
|
||||
#if defined CV_RVV |
||||
int test() |
||||
{ |
||||
const float src[] = { 0.0f, 0.0f, 0.0f, 0.0f }; |
||||
vfloat32m1_t val = vle32_v_f32m1((const float*)(src)); |
||||
return (int)vfmv_f_s_f32m1_f32(val); |
||||
} |
||||
#else |
||||
#error "RISC-V vector extension(RVV) is not supported" |
||||
#endif |
||||
|
||||
int main() |
||||
{ |
||||
printf("%d\n", test()); |
||||
return 0; |
||||
} |
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,27 @@ |
||||
set(CMAKE_SYSTEM_NAME Linux) |
||||
set(CMAKE_SYSTEM_PROCESSOR riscv64) |
||||
|
||||
set(RISCV_CLANG_BUILD_ROOT /opt/rvv-llvm CACHE PATH "Path to CLANG for RISC-V cross compiler build directory") |
||||
set(RISCV_GCC_INSTALL_ROOT /opt/RISCV CACHE PATH "Path to GCC for RISC-V cross compiler installation directory") |
||||
set(CMAKE_SYSROOT ${RISCV_GCC_INSTALL_ROOT}/sysroot CACHE PATH "RISC-V sysroot") |
||||
|
||||
set(CLANG_TARGET_TRIPLE riscv64-unknown-linux-gnu) |
||||
|
||||
set(CMAKE_C_COMPILER ${RISCV_CLANG_BUILD_ROOT}/bin/clang) |
||||
set(CMAKE_C_COMPILER_TARGET ${CLANG_TARGET_TRIPLE}) |
||||
set(CMAKE_CXX_COMPILER ${RISCV_CLANG_BUILD_ROOT}/bin/clang++) |
||||
set(CMAKE_CXX_COMPILER_TARGET ${CLANG_TARGET_TRIPLE}) |
||||
set(CMAKE_ASM_COMPILER ${RISCV_CLANG_BUILD_ROOT}/bin/clang) |
||||
set(CMAKE_ASM_COMPILER_TARGET ${CLANG_TARGET_TRIPLE}) |
||||
|
||||
# Don't run the linker on compiler check |
||||
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) |
||||
|
||||
set(CMAKE_C_FLAGS "-march=rv64gcv --gcc-toolchain=${RISCV_GCC_INSTALL_ROOT} -w ${CMAKE_C_FLAGS}") |
||||
set(CMAKE_CXX_FLAGS "-march=rv64gcv --gcc-toolchain=${RISCV_GCC_INSTALL_ROOT} -w ${CXX_FLAGS}") |
||||
|
||||
set(CMAKE_FIND_ROOT_PATH ${CMAKE_SYSROOT}) |
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) |
||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) |
||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) |
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) |
Loading…
Reference in new issue