1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-tree-optimized" } */
3 
4 #ifdef __SIZEOF_INT128__
5 typedef unsigned __int128 NT;
6 #else
7 typedef unsigned long long NT;
8 #endif
9 
10 extern void do_not_go_away ();
11 
f(NT x,NT y)12 void f (NT x, NT y)
13 {
14   NT n = 1;
15   n <<= (__CHAR_BIT__ * sizeof (NT) - 1);
16   if (x > n) return;
17   if (y > n) return;
18   NT z = x + y;
19   if (z == 42) do_not_go_away ();
20 }
21 
22 /* { dg-final { scan-tree-dump "do_not_go_away" "optimized" } } */
23