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