OSDN Git Service

Backported from mainline
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.c-torture / execute / cmpdi-1.c
1 #define F 140
2 #define T 13
3
4 feq (x, y)
5      long long int x;
6      long long int y;
7 {
8   if (x == y)
9     return T;
10   else
11     return F;
12 }
13
14 fne (x, y)
15      long long int x;
16      long long int y;
17 {
18   if (x != y)
19     return T;
20   else
21     return F;
22 }
23
24 flt (x, y)
25      long long int x;
26      long long int y;
27 {
28   if (x < y)
29     return T;
30   else
31     return F;
32 }
33
34 fge (x, y)
35      long long int x;
36      long long int y;
37 {
38   if (x >= y)
39     return T;
40   else
41     return F;
42 }
43
44 fgt (x, y)
45      long long int x;
46      long long int y;
47 {
48   if (x > y)
49     return T;
50   else
51     return F;
52 }
53
54 fle (x, y)
55      long long int x;
56      long long int y;
57 {
58   if (x <= y)
59     return T;
60   else
61     return F;
62 }
63
64 fltu (x, y)
65      unsigned long long int x;
66      unsigned long long int y;
67 {
68   if (x < y)
69     return T;
70   else
71     return F;
72 }
73
74 fgeu (x, y)
75      unsigned long long int x;
76      unsigned long long int y;
77 {
78   if (x >= y)
79     return T;
80   else
81     return F;
82 }
83
84 fgtu (x, y)
85      unsigned long long int x;
86      unsigned long long int y;
87 {
88   if (x > y)
89     return T;
90   else
91     return F;
92 }
93
94 fleu (x, y)
95      unsigned long long int x;
96      unsigned long long int y;
97 {
98   if (x <= y)
99     return T;
100   else
101     return F;
102 }
103
104 long long args[] =
105 {
106   0LL,
107   1LL,
108   -1LL,
109   0x7fffffffffffffffLL,
110   0x8000000000000000LL,
111   0x8000000000000001LL,
112   0x1A3F237394D36C58LL,
113   0x93850E92CAAC1B04LL
114 };
115
116 int correct_results[] =
117 {
118   T, F, F, T, F, T, F, T, F, T,
119   F, T, T, F, F, T, T, F, F, T,
120   F, T, F, T, T, F, T, F, F, T,
121   F, T, T, F, F, T, T, F, F, T,
122   F, T, F, T, T, F, T, F, F, T,
123   F, T, F, T, T, F, T, F, F, T,
124   F, T, T, F, F, T, T, F, F, T,
125   F, T, F, T, T, F, T, F, F, T,
126   F, T, F, T, T, F, F, T, T, F,
127   T, F, F, T, F, T, F, T, F, T,
128   F, T, F, T, T, F, T, F, F, T,
129   F, T, T, F, F, T, T, F, F, T,
130   F, T, F, T, T, F, T, F, F, T,
131   F, T, F, T, T, F, T, F, F, T,
132   F, T, T, F, F, T, T, F, F, T,
133   F, T, F, T, T, F, T, F, F, T,
134   F, T, T, F, F, T, F, T, T, F,
135   F, T, T, F, F, T, F, T, T, F,
136   T, F, F, T, F, T, F, T, F, T,
137   F, T, T, F, F, T, F, T, T, F,
138   F, T, F, T, T, F, F, T, T, F,
139   F, T, F, T, T, F, F, T, T, F,
140   F, T, T, F, F, T, F, T, T, F,
141   F, T, F, T, T, F, F, T, T, F,
142   F, T, F, T, T, F, F, T, T, F,
143   F, T, F, T, T, F, F, T, T, F,
144   F, T, F, T, T, F, T, F, F, T,
145   T, F, F, T, F, T, F, T, F, T,
146   F, T, F, T, T, F, T, F, F, T,
147   F, T, F, T, T, F, T, F, F, T,
148   F, T, F, T, T, F, F, T, T, F,
149   F, T, F, T, T, F, T, F, F, T,
150   F, T, T, F, F, T, F, T, T, F,
151   F, T, T, F, F, T, F, T, T, F,
152   F, T, T, F, F, T, T, F, F, T,
153   F, T, T, F, F, T, F, T, T, F,
154   T, F, F, T, F, T, F, T, F, T,
155   F, T, T, F, F, T, T, F, F, T,
156   F, T, T, F, F, T, F, T, T, F,
157   F, T, T, F, F, T, T, F, F, T,
158   F, T, T, F, F, T, F, T, T, F,
159   F, T, T, F, F, T, F, T, T, F,
160   F, T, T, F, F, T, T, F, F, T,
161   F, T, T, F, F, T, F, T, T, F,
162   F, T, F, T, T, F, F, T, T, F,
163   T, F, F, T, F, T, F, T, F, T,
164   F, T, T, F, F, T, F, T, T, F,
165   F, T, T, F, F, T, T, F, F, T,
166   F, T, F, T, T, F, F, T, T, F,
167   F, T, F, T, T, F, F, T, T, F,
168   F, T, F, T, T, F, T, F, F, T,
169   F, T, T, F, F, T, T, F, F, T,
170   F, T, F, T, T, F, T, F, F, T,
171   F, T, F, T, T, F, T, F, F, T,
172   T, F, F, T, F, T, F, T, F, T,
173   F, T, F, T, T, F, T, F, F, T,
174   F, T, T, F, F, T, F, T, T, F,
175   F, T, T, F, F, T, F, T, T, F,
176   F, T, T, F, F, T, T, F, F, T,
177   F, T, T, F, F, T, F, T, T, F,
178   F, T, F, T, T, F, F, T, T, F,
179   F, T, F, T, T, F, F, T, T, F,
180   F, T, T, F, F, T, F, T, T, F,
181   T, F, F, T, F, T, F, T, F, T
182 };
183
184 main ()
185 {
186   int i, j, *res = correct_results;
187
188   for (i = 0; i < 8; i++)
189     {
190       long long arg0 = args[i];
191       for (j = 0; j < 8; j++)
192         {
193           long long arg1 = args[j];
194
195           if (feq (arg0, arg1) != *res++)
196             abort ();
197           if (fne (arg0, arg1) != *res++)
198             abort ();
199           if (flt (arg0, arg1) != *res++)
200             abort ();
201           if (fge (arg0, arg1) != *res++)
202             abort ();
203           if (fgt (arg0, arg1) != *res++)
204             abort ();
205           if (fle (arg0, arg1) != *res++)
206             abort ();
207           if (fltu (arg0, arg1) != *res++)
208             abort ();
209           if (fgeu (arg0, arg1) != *res++)
210             abort ();
211           if (fgtu (arg0, arg1) != *res++)
212             abort ();
213           if (fleu (arg0, arg1) != *res++)
214             abort ();
215         }
216     }
217   exit (0);
218 }