1 /* { dg-do compile { target int128 } } */
2 /* { dg-options "-O2 -fno-guess-branch-probability -flive-range-shrinkage -mbmi2" } */
3
4 int a, b, c, d, e;
5
6 extern int bar(void);
7
8 __int128
foo(unsigned g,int h,long i,__int128 j,short k,__int128 l)9 foo (unsigned g, int h, long i, __int128 j, short k, __int128 l)
10 {
11 unsigned __int128 m = j;
12 do
13 {
14 j %= 5;
15 c = c >> (m & 31);
16 e = __builtin_sub_overflow (b, 0, &m);
17 d = bar ();
18 l *= __builtin_mul_overflow_p ((unsigned) d, ~(unsigned __int128) 1,
19 (unsigned __int128) 0);
20 }
21 while (a);
22 return m + j + k + l;
23 }
24