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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |11.2

--- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
This is the cause here:
(insn:TI 39 32 34 (set (reg:V2DF 34 v2 [118])
        (vec_concat:V2DF (mem/c:DF (plus:DI (reg/f:DI 31 sp)
                    (const_int 32800 [0x8020])) [2 MEM[(double[3] *)_19][0]+0
S8 A128])
            (mem/c:DF (plus:DI (reg:DI 2 x2 [140])
                    (const_int 40 [0x28])) [2 MEM[(double[3] *)_19][1]+0 S8
A64]))) "t88.cc":33:14 2479 {load_pair_lanesdf}
     (expr_list:REG_DEAD (reg:DI 2 x2 [140])
        (nil)))

That mem RTL is not valid.

This instruction is valid before "reload":
t88.cc.291r.ira-(insn 39 32 57 2 (set (reg:V2DF 118)
t88.cc.291r.ira-        (vec_concat:V2DF (mem/c:DF (plus:DI (reg/f:DI 64 sfp)
t88.cc.291r.ira-                    (const_int -16384 [0xffffffffffffc000])) [2
MEM[(double[3] *)_19][0]+0 S8 A128])
t88.cc.291r.ira-            (mem/c:DF (plus:DI (reg/f:DI 64 sfp)
t88.cc.291r.ira:                    (const_int -16376 [0xffffffffffffc008])) [2
MEM[(double[3] *)_19][1]+0 S8 A64]))) "t88.cc":33:14 2479 {load_pair_lanesdf}
t88.cc.291r.ira-     (nil))

But after we get:
t88.cc.292r.reload-(insn 39 65 57 2 (set (reg:V2DF 34 v2 [118])
t88.cc.292r.reload-        (vec_concat:V2DF (mem/c:DF (plus:DI (reg/f:DI 31 sp)
t88.cc.292r.reload-                    (const_int 32800 [0x8020])) [2
MEM[(double[3] *)_19][0]+0 S8 A128])
t88.cc.292r.reload-            (mem/c:DF (plus:DI (reg:DI 2 x2 [140])
t88.cc.292r.reload:                    (const_int 40 [0x28])) [2 MEM[(double[3]
*)_19][1]+0 S8 A64]))) "t88.cc":33:14 2479 {load_pair_lanesdf}
t88.cc.292r.reload-     (nil))

Reply via email to