OSDN Git Service

Backported from mainline
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.c-torture / execute / cmpsf-1.c
1 #include <limits.h>
2
3 #define F 140
4 #define T 13
5
6 feq (float x, float y)
7 {
8   if (x == y)
9     return T;
10   else
11     return F;
12 }
13
14 fne (float x, float y)
15 {
16   if (x != y)
17     return T;
18   else
19     return F;
20 }
21
22 flt (float x, float y)
23 {
24   if (x < y)
25     return T;
26   else
27     return F;
28 }
29
30 fge (float x, float y)
31 {
32   if (x >= y)
33     return T;
34   else
35     return F;
36 }
37
38 fgt (float x, float y)
39 {
40   if (x > y)
41     return T;
42   else
43     return F;
44 }
45
46 fle (float x, float y)
47 {
48   if (x <= y)
49     return T;
50   else
51     return F;
52 }
53
54 float args[] =
55 {
56   0.0F,
57   1.0F,
58   -1.0F, 
59   __FLT_MAX__,
60   __FLT_MIN__,
61   0.0000000000001F,
62   123456789.0F,
63   -987654321.0F
64 };
65
66 int correct_results[] =
67 {
68  T, F, F, T, F, T,                                             
69  F, T, T, F, F, T,                                             
70  F, T, F, T, T, F,                                             
71  F, T, T, F, F, T,                                             
72  F, T, T, F, F, T,                                             
73  F, T, T, F, F, T,                                             
74  F, T, T, F, F, T,                                             
75  F, T, F, T, T, F,                                             
76  F, T, F, T, T, F,                                             
77  T, F, F, T, F, T,                                             
78  F, T, F, T, T, F,                                             
79  F, T, T, F, F, T,                                             
80  F, T, F, T, T, F,                                             
81  F, T, F, T, T, F,                                             
82  F, T, T, F, F, T,                                             
83  F, T, F, T, T, F,                                             
84  F, T, T, F, F, T,                                             
85  F, T, T, F, F, T,                                             
86  T, F, F, T, F, T,                                             
87  F, T, T, F, F, T,                                             
88  F, T, T, F, F, T,                                             
89  F, T, T, F, F, T,                                             
90  F, T, T, F, F, T,                                             
91  F, T, F, T, T, F,                                             
92  F, T, F, T, T, F,                                             
93  F, T, F, T, T, F,
94  F, T, F, T, T, F,
95  T, F, F, T, F, T,
96  F, T, F, T, T, F,
97  F, T, F, T, T, F,
98  F, T, F, T, T, F,
99  F, T, F, T, T, F,
100  F, T, F, T, T, F,
101  F, T, T, F, F, T,
102  F, T, F, T, T, F,
103  F, T, T, F, F, T,
104  T, F, F, T, F, T,
105  F, T, T, F, F, T,
106  F, T, T, F, F, T,
107  F, T, F, T, T, F,
108  F, T, F, T, T, F,
109  F, T, T, F, F, T,
110  F, T, F, T, T, F,
111  F, T, T, F, F, T,
112  F, T, F, T, T, F,
113  T, F, F, T, F, T,
114  F, T, T, F, F, T,
115  F, T, F, T, T, F,
116  F, T, F, T, T, F,
117  F, T, F, T, T, F,
118  F, T, F, T, T, F,
119  F, T, T, F, F, T,
120  F, T, F, T, T, F,
121  F, T, F, T, T, F,
122  T, F, F, T, F, T,
123  F, T, F, T, T, F,
124  F, T, T, F, F, T,
125  F, T, T, F, F, T,
126  F, T, T, F, F, T,
127  F, T, T, F, F, T,
128  F, T, T, F, F, T,
129  F, T, T, F, F, T,
130  F, T, T, F, F, T,
131  T, F, F, T, F, T,
132 };
133
134 int
135 main (void)
136 {
137   int i, j, *res = correct_results;
138
139   for (i = 0; i < 8; i++)
140     {
141       float arg0 = args[i];
142       for (j = 0; j < 8; j++)
143         {
144           float arg1 = args[j];
145
146           if (feq (arg0, arg1) != *res++)
147             abort ();
148           if (fne (arg0, arg1) != *res++)
149             abort ();
150           if (flt (arg0, arg1) != *res++)
151             abort ();
152           if (fge (arg0, arg1) != *res++)
153             abort ();
154           if (fgt (arg0, arg1) != *res++)
155             abort ();
156           if (fle (arg0, arg1) != *res++)
157             abort ();
158         }
159     }
160   exit (0);
161 }