1 /* { dg-require-effective-target int128 } */
2 
3 typedef unsigned __int128 u128;
4 
5 int a, c, d;
6 u128 b;
7 
8 unsigned long long g0, g1;
9 
10 void
store(unsigned long long a0,unsigned long long a1)11 store (unsigned long long a0, unsigned long long a1)
12 {
13   g0 = a0;
14   g1 = a1;
15 }
16 
17 void
foo(void)18 foo (void)
19 {
20   b += a;
21   c = d != 84347;
22   b /= c;
23   u128 x = b;
24   store (x >> 0, x >> 64);
25 }
26 
27 int
main(void)28 main (void)
29 {
30   foo ();
31   if (g0 != 0 || g1 != 0)
32     __builtin_abort ();
33   return 0;
34 }
35