From c6a153eafe2c82c8c59de55a53bf85ddba374dbc Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Tue, 9 May 2023 10:19:09 +0200 Subject: [PATCH] simde__m128_to_simde_float32x4: fix for non-SSE/NEON --- src/sfizz/Interpolators.hpp | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/sfizz/Interpolators.hpp b/src/sfizz/Interpolators.hpp index 292fd587..eeb2a8cb 100644 --- a/src/sfizz/Interpolators.hpp +++ b/src/sfizz/Interpolators.hpp @@ -12,16 +12,21 @@ #if SIMDE_NATURAL_VECTOR_SIZE_GE(128) #include #include -#include + +#if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + #define simde__m128_to_simde_float32x4(a) simde__m128_to_neon_f32((a)) +#elif defined(SIMDE_X86_SSE_NATIVE) + #define simde__m128_to_simde_float32x4(a) simde_float32x4_from_m128(simde__m128_to_private((a)).n) +#elif defined(SIMDE_STATEMENT_EXPR_) + #define simde__m128_to_simde_float32x4(a) SIMDE_STATEMENT_EXPR_(({ \ + simde__m128_private a_ = simde__m128_to_private((a)); \ + simde_float32x4_private r_; \ + r_.values = a_.f32; \ + simde_float32x4_from_private(r_); \ + })) #endif -#if defined(SIMDE_X86_SSE_NATIVE) - #define simde__m128_to_simde_float32x4(a) simde_float32x4_from_m128(simde__m128_to_private((a)).n) -#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) - #define simde__m128_to_simde_float32x4(a) simde__m128_to_neon_f32((a)) -#else - #define simde__m128_to_simde_float32x4(a) simde_vld1q_f32(& (simde__m128_to_private((a)).f32)) -#endif +#endif /* SIMDE_NATURAL_VECTOR_SIZE_GE(128) */ namespace sfz {