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 define <2 x i1> @PR1738_vec_undef(<2 x double> %x, <2 x double> %y) {
16 ; CHECK-LABEL: @PR1738_vec_undef(
17 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord <2 x double> [[X:%.*]], [[Y:%.*]]
18 ; CHECK-NEXT: ret <2 x i1> [[TMP1]]
20 %cmp1 = fcmp ord <2 x double> %x, <double 0.0, double undef>
21 %cmp2 = fcmp ord <2 x double> %y, <double undef, double 0.0>
22 %or = and <2 x i1> %cmp1, %cmp2
26 define i1 @PR15737(float %a, double %b) {
27 ; CHECK-LABEL: @PR15737(
28 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ord float [[A:%.*]], 0.000000e+00
29 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp ord double [[B:%.*]], 0.000000e+00
30 ; CHECK-NEXT: [[AND:%.*]] = and i1 [[CMP]], [[CMP1]]
31 ; CHECK-NEXT: ret i1 [[AND]]
33 %cmp = fcmp ord float %a, 0.000000e+00
34 %cmp1 = fcmp ord double %b, 0.000000e+00
35 %and = and i1 %cmp, %cmp1
39 define <2 x i1> @t9(<2 x float> %a, <2 x double> %b) {
41 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ord <2 x float> [[A:%.*]], zeroinitializer
42 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp ord <2 x double> [[B:%.*]], zeroinitializer
43 ; CHECK-NEXT: [[AND:%.*]] = and <2 x i1> [[CMP]], [[CMP1]]
44 ; CHECK-NEXT: ret <2 x i1> [[AND]]
46 %cmp = fcmp ord <2 x float> %a, zeroinitializer
47 %cmp1 = fcmp ord <2 x double> %b, zeroinitializer
48 %and = and <2 x i1> %cmp, %cmp1
52 define i1 @fcmp_ord_nonzero(float %x, float %y) {
53 ; CHECK-LABEL: @fcmp_ord_nonzero(
54 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord float [[X:%.*]], [[Y:%.*]]
55 ; CHECK-NEXT: ret i1 [[TMP1]]
57 %cmp1 = fcmp ord float %x, 1.0
58 %cmp2 = fcmp ord float %y, 2.0
59 %and = and i1 %cmp1, %cmp2
63 define <3 x i1> @fcmp_ord_nonzero_vec(<3 x float> %x, <3 x float> %y) {
64 ; CHECK-LABEL: @fcmp_ord_nonzero_vec(
65 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord <3 x float> [[X:%.*]], [[Y:%.*]]
66 ; CHECK-NEXT: ret <3 x i1> [[TMP1]]
68 %cmp1 = fcmp ord <3 x float> %x, <float 1.0, float 2.0, float 3.0>
69 %cmp2 = fcmp ord <3 x float> %y, <float 3.0, float 2.0, float 1.0>
70 %and = and <3 x i1> %cmp1, %cmp2
74 define i1 @auto_gen_0(double %a, double %b) {
75 ; CHECK-LABEL: @auto_gen_0(
76 ; CHECK-NEXT: ret i1 false
78 %cmp = fcmp false double %a, %b
79 %cmp1 = fcmp false double %a, %b
80 %retval = and i1 %cmp, %cmp1
84 define i1 @auto_gen_1(double %a, double %b) {
85 ; CHECK-LABEL: @auto_gen_1(
86 ; CHECK-NEXT: ret i1 false
88 %cmp = fcmp oeq double %a, %b
89 %cmp1 = fcmp false double %a, %b
90 %retval = and i1 %cmp, %cmp1
94 define i1 @auto_gen_2(double %a, double %b) {
95 ; CHECK-LABEL: @auto_gen_2(
96 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
97 ; CHECK-NEXT: ret i1 [[TMP1]]
99 %cmp = fcmp oeq double %a, %b
100 %cmp1 = fcmp oeq double %a, %b
101 %retval = and i1 %cmp, %cmp1
105 define i1 @auto_gen_3(double %a, double %b) {
106 ; CHECK-LABEL: @auto_gen_3(
107 ; CHECK-NEXT: ret i1 false
109 %cmp = fcmp ogt double %a, %b
110 %cmp1 = fcmp false double %a, %b
111 %retval = and i1 %cmp, %cmp1
115 define i1 @auto_gen_4(double %a, double %b) {
116 ; CHECK-LABEL: @auto_gen_4(
117 ; CHECK-NEXT: ret i1 false
119 %cmp = fcmp ogt double %a, %b
120 %cmp1 = fcmp oeq double %a, %b
121 %retval = and i1 %cmp, %cmp1
125 define i1 @auto_gen_5(double %a, double %b) {
126 ; CHECK-LABEL: @auto_gen_5(
127 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
128 ; CHECK-NEXT: ret i1 [[TMP1]]
130 %cmp = fcmp ogt double %a, %b
131 %cmp1 = fcmp ogt double %a, %b
132 %retval = and i1 %cmp, %cmp1
136 define i1 @auto_gen_6(double %a, double %b) {
137 ; CHECK-LABEL: @auto_gen_6(
138 ; CHECK-NEXT: ret i1 false
140 %cmp = fcmp oge double %a, %b
141 %cmp1 = fcmp false double %a, %b
142 %retval = and i1 %cmp, %cmp1
146 define i1 @auto_gen_7(double %a, double %b) {
147 ; CHECK-LABEL: @auto_gen_7(
148 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
149 ; CHECK-NEXT: ret i1 [[TMP1]]
151 %cmp = fcmp oge double %a, %b
152 %cmp1 = fcmp oeq double %a, %b
153 %retval = and i1 %cmp, %cmp1
157 define i1 @auto_gen_8(double %a, double %b) {
158 ; CHECK-LABEL: @auto_gen_8(
159 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
160 ; CHECK-NEXT: ret i1 [[TMP1]]
162 %cmp = fcmp oge double %a, %b
163 %cmp1 = fcmp ogt double %a, %b
164 %retval = and i1 %cmp, %cmp1
168 define i1 @auto_gen_9(double %a, double %b) {
169 ; CHECK-LABEL: @auto_gen_9(
170 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
171 ; CHECK-NEXT: ret i1 [[TMP1]]
173 %cmp = fcmp oge double %a, %b
174 %cmp1 = fcmp oge double %a, %b
175 %retval = and i1 %cmp, %cmp1
179 define i1 @auto_gen_10(double %a, double %b) {
180 ; CHECK-LABEL: @auto_gen_10(
181 ; CHECK-NEXT: ret i1 false
183 %cmp = fcmp olt double %a, %b
184 %cmp1 = fcmp false double %a, %b
185 %retval = and i1 %cmp, %cmp1
189 define i1 @auto_gen_11(double %a, double %b) {
190 ; CHECK-LABEL: @auto_gen_11(
191 ; CHECK-NEXT: ret i1 false
193 %cmp = fcmp olt double %a, %b
194 %cmp1 = fcmp oeq double %a, %b
195 %retval = and i1 %cmp, %cmp1
199 define i1 @auto_gen_12(double %a, double %b) {
200 ; CHECK-LABEL: @auto_gen_12(
201 ; CHECK-NEXT: ret i1 false
203 %cmp = fcmp olt double %a, %b
204 %cmp1 = fcmp ogt double %a, %b
205 %retval = and i1 %cmp, %cmp1
209 define i1 @auto_gen_13(double %a, double %b) {
210 ; CHECK-LABEL: @auto_gen_13(
211 ; CHECK-NEXT: ret i1 false
213 %cmp = fcmp olt double %a, %b
214 %cmp1 = fcmp oge double %a, %b
215 %retval = and i1 %cmp, %cmp1
219 define i1 @auto_gen_14(double %a, double %b) {
220 ; CHECK-LABEL: @auto_gen_14(
221 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
222 ; CHECK-NEXT: ret i1 [[TMP1]]
224 %cmp = fcmp olt double %a, %b
225 %cmp1 = fcmp olt double %a, %b
226 %retval = and i1 %cmp, %cmp1
230 define i1 @auto_gen_15(double %a, double %b) {
231 ; CHECK-LABEL: @auto_gen_15(
232 ; CHECK-NEXT: ret i1 false
234 %cmp = fcmp ole double %a, %b
235 %cmp1 = fcmp false double %a, %b
236 %retval = and i1 %cmp, %cmp1
240 define i1 @auto_gen_16(double %a, double %b) {
241 ; CHECK-LABEL: @auto_gen_16(
242 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
243 ; CHECK-NEXT: ret i1 [[TMP1]]
245 %cmp = fcmp ole double %a, %b
246 %cmp1 = fcmp oeq double %a, %b
247 %retval = and i1 %cmp, %cmp1
251 define i1 @auto_gen_17(double %a, double %b) {
252 ; CHECK-LABEL: @auto_gen_17(
253 ; CHECK-NEXT: ret i1 false
255 %cmp = fcmp ole double %a, %b
256 %cmp1 = fcmp ogt double %a, %b
257 %retval = and i1 %cmp, %cmp1
261 define i1 @auto_gen_18(double %a, double %b) {
262 ; CHECK-LABEL: @auto_gen_18(
263 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
264 ; CHECK-NEXT: ret i1 [[TMP1]]
266 %cmp = fcmp ole double %a, %b
267 %cmp1 = fcmp oge double %a, %b
268 %retval = and i1 %cmp, %cmp1
272 define i1 @auto_gen_19(double %a, double %b) {
273 ; CHECK-LABEL: @auto_gen_19(
274 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
275 ; CHECK-NEXT: ret i1 [[TMP1]]
277 %cmp = fcmp ole double %a, %b
278 %cmp1 = fcmp olt double %a, %b
279 %retval = and i1 %cmp, %cmp1
283 define i1 @auto_gen_20(double %a, double %b) {
284 ; CHECK-LABEL: @auto_gen_20(
285 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
286 ; CHECK-NEXT: ret i1 [[TMP1]]
288 %cmp = fcmp ole double %a, %b
289 %cmp1 = fcmp ole double %a, %b
290 %retval = and i1 %cmp, %cmp1
294 define i1 @auto_gen_21(double %a, double %b) {
295 ; CHECK-LABEL: @auto_gen_21(
296 ; CHECK-NEXT: ret i1 false
298 %cmp = fcmp one double %a, %b
299 %cmp1 = fcmp false double %a, %b
300 %retval = and i1 %cmp, %cmp1
304 define i1 @auto_gen_22(double %a, double %b) {
305 ; CHECK-LABEL: @auto_gen_22(
306 ; CHECK-NEXT: ret i1 false
308 %cmp = fcmp one double %a, %b
309 %cmp1 = fcmp oeq double %a, %b
310 %retval = and i1 %cmp, %cmp1
314 define i1 @auto_gen_23(double %a, double %b) {
315 ; CHECK-LABEL: @auto_gen_23(
316 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
317 ; CHECK-NEXT: ret i1 [[TMP1]]
319 %cmp = fcmp one double %a, %b
320 %cmp1 = fcmp ogt double %a, %b
321 %retval = and i1 %cmp, %cmp1
325 define i1 @auto_gen_24(double %a, double %b) {
326 ; CHECK-LABEL: @auto_gen_24(
327 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
328 ; CHECK-NEXT: ret i1 [[TMP1]]
330 %cmp = fcmp one double %a, %b
331 %cmp1 = fcmp oge double %a, %b
332 %retval = and i1 %cmp, %cmp1
336 define i1 @auto_gen_25(double %a, double %b) {
337 ; CHECK-LABEL: @auto_gen_25(
338 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
339 ; CHECK-NEXT: ret i1 [[TMP1]]
341 %cmp = fcmp one double %a, %b
342 %cmp1 = fcmp olt double %a, %b
343 %retval = and i1 %cmp, %cmp1
347 define i1 @auto_gen_26(double %a, double %b) {
348 ; CHECK-LABEL: @auto_gen_26(
349 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
350 ; CHECK-NEXT: ret i1 [[TMP1]]
352 %cmp = fcmp one double %a, %b
353 %cmp1 = fcmp ole double %a, %b
354 %retval = and i1 %cmp, %cmp1
358 define i1 @auto_gen_27(double %a, double %b) {
359 ; CHECK-LABEL: @auto_gen_27(
360 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
361 ; CHECK-NEXT: ret i1 [[TMP1]]
363 %cmp = fcmp one double %a, %b
364 %cmp1 = fcmp one double %a, %b
365 %retval = and i1 %cmp, %cmp1
369 define i1 @auto_gen_28(double %a, double %b) {
370 ; CHECK-LABEL: @auto_gen_28(
371 ; CHECK-NEXT: ret i1 false
373 %cmp = fcmp ord double %a, %b
374 %cmp1 = fcmp false double %a, %b
375 %retval = and i1 %cmp, %cmp1
379 define i1 @auto_gen_29(double %a, double %b) {
380 ; CHECK-LABEL: @auto_gen_29(
381 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
382 ; CHECK-NEXT: ret i1 [[TMP1]]
384 %cmp = fcmp ord double %a, %b
385 %cmp1 = fcmp oeq double %a, %b
386 %retval = and i1 %cmp, %cmp1
390 define i1 @auto_gen_30(double %a, double %b) {
391 ; CHECK-LABEL: @auto_gen_30(
392 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
393 ; CHECK-NEXT: ret i1 [[TMP1]]
395 %cmp = fcmp ord double %a, %b
396 %cmp1 = fcmp ogt double %a, %b
397 %retval = and i1 %cmp, %cmp1
401 define i1 @auto_gen_31(double %a, double %b) {
402 ; CHECK-LABEL: @auto_gen_31(
403 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
404 ; CHECK-NEXT: ret i1 [[TMP1]]
406 %cmp = fcmp ord double %a, %b
407 %cmp1 = fcmp oge double %a, %b
408 %retval = and i1 %cmp, %cmp1
412 define i1 @auto_gen_32(double %a, double %b) {
413 ; CHECK-LABEL: @auto_gen_32(
414 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
415 ; CHECK-NEXT: ret i1 [[TMP1]]
417 %cmp = fcmp ord double %a, %b
418 %cmp1 = fcmp olt double %a, %b
419 %retval = and i1 %cmp, %cmp1
423 define i1 @auto_gen_33(double %a, double %b) {
424 ; CHECK-LABEL: @auto_gen_33(
425 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
426 ; CHECK-NEXT: ret i1 [[TMP1]]
428 %cmp = fcmp ord double %a, %b
429 %cmp1 = fcmp ole double %a, %b
430 %retval = and i1 %cmp, %cmp1
434 define i1 @auto_gen_34(double %a, double %b) {
435 ; CHECK-LABEL: @auto_gen_34(
436 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
437 ; CHECK-NEXT: ret i1 [[TMP1]]
439 %cmp = fcmp ord double %a, %b
440 %cmp1 = fcmp one double %a, %b
441 %retval = and i1 %cmp, %cmp1
445 define i1 @auto_gen_35(double %a, double %b) {
446 ; CHECK-LABEL: @auto_gen_35(
447 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
448 ; CHECK-NEXT: ret i1 [[TMP1]]
450 %cmp = fcmp ord double %a, %b
451 %cmp1 = fcmp ord double %a, %b
452 %retval = and i1 %cmp, %cmp1
456 define i1 @auto_gen_36(double %a, double %b) {
457 ; CHECK-LABEL: @auto_gen_36(
458 ; CHECK-NEXT: ret i1 false
460 %cmp = fcmp ueq double %a, %b
461 %cmp1 = fcmp false double %a, %b
462 %retval = and i1 %cmp, %cmp1
466 define i1 @auto_gen_37(double %a, double %b) {
467 ; CHECK-LABEL: @auto_gen_37(
468 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
469 ; CHECK-NEXT: ret i1 [[TMP1]]
471 %cmp = fcmp ueq double %a, %b
472 %cmp1 = fcmp oeq double %a, %b
473 %retval = and i1 %cmp, %cmp1
477 define i1 @auto_gen_38(double %a, double %b) {
478 ; CHECK-LABEL: @auto_gen_38(
479 ; CHECK-NEXT: ret i1 false
481 %cmp = fcmp ueq double %a, %b
482 %cmp1 = fcmp ogt double %a, %b
483 %retval = and i1 %cmp, %cmp1
487 define i1 @auto_gen_39(double %a, double %b) {
488 ; CHECK-LABEL: @auto_gen_39(
489 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
490 ; CHECK-NEXT: ret i1 [[TMP1]]
492 %cmp = fcmp ueq double %a, %b
493 %cmp1 = fcmp oge double %a, %b
494 %retval = and i1 %cmp, %cmp1
498 define i1 @auto_gen_40(double %a, double %b) {
499 ; CHECK-LABEL: @auto_gen_40(
500 ; CHECK-NEXT: ret i1 false
502 %cmp = fcmp ueq double %a, %b
503 %cmp1 = fcmp olt double %a, %b
504 %retval = and i1 %cmp, %cmp1
508 define i1 @auto_gen_41(double %a, double %b) {
509 ; CHECK-LABEL: @auto_gen_41(
510 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
511 ; CHECK-NEXT: ret i1 [[TMP1]]
513 %cmp = fcmp ueq double %a, %b
514 %cmp1 = fcmp ole double %a, %b
515 %retval = and i1 %cmp, %cmp1
519 define i1 @auto_gen_42(double %a, double %b) {
520 ; CHECK-LABEL: @auto_gen_42(
521 ; CHECK-NEXT: ret i1 false
523 %cmp = fcmp ueq double %a, %b
524 %cmp1 = fcmp one double %a, %b
525 %retval = and i1 %cmp, %cmp1
529 define i1 @auto_gen_43(double %a, double %b) {
530 ; CHECK-LABEL: @auto_gen_43(
531 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
532 ; CHECK-NEXT: ret i1 [[TMP1]]
534 %cmp = fcmp ueq double %a, %b
535 %cmp1 = fcmp ord double %a, %b
536 %retval = and i1 %cmp, %cmp1
540 define i1 @auto_gen_44(double %a, double %b) {
541 ; CHECK-LABEL: @auto_gen_44(
542 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
543 ; CHECK-NEXT: ret i1 [[TMP1]]
545 %cmp = fcmp ueq double %a, %b
546 %cmp1 = fcmp ueq double %a, %b
547 %retval = and i1 %cmp, %cmp1
551 define i1 @auto_gen_45(double %a, double %b) {
552 ; CHECK-LABEL: @auto_gen_45(
553 ; CHECK-NEXT: ret i1 false
555 %cmp = fcmp ugt double %a, %b
556 %cmp1 = fcmp false double %a, %b
557 %retval = and i1 %cmp, %cmp1
561 define i1 @auto_gen_46(double %a, double %b) {
562 ; CHECK-LABEL: @auto_gen_46(
563 ; CHECK-NEXT: ret i1 false
565 %cmp = fcmp ugt double %a, %b
566 %cmp1 = fcmp oeq double %a, %b
567 %retval = and i1 %cmp, %cmp1
571 define i1 @auto_gen_47(double %a, double %b) {
572 ; CHECK-LABEL: @auto_gen_47(
573 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
574 ; CHECK-NEXT: ret i1 [[TMP1]]
576 %cmp = fcmp ugt double %a, %b
577 %cmp1 = fcmp ogt double %a, %b
578 %retval = and i1 %cmp, %cmp1
582 define i1 @auto_gen_48(double %a, double %b) {
583 ; CHECK-LABEL: @auto_gen_48(
584 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
585 ; CHECK-NEXT: ret i1 [[TMP1]]
587 %cmp = fcmp ugt double %a, %b
588 %cmp1 = fcmp oge double %a, %b
589 %retval = and i1 %cmp, %cmp1
593 define i1 @auto_gen_49(double %a, double %b) {
594 ; CHECK-LABEL: @auto_gen_49(
595 ; CHECK-NEXT: ret i1 false
597 %cmp = fcmp ugt double %a, %b
598 %cmp1 = fcmp olt double %a, %b
599 %retval = and i1 %cmp, %cmp1
603 define i1 @auto_gen_50(double %a, double %b) {
604 ; CHECK-LABEL: @auto_gen_50(
605 ; CHECK-NEXT: ret i1 false
607 %cmp = fcmp ugt double %a, %b
608 %cmp1 = fcmp ole double %a, %b
609 %retval = and i1 %cmp, %cmp1
613 define i1 @auto_gen_51(double %a, double %b) {
614 ; CHECK-LABEL: @auto_gen_51(
615 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
616 ; CHECK-NEXT: ret i1 [[TMP1]]
618 %cmp = fcmp ugt double %a, %b
619 %cmp1 = fcmp one double %a, %b
620 %retval = and i1 %cmp, %cmp1
624 define i1 @auto_gen_52(double %a, double %b) {
625 ; CHECK-LABEL: @auto_gen_52(
626 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
627 ; CHECK-NEXT: ret i1 [[TMP1]]
629 %cmp = fcmp ugt double %a, %b
630 %cmp1 = fcmp ord double %a, %b
631 %retval = and i1 %cmp, %cmp1
635 define i1 @auto_gen_53(double %a, double %b) {
636 ; CHECK-LABEL: @auto_gen_53(
637 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
638 ; CHECK-NEXT: ret i1 [[TMP1]]
640 %cmp = fcmp ugt double %a, %b
641 %cmp1 = fcmp ueq double %a, %b
642 %retval = and i1 %cmp, %cmp1
646 define i1 @auto_gen_54(double %a, double %b) {
647 ; CHECK-LABEL: @auto_gen_54(
648 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
649 ; CHECK-NEXT: ret i1 [[TMP1]]
651 %cmp = fcmp ugt double %a, %b
652 %cmp1 = fcmp ugt double %a, %b
653 %retval = and i1 %cmp, %cmp1
657 define i1 @auto_gen_55(double %a, double %b) {
658 ; CHECK-LABEL: @auto_gen_55(
659 ; CHECK-NEXT: ret i1 false
661 %cmp = fcmp uge double %a, %b
662 %cmp1 = fcmp false double %a, %b
663 %retval = and i1 %cmp, %cmp1
667 define i1 @auto_gen_56(double %a, double %b) {
668 ; CHECK-LABEL: @auto_gen_56(
669 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
670 ; CHECK-NEXT: ret i1 [[TMP1]]
672 %cmp = fcmp uge double %a, %b
673 %cmp1 = fcmp oeq double %a, %b
674 %retval = and i1 %cmp, %cmp1
678 define i1 @auto_gen_57(double %a, double %b) {
679 ; CHECK-LABEL: @auto_gen_57(
680 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
681 ; CHECK-NEXT: ret i1 [[TMP1]]
683 %cmp = fcmp uge double %a, %b
684 %cmp1 = fcmp ogt double %a, %b
685 %retval = and i1 %cmp, %cmp1
689 define i1 @auto_gen_58(double %a, double %b) {
690 ; CHECK-LABEL: @auto_gen_58(
691 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
692 ; CHECK-NEXT: ret i1 [[TMP1]]
694 %cmp = fcmp uge double %a, %b
695 %cmp1 = fcmp oge double %a, %b
696 %retval = and i1 %cmp, %cmp1
700 define i1 @auto_gen_59(double %a, double %b) {
701 ; CHECK-LABEL: @auto_gen_59(
702 ; CHECK-NEXT: ret i1 false
704 %cmp = fcmp uge double %a, %b
705 %cmp1 = fcmp olt double %a, %b
706 %retval = and i1 %cmp, %cmp1
710 define i1 @auto_gen_60(double %a, double %b) {
711 ; CHECK-LABEL: @auto_gen_60(
712 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
713 ; CHECK-NEXT: ret i1 [[TMP1]]
715 %cmp = fcmp uge double %a, %b
716 %cmp1 = fcmp ole double %a, %b
717 %retval = and i1 %cmp, %cmp1
721 define i1 @auto_gen_61(double %a, double %b) {
722 ; CHECK-LABEL: @auto_gen_61(
723 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
724 ; CHECK-NEXT: ret i1 [[TMP1]]
726 %cmp = fcmp uge double %a, %b
727 %cmp1 = fcmp one double %a, %b
728 %retval = and i1 %cmp, %cmp1
732 define i1 @auto_gen_62(double %a, double %b) {
733 ; CHECK-LABEL: @auto_gen_62(
734 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
735 ; CHECK-NEXT: ret i1 [[TMP1]]
737 %cmp = fcmp uge double %a, %b
738 %cmp1 = fcmp ord double %a, %b
739 %retval = and i1 %cmp, %cmp1
743 define i1 @auto_gen_63(double %a, double %b) {
744 ; CHECK-LABEL: @auto_gen_63(
745 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
746 ; CHECK-NEXT: ret i1 [[TMP1]]
748 %cmp = fcmp uge double %a, %b
749 %cmp1 = fcmp ueq double %a, %b
750 %retval = and i1 %cmp, %cmp1
754 define i1 @auto_gen_64(double %a, double %b) {
755 ; CHECK-LABEL: @auto_gen_64(
756 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
757 ; CHECK-NEXT: ret i1 [[TMP1]]
759 %cmp = fcmp uge double %a, %b
760 %cmp1 = fcmp ugt double %a, %b
761 %retval = and i1 %cmp, %cmp1
765 define i1 @auto_gen_65(double %a, double %b) {
766 ; CHECK-LABEL: @auto_gen_65(
767 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
768 ; CHECK-NEXT: ret i1 [[TMP1]]
770 %cmp = fcmp uge double %a, %b
771 %cmp1 = fcmp uge double %a, %b
772 %retval = and i1 %cmp, %cmp1
776 define i1 @auto_gen_66(double %a, double %b) {
777 ; CHECK-LABEL: @auto_gen_66(
778 ; CHECK-NEXT: ret i1 false
780 %cmp = fcmp ult double %a, %b
781 %cmp1 = fcmp false double %a, %b
782 %retval = and i1 %cmp, %cmp1
786 define i1 @auto_gen_67(double %a, double %b) {
787 ; CHECK-LABEL: @auto_gen_67(
788 ; CHECK-NEXT: ret i1 false
790 %cmp = fcmp ult double %a, %b
791 %cmp1 = fcmp oeq double %a, %b
792 %retval = and i1 %cmp, %cmp1
796 define i1 @auto_gen_68(double %a, double %b) {
797 ; CHECK-LABEL: @auto_gen_68(
798 ; CHECK-NEXT: ret i1 false
800 %cmp = fcmp ult double %a, %b
801 %cmp1 = fcmp ogt double %a, %b
802 %retval = and i1 %cmp, %cmp1
806 define i1 @auto_gen_69(double %a, double %b) {
807 ; CHECK-LABEL: @auto_gen_69(
808 ; CHECK-NEXT: ret i1 false
810 %cmp = fcmp ult double %a, %b
811 %cmp1 = fcmp oge double %a, %b
812 %retval = and i1 %cmp, %cmp1
816 define i1 @auto_gen_70(double %a, double %b) {
817 ; CHECK-LABEL: @auto_gen_70(
818 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
819 ; CHECK-NEXT: ret i1 [[TMP1]]
821 %cmp = fcmp ult double %a, %b
822 %cmp1 = fcmp olt double %a, %b
823 %retval = and i1 %cmp, %cmp1
827 define i1 @auto_gen_71(double %a, double %b) {
828 ; CHECK-LABEL: @auto_gen_71(
829 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
830 ; CHECK-NEXT: ret i1 [[TMP1]]
832 %cmp = fcmp ult double %a, %b
833 %cmp1 = fcmp ole double %a, %b
834 %retval = and i1 %cmp, %cmp1
838 define i1 @auto_gen_72(double %a, double %b) {
839 ; CHECK-LABEL: @auto_gen_72(
840 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
841 ; CHECK-NEXT: ret i1 [[TMP1]]
843 %cmp = fcmp ult double %a, %b
844 %cmp1 = fcmp one double %a, %b
845 %retval = and i1 %cmp, %cmp1
849 define i1 @auto_gen_73(double %a, double %b) {
850 ; CHECK-LABEL: @auto_gen_73(
851 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
852 ; CHECK-NEXT: ret i1 [[TMP1]]
854 %cmp = fcmp ult double %a, %b
855 %cmp1 = fcmp ord double %a, %b
856 %retval = and i1 %cmp, %cmp1
860 define i1 @auto_gen_74(double %a, double %b) {
861 ; CHECK-LABEL: @auto_gen_74(
862 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
863 ; CHECK-NEXT: ret i1 [[TMP1]]
865 %cmp = fcmp ult double %a, %b
866 %cmp1 = fcmp ueq double %a, %b
867 %retval = and i1 %cmp, %cmp1
871 define i1 @auto_gen_75(double %a, double %b) {
872 ; CHECK-LABEL: @auto_gen_75(
873 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
874 ; CHECK-NEXT: ret i1 [[TMP1]]
876 %cmp = fcmp ult double %a, %b
877 %cmp1 = fcmp ugt double %a, %b
878 %retval = and i1 %cmp, %cmp1
882 define i1 @auto_gen_76(double %a, double %b) {
883 ; CHECK-LABEL: @auto_gen_76(
884 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
885 ; CHECK-NEXT: ret i1 [[TMP1]]
887 %cmp = fcmp ult double %a, %b
888 %cmp1 = fcmp uge double %a, %b
889 %retval = and i1 %cmp, %cmp1
893 define i1 @auto_gen_77(double %a, double %b) {
894 ; CHECK-LABEL: @auto_gen_77(
895 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
896 ; CHECK-NEXT: ret i1 [[TMP1]]
898 %cmp = fcmp ult double %a, %b
899 %cmp1 = fcmp ult double %a, %b
900 %retval = and i1 %cmp, %cmp1
904 define i1 @auto_gen_78(double %a, double %b) {
905 ; CHECK-LABEL: @auto_gen_78(
906 ; CHECK-NEXT: ret i1 false
908 %cmp = fcmp ule double %a, %b
909 %cmp1 = fcmp false double %a, %b
910 %retval = and i1 %cmp, %cmp1
914 define i1 @auto_gen_79(double %a, double %b) {
915 ; CHECK-LABEL: @auto_gen_79(
916 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
917 ; CHECK-NEXT: ret i1 [[TMP1]]
919 %cmp = fcmp ule double %a, %b
920 %cmp1 = fcmp oeq double %a, %b
921 %retval = and i1 %cmp, %cmp1
925 define i1 @auto_gen_80(double %a, double %b) {
926 ; CHECK-LABEL: @auto_gen_80(
927 ; CHECK-NEXT: ret i1 false
929 %cmp = fcmp ule double %a, %b
930 %cmp1 = fcmp ogt double %a, %b
931 %retval = and i1 %cmp, %cmp1
935 define i1 @auto_gen_81(double %a, double %b) {
936 ; CHECK-LABEL: @auto_gen_81(
937 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
938 ; CHECK-NEXT: ret i1 [[TMP1]]
940 %cmp = fcmp ule double %a, %b
941 %cmp1 = fcmp oge double %a, %b
942 %retval = and i1 %cmp, %cmp1
946 define i1 @auto_gen_82(double %a, double %b) {
947 ; CHECK-LABEL: @auto_gen_82(
948 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
949 ; CHECK-NEXT: ret i1 [[TMP1]]
951 %cmp = fcmp ule double %a, %b
952 %cmp1 = fcmp olt double %a, %b
953 %retval = and i1 %cmp, %cmp1
957 define i1 @auto_gen_83(double %a, double %b) {
958 ; CHECK-LABEL: @auto_gen_83(
959 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
960 ; CHECK-NEXT: ret i1 [[TMP1]]
962 %cmp = fcmp ule double %a, %b
963 %cmp1 = fcmp ole double %a, %b
964 %retval = and i1 %cmp, %cmp1
968 define i1 @auto_gen_84(double %a, double %b) {
969 ; CHECK-LABEL: @auto_gen_84(
970 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
971 ; CHECK-NEXT: ret i1 [[TMP1]]
973 %cmp = fcmp ule double %a, %b
974 %cmp1 = fcmp one double %a, %b
975 %retval = and i1 %cmp, %cmp1
979 define i1 @auto_gen_85(double %a, double %b) {
980 ; CHECK-LABEL: @auto_gen_85(
981 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
982 ; CHECK-NEXT: ret i1 [[TMP1]]
984 %cmp = fcmp ule double %a, %b
985 %cmp1 = fcmp ord double %a, %b
986 %retval = and i1 %cmp, %cmp1
990 define i1 @auto_gen_86(double %a, double %b) {
991 ; CHECK-LABEL: @auto_gen_86(
992 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
993 ; CHECK-NEXT: ret i1 [[TMP1]]
995 %cmp = fcmp ule double %a, %b
996 %cmp1 = fcmp ueq double %a, %b
997 %retval = and i1 %cmp, %cmp1
1001 define i1 @auto_gen_87(double %a, double %b) {
1002 ; CHECK-LABEL: @auto_gen_87(
1003 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
1004 ; CHECK-NEXT: ret i1 [[TMP1]]
1006 %cmp = fcmp ule double %a, %b
1007 %cmp1 = fcmp ugt double %a, %b
1008 %retval = and i1 %cmp, %cmp1
1012 define i1 @auto_gen_88(double %a, double %b) {
1013 ; CHECK-LABEL: @auto_gen_88(
1014 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
1015 ; CHECK-NEXT: ret i1 [[TMP1]]
1017 %cmp = fcmp ule double %a, %b
1018 %cmp1 = fcmp uge double %a, %b
1019 %retval = and i1 %cmp, %cmp1
1023 define i1 @auto_gen_89(double %a, double %b) {
1024 ; CHECK-LABEL: @auto_gen_89(
1025 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
1026 ; CHECK-NEXT: ret i1 [[TMP1]]
1028 %cmp = fcmp ule double %a, %b
1029 %cmp1 = fcmp ult double %a, %b
1030 %retval = and i1 %cmp, %cmp1
1034 define i1 @auto_gen_90(double %a, double %b) {
1035 ; CHECK-LABEL: @auto_gen_90(
1036 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
1037 ; CHECK-NEXT: ret i1 [[TMP1]]
1039 %cmp = fcmp ule double %a, %b
1040 %cmp1 = fcmp ule double %a, %b
1041 %retval = and i1 %cmp, %cmp1
1045 define i1 @auto_gen_91(double %a, double %b) {
1046 ; CHECK-LABEL: @auto_gen_91(
1047 ; CHECK-NEXT: ret i1 false
1049 %cmp = fcmp une double %a, %b
1050 %cmp1 = fcmp false double %a, %b
1051 %retval = and i1 %cmp, %cmp1
1055 define i1 @auto_gen_92(double %a, double %b) {
1056 ; CHECK-LABEL: @auto_gen_92(
1057 ; CHECK-NEXT: ret i1 false
1059 %cmp = fcmp une double %a, %b
1060 %cmp1 = fcmp oeq double %a, %b
1061 %retval = and i1 %cmp, %cmp1
1065 define i1 @auto_gen_93(double %a, double %b) {
1066 ; CHECK-LABEL: @auto_gen_93(
1067 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
1068 ; CHECK-NEXT: ret i1 [[TMP1]]
1070 %cmp = fcmp une double %a, %b
1071 %cmp1 = fcmp ogt double %a, %b
1072 %retval = and i1 %cmp, %cmp1
1076 define i1 @auto_gen_94(double %a, double %b) {
1077 ; CHECK-LABEL: @auto_gen_94(
1078 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
1079 ; CHECK-NEXT: ret i1 [[TMP1]]
1081 %cmp = fcmp une double %a, %b
1082 %cmp1 = fcmp oge double %a, %b
1083 %retval = and i1 %cmp, %cmp1
1087 define i1 @auto_gen_95(double %a, double %b) {
1088 ; CHECK-LABEL: @auto_gen_95(
1089 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
1090 ; CHECK-NEXT: ret i1 [[TMP1]]
1092 %cmp = fcmp une double %a, %b
1093 %cmp1 = fcmp olt double %a, %b
1094 %retval = and i1 %cmp, %cmp1
1098 define i1 @auto_gen_96(double %a, double %b) {
1099 ; CHECK-LABEL: @auto_gen_96(
1100 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
1101 ; CHECK-NEXT: ret i1 [[TMP1]]
1103 %cmp = fcmp une double %a, %b
1104 %cmp1 = fcmp ole double %a, %b
1105 %retval = and i1 %cmp, %cmp1
1109 define i1 @auto_gen_97(double %a, double %b) {
1110 ; CHECK-LABEL: @auto_gen_97(
1111 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
1112 ; CHECK-NEXT: ret i1 [[TMP1]]
1114 %cmp = fcmp une double %a, %b
1115 %cmp1 = fcmp one double %a, %b
1116 %retval = and i1 %cmp, %cmp1
1120 define i1 @auto_gen_98(double %a, double %b) {
1121 ; CHECK-LABEL: @auto_gen_98(
1122 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
1123 ; CHECK-NEXT: ret i1 [[TMP1]]
1125 %cmp = fcmp une double %a, %b
1126 %cmp1 = fcmp ord double %a, %b
1127 %retval = and i1 %cmp, %cmp1
1131 define i1 @auto_gen_99(double %a, double %b) {
1132 ; CHECK-LABEL: @auto_gen_99(
1133 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
1134 ; CHECK-NEXT: ret i1 [[TMP1]]
1136 %cmp = fcmp une double %a, %b
1137 %cmp1 = fcmp ueq double %a, %b
1138 %retval = and i1 %cmp, %cmp1
1142 define i1 @auto_gen_100(double %a, double %b) {
1143 ; CHECK-LABEL: @auto_gen_100(
1144 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
1145 ; CHECK-NEXT: ret i1 [[TMP1]]
1147 %cmp = fcmp une double %a, %b
1148 %cmp1 = fcmp ugt double %a, %b
1149 %retval = and i1 %cmp, %cmp1
1153 define i1 @auto_gen_101(double %a, double %b) {
1154 ; CHECK-LABEL: @auto_gen_101(
1155 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
1156 ; CHECK-NEXT: ret i1 [[TMP1]]
1158 %cmp = fcmp une double %a, %b
1159 %cmp1 = fcmp uge double %a, %b
1160 %retval = and i1 %cmp, %cmp1
1164 define i1 @auto_gen_102(double %a, double %b) {
1165 ; CHECK-LABEL: @auto_gen_102(
1166 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
1167 ; CHECK-NEXT: ret i1 [[TMP1]]
1169 %cmp = fcmp une double %a, %b
1170 %cmp1 = fcmp ult double %a, %b
1171 %retval = and i1 %cmp, %cmp1
1175 define i1 @auto_gen_103(double %a, double %b) {
1176 ; CHECK-LABEL: @auto_gen_103(
1177 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
1178 ; CHECK-NEXT: ret i1 [[TMP1]]
1180 %cmp = fcmp une double %a, %b
1181 %cmp1 = fcmp ule double %a, %b
1182 %retval = and i1 %cmp, %cmp1
1186 define i1 @auto_gen_104(double %a, double %b) {
1187 ; CHECK-LABEL: @auto_gen_104(
1188 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
1189 ; CHECK-NEXT: ret i1 [[TMP1]]
1191 %cmp = fcmp une double %a, %b
1192 %cmp1 = fcmp une double %a, %b
1193 %retval = and i1 %cmp, %cmp1
1197 define i1 @auto_gen_105(double %a, double %b) {
1198 ; CHECK-LABEL: @auto_gen_105(
1199 ; CHECK-NEXT: ret i1 false
1201 %cmp = fcmp uno double %a, %b
1202 %cmp1 = fcmp false double %a, %b
1203 %retval = and i1 %cmp, %cmp1
1207 define i1 @auto_gen_106(double %a, double %b) {
1208 ; CHECK-LABEL: @auto_gen_106(
1209 ; CHECK-NEXT: ret i1 false
1211 %cmp = fcmp uno double %a, %b
1212 %cmp1 = fcmp oeq double %a, %b
1213 %retval = and i1 %cmp, %cmp1
1217 define i1 @auto_gen_107(double %a, double %b) {
1218 ; CHECK-LABEL: @auto_gen_107(
1219 ; CHECK-NEXT: ret i1 false
1221 %cmp = fcmp uno double %a, %b
1222 %cmp1 = fcmp ogt double %a, %b
1223 %retval = and i1 %cmp, %cmp1
1227 define i1 @auto_gen_108(double %a, double %b) {
1228 ; CHECK-LABEL: @auto_gen_108(
1229 ; CHECK-NEXT: ret i1 false
1231 %cmp = fcmp uno double %a, %b
1232 %cmp1 = fcmp oge double %a, %b
1233 %retval = and i1 %cmp, %cmp1
1237 define i1 @auto_gen_109(double %a, double %b) {
1238 ; CHECK-LABEL: @auto_gen_109(
1239 ; CHECK-NEXT: ret i1 false
1241 %cmp = fcmp uno double %a, %b
1242 %cmp1 = fcmp olt double %a, %b
1243 %retval = and i1 %cmp, %cmp1
1247 define i1 @auto_gen_110(double %a, double %b) {
1248 ; CHECK-LABEL: @auto_gen_110(
1249 ; CHECK-NEXT: ret i1 false
1251 %cmp = fcmp uno double %a, %b
1252 %cmp1 = fcmp ole double %a, %b
1253 %retval = and i1 %cmp, %cmp1
1257 define i1 @auto_gen_111(double %a, double %b) {
1258 ; CHECK-LABEL: @auto_gen_111(
1259 ; CHECK-NEXT: ret i1 false
1261 %cmp = fcmp uno double %a, %b
1262 %cmp1 = fcmp one double %a, %b
1263 %retval = and i1 %cmp, %cmp1
1267 define i1 @auto_gen_112(double %a, double %b) {
1268 ; CHECK-LABEL: @auto_gen_112(
1269 ; CHECK-NEXT: ret i1 false
1271 %cmp = fcmp uno double %a, %b
1272 %cmp1 = fcmp ord double %a, %b
1273 %retval = and i1 %cmp, %cmp1
1277 define i1 @auto_gen_113(double %a, double %b) {
1278 ; CHECK-LABEL: @auto_gen_113(
1279 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
1280 ; CHECK-NEXT: ret i1 [[TMP1]]
1282 %cmp = fcmp uno double %a, %b
1283 %cmp1 = fcmp ueq double %a, %b
1284 %retval = and i1 %cmp, %cmp1
1288 define i1 @auto_gen_114(double %a, double %b) {
1289 ; CHECK-LABEL: @auto_gen_114(
1290 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
1291 ; CHECK-NEXT: ret i1 [[TMP1]]
1293 %cmp = fcmp uno double %a, %b
1294 %cmp1 = fcmp ugt double %a, %b
1295 %retval = and i1 %cmp, %cmp1
1299 define i1 @auto_gen_115(double %a, double %b) {
1300 ; CHECK-LABEL: @auto_gen_115(
1301 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
1302 ; CHECK-NEXT: ret i1 [[TMP1]]
1304 %cmp = fcmp uno double %a, %b
1305 %cmp1 = fcmp uge double %a, %b
1306 %retval = and i1 %cmp, %cmp1
1310 define i1 @auto_gen_116(double %a, double %b) {
1311 ; CHECK-LABEL: @auto_gen_116(
1312 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
1313 ; CHECK-NEXT: ret i1 [[TMP1]]
1315 %cmp = fcmp uno double %a, %b
1316 %cmp1 = fcmp ult double %a, %b
1317 %retval = and i1 %cmp, %cmp1
1321 define i1 @auto_gen_117(double %a, double %b) {
1322 ; CHECK-LABEL: @auto_gen_117(
1323 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
1324 ; CHECK-NEXT: ret i1 [[TMP1]]
1326 %cmp = fcmp uno double %a, %b
1327 %cmp1 = fcmp ule double %a, %b
1328 %retval = and i1 %cmp, %cmp1
1332 define i1 @auto_gen_118(double %a, double %b) {
1333 ; CHECK-LABEL: @auto_gen_118(
1334 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
1335 ; CHECK-NEXT: ret i1 [[TMP1]]
1337 %cmp = fcmp uno double %a, %b
1338 %cmp1 = fcmp une double %a, %b
1339 %retval = and i1 %cmp, %cmp1
1343 define i1 @auto_gen_119(double %a, double %b) {
1344 ; CHECK-LABEL: @auto_gen_119(
1345 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
1346 ; CHECK-NEXT: ret i1 [[TMP1]]
1348 %cmp = fcmp uno double %a, %b
1349 %cmp1 = fcmp uno double %a, %b
1350 %retval = and i1 %cmp, %cmp1
1354 define i1 @auto_gen_120(double %a, double %b) {
1355 ; CHECK-LABEL: @auto_gen_120(
1356 ; CHECK-NEXT: ret i1 false
1358 %cmp = fcmp true double %a, %b
1359 %cmp1 = fcmp false double %a, %b
1360 %retval = and i1 %cmp, %cmp1
1364 define i1 @auto_gen_121(double %a, double %b) {
1365 ; CHECK-LABEL: @auto_gen_121(
1366 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
1367 ; CHECK-NEXT: ret i1 [[CMP1]]
1369 %cmp = fcmp true double %a, %b
1370 %cmp1 = fcmp oeq double %a, %b
1371 %retval = and i1 %cmp, %cmp1
1375 define i1 @auto_gen_122(double %a, double %b) {
1376 ; CHECK-LABEL: @auto_gen_122(
1377 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
1378 ; CHECK-NEXT: ret i1 [[CMP1]]
1380 %cmp = fcmp true double %a, %b
1381 %cmp1 = fcmp ogt double %a, %b
1382 %retval = and i1 %cmp, %cmp1
1386 define i1 @auto_gen_123(double %a, double %b) {
1387 ; CHECK-LABEL: @auto_gen_123(
1388 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
1389 ; CHECK-NEXT: ret i1 [[CMP1]]
1391 %cmp = fcmp true double %a, %b
1392 %cmp1 = fcmp oge double %a, %b
1393 %retval = and i1 %cmp, %cmp1
1397 define i1 @auto_gen_124(double %a, double %b) {
1398 ; CHECK-LABEL: @auto_gen_124(
1399 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
1400 ; CHECK-NEXT: ret i1 [[CMP1]]
1402 %cmp = fcmp true double %a, %b
1403 %cmp1 = fcmp olt double %a, %b
1404 %retval = and i1 %cmp, %cmp1
1408 define i1 @auto_gen_125(double %a, double %b) {
1409 ; CHECK-LABEL: @auto_gen_125(
1410 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
1411 ; CHECK-NEXT: ret i1 [[CMP1]]
1413 %cmp = fcmp true double %a, %b
1414 %cmp1 = fcmp ole double %a, %b
1415 %retval = and i1 %cmp, %cmp1
1419 define i1 @auto_gen_126(double %a, double %b) {
1420 ; CHECK-LABEL: @auto_gen_126(
1421 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
1422 ; CHECK-NEXT: ret i1 [[CMP1]]
1424 %cmp = fcmp true double %a, %b
1425 %cmp1 = fcmp one double %a, %b
1426 %retval = and i1 %cmp, %cmp1
1430 define i1 @auto_gen_127(double %a, double %b) {
1431 ; CHECK-LABEL: @auto_gen_127(
1432 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
1433 ; CHECK-NEXT: ret i1 [[CMP1]]
1435 %cmp = fcmp true double %a, %b
1436 %cmp1 = fcmp ord double %a, %b
1437 %retval = and i1 %cmp, %cmp1
1441 define i1 @auto_gen_128(double %a, double %b) {
1442 ; CHECK-LABEL: @auto_gen_128(
1443 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
1444 ; CHECK-NEXT: ret i1 [[CMP1]]
1446 %cmp = fcmp true double %a, %b
1447 %cmp1 = fcmp ueq double %a, %b
1448 %retval = and i1 %cmp, %cmp1
1452 define i1 @auto_gen_129(double %a, double %b) {
1453 ; CHECK-LABEL: @auto_gen_129(
1454 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
1455 ; CHECK-NEXT: ret i1 [[CMP1]]
1457 %cmp = fcmp true double %a, %b
1458 %cmp1 = fcmp ugt double %a, %b
1459 %retval = and i1 %cmp, %cmp1
1463 define i1 @auto_gen_130(double %a, double %b) {
1464 ; CHECK-LABEL: @auto_gen_130(
1465 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
1466 ; CHECK-NEXT: ret i1 [[CMP1]]
1468 %cmp = fcmp true double %a, %b
1469 %cmp1 = fcmp uge double %a, %b
1470 %retval = and i1 %cmp, %cmp1
1474 define i1 @auto_gen_131(double %a, double %b) {
1475 ; CHECK-LABEL: @auto_gen_131(
1476 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
1477 ; CHECK-NEXT: ret i1 [[CMP1]]
1479 %cmp = fcmp true double %a, %b
1480 %cmp1 = fcmp ult double %a, %b
1481 %retval = and i1 %cmp, %cmp1
1485 define i1 @auto_gen_132(double %a, double %b) {
1486 ; CHECK-LABEL: @auto_gen_132(
1487 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
1488 ; CHECK-NEXT: ret i1 [[CMP1]]
1490 %cmp = fcmp true double %a, %b
1491 %cmp1 = fcmp ule double %a, %b
1492 %retval = and i1 %cmp, %cmp1
1496 define i1 @auto_gen_133(double %a, double %b) {
1497 ; CHECK-LABEL: @auto_gen_133(
1498 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
1499 ; CHECK-NEXT: ret i1 [[CMP1]]
1501 %cmp = fcmp true double %a, %b
1502 %cmp1 = fcmp une double %a, %b
1503 %retval = and i1 %cmp, %cmp1
1507 define i1 @auto_gen_134(double %a, double %b) {
1508 ; CHECK-LABEL: @auto_gen_134(
1509 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
1510 ; CHECK-NEXT: ret i1 [[CMP1]]
1512 %cmp = fcmp true double %a, %b
1513 %cmp1 = fcmp uno double %a, %b
1514 %retval = and i1 %cmp, %cmp1
1518 define i1 @auto_gen_135(double %a, double %b) {
1519 ; CHECK-LABEL: @auto_gen_135(
1520 ; CHECK-NEXT: ret i1 true
1522 %cmp = fcmp true double %a, %b
1523 %cmp1 = fcmp true double %a, %b
1524 %retval = and i1 %cmp, %cmp1