1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py 2; RUN: opt < %s -instcombine -S | FileCheck %s 3 4; PR15737 5define 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 18define <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 31define 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 41define 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 51define 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 62define 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 72define 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 82define 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 93define 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 103define 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 114define 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 125define 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 136define 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 146define 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 156define 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 166define 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 176define 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 187define 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 197define 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 208define 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 218define 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 229define 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 240define 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 251define 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 261define 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 271define 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 282define 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 293define 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 304define 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 315define 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 326define 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 336define 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 347define 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 358define 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 369define 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 380define 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 391define 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 402define 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 413define 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 423define 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 434define 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 444define 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 455define 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 465define 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 476define 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 486define 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 497define 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 508define 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 518define 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 528define 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 539define 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 550define 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 560define 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 570define 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 581define 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 592define 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 603define 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 614define 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 624define 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 635define 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 646define 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 657define 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 667define 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 678define 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 689define 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 700define 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 711define 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 722define 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 733define 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 743define 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 753define 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 763define 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 773define 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 784define 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 795define 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 806define 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 817define 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 828define 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 839define 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 850define 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 861define 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 871define 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 882define 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 892define 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 903define 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 914define 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 925define 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 936define 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 947define 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 958define 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 969define 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 980define 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 991define 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 1002define 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 1012define 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 1022define 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 1033define 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 1044define 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 1055define 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 1066define 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 1077define 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 1088define 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 1099define 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 1110define 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 1121define 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 1132define 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 1143define 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 1154define 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 1164define 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 1174define 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 1184define 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 1194define 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 1204define 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 1214define 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 1224define 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 1234define 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 1245define 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 1256define 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 1267define 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 1278define 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 1289define 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 1300define 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 1311define 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 1321define 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 1332define 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 1343define 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 1354define 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 1365define 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 1376define 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 1387define 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 1398define 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 1409define 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 1420define 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 1431define 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 1442define 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 1453define 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 1464define 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 1475define 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