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