1/* Problem only noticed on SH for -mcbranchdi DImode comparison with constants.
2 * Target dependant failure but test valid for alls.  */
3/* { dg-do run } */
4/* { dg-options "-O0" } */
5/* { dg-options "-O0 -mcbranchdi" { target sh4-*-* } } */
6
7extern void abort(void);
8extern void exit(int);
9
10int test2(long long n)
11{
12  if (n < 2)
13    return 1;
14  return 0;
15}
16
17int test1(long long n)
18{
19  if (n < 1)
20    return 1;
21  return 0;
22}
23
24int test0(long long n)
25{
26  if (n < 0)
27    return 1;
28  return 0;
29}
30
31int test1n(long long n)
32{
33  if (n < -1LL)
34    return 1;
35  return 0;
36}
37
38int test2n(long long n)
39{
40  if (n < -2LL)
41    return 1;
42  return 0;
43}
44
45int main()
46{
47  if (test2n (-1LL))
48    abort ();
49
50  if (test2n (-2LL))
51    abort ();
52
53  if (test2n (0LL))
54    abort ();
55
56  if (test2n (1LL))
57    abort ();
58
59  if (test2n (2LL))
60    abort ();
61
62  if (test1n (-1LL))
63    abort ();
64
65  if (!test1n (-2LL))
66    abort ();
67
68  if (test1n (0LL))
69    abort ();
70
71  if (test1n (1LL))
72    abort ();
73
74  if (test1n (2LL))
75    abort ();
76
77  if (!test0 (-1LL))
78    abort ();
79
80  if (!test0 (-2LL))
81    abort ();
82
83  if (test0 (0LL))
84    abort ();
85
86  if (test0 (1LL))
87    abort ();
88
89  if (test0 (2LL))
90    abort ();
91
92  if (!test2 (-1LL))
93    abort ();
94
95  if (!test2 (-2LL))
96    abort ();
97
98  if (!test2 (0LL))
99    abort ();
100
101  if (!test2 (1LL))
102    abort ();
103
104  if (test2 (2LL))
105    abort ();
106
107  if (!test1 (-1LL))
108    abort ();
109
110  if (!test1 (-2LL))
111    abort ();
112
113  if (!test1 (0LL))
114    abort ();
115
116  if (test1 (1LL))
117    abort ();
118
119  if (test1 (2LL))
120    abort ();
121
122  exit (0);
123}
124
125
126
127