1 /* { dg-options "-mdejagnu-tune=power4 -O2 -fcompare-debug -fno-if-conversion -fno-guess-branch-probability" } */
2 /* { dg-require-effective-target int128 } */
3
4 extern int bar(int i);
5
6 typedef unsigned long u64;
7 int g;
8
9 __int128 h;
10
11 void
12 foo(int a, int b) {
13 int i;
14 char u8_1 = g, u8_3 = a;
15 u64 u64_1 = bar(0), u64_3 = u8_3 * u64_1;
16 __int128 u128_1 = h ^ __builtin_expect(i, 0);
17 u64 u64_4 = u64_1 << ((__builtin_sub_overflow_p(0, u8_1, (u64)0) ^ u128_1) & 8);
18 u64 u64_r = b + u64_3 + u64_4;
19 bar((short)u64_r + u8_3);
20 }