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

--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
Same IL but no ICE:

static unsigned char xl[132];

void jerate (unsigned char *, unsigned char *, unsigned char *, unsigned char
*);
float foo (unsigned n)
{
  unsigned char A170[132];
  unsigned char A166[132];
  unsigned char A167[132];
  jerate (xl, A170, A166, A167);

  unsigned i = 32;
  int kr = 1;
  float sfn11s = 0.f;
  float sfn12s = 0.f;
  do
    {
      int krm1 = kr - 1;
      long j = krm1;
      float a = (*(float(*)[n])A170)[j];
      float b = (*(float(*)[n])xl)[j];
      float c = a * b;
      float d = c * 6.93149983882904052734375e-1f;
      float e = (*(float(*)[n])A166)[j];
      float f = (*(float(*)[n])A167)[j];
      float g = d * e;
      sfn11s = sfn11s + g;
      float h = f * d;
      sfn12s = sfn12s + h;
      kr++;
    }
  while (--i != 0);
  float tem = sfn11s + sfn12s;
  return tem;
}

Reply via email to