1/* PR middle-end/45262 */
2
3/* { dg-require-effective-target int32plus } */
4
5extern void abort (void);
6
7int
8foo (unsigned int x)
9{
10  return ((int) x < 0) || ((int) (-x) < 0);
11}
12
13int
14bar (unsigned int x)
15{
16  return x >> 31 || (-x) >> 31;
17}
18
19int
20main (void)
21{
22  if (foo (1) != 1)
23    abort ();
24  if (foo (0) != 0)
25    abort ();
26  if (foo (-1) != 1)
27    abort ();
28  if (bar (1) != 1)
29    abort ();
30  if (bar (0) != 0)
31    abort ();
32  if (bar (-1) != 1)
33    abort ();
34  return 0;
35}
36