LWG 3035. std::allocator's constructors should be constexpr
[official-gcc.git] / gcc / testsuite / gcc.dg / tree-prof / cmpsf-1.c
blob16adb92e1ca13e8e7a2145500d1f984712ac6e23
1 /* Testcase derived from gcc.c-torture/execute cmpsf-1.c
2 which showed jump threading profile insanities. */
3 /* { dg-options "-Ofast -fdump-tree-dom2-all" } */
5 #include <limits.h>
7 void abort();
8 extern void exit (int);
10 #define F 140
11 #define T 13
13 int
14 feq (float x, float y)
16 if (x == y)
17 return T;
18 else
19 return F;
22 int
23 fne (float x, float y)
25 if (x != y)
26 return T;
27 else
28 return F;
31 int
32 flt (float x, float y)
34 if (x < y)
35 return T;
36 else
37 return F;
40 int
41 fge (float x, float y)
43 if (x >= y)
44 return T;
45 else
46 return F;
49 int
50 fgt (float x, float y)
52 if (x > y)
53 return T;
54 else
55 return F;
58 int
59 fle (float x, float y)
61 if (x <= y)
62 return T;
63 else
64 return F;
67 float args[] =
69 0.0F,
70 1.0F,
71 -1.0F,
72 __FLT_MAX__,
73 __FLT_MIN__,
74 0.0000000000001F,
75 123456789.0F,
76 -987654321.0F
79 int correct_results[] =
81 T, F, F, T, F, T,
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 F, T, T, F, F, T,
87 F, T, T, F, F, T,
88 F, T, F, T, T, F,
89 F, T, F, T, T, F,
90 T, F, F, T, F, T,
91 F, T, F, T, T, F,
92 F, T, T, F, F, T,
93 F, T, F, T, T, F,
94 F, T, F, T, T, F,
95 F, T, T, F, F, T,
96 F, T, F, T, T, F,
97 F, T, T, F, F, T,
98 F, T, T, F, F, T,
99 T, F, F, T, F, T,
100 F, T, T, F, F, T,
101 F, T, T, F, F, T,
102 F, T, T, F, F, T,
103 F, T, T, F, F, T,
104 F, T, F, T, T, F,
105 F, T, F, T, T, F,
106 F, T, F, T, T, F,
107 F, T, F, T, T, F,
108 T, F, F, T, F, T,
109 F, T, F, T, T, F,
110 F, T, F, T, T, F,
111 F, T, F, T, T, F,
112 F, T, F, T, T, F,
113 F, T, F, T, T, F,
114 F, T, T, F, F, T,
115 F, T, F, T, T, F,
116 F, T, T, F, F, T,
117 T, F, F, T, F, T,
118 F, T, T, F, F, T,
119 F, T, T, F, F, T,
120 F, T, F, T, T, F,
121 F, T, F, T, T, F,
122 F, T, T, F, F, T,
123 F, T, F, T, T, F,
124 F, T, T, F, F, T,
125 F, T, F, T, T, F,
126 T, F, F, T, F, T,
127 F, T, T, F, F, T,
128 F, T, F, T, T, F,
129 F, T, F, T, T, F,
130 F, T, F, T, T, F,
131 F, T, F, T, T, F,
132 F, T, T, F, F, T,
133 F, T, F, T, T, F,
134 F, T, F, T, T, F,
135 T, F, F, T, F, T,
136 F, T, F, T, T, F,
137 F, T, T, F, F, T,
138 F, T, T, F, F, T,
139 F, T, T, F, F, T,
140 F, T, T, F, F, T,
141 F, T, T, F, F, T,
142 F, T, T, F, F, T,
143 F, T, T, F, F, T,
144 T, F, F, T, F, T,
147 void
148 test (void)
150 int i, j, *res = correct_results;
152 for (i = 0; i < 8; i++)
154 float arg0 = args[i];
155 for (j = 0; j < 8; j++)
157 float arg1 = args[j];
159 if (feq (arg0, arg1) != *res++)
160 abort ();
161 if (fne (arg0, arg1) != *res++)
162 abort ();
163 if (flt (arg0, arg1) != *res++)
164 abort ();
165 if (fge (arg0, arg1) != *res++)
166 abort ();
167 if (fgt (arg0, arg1) != *res++)
168 abort ();
169 if (fle (arg0, arg1) != *res++)
170 abort ();
176 main (void)
178 int i;
179 for (i=0; i<100; i++)
180 test ();
181 exit (0);
184 /* { dg-final-use-not-autofdo { scan-tree-dump-not "Invalid sum" "dom2"} } */