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

Reply via email to