[Bug target/91804] [10 regression] r265398 breaks gcc.target/powerpc/vec-rlmi-rlnm.c

segher at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Apr 1 18:11:00 GMT 2020


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

Segher Boessenkool <segher at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |NEW
                 CC|                            |bergner at gcc dot gnu.org

--- Comment #1 from Segher Boessenkool <segher at gcc dot gnu.org> ---
This extra move is created by IRA:

Examining insn 22, def for 133
  all ok and transp
      Creating newreg=134 from oldreg=133
rescanning insn with uid = 22.
scanning new insn with uid = 25.
    New r134: setting preferred ALTIVEC_REGS, alternative VSX_REGS

Why?!

It was
(insn 22 11 20 2 (set (reg:V16QI 133)
        (vec_duplicate:V16QI (const_int 8 [0x8]))) "vec-rlmi-rlnm.c":45:10 1204
{xxspltib_v16qi}
     (nil))

and it is used only in

(insn 23 19 9 2 (set (reg:V2DI 127)
        (unspec:V2DI [
                (reg:V16QI 133)
            ] UNSPEC_VSX_SIGN_EXTEND)) "vec-rlmi-rlnm.c":45:10 1533
{vsx_sign_extend_qi_v2di}
     (expr_list:REG_DEAD (reg:V16QI 133)
        (expr_list:REG_EQUAL (const_vector:V2DI [
                    (const_int 8 [0x8]) repeated x2
                ])
            (nil))))

so copying it to another reg cannot help anything here?

Peter, can you take a look?


More information about the Gcc-bugs mailing list