Introduce SSE2NEON package for handling sse to neon intrinsic compatibility

master
Rye 2025-02-02 19:05:59 -05:00
parent 2f39d381ef
commit e83aea5e95
6 changed files with 52 additions and 3 deletions

1
.gitignore vendored
View File

@ -26,7 +26,6 @@ debian/files
debian/secondlife-appearance-utility*
debian/secondlife-viewer*
indra/.distcc
indra/cmake/*
indra/out/*
indra/packages/*

View File

@ -2318,6 +2318,40 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<key>description</key>
<string>Vivox SDK components</string>
</map>
<key>sse2neon</key>
<map>
<key>platforms</key>
<map>
<key>common</key>
<map>
<key>archive</key>
<map>
<key>hash</key>
<string>c578c2a7f4355197d0ce8544310bc5e785531018</string>
<key>hash_algorithm</key>
<string>sha1</string>
<key>url</key>
<string>https://github.com/secondlife/3p-sse2neon/releases/download/v1.7.0-r2/sse2neon-1.7.0-dev0.gc8ad5f1.d20241212-common-12287325635.tar.zst</string>
</map>
<key>name</key>
<string>common</string>
</map>
</map>
<key>license</key>
<string>MIT</string>
<key>license_file</key>
<string>LICENSES/sse2neon.txt</string>
<key>copyright</key>
<string>Copyright (c) 2015-2024 SSE2NEON Contributors.</string>
<key>version</key>
<string>1.7.0-dev0.gc8ad5f1.d20241212</string>
<key>name</key>
<string>sse2neon</string>
<key>canonical_repo</key>
<string>https://github.com/secondlife/3p-sse2neon</string>
<key>description</key>
<string>A translator from Intel SSE intrinsics to Arm/Aarch64 NEON implementation</string>
</map>
<key>threejs</key>
<map>
<key>platforms</key>

View File

@ -52,6 +52,7 @@ set(cmake_SOURCE_FILES
Prebuilt.cmake
PulseAudio.cmake
Python.cmake
SSE2NEON.cmake
TemplateCheck.cmake
TinyEXR.cmake
TinyGLTF.cmake

View File

@ -0,0 +1,12 @@
# -*- cmake -*-
include(Prebuilt)
add_library(ll::sse2neon INTERFACE IMPORTED)
if (DARWIN)
use_system_binary(sse2neon)
use_prebuilt_binary(sse2neon)
target_include_directories( ll::sse2neon SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/sse2neon)
endif()

View File

@ -11,7 +11,7 @@ include(LLSharedLibs)
include(Copy3rdPartyLibs)
include(ZLIBNG)
include(Tracy)
include(SSE2NEON)
set(llcommon_SOURCE_FILES
apply.cpp
@ -277,6 +277,7 @@ target_link_libraries(
ll::boost
ll::oslibraries
ll::tracy
ll::sse2neon
)
target_include_directories(llcommon INTERFACE ${CMAKE_CURRENT_SOURCE_DIR})

View File

@ -6,6 +6,7 @@ include(00-Common)
include(LLCommon)
include(bugsplat)
include(Boost)
include(SSE2NEON)
set(llmath_SOURCE_FILES
llbbox.cpp
@ -59,6 +60,7 @@ set(llmath_HEADER_FILES
llmath.h
llmatrix3a.h
llmatrix3a.inl
llmatrix4a.h
llmodularmath.h
lloctree.h
llperlin.h
@ -99,7 +101,7 @@ list(APPEND llmath_SOURCE_FILES ${llmath_HEADER_FILES})
add_library (llmath ${llmath_SOURCE_FILES})
target_link_libraries(llmath llcommon llmeshoptimizer)
target_link_libraries(llmath llcommon llmeshoptimizer ll::sse2neon)
target_include_directories( llmath INTERFACE ${CMAKE_CURRENT_SOURCE_DIR})
# Add tests