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