https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89271
--- Comment #10 from Alan Modra <amodra at gmail dot com> --- > NON_SPECIAL_REGS removal The gcc docs say of register classes: "You should define a class for the union of two classes whenever some instruction allows both classes." So this would seem to be going in the wrong direction. We have quite a few insns that allow gprs in one alternative and vsx/fpr/altivec in another. I don't know whether the docs are up to date for ira/lra but my analysis of the ppc-round3.c failure (see the notes in the patches I attached) after fixing integer register move cost suggests that register allocation is better with union classes available. Note that x86 does have union classes.