https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116666
--- Comment #7 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Note for recent GCC, CONVERT and SHUFFLE should be defined as: # define CONVERT(vector, type) __builtin_convertvector(vector.data, type::data_type) # define SHUFFLE(a, b, ...) __builtin_shufflevector(a.data, b.data, __VA_ARGS__) GCC 15 will produce much better code for both of these with these definitions.