diff --git a/libs/ardour/sse_functions_avx_linux.cc b/libs/ardour/sse_functions_avx_linux.cc index 6ab2f1731f..e6e8d64ad2 100644 --- a/libs/ardour/sse_functions_avx_linux.cc +++ b/libs/ardour/sse_functions_avx_linux.cc @@ -137,7 +137,13 @@ x86_sse_avx_compute_peak(const float *src, uint32_t nframes, float current) // zero upper 128 bit of 256 bit ymm register to avoid penalties using non-AVX instructions _mm256_zeroupper(); - return vcurrent[0]; // _mm256_cvtss_f32 +#if defined(__GNUC__) && (__GNUC__ < 5) + return *((float *)&vcurrent); +#elif defined(__GNUC__) && (__GNUC__ < 8) + return vcurrent[0]; +#else + return _mm256_cvtss_f32 (vcurrent); +#endif } /**