https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72804
--- Comment #5 from Peter Bergner <bergner at gcc dot gnu.org> --- I'm testing a patch. The root cause is that the vsx_le_permute_*, vsx_le_perm_load_* and vsx_le_perm_store_* patterns do not support the TImode values in integer registers and it is these patterns that LRA is using to try and reload the TImode values into/out of integer registers, which causes us to loop until some magic happens and we break out. Adding support for integer registers to the above patterns improves the code to what we would expect to see.