From b1e74b85231748467f8987ba7766d1b7ca252cc1 Mon Sep 17 00:00:00 2001 From: theofficialgman <28281419+theofficialgman@users.noreply.github.com> Date: Wed, 6 Sep 2023 15:08:32 -0400 Subject: [PATCH] minor patch for NEON helpers on ARM for https://github.com/musescore/MuseScore/issues/18353 --- src/framework/audio/internal/fx/reverb/simdtypes_neon.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/framework/audio/internal/fx/reverb/simdtypes_neon.h b/src/framework/audio/internal/fx/reverb/simdtypes_neon.h index 5c2ce7aea2554..11e67118517ea 100644 --- a/src/framework/audio/internal/fx/reverb/simdtypes_neon.h +++ b/src/framework/audio/internal/fx/reverb/simdtypes_neon.h @@ -65,12 +65,15 @@ struct float_x4 s.n128_f32[1] = v1; s.n128_f32[2] = v2; s.n128_f32[3] = v3; +#elif defined(__GNUC__) // gcc (12.2.0) doesn't seem to allow initializer list. + const float init[4] = { v0, v1, v2, v3 }; + s = vld1q_f32(init); #else s = { v0, v1, v2, v3 }; #endif } -#if __clang__ +#if defined(__clang__) || defined(__GNUC__) private: // this helper class allows writing to the single registers for clang // __mm128 is a built-in type -> we can't return a float& reference.