https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116666
--- Comment #10 from Jakub Jelinek <jakub at gcc dot gnu.org> --- "__builtin_shufflevector instead of __builtin_shuffle for better code generation" is certainly not true. Both of the builtins are different and they have their pros and cons. For the swgl code if it has been written with __builtin_shufflevector in mind, it can result in better code, sure, or if one uses something that can't be expressed by __builtin_shuffle. On the other side, __builtin_shuffle allows non-constant permutations, something __builtin_shufflevector doesn't allow.