aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.c-torture/execute/pr84748.c
blob: 9572ab285c661c218acfa85c4e8a97a418d45a8e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/* { dg-require-effective-target int128 } */

typedef unsigned __int128 u128;

int a, c, d;
u128 b;

unsigned long long g0, g1;

void
store (unsigned long long a0, unsigned long long a1)
{
  g0 = a0;
  g1 = a1;
}

void
foo (void)
{
  b += a;
  c = d != 84347;
  b /= c;
  u128 x = b;
  store (x >> 0, x >> 64);
}

int
main (void)
{
  foo ();
  if (g0 != 0 || g1 != 0)
    __builtin_abort ();
  return 0;
}