https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71629

--- Comment #2 from Arseny Solokha <asolokha at gmx dot com> ---
gcc ICEs w/ the same error but different backtrace compiling the following
testcase w/ -Os -mlra:

int z4, pe;
long long int wv, ca, hv, a5;

void
kw (int d9)
{
  for (;;)
  {
    int f4 = 0;

    if (ca != 0)
    {
      long long int *jd = (long long int *)hv;
      long long int v4 = 1;
      int md = d9;

      do
      {
        if (wv == 0)
          a5 = 0;
        if (a5 != 0)
        {
          if ((*jd / hv) > (*jd > z4))
            f4 = md;
          for (hv = 0; hv < 6; ++hv)
            wv = -z4 | a5;
        }
        for (ca = -1; ca < 10; ++ca)
        {
          d9 = (int)&v4;
          pe /= 3;
        }
      }
      while (f4 != 0);
    }
  }
}

% powerpc-e500v2-linux-gnuspe-gcc-7.0.0-alpha20160731 -w -c -Os -mlra
-fstack-protector -fPIC cfwcdil3.c
cfwcdil3.c: In function 'kw':
cfwcdil3.c:37:1: internal compiler error: in lra_set_insn_recog_data, at
lra.c:964

In this case gcc generates SPE instructions (evstdd, evldd), as -mno-lra
suggests.

Reply via email to