[Bug target/71294] [6/7 Regression] ICE in gen_add2_insn, at optabs.c:4442 on powerpc64le-linux
marxin at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu May 26 17:18:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71294
--- Comment #2 from Martin Liška <marxin at gcc dot gnu.org> ---
tree-dump of the problematic function:
;; Function void fn1() (_Z3fn1v, funcdef_no=6, decl_uid=2937, cgraph_uid=4,
symbol_order=4)
void fn1() ()
{
struct A a;
struct C D.3115;
struct C D.3114;
struct B e;
long unsigned int _4;
vector(2) long unsigned int vect_cst__5;
long unsigned int _6;
vector(2) long unsigned int vect_cst__20;
<bb 2>:
_6 = (long unsigned int) &e.val;
vect_cst__20 = {_6, _6};
_4 = (long unsigned int) &MEM[(void *)&e + 128B];
vect_cst__5 = {_4, _4};
MEM[(struct &)&a] ={v} {CLOBBER};
a.rows = 4;
a.cols = 4;
MEM[(struct &)&a + 40] ={v} {CLOBBER};
MEM[(unsigned char * *)&a + 8B] = vect_cst__20;
MEM[(unsigned char * *)&a + 24B] = vect_cst__5;
C::C (&D.3114, a);
F::compute (D.3115);
D.3114 ={v} {CLOBBER};
a ={v} {CLOBBER};
e ={v} {CLOBBER};
return;
}
236r.ira:
(insn 13 29 33 2 (set (mem/c:V2DI (plus:DI (reg/f:DI 113 sfp)
(reg:DI 166)) [5 MEM[(unsigned char * *)&a + 8B]+0 S16 A64])
(vec_select:V2DI (reg:V2DI 163)
(parallel:V2DI [
(const_int 1 [0x1])
(const_int 0 [0])
]))) /tmp/ice2.ii:29 841 {*vsx_stxvd2x2_le_v2di}
(expr_list:REG_DEAD (reg:DI 166)
(expr_list:REG_DEAD (reg:V2DI 163)
(nil))))
237r.reload:
Reloads for insn # 13
Reload 0: reload_in (DI) = (plus:DI (reg/f:DI 1 1)
(const_int 240 [0xf0]))
BASE_REGS, RELOAD_FOR_OPERAND_ADDRESS (opnum = 0)
reload_in_reg: (plus:DI (reg/f:DI 1 1)
(const_int 240 [0xf0]))
reload_reg_rtx: (reg:DI 10 10)
Reload 1: BASE_REGS, RELOAD_FOR_OPERAND_ADDRESS (opnum = 0), optional, can't
combine, secondary_reload_p
Reload 2: GENERAL_REGS, RELOAD_FOR_OPERAND_ADDRESS (opnum = 0), optional, can't
combine, secondary_reload_p
secondary_out_reload = 1
secondary_out_icode = reload_v2di_di_store
Reload 3: reload_out (V2DI) = (mem/c:V2DI (plus:DI (plus:DI (reg/f:DI 1 1)
(const_int 240
[0xf0]))
(reg:DI 9 9 [166])) [5
MEM[(unsigned char * *)&a + 8B]+0 S16 A64])
NO_REGS, RELOAD_FOR_OUTPUT (opnum = 0), optional
reload_out_reg: (mem/c:V2DI (plus:DI (plus:DI (reg/f:DI 1 1)
(const_int 240
[0xf0]))
(reg:DI 9 9 [166])) [5
MEM[(unsigned char * *)&a + 8B]
(crashes here)
More information about the Gcc-bugs
mailing list