4660 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt < %s -passes=instcombine -S | FileCheck %s3 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.010 %cmp2 = fcmp uno double %y, 0.011 %or = or i1 %cmp1, %cmp212 ret i1 %or13}14 15; TODO: this can be fixed by freezing %y16define i1 @PR1738_logical(double %x, double %y) {17; CHECK-LABEL: @PR1738_logical(18; CHECK-NEXT: [[CMP1:%.*]] = fcmp uno double [[X:%.*]], 0.000000e+0019; CHECK-NEXT: [[CMP2:%.*]] = fcmp uno double [[Y:%.*]], 0.000000e+0020; CHECK-NEXT: [[OR:%.*]] = select i1 [[CMP1]], i1 true, i1 [[CMP2]]21; CHECK-NEXT: ret i1 [[OR]]22;23 %cmp1 = fcmp uno double %x, 0.024 %cmp2 = fcmp uno double %y, 0.025 %or = select i1 %cmp1, i1 true, i1 %cmp226 ret i1 %or27}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, %cmp239 ret <2 x i1> %or40}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, %cmp250 ret <2 x i1> %or51}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, %b61 %uno2 = fcmp uno double %c, 0.062 %or = or i1 %uno1, %uno263 %uno3 = fcmp uno double %d, 0.064 %r = or i1 %or, %uno365 ret i1 %r66}67 68; TODO: this can be fixed by freezing %c and %d69define 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+0073; CHECK-NEXT: [[OR:%.*]] = select i1 [[UNO1]], i1 true, i1 [[UNO2]]74; CHECK-NEXT: [[UNO3:%.*]] = fcmp uno double [[D:%.*]], 0.000000e+0075; CHECK-NEXT: [[R:%.*]] = select i1 [[OR]], i1 true, i1 [[UNO3]]76; CHECK-NEXT: ret i1 [[R]]77;78 %uno1 = fcmp uno double %a, %b79 %uno2 = fcmp uno double %c, 0.080 %or = select i1 %uno1, i1 true, i1 %uno281 %uno3 = fcmp uno double %d, 0.082 %r = select i1 %or, i1 true, i1 %uno383 ret i1 %r84}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, %b94 %uno2 = fcmp uno double %c, 0.095 %or = or i1 %uno1, %uno296 %uno3 = fcmp uno double %d, 0.097 %r = or i1 %uno3, %or98 ret i1 %r99}100 101; TODO: this can be fixed by freezing %c and %d102define 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+00106; CHECK-NEXT: [[UNO3:%.*]] = fcmp uno double [[D:%.*]], 0.000000e+00107; 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, %b112 %uno2 = fcmp uno double %c, 0.0113 %or = select i1 %uno1, i1 true, i1 %uno2114 %uno3 = fcmp uno double %d, 0.0115 %r = select i1 %uno3, i1 true, i1 %or116 ret i1 %r117}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:%.*]], zeroinitializer122; 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, zeroinitializer128 %or = or <2 x i1> %uno1, %z129 %uno2 = fcmp uno <2 x float> %d, <float 0.0, float undef>130 %r = or <2 x i1> %or, %uno2131 ret <2 x i1> %r132}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, zeroinitializer141 %or = or <2 x i1> %uno1, %z142 %uno2 = fcmp uno <2 x float> %d, <float 0.0, float poison>143 %r = or <2 x i1> %or, %uno2144 ret <2 x i1> %r145}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:%.*]], zeroinitializer150; 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, zeroinitializer156 %or = or <2 x i1> %uno1, %z157 %uno2 = fcmp uno <2 x float> %d, <float 0.0, float undef>158 %r = or <2 x i1> %uno2, %or159 ret <2 x i1> %r160}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, zeroinitializer169 %or = or <2 x i1> %uno1, %z170 %uno2 = fcmp uno <2 x float> %d, <float 0.0, float poison>171 %r = or <2 x i1> %uno2, %or172 ret <2 x i1> %r173}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.0181 %cmp2 = fcmp uno float %y, 2.0182 %or = or i1 %cmp1, %cmp2183 ret i1 %or184}185 186; TODO: this can be fixed by freezing %y187define 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+00190; CHECK-NEXT: [[CMP2:%.*]] = fcmp uno float [[Y:%.*]], 0.000000e+00191; CHECK-NEXT: [[OR:%.*]] = select i1 [[CMP1]], i1 true, i1 [[CMP2]]192; CHECK-NEXT: ret i1 [[OR]]193;194 %cmp1 = fcmp uno float %x, 1.0195 %cmp2 = fcmp uno float %y, 2.0196 %or = select i1 %cmp1, i1 true, i1 %cmp2197 ret i1 %or198}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, %cmp2208 ret <3 x i1> %or209}210 211define i1 @auto_gen_0(double %a, double %b) {212; CHECK-LABEL: @auto_gen_0(213; CHECK-NEXT: ret i1 false214;215 %cmp = fcmp false double %a, %b216 %cmp1 = fcmp false double %a, %b217 %retval = or i1 %cmp, %cmp1218 ret i1 %retval219}220 221define i1 @auto_gen_0_logical(double %a, double %b) {222; CHECK-LABEL: @auto_gen_0_logical(223; CHECK-NEXT: ret i1 false224;225 %cmp = fcmp false double %a, %b226 %cmp1 = fcmp false double %a, %b227 %retval = select i1 %cmp, i1 true, i1 %cmp1228 ret i1 %retval229}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 false234;235 %cmp = fcmp false double %a, %b236 %cmp1 = fcmp fast false double %a, %b237 %retval = select i1 %cmp, i1 true, i1 %cmp1238 ret i1 %retval239}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, %b247 %cmp1 = fcmp false double %a, %b248 %retval = or i1 %cmp, %cmp1249 ret i1 %retval250}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, %b258 %cmp1 = fcmp false double %a, %b259 %retval = select i1 %cmp, i1 true, i1 %cmp1260 ret i1 %retval261}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, %b269 %cmp1 = fcmp fast false double %a, %b270 %retval = select i1 %cmp, i1 true, i1 %cmp1271 ret i1 %retval272}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, %b280 %cmp1 = fcmp oeq double %a, %b281 %retval = or i1 %cmp, %cmp1282 ret i1 %retval283}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, %b291 %cmp1 = fcmp oeq double %a, %b292 %retval = select i1 %cmp, i1 true, i1 %cmp1293 ret i1 %retval294}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, %b302 %cmp1 = fcmp fast oeq double %a, %b303 %retval = select i1 %cmp, i1 true, i1 %cmp1304 ret i1 %retval305}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, %b313 %cmp1 = fcmp false double %a, %b314 %retval = or i1 %cmp, %cmp1315 ret i1 %retval316}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, %b324 %cmp1 = fcmp false double %a, %b325 %retval = select i1 %cmp, i1 true, i1 %cmp1326 ret i1 %retval327}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, %b335 %cmp1 = fcmp fast false double %a, %b336 %retval = select i1 %cmp, i1 true, i1 %cmp1337 ret i1 %retval338}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, %b346 %cmp1 = fcmp oeq double %a, %b347 %retval = or i1 %cmp, %cmp1348 ret i1 %retval349}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, %b357 %cmp1 = fcmp oeq double %a, %b358 %retval = select i1 %cmp, i1 true, i1 %cmp1359 ret i1 %retval360}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, %b368 %cmp1 = fcmp fast oeq double %a, %b369 %retval = select i1 %cmp, i1 true, i1 %cmp1370 ret i1 %retval371}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, %b379 %cmp1 = fcmp ogt double %a, %b380 %retval = or i1 %cmp, %cmp1381 ret i1 %retval382}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, %b390 %cmp1 = fcmp ogt double %a, %b391 %retval = select i1 %cmp, i1 true, i1 %cmp1392 ret i1 %retval393}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, %b401 %cmp1 = fcmp fast ogt double %a, %b402 %retval = select i1 %cmp, i1 true, i1 %cmp1403 ret i1 %retval404}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, %b412 %cmp1 = fcmp false double %a, %b413 %retval = or i1 %cmp, %cmp1414 ret i1 %retval415}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, %b423 %cmp1 = fcmp false double %a, %b424 %retval = select i1 %cmp, i1 true, i1 %cmp1425 ret i1 %retval426}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, %b434 %cmp1 = fcmp fast false double %a, %b435 %retval = select i1 %cmp, i1 true, i1 %cmp1436 ret i1 %retval437}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, %b445 %cmp1 = fcmp oeq double %a, %b446 %retval = or i1 %cmp, %cmp1447 ret i1 %retval448}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, %b456 %cmp1 = fcmp oeq double %a, %b457 %retval = select i1 %cmp, i1 true, i1 %cmp1458 ret i1 %retval459}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, %b467 %cmp1 = fcmp fast oeq double %a, %b468 %retval = select i1 %cmp, i1 true, i1 %cmp1469 ret i1 %retval470}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, %b478 %cmp1 = fcmp ogt double %a, %b479 %retval = or i1 %cmp, %cmp1480 ret i1 %retval481}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, %b489 %cmp1 = fcmp ogt double %a, %b490 %retval = select i1 %cmp, i1 true, i1 %cmp1491 ret i1 %retval492}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, %b500 %cmp1 = fcmp fast ogt double %a, %b501 %retval = select i1 %cmp, i1 true, i1 %cmp1502 ret i1 %retval503}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, %b511 %cmp1 = fcmp oge double %a, %b512 %retval = or i1 %cmp, %cmp1513 ret i1 %retval514}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, %b522 %cmp1 = fcmp oge double %a, %b523 %retval = select i1 %cmp, i1 true, i1 %cmp1524 ret i1 %retval525}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, %b533 %cmp1 = fcmp fast oge double %a, %b534 %retval = select i1 %cmp, i1 true, i1 %cmp1535 ret i1 %retval536}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, %b544 %cmp1 = fcmp false double %a, %b545 %retval = or i1 %cmp, %cmp1546 ret i1 %retval547}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, %b555 %cmp1 = fcmp false double %a, %b556 %retval = select i1 %cmp, i1 true, i1 %cmp1557 ret i1 %retval558}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, %b566 %cmp1 = fcmp fast false double %a, %b567 %retval = select i1 %cmp, i1 true, i1 %cmp1568 ret i1 %retval569}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, %b577 %cmp1 = fcmp oeq double %a, %b578 %retval = or i1 %cmp, %cmp1579 ret i1 %retval580}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, %b588 %cmp1 = fcmp oeq double %a, %b589 %retval = select i1 %cmp, i1 true, i1 %cmp1590 ret i1 %retval591}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, %b599 %cmp1 = fcmp fast oeq double %a, %b600 %retval = select i1 %cmp, i1 true, i1 %cmp1601 ret i1 %retval602}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, %b610 %cmp1 = fcmp ogt double %a, %b611 %retval = or i1 %cmp, %cmp1612 ret i1 %retval613}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, %b621 %cmp1 = fcmp ogt double %a, %b622 %retval = select i1 %cmp, i1 true, i1 %cmp1623 ret i1 %retval624}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, %b632 %cmp1 = fcmp fast ogt double %a, %b633 %retval = select i1 %cmp, i1 true, i1 %cmp1634 ret i1 %retval635}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, %b643 %cmp1 = fcmp oge double %a, %b644 %retval = or i1 %cmp, %cmp1645 ret i1 %retval646}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, %b654 %cmp1 = fcmp oge double %a, %b655 %retval = select i1 %cmp, i1 true, i1 %cmp1656 ret i1 %retval657}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 true662;663 %cmp = fcmp fast olt double %a, %b664 %cmp1 = fcmp fast oge double %a, %b665 %retval = select i1 %cmp, i1 true, i1 %cmp1666 ret i1 %retval667}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, %b675 %cmp1 = fcmp olt double %a, %b676 %retval = or i1 %cmp, %cmp1677 ret i1 %retval678}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, %b686 %cmp1 = fcmp olt double %a, %b687 %retval = select i1 %cmp, i1 true, i1 %cmp1688 ret i1 %retval689}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, %b697 %cmp1 = fcmp fast olt double %a, %b698 %retval = select i1 %cmp, i1 true, i1 %cmp1699 ret i1 %retval700}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, %b708 %cmp1 = fcmp false double %a, %b709 %retval = or i1 %cmp, %cmp1710 ret i1 %retval711}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, %b719 %cmp1 = fcmp false double %a, %b720 %retval = select i1 %cmp, i1 true, i1 %cmp1721 ret i1 %retval722}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, %b730 %cmp1 = fcmp fast false double %a, %b731 %retval = select i1 %cmp, i1 true, i1 %cmp1732 ret i1 %retval733}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, %b741 %cmp1 = fcmp oeq double %a, %b742 %retval = or i1 %cmp, %cmp1743 ret i1 %retval744}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, %b752 %cmp1 = fcmp oeq double %a, %b753 %retval = select i1 %cmp, i1 true, i1 %cmp1754 ret i1 %retval755}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, %b763 %cmp1 = fcmp fast oeq double %a, %b764 %retval = select i1 %cmp, i1 true, i1 %cmp1765 ret i1 %retval766}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, %b774 %cmp1 = fcmp ogt double %a, %b775 %retval = or i1 %cmp, %cmp1776 ret i1 %retval777}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, %b785 %cmp1 = fcmp ogt double %a, %b786 %retval = select i1 %cmp, i1 true, i1 %cmp1787 ret i1 %retval788}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 true793;794 %cmp = fcmp fast ole double %a, %b795 %cmp1 = fcmp fast ogt double %a, %b796 %retval = select i1 %cmp, i1 true, i1 %cmp1797 ret i1 %retval798}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, %b806 %cmp1 = fcmp oge double %a, %b807 %retval = or i1 %cmp, %cmp1808 ret i1 %retval809}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, %b817 %cmp1 = fcmp oge double %a, %b818 %retval = select i1 %cmp, i1 true, i1 %cmp1819 ret i1 %retval820}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, %b828 %cmp1 = fcmp fast oge double %a, %b829 %retval = select i1 %cmp, i1 true, i1 %cmp1830 ret i1 %retval831}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, %b839 %cmp1 = fcmp olt double %a, %b840 %retval = or i1 %cmp, %cmp1841 ret i1 %retval842}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, %b850 %cmp1 = fcmp olt double %a, %b851 %retval = select i1 %cmp, i1 true, i1 %cmp1852 ret i1 %retval853}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, %b861 %cmp1 = fcmp fast olt double %a, %b862 %retval = select i1 %cmp, i1 true, i1 %cmp1863 ret i1 %retval864}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, %b872 %cmp1 = fcmp ole double %a, %b873 %retval = or i1 %cmp, %cmp1874 ret i1 %retval875}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, %b883 %cmp1 = fcmp ole double %a, %b884 %retval = select i1 %cmp, i1 true, i1 %cmp1885 ret i1 %retval886}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, %b894 %cmp1 = fcmp fast ole double %a, %b895 %retval = select i1 %cmp, i1 true, i1 %cmp1896 ret i1 %retval897}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, %b905 %cmp1 = fcmp false double %a, %b906 %retval = or i1 %cmp, %cmp1907 ret i1 %retval908}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, %b916 %cmp1 = fcmp false double %a, %b917 %retval = select i1 %cmp, i1 true, i1 %cmp1918 ret i1 %retval919}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, %b927 %cmp1 = fcmp fast false double %a, %b928 %retval = select i1 %cmp, i1 true, i1 %cmp1929 ret i1 %retval930}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, %b938 %cmp1 = fcmp oeq double %a, %b939 %retval = or i1 %cmp, %cmp1940 ret i1 %retval941}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, %b949 %cmp1 = fcmp oeq double %a, %b950 %retval = select i1 %cmp, i1 true, i1 %cmp1951 ret i1 %retval952}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, %b960 %cmp1 = fcmp fast oeq double %a, %b961 %retval = select i1 %cmp, i1 true, i1 %cmp1962 ret i1 %retval963}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, %b971 %cmp1 = fcmp ogt double %a, %b972 %retval = or i1 %cmp, %cmp1973 ret i1 %retval974}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, %b982 %cmp1 = fcmp ogt double %a, %b983 %retval = select i1 %cmp, i1 true, i1 %cmp1984 ret i1 %retval985}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, %b993 %cmp1 = fcmp fast ogt double %a, %b994 %retval = select i1 %cmp, i1 true, i1 %cmp1995 ret i1 %retval996}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, %b1004 %cmp1 = fcmp oge double %a, %b1005 %retval = or i1 %cmp, %cmp11006 ret i1 %retval1007}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, %b1015 %cmp1 = fcmp oge double %a, %b1016 %retval = select i1 %cmp, i1 true, i1 %cmp11017 ret i1 %retval1018}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, %b1026 %cmp1 = fcmp fast oge double %a, %b1027 %retval = select i1 %cmp, i1 true, i1 %cmp11028 ret i1 %retval1029}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, %b1037 %cmp1 = fcmp olt double %a, %b1038 %retval = or i1 %cmp, %cmp11039 ret i1 %retval1040}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, %b1048 %cmp1 = fcmp olt double %a, %b1049 %retval = select i1 %cmp, i1 true, i1 %cmp11050 ret i1 %retval1051}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, %b1059 %cmp1 = fcmp fast olt double %a, %b1060 %retval = select i1 %cmp, i1 true, i1 %cmp11061 ret i1 %retval1062}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, %b1070 %cmp1 = fcmp ole double %a, %b1071 %retval = or i1 %cmp, %cmp11072 ret i1 %retval1073}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, %b1081 %cmp1 = fcmp ole double %a, %b1082 %retval = select i1 %cmp, i1 true, i1 %cmp11083 ret i1 %retval1084}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, %b1092 %cmp1 = fcmp fast ole double %a, %b1093 %retval = select i1 %cmp, i1 true, i1 %cmp11094 ret i1 %retval1095}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, %b1103 %cmp1 = fcmp one double %a, %b1104 %retval = or i1 %cmp, %cmp11105 ret i1 %retval1106}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, %b1114 %cmp1 = fcmp one double %a, %b1115 %retval = select i1 %cmp, i1 true, i1 %cmp11116 ret i1 %retval1117}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, %b1125 %cmp1 = fcmp fast one double %a, %b1126 %retval = select i1 %cmp, i1 true, i1 %cmp11127 ret i1 %retval1128}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, %b1136 %cmp1 = fcmp false double %a, %b1137 %retval = or i1 %cmp, %cmp11138 ret i1 %retval1139}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, %b1147 %cmp1 = fcmp false double %a, %b1148 %retval = select i1 %cmp, i1 true, i1 %cmp11149 ret i1 %retval1150}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, %b1158 %cmp1 = fcmp fast false double %a, %b1159 %retval = select i1 %cmp, i1 true, i1 %cmp11160 ret i1 %retval1161}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, %b1169 %cmp1 = fcmp oeq double %a, %b1170 %retval = or i1 %cmp, %cmp11171 ret i1 %retval1172}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, %b1180 %cmp1 = fcmp oeq double %a, %b1181 %retval = select i1 %cmp, i1 true, i1 %cmp11182 ret i1 %retval1183}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 true1188;1189 %cmp = fcmp fast ord double %a, %b1190 %cmp1 = fcmp fast oeq double %a, %b1191 %retval = select i1 %cmp, i1 true, i1 %cmp11192 ret i1 %retval1193}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, %b1201 %cmp1 = fcmp ogt double %a, %b1202 %retval = or i1 %cmp, %cmp11203 ret i1 %retval1204}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, %b1212 %cmp1 = fcmp ogt double %a, %b1213 %retval = select i1 %cmp, i1 true, i1 %cmp11214 ret i1 %retval1215}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, %b1223 %cmp1 = fcmp fast ogt double %a, %b1224 %retval = select i1 %cmp, i1 true, i1 %cmp11225 ret i1 %retval1226}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, %b1234 %cmp1 = fcmp oge double %a, %b1235 %retval = or i1 %cmp, %cmp11236 ret i1 %retval1237}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, %b1245 %cmp1 = fcmp oge double %a, %b1246 %retval = select i1 %cmp, i1 true, i1 %cmp11247 ret i1 %retval1248}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 true1253;1254 %cmp = fcmp fast ord double %a, %b1255 %cmp1 = fcmp fast oge double %a, %b1256 %retval = select i1 %cmp, i1 true, i1 %cmp11257 ret i1 %retval1258}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, %b1266 %cmp1 = fcmp olt double %a, %b1267 %retval = or i1 %cmp, %cmp11268 ret i1 %retval1269}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, %b1277 %cmp1 = fcmp olt double %a, %b1278 %retval = select i1 %cmp, i1 true, i1 %cmp11279 ret i1 %retval1280}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, %b1288 %cmp1 = fcmp fast olt double %a, %b1289 %retval = select i1 %cmp, i1 true, i1 %cmp11290 ret i1 %retval1291}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, %b1299 %cmp1 = fcmp ole double %a, %b1300 %retval = or i1 %cmp, %cmp11301 ret i1 %retval1302}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, %b1310 %cmp1 = fcmp ole double %a, %b1311 %retval = select i1 %cmp, i1 true, i1 %cmp11312 ret i1 %retval1313}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 true1318;1319 %cmp = fcmp fast ord double %a, %b1320 %cmp1 = fcmp fast ole double %a, %b1321 %retval = select i1 %cmp, i1 true, i1 %cmp11322 ret i1 %retval1323}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, %b1331 %cmp1 = fcmp one double %a, %b1332 %retval = or i1 %cmp, %cmp11333 ret i1 %retval1334}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, %b1342 %cmp1 = fcmp one double %a, %b1343 %retval = select i1 %cmp, i1 true, i1 %cmp11344 ret i1 %retval1345}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, %b1353 %cmp1 = fcmp fast one double %a, %b1354 %retval = select i1 %cmp, i1 true, i1 %cmp11355 ret i1 %retval1356}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, %b1364 %cmp1 = fcmp ord double %a, %b1365 %retval = or i1 %cmp, %cmp11366 ret i1 %retval1367}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, %b1375 %cmp1 = fcmp ord double %a, %b1376 %retval = select i1 %cmp, i1 true, i1 %cmp11377 ret i1 %retval1378}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 true1383;1384 %cmp = fcmp fast ord double %a, %b1385 %cmp1 = fcmp fast ord double %a, %b1386 %retval = select i1 %cmp, i1 true, i1 %cmp11387 ret i1 %retval1388}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, %b1396 %cmp1 = fcmp false double %a, %b1397 %retval = or i1 %cmp, %cmp11398 ret i1 %retval1399}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, %b1407 %cmp1 = fcmp false double %a, %b1408 %retval = select i1 %cmp, i1 true, i1 %cmp11409 ret i1 %retval1410}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, %b1418 %cmp1 = fcmp fast false double %a, %b1419 %retval = select i1 %cmp, i1 true, i1 %cmp11420 ret i1 %retval1421}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, %b1429 %cmp1 = fcmp oeq double %a, %b1430 %retval = or i1 %cmp, %cmp11431 ret i1 %retval1432}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, %b1440 %cmp1 = fcmp oeq double %a, %b1441 %retval = select i1 %cmp, i1 true, i1 %cmp11442 ret i1 %retval1443}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, %b1451 %cmp1 = fcmp fast oeq double %a, %b1452 %retval = select i1 %cmp, i1 true, i1 %cmp11453 ret i1 %retval1454}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, %b1462 %cmp1 = fcmp ogt double %a, %b1463 %retval = or i1 %cmp, %cmp11464 ret i1 %retval1465}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, %b1473 %cmp1 = fcmp ogt double %a, %b1474 %retval = select i1 %cmp, i1 true, i1 %cmp11475 ret i1 %retval1476}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, %b1484 %cmp1 = fcmp fast ogt double %a, %b1485 %retval = select i1 %cmp, i1 true, i1 %cmp11486 ret i1 %retval1487}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, %b1495 %cmp1 = fcmp oge double %a, %b1496 %retval = or i1 %cmp, %cmp11497 ret i1 %retval1498}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, %b1506 %cmp1 = fcmp oge double %a, %b1507 %retval = select i1 %cmp, i1 true, i1 %cmp11508 ret i1 %retval1509}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, %b1517 %cmp1 = fcmp fast oge double %a, %b1518 %retval = select i1 %cmp, i1 true, i1 %cmp11519 ret i1 %retval1520}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, %b1528 %cmp1 = fcmp olt double %a, %b1529 %retval = or i1 %cmp, %cmp11530 ret i1 %retval1531}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, %b1539 %cmp1 = fcmp olt double %a, %b1540 %retval = select i1 %cmp, i1 true, i1 %cmp11541 ret i1 %retval1542}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, %b1550 %cmp1 = fcmp fast olt double %a, %b1551 %retval = select i1 %cmp, i1 true, i1 %cmp11552 ret i1 %retval1553}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, %b1561 %cmp1 = fcmp ole double %a, %b1562 %retval = or i1 %cmp, %cmp11563 ret i1 %retval1564}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, %b1572 %cmp1 = fcmp ole double %a, %b1573 %retval = select i1 %cmp, i1 true, i1 %cmp11574 ret i1 %retval1575}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, %b1583 %cmp1 = fcmp fast ole double %a, %b1584 %retval = select i1 %cmp, i1 true, i1 %cmp11585 ret i1 %retval1586}1587 1588define i1 @auto_gen_42(double %a, double %b) {1589; CHECK-LABEL: @auto_gen_42(1590; CHECK-NEXT: ret i1 true1591;1592 %cmp = fcmp ueq double %a, %b1593 %cmp1 = fcmp one double %a, %b1594 %retval = or i1 %cmp, %cmp11595 ret i1 %retval1596}1597 1598define i1 @auto_gen_42_logical(double %a, double %b) {1599; CHECK-LABEL: @auto_gen_42_logical(1600; CHECK-NEXT: ret i1 true1601;1602 %cmp = fcmp ueq double %a, %b1603 %cmp1 = fcmp one double %a, %b1604 %retval = select i1 %cmp, i1 true, i1 %cmp11605 ret i1 %retval1606}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 true1611;1612 %cmp = fcmp ueq double %a, %b1613 %cmp1 = fcmp fast one double %a, %b1614 %retval = select i1 %cmp, i1 true, i1 %cmp11615 ret i1 %retval1616}1617 1618define i1 @auto_gen_43(double %a, double %b) {1619; CHECK-LABEL: @auto_gen_43(1620; CHECK-NEXT: ret i1 true1621;1622 %cmp = fcmp ueq double %a, %b1623 %cmp1 = fcmp ord double %a, %b1624 %retval = or i1 %cmp, %cmp11625 ret i1 %retval1626}1627 1628define i1 @auto_gen_43_logical(double %a, double %b) {1629; CHECK-LABEL: @auto_gen_43_logical(1630; CHECK-NEXT: ret i1 true1631;1632 %cmp = fcmp ueq double %a, %b1633 %cmp1 = fcmp ord double %a, %b1634 %retval = select i1 %cmp, i1 true, i1 %cmp11635 ret i1 %retval1636}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 true1641;1642 %cmp = fcmp fast ueq double %a, %b1643 %cmp1 = fcmp fast ord double %a, %b1644 %retval = select i1 %cmp, i1 true, i1 %cmp11645 ret i1 %retval1646}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, %b1654 %cmp1 = fcmp ueq double %a, %b1655 %retval = or i1 %cmp, %cmp11656 ret i1 %retval1657}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, %b1665 %cmp1 = fcmp ueq double %a, %b1666 %retval = select i1 %cmp, i1 true, i1 %cmp11667 ret i1 %retval1668}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, %b1676 %cmp1 = fcmp fast ueq double %a, %b1677 %retval = select i1 %cmp, i1 true, i1 %cmp11678 ret i1 %retval1679}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, %b1687 %cmp1 = fcmp false double %a, %b1688 %retval = or i1 %cmp, %cmp11689 ret i1 %retval1690}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, %b1698 %cmp1 = fcmp false double %a, %b1699 %retval = select i1 %cmp, i1 true, i1 %cmp11700 ret i1 %retval1701}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, %b1709 %cmp1 = fcmp fast false double %a, %b1710 %retval = select i1 %cmp, i1 true, i1 %cmp11711 ret i1 %retval1712}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, %b1720 %cmp1 = fcmp oeq double %a, %b1721 %retval = or i1 %cmp, %cmp11722 ret i1 %retval1723}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, %b1731 %cmp1 = fcmp oeq double %a, %b1732 %retval = select i1 %cmp, i1 true, i1 %cmp11733 ret i1 %retval1734}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, %b1742 %cmp1 = fcmp fast oeq double %a, %b1743 %retval = select i1 %cmp, i1 true, i1 %cmp11744 ret i1 %retval1745}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, %b1753 %cmp1 = fcmp ogt double %a, %b1754 %retval = or i1 %cmp, %cmp11755 ret i1 %retval1756}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, %b1764 %cmp1 = fcmp ogt double %a, %b1765 %retval = select i1 %cmp, i1 true, i1 %cmp11766 ret i1 %retval1767}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, %b1775 %cmp1 = fcmp fast ogt double %a, %b1776 %retval = select i1 %cmp, i1 true, i1 %cmp11777 ret i1 %retval1778}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, %b1786 %cmp1 = fcmp oge double %a, %b1787 %retval = or i1 %cmp, %cmp11788 ret i1 %retval1789}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, %b1797 %cmp1 = fcmp oge double %a, %b1798 %retval = select i1 %cmp, i1 true, i1 %cmp11799 ret i1 %retval1800}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, %b1808 %cmp1 = fcmp fast oge double %a, %b1809 %retval = select i1 %cmp, i1 true, i1 %cmp11810 ret i1 %retval1811}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, %b1819 %cmp1 = fcmp olt double %a, %b1820 %retval = or i1 %cmp, %cmp11821 ret i1 %retval1822}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, %b1830 %cmp1 = fcmp olt double %a, %b1831 %retval = select i1 %cmp, i1 true, i1 %cmp11832 ret i1 %retval1833}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, %b1841 %cmp1 = fcmp fast olt double %a, %b1842 %retval = select i1 %cmp, i1 true, i1 %cmp11843 ret i1 %retval1844}1845 1846define i1 @auto_gen_50(double %a, double %b) {1847; CHECK-LABEL: @auto_gen_50(1848; CHECK-NEXT: ret i1 true1849;1850 %cmp = fcmp ugt double %a, %b1851 %cmp1 = fcmp ole double %a, %b1852 %retval = or i1 %cmp, %cmp11853 ret i1 %retval1854}1855 1856define i1 @auto_gen_50_logical(double %a, double %b) {1857; CHECK-LABEL: @auto_gen_50_logical(1858; CHECK-NEXT: ret i1 true1859;1860 %cmp = fcmp ugt double %a, %b1861 %cmp1 = fcmp ole double %a, %b1862 %retval = select i1 %cmp, i1 true, i1 %cmp11863 ret i1 %retval1864}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 true1869;1870 %cmp = fcmp ugt double %a, %b1871 %cmp1 = fcmp fast ole double %a, %b1872 %retval = select i1 %cmp, i1 true, i1 %cmp11873 ret i1 %retval1874}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, %b1882 %cmp1 = fcmp one double %a, %b1883 %retval = or i1 %cmp, %cmp11884 ret i1 %retval1885}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, %b1893 %cmp1 = fcmp one double %a, %b1894 %retval = select i1 %cmp, i1 true, i1 %cmp11895 ret i1 %retval1896}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, %b1904 %cmp1 = fcmp fast one double %a, %b1905 %retval = select i1 %cmp, i1 true, i1 %cmp11906 ret i1 %retval1907}1908 1909define i1 @auto_gen_52(double %a, double %b) {1910; CHECK-LABEL: @auto_gen_52(1911; CHECK-NEXT: ret i1 true1912;1913 %cmp = fcmp ugt double %a, %b1914 %cmp1 = fcmp ord double %a, %b1915 %retval = or i1 %cmp, %cmp11916 ret i1 %retval1917}1918 1919define i1 @auto_gen_52_logical(double %a, double %b) {1920; CHECK-LABEL: @auto_gen_52_logical(1921; CHECK-NEXT: ret i1 true1922;1923 %cmp = fcmp ugt double %a, %b1924 %cmp1 = fcmp ord double %a, %b1925 %retval = select i1 %cmp, i1 true, i1 %cmp11926 ret i1 %retval1927}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 true1932;1933 %cmp = fcmp ugt double %a, %b1934 %cmp1 = fcmp fast ord double %a, %b1935 %retval = select i1 %cmp, i1 true, i1 %cmp11936 ret i1 %retval1937}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, %b1945 %cmp1 = fcmp ueq double %a, %b1946 %retval = or i1 %cmp, %cmp11947 ret i1 %retval1948}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, %b1956 %cmp1 = fcmp ueq double %a, %b1957 %retval = select i1 %cmp, i1 true, i1 %cmp11958 ret i1 %retval1959}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, %b1967 %cmp1 = fcmp fast ueq double %a, %b1968 %retval = select i1 %cmp, i1 true, i1 %cmp11969 ret i1 %retval1970}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, %b1978 %cmp1 = fcmp ugt double %a, %b1979 %retval = or i1 %cmp, %cmp11980 ret i1 %retval1981}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, %b1989 %cmp1 = fcmp ugt double %a, %b1990 %retval = select i1 %cmp, i1 true, i1 %cmp11991 ret i1 %retval1992}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, %b2000 %cmp1 = fcmp fast ugt double %a, %b2001 %retval = select i1 %cmp, i1 true, i1 %cmp12002 ret i1 %retval2003}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, %b2011 %cmp1 = fcmp false double %a, %b2012 %retval = or i1 %cmp, %cmp12013 ret i1 %retval2014}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, %b2022 %cmp1 = fcmp false double %a, %b2023 %retval = select i1 %cmp, i1 true, i1 %cmp12024 ret i1 %retval2025}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, %b2033 %cmp1 = fcmp fast false double %a, %b2034 %retval = select i1 %cmp, i1 true, i1 %cmp12035 ret i1 %retval2036}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, %b2044 %cmp1 = fcmp oeq double %a, %b2045 %retval = or i1 %cmp, %cmp12046 ret i1 %retval2047}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, %b2055 %cmp1 = fcmp oeq double %a, %b2056 %retval = select i1 %cmp, i1 true, i1 %cmp12057 ret i1 %retval2058}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, %b2066 %cmp1 = fcmp fast oeq double %a, %b2067 %retval = select i1 %cmp, i1 true, i1 %cmp12068 ret i1 %retval2069}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, %b2077 %cmp1 = fcmp ogt double %a, %b2078 %retval = or i1 %cmp, %cmp12079 ret i1 %retval2080}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, %b2088 %cmp1 = fcmp ogt double %a, %b2089 %retval = select i1 %cmp, i1 true, i1 %cmp12090 ret i1 %retval2091}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, %b2099 %cmp1 = fcmp fast ogt double %a, %b2100 %retval = select i1 %cmp, i1 true, i1 %cmp12101 ret i1 %retval2102}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, %b2110 %cmp1 = fcmp oge double %a, %b2111 %retval = or i1 %cmp, %cmp12112 ret i1 %retval2113}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, %b2121 %cmp1 = fcmp oge double %a, %b2122 %retval = select i1 %cmp, i1 true, i1 %cmp12123 ret i1 %retval2124}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, %b2132 %cmp1 = fcmp fast oge double %a, %b2133 %retval = select i1 %cmp, i1 true, i1 %cmp12134 ret i1 %retval2135}2136 2137define i1 @auto_gen_59(double %a, double %b) {2138; CHECK-LABEL: @auto_gen_59(2139; CHECK-NEXT: ret i1 true2140;2141 %cmp = fcmp uge double %a, %b2142 %cmp1 = fcmp olt double %a, %b2143 %retval = or i1 %cmp, %cmp12144 ret i1 %retval2145}2146 2147define i1 @auto_gen_59_logical(double %a, double %b) {2148; CHECK-LABEL: @auto_gen_59_logical(2149; CHECK-NEXT: ret i1 true2150;2151 %cmp = fcmp uge double %a, %b2152 %cmp1 = fcmp olt double %a, %b2153 %retval = select i1 %cmp, i1 true, i1 %cmp12154 ret i1 %retval2155}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 true2160;2161 %cmp = fcmp fast uge double %a, %b2162 %cmp1 = fcmp fast olt double %a, %b2163 %retval = select i1 %cmp, i1 true, i1 %cmp12164 ret i1 %retval2165}2166 2167define i1 @auto_gen_60(double %a, double %b) {2168; CHECK-LABEL: @auto_gen_60(2169; CHECK-NEXT: ret i1 true2170;2171 %cmp = fcmp uge double %a, %b2172 %cmp1 = fcmp ole double %a, %b2173 %retval = or i1 %cmp, %cmp12174 ret i1 %retval2175}2176 2177define i1 @auto_gen_60_logical(double %a, double %b) {2178; CHECK-LABEL: @auto_gen_60_logical(2179; CHECK-NEXT: ret i1 true2180;2181 %cmp = fcmp uge double %a, %b2182 %cmp1 = fcmp ole double %a, %b2183 %retval = select i1 %cmp, i1 true, i1 %cmp12184 ret i1 %retval2185}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 true2190;2191 %cmp = fcmp uge double %a, %b2192 %cmp1 = fcmp fast ole double %a, %b2193 %retval = select i1 %cmp, i1 true, i1 %cmp12194 ret i1 %retval2195}2196 2197define i1 @auto_gen_61(double %a, double %b) {2198; CHECK-LABEL: @auto_gen_61(2199; CHECK-NEXT: ret i1 true2200;2201 %cmp = fcmp uge double %a, %b2202 %cmp1 = fcmp one double %a, %b2203 %retval = or i1 %cmp, %cmp12204 ret i1 %retval2205}2206 2207define i1 @auto_gen_61_logical(double %a, double %b) {2208; CHECK-LABEL: @auto_gen_61_logical(2209; CHECK-NEXT: ret i1 true2210;2211 %cmp = fcmp uge double %a, %b2212 %cmp1 = fcmp one double %a, %b2213 %retval = select i1 %cmp, i1 true, i1 %cmp12214 ret i1 %retval2215}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 true2220;2221 %cmp = fcmp fast uge double %a, %b2222 %cmp1 = fcmp fast one double %a, %b2223 %retval = select i1 %cmp, i1 true, i1 %cmp12224 ret i1 %retval2225}2226 2227define i1 @auto_gen_62(double %a, double %b) {2228; CHECK-LABEL: @auto_gen_62(2229; CHECK-NEXT: ret i1 true2230;2231 %cmp = fcmp uge double %a, %b2232 %cmp1 = fcmp ord double %a, %b2233 %retval = or i1 %cmp, %cmp12234 ret i1 %retval2235}2236 2237define i1 @auto_gen_62_logical(double %a, double %b) {2238; CHECK-LABEL: @auto_gen_62_logical(2239; CHECK-NEXT: ret i1 true2240;2241 %cmp = fcmp uge double %a, %b2242 %cmp1 = fcmp ord double %a, %b2243 %retval = select i1 %cmp, i1 true, i1 %cmp12244 ret i1 %retval2245}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 true2250;2251 %cmp = fcmp uge double %a, %b2252 %cmp1 = fcmp fast ord double %a, %b2253 %retval = select i1 %cmp, i1 true, i1 %cmp12254 ret i1 %retval2255}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, %b2263 %cmp1 = fcmp ueq double %a, %b2264 %retval = or i1 %cmp, %cmp12265 ret i1 %retval2266}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, %b2274 %cmp1 = fcmp ueq double %a, %b2275 %retval = select i1 %cmp, i1 true, i1 %cmp12276 ret i1 %retval2277}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, %b2285 %cmp1 = fcmp fast ueq double %a, %b2286 %retval = select i1 %cmp, i1 true, i1 %cmp12287 ret i1 %retval2288}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, %b2296 %cmp1 = fcmp ugt double %a, %b2297 %retval = or i1 %cmp, %cmp12298 ret i1 %retval2299}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, %b2307 %cmp1 = fcmp ugt double %a, %b2308 %retval = select i1 %cmp, i1 true, i1 %cmp12309 ret i1 %retval2310}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, %b2318 %cmp1 = fcmp fast ugt double %a, %b2319 %retval = select i1 %cmp, i1 true, i1 %cmp12320 ret i1 %retval2321}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, %b2329 %cmp1 = fcmp uge double %a, %b2330 %retval = or i1 %cmp, %cmp12331 ret i1 %retval2332}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, %b2340 %cmp1 = fcmp uge double %a, %b2341 %retval = select i1 %cmp, i1 true, i1 %cmp12342 ret i1 %retval2343}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, %b2351 %cmp1 = fcmp fast uge double %a, %b2352 %retval = select i1 %cmp, i1 true, i1 %cmp12353 ret i1 %retval2354}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, %b2362 %cmp1 = fcmp false double %a, %b2363 %retval = or i1 %cmp, %cmp12364 ret i1 %retval2365}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, %b2373 %cmp1 = fcmp false double %a, %b2374 %retval = select i1 %cmp, i1 true, i1 %cmp12375 ret i1 %retval2376}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, %b2384 %cmp1 = fcmp fast false double %a, %b2385 %retval = select i1 %cmp, i1 true, i1 %cmp12386 ret i1 %retval2387}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, %b2395 %cmp1 = fcmp oeq double %a, %b2396 %retval = or i1 %cmp, %cmp12397 ret i1 %retval2398}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, %b2406 %cmp1 = fcmp oeq double %a, %b2407 %retval = select i1 %cmp, i1 true, i1 %cmp12408 ret i1 %retval2409}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, %b2417 %cmp1 = fcmp fast oeq double %a, %b2418 %retval = select i1 %cmp, i1 true, i1 %cmp12419 ret i1 %retval2420}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, %b2428 %cmp1 = fcmp ogt double %a, %b2429 %retval = or i1 %cmp, %cmp12430 ret i1 %retval2431}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, %b2439 %cmp1 = fcmp ogt double %a, %b2440 %retval = select i1 %cmp, i1 true, i1 %cmp12441 ret i1 %retval2442}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, %b2450 %cmp1 = fcmp fast ogt double %a, %b2451 %retval = select i1 %cmp, i1 true, i1 %cmp12452 ret i1 %retval2453}2454 2455define i1 @auto_gen_69(double %a, double %b) {2456; CHECK-LABEL: @auto_gen_69(2457; CHECK-NEXT: ret i1 true2458;2459 %cmp = fcmp ult double %a, %b2460 %cmp1 = fcmp oge double %a, %b2461 %retval = or i1 %cmp, %cmp12462 ret i1 %retval2463}2464 2465define i1 @auto_gen_69_logical(double %a, double %b) {2466; CHECK-LABEL: @auto_gen_69_logical(2467; CHECK-NEXT: ret i1 true2468;2469 %cmp = fcmp ult double %a, %b2470 %cmp1 = fcmp oge double %a, %b2471 %retval = select i1 %cmp, i1 true, i1 %cmp12472 ret i1 %retval2473}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 true2478;2479 %cmp = fcmp fast ult double %a, %b2480 %cmp1 = fcmp fast oge double %a, %b2481 %retval = select i1 %cmp, i1 true, i1 %cmp12482 ret i1 %retval2483}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, %b2491 %cmp1 = fcmp olt double %a, %b2492 %retval = or i1 %cmp, %cmp12493 ret i1 %retval2494}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, %b2502 %cmp1 = fcmp olt double %a, %b2503 %retval = select i1 %cmp, i1 true, i1 %cmp12504 ret i1 %retval2505}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, %b2513 %cmp1 = fcmp fast olt double %a, %b2514 %retval = select i1 %cmp, i1 true, i1 %cmp12515 ret i1 %retval2516}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, %b2524 %cmp1 = fcmp ole double %a, %b2525 %retval = or i1 %cmp, %cmp12526 ret i1 %retval2527}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, %b2535 %cmp1 = fcmp ole double %a, %b2536 %retval = select i1 %cmp, i1 true, i1 %cmp12537 ret i1 %retval2538}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, %b2546 %cmp1 = fcmp fast ole double %a, %b2547 %retval = select i1 %cmp, i1 true, i1 %cmp12548 ret i1 %retval2549}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, %b2557 %cmp1 = fcmp one double %a, %b2558 %retval = or i1 %cmp, %cmp12559 ret i1 %retval2560}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, %b2568 %cmp1 = fcmp one double %a, %b2569 %retval = select i1 %cmp, i1 true, i1 %cmp12570 ret i1 %retval2571}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, %b2579 %cmp1 = fcmp fast one double %a, %b2580 %retval = select i1 %cmp, i1 true, i1 %cmp12581 ret i1 %retval2582}2583 2584define i1 @auto_gen_73(double %a, double %b) {2585; CHECK-LABEL: @auto_gen_73(2586; CHECK-NEXT: ret i1 true2587;2588 %cmp = fcmp ult double %a, %b2589 %cmp1 = fcmp ord double %a, %b2590 %retval = or i1 %cmp, %cmp12591 ret i1 %retval2592}2593 2594define i1 @auto_gen_73_logical(double %a, double %b) {2595; CHECK-LABEL: @auto_gen_73_logical(2596; CHECK-NEXT: ret i1 true2597;2598 %cmp = fcmp ult double %a, %b2599 %cmp1 = fcmp ord double %a, %b2600 %retval = select i1 %cmp, i1 true, i1 %cmp12601 ret i1 %retval2602}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 true2607;2608 %cmp = fcmp fast ult double %a, %b2609 %cmp1 = fcmp fast ord double %a, %b2610 %retval = select i1 %cmp, i1 true, i1 %cmp12611 ret i1 %retval2612}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, %b2620 %cmp1 = fcmp ueq double %a, %b2621 %retval = or i1 %cmp, %cmp12622 ret i1 %retval2623}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, %b2631 %cmp1 = fcmp ueq double %a, %b2632 %retval = select i1 %cmp, i1 true, i1 %cmp12633 ret i1 %retval2634}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, %b2642 %cmp1 = fcmp fast ueq double %a, %b2643 %retval = select i1 %cmp, i1 true, i1 %cmp12644 ret i1 %retval2645}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, %b2653 %cmp1 = fcmp ugt double %a, %b2654 %retval = or i1 %cmp, %cmp12655 ret i1 %retval2656}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, %b2664 %cmp1 = fcmp ugt double %a, %b2665 %retval = select i1 %cmp, i1 true, i1 %cmp12666 ret i1 %retval2667}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, %b2675 %cmp1 = fcmp fast ugt double %a, %b2676 %retval = select i1 %cmp, i1 true, i1 %cmp12677 ret i1 %retval2678}2679 2680define i1 @auto_gen_76(double %a, double %b) {2681; CHECK-LABEL: @auto_gen_76(2682; CHECK-NEXT: ret i1 true2683;2684 %cmp = fcmp ult double %a, %b2685 %cmp1 = fcmp uge double %a, %b2686 %retval = or i1 %cmp, %cmp12687 ret i1 %retval2688}2689 2690define i1 @auto_gen_76_logical(double %a, double %b) {2691; CHECK-LABEL: @auto_gen_76_logical(2692; CHECK-NEXT: ret i1 true2693;2694 %cmp = fcmp ult double %a, %b2695 %cmp1 = fcmp uge double %a, %b2696 %retval = select i1 %cmp, i1 true, i1 %cmp12697 ret i1 %retval2698}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 true2703;2704 %cmp = fcmp ult double %a, %b2705 %cmp1 = fcmp fast uge double %a, %b2706 %retval = select i1 %cmp, i1 true, i1 %cmp12707 ret i1 %retval2708}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, %b2716 %cmp1 = fcmp ult double %a, %b2717 %retval = or i1 %cmp, %cmp12718 ret i1 %retval2719}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, %b2727 %cmp1 = fcmp ult double %a, %b2728 %retval = select i1 %cmp, i1 true, i1 %cmp12729 ret i1 %retval2730}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, %b2738 %cmp1 = fcmp fast ult double %a, %b2739 %retval = select i1 %cmp, i1 true, i1 %cmp12740 ret i1 %retval2741}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, %b2749 %cmp1 = fcmp false double %a, %b2750 %retval = or i1 %cmp, %cmp12751 ret i1 %retval2752}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, %b2760 %cmp1 = fcmp false double %a, %b2761 %retval = select i1 %cmp, i1 true, i1 %cmp12762 ret i1 %retval2763}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, %b2771 %cmp1 = fcmp fast false double %a, %b2772 %retval = select i1 %cmp, i1 true, i1 %cmp12773 ret i1 %retval2774}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, %b2782 %cmp1 = fcmp oeq double %a, %b2783 %retval = or i1 %cmp, %cmp12784 ret i1 %retval2785}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, %b2793 %cmp1 = fcmp oeq double %a, %b2794 %retval = select i1 %cmp, i1 true, i1 %cmp12795 ret i1 %retval2796}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, %b2804 %cmp1 = fcmp fast oeq double %a, %b2805 %retval = select i1 %cmp, i1 true, i1 %cmp12806 ret i1 %retval2807}2808 2809define i1 @auto_gen_80(double %a, double %b) {2810; CHECK-LABEL: @auto_gen_80(2811; CHECK-NEXT: ret i1 true2812;2813 %cmp = fcmp ule double %a, %b2814 %cmp1 = fcmp ogt double %a, %b2815 %retval = or i1 %cmp, %cmp12816 ret i1 %retval2817}2818 2819define i1 @auto_gen_80_logical(double %a, double %b) {2820; CHECK-LABEL: @auto_gen_80_logical(2821; CHECK-NEXT: ret i1 true2822;2823 %cmp = fcmp ule double %a, %b2824 %cmp1 = fcmp ogt double %a, %b2825 %retval = select i1 %cmp, i1 true, i1 %cmp12826 ret i1 %retval2827}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 true2832;2833 %cmp = fcmp ule double %a, %b2834 %cmp1 = fcmp fast ogt double %a, %b2835 %retval = select i1 %cmp, i1 true, i1 %cmp12836 ret i1 %retval2837}2838 2839define i1 @auto_gen_81(double %a, double %b) {2840; CHECK-LABEL: @auto_gen_81(2841; CHECK-NEXT: ret i1 true2842;2843 %cmp = fcmp ule double %a, %b2844 %cmp1 = fcmp oge double %a, %b2845 %retval = or i1 %cmp, %cmp12846 ret i1 %retval2847}2848 2849define i1 @auto_gen_81_logical(double %a, double %b) {2850; CHECK-LABEL: @auto_gen_81_logical(2851; CHECK-NEXT: ret i1 true2852;2853 %cmp = fcmp ule double %a, %b2854 %cmp1 = fcmp oge double %a, %b2855 %retval = select i1 %cmp, i1 true, i1 %cmp12856 ret i1 %retval2857}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 true2862;2863 %cmp = fcmp fast ule double %a, %b2864 %cmp1 = fcmp fast oge double %a, %b2865 %retval = select i1 %cmp, i1 true, i1 %cmp12866 ret i1 %retval2867}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, %b2875 %cmp1 = fcmp olt double %a, %b2876 %retval = or i1 %cmp, %cmp12877 ret i1 %retval2878}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, %b2886 %cmp1 = fcmp olt double %a, %b2887 %retval = select i1 %cmp, i1 true, i1 %cmp12888 ret i1 %retval2889}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, %b2897 %cmp1 = fcmp fast olt double %a, %b2898 %retval = select i1 %cmp, i1 true, i1 %cmp12899 ret i1 %retval2900}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, %b2908 %cmp1 = fcmp ole double %a, %b2909 %retval = or i1 %cmp, %cmp12910 ret i1 %retval2911}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, %b2919 %cmp1 = fcmp ole double %a, %b2920 %retval = select i1 %cmp, i1 true, i1 %cmp12921 ret i1 %retval2922}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, %b2930 %cmp1 = fcmp fast ole double %a, %b2931 %retval = select i1 %cmp, i1 true, i1 %cmp12932 ret i1 %retval2933}2934 2935define i1 @auto_gen_84(double %a, double %b) {2936; CHECK-LABEL: @auto_gen_84(2937; CHECK-NEXT: ret i1 true2938;2939 %cmp = fcmp ule double %a, %b2940 %cmp1 = fcmp one double %a, %b2941 %retval = or i1 %cmp, %cmp12942 ret i1 %retval2943}2944 2945define i1 @auto_gen_84_logical(double %a, double %b) {2946; CHECK-LABEL: @auto_gen_84_logical(2947; CHECK-NEXT: ret i1 true2948;2949 %cmp = fcmp ule double %a, %b2950 %cmp1 = fcmp one double %a, %b2951 %retval = select i1 %cmp, i1 true, i1 %cmp12952 ret i1 %retval2953}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 true2958;2959 %cmp = fcmp ule double %a, %b2960 %cmp1 = fcmp fast one double %a, %b2961 %retval = select i1 %cmp, i1 true, i1 %cmp12962 ret i1 %retval2963}2964 2965define i1 @auto_gen_85(double %a, double %b) {2966; CHECK-LABEL: @auto_gen_85(2967; CHECK-NEXT: ret i1 true2968;2969 %cmp = fcmp ule double %a, %b2970 %cmp1 = fcmp ord double %a, %b2971 %retval = or i1 %cmp, %cmp12972 ret i1 %retval2973}2974 2975define i1 @auto_gen_85_logical(double %a, double %b) {2976; CHECK-LABEL: @auto_gen_85_logical(2977; CHECK-NEXT: ret i1 true2978;2979 %cmp = fcmp ule double %a, %b2980 %cmp1 = fcmp ord double %a, %b2981 %retval = select i1 %cmp, i1 true, i1 %cmp12982 ret i1 %retval2983}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 true2988;2989 %cmp = fcmp fast ule double %a, %b2990 %cmp1 = fcmp fast ord double %a, %b2991 %retval = select i1 %cmp, i1 true, i1 %cmp12992 ret i1 %retval2993}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, %b3001 %cmp1 = fcmp ueq double %a, %b3002 %retval = or i1 %cmp, %cmp13003 ret i1 %retval3004}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, %b3012 %cmp1 = fcmp ueq double %a, %b3013 %retval = select i1 %cmp, i1 true, i1 %cmp13014 ret i1 %retval3015}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, %b3023 %cmp1 = fcmp fast ueq double %a, %b3024 %retval = select i1 %cmp, i1 true, i1 %cmp13025 ret i1 %retval3026}3027 3028define i1 @auto_gen_87(double %a, double %b) {3029; CHECK-LABEL: @auto_gen_87(3030; CHECK-NEXT: ret i1 true3031;3032 %cmp = fcmp ule double %a, %b3033 %cmp1 = fcmp ugt double %a, %b3034 %retval = or i1 %cmp, %cmp13035 ret i1 %retval3036}3037 3038define i1 @auto_gen_87_logical(double %a, double %b) {3039; CHECK-LABEL: @auto_gen_87_logical(3040; CHECK-NEXT: ret i1 true3041;3042 %cmp = fcmp ule double %a, %b3043 %cmp1 = fcmp ugt double %a, %b3044 %retval = select i1 %cmp, i1 true, i1 %cmp13045 ret i1 %retval3046}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 true3051;3052 %cmp = fcmp fast ule double %a, %b3053 %cmp1 = fcmp fast ugt double %a, %b3054 %retval = select i1 %cmp, i1 true, i1 %cmp13055 ret i1 %retval3056}3057 3058define i1 @auto_gen_88(double %a, double %b) {3059; CHECK-LABEL: @auto_gen_88(3060; CHECK-NEXT: ret i1 true3061;3062 %cmp = fcmp ule double %a, %b3063 %cmp1 = fcmp uge double %a, %b3064 %retval = or i1 %cmp, %cmp13065 ret i1 %retval3066}3067 3068define i1 @auto_gen_88_logical(double %a, double %b) {3069; CHECK-LABEL: @auto_gen_88_logical(3070; CHECK-NEXT: ret i1 true3071;3072 %cmp = fcmp ule double %a, %b3073 %cmp1 = fcmp uge double %a, %b3074 %retval = select i1 %cmp, i1 true, i1 %cmp13075 ret i1 %retval3076}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 true3081;3082 %cmp = fcmp ule double %a, %b3083 %cmp1 = fcmp fast uge double %a, %b3084 %retval = select i1 %cmp, i1 true, i1 %cmp13085 ret i1 %retval3086}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, %b3094 %cmp1 = fcmp ult double %a, %b3095 %retval = or i1 %cmp, %cmp13096 ret i1 %retval3097}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, %b3105 %cmp1 = fcmp ult double %a, %b3106 %retval = select i1 %cmp, i1 true, i1 %cmp13107 ret i1 %retval3108}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, %b3116 %cmp1 = fcmp fast ult double %a, %b3117 %retval = select i1 %cmp, i1 true, i1 %cmp13118 ret i1 %retval3119}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, %b3127 %cmp1 = fcmp ule double %a, %b3128 %retval = or i1 %cmp, %cmp13129 ret i1 %retval3130}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, %b3138 %cmp1 = fcmp ule double %a, %b3139 %retval = select i1 %cmp, i1 true, i1 %cmp13140 ret i1 %retval3141}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, %b3149 %cmp1 = fcmp fast ule double %a, %b3150 %retval = select i1 %cmp, i1 true, i1 %cmp13151 ret i1 %retval3152}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, %b3160 %cmp1 = fcmp false double %a, %b3161 %retval = or i1 %cmp, %cmp13162 ret i1 %retval3163}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, %b3171 %cmp1 = fcmp false double %a, %b3172 %retval = select i1 %cmp, i1 true, i1 %cmp13173 ret i1 %retval3174}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, %b3182 %cmp1 = fcmp fast false double %a, %b3183 %retval = select i1 %cmp, i1 true, i1 %cmp13184 ret i1 %retval3185}3186 3187define i1 @auto_gen_92(double %a, double %b) {3188; CHECK-LABEL: @auto_gen_92(3189; CHECK-NEXT: ret i1 true3190;3191 %cmp = fcmp une double %a, %b3192 %cmp1 = fcmp oeq double %a, %b3193 %retval = or i1 %cmp, %cmp13194 ret i1 %retval3195}3196 3197define i1 @auto_gen_92_logical(double %a, double %b) {3198; CHECK-LABEL: @auto_gen_92_logical(3199; CHECK-NEXT: ret i1 true3200;3201 %cmp = fcmp une double %a, %b3202 %cmp1 = fcmp oeq double %a, %b3203 %retval = select i1 %cmp, i1 true, i1 %cmp13204 ret i1 %retval3205}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 true3210;3211 %cmp = fcmp une double %a, %b3212 %cmp1 = fcmp fast oeq double %a, %b3213 %retval = select i1 %cmp, i1 true, i1 %cmp13214 ret i1 %retval3215}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, %b3223 %cmp1 = fcmp ogt double %a, %b3224 %retval = or i1 %cmp, %cmp13225 ret i1 %retval3226}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, %b3234 %cmp1 = fcmp ogt double %a, %b3235 %retval = select i1 %cmp, i1 true, i1 %cmp13236 ret i1 %retval3237}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, %b3245 %cmp1 = fcmp fast ogt double %a, %b3246 %retval = select i1 %cmp, i1 true, i1 %cmp13247 ret i1 %retval3248}3249 3250define i1 @auto_gen_94(double %a, double %b) {3251; CHECK-LABEL: @auto_gen_94(3252; CHECK-NEXT: ret i1 true3253;3254 %cmp = fcmp une double %a, %b3255 %cmp1 = fcmp oge double %a, %b3256 %retval = or i1 %cmp, %cmp13257 ret i1 %retval3258}3259 3260define i1 @auto_gen_94_logical(double %a, double %b) {3261; CHECK-LABEL: @auto_gen_94_logical(3262; CHECK-NEXT: ret i1 true3263;3264 %cmp = fcmp une double %a, %b3265 %cmp1 = fcmp oge double %a, %b3266 %retval = select i1 %cmp, i1 true, i1 %cmp13267 ret i1 %retval3268}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 true3273;3274 %cmp = fcmp une double %a, %b3275 %cmp1 = fcmp fast oge double %a, %b3276 %retval = select i1 %cmp, i1 true, i1 %cmp13277 ret i1 %retval3278}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, %b3286 %cmp1 = fcmp olt double %a, %b3287 %retval = or i1 %cmp, %cmp13288 ret i1 %retval3289}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, %b3297 %cmp1 = fcmp olt double %a, %b3298 %retval = select i1 %cmp, i1 true, i1 %cmp13299 ret i1 %retval3300}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, %b3308 %cmp1 = fcmp fast olt double %a, %b3309 %retval = select i1 %cmp, i1 true, i1 %cmp13310 ret i1 %retval3311}3312 3313define i1 @auto_gen_96(double %a, double %b) {3314; CHECK-LABEL: @auto_gen_96(3315; CHECK-NEXT: ret i1 true3316;3317 %cmp = fcmp une double %a, %b3318 %cmp1 = fcmp ole double %a, %b3319 %retval = or i1 %cmp, %cmp13320 ret i1 %retval3321}3322 3323define i1 @auto_gen_96_logical(double %a, double %b) {3324; CHECK-LABEL: @auto_gen_96_logical(3325; CHECK-NEXT: ret i1 true3326;3327 %cmp = fcmp une double %a, %b3328 %cmp1 = fcmp ole double %a, %b3329 %retval = select i1 %cmp, i1 true, i1 %cmp13330 ret i1 %retval3331}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 true3336;3337 %cmp = fcmp une double %a, %b3338 %cmp1 = fcmp fast ole double %a, %b3339 %retval = select i1 %cmp, i1 true, i1 %cmp13340 ret i1 %retval3341}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, %b3349 %cmp1 = fcmp one double %a, %b3350 %retval = or i1 %cmp, %cmp13351 ret i1 %retval3352}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, %b3360 %cmp1 = fcmp one double %a, %b3361 %retval = select i1 %cmp, i1 true, i1 %cmp13362 ret i1 %retval3363}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, %b3371 %cmp1 = fcmp fast one double %a, %b3372 %retval = select i1 %cmp, i1 true, i1 %cmp13373 ret i1 %retval3374}3375 3376define i1 @auto_gen_98(double %a, double %b) {3377; CHECK-LABEL: @auto_gen_98(3378; CHECK-NEXT: ret i1 true3379;3380 %cmp = fcmp une double %a, %b3381 %cmp1 = fcmp ord double %a, %b3382 %retval = or i1 %cmp, %cmp13383 ret i1 %retval3384}3385 3386define i1 @auto_gen_98_logical(double %a, double %b) {3387; CHECK-LABEL: @auto_gen_98_logical(3388; CHECK-NEXT: ret i1 true3389;3390 %cmp = fcmp une double %a, %b3391 %cmp1 = fcmp ord double %a, %b3392 %retval = select i1 %cmp, i1 true, i1 %cmp13393 ret i1 %retval3394}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 true3399;3400 %cmp = fcmp une double %a, %b3401 %cmp1 = fcmp fast ord double %a, %b3402 %retval = select i1 %cmp, i1 true, i1 %cmp13403 ret i1 %retval3404}3405 3406define i1 @auto_gen_99(double %a, double %b) {3407; CHECK-LABEL: @auto_gen_99(3408; CHECK-NEXT: ret i1 true3409;3410 %cmp = fcmp une double %a, %b3411 %cmp1 = fcmp ueq double %a, %b3412 %retval = or i1 %cmp, %cmp13413 ret i1 %retval3414}3415 3416define i1 @auto_gen_99_logical(double %a, double %b) {3417; CHECK-LABEL: @auto_gen_99_logical(3418; CHECK-NEXT: ret i1 true3419;3420 %cmp = fcmp une double %a, %b3421 %cmp1 = fcmp ueq double %a, %b3422 %retval = select i1 %cmp, i1 true, i1 %cmp13423 ret i1 %retval3424}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 true3429;3430 %cmp = fcmp fast une double %a, %b3431 %cmp1 = fcmp fast ueq double %a, %b3432 %retval = select i1 %cmp, i1 true, i1 %cmp13433 ret i1 %retval3434}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, %b3442 %cmp1 = fcmp ugt double %a, %b3443 %retval = or i1 %cmp, %cmp13444 ret i1 %retval3445}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, %b3453 %cmp1 = fcmp ugt double %a, %b3454 %retval = select i1 %cmp, i1 true, i1 %cmp13455 ret i1 %retval3456}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, %b3464 %cmp1 = fcmp fast ugt double %a, %b3465 %retval = select i1 %cmp, i1 true, i1 %cmp13466 ret i1 %retval3467}3468 3469define i1 @auto_gen_101(double %a, double %b) {3470; CHECK-LABEL: @auto_gen_101(3471; CHECK-NEXT: ret i1 true3472;3473 %cmp = fcmp une double %a, %b3474 %cmp1 = fcmp uge double %a, %b3475 %retval = or i1 %cmp, %cmp13476 ret i1 %retval3477}3478 3479define i1 @auto_gen_101_logical(double %a, double %b) {3480; CHECK-LABEL: @auto_gen_101_logical(3481; CHECK-NEXT: ret i1 true3482;3483 %cmp = fcmp une double %a, %b3484 %cmp1 = fcmp uge double %a, %b3485 %retval = select i1 %cmp, i1 true, i1 %cmp13486 ret i1 %retval3487}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 true3492;3493 %cmp = fcmp fast une double %a, %b3494 %cmp1 = fcmp fast uge double %a, %b3495 %retval = select i1 %cmp, i1 true, i1 %cmp13496 ret i1 %retval3497}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, %b3505 %cmp1 = fcmp ult double %a, %b3506 %retval = or i1 %cmp, %cmp13507 ret i1 %retval3508}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, %b3516 %cmp1 = fcmp ult double %a, %b3517 %retval = select i1 %cmp, i1 true, i1 %cmp13518 ret i1 %retval3519}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, %b3527 %cmp1 = fcmp fast ult double %a, %b3528 %retval = select i1 %cmp, i1 true, i1 %cmp13529 ret i1 %retval3530}3531 3532define i1 @auto_gen_103(double %a, double %b) {3533; CHECK-LABEL: @auto_gen_103(3534; CHECK-NEXT: ret i1 true3535;3536 %cmp = fcmp une double %a, %b3537 %cmp1 = fcmp ule double %a, %b3538 %retval = or i1 %cmp, %cmp13539 ret i1 %retval3540}3541 3542define i1 @auto_gen_103_logical(double %a, double %b) {3543; CHECK-LABEL: @auto_gen_103_logical(3544; CHECK-NEXT: ret i1 true3545;3546 %cmp = fcmp une double %a, %b3547 %cmp1 = fcmp ule double %a, %b3548 %retval = select i1 %cmp, i1 true, i1 %cmp13549 ret i1 %retval3550}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 true3555;3556 %cmp = fcmp fast une double %a, %b3557 %cmp1 = fcmp fast ule double %a, %b3558 %retval = select i1 %cmp, i1 true, i1 %cmp13559 ret i1 %retval3560}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, %b3568 %cmp1 = fcmp une double %a, %b3569 %retval = or i1 %cmp, %cmp13570 ret i1 %retval3571}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, %b3579 %cmp1 = fcmp une double %a, %b3580 %retval = select i1 %cmp, i1 true, i1 %cmp13581 ret i1 %retval3582}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, %b3590 %cmp1 = fcmp fast une double %a, %b3591 %retval = select i1 %cmp, i1 true, i1 %cmp13592 ret i1 %retval3593}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, %b3601 %cmp1 = fcmp false double %a, %b3602 %retval = or i1 %cmp, %cmp13603 ret i1 %retval3604}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, %b3612 %cmp1 = fcmp false double %a, %b3613 %retval = select i1 %cmp, i1 true, i1 %cmp13614 ret i1 %retval3615}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 false3620;3621 %cmp = fcmp fast uno double %a, %b3622 %cmp1 = fcmp fast false double %a, %b3623 %retval = select i1 %cmp, i1 true, i1 %cmp13624 ret i1 %retval3625}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, %b3633 %cmp1 = fcmp oeq double %a, %b3634 %retval = or i1 %cmp, %cmp13635 ret i1 %retval3636}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, %b3644 %cmp1 = fcmp oeq double %a, %b3645 %retval = select i1 %cmp, i1 true, i1 %cmp13646 ret i1 %retval3647}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, %b3655 %cmp1 = fcmp fast oeq double %a, %b3656 %retval = select i1 %cmp, i1 true, i1 %cmp13657 ret i1 %retval3658}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, %b3666 %cmp1 = fcmp ogt double %a, %b3667 %retval = or i1 %cmp, %cmp13668 ret i1 %retval3669}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, %b3677 %cmp1 = fcmp ogt double %a, %b3678 %retval = select i1 %cmp, i1 true, i1 %cmp13679 ret i1 %retval3680}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, %b3688 %cmp1 = fcmp fast ogt double %a, %b3689 %retval = select i1 %cmp, i1 true, i1 %cmp13690 ret i1 %retval3691}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, %b3699 %cmp1 = fcmp oge double %a, %b3700 %retval = or i1 %cmp, %cmp13701 ret i1 %retval3702}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, %b3710 %cmp1 = fcmp oge double %a, %b3711 %retval = select i1 %cmp, i1 true, i1 %cmp13712 ret i1 %retval3713}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, %b3721 %cmp1 = fcmp fast oge double %a, %b3722 %retval = select i1 %cmp, i1 true, i1 %cmp13723 ret i1 %retval3724}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, %b3732 %cmp1 = fcmp olt double %a, %b3733 %retval = or i1 %cmp, %cmp13734 ret i1 %retval3735}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, %b3743 %cmp1 = fcmp olt double %a, %b3744 %retval = select i1 %cmp, i1 true, i1 %cmp13745 ret i1 %retval3746}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, %b3754 %cmp1 = fcmp fast olt double %a, %b3755 %retval = select i1 %cmp, i1 true, i1 %cmp13756 ret i1 %retval3757}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, %b3765 %cmp1 = fcmp ole double %a, %b3766 %retval = or i1 %cmp, %cmp13767 ret i1 %retval3768}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, %b3776 %cmp1 = fcmp ole double %a, %b3777 %retval = select i1 %cmp, i1 true, i1 %cmp13778 ret i1 %retval3779}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, %b3787 %cmp1 = fcmp fast ole double %a, %b3788 %retval = select i1 %cmp, i1 true, i1 %cmp13789 ret i1 %retval3790}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, %b3798 %cmp1 = fcmp one double %a, %b3799 %retval = or i1 %cmp, %cmp13800 ret i1 %retval3801}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, %b3809 %cmp1 = fcmp one double %a, %b3810 %retval = select i1 %cmp, i1 true, i1 %cmp13811 ret i1 %retval3812}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, %b3820 %cmp1 = fcmp fast one double %a, %b3821 %retval = select i1 %cmp, i1 true, i1 %cmp13822 ret i1 %retval3823}3824 3825define i1 @auto_gen_112(double %a, double %b) {3826; CHECK-LABEL: @auto_gen_112(3827; CHECK-NEXT: ret i1 true3828;3829 %cmp = fcmp uno double %a, %b3830 %cmp1 = fcmp ord double %a, %b3831 %retval = or i1 %cmp, %cmp13832 ret i1 %retval3833}3834 3835define i1 @auto_gen_112_logical(double %a, double %b) {3836; CHECK-LABEL: @auto_gen_112_logical(3837; CHECK-NEXT: ret i1 true3838;3839 %cmp = fcmp uno double %a, %b3840 %cmp1 = fcmp ord double %a, %b3841 %retval = select i1 %cmp, i1 true, i1 %cmp13842 ret i1 %retval3843}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 true3848;3849 %cmp = fcmp uno double %a, %b3850 %cmp1 = fcmp fast ord double %a, %b3851 %retval = select i1 %cmp, i1 true, i1 %cmp13852 ret i1 %retval3853}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, %b3861 %cmp1 = fcmp ueq double %a, %b3862 %retval = or i1 %cmp, %cmp13863 ret i1 %retval3864}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, %b3872 %cmp1 = fcmp ueq double %a, %b3873 %retval = select i1 %cmp, i1 true, i1 %cmp13874 ret i1 %retval3875}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, %b3883 %cmp1 = fcmp fast ueq double %a, %b3884 %retval = select i1 %cmp, i1 true, i1 %cmp13885 ret i1 %retval3886}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, %b3894 %cmp1 = fcmp ugt double %a, %b3895 %retval = or i1 %cmp, %cmp13896 ret i1 %retval3897}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, %b3905 %cmp1 = fcmp ugt double %a, %b3906 %retval = select i1 %cmp, i1 true, i1 %cmp13907 ret i1 %retval3908}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, %b3916 %cmp1 = fcmp fast ugt double %a, %b3917 %retval = select i1 %cmp, i1 true, i1 %cmp13918 ret i1 %retval3919}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, %b3927 %cmp1 = fcmp uge double %a, %b3928 %retval = or i1 %cmp, %cmp13929 ret i1 %retval3930}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, %b3938 %cmp1 = fcmp uge double %a, %b3939 %retval = select i1 %cmp, i1 true, i1 %cmp13940 ret i1 %retval3941}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, %b3949 %cmp1 = fcmp fast uge double %a, %b3950 %retval = select i1 %cmp, i1 true, i1 %cmp13951 ret i1 %retval3952}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, %b3960 %cmp1 = fcmp ult double %a, %b3961 %retval = or i1 %cmp, %cmp13962 ret i1 %retval3963}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, %b3971 %cmp1 = fcmp ult double %a, %b3972 %retval = select i1 %cmp, i1 true, i1 %cmp13973 ret i1 %retval3974}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, %b3982 %cmp1 = fcmp fast ult double %a, %b3983 %retval = select i1 %cmp, i1 true, i1 %cmp13984 ret i1 %retval3985}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, %b3993 %cmp1 = fcmp ule double %a, %b3994 %retval = or i1 %cmp, %cmp13995 ret i1 %retval3996}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, %b4004 %cmp1 = fcmp ule double %a, %b4005 %retval = select i1 %cmp, i1 true, i1 %cmp14006 ret i1 %retval4007}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, %b4015 %cmp1 = fcmp fast ule double %a, %b4016 %retval = select i1 %cmp, i1 true, i1 %cmp14017 ret i1 %retval4018}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, %b4026 %cmp1 = fcmp une double %a, %b4027 %retval = or i1 %cmp, %cmp14028 ret i1 %retval4029}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, %b4037 %cmp1 = fcmp une double %a, %b4038 %retval = select i1 %cmp, i1 true, i1 %cmp14039 ret i1 %retval4040}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, %b4048 %cmp1 = fcmp fast une double %a, %b4049 %retval = select i1 %cmp, i1 true, i1 %cmp14050 ret i1 %retval4051}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, %b4059 %cmp1 = fcmp uno double %a, %b4060 %retval = or i1 %cmp, %cmp14061 ret i1 %retval4062}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, %b4070 %cmp1 = fcmp uno double %a, %b4071 %retval = select i1 %cmp, i1 true, i1 %cmp14072 ret i1 %retval4073}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 false4078;4079 %cmp = fcmp fast uno double %a, %b4080 %cmp1 = fcmp fast uno double %a, %b4081 %retval = select i1 %cmp, i1 true, i1 %cmp14082 ret i1 %retval4083}4084 4085define i1 @auto_gen_120(double %a, double %b) {4086; CHECK-LABEL: @auto_gen_120(4087; CHECK-NEXT: ret i1 true4088;4089 %cmp = fcmp true double %a, %b4090 %cmp1 = fcmp false double %a, %b4091 %retval = or i1 %cmp, %cmp14092 ret i1 %retval4093}4094 4095define i1 @auto_gen_120_logical(double %a, double %b) {4096; CHECK-LABEL: @auto_gen_120_logical(4097; CHECK-NEXT: ret i1 true4098;4099 %cmp = fcmp true double %a, %b4100 %cmp1 = fcmp false double %a, %b4101 %retval = select i1 %cmp, i1 true, i1 %cmp14102 ret i1 %retval4103}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 true4108;4109 %cmp = fcmp true double %a, %b4110 %cmp1 = fcmp fast false double %a, %b4111 %retval = select i1 %cmp, i1 true, i1 %cmp14112 ret i1 %retval4113}4114 4115define i1 @auto_gen_121(double %a, double %b) {4116; CHECK-LABEL: @auto_gen_121(4117; CHECK-NEXT: ret i1 true4118;4119 %cmp = fcmp true double %a, %b4120 %cmp1 = fcmp oeq double %a, %b4121 %retval = or i1 %cmp, %cmp14122 ret i1 %retval4123}4124 4125define i1 @auto_gen_121_logical(double %a, double %b) {4126; CHECK-LABEL: @auto_gen_121_logical(4127; CHECK-NEXT: ret i1 true4128;4129 %cmp = fcmp true double %a, %b4130 %cmp1 = fcmp oeq double %a, %b4131 %retval = select i1 %cmp, i1 true, i1 %cmp14132 ret i1 %retval4133}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 true4138;4139 %cmp = fcmp fast true double %a, %b4140 %cmp1 = fcmp fast oeq double %a, %b4141 %retval = select i1 %cmp, i1 true, i1 %cmp14142 ret i1 %retval4143}4144 4145define i1 @auto_gen_122(double %a, double %b) {4146; CHECK-LABEL: @auto_gen_122(4147; CHECK-NEXT: ret i1 true4148;4149 %cmp = fcmp true double %a, %b4150 %cmp1 = fcmp ogt double %a, %b4151 %retval = or i1 %cmp, %cmp14152 ret i1 %retval4153}4154 4155define i1 @auto_gen_122_logical(double %a, double %b) {4156; CHECK-LABEL: @auto_gen_122_logical(4157; CHECK-NEXT: ret i1 true4158;4159 %cmp = fcmp true double %a, %b4160 %cmp1 = fcmp ogt double %a, %b4161 %retval = select i1 %cmp, i1 true, i1 %cmp14162 ret i1 %retval4163}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 true4168;4169 %cmp = fcmp true double %a, %b4170 %cmp1 = fcmp fast ogt double %a, %b4171 %retval = select i1 %cmp, i1 true, i1 %cmp14172 ret i1 %retval4173}4174 4175define i1 @auto_gen_123(double %a, double %b) {4176; CHECK-LABEL: @auto_gen_123(4177; CHECK-NEXT: ret i1 true4178;4179 %cmp = fcmp true double %a, %b4180 %cmp1 = fcmp oge double %a, %b4181 %retval = or i1 %cmp, %cmp14182 ret i1 %retval4183}4184 4185define i1 @auto_gen_123_logical(double %a, double %b) {4186; CHECK-LABEL: @auto_gen_123_logical(4187; CHECK-NEXT: ret i1 true4188;4189 %cmp = fcmp true double %a, %b4190 %cmp1 = fcmp oge double %a, %b4191 %retval = select i1 %cmp, i1 true, i1 %cmp14192 ret i1 %retval4193}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 true4198;4199 %cmp = fcmp fast true double %a, %b4200 %cmp1 = fcmp fast oge double %a, %b4201 %retval = select i1 %cmp, i1 true, i1 %cmp14202 ret i1 %retval4203}4204 4205define i1 @auto_gen_124(double %a, double %b) {4206; CHECK-LABEL: @auto_gen_124(4207; CHECK-NEXT: ret i1 true4208;4209 %cmp = fcmp true double %a, %b4210 %cmp1 = fcmp olt double %a, %b4211 %retval = or i1 %cmp, %cmp14212 ret i1 %retval4213}4214 4215define i1 @auto_gen_124_logical(double %a, double %b) {4216; CHECK-LABEL: @auto_gen_124_logical(4217; CHECK-NEXT: ret i1 true4218;4219 %cmp = fcmp true double %a, %b4220 %cmp1 = fcmp olt double %a, %b4221 %retval = select i1 %cmp, i1 true, i1 %cmp14222 ret i1 %retval4223}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 true4228;4229 %cmp = fcmp true double %a, %b4230 %cmp1 = fcmp fast olt double %a, %b4231 %retval = select i1 %cmp, i1 true, i1 %cmp14232 ret i1 %retval4233}4234 4235define i1 @auto_gen_125(double %a, double %b) {4236; CHECK-LABEL: @auto_gen_125(4237; CHECK-NEXT: ret i1 true4238;4239 %cmp = fcmp true double %a, %b4240 %cmp1 = fcmp ole double %a, %b4241 %retval = or i1 %cmp, %cmp14242 ret i1 %retval4243}4244 4245define i1 @auto_gen_125_logical(double %a, double %b) {4246; CHECK-LABEL: @auto_gen_125_logical(4247; CHECK-NEXT: ret i1 true4248;4249 %cmp = fcmp true double %a, %b4250 %cmp1 = fcmp ole double %a, %b4251 %retval = select i1 %cmp, i1 true, i1 %cmp14252 ret i1 %retval4253}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 true4258;4259 %cmp = fcmp fast true double %a, %b4260 %cmp1 = fcmp fast ole double %a, %b4261 %retval = select i1 %cmp, i1 true, i1 %cmp14262 ret i1 %retval4263}4264 4265define i1 @auto_gen_126(double %a, double %b) {4266; CHECK-LABEL: @auto_gen_126(4267; CHECK-NEXT: ret i1 true4268;4269 %cmp = fcmp true double %a, %b4270 %cmp1 = fcmp one double %a, %b4271 %retval = or i1 %cmp, %cmp14272 ret i1 %retval4273}4274 4275define i1 @auto_gen_126_logical(double %a, double %b) {4276; CHECK-LABEL: @auto_gen_126_logical(4277; CHECK-NEXT: ret i1 true4278;4279 %cmp = fcmp true double %a, %b4280 %cmp1 = fcmp one double %a, %b4281 %retval = select i1 %cmp, i1 true, i1 %cmp14282 ret i1 %retval4283}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 true4288;4289 %cmp = fcmp true double %a, %b4290 %cmp1 = fcmp fast one double %a, %b4291 %retval = select i1 %cmp, i1 true, i1 %cmp14292 ret i1 %retval4293}4294 4295define i1 @auto_gen_127(double %a, double %b) {4296; CHECK-LABEL: @auto_gen_127(4297; CHECK-NEXT: ret i1 true4298;4299 %cmp = fcmp true double %a, %b4300 %cmp1 = fcmp ord double %a, %b4301 %retval = or i1 %cmp, %cmp14302 ret i1 %retval4303}4304 4305define i1 @auto_gen_127_logical(double %a, double %b) {4306; CHECK-LABEL: @auto_gen_127_logical(4307; CHECK-NEXT: ret i1 true4308;4309 %cmp = fcmp true double %a, %b4310 %cmp1 = fcmp ord double %a, %b4311 %retval = select i1 %cmp, i1 true, i1 %cmp14312 ret i1 %retval4313}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 true4318;4319 %cmp = fcmp fast true double %a, %b4320 %cmp1 = fcmp fast ord double %a, %b4321 %retval = select i1 %cmp, i1 true, i1 %cmp14322 ret i1 %retval4323}4324 4325define i1 @auto_gen_128(double %a, double %b) {4326; CHECK-LABEL: @auto_gen_128(4327; CHECK-NEXT: ret i1 true4328;4329 %cmp = fcmp true double %a, %b4330 %cmp1 = fcmp ueq double %a, %b4331 %retval = or i1 %cmp, %cmp14332 ret i1 %retval4333}4334 4335define i1 @auto_gen_128_logical(double %a, double %b) {4336; CHECK-LABEL: @auto_gen_128_logical(4337; CHECK-NEXT: ret i1 true4338;4339 %cmp = fcmp true double %a, %b4340 %cmp1 = fcmp ueq double %a, %b4341 %retval = select i1 %cmp, i1 true, i1 %cmp14342 ret i1 %retval4343}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 true4348;4349 %cmp = fcmp true double %a, %b4350 %cmp1 = fcmp fast ueq double %a, %b4351 %retval = select i1 %cmp, i1 true, i1 %cmp14352 ret i1 %retval4353}4354 4355define i1 @auto_gen_129(double %a, double %b) {4356; CHECK-LABEL: @auto_gen_129(4357; CHECK-NEXT: ret i1 true4358;4359 %cmp = fcmp true double %a, %b4360 %cmp1 = fcmp ugt double %a, %b4361 %retval = or i1 %cmp, %cmp14362 ret i1 %retval4363}4364 4365define i1 @auto_gen_129_logical(double %a, double %b) {4366; CHECK-LABEL: @auto_gen_129_logical(4367; CHECK-NEXT: ret i1 true4368;4369 %cmp = fcmp true double %a, %b4370 %cmp1 = fcmp ugt double %a, %b4371 %retval = select i1 %cmp, i1 true, i1 %cmp14372 ret i1 %retval4373}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 true4378;4379 %cmp = fcmp fast true double %a, %b4380 %cmp1 = fcmp fast ugt double %a, %b4381 %retval = select i1 %cmp, i1 true, i1 %cmp14382 ret i1 %retval4383}4384 4385define i1 @auto_gen_130(double %a, double %b) {4386; CHECK-LABEL: @auto_gen_130(4387; CHECK-NEXT: ret i1 true4388;4389 %cmp = fcmp true double %a, %b4390 %cmp1 = fcmp uge double %a, %b4391 %retval = or i1 %cmp, %cmp14392 ret i1 %retval4393}4394 4395define i1 @auto_gen_130_logical(double %a, double %b) {4396; CHECK-LABEL: @auto_gen_130_logical(4397; CHECK-NEXT: ret i1 true4398;4399 %cmp = fcmp true double %a, %b4400 %cmp1 = fcmp uge double %a, %b4401 %retval = select i1 %cmp, i1 true, i1 %cmp14402 ret i1 %retval4403}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 true4408;4409 %cmp = fcmp true double %a, %b4410 %cmp1 = fcmp fast uge double %a, %b4411 %retval = select i1 %cmp, i1 true, i1 %cmp14412 ret i1 %retval4413}4414 4415define i1 @auto_gen_131(double %a, double %b) {4416; CHECK-LABEL: @auto_gen_131(4417; CHECK-NEXT: ret i1 true4418;4419 %cmp = fcmp true double %a, %b4420 %cmp1 = fcmp ult double %a, %b4421 %retval = or i1 %cmp, %cmp14422 ret i1 %retval4423}4424 4425define i1 @auto_gen_131_logical(double %a, double %b) {4426; CHECK-LABEL: @auto_gen_131_logical(4427; CHECK-NEXT: ret i1 true4428;4429 %cmp = fcmp true double %a, %b4430 %cmp1 = fcmp ult double %a, %b4431 %retval = select i1 %cmp, i1 true, i1 %cmp14432 ret i1 %retval4433}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 true4438;4439 %cmp = fcmp fast true double %a, %b4440 %cmp1 = fcmp fast ult double %a, %b4441 %retval = select i1 %cmp, i1 true, i1 %cmp14442 ret i1 %retval4443}4444 4445define i1 @auto_gen_132(double %a, double %b) {4446; CHECK-LABEL: @auto_gen_132(4447; CHECK-NEXT: ret i1 true4448;4449 %cmp = fcmp true double %a, %b4450 %cmp1 = fcmp ule double %a, %b4451 %retval = or i1 %cmp, %cmp14452 ret i1 %retval4453}4454 4455define i1 @auto_gen_132_logical(double %a, double %b) {4456; CHECK-LABEL: @auto_gen_132_logical(4457; CHECK-NEXT: ret i1 true4458;4459 %cmp = fcmp true double %a, %b4460 %cmp1 = fcmp ule double %a, %b4461 %retval = select i1 %cmp, i1 true, i1 %cmp14462 ret i1 %retval4463}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 true4468;4469 %cmp = fcmp true double %a, %b4470 %cmp1 = fcmp fast ule double %a, %b4471 %retval = select i1 %cmp, i1 true, i1 %cmp14472 ret i1 %retval4473}4474 4475define i1 @auto_gen_133(double %a, double %b) {4476; CHECK-LABEL: @auto_gen_133(4477; CHECK-NEXT: ret i1 true4478;4479 %cmp = fcmp true double %a, %b4480 %cmp1 = fcmp une double %a, %b4481 %retval = or i1 %cmp, %cmp14482 ret i1 %retval4483}4484 4485define i1 @auto_gen_133_logical(double %a, double %b) {4486; CHECK-LABEL: @auto_gen_133_logical(4487; CHECK-NEXT: ret i1 true4488;4489 %cmp = fcmp true double %a, %b4490 %cmp1 = fcmp une double %a, %b4491 %retval = select i1 %cmp, i1 true, i1 %cmp14492 ret i1 %retval4493}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 true4498;4499 %cmp = fcmp fast true double %a, %b4500 %cmp1 = fcmp fast une double %a, %b4501 %retval = select i1 %cmp, i1 true, i1 %cmp14502 ret i1 %retval4503}4504 4505define i1 @auto_gen_134(double %a, double %b) {4506; CHECK-LABEL: @auto_gen_134(4507; CHECK-NEXT: ret i1 true4508;4509 %cmp = fcmp true double %a, %b4510 %cmp1 = fcmp uno double %a, %b4511 %retval = or i1 %cmp, %cmp14512 ret i1 %retval4513}4514 4515define i1 @auto_gen_134_logical(double %a, double %b) {4516; CHECK-LABEL: @auto_gen_134_logical(4517; CHECK-NEXT: ret i1 true4518;4519 %cmp = fcmp true double %a, %b4520 %cmp1 = fcmp uno double %a, %b4521 %retval = select i1 %cmp, i1 true, i1 %cmp14522 ret i1 %retval4523}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 true4528;4529 %cmp = fcmp true double %a, %b4530 %cmp1 = fcmp fast uno double %a, %b4531 %retval = select i1 %cmp, i1 true, i1 %cmp14532 ret i1 %retval4533}4534 4535define i1 @auto_gen_135(double %a, double %b) {4536; CHECK-LABEL: @auto_gen_135(4537; CHECK-NEXT: ret i1 true4538;4539 %cmp = fcmp true double %a, %b4540 %cmp1 = fcmp true double %a, %b4541 %retval = or i1 %cmp, %cmp14542 ret i1 %retval4543}4544 4545define i1 @auto_gen_135_logical(double %a, double %b) {4546; CHECK-LABEL: @auto_gen_135_logical(4547; CHECK-NEXT: ret i1 true4548;4549 %cmp = fcmp true double %a, %b4550 %cmp1 = fcmp true double %a, %b4551 %retval = select i1 %cmp, i1 true, i1 %cmp14552 ret i1 %retval4553}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 true4558;4559 %cmp = fcmp fast true double %a, %b4560 %cmp1 = fcmp fast true double %a, %b4561 %retval = select i1 %cmp, i1 true, i1 %cmp14562 ret i1 %retval4563}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, %b4571 %cmp1 = fcmp fast ogt double %a, %b4572 %retval = or i1 %cmp, %cmp14573 ret i1 %retval4574}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, %b4582 %cmp1 = fcmp ogt double %a, %b4583 %retval = or i1 %cmp, %cmp14584 ret i1 %retval4585}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, %b4593 %cmp1 = fcmp fast ogt double %a, %b4594 %retval = or i1 %cmp, %cmp14595 ret i1 %retval4596}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, %b4604 %cmp1 = fcmp nnan ogt double %a, %b4605 %retval = or i1 %cmp, %cmp14606 ret i1 %retval4607}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, %b4616 %cmp1 = fcmp ogt double %a, %b4617 %or = or i1 %cmp, %x4618 %retval = or i1 %or, %cmp14619 ret i1 %retval4620}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, %b4629 %cmp1 = fcmp ogt double %a, %b4630 %or = or i1 %x, %cmp4631 %retval = or i1 %or, %cmp14632 ret i1 %retval4633}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, %b4642 %cmp1 = fcmp ogt double %a, %b4643 %or = or i1 %cmp, %x4644 %retval = or i1 %cmp1, %or4645 ret i1 %retval4646}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, %b4655 %cmp1 = fcmp ogt double %a, %b4656 %or = or i1 %x, %cmp4657 %retval = or i1 %cmp1, %or4658 ret i1 %retval4659}4660