1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py 2 ; RUN: opt < %s -instcombine -S | FileCheck %s 3 4 define i1 @auto_gen_0(double %a, double %b) { 5 ; CHECK-LABEL: @auto_gen_0( 6 ; CHECK-NEXT: ret i1 false 7 ; 8 %cmp = fcmp false double %a, %b 9 %cmp1 = fcmp false double %a, %b 10 %retval = or i1 %cmp, %cmp1 11 ret i1 %retval 12 } 13 14 define i1 @auto_gen_1(double %a, double %b) { 15 ; CHECK-LABEL: @auto_gen_1( 16 ; CHECK-NEXT: [[CMP:%.*]] = fcmp oeq double %a, %b 17 ; CHECK-NEXT: ret i1 [[CMP]] 18 ; 19 %cmp = fcmp oeq double %a, %b 20 %cmp1 = fcmp false double %a, %b 21 %retval = or i1 %cmp, %cmp1 22 ret i1 %retval 23 } 24 25 define i1 @auto_gen_2(double %a, double %b) { 26 ; CHECK-LABEL: @auto_gen_2( 27 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double %a, %b 28 ; CHECK-NEXT: ret i1 [[TMP1]] 29 ; 30 %cmp = fcmp oeq double %a, %b 31 %cmp1 = fcmp oeq double %a, %b 32 %retval = or i1 %cmp, %cmp1 33 ret i1 %retval 34 } 35 36 define i1 @auto_gen_3(double %a, double %b) { 37 ; CHECK-LABEL: @auto_gen_3( 38 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ogt double %a, %b 39 ; CHECK-NEXT: ret i1 [[CMP]] 40 ; 41 %cmp = fcmp ogt double %a, %b 42 %cmp1 = fcmp false double %a, %b 43 %retval = or i1 %cmp, %cmp1 44 ret i1 %retval 45 } 46 47 define i1 @auto_gen_4(double %a, double %b) { 48 ; CHECK-LABEL: @auto_gen_4( 49 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge double %a, %b 50 ; CHECK-NEXT: ret i1 [[TMP1]] 51 ; 52 %cmp = fcmp ogt double %a, %b 53 %cmp1 = fcmp oeq double %a, %b 54 %retval = or i1 %cmp, %cmp1 55 ret i1 %retval 56 } 57 58 define i1 @auto_gen_5(double %a, double %b) { 59 ; CHECK-LABEL: @auto_gen_5( 60 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double %a, %b 61 ; CHECK-NEXT: ret i1 [[TMP1]] 62 ; 63 %cmp = fcmp ogt double %a, %b 64 %cmp1 = fcmp ogt double %a, %b 65 %retval = or i1 %cmp, %cmp1 66 ret i1 %retval 67 } 68 69 define i1 @auto_gen_6(double %a, double %b) { 70 ; CHECK-LABEL: @auto_gen_6( 71 ; CHECK-NEXT: [[CMP:%.*]] = fcmp oge double %a, %b 72 ; CHECK-NEXT: ret i1 [[CMP]] 73 ; 74 %cmp = fcmp oge double %a, %b 75 %cmp1 = fcmp false double %a, %b 76 %retval = or i1 %cmp, %cmp1 77 ret i1 %retval 78 } 79 80 define i1 @auto_gen_7(double %a, double %b) { 81 ; CHECK-LABEL: @auto_gen_7( 82 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge double %a, %b 83 ; CHECK-NEXT: ret i1 [[TMP1]] 84 ; 85 %cmp = fcmp oge double %a, %b 86 %cmp1 = fcmp oeq double %a, %b 87 %retval = or i1 %cmp, %cmp1 88 ret i1 %retval 89 } 90 91 define i1 @auto_gen_8(double %a, double %b) { 92 ; CHECK-LABEL: @auto_gen_8( 93 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge double %a, %b 94 ; CHECK-NEXT: ret i1 [[TMP1]] 95 ; 96 %cmp = fcmp oge double %a, %b 97 %cmp1 = fcmp ogt double %a, %b 98 %retval = or i1 %cmp, %cmp1 99 ret i1 %retval 100 } 101 102 define i1 @auto_gen_9(double %a, double %b) { 103 ; CHECK-LABEL: @auto_gen_9( 104 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge double %a, %b 105 ; CHECK-NEXT: ret i1 [[TMP1]] 106 ; 107 %cmp = fcmp oge double %a, %b 108 %cmp1 = fcmp oge double %a, %b 109 %retval = or i1 %cmp, %cmp1 110 ret i1 %retval 111 } 112 113 define i1 @auto_gen_10(double %a, double %b) { 114 ; CHECK-LABEL: @auto_gen_10( 115 ; CHECK-NEXT: [[CMP:%.*]] = fcmp olt double %a, %b 116 ; CHECK-NEXT: ret i1 [[CMP]] 117 ; 118 %cmp = fcmp olt double %a, %b 119 %cmp1 = fcmp false double %a, %b 120 %retval = or i1 %cmp, %cmp1 121 ret i1 %retval 122 } 123 124 define i1 @auto_gen_11(double %a, double %b) { 125 ; CHECK-LABEL: @auto_gen_11( 126 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ole double %a, %b 127 ; CHECK-NEXT: ret i1 [[TMP1]] 128 ; 129 %cmp = fcmp olt double %a, %b 130 %cmp1 = fcmp oeq double %a, %b 131 %retval = or i1 %cmp, %cmp1 132 ret i1 %retval 133 } 134 135 define i1 @auto_gen_12(double %a, double %b) { 136 ; CHECK-LABEL: @auto_gen_12( 137 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp one double %a, %b 138 ; CHECK-NEXT: ret i1 [[TMP1]] 139 ; 140 %cmp = fcmp olt double %a, %b 141 %cmp1 = fcmp ogt double %a, %b 142 %retval = or i1 %cmp, %cmp1 143 ret i1 %retval 144 } 145 146 define i1 @auto_gen_13(double %a, double %b) { 147 ; CHECK-LABEL: @auto_gen_13( 148 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double %a, %b 149 ; CHECK-NEXT: ret i1 [[TMP1]] 150 ; 151 %cmp = fcmp olt double %a, %b 152 %cmp1 = fcmp oge double %a, %b 153 %retval = or i1 %cmp, %cmp1 154 ret i1 %retval 155 } 156 157 define i1 @auto_gen_14(double %a, double %b) { 158 ; CHECK-LABEL: @auto_gen_14( 159 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double %a, %b 160 ; CHECK-NEXT: ret i1 [[TMP1]] 161 ; 162 %cmp = fcmp olt double %a, %b 163 %cmp1 = fcmp olt double %a, %b 164 %retval = or i1 %cmp, %cmp1 165 ret i1 %retval 166 } 167 168 define i1 @auto_gen_15(double %a, double %b) { 169 ; CHECK-LABEL: @auto_gen_15( 170 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ole double %a, %b 171 ; CHECK-NEXT: ret i1 [[CMP]] 172 ; 173 %cmp = fcmp ole double %a, %b 174 %cmp1 = fcmp false double %a, %b 175 %retval = or i1 %cmp, %cmp1 176 ret i1 %retval 177 } 178 179 define i1 @auto_gen_16(double %a, double %b) { 180 ; CHECK-LABEL: @auto_gen_16( 181 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ole double %a, %b 182 ; CHECK-NEXT: ret i1 [[TMP1]] 183 ; 184 %cmp = fcmp ole double %a, %b 185 %cmp1 = fcmp oeq double %a, %b 186 %retval = or i1 %cmp, %cmp1 187 ret i1 %retval 188 } 189 190 define i1 @auto_gen_17(double %a, double %b) { 191 ; CHECK-LABEL: @auto_gen_17( 192 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double %a, %b 193 ; CHECK-NEXT: ret i1 [[TMP1]] 194 ; 195 %cmp = fcmp ole double %a, %b 196 %cmp1 = fcmp ogt double %a, %b 197 %retval = or i1 %cmp, %cmp1 198 ret i1 %retval 199 } 200 201 define i1 @auto_gen_18(double %a, double %b) { 202 ; CHECK-LABEL: @auto_gen_18( 203 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double %a, %b 204 ; CHECK-NEXT: ret i1 [[TMP1]] 205 ; 206 %cmp = fcmp ole double %a, %b 207 %cmp1 = fcmp oge double %a, %b 208 %retval = or i1 %cmp, %cmp1 209 ret i1 %retval 210 } 211 212 define i1 @auto_gen_19(double %a, double %b) { 213 ; CHECK-LABEL: @auto_gen_19( 214 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ole double %a, %b 215 ; CHECK-NEXT: ret i1 [[TMP1]] 216 ; 217 %cmp = fcmp ole double %a, %b 218 %cmp1 = fcmp olt double %a, %b 219 %retval = or i1 %cmp, %cmp1 220 ret i1 %retval 221 } 222 223 define i1 @auto_gen_20(double %a, double %b) { 224 ; CHECK-LABEL: @auto_gen_20( 225 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ole double %a, %b 226 ; CHECK-NEXT: ret i1 [[TMP1]] 227 ; 228 %cmp = fcmp ole double %a, %b 229 %cmp1 = fcmp ole double %a, %b 230 %retval = or i1 %cmp, %cmp1 231 ret i1 %retval 232 } 233 234 define i1 @auto_gen_21(double %a, double %b) { 235 ; CHECK-LABEL: @auto_gen_21( 236 ; CHECK-NEXT: [[CMP:%.*]] = fcmp one double %a, %b 237 ; CHECK-NEXT: ret i1 [[CMP]] 238 ; 239 %cmp = fcmp one double %a, %b 240 %cmp1 = fcmp false double %a, %b 241 %retval = or i1 %cmp, %cmp1 242 ret i1 %retval 243 } 244 245 define i1 @auto_gen_22(double %a, double %b) { 246 ; CHECK-LABEL: @auto_gen_22( 247 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double %a, %b 248 ; CHECK-NEXT: ret i1 [[TMP1]] 249 ; 250 %cmp = fcmp one double %a, %b 251 %cmp1 = fcmp oeq double %a, %b 252 %retval = or i1 %cmp, %cmp1 253 ret i1 %retval 254 } 255 256 define i1 @auto_gen_23(double %a, double %b) { 257 ; CHECK-LABEL: @auto_gen_23( 258 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp one double %a, %b 259 ; CHECK-NEXT: ret i1 [[TMP1]] 260 ; 261 %cmp = fcmp one double %a, %b 262 %cmp1 = fcmp ogt double %a, %b 263 %retval = or i1 %cmp, %cmp1 264 ret i1 %retval 265 } 266 267 define i1 @auto_gen_24(double %a, double %b) { 268 ; CHECK-LABEL: @auto_gen_24( 269 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double %a, %b 270 ; CHECK-NEXT: ret i1 [[TMP1]] 271 ; 272 %cmp = fcmp one double %a, %b 273 %cmp1 = fcmp oge double %a, %b 274 %retval = or i1 %cmp, %cmp1 275 ret i1 %retval 276 } 277 278 define i1 @auto_gen_25(double %a, double %b) { 279 ; CHECK-LABEL: @auto_gen_25( 280 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp one double %a, %b 281 ; CHECK-NEXT: ret i1 [[TMP1]] 282 ; 283 %cmp = fcmp one double %a, %b 284 %cmp1 = fcmp olt double %a, %b 285 %retval = or i1 %cmp, %cmp1 286 ret i1 %retval 287 } 288 289 define i1 @auto_gen_26(double %a, double %b) { 290 ; CHECK-LABEL: @auto_gen_26( 291 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double %a, %b 292 ; CHECK-NEXT: ret i1 [[TMP1]] 293 ; 294 %cmp = fcmp one double %a, %b 295 %cmp1 = fcmp ole double %a, %b 296 %retval = or i1 %cmp, %cmp1 297 ret i1 %retval 298 } 299 300 define i1 @auto_gen_27(double %a, double %b) { 301 ; CHECK-LABEL: @auto_gen_27( 302 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp one double %a, %b 303 ; CHECK-NEXT: ret i1 [[TMP1]] 304 ; 305 %cmp = fcmp one double %a, %b 306 %cmp1 = fcmp one double %a, %b 307 %retval = or i1 %cmp, %cmp1 308 ret i1 %retval 309 } 310 311 define i1 @auto_gen_28(double %a, double %b) { 312 ; CHECK-LABEL: @auto_gen_28( 313 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ord double %a, %b 314 ; CHECK-NEXT: ret i1 [[CMP]] 315 ; 316 %cmp = fcmp ord double %a, %b 317 %cmp1 = fcmp false double %a, %b 318 %retval = or i1 %cmp, %cmp1 319 ret i1 %retval 320 } 321 322 define i1 @auto_gen_29(double %a, double %b) { 323 ; CHECK-LABEL: @auto_gen_29( 324 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double %a, %b 325 ; CHECK-NEXT: ret i1 [[TMP1]] 326 ; 327 %cmp = fcmp ord double %a, %b 328 %cmp1 = fcmp oeq double %a, %b 329 %retval = or i1 %cmp, %cmp1 330 ret i1 %retval 331 } 332 333 define i1 @auto_gen_30(double %a, double %b) { 334 ; CHECK-LABEL: @auto_gen_30( 335 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double %a, %b 336 ; CHECK-NEXT: ret i1 [[TMP1]] 337 ; 338 %cmp = fcmp ord double %a, %b 339 %cmp1 = fcmp ogt double %a, %b 340 %retval = or i1 %cmp, %cmp1 341 ret i1 %retval 342 } 343 344 define i1 @auto_gen_31(double %a, double %b) { 345 ; CHECK-LABEL: @auto_gen_31( 346 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double %a, %b 347 ; CHECK-NEXT: ret i1 [[TMP1]] 348 ; 349 %cmp = fcmp ord double %a, %b 350 %cmp1 = fcmp oge double %a, %b 351 %retval = or i1 %cmp, %cmp1 352 ret i1 %retval 353 } 354 355 define i1 @auto_gen_32(double %a, double %b) { 356 ; CHECK-LABEL: @auto_gen_32( 357 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double %a, %b 358 ; CHECK-NEXT: ret i1 [[TMP1]] 359 ; 360 %cmp = fcmp ord double %a, %b 361 %cmp1 = fcmp olt double %a, %b 362 %retval = or i1 %cmp, %cmp1 363 ret i1 %retval 364 } 365 366 define i1 @auto_gen_33(double %a, double %b) { 367 ; CHECK-LABEL: @auto_gen_33( 368 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double %a, %b 369 ; CHECK-NEXT: ret i1 [[TMP1]] 370 ; 371 %cmp = fcmp ord double %a, %b 372 %cmp1 = fcmp ole double %a, %b 373 %retval = or i1 %cmp, %cmp1 374 ret i1 %retval 375 } 376 377 define i1 @auto_gen_34(double %a, double %b) { 378 ; CHECK-LABEL: @auto_gen_34( 379 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double %a, %b 380 ; CHECK-NEXT: ret i1 [[TMP1]] 381 ; 382 %cmp = fcmp ord double %a, %b 383 %cmp1 = fcmp one double %a, %b 384 %retval = or i1 %cmp, %cmp1 385 ret i1 %retval 386 } 387 388 define i1 @auto_gen_35(double %a, double %b) { 389 ; CHECK-LABEL: @auto_gen_35( 390 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double %a, %b 391 ; CHECK-NEXT: ret i1 [[TMP1]] 392 ; 393 %cmp = fcmp ord double %a, %b 394 %cmp1 = fcmp ord double %a, %b 395 %retval = or i1 %cmp, %cmp1 396 ret i1 %retval 397 } 398 399 define i1 @auto_gen_36(double %a, double %b) { 400 ; CHECK-LABEL: @auto_gen_36( 401 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ueq double %a, %b 402 ; CHECK-NEXT: ret i1 [[CMP]] 403 ; 404 %cmp = fcmp ueq double %a, %b 405 %cmp1 = fcmp false double %a, %b 406 %retval = or i1 %cmp, %cmp1 407 ret i1 %retval 408 } 409 410 define i1 @auto_gen_37(double %a, double %b) { 411 ; CHECK-LABEL: @auto_gen_37( 412 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ueq double %a, %b 413 ; CHECK-NEXT: ret i1 [[TMP1]] 414 ; 415 %cmp = fcmp ueq double %a, %b 416 %cmp1 = fcmp oeq double %a, %b 417 %retval = or i1 %cmp, %cmp1 418 ret i1 %retval 419 } 420 421 define i1 @auto_gen_38(double %a, double %b) { 422 ; CHECK-LABEL: @auto_gen_38( 423 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uge double %a, %b 424 ; CHECK-NEXT: ret i1 [[TMP1]] 425 ; 426 %cmp = fcmp ueq double %a, %b 427 %cmp1 = fcmp ogt double %a, %b 428 %retval = or i1 %cmp, %cmp1 429 ret i1 %retval 430 } 431 432 define i1 @auto_gen_39(double %a, double %b) { 433 ; CHECK-LABEL: @auto_gen_39( 434 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uge double %a, %b 435 ; CHECK-NEXT: ret i1 [[TMP1]] 436 ; 437 %cmp = fcmp ueq double %a, %b 438 %cmp1 = fcmp oge double %a, %b 439 %retval = or i1 %cmp, %cmp1 440 ret i1 %retval 441 } 442 443 define i1 @auto_gen_40(double %a, double %b) { 444 ; CHECK-LABEL: @auto_gen_40( 445 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ule double %a, %b 446 ; CHECK-NEXT: ret i1 [[TMP1]] 447 ; 448 %cmp = fcmp ueq double %a, %b 449 %cmp1 = fcmp olt double %a, %b 450 %retval = or i1 %cmp, %cmp1 451 ret i1 %retval 452 } 453 454 define i1 @auto_gen_41(double %a, double %b) { 455 ; CHECK-LABEL: @auto_gen_41( 456 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ule double %a, %b 457 ; CHECK-NEXT: ret i1 [[TMP1]] 458 ; 459 %cmp = fcmp ueq double %a, %b 460 %cmp1 = fcmp ole double %a, %b 461 %retval = or i1 %cmp, %cmp1 462 ret i1 %retval 463 } 464 465 define i1 @auto_gen_42(double %a, double %b) { 466 ; CHECK-LABEL: @auto_gen_42( 467 ; CHECK-NEXT: ret i1 true 468 ; 469 %cmp = fcmp ueq double %a, %b 470 %cmp1 = fcmp one double %a, %b 471 %retval = or i1 %cmp, %cmp1 472 ret i1 %retval 473 } 474 475 define i1 @auto_gen_43(double %a, double %b) { 476 ; CHECK-LABEL: @auto_gen_43( 477 ; CHECK-NEXT: ret i1 true 478 ; 479 %cmp = fcmp ueq double %a, %b 480 %cmp1 = fcmp ord double %a, %b 481 %retval = or i1 %cmp, %cmp1 482 ret i1 %retval 483 } 484 485 define i1 @auto_gen_44(double %a, double %b) { 486 ; CHECK-LABEL: @auto_gen_44( 487 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ueq double %a, %b 488 ; CHECK-NEXT: ret i1 [[TMP1]] 489 ; 490 %cmp = fcmp ueq double %a, %b 491 %cmp1 = fcmp ueq double %a, %b 492 %retval = or i1 %cmp, %cmp1 493 ret i1 %retval 494 } 495 496 define i1 @auto_gen_45(double %a, double %b) { 497 ; CHECK-LABEL: @auto_gen_45( 498 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ugt double %a, %b 499 ; CHECK-NEXT: ret i1 [[CMP]] 500 ; 501 %cmp = fcmp ugt double %a, %b 502 %cmp1 = fcmp false double %a, %b 503 %retval = or i1 %cmp, %cmp1 504 ret i1 %retval 505 } 506 507 define i1 @auto_gen_46(double %a, double %b) { 508 ; CHECK-LABEL: @auto_gen_46( 509 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uge double %a, %b 510 ; CHECK-NEXT: ret i1 [[TMP1]] 511 ; 512 %cmp = fcmp ugt double %a, %b 513 %cmp1 = fcmp oeq double %a, %b 514 %retval = or i1 %cmp, %cmp1 515 ret i1 %retval 516 } 517 518 define i1 @auto_gen_47(double %a, double %b) { 519 ; CHECK-LABEL: @auto_gen_47( 520 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ugt double %a, %b 521 ; CHECK-NEXT: ret i1 [[TMP1]] 522 ; 523 %cmp = fcmp ugt double %a, %b 524 %cmp1 = fcmp ogt double %a, %b 525 %retval = or i1 %cmp, %cmp1 526 ret i1 %retval 527 } 528 529 define i1 @auto_gen_48(double %a, double %b) { 530 ; CHECK-LABEL: @auto_gen_48( 531 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uge double %a, %b 532 ; CHECK-NEXT: ret i1 [[TMP1]] 533 ; 534 %cmp = fcmp ugt double %a, %b 535 %cmp1 = fcmp oge double %a, %b 536 %retval = or i1 %cmp, %cmp1 537 ret i1 %retval 538 } 539 540 define i1 @auto_gen_49(double %a, double %b) { 541 ; CHECK-LABEL: @auto_gen_49( 542 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp une double %a, %b 543 ; CHECK-NEXT: ret i1 [[TMP1]] 544 ; 545 %cmp = fcmp ugt double %a, %b 546 %cmp1 = fcmp olt double %a, %b 547 %retval = or i1 %cmp, %cmp1 548 ret i1 %retval 549 } 550 551 define i1 @auto_gen_50(double %a, double %b) { 552 ; CHECK-LABEL: @auto_gen_50( 553 ; CHECK-NEXT: ret i1 true 554 ; 555 %cmp = fcmp ugt double %a, %b 556 %cmp1 = fcmp ole double %a, %b 557 %retval = or i1 %cmp, %cmp1 558 ret i1 %retval 559 } 560 561 define i1 @auto_gen_51(double %a, double %b) { 562 ; CHECK-LABEL: @auto_gen_51( 563 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp une double %a, %b 564 ; CHECK-NEXT: ret i1 [[TMP1]] 565 ; 566 %cmp = fcmp ugt double %a, %b 567 %cmp1 = fcmp one double %a, %b 568 %retval = or i1 %cmp, %cmp1 569 ret i1 %retval 570 } 571 572 define i1 @auto_gen_52(double %a, double %b) { 573 ; CHECK-LABEL: @auto_gen_52( 574 ; CHECK-NEXT: ret i1 true 575 ; 576 %cmp = fcmp ugt double %a, %b 577 %cmp1 = fcmp ord double %a, %b 578 %retval = or i1 %cmp, %cmp1 579 ret i1 %retval 580 } 581 582 define i1 @auto_gen_53(double %a, double %b) { 583 ; CHECK-LABEL: @auto_gen_53( 584 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uge double %a, %b 585 ; CHECK-NEXT: ret i1 [[TMP1]] 586 ; 587 %cmp = fcmp ugt double %a, %b 588 %cmp1 = fcmp ueq double %a, %b 589 %retval = or i1 %cmp, %cmp1 590 ret i1 %retval 591 } 592 593 define i1 @auto_gen_54(double %a, double %b) { 594 ; CHECK-LABEL: @auto_gen_54( 595 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ugt double %a, %b 596 ; CHECK-NEXT: ret i1 [[TMP1]] 597 ; 598 %cmp = fcmp ugt double %a, %b 599 %cmp1 = fcmp ugt double %a, %b 600 %retval = or i1 %cmp, %cmp1 601 ret i1 %retval 602 } 603 604 define i1 @auto_gen_55(double %a, double %b) { 605 ; CHECK-LABEL: @auto_gen_55( 606 ; CHECK-NEXT: [[CMP:%.*]] = fcmp uge double %a, %b 607 ; CHECK-NEXT: ret i1 [[CMP]] 608 ; 609 %cmp = fcmp uge double %a, %b 610 %cmp1 = fcmp false double %a, %b 611 %retval = or i1 %cmp, %cmp1 612 ret i1 %retval 613 } 614 615 define i1 @auto_gen_56(double %a, double %b) { 616 ; CHECK-LABEL: @auto_gen_56( 617 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uge double %a, %b 618 ; CHECK-NEXT: ret i1 [[TMP1]] 619 ; 620 %cmp = fcmp uge double %a, %b 621 %cmp1 = fcmp oeq double %a, %b 622 %retval = or i1 %cmp, %cmp1 623 ret i1 %retval 624 } 625 626 define i1 @auto_gen_57(double %a, double %b) { 627 ; CHECK-LABEL: @auto_gen_57( 628 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uge double %a, %b 629 ; CHECK-NEXT: ret i1 [[TMP1]] 630 ; 631 %cmp = fcmp uge double %a, %b 632 %cmp1 = fcmp ogt double %a, %b 633 %retval = or i1 %cmp, %cmp1 634 ret i1 %retval 635 } 636 637 define i1 @auto_gen_58(double %a, double %b) { 638 ; CHECK-LABEL: @auto_gen_58( 639 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uge double %a, %b 640 ; CHECK-NEXT: ret i1 [[TMP1]] 641 ; 642 %cmp = fcmp uge double %a, %b 643 %cmp1 = fcmp oge double %a, %b 644 %retval = or i1 %cmp, %cmp1 645 ret i1 %retval 646 } 647 648 define i1 @auto_gen_59(double %a, double %b) { 649 ; CHECK-LABEL: @auto_gen_59( 650 ; CHECK-NEXT: ret i1 true 651 ; 652 %cmp = fcmp uge double %a, %b 653 %cmp1 = fcmp olt double %a, %b 654 %retval = or i1 %cmp, %cmp1 655 ret i1 %retval 656 } 657 658 define i1 @auto_gen_60(double %a, double %b) { 659 ; CHECK-LABEL: @auto_gen_60( 660 ; CHECK-NEXT: ret i1 true 661 ; 662 %cmp = fcmp uge double %a, %b 663 %cmp1 = fcmp ole double %a, %b 664 %retval = or i1 %cmp, %cmp1 665 ret i1 %retval 666 } 667 668 define i1 @auto_gen_61(double %a, double %b) { 669 ; CHECK-LABEL: @auto_gen_61( 670 ; CHECK-NEXT: ret i1 true 671 ; 672 %cmp = fcmp uge double %a, %b 673 %cmp1 = fcmp one double %a, %b 674 %retval = or i1 %cmp, %cmp1 675 ret i1 %retval 676 } 677 678 define i1 @auto_gen_62(double %a, double %b) { 679 ; CHECK-LABEL: @auto_gen_62( 680 ; CHECK-NEXT: ret i1 true 681 ; 682 %cmp = fcmp uge double %a, %b 683 %cmp1 = fcmp ord double %a, %b 684 %retval = or i1 %cmp, %cmp1 685 ret i1 %retval 686 } 687 688 define i1 @auto_gen_63(double %a, double %b) { 689 ; CHECK-LABEL: @auto_gen_63( 690 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uge double %a, %b 691 ; CHECK-NEXT: ret i1 [[TMP1]] 692 ; 693 %cmp = fcmp uge double %a, %b 694 %cmp1 = fcmp ueq double %a, %b 695 %retval = or i1 %cmp, %cmp1 696 ret i1 %retval 697 } 698 699 define i1 @auto_gen_64(double %a, double %b) { 700 ; CHECK-LABEL: @auto_gen_64( 701 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uge double %a, %b 702 ; CHECK-NEXT: ret i1 [[TMP1]] 703 ; 704 %cmp = fcmp uge double %a, %b 705 %cmp1 = fcmp ugt double %a, %b 706 %retval = or i1 %cmp, %cmp1 707 ret i1 %retval 708 } 709 710 define i1 @auto_gen_65(double %a, double %b) { 711 ; CHECK-LABEL: @auto_gen_65( 712 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uge double %a, %b 713 ; CHECK-NEXT: ret i1 [[TMP1]] 714 ; 715 %cmp = fcmp uge double %a, %b 716 %cmp1 = fcmp uge double %a, %b 717 %retval = or i1 %cmp, %cmp1 718 ret i1 %retval 719 } 720 721 define i1 @auto_gen_66(double %a, double %b) { 722 ; CHECK-LABEL: @auto_gen_66( 723 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ult double %a, %b 724 ; CHECK-NEXT: ret i1 [[CMP]] 725 ; 726 %cmp = fcmp ult double %a, %b 727 %cmp1 = fcmp false double %a, %b 728 %retval = or i1 %cmp, %cmp1 729 ret i1 %retval 730 } 731 732 define i1 @auto_gen_67(double %a, double %b) { 733 ; CHECK-LABEL: @auto_gen_67( 734 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ule double %a, %b 735 ; CHECK-NEXT: ret i1 [[TMP1]] 736 ; 737 %cmp = fcmp ult double %a, %b 738 %cmp1 = fcmp oeq double %a, %b 739 %retval = or i1 %cmp, %cmp1 740 ret i1 %retval 741 } 742 743 define i1 @auto_gen_68(double %a, double %b) { 744 ; CHECK-LABEL: @auto_gen_68( 745 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp une double %a, %b 746 ; CHECK-NEXT: ret i1 [[TMP1]] 747 ; 748 %cmp = fcmp ult double %a, %b 749 %cmp1 = fcmp ogt double %a, %b 750 %retval = or i1 %cmp, %cmp1 751 ret i1 %retval 752 } 753 754 define i1 @auto_gen_69(double %a, double %b) { 755 ; CHECK-LABEL: @auto_gen_69( 756 ; CHECK-NEXT: ret i1 true 757 ; 758 %cmp = fcmp ult double %a, %b 759 %cmp1 = fcmp oge double %a, %b 760 %retval = or i1 %cmp, %cmp1 761 ret i1 %retval 762 } 763 764 define i1 @auto_gen_70(double %a, double %b) { 765 ; CHECK-LABEL: @auto_gen_70( 766 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ult double %a, %b 767 ; CHECK-NEXT: ret i1 [[TMP1]] 768 ; 769 %cmp = fcmp ult double %a, %b 770 %cmp1 = fcmp olt double %a, %b 771 %retval = or i1 %cmp, %cmp1 772 ret i1 %retval 773 } 774 775 define i1 @auto_gen_71(double %a, double %b) { 776 ; CHECK-LABEL: @auto_gen_71( 777 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ule double %a, %b 778 ; CHECK-NEXT: ret i1 [[TMP1]] 779 ; 780 %cmp = fcmp ult double %a, %b 781 %cmp1 = fcmp ole double %a, %b 782 %retval = or i1 %cmp, %cmp1 783 ret i1 %retval 784 } 785 786 define i1 @auto_gen_72(double %a, double %b) { 787 ; CHECK-LABEL: @auto_gen_72( 788 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp une double %a, %b 789 ; CHECK-NEXT: ret i1 [[TMP1]] 790 ; 791 %cmp = fcmp ult double %a, %b 792 %cmp1 = fcmp one double %a, %b 793 %retval = or i1 %cmp, %cmp1 794 ret i1 %retval 795 } 796 797 define i1 @auto_gen_73(double %a, double %b) { 798 ; CHECK-LABEL: @auto_gen_73( 799 ; CHECK-NEXT: ret i1 true 800 ; 801 %cmp = fcmp ult double %a, %b 802 %cmp1 = fcmp ord double %a, %b 803 %retval = or i1 %cmp, %cmp1 804 ret i1 %retval 805 } 806 807 define i1 @auto_gen_74(double %a, double %b) { 808 ; CHECK-LABEL: @auto_gen_74( 809 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ule double %a, %b 810 ; CHECK-NEXT: ret i1 [[TMP1]] 811 ; 812 %cmp = fcmp ult double %a, %b 813 %cmp1 = fcmp ueq double %a, %b 814 %retval = or i1 %cmp, %cmp1 815 ret i1 %retval 816 } 817 818 define i1 @auto_gen_75(double %a, double %b) { 819 ; CHECK-LABEL: @auto_gen_75( 820 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp une double %a, %b 821 ; CHECK-NEXT: ret i1 [[TMP1]] 822 ; 823 %cmp = fcmp ult double %a, %b 824 %cmp1 = fcmp ugt double %a, %b 825 %retval = or i1 %cmp, %cmp1 826 ret i1 %retval 827 } 828 829 define i1 @auto_gen_76(double %a, double %b) { 830 ; CHECK-LABEL: @auto_gen_76( 831 ; CHECK-NEXT: ret i1 true 832 ; 833 %cmp = fcmp ult double %a, %b 834 %cmp1 = fcmp uge double %a, %b 835 %retval = or i1 %cmp, %cmp1 836 ret i1 %retval 837 } 838 839 define i1 @auto_gen_77(double %a, double %b) { 840 ; CHECK-LABEL: @auto_gen_77( 841 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ult double %a, %b 842 ; CHECK-NEXT: ret i1 [[TMP1]] 843 ; 844 %cmp = fcmp ult double %a, %b 845 %cmp1 = fcmp ult double %a, %b 846 %retval = or i1 %cmp, %cmp1 847 ret i1 %retval 848 } 849 850 define i1 @auto_gen_78(double %a, double %b) { 851 ; CHECK-LABEL: @auto_gen_78( 852 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ule double %a, %b 853 ; CHECK-NEXT: ret i1 [[CMP]] 854 ; 855 %cmp = fcmp ule double %a, %b 856 %cmp1 = fcmp false double %a, %b 857 %retval = or i1 %cmp, %cmp1 858 ret i1 %retval 859 } 860 861 define i1 @auto_gen_79(double %a, double %b) { 862 ; CHECK-LABEL: @auto_gen_79( 863 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ule double %a, %b 864 ; CHECK-NEXT: ret i1 [[TMP1]] 865 ; 866 %cmp = fcmp ule double %a, %b 867 %cmp1 = fcmp oeq double %a, %b 868 %retval = or i1 %cmp, %cmp1 869 ret i1 %retval 870 } 871 872 define i1 @auto_gen_80(double %a, double %b) { 873 ; CHECK-LABEL: @auto_gen_80( 874 ; CHECK-NEXT: ret i1 true 875 ; 876 %cmp = fcmp ule double %a, %b 877 %cmp1 = fcmp ogt double %a, %b 878 %retval = or i1 %cmp, %cmp1 879 ret i1 %retval 880 } 881 882 define i1 @auto_gen_81(double %a, double %b) { 883 ; CHECK-LABEL: @auto_gen_81( 884 ; CHECK-NEXT: ret i1 true 885 ; 886 %cmp = fcmp ule double %a, %b 887 %cmp1 = fcmp oge double %a, %b 888 %retval = or i1 %cmp, %cmp1 889 ret i1 %retval 890 } 891 892 define i1 @auto_gen_82(double %a, double %b) { 893 ; CHECK-LABEL: @auto_gen_82( 894 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ule double %a, %b 895 ; CHECK-NEXT: ret i1 [[TMP1]] 896 ; 897 %cmp = fcmp ule double %a, %b 898 %cmp1 = fcmp olt double %a, %b 899 %retval = or i1 %cmp, %cmp1 900 ret i1 %retval 901 } 902 903 define i1 @auto_gen_83(double %a, double %b) { 904 ; CHECK-LABEL: @auto_gen_83( 905 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ule double %a, %b 906 ; CHECK-NEXT: ret i1 [[TMP1]] 907 ; 908 %cmp = fcmp ule double %a, %b 909 %cmp1 = fcmp ole double %a, %b 910 %retval = or i1 %cmp, %cmp1 911 ret i1 %retval 912 } 913 914 define i1 @auto_gen_84(double %a, double %b) { 915 ; CHECK-LABEL: @auto_gen_84( 916 ; CHECK-NEXT: ret i1 true 917 ; 918 %cmp = fcmp ule double %a, %b 919 %cmp1 = fcmp one double %a, %b 920 %retval = or i1 %cmp, %cmp1 921 ret i1 %retval 922 } 923 924 define i1 @auto_gen_85(double %a, double %b) { 925 ; CHECK-LABEL: @auto_gen_85( 926 ; CHECK-NEXT: ret i1 true 927 ; 928 %cmp = fcmp ule double %a, %b 929 %cmp1 = fcmp ord double %a, %b 930 %retval = or i1 %cmp, %cmp1 931 ret i1 %retval 932 } 933 934 define i1 @auto_gen_86(double %a, double %b) { 935 ; CHECK-LABEL: @auto_gen_86( 936 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ule double %a, %b 937 ; CHECK-NEXT: ret i1 [[TMP1]] 938 ; 939 %cmp = fcmp ule double %a, %b 940 %cmp1 = fcmp ueq double %a, %b 941 %retval = or i1 %cmp, %cmp1 942 ret i1 %retval 943 } 944 945 define i1 @auto_gen_87(double %a, double %b) { 946 ; CHECK-LABEL: @auto_gen_87( 947 ; CHECK-NEXT: ret i1 true 948 ; 949 %cmp = fcmp ule double %a, %b 950 %cmp1 = fcmp ugt double %a, %b 951 %retval = or i1 %cmp, %cmp1 952 ret i1 %retval 953 } 954 955 define i1 @auto_gen_88(double %a, double %b) { 956 ; CHECK-LABEL: @auto_gen_88( 957 ; CHECK-NEXT: ret i1 true 958 ; 959 %cmp = fcmp ule double %a, %b 960 %cmp1 = fcmp uge double %a, %b 961 %retval = or i1 %cmp, %cmp1 962 ret i1 %retval 963 } 964 965 define i1 @auto_gen_89(double %a, double %b) { 966 ; CHECK-LABEL: @auto_gen_89( 967 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ule double %a, %b 968 ; CHECK-NEXT: ret i1 [[TMP1]] 969 ; 970 %cmp = fcmp ule double %a, %b 971 %cmp1 = fcmp ult double %a, %b 972 %retval = or i1 %cmp, %cmp1 973 ret i1 %retval 974 } 975 976 define i1 @auto_gen_90(double %a, double %b) { 977 ; CHECK-LABEL: @auto_gen_90( 978 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ule double %a, %b 979 ; CHECK-NEXT: ret i1 [[TMP1]] 980 ; 981 %cmp = fcmp ule double %a, %b 982 %cmp1 = fcmp ule double %a, %b 983 %retval = or i1 %cmp, %cmp1 984 ret i1 %retval 985 } 986 987 define i1 @auto_gen_91(double %a, double %b) { 988 ; CHECK-LABEL: @auto_gen_91( 989 ; CHECK-NEXT: [[CMP:%.*]] = fcmp une double %a, %b 990 ; CHECK-NEXT: ret i1 [[CMP]] 991 ; 992 %cmp = fcmp une double %a, %b 993 %cmp1 = fcmp false double %a, %b 994 %retval = or i1 %cmp, %cmp1 995 ret i1 %retval 996 } 997 998 define i1 @auto_gen_92(double %a, double %b) { 999 ; CHECK-LABEL: @auto_gen_92( 1000 ; CHECK-NEXT: ret i1 true 1001 ; 1002 %cmp = fcmp une double %a, %b 1003 %cmp1 = fcmp oeq double %a, %b 1004 %retval = or i1 %cmp, %cmp1 1005 ret i1 %retval 1006 } 1007 1008 define i1 @auto_gen_93(double %a, double %b) { 1009 ; CHECK-LABEL: @auto_gen_93( 1010 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp une double %a, %b 1011 ; CHECK-NEXT: ret i1 [[TMP1]] 1012 ; 1013 %cmp = fcmp une double %a, %b 1014 %cmp1 = fcmp ogt double %a, %b 1015 %retval = or i1 %cmp, %cmp1 1016 ret i1 %retval 1017 } 1018 1019 define i1 @auto_gen_94(double %a, double %b) { 1020 ; CHECK-LABEL: @auto_gen_94( 1021 ; CHECK-NEXT: ret i1 true 1022 ; 1023 %cmp = fcmp une double %a, %b 1024 %cmp1 = fcmp oge double %a, %b 1025 %retval = or i1 %cmp, %cmp1 1026 ret i1 %retval 1027 } 1028 1029 define i1 @auto_gen_95(double %a, double %b) { 1030 ; CHECK-LABEL: @auto_gen_95( 1031 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp une double %a, %b 1032 ; CHECK-NEXT: ret i1 [[TMP1]] 1033 ; 1034 %cmp = fcmp une double %a, %b 1035 %cmp1 = fcmp olt double %a, %b 1036 %retval = or i1 %cmp, %cmp1 1037 ret i1 %retval 1038 } 1039 1040 define i1 @auto_gen_96(double %a, double %b) { 1041 ; CHECK-LABEL: @auto_gen_96( 1042 ; CHECK-NEXT: ret i1 true 1043 ; 1044 %cmp = fcmp une double %a, %b 1045 %cmp1 = fcmp ole double %a, %b 1046 %retval = or i1 %cmp, %cmp1 1047 ret i1 %retval 1048 } 1049 1050 define i1 @auto_gen_97(double %a, double %b) { 1051 ; CHECK-LABEL: @auto_gen_97( 1052 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp une double %a, %b 1053 ; CHECK-NEXT: ret i1 [[TMP1]] 1054 ; 1055 %cmp = fcmp une double %a, %b 1056 %cmp1 = fcmp one double %a, %b 1057 %retval = or i1 %cmp, %cmp1 1058 ret i1 %retval 1059 } 1060 1061 define i1 @auto_gen_98(double %a, double %b) { 1062 ; CHECK-LABEL: @auto_gen_98( 1063 ; CHECK-NEXT: ret i1 true 1064 ; 1065 %cmp = fcmp une double %a, %b 1066 %cmp1 = fcmp ord double %a, %b 1067 %retval = or i1 %cmp, %cmp1 1068 ret i1 %retval 1069 } 1070 1071 define i1 @auto_gen_99(double %a, double %b) { 1072 ; CHECK-LABEL: @auto_gen_99( 1073 ; CHECK-NEXT: ret i1 true 1074 ; 1075 %cmp = fcmp une double %a, %b 1076 %cmp1 = fcmp ueq double %a, %b 1077 %retval = or i1 %cmp, %cmp1 1078 ret i1 %retval 1079 } 1080 1081 define i1 @auto_gen_100(double %a, double %b) { 1082 ; CHECK-LABEL: @auto_gen_100( 1083 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp une double %a, %b 1084 ; CHECK-NEXT: ret i1 [[TMP1]] 1085 ; 1086 %cmp = fcmp une double %a, %b 1087 %cmp1 = fcmp ugt double %a, %b 1088 %retval = or i1 %cmp, %cmp1 1089 ret i1 %retval 1090 } 1091 1092 define i1 @auto_gen_101(double %a, double %b) { 1093 ; CHECK-LABEL: @auto_gen_101( 1094 ; CHECK-NEXT: ret i1 true 1095 ; 1096 %cmp = fcmp une double %a, %b 1097 %cmp1 = fcmp uge double %a, %b 1098 %retval = or i1 %cmp, %cmp1 1099 ret i1 %retval 1100 } 1101 1102 define i1 @auto_gen_102(double %a, double %b) { 1103 ; CHECK-LABEL: @auto_gen_102( 1104 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp une double %a, %b 1105 ; CHECK-NEXT: ret i1 [[TMP1]] 1106 ; 1107 %cmp = fcmp une double %a, %b 1108 %cmp1 = fcmp ult double %a, %b 1109 %retval = or i1 %cmp, %cmp1 1110 ret i1 %retval 1111 } 1112 1113 define i1 @auto_gen_103(double %a, double %b) { 1114 ; CHECK-LABEL: @auto_gen_103( 1115 ; CHECK-NEXT: ret i1 true 1116 ; 1117 %cmp = fcmp une double %a, %b 1118 %cmp1 = fcmp ule double %a, %b 1119 %retval = or i1 %cmp, %cmp1 1120 ret i1 %retval 1121 } 1122 1123 define i1 @auto_gen_104(double %a, double %b) { 1124 ; CHECK-LABEL: @auto_gen_104( 1125 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp une double %a, %b 1126 ; CHECK-NEXT: ret i1 [[TMP1]] 1127 ; 1128 %cmp = fcmp une double %a, %b 1129 %cmp1 = fcmp une double %a, %b 1130 %retval = or i1 %cmp, %cmp1 1131 ret i1 %retval 1132 } 1133 1134 define i1 @auto_gen_105(double %a, double %b) { 1135 ; CHECK-LABEL: @auto_gen_105( 1136 ; CHECK-NEXT: [[CMP:%.*]] = fcmp uno double %a, %b 1137 ; CHECK-NEXT: ret i1 [[CMP]] 1138 ; 1139 %cmp = fcmp uno double %a, %b 1140 %cmp1 = fcmp false double %a, %b 1141 %retval = or i1 %cmp, %cmp1 1142 ret i1 %retval 1143 } 1144 1145 define i1 @auto_gen_106(double %a, double %b) { 1146 ; CHECK-LABEL: @auto_gen_106( 1147 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ueq double %a, %b 1148 ; CHECK-NEXT: ret i1 [[TMP1]] 1149 ; 1150 %cmp = fcmp uno double %a, %b 1151 %cmp1 = fcmp oeq double %a, %b 1152 %retval = or i1 %cmp, %cmp1 1153 ret i1 %retval 1154 } 1155 1156 define i1 @auto_gen_107(double %a, double %b) { 1157 ; CHECK-LABEL: @auto_gen_107( 1158 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ugt double %a, %b 1159 ; CHECK-NEXT: ret i1 [[TMP1]] 1160 ; 1161 %cmp = fcmp uno double %a, %b 1162 %cmp1 = fcmp ogt double %a, %b 1163 %retval = or i1 %cmp, %cmp1 1164 ret i1 %retval 1165 } 1166 1167 define i1 @auto_gen_108(double %a, double %b) { 1168 ; CHECK-LABEL: @auto_gen_108( 1169 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uge double %a, %b 1170 ; CHECK-NEXT: ret i1 [[TMP1]] 1171 ; 1172 %cmp = fcmp uno double %a, %b 1173 %cmp1 = fcmp oge double %a, %b 1174 %retval = or i1 %cmp, %cmp1 1175 ret i1 %retval 1176 } 1177 1178 define i1 @auto_gen_109(double %a, double %b) { 1179 ; CHECK-LABEL: @auto_gen_109( 1180 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ult double %a, %b 1181 ; CHECK-NEXT: ret i1 [[TMP1]] 1182 ; 1183 %cmp = fcmp uno double %a, %b 1184 %cmp1 = fcmp olt double %a, %b 1185 %retval = or i1 %cmp, %cmp1 1186 ret i1 %retval 1187 } 1188 1189 define i1 @auto_gen_110(double %a, double %b) { 1190 ; CHECK-LABEL: @auto_gen_110( 1191 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ule double %a, %b 1192 ; CHECK-NEXT: ret i1 [[TMP1]] 1193 ; 1194 %cmp = fcmp uno double %a, %b 1195 %cmp1 = fcmp ole double %a, %b 1196 %retval = or i1 %cmp, %cmp1 1197 ret i1 %retval 1198 } 1199 1200 define i1 @auto_gen_111(double %a, double %b) { 1201 ; CHECK-LABEL: @auto_gen_111( 1202 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp une double %a, %b 1203 ; CHECK-NEXT: ret i1 [[TMP1]] 1204 ; 1205 %cmp = fcmp uno double %a, %b 1206 %cmp1 = fcmp one double %a, %b 1207 %retval = or i1 %cmp, %cmp1 1208 ret i1 %retval 1209 } 1210 1211 define i1 @auto_gen_112(double %a, double %b) { 1212 ; CHECK-LABEL: @auto_gen_112( 1213 ; CHECK-NEXT: ret i1 true 1214 ; 1215 %cmp = fcmp uno double %a, %b 1216 %cmp1 = fcmp ord double %a, %b 1217 %retval = or i1 %cmp, %cmp1 1218 ret i1 %retval 1219 } 1220 1221 define i1 @auto_gen_113(double %a, double %b) { 1222 ; CHECK-LABEL: @auto_gen_113( 1223 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ueq double %a, %b 1224 ; CHECK-NEXT: ret i1 [[TMP1]] 1225 ; 1226 %cmp = fcmp uno double %a, %b 1227 %cmp1 = fcmp ueq double %a, %b 1228 %retval = or i1 %cmp, %cmp1 1229 ret i1 %retval 1230 } 1231 1232 define i1 @auto_gen_114(double %a, double %b) { 1233 ; CHECK-LABEL: @auto_gen_114( 1234 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ugt double %a, %b 1235 ; CHECK-NEXT: ret i1 [[TMP1]] 1236 ; 1237 %cmp = fcmp uno double %a, %b 1238 %cmp1 = fcmp ugt double %a, %b 1239 %retval = or i1 %cmp, %cmp1 1240 ret i1 %retval 1241 } 1242 1243 define i1 @auto_gen_115(double %a, double %b) { 1244 ; CHECK-LABEL: @auto_gen_115( 1245 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uge double %a, %b 1246 ; CHECK-NEXT: ret i1 [[TMP1]] 1247 ; 1248 %cmp = fcmp uno double %a, %b 1249 %cmp1 = fcmp uge double %a, %b 1250 %retval = or i1 %cmp, %cmp1 1251 ret i1 %retval 1252 } 1253 1254 define i1 @auto_gen_116(double %a, double %b) { 1255 ; CHECK-LABEL: @auto_gen_116( 1256 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ult double %a, %b 1257 ; CHECK-NEXT: ret i1 [[TMP1]] 1258 ; 1259 %cmp = fcmp uno double %a, %b 1260 %cmp1 = fcmp ult double %a, %b 1261 %retval = or i1 %cmp, %cmp1 1262 ret i1 %retval 1263 } 1264 1265 define i1 @auto_gen_117(double %a, double %b) { 1266 ; CHECK-LABEL: @auto_gen_117( 1267 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ule double %a, %b 1268 ; CHECK-NEXT: ret i1 [[TMP1]] 1269 ; 1270 %cmp = fcmp uno double %a, %b 1271 %cmp1 = fcmp ule double %a, %b 1272 %retval = or i1 %cmp, %cmp1 1273 ret i1 %retval 1274 } 1275 1276 define i1 @auto_gen_118(double %a, double %b) { 1277 ; CHECK-LABEL: @auto_gen_118( 1278 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp une double %a, %b 1279 ; CHECK-NEXT: ret i1 [[TMP1]] 1280 ; 1281 %cmp = fcmp uno double %a, %b 1282 %cmp1 = fcmp une double %a, %b 1283 %retval = or i1 %cmp, %cmp1 1284 ret i1 %retval 1285 } 1286 1287 define i1 @auto_gen_119(double %a, double %b) { 1288 ; CHECK-LABEL: @auto_gen_119( 1289 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double %a, %b 1290 ; CHECK-NEXT: ret i1 [[TMP1]] 1291 ; 1292 %cmp = fcmp uno double %a, %b 1293 %cmp1 = fcmp uno double %a, %b 1294 %retval = or i1 %cmp, %cmp1 1295 ret i1 %retval 1296 } 1297 1298 define i1 @auto_gen_120(double %a, double %b) { 1299 ; CHECK-LABEL: @auto_gen_120( 1300 ; CHECK-NEXT: ret i1 true 1301 ; 1302 %cmp = fcmp true double %a, %b 1303 %cmp1 = fcmp false double %a, %b 1304 %retval = or i1 %cmp, %cmp1 1305 ret i1 %retval 1306 } 1307 1308 define i1 @auto_gen_121(double %a, double %b) { 1309 ; CHECK-LABEL: @auto_gen_121( 1310 ; CHECK-NEXT: ret i1 true 1311 ; 1312 %cmp = fcmp true double %a, %b 1313 %cmp1 = fcmp oeq double %a, %b 1314 %retval = or i1 %cmp, %cmp1 1315 ret i1 %retval 1316 } 1317 1318 define i1 @auto_gen_122(double %a, double %b) { 1319 ; CHECK-LABEL: @auto_gen_122( 1320 ; CHECK-NEXT: ret i1 true 1321 ; 1322 %cmp = fcmp true double %a, %b 1323 %cmp1 = fcmp ogt double %a, %b 1324 %retval = or i1 %cmp, %cmp1 1325 ret i1 %retval 1326 } 1327 1328 define i1 @auto_gen_123(double %a, double %b) { 1329 ; CHECK-LABEL: @auto_gen_123( 1330 ; CHECK-NEXT: ret i1 true 1331 ; 1332 %cmp = fcmp true double %a, %b 1333 %cmp1 = fcmp oge double %a, %b 1334 %retval = or i1 %cmp, %cmp1 1335 ret i1 %retval 1336 } 1337 1338 define i1 @auto_gen_124(double %a, double %b) { 1339 ; CHECK-LABEL: @auto_gen_124( 1340 ; CHECK-NEXT: ret i1 true 1341 ; 1342 %cmp = fcmp true double %a, %b 1343 %cmp1 = fcmp olt double %a, %b 1344 %retval = or i1 %cmp, %cmp1 1345 ret i1 %retval 1346 } 1347 1348 define i1 @auto_gen_125(double %a, double %b) { 1349 ; CHECK-LABEL: @auto_gen_125( 1350 ; CHECK-NEXT: ret i1 true 1351 ; 1352 %cmp = fcmp true double %a, %b 1353 %cmp1 = fcmp ole double %a, %b 1354 %retval = or i1 %cmp, %cmp1 1355 ret i1 %retval 1356 } 1357 1358 define i1 @auto_gen_126(double %a, double %b) { 1359 ; CHECK-LABEL: @auto_gen_126( 1360 ; CHECK-NEXT: ret i1 true 1361 ; 1362 %cmp = fcmp true double %a, %b 1363 %cmp1 = fcmp one double %a, %b 1364 %retval = or i1 %cmp, %cmp1 1365 ret i1 %retval 1366 } 1367 1368 define i1 @auto_gen_127(double %a, double %b) { 1369 ; CHECK-LABEL: @auto_gen_127( 1370 ; CHECK-NEXT: ret i1 true 1371 ; 1372 %cmp = fcmp true double %a, %b 1373 %cmp1 = fcmp ord double %a, %b 1374 %retval = or i1 %cmp, %cmp1 1375 ret i1 %retval 1376 } 1377 1378 define i1 @auto_gen_128(double %a, double %b) { 1379 ; CHECK-LABEL: @auto_gen_128( 1380 ; CHECK-NEXT: ret i1 true 1381 ; 1382 %cmp = fcmp true double %a, %b 1383 %cmp1 = fcmp ueq double %a, %b 1384 %retval = or i1 %cmp, %cmp1 1385 ret i1 %retval 1386 } 1387 1388 define i1 @auto_gen_129(double %a, double %b) { 1389 ; CHECK-LABEL: @auto_gen_129( 1390 ; CHECK-NEXT: ret i1 true 1391 ; 1392 %cmp = fcmp true double %a, %b 1393 %cmp1 = fcmp ugt double %a, %b 1394 %retval = or i1 %cmp, %cmp1 1395 ret i1 %retval 1396 } 1397 1398 define i1 @auto_gen_130(double %a, double %b) { 1399 ; CHECK-LABEL: @auto_gen_130( 1400 ; CHECK-NEXT: ret i1 true 1401 ; 1402 %cmp = fcmp true double %a, %b 1403 %cmp1 = fcmp uge double %a, %b 1404 %retval = or i1 %cmp, %cmp1 1405 ret i1 %retval 1406 } 1407 1408 define i1 @auto_gen_131(double %a, double %b) { 1409 ; CHECK-LABEL: @auto_gen_131( 1410 ; CHECK-NEXT: ret i1 true 1411 ; 1412 %cmp = fcmp true double %a, %b 1413 %cmp1 = fcmp ult double %a, %b 1414 %retval = or i1 %cmp, %cmp1 1415 ret i1 %retval 1416 } 1417 1418 define i1 @auto_gen_132(double %a, double %b) { 1419 ; CHECK-LABEL: @auto_gen_132( 1420 ; CHECK-NEXT: ret i1 true 1421 ; 1422 %cmp = fcmp true double %a, %b 1423 %cmp1 = fcmp ule double %a, %b 1424 %retval = or i1 %cmp, %cmp1 1425 ret i1 %retval 1426 } 1427 1428 define i1 @auto_gen_133(double %a, double %b) { 1429 ; CHECK-LABEL: @auto_gen_133( 1430 ; CHECK-NEXT: ret i1 true 1431 ; 1432 %cmp = fcmp true double %a, %b 1433 %cmp1 = fcmp une double %a, %b 1434 %retval = or i1 %cmp, %cmp1 1435 ret i1 %retval 1436 } 1437 1438 define i1 @auto_gen_134(double %a, double %b) { 1439 ; CHECK-LABEL: @auto_gen_134( 1440 ; CHECK-NEXT: ret i1 true 1441 ; 1442 %cmp = fcmp true double %a, %b 1443 %cmp1 = fcmp uno double %a, %b 1444 %retval = or i1 %cmp, %cmp1 1445 ret i1 %retval 1446 } 1447 1448 define i1 @auto_gen_135(double %a, double %b) { 1449 ; CHECK-LABEL: @auto_gen_135( 1450 ; CHECK-NEXT: ret i1 true 1451 ; 1452 %cmp = fcmp true double %a, %b 1453 %cmp1 = fcmp true double %a, %b 1454 %retval = or i1 %cmp, %cmp1 1455 ret i1 %retval 1456 } 1457