1 //===-- cmpdf2_test.c - Test __cmpdf2 -------------------------------------===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is dual licensed under the MIT and the University of Illinois Open 6 // Source Licenses. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 // 10 // This file tests single-precision soft-double comparisons for the compiler-rt 11 // library. 12 // 13 //===----------------------------------------------------------------------===// 14 15 #include <stdio.h> 16 17 int __eqdf2(double, double); 18 int __gedf2(double, double); 19 int __gtdf2(double, double); 20 int __ledf2(double, double); 21 int __ltdf2(double, double); 22 int __nedf2(double, double); 23 int __unorddf2(double, double); 24 25 struct TestVector { 26 double a; 27 double b; 28 int eqReference; 29 int geReference; 30 int gtReference; 31 int leReference; 32 int ltReference; 33 int neReference; 34 int unReference; 35 }; 36 37 int test__cmpdf2(const struct TestVector *vector) { 38 39 if (__eqdf2(vector->a, vector->b) != vector->eqReference) { 40 printf("error in __eqdf2(%a, %a) = %d, expected %d\n", 41 vector->a, vector->b, 42 __eqdf2(vector->a, vector->b), 43 vector->eqReference); 44 return 1; 45 } 46 47 if (__gedf2(vector->a, vector->b) != vector->geReference) { 48 printf("error in __gedf2(%a, %a) = %d, expected %d\n", 49 vector->a, vector->b, 50 __gedf2(vector->a, vector->b), 51 vector->geReference); 52 return 1; 53 } 54 55 if (__gtdf2(vector->a, vector->b) != vector->gtReference) { 56 printf("error in __gtdf2(%a, %a) = %d, expected %d\n", 57 vector->a, vector->b, 58 __gtdf2(vector->a, vector->b), 59 vector->gtReference); 60 return 1; 61 } 62 63 if (__ledf2(vector->a, vector->b) != vector->leReference) { 64 printf("error in __ledf2(%a, %a) = %d, expected %d\n", 65 vector->a, vector->b, 66 __ledf2(vector->a, vector->b), 67 vector->leReference); 68 return 1; 69 } 70 71 if (__ltdf2(vector->a, vector->b) != vector->ltReference) { 72 printf("error in __ltdf2(%a, %a) = %d, expected %d\n", 73 vector->a, vector->b, 74 __ltdf2(vector->a, vector->b), 75 vector->ltReference); 76 return 1; 77 } 78 79 if (__nedf2(vector->a, vector->b) != vector->neReference) { 80 printf("error in __nedf2(%a, %a) = %d, expected %d\n", 81 vector->a, vector->b, 82 __nedf2(vector->a, vector->b), 83 vector->neReference); 84 return 1; 85 } 86 87 if (__unorddf2(vector->a, vector->b) != vector->unReference) { 88 printf("error in __unorddf2(%a, %a) = %d, expected %d\n", 89 vector->a, vector->b, 90 __unorddf2(vector->a, vector->b), 91 vector->unReference); 92 return 1; 93 } 94 95 return 0; 96 } 97 98 /* 99 void generateVectors() { 100 101 const double arguments[] = { 102 __builtin_nan(""), 103 -__builtin_inf(), 104 -0x1.fffffffffffffp1023, 105 -0x1.0000000000001p0 106 -0x1.0000000000000p0, 107 -0x1.fffffffffffffp-1, 108 -0x1.0000000000000p-1022, 109 -0x0.fffffffffffffp-1022, 110 -0x0.0000000000001p-1022, 111 -0.0, 112 0.0, 113 0x0.0000000000001p-1022, 114 0x0.fffffffffffffp-1022, 115 0x1.0000000000000p-1022, 116 0x1.fffffffffffffp-1, 117 0x1.0000000000000p0, 118 0x1.0000000000001p0, 119 0x1.fffffffffffffp1023, 120 __builtin_inf() 121 }; 122 123 int numArguments = sizeof arguments / sizeof arguments[0]; 124 125 for (int i=0; i<numArguments; ++i) { 126 for (int j=0; j<numArguments; ++j) { 127 const double a = arguments[i]; 128 const double b = arguments[j]; 129 const int leResult = a < b ? -1 : a == b ? 0 : 1; 130 const int geResult = a > b ? 1 : a == b ? 0 : -1; 131 const int unResult = a != a || b != b ? 1 : 0; 132 printf("{%a,%a,%d,%d,%d,%d,%d,%d,%d},\n", 133 a, b, 134 leResult, 135 geResult, 136 geResult, 137 leResult, 138 leResult, 139 leResult, 140 unResult); 141 } 142 } 143 } */ 144 145 static const struct TestVector vectors[] = { 146 {__builtin_nan(""),__builtin_nan(""),1,-1,-1,1,1,1,1}, 147 {__builtin_nan(""),-__builtin_inf(),1,-1,-1,1,1,1,1}, 148 {__builtin_nan(""),-0x1.fffffffffffffp+1023,1,-1,-1,1,1,1,1}, 149 {__builtin_nan(""),-0x1p+1,1,-1,-1,1,1,1,1}, 150 {__builtin_nan(""),-0x1.fffffffffffffp-1,1,-1,-1,1,1,1,1}, 151 {__builtin_nan(""),-0x1p-1022,1,-1,-1,1,1,1,1}, 152 {__builtin_nan(""),-0x1.fffffcp-1023,1,-1,-1,1,1,1,1}, 153 {__builtin_nan(""),-0x1p-1074,1,-1,-1,1,1,1,1}, 154 {__builtin_nan(""),-0x0p+0,1,-1,-1,1,1,1,1}, 155 {__builtin_nan(""),0x0p+0,1,-1,-1,1,1,1,1}, 156 {__builtin_nan(""),0x1p-1074,1,-1,-1,1,1,1,1}, 157 {__builtin_nan(""),0x1.fffffcp-1023,1,-1,-1,1,1,1,1}, 158 {__builtin_nan(""),0x1p-1022,1,-1,-1,1,1,1,1}, 159 {__builtin_nan(""),0x1.fffffffffffffp-1,1,-1,-1,1,1,1,1}, 160 {__builtin_nan(""),0x1p+0,1,-1,-1,1,1,1,1}, 161 {__builtin_nan(""),0x1.0000000000001p+0,1,-1,-1,1,1,1,1}, 162 {__builtin_nan(""),0x1.fffffffffffffp+1023,1,-1,-1,1,1,1,1}, 163 {__builtin_nan(""),__builtin_inf(),1,-1,-1,1,1,1,1}, 164 {-__builtin_inf(),__builtin_nan(""),1,-1,-1,1,1,1,1}, 165 {-__builtin_inf(),-__builtin_inf(),0,0,0,0,0,0,0}, 166 {-__builtin_inf(),-0x1.fffffffffffffp+1023,-1,-1,-1,-1,-1,-1,0}, 167 {-__builtin_inf(),-0x1p+1,-1,-1,-1,-1,-1,-1,0}, 168 {-__builtin_inf(),-0x1.fffffffffffffp-1,-1,-1,-1,-1,-1,-1,0}, 169 {-__builtin_inf(),-0x1p-1022,-1,-1,-1,-1,-1,-1,0}, 170 {-__builtin_inf(),-0x1.fffffcp-1023,-1,-1,-1,-1,-1,-1,0}, 171 {-__builtin_inf(),-0x1p-1074,-1,-1,-1,-1,-1,-1,0}, 172 {-__builtin_inf(),-0x0p+0,-1,-1,-1,-1,-1,-1,0}, 173 {-__builtin_inf(),0x0p+0,-1,-1,-1,-1,-1,-1,0}, 174 {-__builtin_inf(),0x1p-1074,-1,-1,-1,-1,-1,-1,0}, 175 {-__builtin_inf(),0x1.fffffcp-1023,-1,-1,-1,-1,-1,-1,0}, 176 {-__builtin_inf(),0x1p-1022,-1,-1,-1,-1,-1,-1,0}, 177 {-__builtin_inf(),0x1.fffffffffffffp-1,-1,-1,-1,-1,-1,-1,0}, 178 {-__builtin_inf(),0x1p+0,-1,-1,-1,-1,-1,-1,0}, 179 {-__builtin_inf(),0x1.0000000000001p+0,-1,-1,-1,-1,-1,-1,0}, 180 {-__builtin_inf(),0x1.fffffffffffffp+1023,-1,-1,-1,-1,-1,-1,0}, 181 {-__builtin_inf(),__builtin_inf(),-1,-1,-1,-1,-1,-1,0}, 182 {-0x1.fffffffffffffp+1023,__builtin_nan(""),1,-1,-1,1,1,1,1}, 183 {-0x1.fffffffffffffp+1023,-__builtin_inf(),1,1,1,1,1,1,0}, 184 {-0x1.fffffffffffffp+1023,-0x1.fffffffffffffp+1023,0,0,0,0,0,0,0}, 185 {-0x1.fffffffffffffp+1023,-0x1p+1,-1,-1,-1,-1,-1,-1,0}, 186 {-0x1.fffffffffffffp+1023,-0x1.fffffffffffffp-1,-1,-1,-1,-1,-1,-1,0}, 187 {-0x1.fffffffffffffp+1023,-0x1p-1022,-1,-1,-1,-1,-1,-1,0}, 188 {-0x1.fffffffffffffp+1023,-0x1.fffffcp-1023,-1,-1,-1,-1,-1,-1,0}, 189 {-0x1.fffffffffffffp+1023,-0x1p-1074,-1,-1,-1,-1,-1,-1,0}, 190 {-0x1.fffffffffffffp+1023,-0x0p+0,-1,-1,-1,-1,-1,-1,0}, 191 {-0x1.fffffffffffffp+1023,0x0p+0,-1,-1,-1,-1,-1,-1,0}, 192 {-0x1.fffffffffffffp+1023,0x1p-1074,-1,-1,-1,-1,-1,-1,0}, 193 {-0x1.fffffffffffffp+1023,0x1.fffffcp-1023,-1,-1,-1,-1,-1,-1,0}, 194 {-0x1.fffffffffffffp+1023,0x1p-1022,-1,-1,-1,-1,-1,-1,0}, 195 {-0x1.fffffffffffffp+1023,0x1.fffffffffffffp-1,-1,-1,-1,-1,-1,-1,0}, 196 {-0x1.fffffffffffffp+1023,0x1p+0,-1,-1,-1,-1,-1,-1,0}, 197 {-0x1.fffffffffffffp+1023,0x1.0000000000001p+0,-1,-1,-1,-1,-1,-1,0}, 198 {-0x1.fffffffffffffp+1023,0x1.fffffffffffffp+1023,-1,-1,-1,-1,-1,-1,0}, 199 {-0x1.fffffffffffffp+1023,__builtin_inf(),-1,-1,-1,-1,-1,-1,0}, 200 {-0x1p+1,__builtin_nan(""),1,-1,-1,1,1,1,1}, 201 {-0x1p+1,-__builtin_inf(),1,1,1,1,1,1,0}, 202 {-0x1p+1,-0x1.fffffffffffffp+1023,1,1,1,1,1,1,0}, 203 {-0x1p+1,-0x1p+1,0,0,0,0,0,0,0}, 204 {-0x1p+1,-0x1.fffffffffffffp-1,-1,-1,-1,-1,-1,-1,0}, 205 {-0x1p+1,-0x1p-1022,-1,-1,-1,-1,-1,-1,0}, 206 {-0x1p+1,-0x1.fffffcp-1023,-1,-1,-1,-1,-1,-1,0}, 207 {-0x1p+1,-0x1p-1074,-1,-1,-1,-1,-1,-1,0}, 208 {-0x1p+1,-0x0p+0,-1,-1,-1,-1,-1,-1,0}, 209 {-0x1p+1,0x0p+0,-1,-1,-1,-1,-1,-1,0}, 210 {-0x1p+1,0x1p-1074,-1,-1,-1,-1,-1,-1,0}, 211 {-0x1p+1,0x1.fffffcp-1023,-1,-1,-1,-1,-1,-1,0}, 212 {-0x1p+1,0x1p-1022,-1,-1,-1,-1,-1,-1,0}, 213 {-0x1p+1,0x1.fffffffffffffp-1,-1,-1,-1,-1,-1,-1,0}, 214 {-0x1p+1,0x1p+0,-1,-1,-1,-1,-1,-1,0}, 215 {-0x1p+1,0x1.0000000000001p+0,-1,-1,-1,-1,-1,-1,0}, 216 {-0x1p+1,0x1.fffffffffffffp+1023,-1,-1,-1,-1,-1,-1,0}, 217 {-0x1p+1,__builtin_inf(),-1,-1,-1,-1,-1,-1,0}, 218 {-0x1.fffffffffffffp-1,__builtin_nan(""),1,-1,-1,1,1,1,1}, 219 {-0x1.fffffffffffffp-1,-__builtin_inf(),1,1,1,1,1,1,0}, 220 {-0x1.fffffffffffffp-1,-0x1.fffffffffffffp+1023,1,1,1,1,1,1,0}, 221 {-0x1.fffffffffffffp-1,-0x1p+1,1,1,1,1,1,1,0}, 222 {-0x1.fffffffffffffp-1,-0x1.fffffffffffffp-1,0,0,0,0,0,0,0}, 223 {-0x1.fffffffffffffp-1,-0x1p-1022,-1,-1,-1,-1,-1,-1,0}, 224 {-0x1.fffffffffffffp-1,-0x1.fffffcp-1023,-1,-1,-1,-1,-1,-1,0}, 225 {-0x1.fffffffffffffp-1,-0x1p-1074,-1,-1,-1,-1,-1,-1,0}, 226 {-0x1.fffffffffffffp-1,-0x0p+0,-1,-1,-1,-1,-1,-1,0}, 227 {-0x1.fffffffffffffp-1,0x0p+0,-1,-1,-1,-1,-1,-1,0}, 228 {-0x1.fffffffffffffp-1,0x1p-1074,-1,-1,-1,-1,-1,-1,0}, 229 {-0x1.fffffffffffffp-1,0x1.fffffcp-1023,-1,-1,-1,-1,-1,-1,0}, 230 {-0x1.fffffffffffffp-1,0x1p-1022,-1,-1,-1,-1,-1,-1,0}, 231 {-0x1.fffffffffffffp-1,0x1.fffffffffffffp-1,-1,-1,-1,-1,-1,-1,0}, 232 {-0x1.fffffffffffffp-1,0x1p+0,-1,-1,-1,-1,-1,-1,0}, 233 {-0x1.fffffffffffffp-1,0x1.0000000000001p+0,-1,-1,-1,-1,-1,-1,0}, 234 {-0x1.fffffffffffffp-1,0x1.fffffffffffffp+1023,-1,-1,-1,-1,-1,-1,0}, 235 {-0x1.fffffffffffffp-1,__builtin_inf(),-1,-1,-1,-1,-1,-1,0}, 236 {-0x1p-1022,__builtin_nan(""),1,-1,-1,1,1,1,1}, 237 {-0x1p-1022,-__builtin_inf(),1,1,1,1,1,1,0}, 238 {-0x1p-1022,-0x1.fffffffffffffp+1023,1,1,1,1,1,1,0}, 239 {-0x1p-1022,-0x1p+1,1,1,1,1,1,1,0}, 240 {-0x1p-1022,-0x1.fffffffffffffp-1,1,1,1,1,1,1,0}, 241 {-0x1p-1022,-0x1p-1022,0,0,0,0,0,0,0}, 242 {-0x1p-1022,-0x1.fffffcp-1023,-1,-1,-1,-1,-1,-1,0}, 243 {-0x1p-1022,-0x1p-1074,-1,-1,-1,-1,-1,-1,0}, 244 {-0x1p-1022,-0x0p+0,-1,-1,-1,-1,-1,-1,0}, 245 {-0x1p-1022,0x0p+0,-1,-1,-1,-1,-1,-1,0}, 246 {-0x1p-1022,0x1p-1074,-1,-1,-1,-1,-1,-1,0}, 247 {-0x1p-1022,0x1.fffffcp-1023,-1,-1,-1,-1,-1,-1,0}, 248 {-0x1p-1022,0x1p-1022,-1,-1,-1,-1,-1,-1,0}, 249 {-0x1p-1022,0x1.fffffffffffffp-1,-1,-1,-1,-1,-1,-1,0}, 250 {-0x1p-1022,0x1p+0,-1,-1,-1,-1,-1,-1,0}, 251 {-0x1p-1022,0x1.0000000000001p+0,-1,-1,-1,-1,-1,-1,0}, 252 {-0x1p-1022,0x1.fffffffffffffp+1023,-1,-1,-1,-1,-1,-1,0}, 253 {-0x1p-1022,__builtin_inf(),-1,-1,-1,-1,-1,-1,0}, 254 {-0x1.fffffcp-1023,__builtin_nan(""),1,-1,-1,1,1,1,1}, 255 {-0x1.fffffcp-1023,-__builtin_inf(),1,1,1,1,1,1,0}, 256 {-0x1.fffffcp-1023,-0x1.fffffffffffffp+1023,1,1,1,1,1,1,0}, 257 {-0x1.fffffcp-1023,-0x1p+1,1,1,1,1,1,1,0}, 258 {-0x1.fffffcp-1023,-0x1.fffffffffffffp-1,1,1,1,1,1,1,0}, 259 {-0x1.fffffcp-1023,-0x1p-1022,1,1,1,1,1,1,0}, 260 {-0x1.fffffcp-1023,-0x1.fffffcp-1023,0,0,0,0,0,0,0}, 261 {-0x1.fffffcp-1023,-0x1p-1074,-1,-1,-1,-1,-1,-1,0}, 262 {-0x1.fffffcp-1023,-0x0p+0,-1,-1,-1,-1,-1,-1,0}, 263 {-0x1.fffffcp-1023,0x0p+0,-1,-1,-1,-1,-1,-1,0}, 264 {-0x1.fffffcp-1023,0x1p-1074,-1,-1,-1,-1,-1,-1,0}, 265 {-0x1.fffffcp-1023,0x1.fffffcp-1023,-1,-1,-1,-1,-1,-1,0}, 266 {-0x1.fffffcp-1023,0x1p-1022,-1,-1,-1,-1,-1,-1,0}, 267 {-0x1.fffffcp-1023,0x1.fffffffffffffp-1,-1,-1,-1,-1,-1,-1,0}, 268 {-0x1.fffffcp-1023,0x1p+0,-1,-1,-1,-1,-1,-1,0}, 269 {-0x1.fffffcp-1023,0x1.0000000000001p+0,-1,-1,-1,-1,-1,-1,0}, 270 {-0x1.fffffcp-1023,0x1.fffffffffffffp+1023,-1,-1,-1,-1,-1,-1,0}, 271 {-0x1.fffffcp-1023,__builtin_inf(),-1,-1,-1,-1,-1,-1,0}, 272 {-0x1p-1074,__builtin_nan(""),1,-1,-1,1,1,1,1}, 273 {-0x1p-1074,-__builtin_inf(),1,1,1,1,1,1,0}, 274 {-0x1p-1074,-0x1.fffffffffffffp+1023,1,1,1,1,1,1,0}, 275 {-0x1p-1074,-0x1p+1,1,1,1,1,1,1,0}, 276 {-0x1p-1074,-0x1.fffffffffffffp-1,1,1,1,1,1,1,0}, 277 {-0x1p-1074,-0x1p-1022,1,1,1,1,1,1,0}, 278 {-0x1p-1074,-0x1.fffffcp-1023,1,1,1,1,1,1,0}, 279 {-0x1p-1074,-0x1p-1074,0,0,0,0,0,0,0}, 280 {-0x1p-1074,-0x0p+0,-1,-1,-1,-1,-1,-1,0}, 281 {-0x1p-1074,0x0p+0,-1,-1,-1,-1,-1,-1,0}, 282 {-0x1p-1074,0x1p-1074,-1,-1,-1,-1,-1,-1,0}, 283 {-0x1p-1074,0x1.fffffcp-1023,-1,-1,-1,-1,-1,-1,0}, 284 {-0x1p-1074,0x1p-1022,-1,-1,-1,-1,-1,-1,0}, 285 {-0x1p-1074,0x1.fffffffffffffp-1,-1,-1,-1,-1,-1,-1,0}, 286 {-0x1p-1074,0x1p+0,-1,-1,-1,-1,-1,-1,0}, 287 {-0x1p-1074,0x1.0000000000001p+0,-1,-1,-1,-1,-1,-1,0}, 288 {-0x1p-1074,0x1.fffffffffffffp+1023,-1,-1,-1,-1,-1,-1,0}, 289 {-0x1p-1074,__builtin_inf(),-1,-1,-1,-1,-1,-1,0}, 290 {-0x0p+0,__builtin_nan(""),1,-1,-1,1,1,1,1}, 291 {-0x0p+0,-__builtin_inf(),1,1,1,1,1,1,0}, 292 {-0x0p+0,-0x1.fffffffffffffp+1023,1,1,1,1,1,1,0}, 293 {-0x0p+0,-0x1p+1,1,1,1,1,1,1,0}, 294 {-0x0p+0,-0x1.fffffffffffffp-1,1,1,1,1,1,1,0}, 295 {-0x0p+0,-0x1p-1022,1,1,1,1,1,1,0}, 296 {-0x0p+0,-0x1.fffffcp-1023,1,1,1,1,1,1,0}, 297 {-0x0p+0,-0x1p-1074,1,1,1,1,1,1,0}, 298 {-0x0p+0,-0x0p+0,0,0,0,0,0,0,0}, 299 {-0x0p+0,0x0p+0,0,0,0,0,0,0,0}, 300 {-0x0p+0,0x1p-1074,-1,-1,-1,-1,-1,-1,0}, 301 {-0x0p+0,0x1.fffffcp-1023,-1,-1,-1,-1,-1,-1,0}, 302 {-0x0p+0,0x1p-1022,-1,-1,-1,-1,-1,-1,0}, 303 {-0x0p+0,0x1.fffffffffffffp-1,-1,-1,-1,-1,-1,-1,0}, 304 {-0x0p+0,0x1p+0,-1,-1,-1,-1,-1,-1,0}, 305 {-0x0p+0,0x1.0000000000001p+0,-1,-1,-1,-1,-1,-1,0}, 306 {-0x0p+0,0x1.fffffffffffffp+1023,-1,-1,-1,-1,-1,-1,0}, 307 {-0x0p+0,__builtin_inf(),-1,-1,-1,-1,-1,-1,0}, 308 {0x0p+0,__builtin_nan(""),1,-1,-1,1,1,1,1}, 309 {0x0p+0,-__builtin_inf(),1,1,1,1,1,1,0}, 310 {0x0p+0,-0x1.fffffffffffffp+1023,1,1,1,1,1,1,0}, 311 {0x0p+0,-0x1p+1,1,1,1,1,1,1,0}, 312 {0x0p+0,-0x1.fffffffffffffp-1,1,1,1,1,1,1,0}, 313 {0x0p+0,-0x1p-1022,1,1,1,1,1,1,0}, 314 {0x0p+0,-0x1.fffffcp-1023,1,1,1,1,1,1,0}, 315 {0x0p+0,-0x1p-1074,1,1,1,1,1,1,0}, 316 {0x0p+0,-0x0p+0,0,0,0,0,0,0,0}, 317 {0x0p+0,0x0p+0,0,0,0,0,0,0,0}, 318 {0x0p+0,0x1p-1074,-1,-1,-1,-1,-1,-1,0}, 319 {0x0p+0,0x1.fffffcp-1023,-1,-1,-1,-1,-1,-1,0}, 320 {0x0p+0,0x1p-1022,-1,-1,-1,-1,-1,-1,0}, 321 {0x0p+0,0x1.fffffffffffffp-1,-1,-1,-1,-1,-1,-1,0}, 322 {0x0p+0,0x1p+0,-1,-1,-1,-1,-1,-1,0}, 323 {0x0p+0,0x1.0000000000001p+0,-1,-1,-1,-1,-1,-1,0}, 324 {0x0p+0,0x1.fffffffffffffp+1023,-1,-1,-1,-1,-1,-1,0}, 325 {0x0p+0,__builtin_inf(),-1,-1,-1,-1,-1,-1,0}, 326 {0x1p-1074,__builtin_nan(""),1,-1,-1,1,1,1,1}, 327 {0x1p-1074,-__builtin_inf(),1,1,1,1,1,1,0}, 328 {0x1p-1074,-0x1.fffffffffffffp+1023,1,1,1,1,1,1,0}, 329 {0x1p-1074,-0x1p+1,1,1,1,1,1,1,0}, 330 {0x1p-1074,-0x1.fffffffffffffp-1,1,1,1,1,1,1,0}, 331 {0x1p-1074,-0x1p-1022,1,1,1,1,1,1,0}, 332 {0x1p-1074,-0x1.fffffcp-1023,1,1,1,1,1,1,0}, 333 {0x1p-1074,-0x1p-1074,1,1,1,1,1,1,0}, 334 {0x1p-1074,-0x0p+0,1,1,1,1,1,1,0}, 335 {0x1p-1074,0x0p+0,1,1,1,1,1,1,0}, 336 {0x1p-1074,0x1p-1074,0,0,0,0,0,0,0}, 337 {0x1p-1074,0x1.fffffcp-1023,-1,-1,-1,-1,-1,-1,0}, 338 {0x1p-1074,0x1p-1022,-1,-1,-1,-1,-1,-1,0}, 339 {0x1p-1074,0x1.fffffffffffffp-1,-1,-1,-1,-1,-1,-1,0}, 340 {0x1p-1074,0x1p+0,-1,-1,-1,-1,-1,-1,0}, 341 {0x1p-1074,0x1.0000000000001p+0,-1,-1,-1,-1,-1,-1,0}, 342 {0x1p-1074,0x1.fffffffffffffp+1023,-1,-1,-1,-1,-1,-1,0}, 343 {0x1p-1074,__builtin_inf(),-1,-1,-1,-1,-1,-1,0}, 344 {0x1.fffffcp-1023,__builtin_nan(""),1,-1,-1,1,1,1,1}, 345 {0x1.fffffcp-1023,-__builtin_inf(),1,1,1,1,1,1,0}, 346 {0x1.fffffcp-1023,-0x1.fffffffffffffp+1023,1,1,1,1,1,1,0}, 347 {0x1.fffffcp-1023,-0x1p+1,1,1,1,1,1,1,0}, 348 {0x1.fffffcp-1023,-0x1.fffffffffffffp-1,1,1,1,1,1,1,0}, 349 {0x1.fffffcp-1023,-0x1p-1022,1,1,1,1,1,1,0}, 350 {0x1.fffffcp-1023,-0x1.fffffcp-1023,1,1,1,1,1,1,0}, 351 {0x1.fffffcp-1023,-0x1p-1074,1,1,1,1,1,1,0}, 352 {0x1.fffffcp-1023,-0x0p+0,1,1,1,1,1,1,0}, 353 {0x1.fffffcp-1023,0x0p+0,1,1,1,1,1,1,0}, 354 {0x1.fffffcp-1023,0x1p-1074,1,1,1,1,1,1,0}, 355 {0x1.fffffcp-1023,0x1.fffffcp-1023,0,0,0,0,0,0,0}, 356 {0x1.fffffcp-1023,0x1p-1022,-1,-1,-1,-1,-1,-1,0}, 357 {0x1.fffffcp-1023,0x1.fffffffffffffp-1,-1,-1,-1,-1,-1,-1,0}, 358 {0x1.fffffcp-1023,0x1p+0,-1,-1,-1,-1,-1,-1,0}, 359 {0x1.fffffcp-1023,0x1.0000000000001p+0,-1,-1,-1,-1,-1,-1,0}, 360 {0x1.fffffcp-1023,0x1.fffffffffffffp+1023,-1,-1,-1,-1,-1,-1,0}, 361 {0x1.fffffcp-1023,__builtin_inf(),-1,-1,-1,-1,-1,-1,0}, 362 {0x1p-1022,__builtin_nan(""),1,-1,-1,1,1,1,1}, 363 {0x1p-1022,-__builtin_inf(),1,1,1,1,1,1,0}, 364 {0x1p-1022,-0x1.fffffffffffffp+1023,1,1,1,1,1,1,0}, 365 {0x1p-1022,-0x1p+1,1,1,1,1,1,1,0}, 366 {0x1p-1022,-0x1.fffffffffffffp-1,1,1,1,1,1,1,0}, 367 {0x1p-1022,-0x1p-1022,1,1,1,1,1,1,0}, 368 {0x1p-1022,-0x1.fffffcp-1023,1,1,1,1,1,1,0}, 369 {0x1p-1022,-0x1p-1074,1,1,1,1,1,1,0}, 370 {0x1p-1022,-0x0p+0,1,1,1,1,1,1,0}, 371 {0x1p-1022,0x0p+0,1,1,1,1,1,1,0}, 372 {0x1p-1022,0x1p-1074,1,1,1,1,1,1,0}, 373 {0x1p-1022,0x1.fffffcp-1023,1,1,1,1,1,1,0}, 374 {0x1p-1022,0x1p-1022,0,0,0,0,0,0,0}, 375 {0x1p-1022,0x1.fffffffffffffp-1,-1,-1,-1,-1,-1,-1,0}, 376 {0x1p-1022,0x1p+0,-1,-1,-1,-1,-1,-1,0}, 377 {0x1p-1022,0x1.0000000000001p+0,-1,-1,-1,-1,-1,-1,0}, 378 {0x1p-1022,0x1.fffffffffffffp+1023,-1,-1,-1,-1,-1,-1,0}, 379 {0x1p-1022,__builtin_inf(),-1,-1,-1,-1,-1,-1,0}, 380 {0x1.fffffffffffffp-1,__builtin_nan(""),1,-1,-1,1,1,1,1}, 381 {0x1.fffffffffffffp-1,-__builtin_inf(),1,1,1,1,1,1,0}, 382 {0x1.fffffffffffffp-1,-0x1.fffffffffffffp+1023,1,1,1,1,1,1,0}, 383 {0x1.fffffffffffffp-1,-0x1p+1,1,1,1,1,1,1,0}, 384 {0x1.fffffffffffffp-1,-0x1.fffffffffffffp-1,1,1,1,1,1,1,0}, 385 {0x1.fffffffffffffp-1,-0x1p-1022,1,1,1,1,1,1,0}, 386 {0x1.fffffffffffffp-1,-0x1.fffffcp-1023,1,1,1,1,1,1,0}, 387 {0x1.fffffffffffffp-1,-0x1p-1074,1,1,1,1,1,1,0}, 388 {0x1.fffffffffffffp-1,-0x0p+0,1,1,1,1,1,1,0}, 389 {0x1.fffffffffffffp-1,0x0p+0,1,1,1,1,1,1,0}, 390 {0x1.fffffffffffffp-1,0x1p-1074,1,1,1,1,1,1,0}, 391 {0x1.fffffffffffffp-1,0x1.fffffcp-1023,1,1,1,1,1,1,0}, 392 {0x1.fffffffffffffp-1,0x1p-1022,1,1,1,1,1,1,0}, 393 {0x1.fffffffffffffp-1,0x1.fffffffffffffp-1,0,0,0,0,0,0,0}, 394 {0x1.fffffffffffffp-1,0x1p+0,-1,-1,-1,-1,-1,-1,0}, 395 {0x1.fffffffffffffp-1,0x1.0000000000001p+0,-1,-1,-1,-1,-1,-1,0}, 396 {0x1.fffffffffffffp-1,0x1.fffffffffffffp+1023,-1,-1,-1,-1,-1,-1,0}, 397 {0x1.fffffffffffffp-1,__builtin_inf(),-1,-1,-1,-1,-1,-1,0}, 398 {0x1p+0,__builtin_nan(""),1,-1,-1,1,1,1,1}, 399 {0x1p+0,-__builtin_inf(),1,1,1,1,1,1,0}, 400 {0x1p+0,-0x1.fffffffffffffp+1023,1,1,1,1,1,1,0}, 401 {0x1p+0,-0x1p+1,1,1,1,1,1,1,0}, 402 {0x1p+0,-0x1.fffffffffffffp-1,1,1,1,1,1,1,0}, 403 {0x1p+0,-0x1p-1022,1,1,1,1,1,1,0}, 404 {0x1p+0,-0x1.fffffcp-1023,1,1,1,1,1,1,0}, 405 {0x1p+0,-0x1p-1074,1,1,1,1,1,1,0}, 406 {0x1p+0,-0x0p+0,1,1,1,1,1,1,0}, 407 {0x1p+0,0x0p+0,1,1,1,1,1,1,0}, 408 {0x1p+0,0x1p-1074,1,1,1,1,1,1,0}, 409 {0x1p+0,0x1.fffffcp-1023,1,1,1,1,1,1,0}, 410 {0x1p+0,0x1p-1022,1,1,1,1,1,1,0}, 411 {0x1p+0,0x1.fffffffffffffp-1,1,1,1,1,1,1,0}, 412 {0x1p+0,0x1p+0,0,0,0,0,0,0,0}, 413 {0x1p+0,0x1.0000000000001p+0,-1,-1,-1,-1,-1,-1,0}, 414 {0x1p+0,0x1.fffffffffffffp+1023,-1,-1,-1,-1,-1,-1,0}, 415 {0x1p+0,__builtin_inf(),-1,-1,-1,-1,-1,-1,0}, 416 {0x1.0000000000001p+0,__builtin_nan(""),1,-1,-1,1,1,1,1}, 417 {0x1.0000000000001p+0,-__builtin_inf(),1,1,1,1,1,1,0}, 418 {0x1.0000000000001p+0,-0x1.fffffffffffffp+1023,1,1,1,1,1,1,0}, 419 {0x1.0000000000001p+0,-0x1p+1,1,1,1,1,1,1,0}, 420 {0x1.0000000000001p+0,-0x1.fffffffffffffp-1,1,1,1,1,1,1,0}, 421 {0x1.0000000000001p+0,-0x1p-1022,1,1,1,1,1,1,0}, 422 {0x1.0000000000001p+0,-0x1.fffffcp-1023,1,1,1,1,1,1,0}, 423 {0x1.0000000000001p+0,-0x1p-1074,1,1,1,1,1,1,0}, 424 {0x1.0000000000001p+0,-0x0p+0,1,1,1,1,1,1,0}, 425 {0x1.0000000000001p+0,0x0p+0,1,1,1,1,1,1,0}, 426 {0x1.0000000000001p+0,0x1p-1074,1,1,1,1,1,1,0}, 427 {0x1.0000000000001p+0,0x1.fffffcp-1023,1,1,1,1,1,1,0}, 428 {0x1.0000000000001p+0,0x1p-1022,1,1,1,1,1,1,0}, 429 {0x1.0000000000001p+0,0x1.fffffffffffffp-1,1,1,1,1,1,1,0}, 430 {0x1.0000000000001p+0,0x1p+0,1,1,1,1,1,1,0}, 431 {0x1.0000000000001p+0,0x1.0000000000001p+0,0,0,0,0,0,0,0}, 432 {0x1.0000000000001p+0,0x1.fffffffffffffp+1023,-1,-1,-1,-1,-1,-1,0}, 433 {0x1.0000000000001p+0,__builtin_inf(),-1,-1,-1,-1,-1,-1,0}, 434 {0x1.fffffffffffffp+1023,__builtin_nan(""),1,-1,-1,1,1,1,1}, 435 {0x1.fffffffffffffp+1023,-__builtin_inf(),1,1,1,1,1,1,0}, 436 {0x1.fffffffffffffp+1023,-0x1.fffffffffffffp+1023,1,1,1,1,1,1,0}, 437 {0x1.fffffffffffffp+1023,-0x1p+1,1,1,1,1,1,1,0}, 438 {0x1.fffffffffffffp+1023,-0x1.fffffffffffffp-1,1,1,1,1,1,1,0}, 439 {0x1.fffffffffffffp+1023,-0x1p-1022,1,1,1,1,1,1,0}, 440 {0x1.fffffffffffffp+1023,-0x1.fffffcp-1023,1,1,1,1,1,1,0}, 441 {0x1.fffffffffffffp+1023,-0x1p-1074,1,1,1,1,1,1,0}, 442 {0x1.fffffffffffffp+1023,-0x0p+0,1,1,1,1,1,1,0}, 443 {0x1.fffffffffffffp+1023,0x0p+0,1,1,1,1,1,1,0}, 444 {0x1.fffffffffffffp+1023,0x1p-1074,1,1,1,1,1,1,0}, 445 {0x1.fffffffffffffp+1023,0x1.fffffcp-1023,1,1,1,1,1,1,0}, 446 {0x1.fffffffffffffp+1023,0x1p-1022,1,1,1,1,1,1,0}, 447 {0x1.fffffffffffffp+1023,0x1.fffffffffffffp-1,1,1,1,1,1,1,0}, 448 {0x1.fffffffffffffp+1023,0x1p+0,1,1,1,1,1,1,0}, 449 {0x1.fffffffffffffp+1023,0x1.0000000000001p+0,1,1,1,1,1,1,0}, 450 {0x1.fffffffffffffp+1023,0x1.fffffffffffffp+1023,0,0,0,0,0,0,0}, 451 {0x1.fffffffffffffp+1023,__builtin_inf(),-1,-1,-1,-1,-1,-1,0}, 452 {__builtin_inf(),__builtin_nan(""),1,-1,-1,1,1,1,1}, 453 {__builtin_inf(),-__builtin_inf(),1,1,1,1,1,1,0}, 454 {__builtin_inf(),-0x1.fffffffffffffp+1023,1,1,1,1,1,1,0}, 455 {__builtin_inf(),-0x1p+1,1,1,1,1,1,1,0}, 456 {__builtin_inf(),-0x1.fffffffffffffp-1,1,1,1,1,1,1,0}, 457 {__builtin_inf(),-0x1p-1022,1,1,1,1,1,1,0}, 458 {__builtin_inf(),-0x1.fffffcp-1023,1,1,1,1,1,1,0}, 459 {__builtin_inf(),-0x1p-1074,1,1,1,1,1,1,0}, 460 {__builtin_inf(),-0x0p+0,1,1,1,1,1,1,0}, 461 {__builtin_inf(),0x0p+0,1,1,1,1,1,1,0}, 462 {__builtin_inf(),0x1p-1074,1,1,1,1,1,1,0}, 463 {__builtin_inf(),0x1.fffffcp-1023,1,1,1,1,1,1,0}, 464 {__builtin_inf(),0x1p-1022,1,1,1,1,1,1,0}, 465 {__builtin_inf(),0x1.fffffffffffffp-1,1,1,1,1,1,1,0}, 466 {__builtin_inf(),0x1p+0,1,1,1,1,1,1,0}, 467 {__builtin_inf(),0x1.0000000000001p+0,1,1,1,1,1,1,0}, 468 {__builtin_inf(),0x1.fffffffffffffp+1023,1,1,1,1,1,1,0}, 469 {__builtin_inf(),__builtin_inf(),0,0,0,0,0,0,0}, 470 }; 471 472 int main(int argc, char *argv[]) { 473 const int numVectors = sizeof vectors / sizeof vectors[0]; 474 int i; 475 for (i = 0; i<numVectors; ++i) { 476 if (test__cmpdf2(&vectors[i])) return 1; 477 } 478 return 0; 479 } 480