/* { dg-do compile { target int128 } } */ /* { dg-options "-O2 -fno-guess-branch-probability -flive-range-shrinkage -mbmi2" } */ int a, b, c, d, e; extern int bar(void); __int128 foo (unsigned g, int h, long i, __int128 j, short k, __int128 l) { unsigned __int128 m = j; do { j %= 5; c = c >> (m & 31); e = __builtin_sub_overflow (b, 0, &m); d = bar (); l *= __builtin_mul_overflow_p ((unsigned) d, ~(unsigned __int128) 1, (unsigned __int128) 0); } while (a); return m + j + k + l; }