1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2 ; RUN: opt < %s -instcombine -S | FileCheck %s
4 define i1 @PR1738(double %x, double %y) {
5 ; CHECK-LABEL: @PR1738(
6 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double [[X:%.*]], [[Y:%.*]]
7 ; CHECK-NEXT: ret i1 [[TMP1]]
9 %cmp1 = fcmp ord double %x, 0.0
10 %cmp2 = fcmp ord double %y, 0.0
11 %and = and i1 %cmp1, %cmp2
15 ; TODO: this can be supported by freezing %y
16 define i1 @PR1738_logical(double %x, double %y) {
17 ; CHECK-LABEL: @PR1738_logical(
18 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp ord double [[X:%.*]], 0.000000e+00
19 ; CHECK-NEXT: [[CMP2:%.*]] = fcmp ord double [[Y:%.*]], 0.000000e+00
20 ; CHECK-NEXT: [[AND:%.*]] = select i1 [[CMP1]], i1 [[CMP2]], i1 false
21 ; CHECK-NEXT: ret i1 [[AND]]
23 %cmp1 = fcmp ord double %x, 0.0
24 %cmp2 = fcmp ord double %y, 0.0
25 %and = select i1 %cmp1, i1 %cmp2, i1 false
29 define i1 @PR1738_logical_noundef(double %x, double noundef %y) {
30 ; CHECK-LABEL: @PR1738_logical_noundef(
31 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double [[X:%.*]], [[Y:%.*]]
32 ; CHECK-NEXT: ret i1 [[TMP1]]
34 %cmp1 = fcmp ord double %x, 0.0
35 %cmp2 = fcmp ord double %y, 0.0
36 %and = select i1 %cmp1, i1 %cmp2, i1 false
40 define <2 x i1> @PR1738_vec_undef(<2 x double> %x, <2 x double> %y) {
41 ; CHECK-LABEL: @PR1738_vec_undef(
42 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord <2 x double> [[X:%.*]], [[Y:%.*]]
43 ; CHECK-NEXT: ret <2 x i1> [[TMP1]]
45 %cmp1 = fcmp ord <2 x double> %x, <double 0.0, double undef>
46 %cmp2 = fcmp ord <2 x double> %y, <double undef, double 0.0>
47 %or = and <2 x i1> %cmp1, %cmp2
51 define i1 @PR41069(i1 %z, float %c, float %d) {
52 ; CHECK-LABEL: @PR41069(
53 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord float [[D:%.*]], [[C:%.*]]
54 ; CHECK-NEXT: [[R:%.*]] = and i1 [[TMP1]], [[Z:%.*]]
55 ; CHECK-NEXT: ret i1 [[R]]
57 %ord1 = fcmp arcp ord float %c, 0.0
58 %and = and i1 %ord1, %z
59 %ord2 = fcmp afn ord float %d, 0.0
60 %r = and i1 %and, %ord2
64 ; FIXME: this can be supported by freezing %d
65 define i1 @PR41069_logical(i1 %z, float %c, float %d) {
66 ; CHECK-LABEL: @PR41069_logical(
67 ; CHECK-NEXT: [[ORD1:%.*]] = fcmp arcp ord float [[C:%.*]], 0.000000e+00
68 ; CHECK-NEXT: [[AND:%.*]] = select i1 [[ORD1]], i1 [[Z:%.*]], i1 false
69 ; CHECK-NEXT: [[ORD2:%.*]] = fcmp afn ord float [[D:%.*]], 0.000000e+00
70 ; CHECK-NEXT: [[R:%.*]] = select i1 [[AND]], i1 [[ORD2]], i1 false
71 ; CHECK-NEXT: ret i1 [[R]]
73 %ord1 = fcmp arcp ord float %c, 0.0
74 %and = select i1 %ord1, i1 %z, i1 false
75 %ord2 = fcmp afn ord float %d, 0.0
76 %r = select i1 %and, i1 %ord2, i1 false
80 define i1 @PR41069_commute(i1 %z, float %c, float %d) {
81 ; CHECK-LABEL: @PR41069_commute(
82 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ninf ord float [[D:%.*]], [[C:%.*]]
83 ; CHECK-NEXT: [[R:%.*]] = and i1 [[TMP1]], [[Z:%.*]]
84 ; CHECK-NEXT: ret i1 [[R]]
86 %ord1 = fcmp ninf ord float %c, 0.0
87 %and = and i1 %ord1, %z
88 %ord2 = fcmp ninf reassoc ord float %d, 0.0
89 %r = and i1 %ord2, %and
93 ; TODO: this should be fixed using freeze
94 define i1 @PR41069_commute_logical(i1 %z, float %c, float %d) {
95 ; CHECK-LABEL: @PR41069_commute_logical(
96 ; CHECK-NEXT: [[ORD1:%.*]] = fcmp ninf ord float [[C:%.*]], 0.000000e+00
97 ; CHECK-NEXT: [[ORD2:%.*]] = fcmp reassoc ninf ord float [[D:%.*]], 0.000000e+00
98 ; CHECK-NEXT: [[TMP1:%.*]] = select i1 [[ORD2]], i1 [[ORD1]], i1 false
99 ; CHECK-NEXT: [[R:%.*]] = select i1 [[TMP1]], i1 [[Z:%.*]], i1 false
100 ; CHECK-NEXT: ret i1 [[R]]
102 %ord1 = fcmp ninf ord float %c, 0.0
103 %and = select i1 %ord1, i1 %z, i1 false
104 %ord2 = fcmp ninf reassoc ord float %d, 0.0
105 %r = select i1 %ord2, i1 %and, i1 false
109 ; Commute differently and make sure vectors work.
111 define <2 x i1> @PR41069_vec(<2 x double> %a, <2 x double> %b, <2 x double> %c, <2 x double> %d) {
112 ; CHECK-LABEL: @PR41069_vec(
113 ; CHECK-NEXT: [[ORD1:%.*]] = fcmp ord <2 x double> [[A:%.*]], [[B:%.*]]
114 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord <2 x double> [[D:%.*]], [[C:%.*]]
115 ; CHECK-NEXT: [[R:%.*]] = and <2 x i1> [[TMP1]], [[ORD1]]
116 ; CHECK-NEXT: ret <2 x i1> [[R]]
118 %ord1 = fcmp ord <2 x double> %a, %b
119 %ord2 = fcmp ord <2 x double> %c, <double 0.0, double undef>
120 %and = and <2 x i1> %ord1, %ord2
121 %ord3 = fcmp ord <2 x double> %d, zeroinitializer
122 %r = and <2 x i1> %and, %ord3
126 define <2 x i1> @PR41069_vec_commute(<2 x double> %a, <2 x double> %b, <2 x double> %c, <2 x double> %d) {
127 ; CHECK-LABEL: @PR41069_vec_commute(
128 ; CHECK-NEXT: [[ORD1:%.*]] = fcmp ord <2 x double> [[A:%.*]], [[B:%.*]]
129 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord <2 x double> [[D:%.*]], [[C:%.*]]
130 ; CHECK-NEXT: [[R:%.*]] = and <2 x i1> [[TMP1]], [[ORD1]]
131 ; CHECK-NEXT: ret <2 x i1> [[R]]
133 %ord1 = fcmp ord <2 x double> %a, %b
134 %ord2 = fcmp ord <2 x double> %c, <double 0.0, double undef>
135 %and = and <2 x i1> %ord1, %ord2
136 %ord3 = fcmp ord <2 x double> %d, zeroinitializer
137 %r = and <2 x i1> %ord3, %and
141 define i1 @PR15737(float %a, double %b) {
142 ; CHECK-LABEL: @PR15737(
143 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ord float [[A:%.*]], 0.000000e+00
144 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp ord double [[B:%.*]], 0.000000e+00
145 ; CHECK-NEXT: [[AND:%.*]] = and i1 [[CMP]], [[CMP1]]
146 ; CHECK-NEXT: ret i1 [[AND]]
148 %cmp = fcmp ord float %a, 0.000000e+00
149 %cmp1 = fcmp ord double %b, 0.000000e+00
150 %and = and i1 %cmp, %cmp1
154 define i1 @PR15737_logical(float %a, double %b) {
155 ; CHECK-LABEL: @PR15737_logical(
156 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ord float [[A:%.*]], 0.000000e+00
157 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp ord double [[B:%.*]], 0.000000e+00
158 ; CHECK-NEXT: [[AND:%.*]] = select i1 [[CMP]], i1 [[CMP1]], i1 false
159 ; CHECK-NEXT: ret i1 [[AND]]
161 %cmp = fcmp ord float %a, 0.000000e+00
162 %cmp1 = fcmp ord double %b, 0.000000e+00
163 %and = select i1 %cmp, i1 %cmp1, i1 false
167 define <2 x i1> @t9(<2 x float> %a, <2 x double> %b) {
169 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ord <2 x float> [[A:%.*]], zeroinitializer
170 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp ord <2 x double> [[B:%.*]], zeroinitializer
171 ; CHECK-NEXT: [[AND:%.*]] = and <2 x i1> [[CMP]], [[CMP1]]
172 ; CHECK-NEXT: ret <2 x i1> [[AND]]
174 %cmp = fcmp ord <2 x float> %a, zeroinitializer
175 %cmp1 = fcmp ord <2 x double> %b, zeroinitializer
176 %and = and <2 x i1> %cmp, %cmp1
180 define i1 @fcmp_ord_nonzero(float %x, float %y) {
181 ; CHECK-LABEL: @fcmp_ord_nonzero(
182 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord float [[X:%.*]], [[Y:%.*]]
183 ; CHECK-NEXT: ret i1 [[TMP1]]
185 %cmp1 = fcmp ord float %x, 1.0
186 %cmp2 = fcmp ord float %y, 2.0
187 %and = and i1 %cmp1, %cmp2
191 ; TODO: this can be supported by freezing %y
192 define i1 @fcmp_ord_nonzero_logical(float %x, float %y) {
193 ; CHECK-LABEL: @fcmp_ord_nonzero_logical(
194 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp ord float [[X:%.*]], 0.000000e+00
195 ; CHECK-NEXT: [[CMP2:%.*]] = fcmp ord float [[Y:%.*]], 0.000000e+00
196 ; CHECK-NEXT: [[AND:%.*]] = select i1 [[CMP1]], i1 [[CMP2]], i1 false
197 ; CHECK-NEXT: ret i1 [[AND]]
199 %cmp1 = fcmp ord float %x, 1.0
200 %cmp2 = fcmp ord float %y, 2.0
201 %and = select i1 %cmp1, i1 %cmp2, i1 false
205 define <3 x i1> @fcmp_ord_nonzero_vec(<3 x float> %x, <3 x float> %y) {
206 ; CHECK-LABEL: @fcmp_ord_nonzero_vec(
207 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord <3 x float> [[X:%.*]], [[Y:%.*]]
208 ; CHECK-NEXT: ret <3 x i1> [[TMP1]]
210 %cmp1 = fcmp ord <3 x float> %x, <float 1.0, float 2.0, float 3.0>
211 %cmp2 = fcmp ord <3 x float> %y, <float 3.0, float 2.0, float 1.0>
212 %and = and <3 x i1> %cmp1, %cmp2
216 define i1 @auto_gen_0(double %a, double %b) {
217 ; CHECK-LABEL: @auto_gen_0(
218 ; CHECK-NEXT: ret i1 false
220 %cmp = fcmp false double %a, %b
221 %cmp1 = fcmp false double %a, %b
222 %retval = and i1 %cmp, %cmp1
226 define i1 @auto_gen_0_logical(double %a, double %b) {
227 ; CHECK-LABEL: @auto_gen_0_logical(
228 ; CHECK-NEXT: ret i1 false
230 %cmp = fcmp false double %a, %b
231 %cmp1 = fcmp false double %a, %b
232 %retval = select i1 %cmp, i1 %cmp1, i1 false
236 define i1 @auto_gen_1(double %a, double %b) {
237 ; CHECK-LABEL: @auto_gen_1(
238 ; CHECK-NEXT: ret i1 false
240 %cmp = fcmp oeq double %a, %b
241 %cmp1 = fcmp false double %a, %b
242 %retval = and i1 %cmp, %cmp1
246 define i1 @auto_gen_1_logical(double %a, double %b) {
247 ; CHECK-LABEL: @auto_gen_1_logical(
248 ; CHECK-NEXT: ret i1 false
250 %cmp = fcmp oeq double %a, %b
251 %cmp1 = fcmp false double %a, %b
252 %retval = select i1 %cmp, i1 %cmp1, i1 false
256 define i1 @auto_gen_2(double %a, double %b) {
257 ; CHECK-LABEL: @auto_gen_2(
258 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
259 ; CHECK-NEXT: ret i1 [[TMP1]]
261 %cmp = fcmp oeq double %a, %b
262 %cmp1 = fcmp oeq double %a, %b
263 %retval = and i1 %cmp, %cmp1
267 define i1 @auto_gen_2_logical(double %a, double %b) {
268 ; CHECK-LABEL: @auto_gen_2_logical(
269 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
270 ; CHECK-NEXT: ret i1 [[TMP1]]
272 %cmp = fcmp oeq double %a, %b
273 %cmp1 = fcmp oeq double %a, %b
274 %retval = select i1 %cmp, i1 %cmp1, i1 false
278 define i1 @auto_gen_3(double %a, double %b) {
279 ; CHECK-LABEL: @auto_gen_3(
280 ; CHECK-NEXT: ret i1 false
282 %cmp = fcmp ogt double %a, %b
283 %cmp1 = fcmp false double %a, %b
284 %retval = and i1 %cmp, %cmp1
288 define i1 @auto_gen_3_logical(double %a, double %b) {
289 ; CHECK-LABEL: @auto_gen_3_logical(
290 ; CHECK-NEXT: ret i1 false
292 %cmp = fcmp ogt double %a, %b
293 %cmp1 = fcmp false double %a, %b
294 %retval = select i1 %cmp, i1 %cmp1, i1 false
298 define i1 @auto_gen_4(double %a, double %b) {
299 ; CHECK-LABEL: @auto_gen_4(
300 ; CHECK-NEXT: ret i1 false
302 %cmp = fcmp ogt double %a, %b
303 %cmp1 = fcmp oeq double %a, %b
304 %retval = and i1 %cmp, %cmp1
308 define i1 @auto_gen_4_logical(double %a, double %b) {
309 ; CHECK-LABEL: @auto_gen_4_logical(
310 ; CHECK-NEXT: ret i1 false
312 %cmp = fcmp ogt double %a, %b
313 %cmp1 = fcmp oeq double %a, %b
314 %retval = select i1 %cmp, i1 %cmp1, i1 false
318 define i1 @auto_gen_5(double %a, double %b) {
319 ; CHECK-LABEL: @auto_gen_5(
320 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
321 ; CHECK-NEXT: ret i1 [[TMP1]]
323 %cmp = fcmp ogt double %a, %b
324 %cmp1 = fcmp ogt double %a, %b
325 %retval = and i1 %cmp, %cmp1
329 define i1 @auto_gen_5_logical(double %a, double %b) {
330 ; CHECK-LABEL: @auto_gen_5_logical(
331 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
332 ; CHECK-NEXT: ret i1 [[TMP1]]
334 %cmp = fcmp ogt double %a, %b
335 %cmp1 = fcmp ogt double %a, %b
336 %retval = select i1 %cmp, i1 %cmp1, i1 false
340 define i1 @auto_gen_6(double %a, double %b) {
341 ; CHECK-LABEL: @auto_gen_6(
342 ; CHECK-NEXT: ret i1 false
344 %cmp = fcmp oge double %a, %b
345 %cmp1 = fcmp false double %a, %b
346 %retval = and i1 %cmp, %cmp1
350 define i1 @auto_gen_6_logical(double %a, double %b) {
351 ; CHECK-LABEL: @auto_gen_6_logical(
352 ; CHECK-NEXT: ret i1 false
354 %cmp = fcmp oge double %a, %b
355 %cmp1 = fcmp false double %a, %b
356 %retval = select i1 %cmp, i1 %cmp1, i1 false
360 define i1 @auto_gen_7(double %a, double %b) {
361 ; CHECK-LABEL: @auto_gen_7(
362 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
363 ; CHECK-NEXT: ret i1 [[TMP1]]
365 %cmp = fcmp oge double %a, %b
366 %cmp1 = fcmp oeq double %a, %b
367 %retval = and i1 %cmp, %cmp1
371 define i1 @auto_gen_7_logical(double %a, double %b) {
372 ; CHECK-LABEL: @auto_gen_7_logical(
373 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
374 ; CHECK-NEXT: ret i1 [[TMP1]]
376 %cmp = fcmp oge double %a, %b
377 %cmp1 = fcmp oeq double %a, %b
378 %retval = select i1 %cmp, i1 %cmp1, i1 false
382 define i1 @auto_gen_8(double %a, double %b) {
383 ; CHECK-LABEL: @auto_gen_8(
384 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
385 ; CHECK-NEXT: ret i1 [[TMP1]]
387 %cmp = fcmp oge double %a, %b
388 %cmp1 = fcmp ogt double %a, %b
389 %retval = and i1 %cmp, %cmp1
393 define i1 @auto_gen_8_logical(double %a, double %b) {
394 ; CHECK-LABEL: @auto_gen_8_logical(
395 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
396 ; CHECK-NEXT: ret i1 [[TMP1]]
398 %cmp = fcmp oge double %a, %b
399 %cmp1 = fcmp ogt double %a, %b
400 %retval = select i1 %cmp, i1 %cmp1, i1 false
404 define i1 @auto_gen_9(double %a, double %b) {
405 ; CHECK-LABEL: @auto_gen_9(
406 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
407 ; CHECK-NEXT: ret i1 [[TMP1]]
409 %cmp = fcmp oge double %a, %b
410 %cmp1 = fcmp oge double %a, %b
411 %retval = and i1 %cmp, %cmp1
415 define i1 @auto_gen_9_logical(double %a, double %b) {
416 ; CHECK-LABEL: @auto_gen_9_logical(
417 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
418 ; CHECK-NEXT: ret i1 [[TMP1]]
420 %cmp = fcmp oge double %a, %b
421 %cmp1 = fcmp oge double %a, %b
422 %retval = select i1 %cmp, i1 %cmp1, i1 false
426 define i1 @auto_gen_10(double %a, double %b) {
427 ; CHECK-LABEL: @auto_gen_10(
428 ; CHECK-NEXT: ret i1 false
430 %cmp = fcmp olt double %a, %b
431 %cmp1 = fcmp false double %a, %b
432 %retval = and i1 %cmp, %cmp1
436 define i1 @auto_gen_10_logical(double %a, double %b) {
437 ; CHECK-LABEL: @auto_gen_10_logical(
438 ; CHECK-NEXT: ret i1 false
440 %cmp = fcmp olt double %a, %b
441 %cmp1 = fcmp false double %a, %b
442 %retval = select i1 %cmp, i1 %cmp1, i1 false
446 define i1 @auto_gen_11(double %a, double %b) {
447 ; CHECK-LABEL: @auto_gen_11(
448 ; CHECK-NEXT: ret i1 false
450 %cmp = fcmp olt double %a, %b
451 %cmp1 = fcmp oeq double %a, %b
452 %retval = and i1 %cmp, %cmp1
456 define i1 @auto_gen_11_logical(double %a, double %b) {
457 ; CHECK-LABEL: @auto_gen_11_logical(
458 ; CHECK-NEXT: ret i1 false
460 %cmp = fcmp olt double %a, %b
461 %cmp1 = fcmp oeq double %a, %b
462 %retval = select i1 %cmp, i1 %cmp1, i1 false
466 define i1 @auto_gen_12(double %a, double %b) {
467 ; CHECK-LABEL: @auto_gen_12(
468 ; CHECK-NEXT: ret i1 false
470 %cmp = fcmp olt double %a, %b
471 %cmp1 = fcmp ogt double %a, %b
472 %retval = and i1 %cmp, %cmp1
476 define i1 @auto_gen_12_logical(double %a, double %b) {
477 ; CHECK-LABEL: @auto_gen_12_logical(
478 ; CHECK-NEXT: ret i1 false
480 %cmp = fcmp olt double %a, %b
481 %cmp1 = fcmp ogt double %a, %b
482 %retval = select i1 %cmp, i1 %cmp1, i1 false
486 define i1 @auto_gen_13(double %a, double %b) {
487 ; CHECK-LABEL: @auto_gen_13(
488 ; CHECK-NEXT: ret i1 false
490 %cmp = fcmp olt double %a, %b
491 %cmp1 = fcmp oge double %a, %b
492 %retval = and i1 %cmp, %cmp1
496 define i1 @auto_gen_13_logical(double %a, double %b) {
497 ; CHECK-LABEL: @auto_gen_13_logical(
498 ; CHECK-NEXT: ret i1 false
500 %cmp = fcmp olt double %a, %b
501 %cmp1 = fcmp oge double %a, %b
502 %retval = select i1 %cmp, i1 %cmp1, i1 false
506 define i1 @auto_gen_14(double %a, double %b) {
507 ; CHECK-LABEL: @auto_gen_14(
508 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
509 ; CHECK-NEXT: ret i1 [[TMP1]]
511 %cmp = fcmp olt double %a, %b
512 %cmp1 = fcmp olt double %a, %b
513 %retval = and i1 %cmp, %cmp1
517 define i1 @auto_gen_14_logical(double %a, double %b) {
518 ; CHECK-LABEL: @auto_gen_14_logical(
519 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
520 ; CHECK-NEXT: ret i1 [[TMP1]]
522 %cmp = fcmp olt double %a, %b
523 %cmp1 = fcmp olt double %a, %b
524 %retval = select i1 %cmp, i1 %cmp1, i1 false
528 define i1 @auto_gen_15(double %a, double %b) {
529 ; CHECK-LABEL: @auto_gen_15(
530 ; CHECK-NEXT: ret i1 false
532 %cmp = fcmp ole double %a, %b
533 %cmp1 = fcmp false double %a, %b
534 %retval = and i1 %cmp, %cmp1
538 define i1 @auto_gen_15_logical(double %a, double %b) {
539 ; CHECK-LABEL: @auto_gen_15_logical(
540 ; CHECK-NEXT: ret i1 false
542 %cmp = fcmp ole double %a, %b
543 %cmp1 = fcmp false double %a, %b
544 %retval = select i1 %cmp, i1 %cmp1, i1 false
548 define i1 @auto_gen_16(double %a, double %b) {
549 ; CHECK-LABEL: @auto_gen_16(
550 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
551 ; CHECK-NEXT: ret i1 [[TMP1]]
553 %cmp = fcmp ole double %a, %b
554 %cmp1 = fcmp oeq double %a, %b
555 %retval = and i1 %cmp, %cmp1
559 define i1 @auto_gen_16_logical(double %a, double %b) {
560 ; CHECK-LABEL: @auto_gen_16_logical(
561 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
562 ; CHECK-NEXT: ret i1 [[TMP1]]
564 %cmp = fcmp ole double %a, %b
565 %cmp1 = fcmp oeq double %a, %b
566 %retval = select i1 %cmp, i1 %cmp1, i1 false
570 define i1 @auto_gen_17(double %a, double %b) {
571 ; CHECK-LABEL: @auto_gen_17(
572 ; CHECK-NEXT: ret i1 false
574 %cmp = fcmp ole double %a, %b
575 %cmp1 = fcmp ogt double %a, %b
576 %retval = and i1 %cmp, %cmp1
580 define i1 @auto_gen_17_logical(double %a, double %b) {
581 ; CHECK-LABEL: @auto_gen_17_logical(
582 ; CHECK-NEXT: ret i1 false
584 %cmp = fcmp ole double %a, %b
585 %cmp1 = fcmp ogt double %a, %b
586 %retval = select i1 %cmp, i1 %cmp1, i1 false
590 define i1 @auto_gen_18(double %a, double %b) {
591 ; CHECK-LABEL: @auto_gen_18(
592 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
593 ; CHECK-NEXT: ret i1 [[TMP1]]
595 %cmp = fcmp ole double %a, %b
596 %cmp1 = fcmp oge double %a, %b
597 %retval = and i1 %cmp, %cmp1
601 define i1 @auto_gen_18_logical(double %a, double %b) {
602 ; CHECK-LABEL: @auto_gen_18_logical(
603 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
604 ; CHECK-NEXT: ret i1 [[TMP1]]
606 %cmp = fcmp ole double %a, %b
607 %cmp1 = fcmp oge double %a, %b
608 %retval = select i1 %cmp, i1 %cmp1, i1 false
612 define i1 @auto_gen_19(double %a, double %b) {
613 ; CHECK-LABEL: @auto_gen_19(
614 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
615 ; CHECK-NEXT: ret i1 [[TMP1]]
617 %cmp = fcmp ole double %a, %b
618 %cmp1 = fcmp olt double %a, %b
619 %retval = and i1 %cmp, %cmp1
623 define i1 @auto_gen_19_logical(double %a, double %b) {
624 ; CHECK-LABEL: @auto_gen_19_logical(
625 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
626 ; CHECK-NEXT: ret i1 [[TMP1]]
628 %cmp = fcmp ole double %a, %b
629 %cmp1 = fcmp olt double %a, %b
630 %retval = select i1 %cmp, i1 %cmp1, i1 false
634 define i1 @auto_gen_20(double %a, double %b) {
635 ; CHECK-LABEL: @auto_gen_20(
636 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
637 ; CHECK-NEXT: ret i1 [[TMP1]]
639 %cmp = fcmp ole double %a, %b
640 %cmp1 = fcmp ole double %a, %b
641 %retval = and i1 %cmp, %cmp1
645 define i1 @auto_gen_20_logical(double %a, double %b) {
646 ; CHECK-LABEL: @auto_gen_20_logical(
647 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
648 ; CHECK-NEXT: ret i1 [[TMP1]]
650 %cmp = fcmp ole double %a, %b
651 %cmp1 = fcmp ole double %a, %b
652 %retval = select i1 %cmp, i1 %cmp1, i1 false
656 define i1 @auto_gen_21(double %a, double %b) {
657 ; CHECK-LABEL: @auto_gen_21(
658 ; CHECK-NEXT: ret i1 false
660 %cmp = fcmp one double %a, %b
661 %cmp1 = fcmp false double %a, %b
662 %retval = and i1 %cmp, %cmp1
666 define i1 @auto_gen_21_logical(double %a, double %b) {
667 ; CHECK-LABEL: @auto_gen_21_logical(
668 ; CHECK-NEXT: ret i1 false
670 %cmp = fcmp one double %a, %b
671 %cmp1 = fcmp false double %a, %b
672 %retval = select i1 %cmp, i1 %cmp1, i1 false
676 define i1 @auto_gen_22(double %a, double %b) {
677 ; CHECK-LABEL: @auto_gen_22(
678 ; CHECK-NEXT: ret i1 false
680 %cmp = fcmp one double %a, %b
681 %cmp1 = fcmp oeq double %a, %b
682 %retval = and i1 %cmp, %cmp1
686 define i1 @auto_gen_22_logical(double %a, double %b) {
687 ; CHECK-LABEL: @auto_gen_22_logical(
688 ; CHECK-NEXT: ret i1 false
690 %cmp = fcmp one double %a, %b
691 %cmp1 = fcmp oeq double %a, %b
692 %retval = select i1 %cmp, i1 %cmp1, i1 false
696 define i1 @auto_gen_23(double %a, double %b) {
697 ; CHECK-LABEL: @auto_gen_23(
698 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
699 ; CHECK-NEXT: ret i1 [[TMP1]]
701 %cmp = fcmp one double %a, %b
702 %cmp1 = fcmp ogt double %a, %b
703 %retval = and i1 %cmp, %cmp1
707 define i1 @auto_gen_23_logical(double %a, double %b) {
708 ; CHECK-LABEL: @auto_gen_23_logical(
709 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
710 ; CHECK-NEXT: ret i1 [[TMP1]]
712 %cmp = fcmp one double %a, %b
713 %cmp1 = fcmp ogt double %a, %b
714 %retval = select i1 %cmp, i1 %cmp1, i1 false
718 define i1 @auto_gen_24(double %a, double %b) {
719 ; CHECK-LABEL: @auto_gen_24(
720 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
721 ; CHECK-NEXT: ret i1 [[TMP1]]
723 %cmp = fcmp one double %a, %b
724 %cmp1 = fcmp oge double %a, %b
725 %retval = and i1 %cmp, %cmp1
729 define i1 @auto_gen_24_logical(double %a, double %b) {
730 ; CHECK-LABEL: @auto_gen_24_logical(
731 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
732 ; CHECK-NEXT: ret i1 [[TMP1]]
734 %cmp = fcmp one double %a, %b
735 %cmp1 = fcmp oge double %a, %b
736 %retval = select i1 %cmp, i1 %cmp1, i1 false
740 define i1 @auto_gen_25(double %a, double %b) {
741 ; CHECK-LABEL: @auto_gen_25(
742 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
743 ; CHECK-NEXT: ret i1 [[TMP1]]
745 %cmp = fcmp one double %a, %b
746 %cmp1 = fcmp olt double %a, %b
747 %retval = and i1 %cmp, %cmp1
751 define i1 @auto_gen_25_logical(double %a, double %b) {
752 ; CHECK-LABEL: @auto_gen_25_logical(
753 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
754 ; CHECK-NEXT: ret i1 [[TMP1]]
756 %cmp = fcmp one double %a, %b
757 %cmp1 = fcmp olt double %a, %b
758 %retval = select i1 %cmp, i1 %cmp1, i1 false
762 define i1 @auto_gen_26(double %a, double %b) {
763 ; CHECK-LABEL: @auto_gen_26(
764 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
765 ; CHECK-NEXT: ret i1 [[TMP1]]
767 %cmp = fcmp one double %a, %b
768 %cmp1 = fcmp ole double %a, %b
769 %retval = and i1 %cmp, %cmp1
773 define i1 @auto_gen_26_logical(double %a, double %b) {
774 ; CHECK-LABEL: @auto_gen_26_logical(
775 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
776 ; CHECK-NEXT: ret i1 [[TMP1]]
778 %cmp = fcmp one double %a, %b
779 %cmp1 = fcmp ole double %a, %b
780 %retval = select i1 %cmp, i1 %cmp1, i1 false
784 define i1 @auto_gen_27(double %a, double %b) {
785 ; CHECK-LABEL: @auto_gen_27(
786 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
787 ; CHECK-NEXT: ret i1 [[TMP1]]
789 %cmp = fcmp one double %a, %b
790 %cmp1 = fcmp one double %a, %b
791 %retval = and i1 %cmp, %cmp1
795 define i1 @auto_gen_27_logical(double %a, double %b) {
796 ; CHECK-LABEL: @auto_gen_27_logical(
797 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
798 ; CHECK-NEXT: ret i1 [[TMP1]]
800 %cmp = fcmp one double %a, %b
801 %cmp1 = fcmp one double %a, %b
802 %retval = select i1 %cmp, i1 %cmp1, i1 false
806 define i1 @auto_gen_28(double %a, double %b) {
807 ; CHECK-LABEL: @auto_gen_28(
808 ; CHECK-NEXT: ret i1 false
810 %cmp = fcmp ord double %a, %b
811 %cmp1 = fcmp false double %a, %b
812 %retval = and i1 %cmp, %cmp1
816 define i1 @auto_gen_28_logical(double %a, double %b) {
817 ; CHECK-LABEL: @auto_gen_28_logical(
818 ; CHECK-NEXT: ret i1 false
820 %cmp = fcmp ord double %a, %b
821 %cmp1 = fcmp false double %a, %b
822 %retval = select i1 %cmp, i1 %cmp1, i1 false
826 define i1 @auto_gen_29(double %a, double %b) {
827 ; CHECK-LABEL: @auto_gen_29(
828 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
829 ; CHECK-NEXT: ret i1 [[TMP1]]
831 %cmp = fcmp ord double %a, %b
832 %cmp1 = fcmp oeq double %a, %b
833 %retval = and i1 %cmp, %cmp1
837 define i1 @auto_gen_29_logical(double %a, double %b) {
838 ; CHECK-LABEL: @auto_gen_29_logical(
839 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
840 ; CHECK-NEXT: ret i1 [[TMP1]]
842 %cmp = fcmp ord double %a, %b
843 %cmp1 = fcmp oeq double %a, %b
844 %retval = select i1 %cmp, i1 %cmp1, i1 false
848 define i1 @auto_gen_30(double %a, double %b) {
849 ; CHECK-LABEL: @auto_gen_30(
850 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
851 ; CHECK-NEXT: ret i1 [[TMP1]]
853 %cmp = fcmp ord double %a, %b
854 %cmp1 = fcmp ogt double %a, %b
855 %retval = and i1 %cmp, %cmp1
859 define i1 @auto_gen_30_logical(double %a, double %b) {
860 ; CHECK-LABEL: @auto_gen_30_logical(
861 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
862 ; CHECK-NEXT: ret i1 [[TMP1]]
864 %cmp = fcmp ord double %a, %b
865 %cmp1 = fcmp ogt double %a, %b
866 %retval = select i1 %cmp, i1 %cmp1, i1 false
870 define i1 @auto_gen_31(double %a, double %b) {
871 ; CHECK-LABEL: @auto_gen_31(
872 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
873 ; CHECK-NEXT: ret i1 [[TMP1]]
875 %cmp = fcmp ord double %a, %b
876 %cmp1 = fcmp oge double %a, %b
877 %retval = and i1 %cmp, %cmp1
881 define i1 @auto_gen_31_logical(double %a, double %b) {
882 ; CHECK-LABEL: @auto_gen_31_logical(
883 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
884 ; CHECK-NEXT: ret i1 [[TMP1]]
886 %cmp = fcmp ord double %a, %b
887 %cmp1 = fcmp oge double %a, %b
888 %retval = select i1 %cmp, i1 %cmp1, i1 false
892 define i1 @auto_gen_32(double %a, double %b) {
893 ; CHECK-LABEL: @auto_gen_32(
894 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
895 ; CHECK-NEXT: ret i1 [[TMP1]]
897 %cmp = fcmp ord double %a, %b
898 %cmp1 = fcmp olt double %a, %b
899 %retval = and i1 %cmp, %cmp1
903 define i1 @auto_gen_32_logical(double %a, double %b) {
904 ; CHECK-LABEL: @auto_gen_32_logical(
905 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
906 ; CHECK-NEXT: ret i1 [[TMP1]]
908 %cmp = fcmp ord double %a, %b
909 %cmp1 = fcmp olt double %a, %b
910 %retval = select i1 %cmp, i1 %cmp1, i1 false
914 define i1 @auto_gen_33(double %a, double %b) {
915 ; CHECK-LABEL: @auto_gen_33(
916 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
917 ; CHECK-NEXT: ret i1 [[TMP1]]
919 %cmp = fcmp ord double %a, %b
920 %cmp1 = fcmp ole double %a, %b
921 %retval = and i1 %cmp, %cmp1
925 define i1 @auto_gen_33_logical(double %a, double %b) {
926 ; CHECK-LABEL: @auto_gen_33_logical(
927 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
928 ; CHECK-NEXT: ret i1 [[TMP1]]
930 %cmp = fcmp ord double %a, %b
931 %cmp1 = fcmp ole double %a, %b
932 %retval = select i1 %cmp, i1 %cmp1, i1 false
936 define i1 @auto_gen_34(double %a, double %b) {
937 ; CHECK-LABEL: @auto_gen_34(
938 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
939 ; CHECK-NEXT: ret i1 [[TMP1]]
941 %cmp = fcmp ord double %a, %b
942 %cmp1 = fcmp one double %a, %b
943 %retval = and i1 %cmp, %cmp1
947 define i1 @auto_gen_34_logical(double %a, double %b) {
948 ; CHECK-LABEL: @auto_gen_34_logical(
949 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
950 ; CHECK-NEXT: ret i1 [[TMP1]]
952 %cmp = fcmp ord double %a, %b
953 %cmp1 = fcmp one double %a, %b
954 %retval = select i1 %cmp, i1 %cmp1, i1 false
958 define i1 @auto_gen_35(double %a, double %b) {
959 ; CHECK-LABEL: @auto_gen_35(
960 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
961 ; CHECK-NEXT: ret i1 [[TMP1]]
963 %cmp = fcmp ord double %a, %b
964 %cmp1 = fcmp ord double %a, %b
965 %retval = and i1 %cmp, %cmp1
969 define i1 @auto_gen_35_logical(double %a, double %b) {
970 ; CHECK-LABEL: @auto_gen_35_logical(
971 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
972 ; CHECK-NEXT: ret i1 [[TMP1]]
974 %cmp = fcmp ord double %a, %b
975 %cmp1 = fcmp ord double %a, %b
976 %retval = select i1 %cmp, i1 %cmp1, i1 false
980 define i1 @auto_gen_36(double %a, double %b) {
981 ; CHECK-LABEL: @auto_gen_36(
982 ; CHECK-NEXT: ret i1 false
984 %cmp = fcmp ueq double %a, %b
985 %cmp1 = fcmp false double %a, %b
986 %retval = and i1 %cmp, %cmp1
990 define i1 @auto_gen_36_logical(double %a, double %b) {
991 ; CHECK-LABEL: @auto_gen_36_logical(
992 ; CHECK-NEXT: ret i1 false
994 %cmp = fcmp ueq double %a, %b
995 %cmp1 = fcmp false double %a, %b
996 %retval = select i1 %cmp, i1 %cmp1, i1 false
1000 define i1 @auto_gen_37(double %a, double %b) {
1001 ; CHECK-LABEL: @auto_gen_37(
1002 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
1003 ; CHECK-NEXT: ret i1 [[TMP1]]
1005 %cmp = fcmp ueq double %a, %b
1006 %cmp1 = fcmp oeq double %a, %b
1007 %retval = and i1 %cmp, %cmp1
1011 define i1 @auto_gen_37_logical(double %a, double %b) {
1012 ; CHECK-LABEL: @auto_gen_37_logical(
1013 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
1014 ; CHECK-NEXT: ret i1 [[TMP1]]
1016 %cmp = fcmp ueq double %a, %b
1017 %cmp1 = fcmp oeq double %a, %b
1018 %retval = select i1 %cmp, i1 %cmp1, i1 false
1022 define i1 @auto_gen_38(double %a, double %b) {
1023 ; CHECK-LABEL: @auto_gen_38(
1024 ; CHECK-NEXT: ret i1 false
1026 %cmp = fcmp ueq double %a, %b
1027 %cmp1 = fcmp ogt double %a, %b
1028 %retval = and i1 %cmp, %cmp1
1032 define i1 @auto_gen_38_logical(double %a, double %b) {
1033 ; CHECK-LABEL: @auto_gen_38_logical(
1034 ; CHECK-NEXT: ret i1 false
1036 %cmp = fcmp ueq double %a, %b
1037 %cmp1 = fcmp ogt double %a, %b
1038 %retval = select i1 %cmp, i1 %cmp1, i1 false
1042 define i1 @auto_gen_39(double %a, double %b) {
1043 ; CHECK-LABEL: @auto_gen_39(
1044 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
1045 ; CHECK-NEXT: ret i1 [[TMP1]]
1047 %cmp = fcmp ueq double %a, %b
1048 %cmp1 = fcmp oge double %a, %b
1049 %retval = and i1 %cmp, %cmp1
1053 define i1 @auto_gen_39_logical(double %a, double %b) {
1054 ; CHECK-LABEL: @auto_gen_39_logical(
1055 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
1056 ; CHECK-NEXT: ret i1 [[TMP1]]
1058 %cmp = fcmp ueq double %a, %b
1059 %cmp1 = fcmp oge double %a, %b
1060 %retval = select i1 %cmp, i1 %cmp1, i1 false
1064 define i1 @auto_gen_40(double %a, double %b) {
1065 ; CHECK-LABEL: @auto_gen_40(
1066 ; CHECK-NEXT: ret i1 false
1068 %cmp = fcmp ueq double %a, %b
1069 %cmp1 = fcmp olt double %a, %b
1070 %retval = and i1 %cmp, %cmp1
1074 define i1 @auto_gen_40_logical(double %a, double %b) {
1075 ; CHECK-LABEL: @auto_gen_40_logical(
1076 ; CHECK-NEXT: ret i1 false
1078 %cmp = fcmp ueq double %a, %b
1079 %cmp1 = fcmp olt double %a, %b
1080 %retval = select i1 %cmp, i1 %cmp1, i1 false
1084 define i1 @auto_gen_41(double %a, double %b) {
1085 ; CHECK-LABEL: @auto_gen_41(
1086 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
1087 ; CHECK-NEXT: ret i1 [[TMP1]]
1089 %cmp = fcmp ueq double %a, %b
1090 %cmp1 = fcmp ole double %a, %b
1091 %retval = and i1 %cmp, %cmp1
1095 define i1 @auto_gen_41_logical(double %a, double %b) {
1096 ; CHECK-LABEL: @auto_gen_41_logical(
1097 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
1098 ; CHECK-NEXT: ret i1 [[TMP1]]
1100 %cmp = fcmp ueq double %a, %b
1101 %cmp1 = fcmp ole double %a, %b
1102 %retval = select i1 %cmp, i1 %cmp1, i1 false
1106 define i1 @auto_gen_42(double %a, double %b) {
1107 ; CHECK-LABEL: @auto_gen_42(
1108 ; CHECK-NEXT: ret i1 false
1110 %cmp = fcmp ueq double %a, %b
1111 %cmp1 = fcmp one double %a, %b
1112 %retval = and i1 %cmp, %cmp1
1116 define i1 @auto_gen_42_logical(double %a, double %b) {
1117 ; CHECK-LABEL: @auto_gen_42_logical(
1118 ; CHECK-NEXT: ret i1 false
1120 %cmp = fcmp ueq double %a, %b
1121 %cmp1 = fcmp one double %a, %b
1122 %retval = select i1 %cmp, i1 %cmp1, i1 false
1126 define i1 @auto_gen_43(double %a, double %b) {
1127 ; CHECK-LABEL: @auto_gen_43(
1128 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
1129 ; CHECK-NEXT: ret i1 [[TMP1]]
1131 %cmp = fcmp ueq double %a, %b
1132 %cmp1 = fcmp ord double %a, %b
1133 %retval = and i1 %cmp, %cmp1
1137 define i1 @auto_gen_43_logical(double %a, double %b) {
1138 ; CHECK-LABEL: @auto_gen_43_logical(
1139 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
1140 ; CHECK-NEXT: ret i1 [[TMP1]]
1142 %cmp = fcmp ueq double %a, %b
1143 %cmp1 = fcmp ord double %a, %b
1144 %retval = select i1 %cmp, i1 %cmp1, i1 false
1148 define i1 @auto_gen_44(double %a, double %b) {
1149 ; CHECK-LABEL: @auto_gen_44(
1150 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
1151 ; CHECK-NEXT: ret i1 [[TMP1]]
1153 %cmp = fcmp ueq double %a, %b
1154 %cmp1 = fcmp ueq double %a, %b
1155 %retval = and i1 %cmp, %cmp1
1159 define i1 @auto_gen_44_logical(double %a, double %b) {
1160 ; CHECK-LABEL: @auto_gen_44_logical(
1161 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
1162 ; CHECK-NEXT: ret i1 [[TMP1]]
1164 %cmp = fcmp ueq double %a, %b
1165 %cmp1 = fcmp ueq double %a, %b
1166 %retval = select i1 %cmp, i1 %cmp1, i1 false
1170 define i1 @auto_gen_45(double %a, double %b) {
1171 ; CHECK-LABEL: @auto_gen_45(
1172 ; CHECK-NEXT: ret i1 false
1174 %cmp = fcmp ugt double %a, %b
1175 %cmp1 = fcmp false double %a, %b
1176 %retval = and i1 %cmp, %cmp1
1180 define i1 @auto_gen_45_logical(double %a, double %b) {
1181 ; CHECK-LABEL: @auto_gen_45_logical(
1182 ; CHECK-NEXT: ret i1 false
1184 %cmp = fcmp ugt double %a, %b
1185 %cmp1 = fcmp false double %a, %b
1186 %retval = select i1 %cmp, i1 %cmp1, i1 false
1190 define i1 @auto_gen_46(double %a, double %b) {
1191 ; CHECK-LABEL: @auto_gen_46(
1192 ; CHECK-NEXT: ret i1 false
1194 %cmp = fcmp ugt double %a, %b
1195 %cmp1 = fcmp oeq double %a, %b
1196 %retval = and i1 %cmp, %cmp1
1200 define i1 @auto_gen_46_logical(double %a, double %b) {
1201 ; CHECK-LABEL: @auto_gen_46_logical(
1202 ; CHECK-NEXT: ret i1 false
1204 %cmp = fcmp ugt double %a, %b
1205 %cmp1 = fcmp oeq double %a, %b
1206 %retval = select i1 %cmp, i1 %cmp1, i1 false
1210 define i1 @auto_gen_47(double %a, double %b) {
1211 ; CHECK-LABEL: @auto_gen_47(
1212 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
1213 ; CHECK-NEXT: ret i1 [[TMP1]]
1215 %cmp = fcmp ugt double %a, %b
1216 %cmp1 = fcmp ogt double %a, %b
1217 %retval = and i1 %cmp, %cmp1
1221 define i1 @auto_gen_47_logical(double %a, double %b) {
1222 ; CHECK-LABEL: @auto_gen_47_logical(
1223 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
1224 ; CHECK-NEXT: ret i1 [[TMP1]]
1226 %cmp = fcmp ugt double %a, %b
1227 %cmp1 = fcmp ogt double %a, %b
1228 %retval = select i1 %cmp, i1 %cmp1, i1 false
1232 define i1 @auto_gen_48(double %a, double %b) {
1233 ; CHECK-LABEL: @auto_gen_48(
1234 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
1235 ; CHECK-NEXT: ret i1 [[TMP1]]
1237 %cmp = fcmp ugt double %a, %b
1238 %cmp1 = fcmp oge double %a, %b
1239 %retval = and i1 %cmp, %cmp1
1243 define i1 @auto_gen_48_logical(double %a, double %b) {
1244 ; CHECK-LABEL: @auto_gen_48_logical(
1245 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
1246 ; CHECK-NEXT: ret i1 [[TMP1]]
1248 %cmp = fcmp ugt double %a, %b
1249 %cmp1 = fcmp oge double %a, %b
1250 %retval = select i1 %cmp, i1 %cmp1, i1 false
1254 define i1 @auto_gen_49(double %a, double %b) {
1255 ; CHECK-LABEL: @auto_gen_49(
1256 ; CHECK-NEXT: ret i1 false
1258 %cmp = fcmp ugt double %a, %b
1259 %cmp1 = fcmp olt double %a, %b
1260 %retval = and i1 %cmp, %cmp1
1264 define i1 @auto_gen_49_logical(double %a, double %b) {
1265 ; CHECK-LABEL: @auto_gen_49_logical(
1266 ; CHECK-NEXT: ret i1 false
1268 %cmp = fcmp ugt double %a, %b
1269 %cmp1 = fcmp olt double %a, %b
1270 %retval = select i1 %cmp, i1 %cmp1, i1 false
1274 define i1 @auto_gen_50(double %a, double %b) {
1275 ; CHECK-LABEL: @auto_gen_50(
1276 ; CHECK-NEXT: ret i1 false
1278 %cmp = fcmp ugt double %a, %b
1279 %cmp1 = fcmp ole double %a, %b
1280 %retval = and i1 %cmp, %cmp1
1284 define i1 @auto_gen_50_logical(double %a, double %b) {
1285 ; CHECK-LABEL: @auto_gen_50_logical(
1286 ; CHECK-NEXT: ret i1 false
1288 %cmp = fcmp ugt double %a, %b
1289 %cmp1 = fcmp ole double %a, %b
1290 %retval = select i1 %cmp, i1 %cmp1, i1 false
1294 define i1 @auto_gen_51(double %a, double %b) {
1295 ; CHECK-LABEL: @auto_gen_51(
1296 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
1297 ; CHECK-NEXT: ret i1 [[TMP1]]
1299 %cmp = fcmp ugt double %a, %b
1300 %cmp1 = fcmp one double %a, %b
1301 %retval = and i1 %cmp, %cmp1
1305 define i1 @auto_gen_51_logical(double %a, double %b) {
1306 ; CHECK-LABEL: @auto_gen_51_logical(
1307 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
1308 ; CHECK-NEXT: ret i1 [[TMP1]]
1310 %cmp = fcmp ugt double %a, %b
1311 %cmp1 = fcmp one double %a, %b
1312 %retval = select i1 %cmp, i1 %cmp1, i1 false
1316 define i1 @auto_gen_52(double %a, double %b) {
1317 ; CHECK-LABEL: @auto_gen_52(
1318 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
1319 ; CHECK-NEXT: ret i1 [[TMP1]]
1321 %cmp = fcmp ugt double %a, %b
1322 %cmp1 = fcmp ord double %a, %b
1323 %retval = and i1 %cmp, %cmp1
1327 define i1 @auto_gen_52_logical(double %a, double %b) {
1328 ; CHECK-LABEL: @auto_gen_52_logical(
1329 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
1330 ; CHECK-NEXT: ret i1 [[TMP1]]
1332 %cmp = fcmp ugt double %a, %b
1333 %cmp1 = fcmp ord double %a, %b
1334 %retval = select i1 %cmp, i1 %cmp1, i1 false
1338 define i1 @auto_gen_53(double %a, double %b) {
1339 ; CHECK-LABEL: @auto_gen_53(
1340 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
1341 ; CHECK-NEXT: ret i1 [[TMP1]]
1343 %cmp = fcmp ugt double %a, %b
1344 %cmp1 = fcmp ueq double %a, %b
1345 %retval = and i1 %cmp, %cmp1
1349 define i1 @auto_gen_53_logical(double %a, double %b) {
1350 ; CHECK-LABEL: @auto_gen_53_logical(
1351 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
1352 ; CHECK-NEXT: ret i1 [[TMP1]]
1354 %cmp = fcmp ugt double %a, %b
1355 %cmp1 = fcmp ueq double %a, %b
1356 %retval = select i1 %cmp, i1 %cmp1, i1 false
1360 define i1 @auto_gen_54(double %a, double %b) {
1361 ; CHECK-LABEL: @auto_gen_54(
1362 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
1363 ; CHECK-NEXT: ret i1 [[TMP1]]
1365 %cmp = fcmp ugt double %a, %b
1366 %cmp1 = fcmp ugt double %a, %b
1367 %retval = and i1 %cmp, %cmp1
1371 define i1 @auto_gen_54_logical(double %a, double %b) {
1372 ; CHECK-LABEL: @auto_gen_54_logical(
1373 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
1374 ; CHECK-NEXT: ret i1 [[TMP1]]
1376 %cmp = fcmp ugt double %a, %b
1377 %cmp1 = fcmp ugt double %a, %b
1378 %retval = select i1 %cmp, i1 %cmp1, i1 false
1382 define i1 @auto_gen_55(double %a, double %b) {
1383 ; CHECK-LABEL: @auto_gen_55(
1384 ; CHECK-NEXT: ret i1 false
1386 %cmp = fcmp uge double %a, %b
1387 %cmp1 = fcmp false double %a, %b
1388 %retval = and i1 %cmp, %cmp1
1392 define i1 @auto_gen_55_logical(double %a, double %b) {
1393 ; CHECK-LABEL: @auto_gen_55_logical(
1394 ; CHECK-NEXT: ret i1 false
1396 %cmp = fcmp uge double %a, %b
1397 %cmp1 = fcmp false double %a, %b
1398 %retval = select i1 %cmp, i1 %cmp1, i1 false
1402 define i1 @auto_gen_56(double %a, double %b) {
1403 ; CHECK-LABEL: @auto_gen_56(
1404 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
1405 ; CHECK-NEXT: ret i1 [[TMP1]]
1407 %cmp = fcmp uge double %a, %b
1408 %cmp1 = fcmp oeq double %a, %b
1409 %retval = and i1 %cmp, %cmp1
1413 define i1 @auto_gen_56_logical(double %a, double %b) {
1414 ; CHECK-LABEL: @auto_gen_56_logical(
1415 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
1416 ; CHECK-NEXT: ret i1 [[TMP1]]
1418 %cmp = fcmp uge double %a, %b
1419 %cmp1 = fcmp oeq double %a, %b
1420 %retval = select i1 %cmp, i1 %cmp1, i1 false
1424 define i1 @auto_gen_57(double %a, double %b) {
1425 ; CHECK-LABEL: @auto_gen_57(
1426 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
1427 ; CHECK-NEXT: ret i1 [[TMP1]]
1429 %cmp = fcmp uge double %a, %b
1430 %cmp1 = fcmp ogt double %a, %b
1431 %retval = and i1 %cmp, %cmp1
1435 define i1 @auto_gen_57_logical(double %a, double %b) {
1436 ; CHECK-LABEL: @auto_gen_57_logical(
1437 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
1438 ; CHECK-NEXT: ret i1 [[TMP1]]
1440 %cmp = fcmp uge double %a, %b
1441 %cmp1 = fcmp ogt double %a, %b
1442 %retval = select i1 %cmp, i1 %cmp1, i1 false
1446 define i1 @auto_gen_58(double %a, double %b) {
1447 ; CHECK-LABEL: @auto_gen_58(
1448 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
1449 ; CHECK-NEXT: ret i1 [[TMP1]]
1451 %cmp = fcmp uge double %a, %b
1452 %cmp1 = fcmp oge double %a, %b
1453 %retval = and i1 %cmp, %cmp1
1457 define i1 @auto_gen_58_logical(double %a, double %b) {
1458 ; CHECK-LABEL: @auto_gen_58_logical(
1459 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
1460 ; CHECK-NEXT: ret i1 [[TMP1]]
1462 %cmp = fcmp uge double %a, %b
1463 %cmp1 = fcmp oge double %a, %b
1464 %retval = select i1 %cmp, i1 %cmp1, i1 false
1468 define i1 @auto_gen_59(double %a, double %b) {
1469 ; CHECK-LABEL: @auto_gen_59(
1470 ; CHECK-NEXT: ret i1 false
1472 %cmp = fcmp uge double %a, %b
1473 %cmp1 = fcmp olt double %a, %b
1474 %retval = and i1 %cmp, %cmp1
1478 define i1 @auto_gen_59_logical(double %a, double %b) {
1479 ; CHECK-LABEL: @auto_gen_59_logical(
1480 ; CHECK-NEXT: ret i1 false
1482 %cmp = fcmp uge double %a, %b
1483 %cmp1 = fcmp olt double %a, %b
1484 %retval = select i1 %cmp, i1 %cmp1, i1 false
1488 define i1 @auto_gen_60(double %a, double %b) {
1489 ; CHECK-LABEL: @auto_gen_60(
1490 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
1491 ; CHECK-NEXT: ret i1 [[TMP1]]
1493 %cmp = fcmp uge double %a, %b
1494 %cmp1 = fcmp ole double %a, %b
1495 %retval = and i1 %cmp, %cmp1
1499 define i1 @auto_gen_60_logical(double %a, double %b) {
1500 ; CHECK-LABEL: @auto_gen_60_logical(
1501 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
1502 ; CHECK-NEXT: ret i1 [[TMP1]]
1504 %cmp = fcmp uge double %a, %b
1505 %cmp1 = fcmp ole double %a, %b
1506 %retval = select i1 %cmp, i1 %cmp1, i1 false
1510 define i1 @auto_gen_61(double %a, double %b) {
1511 ; CHECK-LABEL: @auto_gen_61(
1512 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
1513 ; CHECK-NEXT: ret i1 [[TMP1]]
1515 %cmp = fcmp uge double %a, %b
1516 %cmp1 = fcmp one double %a, %b
1517 %retval = and i1 %cmp, %cmp1
1521 define i1 @auto_gen_61_logical(double %a, double %b) {
1522 ; CHECK-LABEL: @auto_gen_61_logical(
1523 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
1524 ; CHECK-NEXT: ret i1 [[TMP1]]
1526 %cmp = fcmp uge double %a, %b
1527 %cmp1 = fcmp one double %a, %b
1528 %retval = select i1 %cmp, i1 %cmp1, i1 false
1532 define i1 @auto_gen_62(double %a, double %b) {
1533 ; CHECK-LABEL: @auto_gen_62(
1534 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
1535 ; CHECK-NEXT: ret i1 [[TMP1]]
1537 %cmp = fcmp uge double %a, %b
1538 %cmp1 = fcmp ord double %a, %b
1539 %retval = and i1 %cmp, %cmp1
1543 define i1 @auto_gen_62_logical(double %a, double %b) {
1544 ; CHECK-LABEL: @auto_gen_62_logical(
1545 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
1546 ; CHECK-NEXT: ret i1 [[TMP1]]
1548 %cmp = fcmp uge double %a, %b
1549 %cmp1 = fcmp ord double %a, %b
1550 %retval = select i1 %cmp, i1 %cmp1, i1 false
1554 define i1 @auto_gen_63(double %a, double %b) {
1555 ; CHECK-LABEL: @auto_gen_63(
1556 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
1557 ; CHECK-NEXT: ret i1 [[TMP1]]
1559 %cmp = fcmp uge double %a, %b
1560 %cmp1 = fcmp ueq double %a, %b
1561 %retval = and i1 %cmp, %cmp1
1565 define i1 @auto_gen_63_logical(double %a, double %b) {
1566 ; CHECK-LABEL: @auto_gen_63_logical(
1567 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
1568 ; CHECK-NEXT: ret i1 [[TMP1]]
1570 %cmp = fcmp uge double %a, %b
1571 %cmp1 = fcmp ueq double %a, %b
1572 %retval = select i1 %cmp, i1 %cmp1, i1 false
1576 define i1 @auto_gen_64(double %a, double %b) {
1577 ; CHECK-LABEL: @auto_gen_64(
1578 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
1579 ; CHECK-NEXT: ret i1 [[TMP1]]
1581 %cmp = fcmp uge double %a, %b
1582 %cmp1 = fcmp ugt double %a, %b
1583 %retval = and i1 %cmp, %cmp1
1587 define i1 @auto_gen_64_logical(double %a, double %b) {
1588 ; CHECK-LABEL: @auto_gen_64_logical(
1589 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
1590 ; CHECK-NEXT: ret i1 [[TMP1]]
1592 %cmp = fcmp uge double %a, %b
1593 %cmp1 = fcmp ugt double %a, %b
1594 %retval = select i1 %cmp, i1 %cmp1, i1 false
1598 define i1 @auto_gen_65(double %a, double %b) {
1599 ; CHECK-LABEL: @auto_gen_65(
1600 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
1601 ; CHECK-NEXT: ret i1 [[TMP1]]
1603 %cmp = fcmp uge double %a, %b
1604 %cmp1 = fcmp uge double %a, %b
1605 %retval = and i1 %cmp, %cmp1
1609 define i1 @auto_gen_65_logical(double %a, double %b) {
1610 ; CHECK-LABEL: @auto_gen_65_logical(
1611 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
1612 ; CHECK-NEXT: ret i1 [[TMP1]]
1614 %cmp = fcmp uge double %a, %b
1615 %cmp1 = fcmp uge double %a, %b
1616 %retval = select i1 %cmp, i1 %cmp1, i1 false
1620 define i1 @auto_gen_66(double %a, double %b) {
1621 ; CHECK-LABEL: @auto_gen_66(
1622 ; CHECK-NEXT: ret i1 false
1624 %cmp = fcmp ult double %a, %b
1625 %cmp1 = fcmp false double %a, %b
1626 %retval = and i1 %cmp, %cmp1
1630 define i1 @auto_gen_66_logical(double %a, double %b) {
1631 ; CHECK-LABEL: @auto_gen_66_logical(
1632 ; CHECK-NEXT: ret i1 false
1634 %cmp = fcmp ult double %a, %b
1635 %cmp1 = fcmp false double %a, %b
1636 %retval = select i1 %cmp, i1 %cmp1, i1 false
1640 define i1 @auto_gen_67(double %a, double %b) {
1641 ; CHECK-LABEL: @auto_gen_67(
1642 ; CHECK-NEXT: ret i1 false
1644 %cmp = fcmp ult double %a, %b
1645 %cmp1 = fcmp oeq double %a, %b
1646 %retval = and i1 %cmp, %cmp1
1650 define i1 @auto_gen_67_logical(double %a, double %b) {
1651 ; CHECK-LABEL: @auto_gen_67_logical(
1652 ; CHECK-NEXT: ret i1 false
1654 %cmp = fcmp ult double %a, %b
1655 %cmp1 = fcmp oeq double %a, %b
1656 %retval = select i1 %cmp, i1 %cmp1, i1 false
1660 define i1 @auto_gen_68(double %a, double %b) {
1661 ; CHECK-LABEL: @auto_gen_68(
1662 ; CHECK-NEXT: ret i1 false
1664 %cmp = fcmp ult double %a, %b
1665 %cmp1 = fcmp ogt double %a, %b
1666 %retval = and i1 %cmp, %cmp1
1670 define i1 @auto_gen_68_logical(double %a, double %b) {
1671 ; CHECK-LABEL: @auto_gen_68_logical(
1672 ; CHECK-NEXT: ret i1 false
1674 %cmp = fcmp ult double %a, %b
1675 %cmp1 = fcmp ogt double %a, %b
1676 %retval = select i1 %cmp, i1 %cmp1, i1 false
1680 define i1 @auto_gen_69(double %a, double %b) {
1681 ; CHECK-LABEL: @auto_gen_69(
1682 ; CHECK-NEXT: ret i1 false
1684 %cmp = fcmp ult double %a, %b
1685 %cmp1 = fcmp oge double %a, %b
1686 %retval = and i1 %cmp, %cmp1
1690 define i1 @auto_gen_69_logical(double %a, double %b) {
1691 ; CHECK-LABEL: @auto_gen_69_logical(
1692 ; CHECK-NEXT: ret i1 false
1694 %cmp = fcmp ult double %a, %b
1695 %cmp1 = fcmp oge double %a, %b
1696 %retval = select i1 %cmp, i1 %cmp1, i1 false
1700 define i1 @auto_gen_70(double %a, double %b) {
1701 ; CHECK-LABEL: @auto_gen_70(
1702 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
1703 ; CHECK-NEXT: ret i1 [[TMP1]]
1705 %cmp = fcmp ult double %a, %b
1706 %cmp1 = fcmp olt double %a, %b
1707 %retval = and i1 %cmp, %cmp1
1711 define i1 @auto_gen_70_logical(double %a, double %b) {
1712 ; CHECK-LABEL: @auto_gen_70_logical(
1713 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
1714 ; CHECK-NEXT: ret i1 [[TMP1]]
1716 %cmp = fcmp ult double %a, %b
1717 %cmp1 = fcmp olt double %a, %b
1718 %retval = select i1 %cmp, i1 %cmp1, i1 false
1722 define i1 @auto_gen_71(double %a, double %b) {
1723 ; CHECK-LABEL: @auto_gen_71(
1724 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
1725 ; CHECK-NEXT: ret i1 [[TMP1]]
1727 %cmp = fcmp ult double %a, %b
1728 %cmp1 = fcmp ole double %a, %b
1729 %retval = and i1 %cmp, %cmp1
1733 define i1 @auto_gen_71_logical(double %a, double %b) {
1734 ; CHECK-LABEL: @auto_gen_71_logical(
1735 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
1736 ; CHECK-NEXT: ret i1 [[TMP1]]
1738 %cmp = fcmp ult double %a, %b
1739 %cmp1 = fcmp ole double %a, %b
1740 %retval = select i1 %cmp, i1 %cmp1, i1 false
1744 define i1 @auto_gen_72(double %a, double %b) {
1745 ; CHECK-LABEL: @auto_gen_72(
1746 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
1747 ; CHECK-NEXT: ret i1 [[TMP1]]
1749 %cmp = fcmp ult double %a, %b
1750 %cmp1 = fcmp one double %a, %b
1751 %retval = and i1 %cmp, %cmp1
1755 define i1 @auto_gen_72_logical(double %a, double %b) {
1756 ; CHECK-LABEL: @auto_gen_72_logical(
1757 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
1758 ; CHECK-NEXT: ret i1 [[TMP1]]
1760 %cmp = fcmp ult double %a, %b
1761 %cmp1 = fcmp one double %a, %b
1762 %retval = select i1 %cmp, i1 %cmp1, i1 false
1766 define i1 @auto_gen_73(double %a, double %b) {
1767 ; CHECK-LABEL: @auto_gen_73(
1768 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
1769 ; CHECK-NEXT: ret i1 [[TMP1]]
1771 %cmp = fcmp ult double %a, %b
1772 %cmp1 = fcmp ord double %a, %b
1773 %retval = and i1 %cmp, %cmp1
1777 define i1 @auto_gen_73_logical(double %a, double %b) {
1778 ; CHECK-LABEL: @auto_gen_73_logical(
1779 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
1780 ; CHECK-NEXT: ret i1 [[TMP1]]
1782 %cmp = fcmp ult double %a, %b
1783 %cmp1 = fcmp ord double %a, %b
1784 %retval = select i1 %cmp, i1 %cmp1, i1 false
1788 define i1 @auto_gen_74(double %a, double %b) {
1789 ; CHECK-LABEL: @auto_gen_74(
1790 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
1791 ; CHECK-NEXT: ret i1 [[TMP1]]
1793 %cmp = fcmp ult double %a, %b
1794 %cmp1 = fcmp ueq double %a, %b
1795 %retval = and i1 %cmp, %cmp1
1799 define i1 @auto_gen_74_logical(double %a, double %b) {
1800 ; CHECK-LABEL: @auto_gen_74_logical(
1801 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
1802 ; CHECK-NEXT: ret i1 [[TMP1]]
1804 %cmp = fcmp ult double %a, %b
1805 %cmp1 = fcmp ueq double %a, %b
1806 %retval = select i1 %cmp, i1 %cmp1, i1 false
1810 define i1 @auto_gen_75(double %a, double %b) {
1811 ; CHECK-LABEL: @auto_gen_75(
1812 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
1813 ; CHECK-NEXT: ret i1 [[TMP1]]
1815 %cmp = fcmp ult double %a, %b
1816 %cmp1 = fcmp ugt double %a, %b
1817 %retval = and i1 %cmp, %cmp1
1821 define i1 @auto_gen_75_logical(double %a, double %b) {
1822 ; CHECK-LABEL: @auto_gen_75_logical(
1823 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
1824 ; CHECK-NEXT: ret i1 [[TMP1]]
1826 %cmp = fcmp ult double %a, %b
1827 %cmp1 = fcmp ugt double %a, %b
1828 %retval = select i1 %cmp, i1 %cmp1, i1 false
1832 define i1 @auto_gen_76(double %a, double %b) {
1833 ; CHECK-LABEL: @auto_gen_76(
1834 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
1835 ; CHECK-NEXT: ret i1 [[TMP1]]
1837 %cmp = fcmp ult double %a, %b
1838 %cmp1 = fcmp uge double %a, %b
1839 %retval = and i1 %cmp, %cmp1
1843 define i1 @auto_gen_76_logical(double %a, double %b) {
1844 ; CHECK-LABEL: @auto_gen_76_logical(
1845 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
1846 ; CHECK-NEXT: ret i1 [[TMP1]]
1848 %cmp = fcmp ult double %a, %b
1849 %cmp1 = fcmp uge double %a, %b
1850 %retval = select i1 %cmp, i1 %cmp1, i1 false
1854 define i1 @auto_gen_77(double %a, double %b) {
1855 ; CHECK-LABEL: @auto_gen_77(
1856 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
1857 ; CHECK-NEXT: ret i1 [[TMP1]]
1859 %cmp = fcmp ult double %a, %b
1860 %cmp1 = fcmp ult double %a, %b
1861 %retval = and i1 %cmp, %cmp1
1865 define i1 @auto_gen_77_logical(double %a, double %b) {
1866 ; CHECK-LABEL: @auto_gen_77_logical(
1867 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
1868 ; CHECK-NEXT: ret i1 [[TMP1]]
1870 %cmp = fcmp ult double %a, %b
1871 %cmp1 = fcmp ult double %a, %b
1872 %retval = select i1 %cmp, i1 %cmp1, i1 false
1876 define i1 @auto_gen_78(double %a, double %b) {
1877 ; CHECK-LABEL: @auto_gen_78(
1878 ; CHECK-NEXT: ret i1 false
1880 %cmp = fcmp ule double %a, %b
1881 %cmp1 = fcmp false double %a, %b
1882 %retval = and i1 %cmp, %cmp1
1886 define i1 @auto_gen_78_logical(double %a, double %b) {
1887 ; CHECK-LABEL: @auto_gen_78_logical(
1888 ; CHECK-NEXT: ret i1 false
1890 %cmp = fcmp ule double %a, %b
1891 %cmp1 = fcmp false double %a, %b
1892 %retval = select i1 %cmp, i1 %cmp1, i1 false
1896 define i1 @auto_gen_79(double %a, double %b) {
1897 ; CHECK-LABEL: @auto_gen_79(
1898 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
1899 ; CHECK-NEXT: ret i1 [[TMP1]]
1901 %cmp = fcmp ule double %a, %b
1902 %cmp1 = fcmp oeq double %a, %b
1903 %retval = and i1 %cmp, %cmp1
1907 define i1 @auto_gen_79_logical(double %a, double %b) {
1908 ; CHECK-LABEL: @auto_gen_79_logical(
1909 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
1910 ; CHECK-NEXT: ret i1 [[TMP1]]
1912 %cmp = fcmp ule double %a, %b
1913 %cmp1 = fcmp oeq double %a, %b
1914 %retval = select i1 %cmp, i1 %cmp1, i1 false
1918 define i1 @auto_gen_80(double %a, double %b) {
1919 ; CHECK-LABEL: @auto_gen_80(
1920 ; CHECK-NEXT: ret i1 false
1922 %cmp = fcmp ule double %a, %b
1923 %cmp1 = fcmp ogt double %a, %b
1924 %retval = and i1 %cmp, %cmp1
1928 define i1 @auto_gen_80_logical(double %a, double %b) {
1929 ; CHECK-LABEL: @auto_gen_80_logical(
1930 ; CHECK-NEXT: ret i1 false
1932 %cmp = fcmp ule double %a, %b
1933 %cmp1 = fcmp ogt double %a, %b
1934 %retval = select i1 %cmp, i1 %cmp1, i1 false
1938 define i1 @auto_gen_81(double %a, double %b) {
1939 ; CHECK-LABEL: @auto_gen_81(
1940 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
1941 ; CHECK-NEXT: ret i1 [[TMP1]]
1943 %cmp = fcmp ule double %a, %b
1944 %cmp1 = fcmp oge double %a, %b
1945 %retval = and i1 %cmp, %cmp1
1949 define i1 @auto_gen_81_logical(double %a, double %b) {
1950 ; CHECK-LABEL: @auto_gen_81_logical(
1951 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
1952 ; CHECK-NEXT: ret i1 [[TMP1]]
1954 %cmp = fcmp ule double %a, %b
1955 %cmp1 = fcmp oge double %a, %b
1956 %retval = select i1 %cmp, i1 %cmp1, i1 false
1960 define i1 @auto_gen_82(double %a, double %b) {
1961 ; CHECK-LABEL: @auto_gen_82(
1962 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
1963 ; CHECK-NEXT: ret i1 [[TMP1]]
1965 %cmp = fcmp ule double %a, %b
1966 %cmp1 = fcmp olt double %a, %b
1967 %retval = and i1 %cmp, %cmp1
1971 define i1 @auto_gen_82_logical(double %a, double %b) {
1972 ; CHECK-LABEL: @auto_gen_82_logical(
1973 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
1974 ; CHECK-NEXT: ret i1 [[TMP1]]
1976 %cmp = fcmp ule double %a, %b
1977 %cmp1 = fcmp olt double %a, %b
1978 %retval = select i1 %cmp, i1 %cmp1, i1 false
1982 define i1 @auto_gen_83(double %a, double %b) {
1983 ; CHECK-LABEL: @auto_gen_83(
1984 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
1985 ; CHECK-NEXT: ret i1 [[TMP1]]
1987 %cmp = fcmp ule double %a, %b
1988 %cmp1 = fcmp ole double %a, %b
1989 %retval = and i1 %cmp, %cmp1
1993 define i1 @auto_gen_83_logical(double %a, double %b) {
1994 ; CHECK-LABEL: @auto_gen_83_logical(
1995 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
1996 ; CHECK-NEXT: ret i1 [[TMP1]]
1998 %cmp = fcmp ule double %a, %b
1999 %cmp1 = fcmp ole double %a, %b
2000 %retval = select i1 %cmp, i1 %cmp1, i1 false
2004 define i1 @auto_gen_84(double %a, double %b) {
2005 ; CHECK-LABEL: @auto_gen_84(
2006 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
2007 ; CHECK-NEXT: ret i1 [[TMP1]]
2009 %cmp = fcmp ule double %a, %b
2010 %cmp1 = fcmp one double %a, %b
2011 %retval = and i1 %cmp, %cmp1
2015 define i1 @auto_gen_84_logical(double %a, double %b) {
2016 ; CHECK-LABEL: @auto_gen_84_logical(
2017 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
2018 ; CHECK-NEXT: ret i1 [[TMP1]]
2020 %cmp = fcmp ule double %a, %b
2021 %cmp1 = fcmp one double %a, %b
2022 %retval = select i1 %cmp, i1 %cmp1, i1 false
2026 define i1 @auto_gen_85(double %a, double %b) {
2027 ; CHECK-LABEL: @auto_gen_85(
2028 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
2029 ; CHECK-NEXT: ret i1 [[TMP1]]
2031 %cmp = fcmp ule double %a, %b
2032 %cmp1 = fcmp ord double %a, %b
2033 %retval = and i1 %cmp, %cmp1
2037 define i1 @auto_gen_85_logical(double %a, double %b) {
2038 ; CHECK-LABEL: @auto_gen_85_logical(
2039 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
2040 ; CHECK-NEXT: ret i1 [[TMP1]]
2042 %cmp = fcmp ule double %a, %b
2043 %cmp1 = fcmp ord double %a, %b
2044 %retval = select i1 %cmp, i1 %cmp1, i1 false
2048 define i1 @auto_gen_86(double %a, double %b) {
2049 ; CHECK-LABEL: @auto_gen_86(
2050 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
2051 ; CHECK-NEXT: ret i1 [[TMP1]]
2053 %cmp = fcmp ule double %a, %b
2054 %cmp1 = fcmp ueq double %a, %b
2055 %retval = and i1 %cmp, %cmp1
2059 define i1 @auto_gen_86_logical(double %a, double %b) {
2060 ; CHECK-LABEL: @auto_gen_86_logical(
2061 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
2062 ; CHECK-NEXT: ret i1 [[TMP1]]
2064 %cmp = fcmp ule double %a, %b
2065 %cmp1 = fcmp ueq double %a, %b
2066 %retval = select i1 %cmp, i1 %cmp1, i1 false
2070 define i1 @auto_gen_87(double %a, double %b) {
2071 ; CHECK-LABEL: @auto_gen_87(
2072 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
2073 ; CHECK-NEXT: ret i1 [[TMP1]]
2075 %cmp = fcmp ule double %a, %b
2076 %cmp1 = fcmp ugt double %a, %b
2077 %retval = and i1 %cmp, %cmp1
2081 define i1 @auto_gen_87_logical(double %a, double %b) {
2082 ; CHECK-LABEL: @auto_gen_87_logical(
2083 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
2084 ; CHECK-NEXT: ret i1 [[TMP1]]
2086 %cmp = fcmp ule double %a, %b
2087 %cmp1 = fcmp ugt double %a, %b
2088 %retval = select i1 %cmp, i1 %cmp1, i1 false
2092 define i1 @auto_gen_88(double %a, double %b) {
2093 ; CHECK-LABEL: @auto_gen_88(
2094 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
2095 ; CHECK-NEXT: ret i1 [[TMP1]]
2097 %cmp = fcmp ule double %a, %b
2098 %cmp1 = fcmp uge double %a, %b
2099 %retval = and i1 %cmp, %cmp1
2103 define i1 @auto_gen_88_logical(double %a, double %b) {
2104 ; CHECK-LABEL: @auto_gen_88_logical(
2105 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
2106 ; CHECK-NEXT: ret i1 [[TMP1]]
2108 %cmp = fcmp ule double %a, %b
2109 %cmp1 = fcmp uge double %a, %b
2110 %retval = select i1 %cmp, i1 %cmp1, i1 false
2114 define i1 @auto_gen_89(double %a, double %b) {
2115 ; CHECK-LABEL: @auto_gen_89(
2116 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
2117 ; CHECK-NEXT: ret i1 [[TMP1]]
2119 %cmp = fcmp ule double %a, %b
2120 %cmp1 = fcmp ult double %a, %b
2121 %retval = and i1 %cmp, %cmp1
2125 define i1 @auto_gen_89_logical(double %a, double %b) {
2126 ; CHECK-LABEL: @auto_gen_89_logical(
2127 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
2128 ; CHECK-NEXT: ret i1 [[TMP1]]
2130 %cmp = fcmp ule double %a, %b
2131 %cmp1 = fcmp ult double %a, %b
2132 %retval = select i1 %cmp, i1 %cmp1, i1 false
2136 define i1 @auto_gen_90(double %a, double %b) {
2137 ; CHECK-LABEL: @auto_gen_90(
2138 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
2139 ; CHECK-NEXT: ret i1 [[TMP1]]
2141 %cmp = fcmp ule double %a, %b
2142 %cmp1 = fcmp ule double %a, %b
2143 %retval = and i1 %cmp, %cmp1
2147 define i1 @auto_gen_90_logical(double %a, double %b) {
2148 ; CHECK-LABEL: @auto_gen_90_logical(
2149 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
2150 ; CHECK-NEXT: ret i1 [[TMP1]]
2152 %cmp = fcmp ule double %a, %b
2153 %cmp1 = fcmp ule double %a, %b
2154 %retval = select i1 %cmp, i1 %cmp1, i1 false
2158 define i1 @auto_gen_91(double %a, double %b) {
2159 ; CHECK-LABEL: @auto_gen_91(
2160 ; CHECK-NEXT: ret i1 false
2162 %cmp = fcmp une double %a, %b
2163 %cmp1 = fcmp false double %a, %b
2164 %retval = and i1 %cmp, %cmp1
2168 define i1 @auto_gen_91_logical(double %a, double %b) {
2169 ; CHECK-LABEL: @auto_gen_91_logical(
2170 ; CHECK-NEXT: ret i1 false
2172 %cmp = fcmp une double %a, %b
2173 %cmp1 = fcmp false double %a, %b
2174 %retval = select i1 %cmp, i1 %cmp1, i1 false
2178 define i1 @auto_gen_92(double %a, double %b) {
2179 ; CHECK-LABEL: @auto_gen_92(
2180 ; CHECK-NEXT: ret i1 false
2182 %cmp = fcmp une double %a, %b
2183 %cmp1 = fcmp oeq double %a, %b
2184 %retval = and i1 %cmp, %cmp1
2188 define i1 @auto_gen_92_logical(double %a, double %b) {
2189 ; CHECK-LABEL: @auto_gen_92_logical(
2190 ; CHECK-NEXT: ret i1 false
2192 %cmp = fcmp une double %a, %b
2193 %cmp1 = fcmp oeq double %a, %b
2194 %retval = select i1 %cmp, i1 %cmp1, i1 false
2198 define i1 @auto_gen_93(double %a, double %b) {
2199 ; CHECK-LABEL: @auto_gen_93(
2200 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
2201 ; CHECK-NEXT: ret i1 [[TMP1]]
2203 %cmp = fcmp une double %a, %b
2204 %cmp1 = fcmp ogt double %a, %b
2205 %retval = and i1 %cmp, %cmp1
2209 define i1 @auto_gen_93_logical(double %a, double %b) {
2210 ; CHECK-LABEL: @auto_gen_93_logical(
2211 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
2212 ; CHECK-NEXT: ret i1 [[TMP1]]
2214 %cmp = fcmp une double %a, %b
2215 %cmp1 = fcmp ogt double %a, %b
2216 %retval = select i1 %cmp, i1 %cmp1, i1 false
2220 define i1 @auto_gen_94(double %a, double %b) {
2221 ; CHECK-LABEL: @auto_gen_94(
2222 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
2223 ; CHECK-NEXT: ret i1 [[TMP1]]
2225 %cmp = fcmp une double %a, %b
2226 %cmp1 = fcmp oge double %a, %b
2227 %retval = and i1 %cmp, %cmp1
2231 define i1 @auto_gen_94_logical(double %a, double %b) {
2232 ; CHECK-LABEL: @auto_gen_94_logical(
2233 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
2234 ; CHECK-NEXT: ret i1 [[TMP1]]
2236 %cmp = fcmp une double %a, %b
2237 %cmp1 = fcmp oge double %a, %b
2238 %retval = select i1 %cmp, i1 %cmp1, i1 false
2242 define i1 @auto_gen_95(double %a, double %b) {
2243 ; CHECK-LABEL: @auto_gen_95(
2244 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
2245 ; CHECK-NEXT: ret i1 [[TMP1]]
2247 %cmp = fcmp une double %a, %b
2248 %cmp1 = fcmp olt double %a, %b
2249 %retval = and i1 %cmp, %cmp1
2253 define i1 @auto_gen_95_logical(double %a, double %b) {
2254 ; CHECK-LABEL: @auto_gen_95_logical(
2255 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
2256 ; CHECK-NEXT: ret i1 [[TMP1]]
2258 %cmp = fcmp une double %a, %b
2259 %cmp1 = fcmp olt double %a, %b
2260 %retval = select i1 %cmp, i1 %cmp1, i1 false
2264 define i1 @auto_gen_96(double %a, double %b) {
2265 ; CHECK-LABEL: @auto_gen_96(
2266 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
2267 ; CHECK-NEXT: ret i1 [[TMP1]]
2269 %cmp = fcmp une double %a, %b
2270 %cmp1 = fcmp ole double %a, %b
2271 %retval = and i1 %cmp, %cmp1
2275 define i1 @auto_gen_96_logical(double %a, double %b) {
2276 ; CHECK-LABEL: @auto_gen_96_logical(
2277 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
2278 ; CHECK-NEXT: ret i1 [[TMP1]]
2280 %cmp = fcmp une double %a, %b
2281 %cmp1 = fcmp ole double %a, %b
2282 %retval = select i1 %cmp, i1 %cmp1, i1 false
2286 define i1 @auto_gen_97(double %a, double %b) {
2287 ; CHECK-LABEL: @auto_gen_97(
2288 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
2289 ; CHECK-NEXT: ret i1 [[TMP1]]
2291 %cmp = fcmp une double %a, %b
2292 %cmp1 = fcmp one double %a, %b
2293 %retval = and i1 %cmp, %cmp1
2297 define i1 @auto_gen_97_logical(double %a, double %b) {
2298 ; CHECK-LABEL: @auto_gen_97_logical(
2299 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
2300 ; CHECK-NEXT: ret i1 [[TMP1]]
2302 %cmp = fcmp une double %a, %b
2303 %cmp1 = fcmp one double %a, %b
2304 %retval = select i1 %cmp, i1 %cmp1, i1 false
2308 define i1 @auto_gen_98(double %a, double %b) {
2309 ; CHECK-LABEL: @auto_gen_98(
2310 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
2311 ; CHECK-NEXT: ret i1 [[TMP1]]
2313 %cmp = fcmp une double %a, %b
2314 %cmp1 = fcmp ord double %a, %b
2315 %retval = and i1 %cmp, %cmp1
2319 define i1 @auto_gen_98_logical(double %a, double %b) {
2320 ; CHECK-LABEL: @auto_gen_98_logical(
2321 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
2322 ; CHECK-NEXT: ret i1 [[TMP1]]
2324 %cmp = fcmp une double %a, %b
2325 %cmp1 = fcmp ord double %a, %b
2326 %retval = select i1 %cmp, i1 %cmp1, i1 false
2330 define i1 @auto_gen_99(double %a, double %b) {
2331 ; CHECK-LABEL: @auto_gen_99(
2332 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
2333 ; CHECK-NEXT: ret i1 [[TMP1]]
2335 %cmp = fcmp une double %a, %b
2336 %cmp1 = fcmp ueq double %a, %b
2337 %retval = and i1 %cmp, %cmp1
2341 define i1 @auto_gen_99_logical(double %a, double %b) {
2342 ; CHECK-LABEL: @auto_gen_99_logical(
2343 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
2344 ; CHECK-NEXT: ret i1 [[TMP1]]
2346 %cmp = fcmp une double %a, %b
2347 %cmp1 = fcmp ueq double %a, %b
2348 %retval = select i1 %cmp, i1 %cmp1, i1 false
2352 define i1 @auto_gen_100(double %a, double %b) {
2353 ; CHECK-LABEL: @auto_gen_100(
2354 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
2355 ; CHECK-NEXT: ret i1 [[TMP1]]
2357 %cmp = fcmp une double %a, %b
2358 %cmp1 = fcmp ugt double %a, %b
2359 %retval = and i1 %cmp, %cmp1
2363 define i1 @auto_gen_100_logical(double %a, double %b) {
2364 ; CHECK-LABEL: @auto_gen_100_logical(
2365 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
2366 ; CHECK-NEXT: ret i1 [[TMP1]]
2368 %cmp = fcmp une double %a, %b
2369 %cmp1 = fcmp ugt double %a, %b
2370 %retval = select i1 %cmp, i1 %cmp1, i1 false
2374 define i1 @auto_gen_101(double %a, double %b) {
2375 ; CHECK-LABEL: @auto_gen_101(
2376 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
2377 ; CHECK-NEXT: ret i1 [[TMP1]]
2379 %cmp = fcmp une double %a, %b
2380 %cmp1 = fcmp uge double %a, %b
2381 %retval = and i1 %cmp, %cmp1
2385 define i1 @auto_gen_101_logical(double %a, double %b) {
2386 ; CHECK-LABEL: @auto_gen_101_logical(
2387 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
2388 ; CHECK-NEXT: ret i1 [[TMP1]]
2390 %cmp = fcmp une double %a, %b
2391 %cmp1 = fcmp uge double %a, %b
2392 %retval = select i1 %cmp, i1 %cmp1, i1 false
2396 define i1 @auto_gen_102(double %a, double %b) {
2397 ; CHECK-LABEL: @auto_gen_102(
2398 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
2399 ; CHECK-NEXT: ret i1 [[TMP1]]
2401 %cmp = fcmp une double %a, %b
2402 %cmp1 = fcmp ult double %a, %b
2403 %retval = and i1 %cmp, %cmp1
2407 define i1 @auto_gen_102_logical(double %a, double %b) {
2408 ; CHECK-LABEL: @auto_gen_102_logical(
2409 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
2410 ; CHECK-NEXT: ret i1 [[TMP1]]
2412 %cmp = fcmp une double %a, %b
2413 %cmp1 = fcmp ult double %a, %b
2414 %retval = select i1 %cmp, i1 %cmp1, i1 false
2418 define i1 @auto_gen_103(double %a, double %b) {
2419 ; CHECK-LABEL: @auto_gen_103(
2420 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
2421 ; CHECK-NEXT: ret i1 [[TMP1]]
2423 %cmp = fcmp une double %a, %b
2424 %cmp1 = fcmp ule double %a, %b
2425 %retval = and i1 %cmp, %cmp1
2429 define i1 @auto_gen_103_logical(double %a, double %b) {
2430 ; CHECK-LABEL: @auto_gen_103_logical(
2431 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
2432 ; CHECK-NEXT: ret i1 [[TMP1]]
2434 %cmp = fcmp une double %a, %b
2435 %cmp1 = fcmp ule double %a, %b
2436 %retval = select i1 %cmp, i1 %cmp1, i1 false
2440 define i1 @auto_gen_104(double %a, double %b) {
2441 ; CHECK-LABEL: @auto_gen_104(
2442 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
2443 ; CHECK-NEXT: ret i1 [[TMP1]]
2445 %cmp = fcmp une double %a, %b
2446 %cmp1 = fcmp une double %a, %b
2447 %retval = and i1 %cmp, %cmp1
2451 define i1 @auto_gen_104_logical(double %a, double %b) {
2452 ; CHECK-LABEL: @auto_gen_104_logical(
2453 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
2454 ; CHECK-NEXT: ret i1 [[TMP1]]
2456 %cmp = fcmp une double %a, %b
2457 %cmp1 = fcmp une double %a, %b
2458 %retval = select i1 %cmp, i1 %cmp1, i1 false
2462 define i1 @auto_gen_105(double %a, double %b) {
2463 ; CHECK-LABEL: @auto_gen_105(
2464 ; CHECK-NEXT: ret i1 false
2466 %cmp = fcmp uno double %a, %b
2467 %cmp1 = fcmp false double %a, %b
2468 %retval = and i1 %cmp, %cmp1
2472 define i1 @auto_gen_105_logical(double %a, double %b) {
2473 ; CHECK-LABEL: @auto_gen_105_logical(
2474 ; CHECK-NEXT: ret i1 false
2476 %cmp = fcmp uno double %a, %b
2477 %cmp1 = fcmp false double %a, %b
2478 %retval = select i1 %cmp, i1 %cmp1, i1 false
2482 define i1 @auto_gen_106(double %a, double %b) {
2483 ; CHECK-LABEL: @auto_gen_106(
2484 ; CHECK-NEXT: ret i1 false
2486 %cmp = fcmp uno double %a, %b
2487 %cmp1 = fcmp oeq double %a, %b
2488 %retval = and i1 %cmp, %cmp1
2492 define i1 @auto_gen_106_logical(double %a, double %b) {
2493 ; CHECK-LABEL: @auto_gen_106_logical(
2494 ; CHECK-NEXT: ret i1 false
2496 %cmp = fcmp uno double %a, %b
2497 %cmp1 = fcmp oeq double %a, %b
2498 %retval = select i1 %cmp, i1 %cmp1, i1 false
2502 define i1 @auto_gen_107(double %a, double %b) {
2503 ; CHECK-LABEL: @auto_gen_107(
2504 ; CHECK-NEXT: ret i1 false
2506 %cmp = fcmp uno double %a, %b
2507 %cmp1 = fcmp ogt double %a, %b
2508 %retval = and i1 %cmp, %cmp1
2512 define i1 @auto_gen_107_logical(double %a, double %b) {
2513 ; CHECK-LABEL: @auto_gen_107_logical(
2514 ; CHECK-NEXT: ret i1 false
2516 %cmp = fcmp uno double %a, %b
2517 %cmp1 = fcmp ogt double %a, %b
2518 %retval = select i1 %cmp, i1 %cmp1, i1 false
2522 define i1 @auto_gen_108(double %a, double %b) {
2523 ; CHECK-LABEL: @auto_gen_108(
2524 ; CHECK-NEXT: ret i1 false
2526 %cmp = fcmp uno double %a, %b
2527 %cmp1 = fcmp oge double %a, %b
2528 %retval = and i1 %cmp, %cmp1
2532 define i1 @auto_gen_108_logical(double %a, double %b) {
2533 ; CHECK-LABEL: @auto_gen_108_logical(
2534 ; CHECK-NEXT: ret i1 false
2536 %cmp = fcmp uno double %a, %b
2537 %cmp1 = fcmp oge double %a, %b
2538 %retval = select i1 %cmp, i1 %cmp1, i1 false
2542 define i1 @auto_gen_109(double %a, double %b) {
2543 ; CHECK-LABEL: @auto_gen_109(
2544 ; CHECK-NEXT: ret i1 false
2546 %cmp = fcmp uno double %a, %b
2547 %cmp1 = fcmp olt double %a, %b
2548 %retval = and i1 %cmp, %cmp1
2552 define i1 @auto_gen_109_logical(double %a, double %b) {
2553 ; CHECK-LABEL: @auto_gen_109_logical(
2554 ; CHECK-NEXT: ret i1 false
2556 %cmp = fcmp uno double %a, %b
2557 %cmp1 = fcmp olt double %a, %b
2558 %retval = select i1 %cmp, i1 %cmp1, i1 false
2562 define i1 @auto_gen_110(double %a, double %b) {
2563 ; CHECK-LABEL: @auto_gen_110(
2564 ; CHECK-NEXT: ret i1 false
2566 %cmp = fcmp uno double %a, %b
2567 %cmp1 = fcmp ole double %a, %b
2568 %retval = and i1 %cmp, %cmp1
2572 define i1 @auto_gen_110_logical(double %a, double %b) {
2573 ; CHECK-LABEL: @auto_gen_110_logical(
2574 ; CHECK-NEXT: ret i1 false
2576 %cmp = fcmp uno double %a, %b
2577 %cmp1 = fcmp ole double %a, %b
2578 %retval = select i1 %cmp, i1 %cmp1, i1 false
2582 define i1 @auto_gen_111(double %a, double %b) {
2583 ; CHECK-LABEL: @auto_gen_111(
2584 ; CHECK-NEXT: ret i1 false
2586 %cmp = fcmp uno double %a, %b
2587 %cmp1 = fcmp one double %a, %b
2588 %retval = and i1 %cmp, %cmp1
2592 define i1 @auto_gen_111_logical(double %a, double %b) {
2593 ; CHECK-LABEL: @auto_gen_111_logical(
2594 ; CHECK-NEXT: ret i1 false
2596 %cmp = fcmp uno double %a, %b
2597 %cmp1 = fcmp one double %a, %b
2598 %retval = select i1 %cmp, i1 %cmp1, i1 false
2602 define i1 @auto_gen_112(double %a, double %b) {
2603 ; CHECK-LABEL: @auto_gen_112(
2604 ; CHECK-NEXT: ret i1 false
2606 %cmp = fcmp uno double %a, %b
2607 %cmp1 = fcmp ord double %a, %b
2608 %retval = and i1 %cmp, %cmp1
2612 define i1 @auto_gen_112_logical(double %a, double %b) {
2613 ; CHECK-LABEL: @auto_gen_112_logical(
2614 ; CHECK-NEXT: ret i1 false
2616 %cmp = fcmp uno double %a, %b
2617 %cmp1 = fcmp ord double %a, %b
2618 %retval = select i1 %cmp, i1 %cmp1, i1 false
2622 define i1 @auto_gen_113(double %a, double %b) {
2623 ; CHECK-LABEL: @auto_gen_113(
2624 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
2625 ; CHECK-NEXT: ret i1 [[TMP1]]
2627 %cmp = fcmp uno double %a, %b
2628 %cmp1 = fcmp ueq double %a, %b
2629 %retval = and i1 %cmp, %cmp1
2633 define i1 @auto_gen_113_logical(double %a, double %b) {
2634 ; CHECK-LABEL: @auto_gen_113_logical(
2635 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
2636 ; CHECK-NEXT: ret i1 [[TMP1]]
2638 %cmp = fcmp uno double %a, %b
2639 %cmp1 = fcmp ueq double %a, %b
2640 %retval = select i1 %cmp, i1 %cmp1, i1 false
2644 define i1 @auto_gen_114(double %a, double %b) {
2645 ; CHECK-LABEL: @auto_gen_114(
2646 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
2647 ; CHECK-NEXT: ret i1 [[TMP1]]
2649 %cmp = fcmp uno double %a, %b
2650 %cmp1 = fcmp ugt double %a, %b
2651 %retval = and i1 %cmp, %cmp1
2655 define i1 @auto_gen_114_logical(double %a, double %b) {
2656 ; CHECK-LABEL: @auto_gen_114_logical(
2657 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
2658 ; CHECK-NEXT: ret i1 [[TMP1]]
2660 %cmp = fcmp uno double %a, %b
2661 %cmp1 = fcmp ugt double %a, %b
2662 %retval = select i1 %cmp, i1 %cmp1, i1 false
2666 define i1 @auto_gen_115(double %a, double %b) {
2667 ; CHECK-LABEL: @auto_gen_115(
2668 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
2669 ; CHECK-NEXT: ret i1 [[TMP1]]
2671 %cmp = fcmp uno double %a, %b
2672 %cmp1 = fcmp uge double %a, %b
2673 %retval = and i1 %cmp, %cmp1
2677 define i1 @auto_gen_115_logical(double %a, double %b) {
2678 ; CHECK-LABEL: @auto_gen_115_logical(
2679 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
2680 ; CHECK-NEXT: ret i1 [[TMP1]]
2682 %cmp = fcmp uno double %a, %b
2683 %cmp1 = fcmp uge double %a, %b
2684 %retval = select i1 %cmp, i1 %cmp1, i1 false
2688 define i1 @auto_gen_116(double %a, double %b) {
2689 ; CHECK-LABEL: @auto_gen_116(
2690 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
2691 ; CHECK-NEXT: ret i1 [[TMP1]]
2693 %cmp = fcmp uno double %a, %b
2694 %cmp1 = fcmp ult double %a, %b
2695 %retval = and i1 %cmp, %cmp1
2699 define i1 @auto_gen_116_logical(double %a, double %b) {
2700 ; CHECK-LABEL: @auto_gen_116_logical(
2701 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
2702 ; CHECK-NEXT: ret i1 [[TMP1]]
2704 %cmp = fcmp uno double %a, %b
2705 %cmp1 = fcmp ult double %a, %b
2706 %retval = select i1 %cmp, i1 %cmp1, i1 false
2710 define i1 @auto_gen_117(double %a, double %b) {
2711 ; CHECK-LABEL: @auto_gen_117(
2712 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
2713 ; CHECK-NEXT: ret i1 [[TMP1]]
2715 %cmp = fcmp uno double %a, %b
2716 %cmp1 = fcmp ule double %a, %b
2717 %retval = and i1 %cmp, %cmp1
2721 define i1 @auto_gen_117_logical(double %a, double %b) {
2722 ; CHECK-LABEL: @auto_gen_117_logical(
2723 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
2724 ; CHECK-NEXT: ret i1 [[TMP1]]
2726 %cmp = fcmp uno double %a, %b
2727 %cmp1 = fcmp ule double %a, %b
2728 %retval = select i1 %cmp, i1 %cmp1, i1 false
2732 define i1 @auto_gen_118(double %a, double %b) {
2733 ; CHECK-LABEL: @auto_gen_118(
2734 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
2735 ; CHECK-NEXT: ret i1 [[TMP1]]
2737 %cmp = fcmp uno double %a, %b
2738 %cmp1 = fcmp une double %a, %b
2739 %retval = and i1 %cmp, %cmp1
2743 define i1 @auto_gen_118_logical(double %a, double %b) {
2744 ; CHECK-LABEL: @auto_gen_118_logical(
2745 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
2746 ; CHECK-NEXT: ret i1 [[TMP1]]
2748 %cmp = fcmp uno double %a, %b
2749 %cmp1 = fcmp une double %a, %b
2750 %retval = select i1 %cmp, i1 %cmp1, i1 false
2754 define i1 @auto_gen_119(double %a, double %b) {
2755 ; CHECK-LABEL: @auto_gen_119(
2756 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
2757 ; CHECK-NEXT: ret i1 [[TMP1]]
2759 %cmp = fcmp uno double %a, %b
2760 %cmp1 = fcmp uno double %a, %b
2761 %retval = and i1 %cmp, %cmp1
2765 define i1 @auto_gen_119_logical(double %a, double %b) {
2766 ; CHECK-LABEL: @auto_gen_119_logical(
2767 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
2768 ; CHECK-NEXT: ret i1 [[TMP1]]
2770 %cmp = fcmp uno double %a, %b
2771 %cmp1 = fcmp uno double %a, %b
2772 %retval = select i1 %cmp, i1 %cmp1, i1 false
2776 define i1 @auto_gen_120(double %a, double %b) {
2777 ; CHECK-LABEL: @auto_gen_120(
2778 ; CHECK-NEXT: ret i1 false
2780 %cmp = fcmp true double %a, %b
2781 %cmp1 = fcmp false double %a, %b
2782 %retval = and i1 %cmp, %cmp1
2786 define i1 @auto_gen_120_logical(double %a, double %b) {
2787 ; CHECK-LABEL: @auto_gen_120_logical(
2788 ; CHECK-NEXT: ret i1 false
2790 %cmp = fcmp true double %a, %b
2791 %cmp1 = fcmp false double %a, %b
2792 %retval = select i1 %cmp, i1 %cmp1, i1 false
2796 define i1 @auto_gen_121(double %a, double %b) {
2797 ; CHECK-LABEL: @auto_gen_121(
2798 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
2799 ; CHECK-NEXT: ret i1 [[CMP1]]
2801 %cmp = fcmp true double %a, %b
2802 %cmp1 = fcmp oeq double %a, %b
2803 %retval = and i1 %cmp, %cmp1
2807 define i1 @auto_gen_121_logical(double %a, double %b) {
2808 ; CHECK-LABEL: @auto_gen_121_logical(
2809 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
2810 ; CHECK-NEXT: ret i1 [[CMP1]]
2812 %cmp = fcmp true double %a, %b
2813 %cmp1 = fcmp oeq double %a, %b
2814 %retval = select i1 %cmp, i1 %cmp1, i1 false
2818 define i1 @auto_gen_122(double %a, double %b) {
2819 ; CHECK-LABEL: @auto_gen_122(
2820 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
2821 ; CHECK-NEXT: ret i1 [[CMP1]]
2823 %cmp = fcmp true double %a, %b
2824 %cmp1 = fcmp ogt double %a, %b
2825 %retval = and i1 %cmp, %cmp1
2829 define i1 @auto_gen_122_logical(double %a, double %b) {
2830 ; CHECK-LABEL: @auto_gen_122_logical(
2831 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
2832 ; CHECK-NEXT: ret i1 [[CMP1]]
2834 %cmp = fcmp true double %a, %b
2835 %cmp1 = fcmp ogt double %a, %b
2836 %retval = select i1 %cmp, i1 %cmp1, i1 false
2840 define i1 @auto_gen_123(double %a, double %b) {
2841 ; CHECK-LABEL: @auto_gen_123(
2842 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
2843 ; CHECK-NEXT: ret i1 [[CMP1]]
2845 %cmp = fcmp true double %a, %b
2846 %cmp1 = fcmp oge double %a, %b
2847 %retval = and i1 %cmp, %cmp1
2851 define i1 @auto_gen_123_logical(double %a, double %b) {
2852 ; CHECK-LABEL: @auto_gen_123_logical(
2853 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
2854 ; CHECK-NEXT: ret i1 [[CMP1]]
2856 %cmp = fcmp true double %a, %b
2857 %cmp1 = fcmp oge double %a, %b
2858 %retval = select i1 %cmp, i1 %cmp1, i1 false
2862 define i1 @auto_gen_124(double %a, double %b) {
2863 ; CHECK-LABEL: @auto_gen_124(
2864 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
2865 ; CHECK-NEXT: ret i1 [[CMP1]]
2867 %cmp = fcmp true double %a, %b
2868 %cmp1 = fcmp olt double %a, %b
2869 %retval = and i1 %cmp, %cmp1
2873 define i1 @auto_gen_124_logical(double %a, double %b) {
2874 ; CHECK-LABEL: @auto_gen_124_logical(
2875 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
2876 ; CHECK-NEXT: ret i1 [[CMP1]]
2878 %cmp = fcmp true double %a, %b
2879 %cmp1 = fcmp olt double %a, %b
2880 %retval = select i1 %cmp, i1 %cmp1, i1 false
2884 define i1 @auto_gen_125(double %a, double %b) {
2885 ; CHECK-LABEL: @auto_gen_125(
2886 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
2887 ; CHECK-NEXT: ret i1 [[CMP1]]
2889 %cmp = fcmp true double %a, %b
2890 %cmp1 = fcmp ole double %a, %b
2891 %retval = and i1 %cmp, %cmp1
2895 define i1 @auto_gen_125_logical(double %a, double %b) {
2896 ; CHECK-LABEL: @auto_gen_125_logical(
2897 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
2898 ; CHECK-NEXT: ret i1 [[CMP1]]
2900 %cmp = fcmp true double %a, %b
2901 %cmp1 = fcmp ole double %a, %b
2902 %retval = select i1 %cmp, i1 %cmp1, i1 false
2906 define i1 @auto_gen_126(double %a, double %b) {
2907 ; CHECK-LABEL: @auto_gen_126(
2908 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
2909 ; CHECK-NEXT: ret i1 [[CMP1]]
2911 %cmp = fcmp true double %a, %b
2912 %cmp1 = fcmp one double %a, %b
2913 %retval = and i1 %cmp, %cmp1
2917 define i1 @auto_gen_126_logical(double %a, double %b) {
2918 ; CHECK-LABEL: @auto_gen_126_logical(
2919 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
2920 ; CHECK-NEXT: ret i1 [[CMP1]]
2922 %cmp = fcmp true double %a, %b
2923 %cmp1 = fcmp one double %a, %b
2924 %retval = select i1 %cmp, i1 %cmp1, i1 false
2928 define i1 @auto_gen_127(double %a, double %b) {
2929 ; CHECK-LABEL: @auto_gen_127(
2930 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
2931 ; CHECK-NEXT: ret i1 [[CMP1]]
2933 %cmp = fcmp true double %a, %b
2934 %cmp1 = fcmp ord double %a, %b
2935 %retval = and i1 %cmp, %cmp1
2939 define i1 @auto_gen_127_logical(double %a, double %b) {
2940 ; CHECK-LABEL: @auto_gen_127_logical(
2941 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
2942 ; CHECK-NEXT: ret i1 [[CMP1]]
2944 %cmp = fcmp true double %a, %b
2945 %cmp1 = fcmp ord double %a, %b
2946 %retval = select i1 %cmp, i1 %cmp1, i1 false
2950 define i1 @auto_gen_128(double %a, double %b) {
2951 ; CHECK-LABEL: @auto_gen_128(
2952 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
2953 ; CHECK-NEXT: ret i1 [[CMP1]]
2955 %cmp = fcmp true double %a, %b
2956 %cmp1 = fcmp ueq double %a, %b
2957 %retval = and i1 %cmp, %cmp1
2961 define i1 @auto_gen_128_logical(double %a, double %b) {
2962 ; CHECK-LABEL: @auto_gen_128_logical(
2963 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
2964 ; CHECK-NEXT: ret i1 [[CMP1]]
2966 %cmp = fcmp true double %a, %b
2967 %cmp1 = fcmp ueq double %a, %b
2968 %retval = select i1 %cmp, i1 %cmp1, i1 false
2972 define i1 @auto_gen_129(double %a, double %b) {
2973 ; CHECK-LABEL: @auto_gen_129(
2974 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
2975 ; CHECK-NEXT: ret i1 [[CMP1]]
2977 %cmp = fcmp true double %a, %b
2978 %cmp1 = fcmp ugt double %a, %b
2979 %retval = and i1 %cmp, %cmp1
2983 define i1 @auto_gen_129_logical(double %a, double %b) {
2984 ; CHECK-LABEL: @auto_gen_129_logical(
2985 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
2986 ; CHECK-NEXT: ret i1 [[CMP1]]
2988 %cmp = fcmp true double %a, %b
2989 %cmp1 = fcmp ugt double %a, %b
2990 %retval = select i1 %cmp, i1 %cmp1, i1 false
2994 define i1 @auto_gen_130(double %a, double %b) {
2995 ; CHECK-LABEL: @auto_gen_130(
2996 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
2997 ; CHECK-NEXT: ret i1 [[CMP1]]
2999 %cmp = fcmp true double %a, %b
3000 %cmp1 = fcmp uge double %a, %b
3001 %retval = and i1 %cmp, %cmp1
3005 define i1 @auto_gen_130_logical(double %a, double %b) {
3006 ; CHECK-LABEL: @auto_gen_130_logical(
3007 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
3008 ; CHECK-NEXT: ret i1 [[CMP1]]
3010 %cmp = fcmp true double %a, %b
3011 %cmp1 = fcmp uge double %a, %b
3012 %retval = select i1 %cmp, i1 %cmp1, i1 false
3016 define i1 @auto_gen_131(double %a, double %b) {
3017 ; CHECK-LABEL: @auto_gen_131(
3018 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
3019 ; CHECK-NEXT: ret i1 [[CMP1]]
3021 %cmp = fcmp true double %a, %b
3022 %cmp1 = fcmp ult double %a, %b
3023 %retval = and i1 %cmp, %cmp1
3027 define i1 @auto_gen_131_logical(double %a, double %b) {
3028 ; CHECK-LABEL: @auto_gen_131_logical(
3029 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
3030 ; CHECK-NEXT: ret i1 [[CMP1]]
3032 %cmp = fcmp true double %a, %b
3033 %cmp1 = fcmp ult double %a, %b
3034 %retval = select i1 %cmp, i1 %cmp1, i1 false
3038 define i1 @auto_gen_132(double %a, double %b) {
3039 ; CHECK-LABEL: @auto_gen_132(
3040 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
3041 ; CHECK-NEXT: ret i1 [[CMP1]]
3043 %cmp = fcmp true double %a, %b
3044 %cmp1 = fcmp ule double %a, %b
3045 %retval = and i1 %cmp, %cmp1
3049 define i1 @auto_gen_132_logical(double %a, double %b) {
3050 ; CHECK-LABEL: @auto_gen_132_logical(
3051 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
3052 ; CHECK-NEXT: ret i1 [[CMP1]]
3054 %cmp = fcmp true double %a, %b
3055 %cmp1 = fcmp ule double %a, %b
3056 %retval = select i1 %cmp, i1 %cmp1, i1 false
3060 define i1 @auto_gen_133(double %a, double %b) {
3061 ; CHECK-LABEL: @auto_gen_133(
3062 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
3063 ; CHECK-NEXT: ret i1 [[CMP1]]
3065 %cmp = fcmp true double %a, %b
3066 %cmp1 = fcmp une double %a, %b
3067 %retval = and i1 %cmp, %cmp1
3071 define i1 @auto_gen_133_logical(double %a, double %b) {
3072 ; CHECK-LABEL: @auto_gen_133_logical(
3073 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
3074 ; CHECK-NEXT: ret i1 [[CMP1]]
3076 %cmp = fcmp true double %a, %b
3077 %cmp1 = fcmp une double %a, %b
3078 %retval = select i1 %cmp, i1 %cmp1, i1 false
3082 define i1 @auto_gen_134(double %a, double %b) {
3083 ; CHECK-LABEL: @auto_gen_134(
3084 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
3085 ; CHECK-NEXT: ret i1 [[CMP1]]
3087 %cmp = fcmp true double %a, %b
3088 %cmp1 = fcmp uno double %a, %b
3089 %retval = and i1 %cmp, %cmp1
3093 define i1 @auto_gen_134_logical(double %a, double %b) {
3094 ; CHECK-LABEL: @auto_gen_134_logical(
3095 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
3096 ; CHECK-NEXT: ret i1 [[CMP1]]
3098 %cmp = fcmp true double %a, %b
3099 %cmp1 = fcmp uno double %a, %b
3100 %retval = select i1 %cmp, i1 %cmp1, i1 false
3104 define i1 @auto_gen_135(double %a, double %b) {
3105 ; CHECK-LABEL: @auto_gen_135(
3106 ; CHECK-NEXT: ret i1 true
3108 %cmp = fcmp true double %a, %b
3109 %cmp1 = fcmp true double %a, %b
3110 %retval = and i1 %cmp, %cmp1
3114 define i1 @auto_gen_135_logical(double %a, double %b) {
3115 ; CHECK-LABEL: @auto_gen_135_logical(
3116 ; CHECK-NEXT: ret i1 true
3118 %cmp = fcmp true double %a, %b
3119 %cmp1 = fcmp true double %a, %b
3120 %retval = select i1 %cmp, i1 %cmp1, i1 false