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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Started with r250084.

/* PR target/86386 */
/* { dg-do run { target { avx_runtime && int128 } } } */
/* { dg-options "-Os -fno-tree-dce -mstringop-strategy=vector_loop -mavx" } */

unsigned c, d, e, f;

unsigned __attribute__((noipa))
foo (unsigned char g, unsigned short h, unsigned i, unsigned long long j,
     unsigned char k, unsigned short l, unsigned m, unsigned __int128 n)
{
  __builtin_memset (&e, 0, 3);
  n <<= m;
  __builtin_memcpy (&m, 2 + (char *) &n, 1);
  m >>= 0;
  d ^= __builtin_mul_overflow (l, n, &m);
  return m;
}

int
main ()
{
  unsigned __int128 x = foo (0, 0, 0, 0, 0, 4, 1, 3);
  if (x != 24)
    __builtin_abort ();
  return 0;
}

Reply via email to