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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[9/10/11/12 Regression]     |[9/10/11/12 Regression]
                   |wrong code with -O3         |wrong code with -O3
                   |-fno-tree-pta -mavx512f by  |-fno-tree-pta by r9-2475
                   |r9-2475                     |

--- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Here is a testcase which fails without -mavx512


typedef __SIZE_TYPE__ size_t;

__attribute__((__noipa__))
void BUF_reverse (unsigned char *out, const unsigned char *in, size_t size)
{
  size_t i;
  if (in)
    {
      out += size - 1;
      for (i = 0; i < size; i++)
        *out++ = *in++;
    }
  else
    {
      unsigned char *q;
      char c;
      q = out + size - 1;
      for (i = 0; i < size ; i++)
            {
              *out++ = 1;
            }
    }
}

int
main (void)
{
  unsigned char buf[40];
  unsigned char buf1[40];
  for (unsigned i = 0; i < sizeof (buf); i++)
    buf[i] = i;
  BUF_reverse (buf, 0, sizeof (buf));
  for (unsigned i = 0; i < sizeof (buf); i++)
    if (buf[i] != 1)
      __builtin_abort ();

  return 0;
}

Reply via email to