all float3 and float4 functions and isas

completed all options of float3 and float4 functions in isas and math_c
neon still to be done but that will be on mac.
This commit is contained in:
marauder2k7 2026-02-27 11:28:51 +00:00
parent 18d0aa0418
commit f0a3251cd3
16 changed files with 593 additions and 90 deletions

View file

@ -5,10 +5,10 @@ math_backend::backend math_backend::choose_backend(U32 cpu_flags)
{
#if defined(__x86_64__) || defined(_M_X64) || defined(_M_IX86)
if (cpu_flags & CPU_PROP_AVX2) return backend::avx2;
/*if (cpu_flags & CPU_PROP_AVX2) return backend::avx2;
if (cpu_flags & CPU_PROP_AVX) return backend::avx;
if (cpu_flags & CPU_PROP_SSE4_1) return backend::sse41;
if (cpu_flags & CPU_PROP_SSE2) return backend::sse2;
if (cpu_flags & CPU_PROP_SSE2) return backend::sse2;*/
#elif defined(__aarch64__) || defined(__ARM_NEON)
@ -32,15 +32,18 @@ void math_backend::install_from_cpu_flags(uint32_t cpu_flags)
break;
case backend::avx:
//float4::dispatch::install_avx();
float4::dispatch::install_avx();
float3::dispatch::install_avx();
break;
case backend::sse41:
float4::dispatch::install_sse41();
float3::dispatch::install_sse41();
break;
case backend::sse2:
float4::dispatch::install_sse2();
float3::dispatch::install_sse2();
break;
#elif defined(__aarch64__) || defined(__ARM_NEON)
case backend::neon:
@ -49,6 +52,7 @@ void math_backend::install_from_cpu_flags(uint32_t cpu_flags)
#endif
default:
float4::dispatch::install_scalar();
float3::dispatch::install_scalar();
break;
}
}