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))