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