https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91804

--- Comment #2 from Peter Bergner <bergner at gcc dot gnu.org> ---
The copy us inserted by IRA's find_moveable_pseudos() function.  The problem
seems to be that the new pseudo r134 has a different preferred reg class than
the original pseudo r133. 

    r134: preferred VSX_REGS, alternative NO_REGS, allocno VSX_REGS
    a7 (r134,l0) best VSX_REGS, allocno VSX_REGS
    r133: preferred ALTIVEC_REGS, alternative VSX_REGS, allocno VSX_REGS

This leads to:

...
      Popping a7(r134,l0)  -- assign reg 32
      Popping a4(r127,l0)  -- assign reg 64
      Popping a6(r133,l0)  -- assign reg 64

So r134 is assigned the first VSX reg and r133 gets the first Altivec reg.

Reply via email to