aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/powerpc/pr105586.c
blob: 3f88a09983b268149ee1a8847a7435b13d358684 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/* { dg-options "-mdejagnu-tune=power4 -O2 -fcompare-debug -fno-if-conversion -fno-guess-branch-probability" } */
/* { dg-require-effective-target int128 } */

extern int bar(int i);

typedef unsigned long u64;
int g;

__int128 h;

void
foo(int a, int b) {
  int i;
  char u8_1 = g, u8_3 = a;
  u64 u64_1 = bar(0), u64_3 = u8_3 * u64_1;
  __int128 u128_1 = h ^ __builtin_expect(i, 0);
  u64 u64_4 = u64_1 << ((__builtin_sub_overflow_p(0, u8_1, (u64)0) ^ u128_1) & 8);
  u64 u64_r = b + u64_3 + u64_4;
  bar((short)u64_r + u8_3);
}