libcpp, c, middle-end: Optimize initializers using #embed in C
[official-gcc.git] / gcc / testsuite / gcc.dg / tree-ssa / vrp121.c
blob3af5a9a2ec7ebe10705e20866b9987ae4625bc92
1 /* PR tree-optimization/89143 */
2 /* { dg-do compile } */
3 /* { dg-options "-O2 -fdump-tree-optimized" } */
4 /* { dg-final { scan-tree-dump-not "link_error \\\(" "optimized" } } */
6 void link_error (void);
8 void
9 f1 (signed char i)
11 if (__builtin_abs (i) < 0 || __builtin_abs (i) > __SCHAR_MAX__ + 1)
12 link_error ();
15 void
16 f2 (signed char i)
18 if (i < 0 || i > 15)
19 __builtin_unreachable ();
20 if (__builtin_abs (i) < 0 || __builtin_abs (i) > 15)
21 link_error ();
24 void
25 f3 (signed char i)
27 if (i < 19 || i > 25)
28 __builtin_unreachable ();
29 if (__builtin_abs (i) < 19 || __builtin_abs (i) > 25)
30 link_error ();
33 void
34 f4 (signed char i)
36 if (i > -60)
37 __builtin_unreachable ();
38 if (__builtin_abs (i) < 60 || __builtin_abs (i) > __SCHAR_MAX__ + 1)
39 link_error ();
42 void
43 f5 (signed char i)
45 if (i < -__SCHAR_MAX__ || i > -30)
46 __builtin_unreachable ();
47 if (__builtin_abs (i) < 30 || __builtin_abs (i) > __SCHAR_MAX__)
48 link_error ();
51 void
52 f6 (signed char i)
54 if (i < -__SCHAR_MAX__ || i > 30)
55 __builtin_unreachable ();
56 if (__builtin_abs (i) < 0 || __builtin_abs (i) > __SCHAR_MAX__)
57 link_error ();
60 void
61 f7 (signed char i)
63 if (i < -31 || i > 30)
64 __builtin_unreachable ();
65 if (__builtin_abs (i) < 0 || __builtin_abs (i) > 31)
66 link_error ();