https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70963
--- Comment #2 from Bill Schmidt <wschmidt at gcc dot gnu.org> --- The xxswapd's are a bit of a red herring. These are part of the little-endian normalization code that are required with the funky lxvd2x and stxvd2x instructions. The problem appears to be the register assignment on the instructions generated for vec_cts and vec_ctf. The use of vs12 on vec_cts is an obvious problem, since vs12 doesn't contain any value assigned in the function. The code for vec_ctf looks fine. So we need to figure out what happened with the register number on xvcvdpsxds. The problem still exists on trunk.