https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79218
--- Comment #2 from Bill Schmidt <wschmidt at gcc dot gnu.org> --- At the moment, swap optimization doesn't attempt to handle __int128 values, for which swaps don't deal with elements of a vector, but pieces of a cohesive integer value. This may be overly conservative, and we may want to see what breaks if this is relaxed by now. But I wouldn't do this before GCC 8, because it's a large change.