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