Support __builtin_shuffle as an alternative to __builtin_shufflevector
Support __builtin_shuffle as an alternative to __builtin_shufflevector

GCC versions < 12 do not support __builtin_shufflevector, though they do
support an alternative builtin named __builtin_shuffle. It requires that
the indices are passed as an integer vector as opposed to variadic
arguments.

This enables us to benefit from potentially improved and better
performing code generation for intrinsics that are implemented with this
builtin.

DLTcollab/sse2neon,DLTcollab/sse2neon,DLTcollab/sse2neon