1 /* PR target/86386 */
2 /* { dg-do run { target { avx_runtime && int128 } } } */
3 /* { dg-options "-Os -fno-tree-dce -mstringop-strategy=vector_loop -mavx" } */
4 
5 unsigned c, d, e, f;
6 
7 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)8 foo (unsigned char g, unsigned short h, unsigned i, unsigned long long j,
9      unsigned char k, unsigned short l, unsigned m, unsigned __int128 n)
10 {
11   __builtin_memset (&e, 0, 3);
12   n <<= m;
13   __builtin_memcpy (&m, 2 + (char *) &n, 1);
14   m >>= 0;
15   d ^= __builtin_mul_overflow (l, n, &m);
16   return m;
17 }
18 
19 int
main()20 main ()
21 {
22   unsigned __int128 x = foo (0, 0, 0, 0, 0, 4, 1, 3);
23   if (x != 24)
24     __builtin_abort ();
25   return 0;
26 }
27