1 void abort(void);
2 
3 int
movegt(int x,int y,long long a)4 movegt(int x, int y, long long a)
5 {
6   int i;
7   int ret = 0;
8   for (i = 0; i < y; i++)
9     {
10       if (a >= (long long) 0xf000000000000000LL)
11 	ret = x;
12       else
13 	ret = y;
14     }
15   return ret;
16 }
17 
18 struct test
19 {
20   long long val;
21   int ret;
22 } tests[] = {
23   { 0xf000000000000000LL, -1 },
24   { 0xefffffffffffffffLL, 1 },
25   { 0xf000000000000001LL, -1 },
26   { 0x0000000000000000LL, -1 },
27   { 0x8000000000000000LL, 1 },
28 };
29 
30 int
main()31 main()
32 {
33   int i;
34   for (i = 0; i < sizeof (tests) / sizeof (tests[0]); i++)
35     {
36       if (movegt (-1, 1, tests[i].val) != tests[i].ret)
37 	abort ();
38     }
39   return 0;
40 }
41