[Premake] Remove AVX2 requirement from linux build

Co-authored-by: has207 <429230+has207@users.noreply.github.com>
This commit is contained in:
Gliniak
2025-11-03 19:02:39 +01:00
committed by Radosław Gliński
parent 3252d256ca
commit 892aa85913
2 changed files with 6 additions and 1 deletions

View File

@@ -126,7 +126,7 @@ filter({"configurations:Release", "platforms:Windows"}) -- "toolset:msc"
filter("platforms:Linux") filter("platforms:Linux")
system("linux") system("linux")
toolset("clang") toolset("clang")
vectorextensions("AVX2") vectorextensions("AVX")
--buildoptions({ --buildoptions({
-- "-mlzcnt", -- (don't) Assume lzcnt is supported. -- "-mlzcnt", -- (don't) Assume lzcnt is supported.
--}) --})

View File

@@ -308,6 +308,11 @@ void copy_and_swap_32_aligned(void* dest_ptr, const void* src_ptr,
} }
} }
// Enable AVX2 for this function even when building with -mavx
// The function has runtime detection to only use AVX2 on supported CPUs
#if defined(__GNUC__) || defined(__clang__)
__attribute__((target("avx2")))
#endif
void copy_and_swap_32_unaligned(void* dest_ptr, const void* src_ptr, void copy_and_swap_32_unaligned(void* dest_ptr, const void* src_ptr,
size_t count) { size_t count) {
auto dest = reinterpret_cast<uint32_t*>(dest_ptr); auto dest = reinterpret_cast<uint32_t*>(dest_ptr);