2018-05-17 Richard Biener <rguenther@suse.de>
[official-gcc.git] / gcc / testsuite / gcc.dg / tree-ssa / vrp64.c
blob2ab328f1d8b6cda623596644dabb0fbb88ff97c3
1 /* PR tree-optimization/51721 */
2 /* { dg-do link } */
3 /* { dg-options "-O2" } */
5 extern void link_error (void);
7 #define BITSM1 (sizeof (int) * __CHAR_BIT__ - 1)
9 void
10 f1 (unsigned int s)
12 if (s >> BITSM1 != 0)
14 if (s == 0 || s == 5 || s == __INT_MAX__)
15 link_error ();
17 else
19 if (s == 1U + __INT_MAX__ || s == 6U + __INT_MAX__ || s == -1U)
20 link_error ();
24 void
25 f2 (int s)
27 if (s >> BITSM1 == 0)
29 if (s == -1 || s == -5 || s == -__INT_MAX__ - 1)
30 link_error ();
32 else
34 if (s == 0 || s == 5 || s == __INT_MAX__)
35 link_error ();
39 void
40 f3 (unsigned int s)
42 if ((s & (1U << BITSM1)) != 0)
44 if (s == 0 || s == 5 || s == __INT_MAX__)
45 link_error ();
47 else
49 if (s == 1U + __INT_MAX__ || s == 6U + __INT_MAX__ || s == -1U)
50 link_error ();
54 void
55 f4 (int s)
57 if ((s & (1U << BITSM1)) == 0)
59 if (s == -1 || s == -5 || s == -__INT_MAX__ - 1)
60 link_error ();
62 else
64 if (s == 0 || s == 5 || s == __INT_MAX__)
65 link_error ();
69 void
70 f5 (unsigned int s)
72 if ((int) s < 0)
74 if (s == 0 || s == 5 || s == __INT_MAX__)
75 link_error ();
77 else
79 if (s == 1U + __INT_MAX__ || s == 6U + __INT_MAX__ || s == -1U)
80 link_error ();
84 void
85 f6 (unsigned int s)
87 if ((int) s < 4)
89 if (s == 4 || s == 6 || s == __INT_MAX__)
90 link_error ();
92 else
94 if (s == 1U + __INT_MAX__ || s == 6U + __INT_MAX__ || s == -1U
95 || s == 3 || s == 0)
96 link_error ();
100 void
101 f7 (unsigned int s)
103 if ((int) s <= -7)
105 if (s == -6U || s == -1U || s == 0 || s == 4 || s == 6 || s == __INT_MAX__)
106 link_error ();
108 else
110 if (s == 1U + __INT_MAX__ || s == 6U + __INT_MAX__ || s == -9U
111 || s == -7U)
112 link_error ();
116 void
117 f8 (unsigned int s)
119 if ((int) s >= 4)
121 if (s == 1U + __INT_MAX__ || s == 6U + __INT_MAX__ || s == -1U
122 || s == 3 || s == 0)
123 link_error ();
125 else
127 if (s == 4 || s == 6 || s == __INT_MAX__)
128 link_error ();
132 void
133 f9 (unsigned int s)
135 if ((int) s > -7)
137 if (s == 1U + __INT_MAX__ || s == 6U + __INT_MAX__ || s == -9U
138 || s == -7U)
139 link_error ();
141 else
143 if (s == -6U || s == -1U || s == 0 || s == 4 || s == 6 || s == __INT_MAX__)
144 link_error ();
149 main ()
151 return 0;