https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71621
--- Comment #2 from Arseny Solokha <asolokha at gmx dot com> ---
Another one, just for the record:
int hf, sv, zz, aj;
void
dn (int xb, int bl)
{
while (zz < 1)
{
if (xb == 0)
goto mr;
while (bl < 3)
{
int d3;
unsigned char vh;
unsigned char *fj = &vh;
mr:
while (bl < 1)
{
hf += vh;
++bl;
}
if (xb == 0)
zz = bl;
if (d3 == 0)
return;
while (sv < 1)
{
--vh;
aj += vh;
++sv;
}
}
sv = 0;
}
}
% x86_64-pc-linux-gnu-gcc-7.0.0-alpha20160703 -c -mavx2 -O3 md4gkoj3.c
md4gkoj3.c: In function 'dn':
md4gkoj3.c:36:1: error: unable to find a register to spill
}
^
md4gkoj3.c:36:1: error: this is the insn:
(insn 93 571 35 3 (set (reg:V32QI 172 [ vect_cst__257 ])
(vec_duplicate:V32QI (reg:QI 330))) 4215 {*vec_dupv32qi}
(expr_list:REG_DEAD (reg:QI 330)
(nil)))
md4gkoj3.c:36:1: internal compiler error: in assign_by_spills, at
lra-assigns.c:1417