1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py 2; RUN: opt < %s -passes=instcombine -S | FileCheck %s 3 4define i1 @PR1738(double %x, double %y) { 5; CHECK-LABEL: @PR1738( 6; CHECK-NEXT: [[OR:%.*]] = fcmp uno double [[X:%.*]], [[Y:%.*]] 7; CHECK-NEXT: ret i1 [[OR]] 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 15; TODO: this can be fixed by freezing %y 16define i1 @PR1738_logical(double %x, double %y) { 17; CHECK-LABEL: @PR1738_logical( 18; CHECK-NEXT: [[CMP1:%.*]] = fcmp uno double [[X:%.*]], 0.000000e+00 19; CHECK-NEXT: [[CMP2:%.*]] = fcmp uno double [[Y:%.*]], 0.000000e+00 20; CHECK-NEXT: [[OR:%.*]] = select i1 [[CMP1]], i1 true, i1 [[CMP2]] 21; CHECK-NEXT: ret i1 [[OR]] 22; 23 %cmp1 = fcmp uno double %x, 0.0 24 %cmp2 = fcmp uno double %y, 0.0 25 %or = select i1 %cmp1, i1 true, i1 %cmp2 26 ret i1 %or 27} 28 29define <2 x i1> @PR1738_vec_undef(<2 x double> %x, <2 x double> %y) { 30; CHECK-LABEL: @PR1738_vec_undef( 31; CHECK-NEXT: [[CMP1:%.*]] = fcmp uno <2 x double> [[X:%.*]], <double 0.000000e+00, double undef> 32; CHECK-NEXT: [[CMP2:%.*]] = fcmp uno <2 x double> [[Y:%.*]], <double undef, double 0.000000e+00> 33; CHECK-NEXT: [[OR:%.*]] = or <2 x i1> [[CMP1]], [[CMP2]] 34; CHECK-NEXT: ret <2 x i1> [[OR]] 35; 36 %cmp1 = fcmp uno <2 x double> %x, <double 0.0, double undef> 37 %cmp2 = fcmp uno <2 x double> %y, <double undef, double 0.0> 38 %or = or <2 x i1> %cmp1, %cmp2 39 ret <2 x i1> %or 40} 41 42define <2 x i1> @PR1738_vec_poison(<2 x double> %x, <2 x double> %y) { 43; CHECK-LABEL: @PR1738_vec_poison( 44; CHECK-NEXT: [[OR:%.*]] = fcmp uno <2 x double> [[X:%.*]], [[Y:%.*]] 45; CHECK-NEXT: ret <2 x i1> [[OR]] 46; 47 %cmp1 = fcmp uno <2 x double> %x, <double 0.0, double poison> 48 %cmp2 = fcmp uno <2 x double> %y, <double poison, double 0.0> 49 %or = or <2 x i1> %cmp1, %cmp2 50 ret <2 x i1> %or 51} 52 53define i1 @PR41069(double %a, double %b, double %c, double %d) { 54; CHECK-LABEL: @PR41069( 55; CHECK-NEXT: [[UNO1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] 56; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[D:%.*]], [[C:%.*]] 57; CHECK-NEXT: [[R:%.*]] = or i1 [[UNO1]], [[TMP1]] 58; CHECK-NEXT: ret i1 [[R]] 59; 60 %uno1 = fcmp uno double %a, %b 61 %uno2 = fcmp uno double %c, 0.0 62 %or = or i1 %uno1, %uno2 63 %uno3 = fcmp uno double %d, 0.0 64 %r = or i1 %or, %uno3 65 ret i1 %r 66} 67 68; TODO: this can be fixed by freezing %c and %d 69define i1 @PR41069_logical(double %a, double %b, double %c, double %d) { 70; CHECK-LABEL: @PR41069_logical( 71; CHECK-NEXT: [[UNO1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] 72; CHECK-NEXT: [[UNO2:%.*]] = fcmp uno double [[C:%.*]], 0.000000e+00 73; CHECK-NEXT: [[OR:%.*]] = select i1 [[UNO1]], i1 true, i1 [[UNO2]] 74; CHECK-NEXT: [[UNO3:%.*]] = fcmp uno double [[D:%.*]], 0.000000e+00 75; CHECK-NEXT: [[R:%.*]] = select i1 [[OR]], i1 true, i1 [[UNO3]] 76; CHECK-NEXT: ret i1 [[R]] 77; 78 %uno1 = fcmp uno double %a, %b 79 %uno2 = fcmp uno double %c, 0.0 80 %or = select i1 %uno1, i1 true, i1 %uno2 81 %uno3 = fcmp uno double %d, 0.0 82 %r = select i1 %or, i1 true, i1 %uno3 83 ret i1 %r 84} 85 86define i1 @PR41069_commute(double %a, double %b, double %c, double %d) { 87; CHECK-LABEL: @PR41069_commute( 88; CHECK-NEXT: [[UNO1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] 89; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[D:%.*]], [[C:%.*]] 90; CHECK-NEXT: [[R:%.*]] = or i1 [[UNO1]], [[TMP1]] 91; CHECK-NEXT: ret i1 [[R]] 92; 93 %uno1 = fcmp uno double %a, %b 94 %uno2 = fcmp uno double %c, 0.0 95 %or = or i1 %uno1, %uno2 96 %uno3 = fcmp uno double %d, 0.0 97 %r = or i1 %uno3, %or 98 ret i1 %r 99} 100 101; TODO: this can be fixed by freezing %c and %d 102define i1 @PR41069_commute_logical(double %a, double %b, double %c, double %d) { 103; CHECK-LABEL: @PR41069_commute_logical( 104; CHECK-NEXT: [[UNO1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] 105; CHECK-NEXT: [[UNO2:%.*]] = fcmp uno double [[C:%.*]], 0.000000e+00 106; CHECK-NEXT: [[UNO3:%.*]] = fcmp uno double [[D:%.*]], 0.000000e+00 107; CHECK-NEXT: [[TMP1:%.*]] = select i1 [[UNO3]], i1 true, i1 [[UNO1]] 108; CHECK-NEXT: [[R:%.*]] = select i1 [[TMP1]], i1 true, i1 [[UNO2]] 109; CHECK-NEXT: ret i1 [[R]] 110; 111 %uno1 = fcmp uno double %a, %b 112 %uno2 = fcmp uno double %c, 0.0 113 %or = select i1 %uno1, i1 true, i1 %uno2 114 %uno3 = fcmp uno double %d, 0.0 115 %r = select i1 %uno3, i1 true, i1 %or 116 ret i1 %r 117} 118 119define <2 x i1> @PR41069_vec(<2 x i1> %z, <2 x float> %c, <2 x float> %d) { 120; CHECK-LABEL: @PR41069_vec( 121; CHECK-NEXT: [[UNO1:%.*]] = fcmp uno <2 x float> [[C:%.*]], zeroinitializer 122; CHECK-NEXT: [[OR:%.*]] = or <2 x i1> [[UNO1]], [[Z:%.*]] 123; CHECK-NEXT: [[UNO2:%.*]] = fcmp uno <2 x float> [[D:%.*]], <float 0.000000e+00, float undef> 124; CHECK-NEXT: [[R:%.*]] = or <2 x i1> [[OR]], [[UNO2]] 125; CHECK-NEXT: ret <2 x i1> [[R]] 126; 127 %uno1 = fcmp uno <2 x float> %c, zeroinitializer 128 %or = or <2 x i1> %uno1, %z 129 %uno2 = fcmp uno <2 x float> %d, <float 0.0, float undef> 130 %r = or <2 x i1> %or, %uno2 131 ret <2 x i1> %r 132} 133 134define <2 x i1> @PR41069_vec_poison(<2 x i1> %z, <2 x float> %c, <2 x float> %d) { 135; CHECK-LABEL: @PR41069_vec_poison( 136; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno <2 x float> [[D:%.*]], [[C:%.*]] 137; CHECK-NEXT: [[R:%.*]] = or <2 x i1> [[TMP1]], [[Z:%.*]] 138; CHECK-NEXT: ret <2 x i1> [[R]] 139; 140 %uno1 = fcmp uno <2 x float> %c, zeroinitializer 141 %or = or <2 x i1> %uno1, %z 142 %uno2 = fcmp uno <2 x float> %d, <float 0.0, float poison> 143 %r = or <2 x i1> %or, %uno2 144 ret <2 x i1> %r 145} 146 147define <2 x i1> @PR41069_vec_commute(<2 x i1> %z, <2 x float> %c, <2 x float> %d) { 148; CHECK-LABEL: @PR41069_vec_commute( 149; CHECK-NEXT: [[UNO1:%.*]] = fcmp uno <2 x float> [[C:%.*]], zeroinitializer 150; CHECK-NEXT: [[OR:%.*]] = or <2 x i1> [[UNO1]], [[Z:%.*]] 151; CHECK-NEXT: [[UNO2:%.*]] = fcmp uno <2 x float> [[D:%.*]], <float 0.000000e+00, float undef> 152; CHECK-NEXT: [[R:%.*]] = or <2 x i1> [[UNO2]], [[OR]] 153; CHECK-NEXT: ret <2 x i1> [[R]] 154; 155 %uno1 = fcmp uno <2 x float> %c, zeroinitializer 156 %or = or <2 x i1> %uno1, %z 157 %uno2 = fcmp uno <2 x float> %d, <float 0.0, float undef> 158 %r = or <2 x i1> %uno2, %or 159 ret <2 x i1> %r 160} 161 162define <2 x i1> @PR41069_vec_commute_poison(<2 x i1> %z, <2 x float> %c, <2 x float> %d) { 163; CHECK-LABEL: @PR41069_vec_commute_poison( 164; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno <2 x float> [[D:%.*]], [[C:%.*]] 165; CHECK-NEXT: [[R:%.*]] = or <2 x i1> [[TMP1]], [[Z:%.*]] 166; CHECK-NEXT: ret <2 x i1> [[R]] 167; 168 %uno1 = fcmp uno <2 x float> %c, zeroinitializer 169 %or = or <2 x i1> %uno1, %z 170 %uno2 = fcmp uno <2 x float> %d, <float 0.0, float poison> 171 %r = or <2 x i1> %uno2, %or 172 ret <2 x i1> %r 173} 174 175define i1 @fcmp_uno_nonzero(float %x, float %y) { 176; CHECK-LABEL: @fcmp_uno_nonzero( 177; CHECK-NEXT: [[OR:%.*]] = fcmp uno float [[X:%.*]], [[Y:%.*]] 178; CHECK-NEXT: ret i1 [[OR]] 179; 180 %cmp1 = fcmp uno float %x, 1.0 181 %cmp2 = fcmp uno float %y, 2.0 182 %or = or i1 %cmp1, %cmp2 183 ret i1 %or 184} 185 186; TODO: this can be fixed by freezing %y 187define i1 @fcmp_uno_nonzero_logical(float %x, float %y) { 188; CHECK-LABEL: @fcmp_uno_nonzero_logical( 189; CHECK-NEXT: [[CMP1:%.*]] = fcmp uno float [[X:%.*]], 0.000000e+00 190; CHECK-NEXT: [[CMP2:%.*]] = fcmp uno float [[Y:%.*]], 0.000000e+00 191; CHECK-NEXT: [[OR:%.*]] = select i1 [[CMP1]], i1 true, i1 [[CMP2]] 192; CHECK-NEXT: ret i1 [[OR]] 193; 194 %cmp1 = fcmp uno float %x, 1.0 195 %cmp2 = fcmp uno float %y, 2.0 196 %or = select i1 %cmp1, i1 true, i1 %cmp2 197 ret i1 %or 198} 199 200define <3 x i1> @fcmp_uno_nonzero_vec(<3 x float> %x, <3 x float> %y) { 201; CHECK-LABEL: @fcmp_uno_nonzero_vec( 202; CHECK-NEXT: [[OR:%.*]] = fcmp uno <3 x float> [[X:%.*]], [[Y:%.*]] 203; CHECK-NEXT: ret <3 x i1> [[OR]] 204; 205 %cmp1 = fcmp uno <3 x float> %x, <float 1.0, float 2.0, float 3.0> 206 %cmp2 = fcmp uno <3 x float> %y, <float 3.0, float 2.0, float 1.0> 207 %or = or <3 x i1> %cmp1, %cmp2 208 ret <3 x i1> %or 209} 210 211define i1 @auto_gen_0(double %a, double %b) { 212; CHECK-LABEL: @auto_gen_0( 213; CHECK-NEXT: ret i1 false 214; 215 %cmp = fcmp false double %a, %b 216 %cmp1 = fcmp false double %a, %b 217 %retval = or i1 %cmp, %cmp1 218 ret i1 %retval 219} 220 221define i1 @auto_gen_0_logical(double %a, double %b) { 222; CHECK-LABEL: @auto_gen_0_logical( 223; CHECK-NEXT: ret i1 false 224; 225 %cmp = fcmp false double %a, %b 226 %cmp1 = fcmp false double %a, %b 227 %retval = select i1 %cmp, i1 true, i1 %cmp1 228 ret i1 %retval 229} 230 231define i1 @auto_gen_0_logical_fmf(double %a, double %b) { 232; CHECK-LABEL: @auto_gen_0_logical_fmf( 233; CHECK-NEXT: ret i1 false 234; 235 %cmp = fcmp false double %a, %b 236 %cmp1 = fcmp fast false double %a, %b 237 %retval = select i1 %cmp, i1 true, i1 %cmp1 238 ret i1 %retval 239} 240 241define i1 @auto_gen_1(double %a, double %b) { 242; CHECK-LABEL: @auto_gen_1( 243; CHECK-NEXT: [[CMP:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] 244; CHECK-NEXT: ret i1 [[CMP]] 245; 246 %cmp = fcmp oeq double %a, %b 247 %cmp1 = fcmp false double %a, %b 248 %retval = or i1 %cmp, %cmp1 249 ret i1 %retval 250} 251 252define i1 @auto_gen_1_logical(double %a, double %b) { 253; CHECK-LABEL: @auto_gen_1_logical( 254; CHECK-NEXT: [[CMP:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] 255; CHECK-NEXT: ret i1 [[CMP]] 256; 257 %cmp = fcmp oeq double %a, %b 258 %cmp1 = fcmp false double %a, %b 259 %retval = select i1 %cmp, i1 true, i1 %cmp1 260 ret i1 %retval 261} 262 263define i1 @auto_gen_1_logical_fmf(double %a, double %b) { 264; CHECK-LABEL: @auto_gen_1_logical_fmf( 265; CHECK-NEXT: [[CMP:%.*]] = fcmp fast oeq double [[A:%.*]], [[B:%.*]] 266; CHECK-NEXT: ret i1 [[CMP]] 267; 268 %cmp = fcmp fast oeq double %a, %b 269 %cmp1 = fcmp fast false double %a, %b 270 %retval = select i1 %cmp, i1 true, i1 %cmp1 271 ret i1 %retval 272} 273 274define i1 @auto_gen_2(double %a, double %b) { 275; CHECK-LABEL: @auto_gen_2( 276; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] 277; CHECK-NEXT: ret i1 [[RETVAL]] 278; 279 %cmp = fcmp oeq double %a, %b 280 %cmp1 = fcmp oeq double %a, %b 281 %retval = or i1 %cmp, %cmp1 282 ret i1 %retval 283} 284 285define i1 @auto_gen_2_logical(double %a, double %b) { 286; CHECK-LABEL: @auto_gen_2_logical( 287; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] 288; CHECK-NEXT: ret i1 [[RETVAL]] 289; 290 %cmp = fcmp oeq double %a, %b 291 %cmp1 = fcmp oeq double %a, %b 292 %retval = select i1 %cmp, i1 true, i1 %cmp1 293 ret i1 %retval 294} 295 296define i1 @auto_gen_2_logical_fmf(double %a, double %b) { 297; CHECK-LABEL: @auto_gen_2_logical_fmf( 298; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]] 299; CHECK-NEXT: ret i1 [[RETVAL]] 300; 301 %cmp = fcmp oeq double %a, %b 302 %cmp1 = fcmp fast oeq double %a, %b 303 %retval = select i1 %cmp, i1 true, i1 %cmp1 304 ret i1 %retval 305} 306 307define i1 @auto_gen_3(double %a, double %b) { 308; CHECK-LABEL: @auto_gen_3( 309; CHECK-NEXT: [[CMP:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] 310; CHECK-NEXT: ret i1 [[CMP]] 311; 312 %cmp = fcmp ogt double %a, %b 313 %cmp1 = fcmp false double %a, %b 314 %retval = or i1 %cmp, %cmp1 315 ret i1 %retval 316} 317 318define i1 @auto_gen_3_logical(double %a, double %b) { 319; CHECK-LABEL: @auto_gen_3_logical( 320; CHECK-NEXT: [[CMP:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] 321; CHECK-NEXT: ret i1 [[CMP]] 322; 323 %cmp = fcmp ogt double %a, %b 324 %cmp1 = fcmp false double %a, %b 325 %retval = select i1 %cmp, i1 true, i1 %cmp1 326 ret i1 %retval 327} 328 329define i1 @auto_gen_3_logical_fmf(double %a, double %b) { 330; CHECK-LABEL: @auto_gen_3_logical_fmf( 331; CHECK-NEXT: [[CMP:%.*]] = fcmp fast ogt double [[A:%.*]], [[B:%.*]] 332; CHECK-NEXT: ret i1 [[CMP]] 333; 334 %cmp = fcmp fast ogt double %a, %b 335 %cmp1 = fcmp fast false double %a, %b 336 %retval = select i1 %cmp, i1 true, i1 %cmp1 337 ret i1 %retval 338} 339 340define i1 @auto_gen_4(double %a, double %b) { 341; CHECK-LABEL: @auto_gen_4( 342; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]] 343; CHECK-NEXT: ret i1 [[RETVAL]] 344; 345 %cmp = fcmp ogt double %a, %b 346 %cmp1 = fcmp oeq double %a, %b 347 %retval = or i1 %cmp, %cmp1 348 ret i1 %retval 349} 350 351define i1 @auto_gen_4_logical(double %a, double %b) { 352; CHECK-LABEL: @auto_gen_4_logical( 353; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]] 354; CHECK-NEXT: ret i1 [[RETVAL]] 355; 356 %cmp = fcmp ogt double %a, %b 357 %cmp1 = fcmp oeq double %a, %b 358 %retval = select i1 %cmp, i1 true, i1 %cmp1 359 ret i1 %retval 360} 361 362define i1 @auto_gen_4_logical_fmf(double %a, double %b) { 363; CHECK-LABEL: @auto_gen_4_logical_fmf( 364; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]] 365; CHECK-NEXT: ret i1 [[RETVAL]] 366; 367 %cmp = fcmp ogt double %a, %b 368 %cmp1 = fcmp fast oeq double %a, %b 369 %retval = select i1 %cmp, i1 true, i1 %cmp1 370 ret i1 %retval 371} 372 373define i1 @auto_gen_5(double %a, double %b) { 374; CHECK-LABEL: @auto_gen_5( 375; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] 376; CHECK-NEXT: ret i1 [[RETVAL]] 377; 378 %cmp = fcmp ogt double %a, %b 379 %cmp1 = fcmp ogt double %a, %b 380 %retval = or i1 %cmp, %cmp1 381 ret i1 %retval 382} 383 384define i1 @auto_gen_5_logical(double %a, double %b) { 385; CHECK-LABEL: @auto_gen_5_logical( 386; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]] 387; CHECK-NEXT: ret i1 [[RETVAL]] 388; 389 %cmp = fcmp ogt double %a, %b 390 %cmp1 = fcmp ogt double %a, %b 391 %retval = select i1 %cmp, i1 true, i1 %cmp1 392 ret i1 %retval 393} 394 395define i1 @auto_gen_5_logical_fmf(double %a, double %b) { 396; CHECK-LABEL: @auto_gen_5_logical_fmf( 397; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast ogt double [[A:%.*]], [[B:%.*]] 398; CHECK-NEXT: ret i1 [[RETVAL]] 399; 400 %cmp = fcmp fast ogt double %a, %b 401 %cmp1 = fcmp fast ogt double %a, %b 402 %retval = select i1 %cmp, i1 true, i1 %cmp1 403 ret i1 %retval 404} 405 406define i1 @auto_gen_6(double %a, double %b) { 407; CHECK-LABEL: @auto_gen_6( 408; CHECK-NEXT: [[CMP:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]] 409; CHECK-NEXT: ret i1 [[CMP]] 410; 411 %cmp = fcmp oge double %a, %b 412 %cmp1 = fcmp false double %a, %b 413 %retval = or i1 %cmp, %cmp1 414 ret i1 %retval 415} 416 417define i1 @auto_gen_6_logical(double %a, double %b) { 418; CHECK-LABEL: @auto_gen_6_logical( 419; CHECK-NEXT: [[CMP:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]] 420; CHECK-NEXT: ret i1 [[CMP]] 421; 422 %cmp = fcmp oge double %a, %b 423 %cmp1 = fcmp false double %a, %b 424 %retval = select i1 %cmp, i1 true, i1 %cmp1 425 ret i1 %retval 426} 427 428define i1 @auto_gen_6_logical_fmf(double %a, double %b) { 429; CHECK-LABEL: @auto_gen_6_logical_fmf( 430; CHECK-NEXT: [[CMP:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]] 431; CHECK-NEXT: ret i1 [[CMP]] 432; 433 %cmp = fcmp oge double %a, %b 434 %cmp1 = fcmp fast false double %a, %b 435 %retval = select i1 %cmp, i1 true, i1 %cmp1 436 ret i1 %retval 437} 438 439define i1 @auto_gen_7(double %a, double %b) { 440; CHECK-LABEL: @auto_gen_7( 441; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]] 442; CHECK-NEXT: ret i1 [[RETVAL]] 443; 444 %cmp = fcmp oge double %a, %b 445 %cmp1 = fcmp oeq double %a, %b 446 %retval = or i1 %cmp, %cmp1 447 ret i1 %retval 448} 449 450define i1 @auto_gen_7_logical(double %a, double %b) { 451; CHECK-LABEL: @auto_gen_7_logical( 452; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]] 453; CHECK-NEXT: ret i1 [[RETVAL]] 454; 455 %cmp = fcmp oge double %a, %b 456 %cmp1 = fcmp oeq double %a, %b 457 %retval = select i1 %cmp, i1 true, i1 %cmp1 458 ret i1 %retval 459} 460 461define i1 @auto_gen_7_logical_fmf(double %a, double %b) { 462; CHECK-LABEL: @auto_gen_7_logical_fmf( 463; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast oge double [[A:%.*]], [[B:%.*]] 464; CHECK-NEXT: ret i1 [[RETVAL]] 465; 466 %cmp = fcmp fast oge double %a, %b 467 %cmp1 = fcmp fast oeq double %a, %b 468 %retval = select i1 %cmp, i1 true, i1 %cmp1 469 ret i1 %retval 470} 471 472define i1 @auto_gen_8(double %a, double %b) { 473; CHECK-LABEL: @auto_gen_8( 474; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]] 475; CHECK-NEXT: ret i1 [[RETVAL]] 476; 477 %cmp = fcmp oge double %a, %b 478 %cmp1 = fcmp ogt double %a, %b 479 %retval = or i1 %cmp, %cmp1 480 ret i1 %retval 481} 482 483define i1 @auto_gen_8_logical(double %a, double %b) { 484; CHECK-LABEL: @auto_gen_8_logical( 485; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]] 486; CHECK-NEXT: ret i1 [[RETVAL]] 487; 488 %cmp = fcmp oge double %a, %b 489 %cmp1 = fcmp ogt double %a, %b 490 %retval = select i1 %cmp, i1 true, i1 %cmp1 491 ret i1 %retval 492} 493 494define i1 @auto_gen_8_logical_fmf(double %a, double %b) { 495; CHECK-LABEL: @auto_gen_8_logical_fmf( 496; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]] 497; CHECK-NEXT: ret i1 [[RETVAL]] 498; 499 %cmp = fcmp oge double %a, %b 500 %cmp1 = fcmp fast ogt double %a, %b 501 %retval = select i1 %cmp, i1 true, i1 %cmp1 502 ret i1 %retval 503} 504 505define i1 @auto_gen_9(double %a, double %b) { 506; CHECK-LABEL: @auto_gen_9( 507; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]] 508; CHECK-NEXT: ret i1 [[RETVAL]] 509; 510 %cmp = fcmp oge double %a, %b 511 %cmp1 = fcmp oge double %a, %b 512 %retval = or i1 %cmp, %cmp1 513 ret i1 %retval 514} 515 516define i1 @auto_gen_9_logical(double %a, double %b) { 517; CHECK-LABEL: @auto_gen_9_logical( 518; CHECK-NEXT: [[RETVAL:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]] 519; CHECK-NEXT: ret i1 [[RETVAL]] 520; 521 %cmp = fcmp oge double %a, %b 522 %cmp1 = fcmp oge double %a, %b 523 %retval = select i1 %cmp, i1 true, i1 %cmp1 524 ret i1 %retval 525} 526 527define i1 @auto_gen_9_logical_fmf(double %a, double %b) { 528; CHECK-LABEL: @auto_gen_9_logical_fmf( 529; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast oge double [[A:%.*]], [[B:%.*]] 530; CHECK-NEXT: ret i1 [[RETVAL]] 531; 532 %cmp = fcmp fast oge double %a, %b 533 %cmp1 = fcmp fast oge double %a, %b 534 %retval = select i1 %cmp, i1 true, i1 %cmp1 535 ret i1 %retval 536} 537 538define i1 @auto_gen_10(double %a, double %b) { 539; CHECK-LABEL: @auto_gen_10( 540; CHECK-NEXT: [[CMP:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] 541; CHECK-NEXT: ret i1 [[CMP]] 542; 543 %cmp = fcmp olt double %a, %b 544 %cmp1 = fcmp false double %a, %b 545 %retval = or i1 %cmp, %cmp1 546 ret i1 %retval 547} 548 549define i1 @auto_gen_10_logical(double %a, double %b) { 550; CHECK-LABEL: @auto_gen_10_logical( 551; CHECK-NEXT: [[CMP:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] 552; CHECK-NEXT: ret i1 [[CMP]] 553; 554 %cmp = fcmp olt double %a, %b 555 %cmp1 = fcmp false double %a, %b 556 %retval = select i1 %cmp, i1 true, i1 %cmp1 557 ret i1 %retval 558} 559 560define i1 @auto_gen_10_logical_fmf(double %a, double %b) { 561; CHECK-LABEL: @auto_gen_10_logical_fmf( 562; CHECK-NEXT: [[CMP:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] 563; CHECK-NEXT: ret i1 [[CMP]] 564; 565 %cmp = fcmp olt double %a, %b 566 %cmp1 = fcmp fast false double %a, %b 567 %retval = select i1 %cmp, i1 true, i1 %cmp1 568 ret i1 %retval 569} 570 571define i1 @auto_gen_11(double %a, double %b) { 572; CHECK-LABEL: @auto_gen_11( 573; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]] 574; CHECK-NEXT: ret i1 [[RETVAL]] 575; 576 %cmp = fcmp olt double %a, %b 577 %cmp1 = fcmp oeq double %a, %b 578 %retval = or i1 %cmp, %cmp1 579 ret i1 %retval 580} 581 582define i1 @auto_gen_11_logical(double %a, double %b) { 583; CHECK-LABEL: @auto_gen_11_logical( 584; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]] 585; CHECK-NEXT: ret i1 [[RETVAL]] 586; 587 %cmp = fcmp olt double %a, %b 588 %cmp1 = fcmp oeq double %a, %b 589 %retval = select i1 %cmp, i1 true, i1 %cmp1 590 ret i1 %retval 591} 592 593define i1 @auto_gen_11_logical_fmf(double %a, double %b) { 594; CHECK-LABEL: @auto_gen_11_logical_fmf( 595; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast ole double [[A:%.*]], [[B:%.*]] 596; CHECK-NEXT: ret i1 [[RETVAL]] 597; 598 %cmp = fcmp fast olt double %a, %b 599 %cmp1 = fcmp fast oeq double %a, %b 600 %retval = select i1 %cmp, i1 true, i1 %cmp1 601 ret i1 %retval 602} 603 604define i1 @auto_gen_12(double %a, double %b) { 605; CHECK-LABEL: @auto_gen_12( 606; CHECK-NEXT: [[RETVAL:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]] 607; CHECK-NEXT: ret i1 [[RETVAL]] 608; 609 %cmp = fcmp olt double %a, %b 610 %cmp1 = fcmp ogt double %a, %b 611 %retval = or i1 %cmp, %cmp1 612 ret i1 %retval 613} 614 615define i1 @auto_gen_12_logical(double %a, double %b) { 616; CHECK-LABEL: @auto_gen_12_logical( 617; CHECK-NEXT: [[RETVAL:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]] 618; CHECK-NEXT: ret i1 [[RETVAL]] 619; 620 %cmp = fcmp olt double %a, %b 621 %cmp1 = fcmp ogt double %a, %b 622 %retval = select i1 %cmp, i1 true, i1 %cmp1 623 ret i1 %retval 624} 625 626define i1 @auto_gen_12_logical_fmf(double %a, double %b) { 627; CHECK-LABEL: @auto_gen_12_logical_fmf( 628; CHECK-NEXT: [[RETVAL:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]] 629; CHECK-NEXT: ret i1 [[RETVAL]] 630; 631 %cmp = fcmp olt double %a, %b 632 %cmp1 = fcmp fast ogt double %a, %b 633 %retval = select i1 %cmp, i1 true, i1 %cmp1 634 ret i1 %retval 635} 636 637define i1 @auto_gen_13(double %a, double %b) { 638; CHECK-LABEL: @auto_gen_13( 639; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]] 640; CHECK-NEXT: ret i1 [[RETVAL]] 641; 642 %cmp = fcmp olt double %a, %b 643 %cmp1 = fcmp oge double %a, %b 644 %retval = or i1 %cmp, %cmp1 645 ret i1 %retval 646} 647 648define i1 @auto_gen_13_logical(double %a, double %b) { 649; CHECK-LABEL: @auto_gen_13_logical( 650; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]] 651; CHECK-NEXT: ret i1 [[RETVAL]] 652; 653 %cmp = fcmp olt double %a, %b 654 %cmp1 = fcmp oge double %a, %b 655 %retval = select i1 %cmp, i1 true, i1 %cmp1 656 ret i1 %retval 657} 658 659define i1 @auto_gen_13_logical_fmf(double %a, double %b) { 660; CHECK-LABEL: @auto_gen_13_logical_fmf( 661; CHECK-NEXT: ret i1 true 662; 663 %cmp = fcmp fast olt double %a, %b 664 %cmp1 = fcmp fast oge double %a, %b 665 %retval = select i1 %cmp, i1 true, i1 %cmp1 666 ret i1 %retval 667} 668 669define i1 @auto_gen_14(double %a, double %b) { 670; CHECK-LABEL: @auto_gen_14( 671; CHECK-NEXT: [[RETVAL:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] 672; CHECK-NEXT: ret i1 [[RETVAL]] 673; 674 %cmp = fcmp olt double %a, %b 675 %cmp1 = fcmp olt double %a, %b 676 %retval = or i1 %cmp, %cmp1 677 ret i1 %retval 678} 679 680define i1 @auto_gen_14_logical(double %a, double %b) { 681; CHECK-LABEL: @auto_gen_14_logical( 682; CHECK-NEXT: [[RETVAL:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] 683; CHECK-NEXT: ret i1 [[RETVAL]] 684; 685 %cmp = fcmp olt double %a, %b 686 %cmp1 = fcmp olt double %a, %b 687 %retval = select i1 %cmp, i1 true, i1 %cmp1 688 ret i1 %retval 689} 690 691define i1 @auto_gen_14_logical_fmf(double %a, double %b) { 692; CHECK-LABEL: @auto_gen_14_logical_fmf( 693; CHECK-NEXT: [[RETVAL:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] 694; CHECK-NEXT: ret i1 [[RETVAL]] 695; 696 %cmp = fcmp olt double %a, %b 697 %cmp1 = fcmp fast olt double %a, %b 698 %retval = select i1 %cmp, i1 true, i1 %cmp1 699 ret i1 %retval 700} 701 702define i1 @auto_gen_15(double %a, double %b) { 703; CHECK-LABEL: @auto_gen_15( 704; CHECK-NEXT: [[CMP:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]] 705; CHECK-NEXT: ret i1 [[CMP]] 706; 707 %cmp = fcmp ole double %a, %b 708 %cmp1 = fcmp false double %a, %b 709 %retval = or i1 %cmp, %cmp1 710 ret i1 %retval 711} 712 713define i1 @auto_gen_15_logical(double %a, double %b) { 714; CHECK-LABEL: @auto_gen_15_logical( 715; CHECK-NEXT: [[CMP:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]] 716; CHECK-NEXT: ret i1 [[CMP]] 717; 718 %cmp = fcmp ole double %a, %b 719 %cmp1 = fcmp false double %a, %b 720 %retval = select i1 %cmp, i1 true, i1 %cmp1 721 ret i1 %retval 722} 723 724define i1 @auto_gen_15_logical_fmf(double %a, double %b) { 725; CHECK-LABEL: @auto_gen_15_logical_fmf( 726; CHECK-NEXT: [[CMP:%.*]] = fcmp fast ole double [[A:%.*]], [[B:%.*]] 727; CHECK-NEXT: ret i1 [[CMP]] 728; 729 %cmp = fcmp fast ole double %a, %b 730 %cmp1 = fcmp fast false double %a, %b 731 %retval = select i1 %cmp, i1 true, i1 %cmp1 732 ret i1 %retval 733} 734 735define i1 @auto_gen_16(double %a, double %b) { 736; CHECK-LABEL: @auto_gen_16( 737; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]] 738; CHECK-NEXT: ret i1 [[RETVAL]] 739; 740 %cmp = fcmp ole double %a, %b 741 %cmp1 = fcmp oeq double %a, %b 742 %retval = or i1 %cmp, %cmp1 743 ret i1 %retval 744} 745 746define i1 @auto_gen_16_logical(double %a, double %b) { 747; CHECK-LABEL: @auto_gen_16_logical( 748; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]] 749; CHECK-NEXT: ret i1 [[RETVAL]] 750; 751 %cmp = fcmp ole double %a, %b 752 %cmp1 = fcmp oeq double %a, %b 753 %retval = select i1 %cmp, i1 true, i1 %cmp1 754 ret i1 %retval 755} 756 757define i1 @auto_gen_16_logical_fmf(double %a, double %b) { 758; CHECK-LABEL: @auto_gen_16_logical_fmf( 759; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]] 760; CHECK-NEXT: ret i1 [[RETVAL]] 761; 762 %cmp = fcmp ole double %a, %b 763 %cmp1 = fcmp fast oeq double %a, %b 764 %retval = select i1 %cmp, i1 true, i1 %cmp1 765 ret i1 %retval 766} 767 768define i1 @auto_gen_17(double %a, double %b) { 769; CHECK-LABEL: @auto_gen_17( 770; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]] 771; CHECK-NEXT: ret i1 [[RETVAL]] 772; 773 %cmp = fcmp ole double %a, %b 774 %cmp1 = fcmp ogt double %a, %b 775 %retval = or i1 %cmp, %cmp1 776 ret i1 %retval 777} 778 779define i1 @auto_gen_17_logical(double %a, double %b) { 780; CHECK-LABEL: @auto_gen_17_logical( 781; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]] 782; CHECK-NEXT: ret i1 [[RETVAL]] 783; 784 %cmp = fcmp ole double %a, %b 785 %cmp1 = fcmp ogt double %a, %b 786 %retval = select i1 %cmp, i1 true, i1 %cmp1 787 ret i1 %retval 788} 789 790define i1 @auto_gen_17_logical_fmf(double %a, double %b) { 791; CHECK-LABEL: @auto_gen_17_logical_fmf( 792; CHECK-NEXT: ret i1 true 793; 794 %cmp = fcmp fast ole double %a, %b 795 %cmp1 = fcmp fast ogt double %a, %b 796 %retval = select i1 %cmp, i1 true, i1 %cmp1 797 ret i1 %retval 798} 799 800define i1 @auto_gen_18(double %a, double %b) { 801; CHECK-LABEL: @auto_gen_18( 802; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]] 803; CHECK-NEXT: ret i1 [[RETVAL]] 804; 805 %cmp = fcmp ole double %a, %b 806 %cmp1 = fcmp oge double %a, %b 807 %retval = or i1 %cmp, %cmp1 808 ret i1 %retval 809} 810 811define i1 @auto_gen_18_logical(double %a, double %b) { 812; CHECK-LABEL: @auto_gen_18_logical( 813; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]] 814; CHECK-NEXT: ret i1 [[RETVAL]] 815; 816 %cmp = fcmp ole double %a, %b 817 %cmp1 = fcmp oge double %a, %b 818 %retval = select i1 %cmp, i1 true, i1 %cmp1 819 ret i1 %retval 820} 821 822define i1 @auto_gen_18_logical_fmf(double %a, double %b) { 823; CHECK-LABEL: @auto_gen_18_logical_fmf( 824; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]] 825; CHECK-NEXT: ret i1 [[RETVAL]] 826; 827 %cmp = fcmp ole double %a, %b 828 %cmp1 = fcmp fast oge double %a, %b 829 %retval = select i1 %cmp, i1 true, i1 %cmp1 830 ret i1 %retval 831} 832 833define i1 @auto_gen_19(double %a, double %b) { 834; CHECK-LABEL: @auto_gen_19( 835; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]] 836; CHECK-NEXT: ret i1 [[RETVAL]] 837; 838 %cmp = fcmp ole double %a, %b 839 %cmp1 = fcmp olt double %a, %b 840 %retval = or i1 %cmp, %cmp1 841 ret i1 %retval 842} 843 844define i1 @auto_gen_19_logical(double %a, double %b) { 845; CHECK-LABEL: @auto_gen_19_logical( 846; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]] 847; CHECK-NEXT: ret i1 [[RETVAL]] 848; 849 %cmp = fcmp ole double %a, %b 850 %cmp1 = fcmp olt double %a, %b 851 %retval = select i1 %cmp, i1 true, i1 %cmp1 852 ret i1 %retval 853} 854 855define i1 @auto_gen_19_logical_fmf(double %a, double %b) { 856; CHECK-LABEL: @auto_gen_19_logical_fmf( 857; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast ole double [[A:%.*]], [[B:%.*]] 858; CHECK-NEXT: ret i1 [[RETVAL]] 859; 860 %cmp = fcmp fast ole double %a, %b 861 %cmp1 = fcmp fast olt double %a, %b 862 %retval = select i1 %cmp, i1 true, i1 %cmp1 863 ret i1 %retval 864} 865 866define i1 @auto_gen_20(double %a, double %b) { 867; CHECK-LABEL: @auto_gen_20( 868; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]] 869; CHECK-NEXT: ret i1 [[RETVAL]] 870; 871 %cmp = fcmp ole double %a, %b 872 %cmp1 = fcmp ole double %a, %b 873 %retval = or i1 %cmp, %cmp1 874 ret i1 %retval 875} 876 877define i1 @auto_gen_20_logical(double %a, double %b) { 878; CHECK-LABEL: @auto_gen_20_logical( 879; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]] 880; CHECK-NEXT: ret i1 [[RETVAL]] 881; 882 %cmp = fcmp ole double %a, %b 883 %cmp1 = fcmp ole double %a, %b 884 %retval = select i1 %cmp, i1 true, i1 %cmp1 885 ret i1 %retval 886} 887 888define i1 @auto_gen_20_logical_fmf(double %a, double %b) { 889; CHECK-LABEL: @auto_gen_20_logical_fmf( 890; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]] 891; CHECK-NEXT: ret i1 [[RETVAL]] 892; 893 %cmp = fcmp ole double %a, %b 894 %cmp1 = fcmp fast ole double %a, %b 895 %retval = select i1 %cmp, i1 true, i1 %cmp1 896 ret i1 %retval 897} 898 899define i1 @auto_gen_21(double %a, double %b) { 900; CHECK-LABEL: @auto_gen_21( 901; CHECK-NEXT: [[CMP:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]] 902; CHECK-NEXT: ret i1 [[CMP]] 903; 904 %cmp = fcmp one double %a, %b 905 %cmp1 = fcmp false double %a, %b 906 %retval = or i1 %cmp, %cmp1 907 ret i1 %retval 908} 909 910define i1 @auto_gen_21_logical(double %a, double %b) { 911; CHECK-LABEL: @auto_gen_21_logical( 912; CHECK-NEXT: [[CMP:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]] 913; CHECK-NEXT: ret i1 [[CMP]] 914; 915 %cmp = fcmp one double %a, %b 916 %cmp1 = fcmp false double %a, %b 917 %retval = select i1 %cmp, i1 true, i1 %cmp1 918 ret i1 %retval 919} 920 921define i1 @auto_gen_21_logical_fmf(double %a, double %b) { 922; CHECK-LABEL: @auto_gen_21_logical_fmf( 923; CHECK-NEXT: [[CMP:%.*]] = fcmp fast one double [[A:%.*]], [[B:%.*]] 924; CHECK-NEXT: ret i1 [[CMP]] 925; 926 %cmp = fcmp fast one double %a, %b 927 %cmp1 = fcmp fast false double %a, %b 928 %retval = select i1 %cmp, i1 true, i1 %cmp1 929 ret i1 %retval 930} 931 932define i1 @auto_gen_22(double %a, double %b) { 933; CHECK-LABEL: @auto_gen_22( 934; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]] 935; CHECK-NEXT: ret i1 [[RETVAL]] 936; 937 %cmp = fcmp one double %a, %b 938 %cmp1 = fcmp oeq double %a, %b 939 %retval = or i1 %cmp, %cmp1 940 ret i1 %retval 941} 942 943define i1 @auto_gen_22_logical(double %a, double %b) { 944; CHECK-LABEL: @auto_gen_22_logical( 945; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]] 946; CHECK-NEXT: ret i1 [[RETVAL]] 947; 948 %cmp = fcmp one double %a, %b 949 %cmp1 = fcmp oeq double %a, %b 950 %retval = select i1 %cmp, i1 true, i1 %cmp1 951 ret i1 %retval 952} 953 954define i1 @auto_gen_22_logical_fmf(double %a, double %b) { 955; CHECK-LABEL: @auto_gen_22_logical_fmf( 956; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]] 957; CHECK-NEXT: ret i1 [[RETVAL]] 958; 959 %cmp = fcmp one double %a, %b 960 %cmp1 = fcmp fast oeq double %a, %b 961 %retval = select i1 %cmp, i1 true, i1 %cmp1 962 ret i1 %retval 963} 964 965define i1 @auto_gen_23(double %a, double %b) { 966; CHECK-LABEL: @auto_gen_23( 967; CHECK-NEXT: [[RETVAL:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]] 968; CHECK-NEXT: ret i1 [[RETVAL]] 969; 970 %cmp = fcmp one double %a, %b 971 %cmp1 = fcmp ogt double %a, %b 972 %retval = or i1 %cmp, %cmp1 973 ret i1 %retval 974} 975 976define i1 @auto_gen_23_logical(double %a, double %b) { 977; CHECK-LABEL: @auto_gen_23_logical( 978; CHECK-NEXT: [[RETVAL:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]] 979; CHECK-NEXT: ret i1 [[RETVAL]] 980; 981 %cmp = fcmp one double %a, %b 982 %cmp1 = fcmp ogt double %a, %b 983 %retval = select i1 %cmp, i1 true, i1 %cmp1 984 ret i1 %retval 985} 986 987define i1 @auto_gen_23_logical_fmf(double %a, double %b) { 988; CHECK-LABEL: @auto_gen_23_logical_fmf( 989; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast one double [[A:%.*]], [[B:%.*]] 990; CHECK-NEXT: ret i1 [[RETVAL]] 991; 992 %cmp = fcmp fast one double %a, %b 993 %cmp1 = fcmp fast ogt double %a, %b 994 %retval = select i1 %cmp, i1 true, i1 %cmp1 995 ret i1 %retval 996} 997 998define i1 @auto_gen_24(double %a, double %b) { 999; CHECK-LABEL: @auto_gen_24( 1000; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]] 1001; CHECK-NEXT: ret i1 [[RETVAL]] 1002; 1003 %cmp = fcmp one double %a, %b 1004 %cmp1 = fcmp oge double %a, %b 1005 %retval = or i1 %cmp, %cmp1 1006 ret i1 %retval 1007} 1008 1009define i1 @auto_gen_24_logical(double %a, double %b) { 1010; CHECK-LABEL: @auto_gen_24_logical( 1011; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]] 1012; CHECK-NEXT: ret i1 [[RETVAL]] 1013; 1014 %cmp = fcmp one double %a, %b 1015 %cmp1 = fcmp oge double %a, %b 1016 %retval = select i1 %cmp, i1 true, i1 %cmp1 1017 ret i1 %retval 1018} 1019 1020define i1 @auto_gen_24_logical_fmf(double %a, double %b) { 1021; CHECK-LABEL: @auto_gen_24_logical_fmf( 1022; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]] 1023; CHECK-NEXT: ret i1 [[RETVAL]] 1024; 1025 %cmp = fcmp one double %a, %b 1026 %cmp1 = fcmp fast oge double %a, %b 1027 %retval = select i1 %cmp, i1 true, i1 %cmp1 1028 ret i1 %retval 1029} 1030 1031define i1 @auto_gen_25(double %a, double %b) { 1032; CHECK-LABEL: @auto_gen_25( 1033; CHECK-NEXT: [[RETVAL:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]] 1034; CHECK-NEXT: ret i1 [[RETVAL]] 1035; 1036 %cmp = fcmp one double %a, %b 1037 %cmp1 = fcmp olt double %a, %b 1038 %retval = or i1 %cmp, %cmp1 1039 ret i1 %retval 1040} 1041 1042define i1 @auto_gen_25_logical(double %a, double %b) { 1043; CHECK-LABEL: @auto_gen_25_logical( 1044; CHECK-NEXT: [[RETVAL:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]] 1045; CHECK-NEXT: ret i1 [[RETVAL]] 1046; 1047 %cmp = fcmp one double %a, %b 1048 %cmp1 = fcmp olt double %a, %b 1049 %retval = select i1 %cmp, i1 true, i1 %cmp1 1050 ret i1 %retval 1051} 1052 1053define i1 @auto_gen_25_logical_fmf(double %a, double %b) { 1054; CHECK-LABEL: @auto_gen_25_logical_fmf( 1055; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast one double [[A:%.*]], [[B:%.*]] 1056; CHECK-NEXT: ret i1 [[RETVAL]] 1057; 1058 %cmp = fcmp fast one double %a, %b 1059 %cmp1 = fcmp fast olt double %a, %b 1060 %retval = select i1 %cmp, i1 true, i1 %cmp1 1061 ret i1 %retval 1062} 1063 1064define i1 @auto_gen_26(double %a, double %b) { 1065; CHECK-LABEL: @auto_gen_26( 1066; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]] 1067; CHECK-NEXT: ret i1 [[RETVAL]] 1068; 1069 %cmp = fcmp one double %a, %b 1070 %cmp1 = fcmp ole double %a, %b 1071 %retval = or i1 %cmp, %cmp1 1072 ret i1 %retval 1073} 1074 1075define i1 @auto_gen_26_logical(double %a, double %b) { 1076; CHECK-LABEL: @auto_gen_26_logical( 1077; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]] 1078; CHECK-NEXT: ret i1 [[RETVAL]] 1079; 1080 %cmp = fcmp one double %a, %b 1081 %cmp1 = fcmp ole double %a, %b 1082 %retval = select i1 %cmp, i1 true, i1 %cmp1 1083 ret i1 %retval 1084} 1085 1086define i1 @auto_gen_26_logical_fmf(double %a, double %b) { 1087; CHECK-LABEL: @auto_gen_26_logical_fmf( 1088; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]] 1089; CHECK-NEXT: ret i1 [[RETVAL]] 1090; 1091 %cmp = fcmp one double %a, %b 1092 %cmp1 = fcmp fast ole double %a, %b 1093 %retval = select i1 %cmp, i1 true, i1 %cmp1 1094 ret i1 %retval 1095} 1096 1097define i1 @auto_gen_27(double %a, double %b) { 1098; CHECK-LABEL: @auto_gen_27( 1099; CHECK-NEXT: [[RETVAL:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]] 1100; CHECK-NEXT: ret i1 [[RETVAL]] 1101; 1102 %cmp = fcmp one double %a, %b 1103 %cmp1 = fcmp one double %a, %b 1104 %retval = or i1 %cmp, %cmp1 1105 ret i1 %retval 1106} 1107 1108define i1 @auto_gen_27_logical(double %a, double %b) { 1109; CHECK-LABEL: @auto_gen_27_logical( 1110; CHECK-NEXT: [[RETVAL:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]] 1111; CHECK-NEXT: ret i1 [[RETVAL]] 1112; 1113 %cmp = fcmp one double %a, %b 1114 %cmp1 = fcmp one double %a, %b 1115 %retval = select i1 %cmp, i1 true, i1 %cmp1 1116 ret i1 %retval 1117} 1118 1119define i1 @auto_gen_27_logical_fmf(double %a, double %b) { 1120; CHECK-LABEL: @auto_gen_27_logical_fmf( 1121; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast one double [[A:%.*]], [[B:%.*]] 1122; CHECK-NEXT: ret i1 [[RETVAL]] 1123; 1124 %cmp = fcmp fast one double %a, %b 1125 %cmp1 = fcmp fast one double %a, %b 1126 %retval = select i1 %cmp, i1 true, i1 %cmp1 1127 ret i1 %retval 1128} 1129 1130define i1 @auto_gen_28(double %a, double %b) { 1131; CHECK-LABEL: @auto_gen_28( 1132; CHECK-NEXT: [[CMP:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]] 1133; CHECK-NEXT: ret i1 [[CMP]] 1134; 1135 %cmp = fcmp ord double %a, %b 1136 %cmp1 = fcmp false double %a, %b 1137 %retval = or i1 %cmp, %cmp1 1138 ret i1 %retval 1139} 1140 1141define i1 @auto_gen_28_logical(double %a, double %b) { 1142; CHECK-LABEL: @auto_gen_28_logical( 1143; CHECK-NEXT: [[CMP:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]] 1144; CHECK-NEXT: ret i1 [[CMP]] 1145; 1146 %cmp = fcmp ord double %a, %b 1147 %cmp1 = fcmp false double %a, %b 1148 %retval = select i1 %cmp, i1 true, i1 %cmp1 1149 ret i1 %retval 1150} 1151 1152define i1 @auto_gen_28_logical_fmf(double %a, double %b) { 1153; CHECK-LABEL: @auto_gen_28_logical_fmf( 1154; CHECK-NEXT: [[CMP:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]] 1155; CHECK-NEXT: ret i1 [[CMP]] 1156; 1157 %cmp = fcmp ord double %a, %b 1158 %cmp1 = fcmp fast false double %a, %b 1159 %retval = select i1 %cmp, i1 true, i1 %cmp1 1160 ret i1 %retval 1161} 1162 1163define i1 @auto_gen_29(double %a, double %b) { 1164; CHECK-LABEL: @auto_gen_29( 1165; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]] 1166; CHECK-NEXT: ret i1 [[RETVAL]] 1167; 1168 %cmp = fcmp ord double %a, %b 1169 %cmp1 = fcmp oeq double %a, %b 1170 %retval = or i1 %cmp, %cmp1 1171 ret i1 %retval 1172} 1173 1174define i1 @auto_gen_29_logical(double %a, double %b) { 1175; CHECK-LABEL: @auto_gen_29_logical( 1176; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]] 1177; CHECK-NEXT: ret i1 [[RETVAL]] 1178; 1179 %cmp = fcmp ord double %a, %b 1180 %cmp1 = fcmp oeq double %a, %b 1181 %retval = select i1 %cmp, i1 true, i1 %cmp1 1182 ret i1 %retval 1183} 1184 1185define i1 @auto_gen_29_logical_fmf(double %a, double %b) { 1186; CHECK-LABEL: @auto_gen_29_logical_fmf( 1187; CHECK-NEXT: ret i1 true 1188; 1189 %cmp = fcmp fast ord double %a, %b 1190 %cmp1 = fcmp fast oeq double %a, %b 1191 %retval = select i1 %cmp, i1 true, i1 %cmp1 1192 ret i1 %retval 1193} 1194 1195define i1 @auto_gen_30(double %a, double %b) { 1196; CHECK-LABEL: @auto_gen_30( 1197; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]] 1198; CHECK-NEXT: ret i1 [[RETVAL]] 1199; 1200 %cmp = fcmp ord double %a, %b 1201 %cmp1 = fcmp ogt double %a, %b 1202 %retval = or i1 %cmp, %cmp1 1203 ret i1 %retval 1204} 1205 1206define i1 @auto_gen_30_logical(double %a, double %b) { 1207; CHECK-LABEL: @auto_gen_30_logical( 1208; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]] 1209; CHECK-NEXT: ret i1 [[RETVAL]] 1210; 1211 %cmp = fcmp ord double %a, %b 1212 %cmp1 = fcmp ogt double %a, %b 1213 %retval = select i1 %cmp, i1 true, i1 %cmp1 1214 ret i1 %retval 1215} 1216 1217define i1 @auto_gen_30_logical_fmf(double %a, double %b) { 1218; CHECK-LABEL: @auto_gen_30_logical_fmf( 1219; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]] 1220; CHECK-NEXT: ret i1 [[RETVAL]] 1221; 1222 %cmp = fcmp ord double %a, %b 1223 %cmp1 = fcmp fast ogt double %a, %b 1224 %retval = select i1 %cmp, i1 true, i1 %cmp1 1225 ret i1 %retval 1226} 1227 1228define i1 @auto_gen_31(double %a, double %b) { 1229; CHECK-LABEL: @auto_gen_31( 1230; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]] 1231; CHECK-NEXT: ret i1 [[RETVAL]] 1232; 1233 %cmp = fcmp ord double %a, %b 1234 %cmp1 = fcmp oge double %a, %b 1235 %retval = or i1 %cmp, %cmp1 1236 ret i1 %retval 1237} 1238 1239define i1 @auto_gen_31_logical(double %a, double %b) { 1240; CHECK-LABEL: @auto_gen_31_logical( 1241; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]] 1242; CHECK-NEXT: ret i1 [[RETVAL]] 1243; 1244 %cmp = fcmp ord double %a, %b 1245 %cmp1 = fcmp oge double %a, %b 1246 %retval = select i1 %cmp, i1 true, i1 %cmp1 1247 ret i1 %retval 1248} 1249 1250define i1 @auto_gen_31_logical_fmf(double %a, double %b) { 1251; CHECK-LABEL: @auto_gen_31_logical_fmf( 1252; CHECK-NEXT: ret i1 true 1253; 1254 %cmp = fcmp fast ord double %a, %b 1255 %cmp1 = fcmp fast oge double %a, %b 1256 %retval = select i1 %cmp, i1 true, i1 %cmp1 1257 ret i1 %retval 1258} 1259 1260define i1 @auto_gen_32(double %a, double %b) { 1261; CHECK-LABEL: @auto_gen_32( 1262; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]] 1263; CHECK-NEXT: ret i1 [[RETVAL]] 1264; 1265 %cmp = fcmp ord double %a, %b 1266 %cmp1 = fcmp olt double %a, %b 1267 %retval = or i1 %cmp, %cmp1 1268 ret i1 %retval 1269} 1270 1271define i1 @auto_gen_32_logical(double %a, double %b) { 1272; CHECK-LABEL: @auto_gen_32_logical( 1273; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]] 1274; CHECK-NEXT: ret i1 [[RETVAL]] 1275; 1276 %cmp = fcmp ord double %a, %b 1277 %cmp1 = fcmp olt double %a, %b 1278 %retval = select i1 %cmp, i1 true, i1 %cmp1 1279 ret i1 %retval 1280} 1281 1282define i1 @auto_gen_32_logical_fmf(double %a, double %b) { 1283; CHECK-LABEL: @auto_gen_32_logical_fmf( 1284; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]] 1285; CHECK-NEXT: ret i1 [[RETVAL]] 1286; 1287 %cmp = fcmp ord double %a, %b 1288 %cmp1 = fcmp fast olt double %a, %b 1289 %retval = select i1 %cmp, i1 true, i1 %cmp1 1290 ret i1 %retval 1291} 1292 1293define i1 @auto_gen_33(double %a, double %b) { 1294; CHECK-LABEL: @auto_gen_33( 1295; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]] 1296; CHECK-NEXT: ret i1 [[RETVAL]] 1297; 1298 %cmp = fcmp ord double %a, %b 1299 %cmp1 = fcmp ole double %a, %b 1300 %retval = or i1 %cmp, %cmp1 1301 ret i1 %retval 1302} 1303 1304define i1 @auto_gen_33_logical(double %a, double %b) { 1305; CHECK-LABEL: @auto_gen_33_logical( 1306; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]] 1307; CHECK-NEXT: ret i1 [[RETVAL]] 1308; 1309 %cmp = fcmp ord double %a, %b 1310 %cmp1 = fcmp ole double %a, %b 1311 %retval = select i1 %cmp, i1 true, i1 %cmp1 1312 ret i1 %retval 1313} 1314 1315define i1 @auto_gen_33_logical_fmf(double %a, double %b) { 1316; CHECK-LABEL: @auto_gen_33_logical_fmf( 1317; CHECK-NEXT: ret i1 true 1318; 1319 %cmp = fcmp fast ord double %a, %b 1320 %cmp1 = fcmp fast ole double %a, %b 1321 %retval = select i1 %cmp, i1 true, i1 %cmp1 1322 ret i1 %retval 1323} 1324 1325define i1 @auto_gen_34(double %a, double %b) { 1326; CHECK-LABEL: @auto_gen_34( 1327; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]] 1328; CHECK-NEXT: ret i1 [[RETVAL]] 1329; 1330 %cmp = fcmp ord double %a, %b 1331 %cmp1 = fcmp one double %a, %b 1332 %retval = or i1 %cmp, %cmp1 1333 ret i1 %retval 1334} 1335 1336define i1 @auto_gen_34_logical(double %a, double %b) { 1337; CHECK-LABEL: @auto_gen_34_logical( 1338; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]] 1339; CHECK-NEXT: ret i1 [[RETVAL]] 1340; 1341 %cmp = fcmp ord double %a, %b 1342 %cmp1 = fcmp one double %a, %b 1343 %retval = select i1 %cmp, i1 true, i1 %cmp1 1344 ret i1 %retval 1345} 1346 1347define i1 @auto_gen_34_logical_fmf(double %a, double %b) { 1348; CHECK-LABEL: @auto_gen_34_logical_fmf( 1349; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]] 1350; CHECK-NEXT: ret i1 [[RETVAL]] 1351; 1352 %cmp = fcmp ord double %a, %b 1353 %cmp1 = fcmp fast one double %a, %b 1354 %retval = select i1 %cmp, i1 true, i1 %cmp1 1355 ret i1 %retval 1356} 1357 1358define i1 @auto_gen_35(double %a, double %b) { 1359; CHECK-LABEL: @auto_gen_35( 1360; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]] 1361; CHECK-NEXT: ret i1 [[RETVAL]] 1362; 1363 %cmp = fcmp ord double %a, %b 1364 %cmp1 = fcmp ord double %a, %b 1365 %retval = or i1 %cmp, %cmp1 1366 ret i1 %retval 1367} 1368 1369define i1 @auto_gen_35_logical(double %a, double %b) { 1370; CHECK-LABEL: @auto_gen_35_logical( 1371; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]] 1372; CHECK-NEXT: ret i1 [[RETVAL]] 1373; 1374 %cmp = fcmp ord double %a, %b 1375 %cmp1 = fcmp ord double %a, %b 1376 %retval = select i1 %cmp, i1 true, i1 %cmp1 1377 ret i1 %retval 1378} 1379 1380define i1 @auto_gen_35_logical_fmf(double %a, double %b) { 1381; CHECK-LABEL: @auto_gen_35_logical_fmf( 1382; CHECK-NEXT: ret i1 true 1383; 1384 %cmp = fcmp fast ord double %a, %b 1385 %cmp1 = fcmp fast ord double %a, %b 1386 %retval = select i1 %cmp, i1 true, i1 %cmp1 1387 ret i1 %retval 1388} 1389 1390define i1 @auto_gen_36(double %a, double %b) { 1391; CHECK-LABEL: @auto_gen_36( 1392; CHECK-NEXT: [[CMP:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]] 1393; CHECK-NEXT: ret i1 [[CMP]] 1394; 1395 %cmp = fcmp ueq double %a, %b 1396 %cmp1 = fcmp false double %a, %b 1397 %retval = or i1 %cmp, %cmp1 1398 ret i1 %retval 1399} 1400 1401define i1 @auto_gen_36_logical(double %a, double %b) { 1402; CHECK-LABEL: @auto_gen_36_logical( 1403; CHECK-NEXT: [[CMP:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]] 1404; CHECK-NEXT: ret i1 [[CMP]] 1405; 1406 %cmp = fcmp ueq double %a, %b 1407 %cmp1 = fcmp false double %a, %b 1408 %retval = select i1 %cmp, i1 true, i1 %cmp1 1409 ret i1 %retval 1410} 1411 1412define i1 @auto_gen_36_logical_fmf(double %a, double %b) { 1413; CHECK-LABEL: @auto_gen_36_logical_fmf( 1414; CHECK-NEXT: [[CMP:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]] 1415; CHECK-NEXT: ret i1 [[CMP]] 1416; 1417 %cmp = fcmp ueq double %a, %b 1418 %cmp1 = fcmp fast false double %a, %b 1419 %retval = select i1 %cmp, i1 true, i1 %cmp1 1420 ret i1 %retval 1421} 1422 1423define i1 @auto_gen_37(double %a, double %b) { 1424; CHECK-LABEL: @auto_gen_37( 1425; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]] 1426; CHECK-NEXT: ret i1 [[RETVAL]] 1427; 1428 %cmp = fcmp ueq double %a, %b 1429 %cmp1 = fcmp oeq double %a, %b 1430 %retval = or i1 %cmp, %cmp1 1431 ret i1 %retval 1432} 1433 1434define i1 @auto_gen_37_logical(double %a, double %b) { 1435; CHECK-LABEL: @auto_gen_37_logical( 1436; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]] 1437; CHECK-NEXT: ret i1 [[RETVAL]] 1438; 1439 %cmp = fcmp ueq double %a, %b 1440 %cmp1 = fcmp oeq double %a, %b 1441 %retval = select i1 %cmp, i1 true, i1 %cmp1 1442 ret i1 %retval 1443} 1444 1445define i1 @auto_gen_37_logical_fmf(double %a, double %b) { 1446; CHECK-LABEL: @auto_gen_37_logical_fmf( 1447; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast ueq double [[A:%.*]], [[B:%.*]] 1448; CHECK-NEXT: ret i1 [[RETVAL]] 1449; 1450 %cmp = fcmp fast ueq double %a, %b 1451 %cmp1 = fcmp fast oeq double %a, %b 1452 %retval = select i1 %cmp, i1 true, i1 %cmp1 1453 ret i1 %retval 1454} 1455 1456define i1 @auto_gen_38(double %a, double %b) { 1457; CHECK-LABEL: @auto_gen_38( 1458; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]] 1459; CHECK-NEXT: ret i1 [[RETVAL]] 1460; 1461 %cmp = fcmp ueq double %a, %b 1462 %cmp1 = fcmp ogt double %a, %b 1463 %retval = or i1 %cmp, %cmp1 1464 ret i1 %retval 1465} 1466 1467define i1 @auto_gen_38_logical(double %a, double %b) { 1468; CHECK-LABEL: @auto_gen_38_logical( 1469; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]] 1470; CHECK-NEXT: ret i1 [[RETVAL]] 1471; 1472 %cmp = fcmp ueq double %a, %b 1473 %cmp1 = fcmp ogt double %a, %b 1474 %retval = select i1 %cmp, i1 true, i1 %cmp1 1475 ret i1 %retval 1476} 1477 1478define i1 @auto_gen_38_logical_fmf(double %a, double %b) { 1479; CHECK-LABEL: @auto_gen_38_logical_fmf( 1480; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]] 1481; CHECK-NEXT: ret i1 [[RETVAL]] 1482; 1483 %cmp = fcmp ueq double %a, %b 1484 %cmp1 = fcmp fast ogt double %a, %b 1485 %retval = select i1 %cmp, i1 true, i1 %cmp1 1486 ret i1 %retval 1487} 1488 1489define i1 @auto_gen_39(double %a, double %b) { 1490; CHECK-LABEL: @auto_gen_39( 1491; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]] 1492; CHECK-NEXT: ret i1 [[RETVAL]] 1493; 1494 %cmp = fcmp ueq double %a, %b 1495 %cmp1 = fcmp oge double %a, %b 1496 %retval = or i1 %cmp, %cmp1 1497 ret i1 %retval 1498} 1499 1500define i1 @auto_gen_39_logical(double %a, double %b) { 1501; CHECK-LABEL: @auto_gen_39_logical( 1502; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]] 1503; CHECK-NEXT: ret i1 [[RETVAL]] 1504; 1505 %cmp = fcmp ueq double %a, %b 1506 %cmp1 = fcmp oge double %a, %b 1507 %retval = select i1 %cmp, i1 true, i1 %cmp1 1508 ret i1 %retval 1509} 1510 1511define i1 @auto_gen_39_logical_fmf(double %a, double %b) { 1512; CHECK-LABEL: @auto_gen_39_logical_fmf( 1513; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast uge double [[A:%.*]], [[B:%.*]] 1514; CHECK-NEXT: ret i1 [[RETVAL]] 1515; 1516 %cmp = fcmp fast ueq double %a, %b 1517 %cmp1 = fcmp fast oge double %a, %b 1518 %retval = select i1 %cmp, i1 true, i1 %cmp1 1519 ret i1 %retval 1520} 1521 1522define i1 @auto_gen_40(double %a, double %b) { 1523; CHECK-LABEL: @auto_gen_40( 1524; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]] 1525; CHECK-NEXT: ret i1 [[RETVAL]] 1526; 1527 %cmp = fcmp ueq double %a, %b 1528 %cmp1 = fcmp olt double %a, %b 1529 %retval = or i1 %cmp, %cmp1 1530 ret i1 %retval 1531} 1532 1533define i1 @auto_gen_40_logical(double %a, double %b) { 1534; CHECK-LABEL: @auto_gen_40_logical( 1535; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]] 1536; CHECK-NEXT: ret i1 [[RETVAL]] 1537; 1538 %cmp = fcmp ueq double %a, %b 1539 %cmp1 = fcmp olt double %a, %b 1540 %retval = select i1 %cmp, i1 true, i1 %cmp1 1541 ret i1 %retval 1542} 1543 1544define i1 @auto_gen_40_logical_fmf(double %a, double %b) { 1545; CHECK-LABEL: @auto_gen_40_logical_fmf( 1546; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]] 1547; CHECK-NEXT: ret i1 [[RETVAL]] 1548; 1549 %cmp = fcmp ueq double %a, %b 1550 %cmp1 = fcmp fast olt double %a, %b 1551 %retval = select i1 %cmp, i1 true, i1 %cmp1 1552 ret i1 %retval 1553} 1554 1555define i1 @auto_gen_41(double %a, double %b) { 1556; CHECK-LABEL: @auto_gen_41( 1557; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]] 1558; CHECK-NEXT: ret i1 [[RETVAL]] 1559; 1560 %cmp = fcmp ueq double %a, %b 1561 %cmp1 = fcmp ole double %a, %b 1562 %retval = or i1 %cmp, %cmp1 1563 ret i1 %retval 1564} 1565 1566define i1 @auto_gen_41_logical(double %a, double %b) { 1567; CHECK-LABEL: @auto_gen_41_logical( 1568; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]] 1569; CHECK-NEXT: ret i1 [[RETVAL]] 1570; 1571 %cmp = fcmp ueq double %a, %b 1572 %cmp1 = fcmp ole double %a, %b 1573 %retval = select i1 %cmp, i1 true, i1 %cmp1 1574 ret i1 %retval 1575} 1576 1577define i1 @auto_gen_41_logical_fmf(double %a, double %b) { 1578; CHECK-LABEL: @auto_gen_41_logical_fmf( 1579; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast ule double [[A:%.*]], [[B:%.*]] 1580; CHECK-NEXT: ret i1 [[RETVAL]] 1581; 1582 %cmp = fcmp fast ueq double %a, %b 1583 %cmp1 = fcmp fast ole double %a, %b 1584 %retval = select i1 %cmp, i1 true, i1 %cmp1 1585 ret i1 %retval 1586} 1587 1588define i1 @auto_gen_42(double %a, double %b) { 1589; CHECK-LABEL: @auto_gen_42( 1590; CHECK-NEXT: ret i1 true 1591; 1592 %cmp = fcmp ueq double %a, %b 1593 %cmp1 = fcmp one double %a, %b 1594 %retval = or i1 %cmp, %cmp1 1595 ret i1 %retval 1596} 1597 1598define i1 @auto_gen_42_logical(double %a, double %b) { 1599; CHECK-LABEL: @auto_gen_42_logical( 1600; CHECK-NEXT: ret i1 true 1601; 1602 %cmp = fcmp ueq double %a, %b 1603 %cmp1 = fcmp one double %a, %b 1604 %retval = select i1 %cmp, i1 true, i1 %cmp1 1605 ret i1 %retval 1606} 1607 1608define i1 @auto_gen_42_logical_fmf(double %a, double %b) { 1609; CHECK-LABEL: @auto_gen_42_logical_fmf( 1610; CHECK-NEXT: ret i1 true 1611; 1612 %cmp = fcmp ueq double %a, %b 1613 %cmp1 = fcmp fast one double %a, %b 1614 %retval = select i1 %cmp, i1 true, i1 %cmp1 1615 ret i1 %retval 1616} 1617 1618define i1 @auto_gen_43(double %a, double %b) { 1619; CHECK-LABEL: @auto_gen_43( 1620; CHECK-NEXT: ret i1 true 1621; 1622 %cmp = fcmp ueq double %a, %b 1623 %cmp1 = fcmp ord double %a, %b 1624 %retval = or i1 %cmp, %cmp1 1625 ret i1 %retval 1626} 1627 1628define i1 @auto_gen_43_logical(double %a, double %b) { 1629; CHECK-LABEL: @auto_gen_43_logical( 1630; CHECK-NEXT: ret i1 true 1631; 1632 %cmp = fcmp ueq double %a, %b 1633 %cmp1 = fcmp ord double %a, %b 1634 %retval = select i1 %cmp, i1 true, i1 %cmp1 1635 ret i1 %retval 1636} 1637 1638define i1 @auto_gen_43_logical_fmf(double %a, double %b) { 1639; CHECK-LABEL: @auto_gen_43_logical_fmf( 1640; CHECK-NEXT: ret i1 true 1641; 1642 %cmp = fcmp fast ueq double %a, %b 1643 %cmp1 = fcmp fast ord double %a, %b 1644 %retval = select i1 %cmp, i1 true, i1 %cmp1 1645 ret i1 %retval 1646} 1647 1648define i1 @auto_gen_44(double %a, double %b) { 1649; CHECK-LABEL: @auto_gen_44( 1650; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]] 1651; CHECK-NEXT: ret i1 [[RETVAL]] 1652; 1653 %cmp = fcmp ueq double %a, %b 1654 %cmp1 = fcmp ueq double %a, %b 1655 %retval = or i1 %cmp, %cmp1 1656 ret i1 %retval 1657} 1658 1659define i1 @auto_gen_44_logical(double %a, double %b) { 1660; CHECK-LABEL: @auto_gen_44_logical( 1661; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]] 1662; CHECK-NEXT: ret i1 [[RETVAL]] 1663; 1664 %cmp = fcmp ueq double %a, %b 1665 %cmp1 = fcmp ueq double %a, %b 1666 %retval = select i1 %cmp, i1 true, i1 %cmp1 1667 ret i1 %retval 1668} 1669 1670define i1 @auto_gen_44_logical_fmf(double %a, double %b) { 1671; CHECK-LABEL: @auto_gen_44_logical_fmf( 1672; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]] 1673; CHECK-NEXT: ret i1 [[RETVAL]] 1674; 1675 %cmp = fcmp ueq double %a, %b 1676 %cmp1 = fcmp fast ueq double %a, %b 1677 %retval = select i1 %cmp, i1 true, i1 %cmp1 1678 ret i1 %retval 1679} 1680 1681define i1 @auto_gen_45(double %a, double %b) { 1682; CHECK-LABEL: @auto_gen_45( 1683; CHECK-NEXT: [[CMP:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]] 1684; CHECK-NEXT: ret i1 [[CMP]] 1685; 1686 %cmp = fcmp ugt double %a, %b 1687 %cmp1 = fcmp false double %a, %b 1688 %retval = or i1 %cmp, %cmp1 1689 ret i1 %retval 1690} 1691 1692define i1 @auto_gen_45_logical(double %a, double %b) { 1693; CHECK-LABEL: @auto_gen_45_logical( 1694; CHECK-NEXT: [[CMP:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]] 1695; CHECK-NEXT: ret i1 [[CMP]] 1696; 1697 %cmp = fcmp ugt double %a, %b 1698 %cmp1 = fcmp false double %a, %b 1699 %retval = select i1 %cmp, i1 true, i1 %cmp1 1700 ret i1 %retval 1701} 1702 1703define i1 @auto_gen_45_logical_fmf(double %a, double %b) { 1704; CHECK-LABEL: @auto_gen_45_logical_fmf( 1705; CHECK-NEXT: [[CMP:%.*]] = fcmp fast ugt double [[A:%.*]], [[B:%.*]] 1706; CHECK-NEXT: ret i1 [[CMP]] 1707; 1708 %cmp = fcmp fast ugt double %a, %b 1709 %cmp1 = fcmp fast false double %a, %b 1710 %retval = select i1 %cmp, i1 true, i1 %cmp1 1711 ret i1 %retval 1712} 1713 1714define i1 @auto_gen_46(double %a, double %b) { 1715; CHECK-LABEL: @auto_gen_46( 1716; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]] 1717; CHECK-NEXT: ret i1 [[RETVAL]] 1718; 1719 %cmp = fcmp ugt double %a, %b 1720 %cmp1 = fcmp oeq double %a, %b 1721 %retval = or i1 %cmp, %cmp1 1722 ret i1 %retval 1723} 1724 1725define i1 @auto_gen_46_logical(double %a, double %b) { 1726; CHECK-LABEL: @auto_gen_46_logical( 1727; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]] 1728; CHECK-NEXT: ret i1 [[RETVAL]] 1729; 1730 %cmp = fcmp ugt double %a, %b 1731 %cmp1 = fcmp oeq double %a, %b 1732 %retval = select i1 %cmp, i1 true, i1 %cmp1 1733 ret i1 %retval 1734} 1735 1736define i1 @auto_gen_46_logical_fmf(double %a, double %b) { 1737; CHECK-LABEL: @auto_gen_46_logical_fmf( 1738; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]] 1739; CHECK-NEXT: ret i1 [[RETVAL]] 1740; 1741 %cmp = fcmp ugt double %a, %b 1742 %cmp1 = fcmp fast oeq double %a, %b 1743 %retval = select i1 %cmp, i1 true, i1 %cmp1 1744 ret i1 %retval 1745} 1746 1747define i1 @auto_gen_47(double %a, double %b) { 1748; CHECK-LABEL: @auto_gen_47( 1749; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]] 1750; CHECK-NEXT: ret i1 [[RETVAL]] 1751; 1752 %cmp = fcmp ugt double %a, %b 1753 %cmp1 = fcmp ogt double %a, %b 1754 %retval = or i1 %cmp, %cmp1 1755 ret i1 %retval 1756} 1757 1758define i1 @auto_gen_47_logical(double %a, double %b) { 1759; CHECK-LABEL: @auto_gen_47_logical( 1760; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]] 1761; CHECK-NEXT: ret i1 [[RETVAL]] 1762; 1763 %cmp = fcmp ugt double %a, %b 1764 %cmp1 = fcmp ogt double %a, %b 1765 %retval = select i1 %cmp, i1 true, i1 %cmp1 1766 ret i1 %retval 1767} 1768 1769define i1 @auto_gen_47_logical_fmf(double %a, double %b) { 1770; CHECK-LABEL: @auto_gen_47_logical_fmf( 1771; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast ugt double [[A:%.*]], [[B:%.*]] 1772; CHECK-NEXT: ret i1 [[RETVAL]] 1773; 1774 %cmp = fcmp fast ugt double %a, %b 1775 %cmp1 = fcmp fast ogt double %a, %b 1776 %retval = select i1 %cmp, i1 true, i1 %cmp1 1777 ret i1 %retval 1778} 1779 1780define i1 @auto_gen_48(double %a, double %b) { 1781; CHECK-LABEL: @auto_gen_48( 1782; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]] 1783; CHECK-NEXT: ret i1 [[RETVAL]] 1784; 1785 %cmp = fcmp ugt double %a, %b 1786 %cmp1 = fcmp oge double %a, %b 1787 %retval = or i1 %cmp, %cmp1 1788 ret i1 %retval 1789} 1790 1791define i1 @auto_gen_48_logical(double %a, double %b) { 1792; CHECK-LABEL: @auto_gen_48_logical( 1793; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]] 1794; CHECK-NEXT: ret i1 [[RETVAL]] 1795; 1796 %cmp = fcmp ugt double %a, %b 1797 %cmp1 = fcmp oge double %a, %b 1798 %retval = select i1 %cmp, i1 true, i1 %cmp1 1799 ret i1 %retval 1800} 1801 1802define i1 @auto_gen_48_logical_fmf(double %a, double %b) { 1803; CHECK-LABEL: @auto_gen_48_logical_fmf( 1804; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]] 1805; CHECK-NEXT: ret i1 [[RETVAL]] 1806; 1807 %cmp = fcmp ugt double %a, %b 1808 %cmp1 = fcmp fast oge double %a, %b 1809 %retval = select i1 %cmp, i1 true, i1 %cmp1 1810 ret i1 %retval 1811} 1812 1813define i1 @auto_gen_49(double %a, double %b) { 1814; CHECK-LABEL: @auto_gen_49( 1815; CHECK-NEXT: [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]] 1816; CHECK-NEXT: ret i1 [[RETVAL]] 1817; 1818 %cmp = fcmp ugt double %a, %b 1819 %cmp1 = fcmp olt double %a, %b 1820 %retval = or i1 %cmp, %cmp1 1821 ret i1 %retval 1822} 1823 1824define i1 @auto_gen_49_logical(double %a, double %b) { 1825; CHECK-LABEL: @auto_gen_49_logical( 1826; CHECK-NEXT: [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]] 1827; CHECK-NEXT: ret i1 [[RETVAL]] 1828; 1829 %cmp = fcmp ugt double %a, %b 1830 %cmp1 = fcmp olt double %a, %b 1831 %retval = select i1 %cmp, i1 true, i1 %cmp1 1832 ret i1 %retval 1833} 1834 1835define i1 @auto_gen_49_logical_fmf(double %a, double %b) { 1836; CHECK-LABEL: @auto_gen_49_logical_fmf( 1837; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast une double [[A:%.*]], [[B:%.*]] 1838; CHECK-NEXT: ret i1 [[RETVAL]] 1839; 1840 %cmp = fcmp fast ugt double %a, %b 1841 %cmp1 = fcmp fast olt double %a, %b 1842 %retval = select i1 %cmp, i1 true, i1 %cmp1 1843 ret i1 %retval 1844} 1845 1846define i1 @auto_gen_50(double %a, double %b) { 1847; CHECK-LABEL: @auto_gen_50( 1848; CHECK-NEXT: ret i1 true 1849; 1850 %cmp = fcmp ugt double %a, %b 1851 %cmp1 = fcmp ole double %a, %b 1852 %retval = or i1 %cmp, %cmp1 1853 ret i1 %retval 1854} 1855 1856define i1 @auto_gen_50_logical(double %a, double %b) { 1857; CHECK-LABEL: @auto_gen_50_logical( 1858; CHECK-NEXT: ret i1 true 1859; 1860 %cmp = fcmp ugt double %a, %b 1861 %cmp1 = fcmp ole double %a, %b 1862 %retval = select i1 %cmp, i1 true, i1 %cmp1 1863 ret i1 %retval 1864} 1865 1866define i1 @auto_gen_50_logical_fmf(double %a, double %b) { 1867; CHECK-LABEL: @auto_gen_50_logical_fmf( 1868; CHECK-NEXT: ret i1 true 1869; 1870 %cmp = fcmp ugt double %a, %b 1871 %cmp1 = fcmp fast ole double %a, %b 1872 %retval = select i1 %cmp, i1 true, i1 %cmp1 1873 ret i1 %retval 1874} 1875 1876define i1 @auto_gen_51(double %a, double %b) { 1877; CHECK-LABEL: @auto_gen_51( 1878; CHECK-NEXT: [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]] 1879; CHECK-NEXT: ret i1 [[RETVAL]] 1880; 1881 %cmp = fcmp ugt double %a, %b 1882 %cmp1 = fcmp one double %a, %b 1883 %retval = or i1 %cmp, %cmp1 1884 ret i1 %retval 1885} 1886 1887define i1 @auto_gen_51_logical(double %a, double %b) { 1888; CHECK-LABEL: @auto_gen_51_logical( 1889; CHECK-NEXT: [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]] 1890; CHECK-NEXT: ret i1 [[RETVAL]] 1891; 1892 %cmp = fcmp ugt double %a, %b 1893 %cmp1 = fcmp one double %a, %b 1894 %retval = select i1 %cmp, i1 true, i1 %cmp1 1895 ret i1 %retval 1896} 1897 1898define i1 @auto_gen_51_logical_fmf(double %a, double %b) { 1899; CHECK-LABEL: @auto_gen_51_logical_fmf( 1900; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast une double [[A:%.*]], [[B:%.*]] 1901; CHECK-NEXT: ret i1 [[RETVAL]] 1902; 1903 %cmp = fcmp fast ugt double %a, %b 1904 %cmp1 = fcmp fast one double %a, %b 1905 %retval = select i1 %cmp, i1 true, i1 %cmp1 1906 ret i1 %retval 1907} 1908 1909define i1 @auto_gen_52(double %a, double %b) { 1910; CHECK-LABEL: @auto_gen_52( 1911; CHECK-NEXT: ret i1 true 1912; 1913 %cmp = fcmp ugt double %a, %b 1914 %cmp1 = fcmp ord double %a, %b 1915 %retval = or i1 %cmp, %cmp1 1916 ret i1 %retval 1917} 1918 1919define i1 @auto_gen_52_logical(double %a, double %b) { 1920; CHECK-LABEL: @auto_gen_52_logical( 1921; CHECK-NEXT: ret i1 true 1922; 1923 %cmp = fcmp ugt double %a, %b 1924 %cmp1 = fcmp ord double %a, %b 1925 %retval = select i1 %cmp, i1 true, i1 %cmp1 1926 ret i1 %retval 1927} 1928 1929define i1 @auto_gen_52_logical_fmf(double %a, double %b) { 1930; CHECK-LABEL: @auto_gen_52_logical_fmf( 1931; CHECK-NEXT: ret i1 true 1932; 1933 %cmp = fcmp ugt double %a, %b 1934 %cmp1 = fcmp fast ord double %a, %b 1935 %retval = select i1 %cmp, i1 true, i1 %cmp1 1936 ret i1 %retval 1937} 1938 1939define i1 @auto_gen_53(double %a, double %b) { 1940; CHECK-LABEL: @auto_gen_53( 1941; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]] 1942; CHECK-NEXT: ret i1 [[RETVAL]] 1943; 1944 %cmp = fcmp ugt double %a, %b 1945 %cmp1 = fcmp ueq double %a, %b 1946 %retval = or i1 %cmp, %cmp1 1947 ret i1 %retval 1948} 1949 1950define i1 @auto_gen_53_logical(double %a, double %b) { 1951; CHECK-LABEL: @auto_gen_53_logical( 1952; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]] 1953; CHECK-NEXT: ret i1 [[RETVAL]] 1954; 1955 %cmp = fcmp ugt double %a, %b 1956 %cmp1 = fcmp ueq double %a, %b 1957 %retval = select i1 %cmp, i1 true, i1 %cmp1 1958 ret i1 %retval 1959} 1960 1961define i1 @auto_gen_53_logical_fmf(double %a, double %b) { 1962; CHECK-LABEL: @auto_gen_53_logical_fmf( 1963; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast uge double [[A:%.*]], [[B:%.*]] 1964; CHECK-NEXT: ret i1 [[RETVAL]] 1965; 1966 %cmp = fcmp fast ugt double %a, %b 1967 %cmp1 = fcmp fast ueq double %a, %b 1968 %retval = select i1 %cmp, i1 true, i1 %cmp1 1969 ret i1 %retval 1970} 1971 1972define i1 @auto_gen_54(double %a, double %b) { 1973; CHECK-LABEL: @auto_gen_54( 1974; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]] 1975; CHECK-NEXT: ret i1 [[RETVAL]] 1976; 1977 %cmp = fcmp ugt double %a, %b 1978 %cmp1 = fcmp ugt double %a, %b 1979 %retval = or i1 %cmp, %cmp1 1980 ret i1 %retval 1981} 1982 1983define i1 @auto_gen_54_logical(double %a, double %b) { 1984; CHECK-LABEL: @auto_gen_54_logical( 1985; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]] 1986; CHECK-NEXT: ret i1 [[RETVAL]] 1987; 1988 %cmp = fcmp ugt double %a, %b 1989 %cmp1 = fcmp ugt double %a, %b 1990 %retval = select i1 %cmp, i1 true, i1 %cmp1 1991 ret i1 %retval 1992} 1993 1994define i1 @auto_gen_54_logical_fmf(double %a, double %b) { 1995; CHECK-LABEL: @auto_gen_54_logical_fmf( 1996; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]] 1997; CHECK-NEXT: ret i1 [[RETVAL]] 1998; 1999 %cmp = fcmp ugt double %a, %b 2000 %cmp1 = fcmp fast ugt double %a, %b 2001 %retval = select i1 %cmp, i1 true, i1 %cmp1 2002 ret i1 %retval 2003} 2004 2005define i1 @auto_gen_55(double %a, double %b) { 2006; CHECK-LABEL: @auto_gen_55( 2007; CHECK-NEXT: [[CMP:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]] 2008; CHECK-NEXT: ret i1 [[CMP]] 2009; 2010 %cmp = fcmp uge double %a, %b 2011 %cmp1 = fcmp false double %a, %b 2012 %retval = or i1 %cmp, %cmp1 2013 ret i1 %retval 2014} 2015 2016define i1 @auto_gen_55_logical(double %a, double %b) { 2017; CHECK-LABEL: @auto_gen_55_logical( 2018; CHECK-NEXT: [[CMP:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]] 2019; CHECK-NEXT: ret i1 [[CMP]] 2020; 2021 %cmp = fcmp uge double %a, %b 2022 %cmp1 = fcmp false double %a, %b 2023 %retval = select i1 %cmp, i1 true, i1 %cmp1 2024 ret i1 %retval 2025} 2026 2027define i1 @auto_gen_55_logical_fmf(double %a, double %b) { 2028; CHECK-LABEL: @auto_gen_55_logical_fmf( 2029; CHECK-NEXT: [[CMP:%.*]] = fcmp fast uge double [[A:%.*]], [[B:%.*]] 2030; CHECK-NEXT: ret i1 [[CMP]] 2031; 2032 %cmp = fcmp fast uge double %a, %b 2033 %cmp1 = fcmp fast false double %a, %b 2034 %retval = select i1 %cmp, i1 true, i1 %cmp1 2035 ret i1 %retval 2036} 2037 2038define i1 @auto_gen_56(double %a, double %b) { 2039; CHECK-LABEL: @auto_gen_56( 2040; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]] 2041; CHECK-NEXT: ret i1 [[RETVAL]] 2042; 2043 %cmp = fcmp uge double %a, %b 2044 %cmp1 = fcmp oeq double %a, %b 2045 %retval = or i1 %cmp, %cmp1 2046 ret i1 %retval 2047} 2048 2049define i1 @auto_gen_56_logical(double %a, double %b) { 2050; CHECK-LABEL: @auto_gen_56_logical( 2051; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]] 2052; CHECK-NEXT: ret i1 [[RETVAL]] 2053; 2054 %cmp = fcmp uge double %a, %b 2055 %cmp1 = fcmp oeq double %a, %b 2056 %retval = select i1 %cmp, i1 true, i1 %cmp1 2057 ret i1 %retval 2058} 2059 2060define i1 @auto_gen_56_logical_fmf(double %a, double %b) { 2061; CHECK-LABEL: @auto_gen_56_logical_fmf( 2062; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]] 2063; CHECK-NEXT: ret i1 [[RETVAL]] 2064; 2065 %cmp = fcmp uge double %a, %b 2066 %cmp1 = fcmp fast oeq double %a, %b 2067 %retval = select i1 %cmp, i1 true, i1 %cmp1 2068 ret i1 %retval 2069} 2070 2071define i1 @auto_gen_57(double %a, double %b) { 2072; CHECK-LABEL: @auto_gen_57( 2073; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]] 2074; CHECK-NEXT: ret i1 [[RETVAL]] 2075; 2076 %cmp = fcmp uge double %a, %b 2077 %cmp1 = fcmp ogt double %a, %b 2078 %retval = or i1 %cmp, %cmp1 2079 ret i1 %retval 2080} 2081 2082define i1 @auto_gen_57_logical(double %a, double %b) { 2083; CHECK-LABEL: @auto_gen_57_logical( 2084; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]] 2085; CHECK-NEXT: ret i1 [[RETVAL]] 2086; 2087 %cmp = fcmp uge double %a, %b 2088 %cmp1 = fcmp ogt double %a, %b 2089 %retval = select i1 %cmp, i1 true, i1 %cmp1 2090 ret i1 %retval 2091} 2092 2093define i1 @auto_gen_57_logical_fmf(double %a, double %b) { 2094; CHECK-LABEL: @auto_gen_57_logical_fmf( 2095; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast uge double [[A:%.*]], [[B:%.*]] 2096; CHECK-NEXT: ret i1 [[RETVAL]] 2097; 2098 %cmp = fcmp fast uge double %a, %b 2099 %cmp1 = fcmp fast ogt double %a, %b 2100 %retval = select i1 %cmp, i1 true, i1 %cmp1 2101 ret i1 %retval 2102} 2103 2104define i1 @auto_gen_58(double %a, double %b) { 2105; CHECK-LABEL: @auto_gen_58( 2106; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]] 2107; CHECK-NEXT: ret i1 [[RETVAL]] 2108; 2109 %cmp = fcmp uge double %a, %b 2110 %cmp1 = fcmp oge double %a, %b 2111 %retval = or i1 %cmp, %cmp1 2112 ret i1 %retval 2113} 2114 2115define i1 @auto_gen_58_logical(double %a, double %b) { 2116; CHECK-LABEL: @auto_gen_58_logical( 2117; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]] 2118; CHECK-NEXT: ret i1 [[RETVAL]] 2119; 2120 %cmp = fcmp uge double %a, %b 2121 %cmp1 = fcmp oge double %a, %b 2122 %retval = select i1 %cmp, i1 true, i1 %cmp1 2123 ret i1 %retval 2124} 2125 2126define i1 @auto_gen_58_logical_fmf(double %a, double %b) { 2127; CHECK-LABEL: @auto_gen_58_logical_fmf( 2128; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]] 2129; CHECK-NEXT: ret i1 [[RETVAL]] 2130; 2131 %cmp = fcmp uge double %a, %b 2132 %cmp1 = fcmp fast oge double %a, %b 2133 %retval = select i1 %cmp, i1 true, i1 %cmp1 2134 ret i1 %retval 2135} 2136 2137define i1 @auto_gen_59(double %a, double %b) { 2138; CHECK-LABEL: @auto_gen_59( 2139; CHECK-NEXT: ret i1 true 2140; 2141 %cmp = fcmp uge double %a, %b 2142 %cmp1 = fcmp olt double %a, %b 2143 %retval = or i1 %cmp, %cmp1 2144 ret i1 %retval 2145} 2146 2147define i1 @auto_gen_59_logical(double %a, double %b) { 2148; CHECK-LABEL: @auto_gen_59_logical( 2149; CHECK-NEXT: ret i1 true 2150; 2151 %cmp = fcmp uge double %a, %b 2152 %cmp1 = fcmp olt double %a, %b 2153 %retval = select i1 %cmp, i1 true, i1 %cmp1 2154 ret i1 %retval 2155} 2156 2157define i1 @auto_gen_59_logical_fmf(double %a, double %b) { 2158; CHECK-LABEL: @auto_gen_59_logical_fmf( 2159; CHECK-NEXT: ret i1 true 2160; 2161 %cmp = fcmp fast uge double %a, %b 2162 %cmp1 = fcmp fast olt double %a, %b 2163 %retval = select i1 %cmp, i1 true, i1 %cmp1 2164 ret i1 %retval 2165} 2166 2167define i1 @auto_gen_60(double %a, double %b) { 2168; CHECK-LABEL: @auto_gen_60( 2169; CHECK-NEXT: ret i1 true 2170; 2171 %cmp = fcmp uge double %a, %b 2172 %cmp1 = fcmp ole double %a, %b 2173 %retval = or i1 %cmp, %cmp1 2174 ret i1 %retval 2175} 2176 2177define i1 @auto_gen_60_logical(double %a, double %b) { 2178; CHECK-LABEL: @auto_gen_60_logical( 2179; CHECK-NEXT: ret i1 true 2180; 2181 %cmp = fcmp uge double %a, %b 2182 %cmp1 = fcmp ole double %a, %b 2183 %retval = select i1 %cmp, i1 true, i1 %cmp1 2184 ret i1 %retval 2185} 2186 2187define i1 @auto_gen_60_logical_fmf(double %a, double %b) { 2188; CHECK-LABEL: @auto_gen_60_logical_fmf( 2189; CHECK-NEXT: ret i1 true 2190; 2191 %cmp = fcmp uge double %a, %b 2192 %cmp1 = fcmp fast ole double %a, %b 2193 %retval = select i1 %cmp, i1 true, i1 %cmp1 2194 ret i1 %retval 2195} 2196 2197define i1 @auto_gen_61(double %a, double %b) { 2198; CHECK-LABEL: @auto_gen_61( 2199; CHECK-NEXT: ret i1 true 2200; 2201 %cmp = fcmp uge double %a, %b 2202 %cmp1 = fcmp one double %a, %b 2203 %retval = or i1 %cmp, %cmp1 2204 ret i1 %retval 2205} 2206 2207define i1 @auto_gen_61_logical(double %a, double %b) { 2208; CHECK-LABEL: @auto_gen_61_logical( 2209; CHECK-NEXT: ret i1 true 2210; 2211 %cmp = fcmp uge double %a, %b 2212 %cmp1 = fcmp one double %a, %b 2213 %retval = select i1 %cmp, i1 true, i1 %cmp1 2214 ret i1 %retval 2215} 2216 2217define i1 @auto_gen_61_logical_fmf(double %a, double %b) { 2218; CHECK-LABEL: @auto_gen_61_logical_fmf( 2219; CHECK-NEXT: ret i1 true 2220; 2221 %cmp = fcmp fast uge double %a, %b 2222 %cmp1 = fcmp fast one double %a, %b 2223 %retval = select i1 %cmp, i1 true, i1 %cmp1 2224 ret i1 %retval 2225} 2226 2227define i1 @auto_gen_62(double %a, double %b) { 2228; CHECK-LABEL: @auto_gen_62( 2229; CHECK-NEXT: ret i1 true 2230; 2231 %cmp = fcmp uge double %a, %b 2232 %cmp1 = fcmp ord double %a, %b 2233 %retval = or i1 %cmp, %cmp1 2234 ret i1 %retval 2235} 2236 2237define i1 @auto_gen_62_logical(double %a, double %b) { 2238; CHECK-LABEL: @auto_gen_62_logical( 2239; CHECK-NEXT: ret i1 true 2240; 2241 %cmp = fcmp uge double %a, %b 2242 %cmp1 = fcmp ord double %a, %b 2243 %retval = select i1 %cmp, i1 true, i1 %cmp1 2244 ret i1 %retval 2245} 2246 2247define i1 @auto_gen_62_logical_fmf(double %a, double %b) { 2248; CHECK-LABEL: @auto_gen_62_logical_fmf( 2249; CHECK-NEXT: ret i1 true 2250; 2251 %cmp = fcmp uge double %a, %b 2252 %cmp1 = fcmp fast ord double %a, %b 2253 %retval = select i1 %cmp, i1 true, i1 %cmp1 2254 ret i1 %retval 2255} 2256 2257define i1 @auto_gen_63(double %a, double %b) { 2258; CHECK-LABEL: @auto_gen_63( 2259; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]] 2260; CHECK-NEXT: ret i1 [[RETVAL]] 2261; 2262 %cmp = fcmp uge double %a, %b 2263 %cmp1 = fcmp ueq double %a, %b 2264 %retval = or i1 %cmp, %cmp1 2265 ret i1 %retval 2266} 2267 2268define i1 @auto_gen_63_logical(double %a, double %b) { 2269; CHECK-LABEL: @auto_gen_63_logical( 2270; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]] 2271; CHECK-NEXT: ret i1 [[RETVAL]] 2272; 2273 %cmp = fcmp uge double %a, %b 2274 %cmp1 = fcmp ueq double %a, %b 2275 %retval = select i1 %cmp, i1 true, i1 %cmp1 2276 ret i1 %retval 2277} 2278 2279define i1 @auto_gen_63_logical_fmf(double %a, double %b) { 2280; CHECK-LABEL: @auto_gen_63_logical_fmf( 2281; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast uge double [[A:%.*]], [[B:%.*]] 2282; CHECK-NEXT: ret i1 [[RETVAL]] 2283; 2284 %cmp = fcmp fast uge double %a, %b 2285 %cmp1 = fcmp fast ueq double %a, %b 2286 %retval = select i1 %cmp, i1 true, i1 %cmp1 2287 ret i1 %retval 2288} 2289 2290define i1 @auto_gen_64(double %a, double %b) { 2291; CHECK-LABEL: @auto_gen_64( 2292; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]] 2293; CHECK-NEXT: ret i1 [[RETVAL]] 2294; 2295 %cmp = fcmp uge double %a, %b 2296 %cmp1 = fcmp ugt double %a, %b 2297 %retval = or i1 %cmp, %cmp1 2298 ret i1 %retval 2299} 2300 2301define i1 @auto_gen_64_logical(double %a, double %b) { 2302; CHECK-LABEL: @auto_gen_64_logical( 2303; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]] 2304; CHECK-NEXT: ret i1 [[RETVAL]] 2305; 2306 %cmp = fcmp uge double %a, %b 2307 %cmp1 = fcmp ugt double %a, %b 2308 %retval = select i1 %cmp, i1 true, i1 %cmp1 2309 ret i1 %retval 2310} 2311 2312define i1 @auto_gen_64_logical_fmf(double %a, double %b) { 2313; CHECK-LABEL: @auto_gen_64_logical_fmf( 2314; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]] 2315; CHECK-NEXT: ret i1 [[RETVAL]] 2316; 2317 %cmp = fcmp uge double %a, %b 2318 %cmp1 = fcmp fast ugt double %a, %b 2319 %retval = select i1 %cmp, i1 true, i1 %cmp1 2320 ret i1 %retval 2321} 2322 2323define i1 @auto_gen_65(double %a, double %b) { 2324; CHECK-LABEL: @auto_gen_65( 2325; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]] 2326; CHECK-NEXT: ret i1 [[RETVAL]] 2327; 2328 %cmp = fcmp uge double %a, %b 2329 %cmp1 = fcmp uge double %a, %b 2330 %retval = or i1 %cmp, %cmp1 2331 ret i1 %retval 2332} 2333 2334define i1 @auto_gen_65_logical(double %a, double %b) { 2335; CHECK-LABEL: @auto_gen_65_logical( 2336; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]] 2337; CHECK-NEXT: ret i1 [[RETVAL]] 2338; 2339 %cmp = fcmp uge double %a, %b 2340 %cmp1 = fcmp uge double %a, %b 2341 %retval = select i1 %cmp, i1 true, i1 %cmp1 2342 ret i1 %retval 2343} 2344 2345define i1 @auto_gen_65_logical_fmf(double %a, double %b) { 2346; CHECK-LABEL: @auto_gen_65_logical_fmf( 2347; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast uge double [[A:%.*]], [[B:%.*]] 2348; CHECK-NEXT: ret i1 [[RETVAL]] 2349; 2350 %cmp = fcmp fast uge double %a, %b 2351 %cmp1 = fcmp fast uge double %a, %b 2352 %retval = select i1 %cmp, i1 true, i1 %cmp1 2353 ret i1 %retval 2354} 2355 2356define i1 @auto_gen_66(double %a, double %b) { 2357; CHECK-LABEL: @auto_gen_66( 2358; CHECK-NEXT: [[CMP:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]] 2359; CHECK-NEXT: ret i1 [[CMP]] 2360; 2361 %cmp = fcmp ult double %a, %b 2362 %cmp1 = fcmp false double %a, %b 2363 %retval = or i1 %cmp, %cmp1 2364 ret i1 %retval 2365} 2366 2367define i1 @auto_gen_66_logical(double %a, double %b) { 2368; CHECK-LABEL: @auto_gen_66_logical( 2369; CHECK-NEXT: [[CMP:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]] 2370; CHECK-NEXT: ret i1 [[CMP]] 2371; 2372 %cmp = fcmp ult double %a, %b 2373 %cmp1 = fcmp false double %a, %b 2374 %retval = select i1 %cmp, i1 true, i1 %cmp1 2375 ret i1 %retval 2376} 2377 2378define i1 @auto_gen_66_logical_fmf(double %a, double %b) { 2379; CHECK-LABEL: @auto_gen_66_logical_fmf( 2380; CHECK-NEXT: [[CMP:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]] 2381; CHECK-NEXT: ret i1 [[CMP]] 2382; 2383 %cmp = fcmp ult double %a, %b 2384 %cmp1 = fcmp fast false double %a, %b 2385 %retval = select i1 %cmp, i1 true, i1 %cmp1 2386 ret i1 %retval 2387} 2388 2389define i1 @auto_gen_67(double %a, double %b) { 2390; CHECK-LABEL: @auto_gen_67( 2391; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]] 2392; CHECK-NEXT: ret i1 [[RETVAL]] 2393; 2394 %cmp = fcmp ult double %a, %b 2395 %cmp1 = fcmp oeq double %a, %b 2396 %retval = or i1 %cmp, %cmp1 2397 ret i1 %retval 2398} 2399 2400define i1 @auto_gen_67_logical(double %a, double %b) { 2401; CHECK-LABEL: @auto_gen_67_logical( 2402; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]] 2403; CHECK-NEXT: ret i1 [[RETVAL]] 2404; 2405 %cmp = fcmp ult double %a, %b 2406 %cmp1 = fcmp oeq double %a, %b 2407 %retval = select i1 %cmp, i1 true, i1 %cmp1 2408 ret i1 %retval 2409} 2410 2411define i1 @auto_gen_67_logical_fmf(double %a, double %b) { 2412; CHECK-LABEL: @auto_gen_67_logical_fmf( 2413; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast ule double [[A:%.*]], [[B:%.*]] 2414; CHECK-NEXT: ret i1 [[RETVAL]] 2415; 2416 %cmp = fcmp fast ult double %a, %b 2417 %cmp1 = fcmp fast oeq double %a, %b 2418 %retval = select i1 %cmp, i1 true, i1 %cmp1 2419 ret i1 %retval 2420} 2421 2422define i1 @auto_gen_68(double %a, double %b) { 2423; CHECK-LABEL: @auto_gen_68( 2424; CHECK-NEXT: [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]] 2425; CHECK-NEXT: ret i1 [[RETVAL]] 2426; 2427 %cmp = fcmp ult double %a, %b 2428 %cmp1 = fcmp ogt double %a, %b 2429 %retval = or i1 %cmp, %cmp1 2430 ret i1 %retval 2431} 2432 2433define i1 @auto_gen_68_logical(double %a, double %b) { 2434; CHECK-LABEL: @auto_gen_68_logical( 2435; CHECK-NEXT: [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]] 2436; CHECK-NEXT: ret i1 [[RETVAL]] 2437; 2438 %cmp = fcmp ult double %a, %b 2439 %cmp1 = fcmp ogt double %a, %b 2440 %retval = select i1 %cmp, i1 true, i1 %cmp1 2441 ret i1 %retval 2442} 2443 2444define i1 @auto_gen_68_logical_fmf(double %a, double %b) { 2445; CHECK-LABEL: @auto_gen_68_logical_fmf( 2446; CHECK-NEXT: [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]] 2447; CHECK-NEXT: ret i1 [[RETVAL]] 2448; 2449 %cmp = fcmp ult double %a, %b 2450 %cmp1 = fcmp fast ogt double %a, %b 2451 %retval = select i1 %cmp, i1 true, i1 %cmp1 2452 ret i1 %retval 2453} 2454 2455define i1 @auto_gen_69(double %a, double %b) { 2456; CHECK-LABEL: @auto_gen_69( 2457; CHECK-NEXT: ret i1 true 2458; 2459 %cmp = fcmp ult double %a, %b 2460 %cmp1 = fcmp oge double %a, %b 2461 %retval = or i1 %cmp, %cmp1 2462 ret i1 %retval 2463} 2464 2465define i1 @auto_gen_69_logical(double %a, double %b) { 2466; CHECK-LABEL: @auto_gen_69_logical( 2467; CHECK-NEXT: ret i1 true 2468; 2469 %cmp = fcmp ult double %a, %b 2470 %cmp1 = fcmp oge double %a, %b 2471 %retval = select i1 %cmp, i1 true, i1 %cmp1 2472 ret i1 %retval 2473} 2474 2475define i1 @auto_gen_69_logical_fmf(double %a, double %b) { 2476; CHECK-LABEL: @auto_gen_69_logical_fmf( 2477; CHECK-NEXT: ret i1 true 2478; 2479 %cmp = fcmp fast ult double %a, %b 2480 %cmp1 = fcmp fast oge double %a, %b 2481 %retval = select i1 %cmp, i1 true, i1 %cmp1 2482 ret i1 %retval 2483} 2484 2485define i1 @auto_gen_70(double %a, double %b) { 2486; CHECK-LABEL: @auto_gen_70( 2487; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]] 2488; CHECK-NEXT: ret i1 [[RETVAL]] 2489; 2490 %cmp = fcmp ult double %a, %b 2491 %cmp1 = fcmp olt double %a, %b 2492 %retval = or i1 %cmp, %cmp1 2493 ret i1 %retval 2494} 2495 2496define i1 @auto_gen_70_logical(double %a, double %b) { 2497; CHECK-LABEL: @auto_gen_70_logical( 2498; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]] 2499; CHECK-NEXT: ret i1 [[RETVAL]] 2500; 2501 %cmp = fcmp ult double %a, %b 2502 %cmp1 = fcmp olt double %a, %b 2503 %retval = select i1 %cmp, i1 true, i1 %cmp1 2504 ret i1 %retval 2505} 2506 2507define i1 @auto_gen_70_logical_fmf(double %a, double %b) { 2508; CHECK-LABEL: @auto_gen_70_logical_fmf( 2509; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]] 2510; CHECK-NEXT: ret i1 [[RETVAL]] 2511; 2512 %cmp = fcmp ult double %a, %b 2513 %cmp1 = fcmp fast olt double %a, %b 2514 %retval = select i1 %cmp, i1 true, i1 %cmp1 2515 ret i1 %retval 2516} 2517 2518define i1 @auto_gen_71(double %a, double %b) { 2519; CHECK-LABEL: @auto_gen_71( 2520; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]] 2521; CHECK-NEXT: ret i1 [[RETVAL]] 2522; 2523 %cmp = fcmp ult double %a, %b 2524 %cmp1 = fcmp ole double %a, %b 2525 %retval = or i1 %cmp, %cmp1 2526 ret i1 %retval 2527} 2528 2529define i1 @auto_gen_71_logical(double %a, double %b) { 2530; CHECK-LABEL: @auto_gen_71_logical( 2531; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]] 2532; CHECK-NEXT: ret i1 [[RETVAL]] 2533; 2534 %cmp = fcmp ult double %a, %b 2535 %cmp1 = fcmp ole double %a, %b 2536 %retval = select i1 %cmp, i1 true, i1 %cmp1 2537 ret i1 %retval 2538} 2539 2540define i1 @auto_gen_71_logical_fmf(double %a, double %b) { 2541; CHECK-LABEL: @auto_gen_71_logical_fmf( 2542; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast ule double [[A:%.*]], [[B:%.*]] 2543; CHECK-NEXT: ret i1 [[RETVAL]] 2544; 2545 %cmp = fcmp fast ult double %a, %b 2546 %cmp1 = fcmp fast ole double %a, %b 2547 %retval = select i1 %cmp, i1 true, i1 %cmp1 2548 ret i1 %retval 2549} 2550 2551define i1 @auto_gen_72(double %a, double %b) { 2552; CHECK-LABEL: @auto_gen_72( 2553; CHECK-NEXT: [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]] 2554; CHECK-NEXT: ret i1 [[RETVAL]] 2555; 2556 %cmp = fcmp ult double %a, %b 2557 %cmp1 = fcmp one double %a, %b 2558 %retval = or i1 %cmp, %cmp1 2559 ret i1 %retval 2560} 2561 2562define i1 @auto_gen_72_logical(double %a, double %b) { 2563; CHECK-LABEL: @auto_gen_72_logical( 2564; CHECK-NEXT: [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]] 2565; CHECK-NEXT: ret i1 [[RETVAL]] 2566; 2567 %cmp = fcmp ult double %a, %b 2568 %cmp1 = fcmp one double %a, %b 2569 %retval = select i1 %cmp, i1 true, i1 %cmp1 2570 ret i1 %retval 2571} 2572 2573define i1 @auto_gen_72_logical_fmf(double %a, double %b) { 2574; CHECK-LABEL: @auto_gen_72_logical_fmf( 2575; CHECK-NEXT: [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]] 2576; CHECK-NEXT: ret i1 [[RETVAL]] 2577; 2578 %cmp = fcmp ult double %a, %b 2579 %cmp1 = fcmp fast one double %a, %b 2580 %retval = select i1 %cmp, i1 true, i1 %cmp1 2581 ret i1 %retval 2582} 2583 2584define i1 @auto_gen_73(double %a, double %b) { 2585; CHECK-LABEL: @auto_gen_73( 2586; CHECK-NEXT: ret i1 true 2587; 2588 %cmp = fcmp ult double %a, %b 2589 %cmp1 = fcmp ord double %a, %b 2590 %retval = or i1 %cmp, %cmp1 2591 ret i1 %retval 2592} 2593 2594define i1 @auto_gen_73_logical(double %a, double %b) { 2595; CHECK-LABEL: @auto_gen_73_logical( 2596; CHECK-NEXT: ret i1 true 2597; 2598 %cmp = fcmp ult double %a, %b 2599 %cmp1 = fcmp ord double %a, %b 2600 %retval = select i1 %cmp, i1 true, i1 %cmp1 2601 ret i1 %retval 2602} 2603 2604define i1 @auto_gen_73_logical_fmf(double %a, double %b) { 2605; CHECK-LABEL: @auto_gen_73_logical_fmf( 2606; CHECK-NEXT: ret i1 true 2607; 2608 %cmp = fcmp fast ult double %a, %b 2609 %cmp1 = fcmp fast ord double %a, %b 2610 %retval = select i1 %cmp, i1 true, i1 %cmp1 2611 ret i1 %retval 2612} 2613 2614define i1 @auto_gen_74(double %a, double %b) { 2615; CHECK-LABEL: @auto_gen_74( 2616; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]] 2617; CHECK-NEXT: ret i1 [[RETVAL]] 2618; 2619 %cmp = fcmp ult double %a, %b 2620 %cmp1 = fcmp ueq double %a, %b 2621 %retval = or i1 %cmp, %cmp1 2622 ret i1 %retval 2623} 2624 2625define i1 @auto_gen_74_logical(double %a, double %b) { 2626; CHECK-LABEL: @auto_gen_74_logical( 2627; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]] 2628; CHECK-NEXT: ret i1 [[RETVAL]] 2629; 2630 %cmp = fcmp ult double %a, %b 2631 %cmp1 = fcmp ueq double %a, %b 2632 %retval = select i1 %cmp, i1 true, i1 %cmp1 2633 ret i1 %retval 2634} 2635 2636define i1 @auto_gen_74_logical_fmf(double %a, double %b) { 2637; CHECK-LABEL: @auto_gen_74_logical_fmf( 2638; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]] 2639; CHECK-NEXT: ret i1 [[RETVAL]] 2640; 2641 %cmp = fcmp ult double %a, %b 2642 %cmp1 = fcmp fast ueq double %a, %b 2643 %retval = select i1 %cmp, i1 true, i1 %cmp1 2644 ret i1 %retval 2645} 2646 2647define i1 @auto_gen_75(double %a, double %b) { 2648; CHECK-LABEL: @auto_gen_75( 2649; CHECK-NEXT: [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]] 2650; CHECK-NEXT: ret i1 [[RETVAL]] 2651; 2652 %cmp = fcmp ult double %a, %b 2653 %cmp1 = fcmp ugt double %a, %b 2654 %retval = or i1 %cmp, %cmp1 2655 ret i1 %retval 2656} 2657 2658define i1 @auto_gen_75_logical(double %a, double %b) { 2659; CHECK-LABEL: @auto_gen_75_logical( 2660; CHECK-NEXT: [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]] 2661; CHECK-NEXT: ret i1 [[RETVAL]] 2662; 2663 %cmp = fcmp ult double %a, %b 2664 %cmp1 = fcmp ugt double %a, %b 2665 %retval = select i1 %cmp, i1 true, i1 %cmp1 2666 ret i1 %retval 2667} 2668 2669define i1 @auto_gen_75_logical_fmf(double %a, double %b) { 2670; CHECK-LABEL: @auto_gen_75_logical_fmf( 2671; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast une double [[A:%.*]], [[B:%.*]] 2672; CHECK-NEXT: ret i1 [[RETVAL]] 2673; 2674 %cmp = fcmp fast ult double %a, %b 2675 %cmp1 = fcmp fast ugt double %a, %b 2676 %retval = select i1 %cmp, i1 true, i1 %cmp1 2677 ret i1 %retval 2678} 2679 2680define i1 @auto_gen_76(double %a, double %b) { 2681; CHECK-LABEL: @auto_gen_76( 2682; CHECK-NEXT: ret i1 true 2683; 2684 %cmp = fcmp ult double %a, %b 2685 %cmp1 = fcmp uge double %a, %b 2686 %retval = or i1 %cmp, %cmp1 2687 ret i1 %retval 2688} 2689 2690define i1 @auto_gen_76_logical(double %a, double %b) { 2691; CHECK-LABEL: @auto_gen_76_logical( 2692; CHECK-NEXT: ret i1 true 2693; 2694 %cmp = fcmp ult double %a, %b 2695 %cmp1 = fcmp uge double %a, %b 2696 %retval = select i1 %cmp, i1 true, i1 %cmp1 2697 ret i1 %retval 2698} 2699 2700define i1 @auto_gen_76_logical_fmf(double %a, double %b) { 2701; CHECK-LABEL: @auto_gen_76_logical_fmf( 2702; CHECK-NEXT: ret i1 true 2703; 2704 %cmp = fcmp ult double %a, %b 2705 %cmp1 = fcmp fast uge double %a, %b 2706 %retval = select i1 %cmp, i1 true, i1 %cmp1 2707 ret i1 %retval 2708} 2709 2710define i1 @auto_gen_77(double %a, double %b) { 2711; CHECK-LABEL: @auto_gen_77( 2712; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]] 2713; CHECK-NEXT: ret i1 [[RETVAL]] 2714; 2715 %cmp = fcmp ult double %a, %b 2716 %cmp1 = fcmp ult double %a, %b 2717 %retval = or i1 %cmp, %cmp1 2718 ret i1 %retval 2719} 2720 2721define i1 @auto_gen_77_logical(double %a, double %b) { 2722; CHECK-LABEL: @auto_gen_77_logical( 2723; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]] 2724; CHECK-NEXT: ret i1 [[RETVAL]] 2725; 2726 %cmp = fcmp ult double %a, %b 2727 %cmp1 = fcmp ult double %a, %b 2728 %retval = select i1 %cmp, i1 true, i1 %cmp1 2729 ret i1 %retval 2730} 2731 2732define i1 @auto_gen_77_logical_fmf(double %a, double %b) { 2733; CHECK-LABEL: @auto_gen_77_logical_fmf( 2734; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast ult double [[A:%.*]], [[B:%.*]] 2735; CHECK-NEXT: ret i1 [[RETVAL]] 2736; 2737 %cmp = fcmp fast ult double %a, %b 2738 %cmp1 = fcmp fast ult double %a, %b 2739 %retval = select i1 %cmp, i1 true, i1 %cmp1 2740 ret i1 %retval 2741} 2742 2743define i1 @auto_gen_78(double %a, double %b) { 2744; CHECK-LABEL: @auto_gen_78( 2745; CHECK-NEXT: [[CMP:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]] 2746; CHECK-NEXT: ret i1 [[CMP]] 2747; 2748 %cmp = fcmp ule double %a, %b 2749 %cmp1 = fcmp false double %a, %b 2750 %retval = or i1 %cmp, %cmp1 2751 ret i1 %retval 2752} 2753 2754define i1 @auto_gen_78_logical(double %a, double %b) { 2755; CHECK-LABEL: @auto_gen_78_logical( 2756; CHECK-NEXT: [[CMP:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]] 2757; CHECK-NEXT: ret i1 [[CMP]] 2758; 2759 %cmp = fcmp ule double %a, %b 2760 %cmp1 = fcmp false double %a, %b 2761 %retval = select i1 %cmp, i1 true, i1 %cmp1 2762 ret i1 %retval 2763} 2764 2765define i1 @auto_gen_78_logical_fmf(double %a, double %b) { 2766; CHECK-LABEL: @auto_gen_78_logical_fmf( 2767; CHECK-NEXT: [[CMP:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]] 2768; CHECK-NEXT: ret i1 [[CMP]] 2769; 2770 %cmp = fcmp ule double %a, %b 2771 %cmp1 = fcmp fast false double %a, %b 2772 %retval = select i1 %cmp, i1 true, i1 %cmp1 2773 ret i1 %retval 2774} 2775 2776define i1 @auto_gen_79(double %a, double %b) { 2777; CHECK-LABEL: @auto_gen_79( 2778; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]] 2779; CHECK-NEXT: ret i1 [[RETVAL]] 2780; 2781 %cmp = fcmp ule double %a, %b 2782 %cmp1 = fcmp oeq double %a, %b 2783 %retval = or i1 %cmp, %cmp1 2784 ret i1 %retval 2785} 2786 2787define i1 @auto_gen_79_logical(double %a, double %b) { 2788; CHECK-LABEL: @auto_gen_79_logical( 2789; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]] 2790; CHECK-NEXT: ret i1 [[RETVAL]] 2791; 2792 %cmp = fcmp ule double %a, %b 2793 %cmp1 = fcmp oeq double %a, %b 2794 %retval = select i1 %cmp, i1 true, i1 %cmp1 2795 ret i1 %retval 2796} 2797 2798define i1 @auto_gen_79_logical_fmf(double %a, double %b) { 2799; CHECK-LABEL: @auto_gen_79_logical_fmf( 2800; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast ule double [[A:%.*]], [[B:%.*]] 2801; CHECK-NEXT: ret i1 [[RETVAL]] 2802; 2803 %cmp = fcmp fast ule double %a, %b 2804 %cmp1 = fcmp fast oeq double %a, %b 2805 %retval = select i1 %cmp, i1 true, i1 %cmp1 2806 ret i1 %retval 2807} 2808 2809define i1 @auto_gen_80(double %a, double %b) { 2810; CHECK-LABEL: @auto_gen_80( 2811; CHECK-NEXT: ret i1 true 2812; 2813 %cmp = fcmp ule double %a, %b 2814 %cmp1 = fcmp ogt double %a, %b 2815 %retval = or i1 %cmp, %cmp1 2816 ret i1 %retval 2817} 2818 2819define i1 @auto_gen_80_logical(double %a, double %b) { 2820; CHECK-LABEL: @auto_gen_80_logical( 2821; CHECK-NEXT: ret i1 true 2822; 2823 %cmp = fcmp ule double %a, %b 2824 %cmp1 = fcmp ogt double %a, %b 2825 %retval = select i1 %cmp, i1 true, i1 %cmp1 2826 ret i1 %retval 2827} 2828 2829define i1 @auto_gen_80_logical_fmf(double %a, double %b) { 2830; CHECK-LABEL: @auto_gen_80_logical_fmf( 2831; CHECK-NEXT: ret i1 true 2832; 2833 %cmp = fcmp ule double %a, %b 2834 %cmp1 = fcmp fast ogt double %a, %b 2835 %retval = select i1 %cmp, i1 true, i1 %cmp1 2836 ret i1 %retval 2837} 2838 2839define i1 @auto_gen_81(double %a, double %b) { 2840; CHECK-LABEL: @auto_gen_81( 2841; CHECK-NEXT: ret i1 true 2842; 2843 %cmp = fcmp ule double %a, %b 2844 %cmp1 = fcmp oge double %a, %b 2845 %retval = or i1 %cmp, %cmp1 2846 ret i1 %retval 2847} 2848 2849define i1 @auto_gen_81_logical(double %a, double %b) { 2850; CHECK-LABEL: @auto_gen_81_logical( 2851; CHECK-NEXT: ret i1 true 2852; 2853 %cmp = fcmp ule double %a, %b 2854 %cmp1 = fcmp oge double %a, %b 2855 %retval = select i1 %cmp, i1 true, i1 %cmp1 2856 ret i1 %retval 2857} 2858 2859define i1 @auto_gen_81_logical_fmf(double %a, double %b) { 2860; CHECK-LABEL: @auto_gen_81_logical_fmf( 2861; CHECK-NEXT: ret i1 true 2862; 2863 %cmp = fcmp fast ule double %a, %b 2864 %cmp1 = fcmp fast oge double %a, %b 2865 %retval = select i1 %cmp, i1 true, i1 %cmp1 2866 ret i1 %retval 2867} 2868 2869define i1 @auto_gen_82(double %a, double %b) { 2870; CHECK-LABEL: @auto_gen_82( 2871; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]] 2872; CHECK-NEXT: ret i1 [[RETVAL]] 2873; 2874 %cmp = fcmp ule double %a, %b 2875 %cmp1 = fcmp olt double %a, %b 2876 %retval = or i1 %cmp, %cmp1 2877 ret i1 %retval 2878} 2879 2880define i1 @auto_gen_82_logical(double %a, double %b) { 2881; CHECK-LABEL: @auto_gen_82_logical( 2882; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]] 2883; CHECK-NEXT: ret i1 [[RETVAL]] 2884; 2885 %cmp = fcmp ule double %a, %b 2886 %cmp1 = fcmp olt double %a, %b 2887 %retval = select i1 %cmp, i1 true, i1 %cmp1 2888 ret i1 %retval 2889} 2890 2891define i1 @auto_gen_82_logical_fmf(double %a, double %b) { 2892; CHECK-LABEL: @auto_gen_82_logical_fmf( 2893; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]] 2894; CHECK-NEXT: ret i1 [[RETVAL]] 2895; 2896 %cmp = fcmp ule double %a, %b 2897 %cmp1 = fcmp fast olt double %a, %b 2898 %retval = select i1 %cmp, i1 true, i1 %cmp1 2899 ret i1 %retval 2900} 2901 2902define i1 @auto_gen_83(double %a, double %b) { 2903; CHECK-LABEL: @auto_gen_83( 2904; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]] 2905; CHECK-NEXT: ret i1 [[RETVAL]] 2906; 2907 %cmp = fcmp ule double %a, %b 2908 %cmp1 = fcmp ole double %a, %b 2909 %retval = or i1 %cmp, %cmp1 2910 ret i1 %retval 2911} 2912 2913define i1 @auto_gen_83_logical(double %a, double %b) { 2914; CHECK-LABEL: @auto_gen_83_logical( 2915; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]] 2916; CHECK-NEXT: ret i1 [[RETVAL]] 2917; 2918 %cmp = fcmp ule double %a, %b 2919 %cmp1 = fcmp ole double %a, %b 2920 %retval = select i1 %cmp, i1 true, i1 %cmp1 2921 ret i1 %retval 2922} 2923 2924define i1 @auto_gen_83_logical_fmf(double %a, double %b) { 2925; CHECK-LABEL: @auto_gen_83_logical_fmf( 2926; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast ule double [[A:%.*]], [[B:%.*]] 2927; CHECK-NEXT: ret i1 [[RETVAL]] 2928; 2929 %cmp = fcmp fast ule double %a, %b 2930 %cmp1 = fcmp fast ole double %a, %b 2931 %retval = select i1 %cmp, i1 true, i1 %cmp1 2932 ret i1 %retval 2933} 2934 2935define i1 @auto_gen_84(double %a, double %b) { 2936; CHECK-LABEL: @auto_gen_84( 2937; CHECK-NEXT: ret i1 true 2938; 2939 %cmp = fcmp ule double %a, %b 2940 %cmp1 = fcmp one double %a, %b 2941 %retval = or i1 %cmp, %cmp1 2942 ret i1 %retval 2943} 2944 2945define i1 @auto_gen_84_logical(double %a, double %b) { 2946; CHECK-LABEL: @auto_gen_84_logical( 2947; CHECK-NEXT: ret i1 true 2948; 2949 %cmp = fcmp ule double %a, %b 2950 %cmp1 = fcmp one double %a, %b 2951 %retval = select i1 %cmp, i1 true, i1 %cmp1 2952 ret i1 %retval 2953} 2954 2955define i1 @auto_gen_84_logical_fmf(double %a, double %b) { 2956; CHECK-LABEL: @auto_gen_84_logical_fmf( 2957; CHECK-NEXT: ret i1 true 2958; 2959 %cmp = fcmp ule double %a, %b 2960 %cmp1 = fcmp fast one double %a, %b 2961 %retval = select i1 %cmp, i1 true, i1 %cmp1 2962 ret i1 %retval 2963} 2964 2965define i1 @auto_gen_85(double %a, double %b) { 2966; CHECK-LABEL: @auto_gen_85( 2967; CHECK-NEXT: ret i1 true 2968; 2969 %cmp = fcmp ule double %a, %b 2970 %cmp1 = fcmp ord double %a, %b 2971 %retval = or i1 %cmp, %cmp1 2972 ret i1 %retval 2973} 2974 2975define i1 @auto_gen_85_logical(double %a, double %b) { 2976; CHECK-LABEL: @auto_gen_85_logical( 2977; CHECK-NEXT: ret i1 true 2978; 2979 %cmp = fcmp ule double %a, %b 2980 %cmp1 = fcmp ord double %a, %b 2981 %retval = select i1 %cmp, i1 true, i1 %cmp1 2982 ret i1 %retval 2983} 2984 2985define i1 @auto_gen_85_logical_fmf(double %a, double %b) { 2986; CHECK-LABEL: @auto_gen_85_logical_fmf( 2987; CHECK-NEXT: ret i1 true 2988; 2989 %cmp = fcmp fast ule double %a, %b 2990 %cmp1 = fcmp fast ord double %a, %b 2991 %retval = select i1 %cmp, i1 true, i1 %cmp1 2992 ret i1 %retval 2993} 2994 2995define i1 @auto_gen_86(double %a, double %b) { 2996; CHECK-LABEL: @auto_gen_86( 2997; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]] 2998; CHECK-NEXT: ret i1 [[RETVAL]] 2999; 3000 %cmp = fcmp ule double %a, %b 3001 %cmp1 = fcmp ueq double %a, %b 3002 %retval = or i1 %cmp, %cmp1 3003 ret i1 %retval 3004} 3005 3006define i1 @auto_gen_86_logical(double %a, double %b) { 3007; CHECK-LABEL: @auto_gen_86_logical( 3008; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]] 3009; CHECK-NEXT: ret i1 [[RETVAL]] 3010; 3011 %cmp = fcmp ule double %a, %b 3012 %cmp1 = fcmp ueq double %a, %b 3013 %retval = select i1 %cmp, i1 true, i1 %cmp1 3014 ret i1 %retval 3015} 3016 3017define i1 @auto_gen_86_logical_fmf(double %a, double %b) { 3018; CHECK-LABEL: @auto_gen_86_logical_fmf( 3019; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]] 3020; CHECK-NEXT: ret i1 [[RETVAL]] 3021; 3022 %cmp = fcmp ule double %a, %b 3023 %cmp1 = fcmp fast ueq double %a, %b 3024 %retval = select i1 %cmp, i1 true, i1 %cmp1 3025 ret i1 %retval 3026} 3027 3028define i1 @auto_gen_87(double %a, double %b) { 3029; CHECK-LABEL: @auto_gen_87( 3030; CHECK-NEXT: ret i1 true 3031; 3032 %cmp = fcmp ule double %a, %b 3033 %cmp1 = fcmp ugt double %a, %b 3034 %retval = or i1 %cmp, %cmp1 3035 ret i1 %retval 3036} 3037 3038define i1 @auto_gen_87_logical(double %a, double %b) { 3039; CHECK-LABEL: @auto_gen_87_logical( 3040; CHECK-NEXT: ret i1 true 3041; 3042 %cmp = fcmp ule double %a, %b 3043 %cmp1 = fcmp ugt double %a, %b 3044 %retval = select i1 %cmp, i1 true, i1 %cmp1 3045 ret i1 %retval 3046} 3047 3048define i1 @auto_gen_87_logical_fmf(double %a, double %b) { 3049; CHECK-LABEL: @auto_gen_87_logical_fmf( 3050; CHECK-NEXT: ret i1 true 3051; 3052 %cmp = fcmp fast ule double %a, %b 3053 %cmp1 = fcmp fast ugt double %a, %b 3054 %retval = select i1 %cmp, i1 true, i1 %cmp1 3055 ret i1 %retval 3056} 3057 3058define i1 @auto_gen_88(double %a, double %b) { 3059; CHECK-LABEL: @auto_gen_88( 3060; CHECK-NEXT: ret i1 true 3061; 3062 %cmp = fcmp ule double %a, %b 3063 %cmp1 = fcmp uge double %a, %b 3064 %retval = or i1 %cmp, %cmp1 3065 ret i1 %retval 3066} 3067 3068define i1 @auto_gen_88_logical(double %a, double %b) { 3069; CHECK-LABEL: @auto_gen_88_logical( 3070; CHECK-NEXT: ret i1 true 3071; 3072 %cmp = fcmp ule double %a, %b 3073 %cmp1 = fcmp uge double %a, %b 3074 %retval = select i1 %cmp, i1 true, i1 %cmp1 3075 ret i1 %retval 3076} 3077 3078define i1 @auto_gen_88_logical_fmf(double %a, double %b) { 3079; CHECK-LABEL: @auto_gen_88_logical_fmf( 3080; CHECK-NEXT: ret i1 true 3081; 3082 %cmp = fcmp ule double %a, %b 3083 %cmp1 = fcmp fast uge double %a, %b 3084 %retval = select i1 %cmp, i1 true, i1 %cmp1 3085 ret i1 %retval 3086} 3087 3088define i1 @auto_gen_89(double %a, double %b) { 3089; CHECK-LABEL: @auto_gen_89( 3090; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]] 3091; CHECK-NEXT: ret i1 [[RETVAL]] 3092; 3093 %cmp = fcmp ule double %a, %b 3094 %cmp1 = fcmp ult double %a, %b 3095 %retval = or i1 %cmp, %cmp1 3096 ret i1 %retval 3097} 3098 3099define i1 @auto_gen_89_logical(double %a, double %b) { 3100; CHECK-LABEL: @auto_gen_89_logical( 3101; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]] 3102; CHECK-NEXT: ret i1 [[RETVAL]] 3103; 3104 %cmp = fcmp ule double %a, %b 3105 %cmp1 = fcmp ult double %a, %b 3106 %retval = select i1 %cmp, i1 true, i1 %cmp1 3107 ret i1 %retval 3108} 3109 3110define i1 @auto_gen_89_logical_fmf(double %a, double %b) { 3111; CHECK-LABEL: @auto_gen_89_logical_fmf( 3112; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast ule double [[A:%.*]], [[B:%.*]] 3113; CHECK-NEXT: ret i1 [[RETVAL]] 3114; 3115 %cmp = fcmp fast ule double %a, %b 3116 %cmp1 = fcmp fast ult double %a, %b 3117 %retval = select i1 %cmp, i1 true, i1 %cmp1 3118 ret i1 %retval 3119} 3120 3121define i1 @auto_gen_90(double %a, double %b) { 3122; CHECK-LABEL: @auto_gen_90( 3123; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]] 3124; CHECK-NEXT: ret i1 [[RETVAL]] 3125; 3126 %cmp = fcmp ule double %a, %b 3127 %cmp1 = fcmp ule double %a, %b 3128 %retval = or i1 %cmp, %cmp1 3129 ret i1 %retval 3130} 3131 3132define i1 @auto_gen_90_logical(double %a, double %b) { 3133; CHECK-LABEL: @auto_gen_90_logical( 3134; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]] 3135; CHECK-NEXT: ret i1 [[RETVAL]] 3136; 3137 %cmp = fcmp ule double %a, %b 3138 %cmp1 = fcmp ule double %a, %b 3139 %retval = select i1 %cmp, i1 true, i1 %cmp1 3140 ret i1 %retval 3141} 3142 3143define i1 @auto_gen_90_logical_fmf(double %a, double %b) { 3144; CHECK-LABEL: @auto_gen_90_logical_fmf( 3145; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]] 3146; CHECK-NEXT: ret i1 [[RETVAL]] 3147; 3148 %cmp = fcmp ule double %a, %b 3149 %cmp1 = fcmp fast ule double %a, %b 3150 %retval = select i1 %cmp, i1 true, i1 %cmp1 3151 ret i1 %retval 3152} 3153 3154define i1 @auto_gen_91(double %a, double %b) { 3155; CHECK-LABEL: @auto_gen_91( 3156; CHECK-NEXT: [[CMP:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]] 3157; CHECK-NEXT: ret i1 [[CMP]] 3158; 3159 %cmp = fcmp une double %a, %b 3160 %cmp1 = fcmp false double %a, %b 3161 %retval = or i1 %cmp, %cmp1 3162 ret i1 %retval 3163} 3164 3165define i1 @auto_gen_91_logical(double %a, double %b) { 3166; CHECK-LABEL: @auto_gen_91_logical( 3167; CHECK-NEXT: [[CMP:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]] 3168; CHECK-NEXT: ret i1 [[CMP]] 3169; 3170 %cmp = fcmp une double %a, %b 3171 %cmp1 = fcmp false double %a, %b 3172 %retval = select i1 %cmp, i1 true, i1 %cmp1 3173 ret i1 %retval 3174} 3175 3176define i1 @auto_gen_91_logical_fmf(double %a, double %b) { 3177; CHECK-LABEL: @auto_gen_91_logical_fmf( 3178; CHECK-NEXT: [[CMP:%.*]] = fcmp fast une double [[A:%.*]], [[B:%.*]] 3179; CHECK-NEXT: ret i1 [[CMP]] 3180; 3181 %cmp = fcmp fast une double %a, %b 3182 %cmp1 = fcmp fast false double %a, %b 3183 %retval = select i1 %cmp, i1 true, i1 %cmp1 3184 ret i1 %retval 3185} 3186 3187define i1 @auto_gen_92(double %a, double %b) { 3188; CHECK-LABEL: @auto_gen_92( 3189; CHECK-NEXT: ret i1 true 3190; 3191 %cmp = fcmp une double %a, %b 3192 %cmp1 = fcmp oeq double %a, %b 3193 %retval = or i1 %cmp, %cmp1 3194 ret i1 %retval 3195} 3196 3197define i1 @auto_gen_92_logical(double %a, double %b) { 3198; CHECK-LABEL: @auto_gen_92_logical( 3199; CHECK-NEXT: ret i1 true 3200; 3201 %cmp = fcmp une double %a, %b 3202 %cmp1 = fcmp oeq double %a, %b 3203 %retval = select i1 %cmp, i1 true, i1 %cmp1 3204 ret i1 %retval 3205} 3206 3207define i1 @auto_gen_92_logical_fmf(double %a, double %b) { 3208; CHECK-LABEL: @auto_gen_92_logical_fmf( 3209; CHECK-NEXT: ret i1 true 3210; 3211 %cmp = fcmp une double %a, %b 3212 %cmp1 = fcmp fast oeq double %a, %b 3213 %retval = select i1 %cmp, i1 true, i1 %cmp1 3214 ret i1 %retval 3215} 3216 3217define i1 @auto_gen_93(double %a, double %b) { 3218; CHECK-LABEL: @auto_gen_93( 3219; CHECK-NEXT: [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]] 3220; CHECK-NEXT: ret i1 [[RETVAL]] 3221; 3222 %cmp = fcmp une double %a, %b 3223 %cmp1 = fcmp ogt double %a, %b 3224 %retval = or i1 %cmp, %cmp1 3225 ret i1 %retval 3226} 3227 3228define i1 @auto_gen_93_logical(double %a, double %b) { 3229; CHECK-LABEL: @auto_gen_93_logical( 3230; CHECK-NEXT: [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]] 3231; CHECK-NEXT: ret i1 [[RETVAL]] 3232; 3233 %cmp = fcmp une double %a, %b 3234 %cmp1 = fcmp ogt double %a, %b 3235 %retval = select i1 %cmp, i1 true, i1 %cmp1 3236 ret i1 %retval 3237} 3238 3239define i1 @auto_gen_93_logical_fmf(double %a, double %b) { 3240; CHECK-LABEL: @auto_gen_93_logical_fmf( 3241; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast une double [[A:%.*]], [[B:%.*]] 3242; CHECK-NEXT: ret i1 [[RETVAL]] 3243; 3244 %cmp = fcmp fast une double %a, %b 3245 %cmp1 = fcmp fast ogt double %a, %b 3246 %retval = select i1 %cmp, i1 true, i1 %cmp1 3247 ret i1 %retval 3248} 3249 3250define i1 @auto_gen_94(double %a, double %b) { 3251; CHECK-LABEL: @auto_gen_94( 3252; CHECK-NEXT: ret i1 true 3253; 3254 %cmp = fcmp une double %a, %b 3255 %cmp1 = fcmp oge double %a, %b 3256 %retval = or i1 %cmp, %cmp1 3257 ret i1 %retval 3258} 3259 3260define i1 @auto_gen_94_logical(double %a, double %b) { 3261; CHECK-LABEL: @auto_gen_94_logical( 3262; CHECK-NEXT: ret i1 true 3263; 3264 %cmp = fcmp une double %a, %b 3265 %cmp1 = fcmp oge double %a, %b 3266 %retval = select i1 %cmp, i1 true, i1 %cmp1 3267 ret i1 %retval 3268} 3269 3270define i1 @auto_gen_94_logical_fmf(double %a, double %b) { 3271; CHECK-LABEL: @auto_gen_94_logical_fmf( 3272; CHECK-NEXT: ret i1 true 3273; 3274 %cmp = fcmp une double %a, %b 3275 %cmp1 = fcmp fast oge double %a, %b 3276 %retval = select i1 %cmp, i1 true, i1 %cmp1 3277 ret i1 %retval 3278} 3279 3280define i1 @auto_gen_95(double %a, double %b) { 3281; CHECK-LABEL: @auto_gen_95( 3282; CHECK-NEXT: [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]] 3283; CHECK-NEXT: ret i1 [[RETVAL]] 3284; 3285 %cmp = fcmp une double %a, %b 3286 %cmp1 = fcmp olt double %a, %b 3287 %retval = or i1 %cmp, %cmp1 3288 ret i1 %retval 3289} 3290 3291define i1 @auto_gen_95_logical(double %a, double %b) { 3292; CHECK-LABEL: @auto_gen_95_logical( 3293; CHECK-NEXT: [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]] 3294; CHECK-NEXT: ret i1 [[RETVAL]] 3295; 3296 %cmp = fcmp une double %a, %b 3297 %cmp1 = fcmp olt double %a, %b 3298 %retval = select i1 %cmp, i1 true, i1 %cmp1 3299 ret i1 %retval 3300} 3301 3302define i1 @auto_gen_95_logical_fmf(double %a, double %b) { 3303; CHECK-LABEL: @auto_gen_95_logical_fmf( 3304; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast une double [[A:%.*]], [[B:%.*]] 3305; CHECK-NEXT: ret i1 [[RETVAL]] 3306; 3307 %cmp = fcmp fast une double %a, %b 3308 %cmp1 = fcmp fast olt double %a, %b 3309 %retval = select i1 %cmp, i1 true, i1 %cmp1 3310 ret i1 %retval 3311} 3312 3313define i1 @auto_gen_96(double %a, double %b) { 3314; CHECK-LABEL: @auto_gen_96( 3315; CHECK-NEXT: ret i1 true 3316; 3317 %cmp = fcmp une double %a, %b 3318 %cmp1 = fcmp ole double %a, %b 3319 %retval = or i1 %cmp, %cmp1 3320 ret i1 %retval 3321} 3322 3323define i1 @auto_gen_96_logical(double %a, double %b) { 3324; CHECK-LABEL: @auto_gen_96_logical( 3325; CHECK-NEXT: ret i1 true 3326; 3327 %cmp = fcmp une double %a, %b 3328 %cmp1 = fcmp ole double %a, %b 3329 %retval = select i1 %cmp, i1 true, i1 %cmp1 3330 ret i1 %retval 3331} 3332 3333define i1 @auto_gen_96_logical_fmf(double %a, double %b) { 3334; CHECK-LABEL: @auto_gen_96_logical_fmf( 3335; CHECK-NEXT: ret i1 true 3336; 3337 %cmp = fcmp une double %a, %b 3338 %cmp1 = fcmp fast ole double %a, %b 3339 %retval = select i1 %cmp, i1 true, i1 %cmp1 3340 ret i1 %retval 3341} 3342 3343define i1 @auto_gen_97(double %a, double %b) { 3344; CHECK-LABEL: @auto_gen_97( 3345; CHECK-NEXT: [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]] 3346; CHECK-NEXT: ret i1 [[RETVAL]] 3347; 3348 %cmp = fcmp une double %a, %b 3349 %cmp1 = fcmp one double %a, %b 3350 %retval = or i1 %cmp, %cmp1 3351 ret i1 %retval 3352} 3353 3354define i1 @auto_gen_97_logical(double %a, double %b) { 3355; CHECK-LABEL: @auto_gen_97_logical( 3356; CHECK-NEXT: [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]] 3357; CHECK-NEXT: ret i1 [[RETVAL]] 3358; 3359 %cmp = fcmp une double %a, %b 3360 %cmp1 = fcmp one double %a, %b 3361 %retval = select i1 %cmp, i1 true, i1 %cmp1 3362 ret i1 %retval 3363} 3364 3365define i1 @auto_gen_97_logical_fmf(double %a, double %b) { 3366; CHECK-LABEL: @auto_gen_97_logical_fmf( 3367; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast une double [[A:%.*]], [[B:%.*]] 3368; CHECK-NEXT: ret i1 [[RETVAL]] 3369; 3370 %cmp = fcmp fast une double %a, %b 3371 %cmp1 = fcmp fast one double %a, %b 3372 %retval = select i1 %cmp, i1 true, i1 %cmp1 3373 ret i1 %retval 3374} 3375 3376define i1 @auto_gen_98(double %a, double %b) { 3377; CHECK-LABEL: @auto_gen_98( 3378; CHECK-NEXT: ret i1 true 3379; 3380 %cmp = fcmp une double %a, %b 3381 %cmp1 = fcmp ord double %a, %b 3382 %retval = or i1 %cmp, %cmp1 3383 ret i1 %retval 3384} 3385 3386define i1 @auto_gen_98_logical(double %a, double %b) { 3387; CHECK-LABEL: @auto_gen_98_logical( 3388; CHECK-NEXT: ret i1 true 3389; 3390 %cmp = fcmp une double %a, %b 3391 %cmp1 = fcmp ord double %a, %b 3392 %retval = select i1 %cmp, i1 true, i1 %cmp1 3393 ret i1 %retval 3394} 3395 3396define i1 @auto_gen_98_logical_fmf(double %a, double %b) { 3397; CHECK-LABEL: @auto_gen_98_logical_fmf( 3398; CHECK-NEXT: ret i1 true 3399; 3400 %cmp = fcmp une double %a, %b 3401 %cmp1 = fcmp fast ord double %a, %b 3402 %retval = select i1 %cmp, i1 true, i1 %cmp1 3403 ret i1 %retval 3404} 3405 3406define i1 @auto_gen_99(double %a, double %b) { 3407; CHECK-LABEL: @auto_gen_99( 3408; CHECK-NEXT: ret i1 true 3409; 3410 %cmp = fcmp une double %a, %b 3411 %cmp1 = fcmp ueq double %a, %b 3412 %retval = or i1 %cmp, %cmp1 3413 ret i1 %retval 3414} 3415 3416define i1 @auto_gen_99_logical(double %a, double %b) { 3417; CHECK-LABEL: @auto_gen_99_logical( 3418; CHECK-NEXT: ret i1 true 3419; 3420 %cmp = fcmp une double %a, %b 3421 %cmp1 = fcmp ueq double %a, %b 3422 %retval = select i1 %cmp, i1 true, i1 %cmp1 3423 ret i1 %retval 3424} 3425 3426define i1 @auto_gen_99_logical_fmf(double %a, double %b) { 3427; CHECK-LABEL: @auto_gen_99_logical_fmf( 3428; CHECK-NEXT: ret i1 true 3429; 3430 %cmp = fcmp fast une double %a, %b 3431 %cmp1 = fcmp fast ueq double %a, %b 3432 %retval = select i1 %cmp, i1 true, i1 %cmp1 3433 ret i1 %retval 3434} 3435 3436define i1 @auto_gen_100(double %a, double %b) { 3437; CHECK-LABEL: @auto_gen_100( 3438; CHECK-NEXT: [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]] 3439; CHECK-NEXT: ret i1 [[RETVAL]] 3440; 3441 %cmp = fcmp une double %a, %b 3442 %cmp1 = fcmp ugt double %a, %b 3443 %retval = or i1 %cmp, %cmp1 3444 ret i1 %retval 3445} 3446 3447define i1 @auto_gen_100_logical(double %a, double %b) { 3448; CHECK-LABEL: @auto_gen_100_logical( 3449; CHECK-NEXT: [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]] 3450; CHECK-NEXT: ret i1 [[RETVAL]] 3451; 3452 %cmp = fcmp une double %a, %b 3453 %cmp1 = fcmp ugt double %a, %b 3454 %retval = select i1 %cmp, i1 true, i1 %cmp1 3455 ret i1 %retval 3456} 3457 3458define i1 @auto_gen_100_logical_fmf(double %a, double %b) { 3459; CHECK-LABEL: @auto_gen_100_logical_fmf( 3460; CHECK-NEXT: [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]] 3461; CHECK-NEXT: ret i1 [[RETVAL]] 3462; 3463 %cmp = fcmp une double %a, %b 3464 %cmp1 = fcmp fast ugt double %a, %b 3465 %retval = select i1 %cmp, i1 true, i1 %cmp1 3466 ret i1 %retval 3467} 3468 3469define i1 @auto_gen_101(double %a, double %b) { 3470; CHECK-LABEL: @auto_gen_101( 3471; CHECK-NEXT: ret i1 true 3472; 3473 %cmp = fcmp une double %a, %b 3474 %cmp1 = fcmp uge double %a, %b 3475 %retval = or i1 %cmp, %cmp1 3476 ret i1 %retval 3477} 3478 3479define i1 @auto_gen_101_logical(double %a, double %b) { 3480; CHECK-LABEL: @auto_gen_101_logical( 3481; CHECK-NEXT: ret i1 true 3482; 3483 %cmp = fcmp une double %a, %b 3484 %cmp1 = fcmp uge double %a, %b 3485 %retval = select i1 %cmp, i1 true, i1 %cmp1 3486 ret i1 %retval 3487} 3488 3489define i1 @auto_gen_101_logical_fmf(double %a, double %b) { 3490; CHECK-LABEL: @auto_gen_101_logical_fmf( 3491; CHECK-NEXT: ret i1 true 3492; 3493 %cmp = fcmp fast une double %a, %b 3494 %cmp1 = fcmp fast uge double %a, %b 3495 %retval = select i1 %cmp, i1 true, i1 %cmp1 3496 ret i1 %retval 3497} 3498 3499define i1 @auto_gen_102(double %a, double %b) { 3500; CHECK-LABEL: @auto_gen_102( 3501; CHECK-NEXT: [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]] 3502; CHECK-NEXT: ret i1 [[RETVAL]] 3503; 3504 %cmp = fcmp une double %a, %b 3505 %cmp1 = fcmp ult double %a, %b 3506 %retval = or i1 %cmp, %cmp1 3507 ret i1 %retval 3508} 3509 3510define i1 @auto_gen_102_logical(double %a, double %b) { 3511; CHECK-LABEL: @auto_gen_102_logical( 3512; CHECK-NEXT: [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]] 3513; CHECK-NEXT: ret i1 [[RETVAL]] 3514; 3515 %cmp = fcmp une double %a, %b 3516 %cmp1 = fcmp ult double %a, %b 3517 %retval = select i1 %cmp, i1 true, i1 %cmp1 3518 ret i1 %retval 3519} 3520 3521define i1 @auto_gen_102_logical_fmf(double %a, double %b) { 3522; CHECK-LABEL: @auto_gen_102_logical_fmf( 3523; CHECK-NEXT: [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]] 3524; CHECK-NEXT: ret i1 [[RETVAL]] 3525; 3526 %cmp = fcmp une double %a, %b 3527 %cmp1 = fcmp fast ult double %a, %b 3528 %retval = select i1 %cmp, i1 true, i1 %cmp1 3529 ret i1 %retval 3530} 3531 3532define i1 @auto_gen_103(double %a, double %b) { 3533; CHECK-LABEL: @auto_gen_103( 3534; CHECK-NEXT: ret i1 true 3535; 3536 %cmp = fcmp une double %a, %b 3537 %cmp1 = fcmp ule double %a, %b 3538 %retval = or i1 %cmp, %cmp1 3539 ret i1 %retval 3540} 3541 3542define i1 @auto_gen_103_logical(double %a, double %b) { 3543; CHECK-LABEL: @auto_gen_103_logical( 3544; CHECK-NEXT: ret i1 true 3545; 3546 %cmp = fcmp une double %a, %b 3547 %cmp1 = fcmp ule double %a, %b 3548 %retval = select i1 %cmp, i1 true, i1 %cmp1 3549 ret i1 %retval 3550} 3551 3552define i1 @auto_gen_103_logical_fmf(double %a, double %b) { 3553; CHECK-LABEL: @auto_gen_103_logical_fmf( 3554; CHECK-NEXT: ret i1 true 3555; 3556 %cmp = fcmp fast une double %a, %b 3557 %cmp1 = fcmp fast ule double %a, %b 3558 %retval = select i1 %cmp, i1 true, i1 %cmp1 3559 ret i1 %retval 3560} 3561 3562define i1 @auto_gen_104(double %a, double %b) { 3563; CHECK-LABEL: @auto_gen_104( 3564; CHECK-NEXT: [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]] 3565; CHECK-NEXT: ret i1 [[RETVAL]] 3566; 3567 %cmp = fcmp une double %a, %b 3568 %cmp1 = fcmp une double %a, %b 3569 %retval = or i1 %cmp, %cmp1 3570 ret i1 %retval 3571} 3572 3573define i1 @auto_gen_104_logical(double %a, double %b) { 3574; CHECK-LABEL: @auto_gen_104_logical( 3575; CHECK-NEXT: [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]] 3576; CHECK-NEXT: ret i1 [[RETVAL]] 3577; 3578 %cmp = fcmp une double %a, %b 3579 %cmp1 = fcmp une double %a, %b 3580 %retval = select i1 %cmp, i1 true, i1 %cmp1 3581 ret i1 %retval 3582} 3583 3584define i1 @auto_gen_104_logical_fmf(double %a, double %b) { 3585; CHECK-LABEL: @auto_gen_104_logical_fmf( 3586; CHECK-NEXT: [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]] 3587; CHECK-NEXT: ret i1 [[RETVAL]] 3588; 3589 %cmp = fcmp une double %a, %b 3590 %cmp1 = fcmp fast une double %a, %b 3591 %retval = select i1 %cmp, i1 true, i1 %cmp1 3592 ret i1 %retval 3593} 3594 3595define i1 @auto_gen_105(double %a, double %b) { 3596; CHECK-LABEL: @auto_gen_105( 3597; CHECK-NEXT: [[CMP:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] 3598; CHECK-NEXT: ret i1 [[CMP]] 3599; 3600 %cmp = fcmp uno double %a, %b 3601 %cmp1 = fcmp false double %a, %b 3602 %retval = or i1 %cmp, %cmp1 3603 ret i1 %retval 3604} 3605 3606define i1 @auto_gen_105_logical(double %a, double %b) { 3607; CHECK-LABEL: @auto_gen_105_logical( 3608; CHECK-NEXT: [[CMP:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] 3609; CHECK-NEXT: ret i1 [[CMP]] 3610; 3611 %cmp = fcmp uno double %a, %b 3612 %cmp1 = fcmp false double %a, %b 3613 %retval = select i1 %cmp, i1 true, i1 %cmp1 3614 ret i1 %retval 3615} 3616 3617define i1 @auto_gen_105_logical_fmf(double %a, double %b) { 3618; CHECK-LABEL: @auto_gen_105_logical_fmf( 3619; CHECK-NEXT: ret i1 false 3620; 3621 %cmp = fcmp fast uno double %a, %b 3622 %cmp1 = fcmp fast false double %a, %b 3623 %retval = select i1 %cmp, i1 true, i1 %cmp1 3624 ret i1 %retval 3625} 3626 3627define i1 @auto_gen_106(double %a, double %b) { 3628; CHECK-LABEL: @auto_gen_106( 3629; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]] 3630; CHECK-NEXT: ret i1 [[RETVAL]] 3631; 3632 %cmp = fcmp uno double %a, %b 3633 %cmp1 = fcmp oeq double %a, %b 3634 %retval = or i1 %cmp, %cmp1 3635 ret i1 %retval 3636} 3637 3638define i1 @auto_gen_106_logical(double %a, double %b) { 3639; CHECK-LABEL: @auto_gen_106_logical( 3640; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]] 3641; CHECK-NEXT: ret i1 [[RETVAL]] 3642; 3643 %cmp = fcmp uno double %a, %b 3644 %cmp1 = fcmp oeq double %a, %b 3645 %retval = select i1 %cmp, i1 true, i1 %cmp1 3646 ret i1 %retval 3647} 3648 3649define i1 @auto_gen_106_logical_fmf(double %a, double %b) { 3650; CHECK-LABEL: @auto_gen_106_logical_fmf( 3651; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]] 3652; CHECK-NEXT: ret i1 [[RETVAL]] 3653; 3654 %cmp = fcmp uno double %a, %b 3655 %cmp1 = fcmp fast oeq double %a, %b 3656 %retval = select i1 %cmp, i1 true, i1 %cmp1 3657 ret i1 %retval 3658} 3659 3660define i1 @auto_gen_107(double %a, double %b) { 3661; CHECK-LABEL: @auto_gen_107( 3662; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]] 3663; CHECK-NEXT: ret i1 [[RETVAL]] 3664; 3665 %cmp = fcmp uno double %a, %b 3666 %cmp1 = fcmp ogt double %a, %b 3667 %retval = or i1 %cmp, %cmp1 3668 ret i1 %retval 3669} 3670 3671define i1 @auto_gen_107_logical(double %a, double %b) { 3672; CHECK-LABEL: @auto_gen_107_logical( 3673; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]] 3674; CHECK-NEXT: ret i1 [[RETVAL]] 3675; 3676 %cmp = fcmp uno double %a, %b 3677 %cmp1 = fcmp ogt double %a, %b 3678 %retval = select i1 %cmp, i1 true, i1 %cmp1 3679 ret i1 %retval 3680} 3681 3682define i1 @auto_gen_107_logical_fmf(double %a, double %b) { 3683; CHECK-LABEL: @auto_gen_107_logical_fmf( 3684; CHECK-NEXT: [[CMP1:%.*]] = fcmp fast ogt double [[A:%.*]], [[B:%.*]] 3685; CHECK-NEXT: ret i1 [[CMP1]] 3686; 3687 %cmp = fcmp fast uno double %a, %b 3688 %cmp1 = fcmp fast ogt double %a, %b 3689 %retval = select i1 %cmp, i1 true, i1 %cmp1 3690 ret i1 %retval 3691} 3692 3693define i1 @auto_gen_108(double %a, double %b) { 3694; CHECK-LABEL: @auto_gen_108( 3695; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]] 3696; CHECK-NEXT: ret i1 [[RETVAL]] 3697; 3698 %cmp = fcmp uno double %a, %b 3699 %cmp1 = fcmp oge double %a, %b 3700 %retval = or i1 %cmp, %cmp1 3701 ret i1 %retval 3702} 3703 3704define i1 @auto_gen_108_logical(double %a, double %b) { 3705; CHECK-LABEL: @auto_gen_108_logical( 3706; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]] 3707; CHECK-NEXT: ret i1 [[RETVAL]] 3708; 3709 %cmp = fcmp uno double %a, %b 3710 %cmp1 = fcmp oge double %a, %b 3711 %retval = select i1 %cmp, i1 true, i1 %cmp1 3712 ret i1 %retval 3713} 3714 3715define i1 @auto_gen_108_logical_fmf(double %a, double %b) { 3716; CHECK-LABEL: @auto_gen_108_logical_fmf( 3717; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]] 3718; CHECK-NEXT: ret i1 [[RETVAL]] 3719; 3720 %cmp = fcmp uno double %a, %b 3721 %cmp1 = fcmp fast oge double %a, %b 3722 %retval = select i1 %cmp, i1 true, i1 %cmp1 3723 ret i1 %retval 3724} 3725 3726define i1 @auto_gen_109(double %a, double %b) { 3727; CHECK-LABEL: @auto_gen_109( 3728; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]] 3729; CHECK-NEXT: ret i1 [[RETVAL]] 3730; 3731 %cmp = fcmp uno double %a, %b 3732 %cmp1 = fcmp olt double %a, %b 3733 %retval = or i1 %cmp, %cmp1 3734 ret i1 %retval 3735} 3736 3737define i1 @auto_gen_109_logical(double %a, double %b) { 3738; CHECK-LABEL: @auto_gen_109_logical( 3739; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]] 3740; CHECK-NEXT: ret i1 [[RETVAL]] 3741; 3742 %cmp = fcmp uno double %a, %b 3743 %cmp1 = fcmp olt double %a, %b 3744 %retval = select i1 %cmp, i1 true, i1 %cmp1 3745 ret i1 %retval 3746} 3747 3748define i1 @auto_gen_109_logical_fmf(double %a, double %b) { 3749; CHECK-LABEL: @auto_gen_109_logical_fmf( 3750; CHECK-NEXT: [[CMP1:%.*]] = fcmp fast olt double [[A:%.*]], [[B:%.*]] 3751; CHECK-NEXT: ret i1 [[CMP1]] 3752; 3753 %cmp = fcmp fast uno double %a, %b 3754 %cmp1 = fcmp fast olt double %a, %b 3755 %retval = select i1 %cmp, i1 true, i1 %cmp1 3756 ret i1 %retval 3757} 3758 3759define i1 @auto_gen_110(double %a, double %b) { 3760; CHECK-LABEL: @auto_gen_110( 3761; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]] 3762; CHECK-NEXT: ret i1 [[RETVAL]] 3763; 3764 %cmp = fcmp uno double %a, %b 3765 %cmp1 = fcmp ole double %a, %b 3766 %retval = or i1 %cmp, %cmp1 3767 ret i1 %retval 3768} 3769 3770define i1 @auto_gen_110_logical(double %a, double %b) { 3771; CHECK-LABEL: @auto_gen_110_logical( 3772; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]] 3773; CHECK-NEXT: ret i1 [[RETVAL]] 3774; 3775 %cmp = fcmp uno double %a, %b 3776 %cmp1 = fcmp ole double %a, %b 3777 %retval = select i1 %cmp, i1 true, i1 %cmp1 3778 ret i1 %retval 3779} 3780 3781define i1 @auto_gen_110_logical_fmf(double %a, double %b) { 3782; CHECK-LABEL: @auto_gen_110_logical_fmf( 3783; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]] 3784; CHECK-NEXT: ret i1 [[RETVAL]] 3785; 3786 %cmp = fcmp uno double %a, %b 3787 %cmp1 = fcmp fast ole double %a, %b 3788 %retval = select i1 %cmp, i1 true, i1 %cmp1 3789 ret i1 %retval 3790} 3791 3792define i1 @auto_gen_111(double %a, double %b) { 3793; CHECK-LABEL: @auto_gen_111( 3794; CHECK-NEXT: [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]] 3795; CHECK-NEXT: ret i1 [[RETVAL]] 3796; 3797 %cmp = fcmp uno double %a, %b 3798 %cmp1 = fcmp one double %a, %b 3799 %retval = or i1 %cmp, %cmp1 3800 ret i1 %retval 3801} 3802 3803define i1 @auto_gen_111_logical(double %a, double %b) { 3804; CHECK-LABEL: @auto_gen_111_logical( 3805; CHECK-NEXT: [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]] 3806; CHECK-NEXT: ret i1 [[RETVAL]] 3807; 3808 %cmp = fcmp uno double %a, %b 3809 %cmp1 = fcmp one double %a, %b 3810 %retval = select i1 %cmp, i1 true, i1 %cmp1 3811 ret i1 %retval 3812} 3813 3814define i1 @auto_gen_111_logical_fmf(double %a, double %b) { 3815; CHECK-LABEL: @auto_gen_111_logical_fmf( 3816; CHECK-NEXT: [[CMP1:%.*]] = fcmp fast one double [[A:%.*]], [[B:%.*]] 3817; CHECK-NEXT: ret i1 [[CMP1]] 3818; 3819 %cmp = fcmp fast uno double %a, %b 3820 %cmp1 = fcmp fast one double %a, %b 3821 %retval = select i1 %cmp, i1 true, i1 %cmp1 3822 ret i1 %retval 3823} 3824 3825define i1 @auto_gen_112(double %a, double %b) { 3826; CHECK-LABEL: @auto_gen_112( 3827; CHECK-NEXT: ret i1 true 3828; 3829 %cmp = fcmp uno double %a, %b 3830 %cmp1 = fcmp ord double %a, %b 3831 %retval = or i1 %cmp, %cmp1 3832 ret i1 %retval 3833} 3834 3835define i1 @auto_gen_112_logical(double %a, double %b) { 3836; CHECK-LABEL: @auto_gen_112_logical( 3837; CHECK-NEXT: ret i1 true 3838; 3839 %cmp = fcmp uno double %a, %b 3840 %cmp1 = fcmp ord double %a, %b 3841 %retval = select i1 %cmp, i1 true, i1 %cmp1 3842 ret i1 %retval 3843} 3844 3845define i1 @auto_gen_112_logical_fmf(double %a, double %b) { 3846; CHECK-LABEL: @auto_gen_112_logical_fmf( 3847; CHECK-NEXT: ret i1 true 3848; 3849 %cmp = fcmp uno double %a, %b 3850 %cmp1 = fcmp fast ord double %a, %b 3851 %retval = select i1 %cmp, i1 true, i1 %cmp1 3852 ret i1 %retval 3853} 3854 3855define i1 @auto_gen_113(double %a, double %b) { 3856; CHECK-LABEL: @auto_gen_113( 3857; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]] 3858; CHECK-NEXT: ret i1 [[RETVAL]] 3859; 3860 %cmp = fcmp uno double %a, %b 3861 %cmp1 = fcmp ueq double %a, %b 3862 %retval = or i1 %cmp, %cmp1 3863 ret i1 %retval 3864} 3865 3866define i1 @auto_gen_113_logical(double %a, double %b) { 3867; CHECK-LABEL: @auto_gen_113_logical( 3868; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]] 3869; CHECK-NEXT: ret i1 [[RETVAL]] 3870; 3871 %cmp = fcmp uno double %a, %b 3872 %cmp1 = fcmp ueq double %a, %b 3873 %retval = select i1 %cmp, i1 true, i1 %cmp1 3874 ret i1 %retval 3875} 3876 3877define i1 @auto_gen_113_logical_fmf(double %a, double %b) { 3878; CHECK-LABEL: @auto_gen_113_logical_fmf( 3879; CHECK-NEXT: [[CMP1:%.*]] = fcmp fast ueq double [[A:%.*]], [[B:%.*]] 3880; CHECK-NEXT: ret i1 [[CMP1]] 3881; 3882 %cmp = fcmp fast uno double %a, %b 3883 %cmp1 = fcmp fast ueq double %a, %b 3884 %retval = select i1 %cmp, i1 true, i1 %cmp1 3885 ret i1 %retval 3886} 3887 3888define i1 @auto_gen_114(double %a, double %b) { 3889; CHECK-LABEL: @auto_gen_114( 3890; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]] 3891; CHECK-NEXT: ret i1 [[RETVAL]] 3892; 3893 %cmp = fcmp uno double %a, %b 3894 %cmp1 = fcmp ugt double %a, %b 3895 %retval = or i1 %cmp, %cmp1 3896 ret i1 %retval 3897} 3898 3899define i1 @auto_gen_114_logical(double %a, double %b) { 3900; CHECK-LABEL: @auto_gen_114_logical( 3901; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]] 3902; CHECK-NEXT: ret i1 [[RETVAL]] 3903; 3904 %cmp = fcmp uno double %a, %b 3905 %cmp1 = fcmp ugt double %a, %b 3906 %retval = select i1 %cmp, i1 true, i1 %cmp1 3907 ret i1 %retval 3908} 3909 3910define i1 @auto_gen_114_logical_fmf(double %a, double %b) { 3911; CHECK-LABEL: @auto_gen_114_logical_fmf( 3912; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]] 3913; CHECK-NEXT: ret i1 [[RETVAL]] 3914; 3915 %cmp = fcmp uno double %a, %b 3916 %cmp1 = fcmp fast ugt double %a, %b 3917 %retval = select i1 %cmp, i1 true, i1 %cmp1 3918 ret i1 %retval 3919} 3920 3921define i1 @auto_gen_115(double %a, double %b) { 3922; CHECK-LABEL: @auto_gen_115( 3923; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]] 3924; CHECK-NEXT: ret i1 [[RETVAL]] 3925; 3926 %cmp = fcmp uno double %a, %b 3927 %cmp1 = fcmp uge double %a, %b 3928 %retval = or i1 %cmp, %cmp1 3929 ret i1 %retval 3930} 3931 3932define i1 @auto_gen_115_logical(double %a, double %b) { 3933; CHECK-LABEL: @auto_gen_115_logical( 3934; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]] 3935; CHECK-NEXT: ret i1 [[RETVAL]] 3936; 3937 %cmp = fcmp uno double %a, %b 3938 %cmp1 = fcmp uge double %a, %b 3939 %retval = select i1 %cmp, i1 true, i1 %cmp1 3940 ret i1 %retval 3941} 3942 3943define i1 @auto_gen_115_logical_fmf(double %a, double %b) { 3944; CHECK-LABEL: @auto_gen_115_logical_fmf( 3945; CHECK-NEXT: [[CMP1:%.*]] = fcmp fast uge double [[A:%.*]], [[B:%.*]] 3946; CHECK-NEXT: ret i1 [[CMP1]] 3947; 3948 %cmp = fcmp fast uno double %a, %b 3949 %cmp1 = fcmp fast uge double %a, %b 3950 %retval = select i1 %cmp, i1 true, i1 %cmp1 3951 ret i1 %retval 3952} 3953 3954define i1 @auto_gen_116(double %a, double %b) { 3955; CHECK-LABEL: @auto_gen_116( 3956; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]] 3957; CHECK-NEXT: ret i1 [[RETVAL]] 3958; 3959 %cmp = fcmp uno double %a, %b 3960 %cmp1 = fcmp ult double %a, %b 3961 %retval = or i1 %cmp, %cmp1 3962 ret i1 %retval 3963} 3964 3965define i1 @auto_gen_116_logical(double %a, double %b) { 3966; CHECK-LABEL: @auto_gen_116_logical( 3967; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]] 3968; CHECK-NEXT: ret i1 [[RETVAL]] 3969; 3970 %cmp = fcmp uno double %a, %b 3971 %cmp1 = fcmp ult double %a, %b 3972 %retval = select i1 %cmp, i1 true, i1 %cmp1 3973 ret i1 %retval 3974} 3975 3976define i1 @auto_gen_116_logical_fmf(double %a, double %b) { 3977; CHECK-LABEL: @auto_gen_116_logical_fmf( 3978; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]] 3979; CHECK-NEXT: ret i1 [[RETVAL]] 3980; 3981 %cmp = fcmp uno double %a, %b 3982 %cmp1 = fcmp fast ult double %a, %b 3983 %retval = select i1 %cmp, i1 true, i1 %cmp1 3984 ret i1 %retval 3985} 3986 3987define i1 @auto_gen_117(double %a, double %b) { 3988; CHECK-LABEL: @auto_gen_117( 3989; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]] 3990; CHECK-NEXT: ret i1 [[RETVAL]] 3991; 3992 %cmp = fcmp uno double %a, %b 3993 %cmp1 = fcmp ule double %a, %b 3994 %retval = or i1 %cmp, %cmp1 3995 ret i1 %retval 3996} 3997 3998define i1 @auto_gen_117_logical(double %a, double %b) { 3999; CHECK-LABEL: @auto_gen_117_logical( 4000; CHECK-NEXT: [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]] 4001; CHECK-NEXT: ret i1 [[RETVAL]] 4002; 4003 %cmp = fcmp uno double %a, %b 4004 %cmp1 = fcmp ule double %a, %b 4005 %retval = select i1 %cmp, i1 true, i1 %cmp1 4006 ret i1 %retval 4007} 4008 4009define i1 @auto_gen_117_logical_fmf(double %a, double %b) { 4010; CHECK-LABEL: @auto_gen_117_logical_fmf( 4011; CHECK-NEXT: [[CMP1:%.*]] = fcmp fast ule double [[A:%.*]], [[B:%.*]] 4012; CHECK-NEXT: ret i1 [[CMP1]] 4013; 4014 %cmp = fcmp fast uno double %a, %b 4015 %cmp1 = fcmp fast ule double %a, %b 4016 %retval = select i1 %cmp, i1 true, i1 %cmp1 4017 ret i1 %retval 4018} 4019 4020define i1 @auto_gen_118(double %a, double %b) { 4021; CHECK-LABEL: @auto_gen_118( 4022; CHECK-NEXT: [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]] 4023; CHECK-NEXT: ret i1 [[RETVAL]] 4024; 4025 %cmp = fcmp uno double %a, %b 4026 %cmp1 = fcmp une double %a, %b 4027 %retval = or i1 %cmp, %cmp1 4028 ret i1 %retval 4029} 4030 4031define i1 @auto_gen_118_logical(double %a, double %b) { 4032; CHECK-LABEL: @auto_gen_118_logical( 4033; CHECK-NEXT: [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]] 4034; CHECK-NEXT: ret i1 [[RETVAL]] 4035; 4036 %cmp = fcmp uno double %a, %b 4037 %cmp1 = fcmp une double %a, %b 4038 %retval = select i1 %cmp, i1 true, i1 %cmp1 4039 ret i1 %retval 4040} 4041 4042define i1 @auto_gen_118_logical_fmf(double %a, double %b) { 4043; CHECK-LABEL: @auto_gen_118_logical_fmf( 4044; CHECK-NEXT: [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]] 4045; CHECK-NEXT: ret i1 [[RETVAL]] 4046; 4047 %cmp = fcmp uno double %a, %b 4048 %cmp1 = fcmp fast une double %a, %b 4049 %retval = select i1 %cmp, i1 true, i1 %cmp1 4050 ret i1 %retval 4051} 4052 4053define i1 @auto_gen_119(double %a, double %b) { 4054; CHECK-LABEL: @auto_gen_119( 4055; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] 4056; CHECK-NEXT: ret i1 [[RETVAL]] 4057; 4058 %cmp = fcmp uno double %a, %b 4059 %cmp1 = fcmp uno double %a, %b 4060 %retval = or i1 %cmp, %cmp1 4061 ret i1 %retval 4062} 4063 4064define i1 @auto_gen_119_logical(double %a, double %b) { 4065; CHECK-LABEL: @auto_gen_119_logical( 4066; CHECK-NEXT: [[RETVAL:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] 4067; CHECK-NEXT: ret i1 [[RETVAL]] 4068; 4069 %cmp = fcmp uno double %a, %b 4070 %cmp1 = fcmp uno double %a, %b 4071 %retval = select i1 %cmp, i1 true, i1 %cmp1 4072 ret i1 %retval 4073} 4074 4075define i1 @auto_gen_119_logical_fmf(double %a, double %b) { 4076; CHECK-LABEL: @auto_gen_119_logical_fmf( 4077; CHECK-NEXT: ret i1 false 4078; 4079 %cmp = fcmp fast uno double %a, %b 4080 %cmp1 = fcmp fast uno double %a, %b 4081 %retval = select i1 %cmp, i1 true, i1 %cmp1 4082 ret i1 %retval 4083} 4084 4085define i1 @auto_gen_120(double %a, double %b) { 4086; CHECK-LABEL: @auto_gen_120( 4087; CHECK-NEXT: ret i1 true 4088; 4089 %cmp = fcmp true double %a, %b 4090 %cmp1 = fcmp false double %a, %b 4091 %retval = or i1 %cmp, %cmp1 4092 ret i1 %retval 4093} 4094 4095define i1 @auto_gen_120_logical(double %a, double %b) { 4096; CHECK-LABEL: @auto_gen_120_logical( 4097; CHECK-NEXT: ret i1 true 4098; 4099 %cmp = fcmp true double %a, %b 4100 %cmp1 = fcmp false double %a, %b 4101 %retval = select i1 %cmp, i1 true, i1 %cmp1 4102 ret i1 %retval 4103} 4104 4105define i1 @auto_gen_120_logical_fmf(double %a, double %b) { 4106; CHECK-LABEL: @auto_gen_120_logical_fmf( 4107; CHECK-NEXT: ret i1 true 4108; 4109 %cmp = fcmp true double %a, %b 4110 %cmp1 = fcmp fast false double %a, %b 4111 %retval = select i1 %cmp, i1 true, i1 %cmp1 4112 ret i1 %retval 4113} 4114 4115define i1 @auto_gen_121(double %a, double %b) { 4116; CHECK-LABEL: @auto_gen_121( 4117; CHECK-NEXT: ret i1 true 4118; 4119 %cmp = fcmp true double %a, %b 4120 %cmp1 = fcmp oeq double %a, %b 4121 %retval = or i1 %cmp, %cmp1 4122 ret i1 %retval 4123} 4124 4125define i1 @auto_gen_121_logical(double %a, double %b) { 4126; CHECK-LABEL: @auto_gen_121_logical( 4127; CHECK-NEXT: ret i1 true 4128; 4129 %cmp = fcmp true double %a, %b 4130 %cmp1 = fcmp oeq double %a, %b 4131 %retval = select i1 %cmp, i1 true, i1 %cmp1 4132 ret i1 %retval 4133} 4134 4135define i1 @auto_gen_121_logical_fmf(double %a, double %b) { 4136; CHECK-LABEL: @auto_gen_121_logical_fmf( 4137; CHECK-NEXT: ret i1 true 4138; 4139 %cmp = fcmp fast true double %a, %b 4140 %cmp1 = fcmp fast oeq double %a, %b 4141 %retval = select i1 %cmp, i1 true, i1 %cmp1 4142 ret i1 %retval 4143} 4144 4145define i1 @auto_gen_122(double %a, double %b) { 4146; CHECK-LABEL: @auto_gen_122( 4147; CHECK-NEXT: ret i1 true 4148; 4149 %cmp = fcmp true double %a, %b 4150 %cmp1 = fcmp ogt double %a, %b 4151 %retval = or i1 %cmp, %cmp1 4152 ret i1 %retval 4153} 4154 4155define i1 @auto_gen_122_logical(double %a, double %b) { 4156; CHECK-LABEL: @auto_gen_122_logical( 4157; CHECK-NEXT: ret i1 true 4158; 4159 %cmp = fcmp true double %a, %b 4160 %cmp1 = fcmp ogt double %a, %b 4161 %retval = select i1 %cmp, i1 true, i1 %cmp1 4162 ret i1 %retval 4163} 4164 4165define i1 @auto_gen_122_logical_fmf(double %a, double %b) { 4166; CHECK-LABEL: @auto_gen_122_logical_fmf( 4167; CHECK-NEXT: ret i1 true 4168; 4169 %cmp = fcmp true double %a, %b 4170 %cmp1 = fcmp fast ogt double %a, %b 4171 %retval = select i1 %cmp, i1 true, i1 %cmp1 4172 ret i1 %retval 4173} 4174 4175define i1 @auto_gen_123(double %a, double %b) { 4176; CHECK-LABEL: @auto_gen_123( 4177; CHECK-NEXT: ret i1 true 4178; 4179 %cmp = fcmp true double %a, %b 4180 %cmp1 = fcmp oge double %a, %b 4181 %retval = or i1 %cmp, %cmp1 4182 ret i1 %retval 4183} 4184 4185define i1 @auto_gen_123_logical(double %a, double %b) { 4186; CHECK-LABEL: @auto_gen_123_logical( 4187; CHECK-NEXT: ret i1 true 4188; 4189 %cmp = fcmp true double %a, %b 4190 %cmp1 = fcmp oge double %a, %b 4191 %retval = select i1 %cmp, i1 true, i1 %cmp1 4192 ret i1 %retval 4193} 4194 4195define i1 @auto_gen_123_logical_fmf(double %a, double %b) { 4196; CHECK-LABEL: @auto_gen_123_logical_fmf( 4197; CHECK-NEXT: ret i1 true 4198; 4199 %cmp = fcmp fast true double %a, %b 4200 %cmp1 = fcmp fast oge double %a, %b 4201 %retval = select i1 %cmp, i1 true, i1 %cmp1 4202 ret i1 %retval 4203} 4204 4205define i1 @auto_gen_124(double %a, double %b) { 4206; CHECK-LABEL: @auto_gen_124( 4207; CHECK-NEXT: ret i1 true 4208; 4209 %cmp = fcmp true double %a, %b 4210 %cmp1 = fcmp olt double %a, %b 4211 %retval = or i1 %cmp, %cmp1 4212 ret i1 %retval 4213} 4214 4215define i1 @auto_gen_124_logical(double %a, double %b) { 4216; CHECK-LABEL: @auto_gen_124_logical( 4217; CHECK-NEXT: ret i1 true 4218; 4219 %cmp = fcmp true double %a, %b 4220 %cmp1 = fcmp olt double %a, %b 4221 %retval = select i1 %cmp, i1 true, i1 %cmp1 4222 ret i1 %retval 4223} 4224 4225define i1 @auto_gen_124_logical_fmf(double %a, double %b) { 4226; CHECK-LABEL: @auto_gen_124_logical_fmf( 4227; CHECK-NEXT: ret i1 true 4228; 4229 %cmp = fcmp true double %a, %b 4230 %cmp1 = fcmp fast olt double %a, %b 4231 %retval = select i1 %cmp, i1 true, i1 %cmp1 4232 ret i1 %retval 4233} 4234 4235define i1 @auto_gen_125(double %a, double %b) { 4236; CHECK-LABEL: @auto_gen_125( 4237; CHECK-NEXT: ret i1 true 4238; 4239 %cmp = fcmp true double %a, %b 4240 %cmp1 = fcmp ole double %a, %b 4241 %retval = or i1 %cmp, %cmp1 4242 ret i1 %retval 4243} 4244 4245define i1 @auto_gen_125_logical(double %a, double %b) { 4246; CHECK-LABEL: @auto_gen_125_logical( 4247; CHECK-NEXT: ret i1 true 4248; 4249 %cmp = fcmp true double %a, %b 4250 %cmp1 = fcmp ole double %a, %b 4251 %retval = select i1 %cmp, i1 true, i1 %cmp1 4252 ret i1 %retval 4253} 4254 4255define i1 @auto_gen_125_logical_fmf(double %a, double %b) { 4256; CHECK-LABEL: @auto_gen_125_logical_fmf( 4257; CHECK-NEXT: ret i1 true 4258; 4259 %cmp = fcmp fast true double %a, %b 4260 %cmp1 = fcmp fast ole double %a, %b 4261 %retval = select i1 %cmp, i1 true, i1 %cmp1 4262 ret i1 %retval 4263} 4264 4265define i1 @auto_gen_126(double %a, double %b) { 4266; CHECK-LABEL: @auto_gen_126( 4267; CHECK-NEXT: ret i1 true 4268; 4269 %cmp = fcmp true double %a, %b 4270 %cmp1 = fcmp one double %a, %b 4271 %retval = or i1 %cmp, %cmp1 4272 ret i1 %retval 4273} 4274 4275define i1 @auto_gen_126_logical(double %a, double %b) { 4276; CHECK-LABEL: @auto_gen_126_logical( 4277; CHECK-NEXT: ret i1 true 4278; 4279 %cmp = fcmp true double %a, %b 4280 %cmp1 = fcmp one double %a, %b 4281 %retval = select i1 %cmp, i1 true, i1 %cmp1 4282 ret i1 %retval 4283} 4284 4285define i1 @auto_gen_126_logical_fmf(double %a, double %b) { 4286; CHECK-LABEL: @auto_gen_126_logical_fmf( 4287; CHECK-NEXT: ret i1 true 4288; 4289 %cmp = fcmp true double %a, %b 4290 %cmp1 = fcmp fast one double %a, %b 4291 %retval = select i1 %cmp, i1 true, i1 %cmp1 4292 ret i1 %retval 4293} 4294 4295define i1 @auto_gen_127(double %a, double %b) { 4296; CHECK-LABEL: @auto_gen_127( 4297; CHECK-NEXT: ret i1 true 4298; 4299 %cmp = fcmp true double %a, %b 4300 %cmp1 = fcmp ord double %a, %b 4301 %retval = or i1 %cmp, %cmp1 4302 ret i1 %retval 4303} 4304 4305define i1 @auto_gen_127_logical(double %a, double %b) { 4306; CHECK-LABEL: @auto_gen_127_logical( 4307; CHECK-NEXT: ret i1 true 4308; 4309 %cmp = fcmp true double %a, %b 4310 %cmp1 = fcmp ord double %a, %b 4311 %retval = select i1 %cmp, i1 true, i1 %cmp1 4312 ret i1 %retval 4313} 4314 4315define i1 @auto_gen_127_logical_fmf(double %a, double %b) { 4316; CHECK-LABEL: @auto_gen_127_logical_fmf( 4317; CHECK-NEXT: ret i1 true 4318; 4319 %cmp = fcmp fast true double %a, %b 4320 %cmp1 = fcmp fast ord double %a, %b 4321 %retval = select i1 %cmp, i1 true, i1 %cmp1 4322 ret i1 %retval 4323} 4324 4325define i1 @auto_gen_128(double %a, double %b) { 4326; CHECK-LABEL: @auto_gen_128( 4327; CHECK-NEXT: ret i1 true 4328; 4329 %cmp = fcmp true double %a, %b 4330 %cmp1 = fcmp ueq double %a, %b 4331 %retval = or i1 %cmp, %cmp1 4332 ret i1 %retval 4333} 4334 4335define i1 @auto_gen_128_logical(double %a, double %b) { 4336; CHECK-LABEL: @auto_gen_128_logical( 4337; CHECK-NEXT: ret i1 true 4338; 4339 %cmp = fcmp true double %a, %b 4340 %cmp1 = fcmp ueq double %a, %b 4341 %retval = select i1 %cmp, i1 true, i1 %cmp1 4342 ret i1 %retval 4343} 4344 4345define i1 @auto_gen_128_logical_fmf(double %a, double %b) { 4346; CHECK-LABEL: @auto_gen_128_logical_fmf( 4347; CHECK-NEXT: ret i1 true 4348; 4349 %cmp = fcmp true double %a, %b 4350 %cmp1 = fcmp fast ueq double %a, %b 4351 %retval = select i1 %cmp, i1 true, i1 %cmp1 4352 ret i1 %retval 4353} 4354 4355define i1 @auto_gen_129(double %a, double %b) { 4356; CHECK-LABEL: @auto_gen_129( 4357; CHECK-NEXT: ret i1 true 4358; 4359 %cmp = fcmp true double %a, %b 4360 %cmp1 = fcmp ugt double %a, %b 4361 %retval = or i1 %cmp, %cmp1 4362 ret i1 %retval 4363} 4364 4365define i1 @auto_gen_129_logical(double %a, double %b) { 4366; CHECK-LABEL: @auto_gen_129_logical( 4367; CHECK-NEXT: ret i1 true 4368; 4369 %cmp = fcmp true double %a, %b 4370 %cmp1 = fcmp ugt double %a, %b 4371 %retval = select i1 %cmp, i1 true, i1 %cmp1 4372 ret i1 %retval 4373} 4374 4375define i1 @auto_gen_129_logical_fmf(double %a, double %b) { 4376; CHECK-LABEL: @auto_gen_129_logical_fmf( 4377; CHECK-NEXT: ret i1 true 4378; 4379 %cmp = fcmp fast true double %a, %b 4380 %cmp1 = fcmp fast ugt double %a, %b 4381 %retval = select i1 %cmp, i1 true, i1 %cmp1 4382 ret i1 %retval 4383} 4384 4385define i1 @auto_gen_130(double %a, double %b) { 4386; CHECK-LABEL: @auto_gen_130( 4387; CHECK-NEXT: ret i1 true 4388; 4389 %cmp = fcmp true double %a, %b 4390 %cmp1 = fcmp uge double %a, %b 4391 %retval = or i1 %cmp, %cmp1 4392 ret i1 %retval 4393} 4394 4395define i1 @auto_gen_130_logical(double %a, double %b) { 4396; CHECK-LABEL: @auto_gen_130_logical( 4397; CHECK-NEXT: ret i1 true 4398; 4399 %cmp = fcmp true double %a, %b 4400 %cmp1 = fcmp uge double %a, %b 4401 %retval = select i1 %cmp, i1 true, i1 %cmp1 4402 ret i1 %retval 4403} 4404 4405define i1 @auto_gen_130_logical_fmf(double %a, double %b) { 4406; CHECK-LABEL: @auto_gen_130_logical_fmf( 4407; CHECK-NEXT: ret i1 true 4408; 4409 %cmp = fcmp true double %a, %b 4410 %cmp1 = fcmp fast uge double %a, %b 4411 %retval = select i1 %cmp, i1 true, i1 %cmp1 4412 ret i1 %retval 4413} 4414 4415define i1 @auto_gen_131(double %a, double %b) { 4416; CHECK-LABEL: @auto_gen_131( 4417; CHECK-NEXT: ret i1 true 4418; 4419 %cmp = fcmp true double %a, %b 4420 %cmp1 = fcmp ult double %a, %b 4421 %retval = or i1 %cmp, %cmp1 4422 ret i1 %retval 4423} 4424 4425define i1 @auto_gen_131_logical(double %a, double %b) { 4426; CHECK-LABEL: @auto_gen_131_logical( 4427; CHECK-NEXT: ret i1 true 4428; 4429 %cmp = fcmp true double %a, %b 4430 %cmp1 = fcmp ult double %a, %b 4431 %retval = select i1 %cmp, i1 true, i1 %cmp1 4432 ret i1 %retval 4433} 4434 4435define i1 @auto_gen_131_logical_fmf(double %a, double %b) { 4436; CHECK-LABEL: @auto_gen_131_logical_fmf( 4437; CHECK-NEXT: ret i1 true 4438; 4439 %cmp = fcmp fast true double %a, %b 4440 %cmp1 = fcmp fast ult double %a, %b 4441 %retval = select i1 %cmp, i1 true, i1 %cmp1 4442 ret i1 %retval 4443} 4444 4445define i1 @auto_gen_132(double %a, double %b) { 4446; CHECK-LABEL: @auto_gen_132( 4447; CHECK-NEXT: ret i1 true 4448; 4449 %cmp = fcmp true double %a, %b 4450 %cmp1 = fcmp ule double %a, %b 4451 %retval = or i1 %cmp, %cmp1 4452 ret i1 %retval 4453} 4454 4455define i1 @auto_gen_132_logical(double %a, double %b) { 4456; CHECK-LABEL: @auto_gen_132_logical( 4457; CHECK-NEXT: ret i1 true 4458; 4459 %cmp = fcmp true double %a, %b 4460 %cmp1 = fcmp ule double %a, %b 4461 %retval = select i1 %cmp, i1 true, i1 %cmp1 4462 ret i1 %retval 4463} 4464 4465define i1 @auto_gen_132_logical_fmf(double %a, double %b) { 4466; CHECK-LABEL: @auto_gen_132_logical_fmf( 4467; CHECK-NEXT: ret i1 true 4468; 4469 %cmp = fcmp true double %a, %b 4470 %cmp1 = fcmp fast ule double %a, %b 4471 %retval = select i1 %cmp, i1 true, i1 %cmp1 4472 ret i1 %retval 4473} 4474 4475define i1 @auto_gen_133(double %a, double %b) { 4476; CHECK-LABEL: @auto_gen_133( 4477; CHECK-NEXT: ret i1 true 4478; 4479 %cmp = fcmp true double %a, %b 4480 %cmp1 = fcmp une double %a, %b 4481 %retval = or i1 %cmp, %cmp1 4482 ret i1 %retval 4483} 4484 4485define i1 @auto_gen_133_logical(double %a, double %b) { 4486; CHECK-LABEL: @auto_gen_133_logical( 4487; CHECK-NEXT: ret i1 true 4488; 4489 %cmp = fcmp true double %a, %b 4490 %cmp1 = fcmp une double %a, %b 4491 %retval = select i1 %cmp, i1 true, i1 %cmp1 4492 ret i1 %retval 4493} 4494 4495define i1 @auto_gen_133_logical_fmf(double %a, double %b) { 4496; CHECK-LABEL: @auto_gen_133_logical_fmf( 4497; CHECK-NEXT: ret i1 true 4498; 4499 %cmp = fcmp fast true double %a, %b 4500 %cmp1 = fcmp fast une double %a, %b 4501 %retval = select i1 %cmp, i1 true, i1 %cmp1 4502 ret i1 %retval 4503} 4504 4505define i1 @auto_gen_134(double %a, double %b) { 4506; CHECK-LABEL: @auto_gen_134( 4507; CHECK-NEXT: ret i1 true 4508; 4509 %cmp = fcmp true double %a, %b 4510 %cmp1 = fcmp uno double %a, %b 4511 %retval = or i1 %cmp, %cmp1 4512 ret i1 %retval 4513} 4514 4515define i1 @auto_gen_134_logical(double %a, double %b) { 4516; CHECK-LABEL: @auto_gen_134_logical( 4517; CHECK-NEXT: ret i1 true 4518; 4519 %cmp = fcmp true double %a, %b 4520 %cmp1 = fcmp uno double %a, %b 4521 %retval = select i1 %cmp, i1 true, i1 %cmp1 4522 ret i1 %retval 4523} 4524 4525define i1 @auto_gen_134_logical_fmf(double %a, double %b) { 4526; CHECK-LABEL: @auto_gen_134_logical_fmf( 4527; CHECK-NEXT: ret i1 true 4528; 4529 %cmp = fcmp true double %a, %b 4530 %cmp1 = fcmp fast uno double %a, %b 4531 %retval = select i1 %cmp, i1 true, i1 %cmp1 4532 ret i1 %retval 4533} 4534 4535define i1 @auto_gen_135(double %a, double %b) { 4536; CHECK-LABEL: @auto_gen_135( 4537; CHECK-NEXT: ret i1 true 4538; 4539 %cmp = fcmp true double %a, %b 4540 %cmp1 = fcmp true double %a, %b 4541 %retval = or i1 %cmp, %cmp1 4542 ret i1 %retval 4543} 4544 4545define i1 @auto_gen_135_logical(double %a, double %b) { 4546; CHECK-LABEL: @auto_gen_135_logical( 4547; CHECK-NEXT: ret i1 true 4548; 4549 %cmp = fcmp true double %a, %b 4550 %cmp1 = fcmp true double %a, %b 4551 %retval = select i1 %cmp, i1 true, i1 %cmp1 4552 ret i1 %retval 4553} 4554 4555define i1 @auto_gen_135_logical_fmf(double %a, double %b) { 4556; CHECK-LABEL: @auto_gen_135_logical_fmf( 4557; CHECK-NEXT: ret i1 true 4558; 4559 %cmp = fcmp fast true double %a, %b 4560 %cmp1 = fcmp fast true double %a, %b 4561 %retval = select i1 %cmp, i1 true, i1 %cmp1 4562 ret i1 %retval 4563} 4564 4565define i1 @intersect_fmf_1(double %a, double %b) { 4566; CHECK-LABEL: @intersect_fmf_1( 4567; CHECK-NEXT: [[RETVAL:%.*]] = fcmp fast one double [[A:%.*]], [[B:%.*]] 4568; CHECK-NEXT: ret i1 [[RETVAL]] 4569; 4570 %cmp = fcmp fast olt double %a, %b 4571 %cmp1 = fcmp fast ogt double %a, %b 4572 %retval = or i1 %cmp, %cmp1 4573 ret i1 %retval 4574} 4575 4576define i1 @intersect_fmf_2(double %a, double %b) { 4577; CHECK-LABEL: @intersect_fmf_2( 4578; CHECK-NEXT: [[RETVAL:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]] 4579; CHECK-NEXT: ret i1 [[RETVAL]] 4580; 4581 %cmp = fcmp fast olt double %a, %b 4582 %cmp1 = fcmp ogt double %a, %b 4583 %retval = or i1 %cmp, %cmp1 4584 ret i1 %retval 4585} 4586 4587define i1 @intersect_fmf_3(double %a, double %b) { 4588; CHECK-LABEL: @intersect_fmf_3( 4589; CHECK-NEXT: [[RETVAL:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]] 4590; CHECK-NEXT: ret i1 [[RETVAL]] 4591; 4592 %cmp = fcmp olt double %a, %b 4593 %cmp1 = fcmp fast ogt double %a, %b 4594 %retval = or i1 %cmp, %cmp1 4595 ret i1 %retval 4596} 4597 4598define i1 @intersect_fmf_4(double %a, double %b) { 4599; CHECK-LABEL: @intersect_fmf_4( 4600; CHECK-NEXT: [[RETVAL:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]] 4601; CHECK-NEXT: ret i1 [[RETVAL]] 4602; 4603 %cmp = fcmp ninf olt double %a, %b 4604 %cmp1 = fcmp nnan ogt double %a, %b 4605 %retval = or i1 %cmp, %cmp1 4606 ret i1 %retval 4607} 4608 4609define i1 @or_fcmp_reassoc1(i1 %x, double %a, double %b) { 4610; CHECK-LABEL: @or_fcmp_reassoc1( 4611; CHECK-NEXT: [[OR:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]] 4612; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[OR]], [[CMP1:%.*]] 4613; CHECK-NEXT: ret i1 [[RETVAL]] 4614; 4615 %cmp = fcmp olt double %a, %b 4616 %cmp1 = fcmp ogt double %a, %b 4617 %or = or i1 %cmp, %x 4618 %retval = or i1 %or, %cmp1 4619 ret i1 %retval 4620} 4621 4622define i1 @or_fcmp_reassoc2(i1 %x, double %a, double %b) { 4623; CHECK-LABEL: @or_fcmp_reassoc2( 4624; CHECK-NEXT: [[TMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]] 4625; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[X:%.*]], [[TMP1]] 4626; CHECK-NEXT: ret i1 [[RETVAL]] 4627; 4628 %cmp = fcmp olt double %a, %b 4629 %cmp1 = fcmp ogt double %a, %b 4630 %or = or i1 %x, %cmp 4631 %retval = or i1 %or, %cmp1 4632 ret i1 %retval 4633} 4634 4635define i1 @or_fcmp_reassoc3(i1 %x, double %a, double %b) { 4636; CHECK-LABEL: @or_fcmp_reassoc3( 4637; CHECK-NEXT: [[TMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]] 4638; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[TMP1]], [[X:%.*]] 4639; CHECK-NEXT: ret i1 [[RETVAL]] 4640; 4641 %cmp = fcmp olt double %a, %b 4642 %cmp1 = fcmp ogt double %a, %b 4643 %or = or i1 %cmp, %x 4644 %retval = or i1 %cmp1, %or 4645 ret i1 %retval 4646} 4647 4648define i1 @or_fcmp_reassoc4(i1 %x, double %a, double %b) { 4649; CHECK-LABEL: @or_fcmp_reassoc4( 4650; CHECK-NEXT: [[TMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]] 4651; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[X:%.*]], [[TMP1]] 4652; CHECK-NEXT: ret i1 [[RETVAL]] 4653; 4654 %cmp = fcmp olt double %a, %b 4655 %cmp1 = fcmp ogt double %a, %b 4656 %or = or i1 %x, %cmp 4657 %retval = or i1 %cmp1, %or 4658 ret i1 %retval 4659} 4660