Lines Matching full:arg

15 define i1 @assume_olt_neg1__oeq_0(float %arg) {
17 ; CHECK-SAME: float [[ARG:%.*]]) {
18 ; CHECK-NEXT: [[OLT_NEG1:%.*]] = fcmp olt float [[ARG]], -1.000000e+00
22 %olt.neg1 = fcmp olt float %arg, -1.0
24 %cmp = fcmp oeq float %arg, 0.0
28 define i1 @assume_olt_neg1__ogt_0(float %arg) {
30 ; CHECK-SAME: float [[ARG:%.*]]) {
31 ; CHECK-NEXT: [[OLT_NEG1:%.*]] = fcmp olt float [[ARG]], -1.000000e+00
35 %olt.neg1 = fcmp olt float %arg, -1.0
37 %cmp = fcmp ogt float %arg, 0.0
41 define i1 @assume_olt_neg1__oge_0(float %arg) {
43 ; CHECK-SAME: float [[ARG:%.*]]) {
44 ; CHECK-NEXT: [[OLT_NEG1:%.*]] = fcmp olt float [[ARG]], -1.000000e+00
48 %olt.neg1 = fcmp olt float %arg, -1.0
50 %cmp = fcmp oge float %arg, 0.0
54 define i1 @assume_olt_neg1__olt_0(float %arg) {
56 ; CHECK-SAME: float [[ARG:%.*]]) {
57 ; CHECK-NEXT: [[OLT_NEG1:%.*]] = fcmp olt float [[ARG]], -1.000000e+00
61 %olt.neg1 = fcmp olt float %arg, -1.0
63 %cmp = fcmp olt float %arg, 0.0
67 define i1 @assume_olt_neg1__ole_0(float %arg) {
69 ; CHECK-SAME: float [[ARG:%.*]]) {
70 ; CHECK-NEXT: [[OLT_NEG1:%.*]] = fcmp olt float [[ARG]], -1.000000e+00
74 %olt.neg1 = fcmp olt float %arg, -1.0
76 %cmp = fcmp ole float %arg, 0.0
80 define i1 @assume_olt_neg1__one_0(float %arg) {
82 ; CHECK-SAME: float [[ARG:%.*]]) {
83 ; CHECK-NEXT: [[OLT_NEG1:%.*]] = fcmp olt float [[ARG]], -1.000000e+00
87 %olt.neg1 = fcmp olt float %arg, -1.0
89 %cmp = fcmp one float %arg, 0.0
93 define i1 @assume_olt_neg1__ord_0(float %arg) {
95 ; CHECK-SAME: float [[ARG:%.*]]) {
96 ; CHECK-NEXT: [[OLT_NEG1:%.*]] = fcmp olt float [[ARG]], -1.000000e+00
100 %olt.neg1 = fcmp olt float %arg, -1.0
102 %cmp = fcmp ord float %arg, 0.0
106 define i1 @assume_olt_neg1__ueq_0(float %arg) {
108 ; CHECK-SAME: float [[ARG:%.*]]) {
109 ; CHECK-NEXT: [[OLT_NEG1:%.*]] = fcmp olt float [[ARG]], -1.000000e+00
113 %olt.neg1 = fcmp olt float %arg, -1.0
115 %cmp = fcmp ueq float %arg, 0.0
119 define i1 @assume_olt_neg1__ugt_0(float %arg) {
121 ; CHECK-SAME: float [[ARG:%.*]]) {
122 ; CHECK-NEXT: [[OLT_NEG1:%.*]] = fcmp olt float [[ARG]], -1.000000e+00
126 %olt.neg1 = fcmp olt float %arg, -1.0
128 %cmp = fcmp ugt float %arg, 0.0
132 define i1 @assume_olt_neg1__uge_0(float %arg) {
134 ; CHECK-SAME: float [[ARG:%.*]]) {
135 ; CHECK-NEXT: [[OLT_NEG1:%.*]] = fcmp olt float [[ARG]], -1.000000e+00
139 %olt.neg1 = fcmp olt float %arg, -1.0
141 %cmp = fcmp uge float %arg, 0.0
145 define i1 @assume_olt_neg1__ult_0(float %arg) {
147 ; CHECK-SAME: float [[ARG:%.*]]) {
148 ; CHECK-NEXT: [[OLT_NEG1:%.*]] = fcmp olt float [[ARG]], -1.000000e+00
152 %olt.neg1 = fcmp olt float %arg, -1.0
154 %cmp = fcmp ult float %arg, 0.0
158 define i1 @assume_olt_neg1__ule_0(float %arg) {
160 ; CHECK-SAME: float [[ARG:%.*]]) {
161 ; CHECK-NEXT: [[OLT_NEG1:%.*]] = fcmp olt float [[ARG]], -1.000000e+00
165 %olt.neg1 = fcmp olt float %arg, -1.0
167 %cmp = fcmp ule float %arg, 0.0
171 define i1 @assume_olt_neg1__une_0(float %arg) {
173 ; CHECK-SAME: float [[ARG:%.*]]) {
174 ; CHECK-NEXT: [[OLT_NEG1:%.*]] = fcmp olt float [[ARG]], -1.000000e+00
178 %olt.neg1 = fcmp olt float %arg, -1.0
180 %cmp = fcmp une float %arg, 0.0
184 define i1 @assume_olt_neg1__uno_0(float %arg) {
186 ; CHECK-SAME: float [[ARG:%.*]]) {
187 ; CHECK-NEXT: [[OLT_NEG1:%.*]] = fcmp olt float [[ARG]], -1.000000e+00
191 %olt.neg1 = fcmp olt float %arg, -1.0
193 %cmp = fcmp uno float %arg, 0.0
201 define i1 @assume_ole_neg1__oeq_0(float %arg) {
203 ; CHECK-SAME: float [[ARG:%.*]]) {
204 ; CHECK-NEXT: [[OLE_NEG1:%.*]] = fcmp ole float [[ARG]], -1.000000e+00
208 %ole.neg1 = fcmp ole float %arg, -1.0
210 %cmp = fcmp oeq float %arg, 0.0
214 define i1 @assume_ole_neg1__ogt_0(float %arg) {
216 ; CHECK-SAME: float [[ARG:%.*]]) {
217 ; CHECK-NEXT: [[OLE_NEG1:%.*]] = fcmp ole float [[ARG]], -1.000000e+00
221 %ole.neg1 = fcmp ole float %arg, -1.0
223 %cmp = fcmp ogt float %arg, 0.0
227 define i1 @assume_ole_neg1__oge_0(float %arg) {
229 ; CHECK-SAME: float [[ARG:%.*]]) {
230 ; CHECK-NEXT: [[OLE_NEG1:%.*]] = fcmp ole float [[ARG]], -1.000000e+00
234 %ole.neg1 = fcmp ole float %arg, -1.0
236 %cmp = fcmp oge float %arg, 0.0
240 define i1 @assume_ole_neg1__olt_0(float %arg) {
242 ; CHECK-SAME: float [[ARG:%.*]]) {
243 ; CHECK-NEXT: [[OLE_NEG1:%.*]] = fcmp ole float [[ARG]], -1.000000e+00
247 %ole.neg1 = fcmp ole float %arg, -1.0
249 %cmp = fcmp olt float %arg, 0.0
253 define i1 @assume_ole_neg1__ole_0(float %arg) {
255 ; CHECK-SAME: float [[ARG:%.*]]) {
256 ; CHECK-NEXT: [[OLE_NEG1:%.*]] = fcmp ole float [[ARG]], -1.000000e+00
260 %ole.neg1 = fcmp ole float %arg, -1.0
262 %cmp = fcmp ole float %arg, 0.0
266 define i1 @assume_ole_neg1__one_0(float %arg) {
268 ; CHECK-SAME: float [[ARG:%.*]]) {
269 ; CHECK-NEXT: [[OLE_NEG1:%.*]] = fcmp ole float [[ARG]], -1.000000e+00
273 %ole.neg1 = fcmp ole float %arg, -1.0
275 %cmp = fcmp one float %arg, 0.0
279 define i1 @assume_ole_neg1__ord_0(float %arg) {
281 ; CHECK-SAME: float [[ARG:%.*]]) {
282 ; CHECK-NEXT: [[OLE_NEG1:%.*]] = fcmp ole float [[ARG]], -1.000000e+00
286 %ole.neg1 = fcmp ole float %arg, -1.0
288 %cmp = fcmp ord float %arg, 0.0
292 define i1 @assume_ole_neg1__ueq_0(float %arg) {
294 ; CHECK-SAME: float [[ARG:%.*]]) {
295 ; CHECK-NEXT: [[OLE_NEG1:%.*]] = fcmp ole float [[ARG]], -1.000000e+00
299 %ole.neg1 = fcmp ole float %arg, -1.0
301 %cmp = fcmp ueq float %arg, 0.0
305 define i1 @assume_ole_neg1__ugt_0(float %arg) {
307 ; CHECK-SAME: float [[ARG:%.*]]) {
308 ; CHECK-NEXT: [[OLE_NEG1:%.*]] = fcmp ole float [[ARG]], -1.000000e+00
312 %ole.neg1 = fcmp ole float %arg, -1.0
314 %cmp = fcmp ugt float %arg, 0.0
318 define i1 @assume_ole_neg1__uge_0(float %arg) {
320 ; CHECK-SAME: float [[ARG:%.*]]) {
321 ; CHECK-NEXT: [[OLE_NEG1:%.*]] = fcmp ole float [[ARG]], -1.000000e+00
325 %ole.neg1 = fcmp ole float %arg, -1.0
327 %cmp = fcmp uge float %arg, 0.0
331 define i1 @assume_ole_neg1__ult_0(float %arg) {
333 ; CHECK-SAME: float [[ARG:%.*]]) {
334 ; CHECK-NEXT: [[OLE_NEG1:%.*]] = fcmp ole float [[ARG]], -1.000000e+00
338 %ole.neg1 = fcmp ole float %arg, -1.0
340 %cmp = fcmp ult float %arg, 0.0
344 define i1 @assume_ole_neg1__ule_0(float %arg) {
346 ; CHECK-SAME: float [[ARG:%.*]]) {
347 ; CHECK-NEXT: [[OLE_NEG1:%.*]] = fcmp ole float [[ARG]], -1.000000e+00
351 %ole.neg1 = fcmp ole float %arg, -1.0
353 %cmp = fcmp ule float %arg, 0.0
357 define i1 @assume_ole_neg1__une_0(float %arg) {
359 ; CHECK-SAME: float [[ARG:%.*]]) {
360 ; CHECK-NEXT: [[OLE_NEG1:%.*]] = fcmp ole float [[ARG]], -1.000000e+00
364 %ole.neg1 = fcmp ole float %arg, -1.0
366 %cmp = fcmp une float %arg, 0.0
370 define i1 @assume_ole_neg1__uno_0(float %arg) {
372 ; CHECK-SAME: float [[ARG:%.*]]) {
373 ; CHECK-NEXT: [[OLE_NEG1:%.*]] = fcmp ole float [[ARG]], -1.000000e+00
377 %ole.neg1 = fcmp ole float %arg, -1.0
379 %cmp = fcmp uno float %arg, 0.0
387 define i1 @assume_ogt_neg1__oeq_0(float %arg) {
389 ; CHECK-SAME: float [[ARG:%.*]]) {
390 ; CHECK-NEXT: [[OGT_NEG1:%.*]] = fcmp ogt float [[ARG]], -1.000000e+00
392 ; CHECK-NEXT: [[CMP:%.*]] = fcmp oeq float [[ARG]], 0.000000e+00
395 %ogt.neg1 = fcmp ogt float %arg, -1.0
397 %cmp = fcmp oeq float %arg, 0.0
401 define i1 @assume_ogt_neg1__ogt_0(float %arg) {
403 ; CHECK-SAME: float [[ARG:%.*]]) {
404 ; CHECK-NEXT: [[OGT_NEG1:%.*]] = fcmp ogt float [[ARG]], -1.000000e+00
406 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ogt float [[ARG]], 0.000000e+00
409 %ogt.neg1 = fcmp ogt float %arg, -1.0
411 %cmp = fcmp ogt float %arg, 0.0
415 define i1 @assume_ogt_neg1__oge_0(float %arg) {
417 ; CHECK-SAME: float [[ARG:%.*]]) {
418 ; CHECK-NEXT: [[OGT_NEG1:%.*]] = fcmp ogt float [[ARG]], -1.000000e+00
420 ; CHECK-NEXT: [[CMP:%.*]] = fcmp oge float [[ARG]], 0.000000e+00
423 %ogt.neg1 = fcmp ogt float %arg, -1.0
425 %cmp = fcmp oge float %arg, 0.0
429 define i1 @assume_ogt_neg1__olt_0(float %arg) {
431 ; CHECK-SAME: float [[ARG:%.*]]) {
432 ; CHECK-NEXT: [[OGT_NEG1:%.*]] = fcmp ogt float [[ARG]], -1.000000e+00
434 ; CHECK-NEXT: [[CMP:%.*]] = fcmp olt float [[ARG]], 0.000000e+00
437 %ogt.neg1 = fcmp ogt float %arg, -1.0
439 %cmp = fcmp olt float %arg, 0.0
443 define i1 @assume_ogt_neg1__ole_0(float %arg) {
445 ; CHECK-SAME: float [[ARG:%.*]]) {
446 ; CHECK-NEXT: [[OGT_NEG1:%.*]] = fcmp ogt float [[ARG]], -1.000000e+00
448 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ole float [[ARG]], 0.000000e+00
451 %ogt.neg1 = fcmp ogt float %arg, -1.0
453 %cmp = fcmp ole float %arg, 0.0
457 define i1 @assume_ogt_neg1__one_0(float %arg) {
459 ; CHECK-SAME: float [[ARG:%.*]]) {
460 ; CHECK-NEXT: [[OGT_NEG1:%.*]] = fcmp ogt float [[ARG]], -1.000000e+00
462 ; CHECK-NEXT: [[CMP:%.*]] = fcmp one float [[ARG]], 0.000000e+00
465 %ogt.neg1 = fcmp ogt float %arg, -1.0
467 %cmp = fcmp one float %arg, 0.0
471 define i1 @assume_ogt_neg1__ord_0(float %arg) {
473 ; CHECK-SAME: float [[ARG:%.*]]) {
474 ; CHECK-NEXT: [[OGT_NEG1:%.*]] = fcmp ogt float [[ARG]], -1.000000e+00
478 %ogt.neg1 = fcmp ogt float %arg, -1.0
480 %cmp = fcmp ord float %arg, 0.0
484 define i1 @assume_ogt_neg1__ueq_0(float %arg) {
486 ; CHECK-SAME: float [[ARG:%.*]]) {
487 ; CHECK-NEXT: [[OGT_NEG1:%.*]] = fcmp ogt float [[ARG]], -1.000000e+00
489 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ueq float [[ARG]], 0.000000e+00
492 %ogt.neg1 = fcmp ogt float %arg, -1.0
494 %cmp = fcmp ueq float %arg, 0.0
498 define i1 @assume_ogt_neg1__ugt_0(float %arg) {
500 ; CHECK-SAME: float [[ARG:%.*]]) {
501 ; CHECK-NEXT: [[OGT_NEG1:%.*]] = fcmp ogt float [[ARG]], -1.000000e+00
503 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ugt float [[ARG]], 0.000000e+00
506 %ogt.neg1 = fcmp ogt float %arg, -1.0
508 %cmp = fcmp ugt float %arg, 0.0
512 define i1 @assume_ogt_neg1__uge_0(float %arg) {
514 ; CHECK-SAME: float [[ARG:%.*]]) {
515 ; CHECK-NEXT: [[OGT_NEG1:%.*]] = fcmp ogt float [[ARG]], -1.000000e+00
517 ; CHECK-NEXT: [[CMP:%.*]] = fcmp uge float [[ARG]], 0.000000e+00
520 %ogt.neg1 = fcmp ogt float %arg, -1.0
522 %cmp = fcmp uge float %arg, 0.0
526 define i1 @assume_ogt_neg1__ult_0(float %arg) {
528 ; CHECK-SAME: float [[ARG:%.*]]) {
529 ; CHECK-NEXT: [[OGT_NEG1:%.*]] = fcmp ogt float [[ARG]], -1.000000e+00
531 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ult float [[ARG]], 0.000000e+00
534 %ogt.neg1 = fcmp ogt float %arg, -1.0
536 %cmp = fcmp ult float %arg, 0.0
540 define i1 @assume_ogt_neg1__ule_0(float %arg) {
542 ; CHECK-SAME: float [[ARG:%.*]]) {
543 ; CHECK-NEXT: [[OGT_NEG1:%.*]] = fcmp ogt float [[ARG]], -1.000000e+00
545 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ule float [[ARG]], 0.000000e+00
548 %ogt.neg1 = fcmp ogt float %arg, -1.0
550 %cmp = fcmp ule float %arg, 0.0
554 define i1 @assume_ogt_neg1__une_0(float %arg) {
556 ; CHECK-SAME: float [[ARG:%.*]]) {
557 ; CHECK-NEXT: [[OGT_NEG1:%.*]] = fcmp ogt float [[ARG]], -1.000000e+00
559 ; CHECK-NEXT: [[CMP:%.*]] = fcmp une float [[ARG]], 0.000000e+00
562 %ogt.neg1 = fcmp ogt float %arg, -1.0
564 %cmp = fcmp une float %arg, 0.0
568 define i1 @assume_ogt_neg1__uno_0(float %arg) {
570 ; CHECK-SAME: float [[ARG:%.*]]) {
571 ; CHECK-NEXT: [[OGT_NEG1:%.*]] = fcmp ogt float [[ARG]], -1.000000e+00
575 %ogt.neg1 = fcmp ogt float %arg, -1.0
577 %cmp = fcmp uno float %arg, 0.0
585 define i1 @assume_oge_neg1__oeq_0(float %arg) {
587 ; CHECK-SAME: float [[ARG:%.*]]) {
588 ; CHECK-NEXT: [[OGE_NEG1:%.*]] = fcmp oge float [[ARG]], -1.000000e+00
590 ; CHECK-NEXT: [[CMP:%.*]] = fcmp oeq float [[ARG]], 0.000000e+00
593 %oge.neg1 = fcmp oge float %arg, -1.0
595 %cmp = fcmp oeq float %arg, 0.0
599 define i1 @assume_oge_neg1__ogt_0(float %arg) {
601 ; CHECK-SAME: float [[ARG:%.*]]) {
602 ; CHECK-NEXT: [[OGE_NEG1:%.*]] = fcmp oge float [[ARG]], -1.000000e+00
604 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ogt float [[ARG]], 0.000000e+00
607 %oge.neg1 = fcmp oge float %arg, -1.0
609 %cmp = fcmp ogt float %arg, 0.0
613 define i1 @assume_oge_neg1__oge_0(float %arg) {
615 ; CHECK-SAME: float [[ARG:%.*]]) {
616 ; CHECK-NEXT: [[OGE_NEG1:%.*]] = fcmp oge float [[ARG]], -1.000000e+00
618 ; CHECK-NEXT: [[CMP:%.*]] = fcmp oge float [[ARG]], 0.000000e+00
621 %oge.neg1 = fcmp oge float %arg, -1.0
623 %cmp = fcmp oge float %arg, 0.0
627 define i1 @assume_oge_neg1__olt_0(float %arg) {
629 ; CHECK-SAME: float [[ARG:%.*]]) {
630 ; CHECK-NEXT: [[OGE_NEG1:%.*]] = fcmp oge float [[ARG]], -1.000000e+00
632 ; CHECK-NEXT: [[CMP:%.*]] = fcmp olt float [[ARG]], 0.000000e+00
635 %oge.neg1 = fcmp oge float %arg, -1.0
637 %cmp = fcmp olt float %arg, 0.0
641 define i1 @assume_oge_neg1__ole_0(float %arg) {
643 ; CHECK-SAME: float [[ARG:%.*]]) {
644 ; CHECK-NEXT: [[OGE_NEG1:%.*]] = fcmp oge float [[ARG]], -1.000000e+00
646 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ole float [[ARG]], 0.000000e+00
649 %oge.neg1 = fcmp oge float %arg, -1.0
651 %cmp = fcmp ole float %arg, 0.0
655 define i1 @assume_oge_neg1__one_0(float %arg) {
657 ; CHECK-SAME: float [[ARG:%.*]]) {
658 ; CHECK-NEXT: [[OGE_NEG1:%.*]] = fcmp oge float [[ARG]], -1.000000e+00
660 ; CHECK-NEXT: [[CMP:%.*]] = fcmp one float [[ARG]], 0.000000e+00
663 %oge.neg1 = fcmp oge float %arg, -1.0
665 %cmp = fcmp one float %arg, 0.0
669 define i1 @assume_oge_neg1__ord_0(float %arg) {
671 ; CHECK-SAME: float [[ARG:%.*]]) {
672 ; CHECK-NEXT: [[OGE_NEG1:%.*]] = fcmp oge float [[ARG]], -1.000000e+00
676 %oge.neg1 = fcmp oge float %arg, -1.0
678 %cmp = fcmp ord float %arg, 0.0
682 define i1 @assume_oge_neg1__ueq_0(float %arg) {
684 ; CHECK-SAME: float [[ARG:%.*]]) {
685 ; CHECK-NEXT: [[OGE_NEG1:%.*]] = fcmp oge float [[ARG]], -1.000000e+00
687 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ueq float [[ARG]], 0.000000e+00
690 %oge.neg1 = fcmp oge float %arg, -1.0
692 %cmp = fcmp ueq float %arg, 0.0
696 define i1 @assume_oge_neg1__ugt_0(float %arg) {
698 ; CHECK-SAME: float [[ARG:%.*]]) {
699 ; CHECK-NEXT: [[OGE_NEG1:%.*]] = fcmp oge float [[ARG]], -1.000000e+00
701 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ugt float [[ARG]], 0.000000e+00
704 %oge.neg1 = fcmp oge float %arg, -1.0
706 %cmp = fcmp ugt float %arg, 0.0
710 define i1 @assume_oge_neg1__uge_0(float %arg) {
712 ; CHECK-SAME: float [[ARG:%.*]]) {
713 ; CHECK-NEXT: [[OGE_NEG1:%.*]] = fcmp oge float [[ARG]], -1.000000e+00
715 ; CHECK-NEXT: [[CMP:%.*]] = fcmp uge float [[ARG]], 0.000000e+00
718 %oge.neg1 = fcmp oge float %arg, -1.0
720 %cmp = fcmp uge float %arg, 0.0
724 define i1 @assume_oge_neg1__ult_0(float %arg) {
726 ; CHECK-SAME: float [[ARG:%.*]]) {
727 ; CHECK-NEXT: [[OGE_NEG1:%.*]] = fcmp oge float [[ARG]], -1.000000e+00
729 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ult float [[ARG]], 0.000000e+00
732 %oge.neg1 = fcmp oge float %arg, -1.0
734 %cmp = fcmp ult float %arg, 0.0
738 define i1 @assume_oge_neg1__ule_0(float %arg) {
740 ; CHECK-SAME: float [[ARG:%.*]]) {
741 ; CHECK-NEXT: [[OGE_NEG1:%.*]] = fcmp oge float [[ARG]], -1.000000e+00
743 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ule float [[ARG]], 0.000000e+00
746 %oge.neg1 = fcmp oge float %arg, -1.0
748 %cmp = fcmp ule float %arg, 0.0
752 define i1 @assume_oge_neg1__une_0(float %arg) {
754 ; CHECK-SAME: float [[ARG:%.*]]) {
755 ; CHECK-NEXT: [[OGE_NEG1:%.*]] = fcmp oge float [[ARG]], -1.000000e+00
757 ; CHECK-NEXT: [[CMP:%.*]] = fcmp une float [[ARG]], 0.000000e+00
760 %oge.neg1 = fcmp oge float %arg, -1.0
762 %cmp = fcmp une float %arg, 0.0
766 define i1 @assume_oge_neg1__uno_0(float %arg) {
768 ; CHECK-SAME: float [[ARG:%.*]]) {
769 ; CHECK-NEXT: [[OGE_NEG1:%.*]] = fcmp oge float [[ARG]], -1.000000e+00
773 %oge.neg1 = fcmp oge float %arg, -1.0
775 %cmp = fcmp uno float %arg, 0.0
783 define i1 @assume_uge_neg1__oeq_0(float %arg) {
785 ; CHECK-SAME: float [[ARG:%.*]]) {
786 ; CHECK-NEXT: [[UGE_NEG1:%.*]] = fcmp uge float [[ARG]], -1.000000e+00
788 ; CHECK-NEXT: [[CMP:%.*]] = fcmp oeq float [[ARG]], 0.000000e+00
791 %uge.neg1 = fcmp uge float %arg, -1.0
793 %cmp = fcmp oeq float %arg, 0.0
797 define i1 @assume_uge_neg1__ogt_0(float %arg) {
799 ; CHECK-SAME: float [[ARG:%.*]]) {
800 ; CHECK-NEXT: [[UGE_NEG1:%.*]] = fcmp uge float [[ARG]], -1.000000e+00
802 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ogt float [[ARG]], 0.000000e+00
805 %uge.neg1 = fcmp uge float %arg, -1.0
807 %cmp = fcmp ogt float %arg, 0.0
811 define i1 @assume_uge_neg1__oge_0(float %arg) {
813 ; CHECK-SAME: float [[ARG:%.*]]) {
814 ; CHECK-NEXT: [[UGE_NEG1:%.*]] = fcmp uge float [[ARG]], -1.000000e+00
816 ; CHECK-NEXT: [[CMP:%.*]] = fcmp oge float [[ARG]], 0.000000e+00
819 %uge.neg1 = fcmp uge float %arg, -1.0
821 %cmp = fcmp oge float %arg, 0.0
825 define i1 @assume_uge_neg1__olt_0(float %arg) {
827 ; CHECK-SAME: float [[ARG:%.*]]) {
828 ; CHECK-NEXT: [[UGE_NEG1:%.*]] = fcmp uge float [[ARG]], -1.000000e+00
830 ; CHECK-NEXT: [[CMP:%.*]] = fcmp olt float [[ARG]], 0.000000e+00
833 %uge.neg1 = fcmp uge float %arg, -1.0
835 %cmp = fcmp olt float %arg, 0.0
839 define i1 @assume_uge_neg1__ole_0(float %arg) {
841 ; CHECK-SAME: float [[ARG:%.*]]) {
842 ; CHECK-NEXT: [[UGE_NEG1:%.*]] = fcmp uge float [[ARG]], -1.000000e+00
844 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ole float [[ARG]], 0.000000e+00
847 %uge.neg1 = fcmp uge float %arg, -1.0
849 %cmp = fcmp ole float %arg, 0.0
853 define i1 @assume_uge_neg1__one_0(float %arg) {
855 ; CHECK-SAME: float [[ARG:%.*]]) {
856 ; CHECK-NEXT: [[UGE_NEG1:%.*]] = fcmp uge float [[ARG]], -1.000000e+00
858 ; CHECK-NEXT: [[CMP:%.*]] = fcmp one float [[ARG]], 0.000000e+00
861 %uge.neg1 = fcmp uge float %arg, -1.0
863 %cmp = fcmp one float %arg, 0.0
867 define i1 @assume_uge_neg1__ord_0(float %arg) {
869 ; CHECK-SAME: float [[ARG:%.*]]) {
870 ; CHECK-NEXT: [[UGE_NEG1:%.*]] = fcmp uge float [[ARG]], -1.000000e+00
872 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ord float [[ARG]], 0.000000e+00
875 %uge.neg1 = fcmp uge float %arg, -1.0
877 %cmp = fcmp ord float %arg, 0.0
881 define i1 @assume_uge_neg1__ueq_0(float %arg) {
883 ; CHECK-SAME: float [[ARG:%.*]]) {
884 ; CHECK-NEXT: [[UGE_NEG1:%.*]] = fcmp uge float [[ARG]], -1.000000e+00
886 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ueq float [[ARG]], 0.000000e+00
889 %uge.neg1 = fcmp uge float %arg, -1.0
891 %cmp = fcmp ueq float %arg, 0.0
895 define i1 @assume_uge_neg1__ugt_0(float %arg) {
897 ; CHECK-SAME: float [[ARG:%.*]]) {
898 ; CHECK-NEXT: [[UGE_NEG1:%.*]] = fcmp uge float [[ARG]], -1.000000e+00
900 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ugt float [[ARG]], 0.000000e+00
903 %uge.neg1 = fcmp uge float %arg, -1.0
905 %cmp = fcmp ugt float %arg, 0.0
909 define i1 @assume_uge_neg1__uge_0(float %arg) {
911 ; CHECK-SAME: float [[ARG:%.*]]) {
912 ; CHECK-NEXT: [[UGE_NEG1:%.*]] = fcmp uge float [[ARG]], -1.000000e+00
914 ; CHECK-NEXT: [[CMP:%.*]] = fcmp uge float [[ARG]], 0.000000e+00
917 %uge.neg1 = fcmp uge float %arg, -1.0
919 %cmp = fcmp uge float %arg, 0.0
923 define i1 @assume_uge_neg1__ult_0(float %arg) {
925 ; CHECK-SAME: float [[ARG:%.*]]) {
926 ; CHECK-NEXT: [[UGE_NEG1:%.*]] = fcmp uge float [[ARG]], -1.000000e+00
928 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ult float [[ARG]], 0.000000e+00
931 %uge.neg1 = fcmp uge float %arg, -1.0
933 %cmp = fcmp ult float %arg, 0.0
937 define i1 @assume_uge_neg1__ule_0(float %arg) {
939 ; CHECK-SAME: float [[ARG:%.*]]) {
940 ; CHECK-NEXT: [[UGE_NEG1:%.*]] = fcmp uge float [[ARG]], -1.000000e+00
942 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ule float [[ARG]], 0.000000e+00
945 %uge.neg1 = fcmp uge float %arg, -1.0
947 %cmp = fcmp ule float %arg, 0.0
951 define i1 @assume_uge_neg1__une_0(float %arg) {
953 ; CHECK-SAME: float [[ARG:%.*]]) {
954 ; CHECK-NEXT: [[UGE_NEG1:%.*]] = fcmp uge float [[ARG]], -1.000000e+00
956 ; CHECK-NEXT: [[CMP:%.*]] = fcmp une float [[ARG]], 0.000000e+00
959 %uge.neg1 = fcmp uge float %arg, -1.0
961 %cmp = fcmp une float %arg, 0.0
965 define i1 @assume_uge_neg1__uno_0(float %arg) {
967 ; CHECK-SAME: float [[ARG:%.*]]) {
968 ; CHECK-NEXT: [[UGE_NEG1:%.*]] = fcmp uge float [[ARG]], -1.000000e+00
970 ; CHECK-NEXT: [[CMP:%.*]] = fcmp uno float [[ARG]], 0.000000e+00
973 %uge.neg1 = fcmp uge float %arg, -1.0
975 %cmp = fcmp uno float %arg, 0.0
983 define i1 @assume_ugt_neg1__oeq_0(float %arg) {
985 ; CHECK-SAME: float [[ARG:%.*]]) {
986 ; CHECK-NEXT: [[UGT_NEG1:%.*]] = fcmp ugt float [[ARG]], -1.000000e+00
988 ; CHECK-NEXT: [[CMP:%.*]] = fcmp oeq float [[ARG]], 0.000000e+00
991 %ugt.neg1 = fcmp ugt float %arg, -1.0
993 %cmp = fcmp oeq float %arg, 0.0
997 define i1 @assume_ugt_neg1__ogt_0(float %arg) {
999 ; CHECK-SAME: float [[ARG:%.*]]) {
1000 ; CHECK-NEXT: [[UGT_NEG1:%.*]] = fcmp ugt float [[ARG]], -1.000000e+00
1002 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ogt float [[ARG]], 0.000000e+00
1005 %ugt.neg1 = fcmp ugt float %arg, -1.0
1007 %cmp = fcmp ogt float %arg, 0.0
1011 define i1 @assume_ugt_neg1__oge_0(float %arg) {
1013 ; CHECK-SAME: float [[ARG:%.*]]) {
1014 ; CHECK-NEXT: [[UGT_NEG1:%.*]] = fcmp ugt float [[ARG]], -1.000000e+00
1016 ; CHECK-NEXT: [[CMP:%.*]] = fcmp oge float [[ARG]], 0.000000e+00
1019 %ugt.neg1 = fcmp ugt float %arg, -1.0
1021 %cmp = fcmp oge float %arg, 0.0
1025 define i1 @assume_ugt_neg1__olt_0(float %arg) {
1027 ; CHECK-SAME: float [[ARG:%.*]]) {
1028 ; CHECK-NEXT: [[UGT_NEG1:%.*]] = fcmp ugt float [[ARG]], -1.000000e+00
1030 ; CHECK-NEXT: [[CMP:%.*]] = fcmp olt float [[ARG]], 0.000000e+00
1033 %ugt.neg1 = fcmp ugt float %arg, -1.0
1035 %cmp = fcmp olt float %arg, 0.0
1039 define i1 @assume_ugt_neg1__ole_0(float %arg) {
1041 ; CHECK-SAME: float [[ARG:%.*]]) {
1042 ; CHECK-NEXT: [[UGT_NEG1:%.*]] = fcmp ugt float [[ARG]], -1.000000e+00
1044 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ole float [[ARG]], 0.000000e+00
1047 %ugt.neg1 = fcmp ugt float %arg, -1.0
1049 %cmp = fcmp ole float %arg, 0.0
1053 define i1 @assume_ugt_neg1__one_0(float %arg) {
1055 ; CHECK-SAME: float [[ARG:%.*]]) {
1056 ; CHECK-NEXT: [[UGT_NEG1:%.*]] = fcmp ugt float [[ARG]], -1.000000e+00
1058 ; CHECK-NEXT: [[CMP:%.*]] = fcmp one float [[ARG]], 0.000000e+00
1061 %ugt.neg1 = fcmp ugt float %arg, -1.0
1063 %cmp = fcmp one float %arg, 0.0
1067 define i1 @assume_ugt_neg1__ord_0(float %arg) {
1069 ; CHECK-SAME: float [[ARG:%.*]]) {
1070 ; CHECK-NEXT: [[UGT_NEG1:%.*]] = fcmp ugt float [[ARG]], -1.000000e+00
1072 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ord float [[ARG]], 0.000000e+00
1075 %ugt.neg1 = fcmp ugt float %arg, -1.0
1077 %cmp = fcmp ord float %arg, 0.0
1081 define i1 @assume_ugt_neg1__ueq_0(float %arg) {
1083 ; CHECK-SAME: float [[ARG:%.*]]) {
1084 ; CHECK-NEXT: [[UGT_NEG1:%.*]] = fcmp ugt float [[ARG]], -1.000000e+00
1086 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ueq float [[ARG]], 0.000000e+00
1089 %ugt.neg1 = fcmp ugt float %arg, -1.0
1091 %cmp = fcmp ueq float %arg, 0.0
1095 define i1 @assume_ugt_neg1__ugt_0(float %arg) {
1097 ; CHECK-SAME: float [[ARG:%.*]]) {
1098 ; CHECK-NEXT: [[UGT_NEG1:%.*]] = fcmp ugt float [[ARG]], -1.000000e+00
1100 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ugt float [[ARG]], 0.000000e+00
1103 %ugt.neg1 = fcmp ugt float %arg, -1.0
1105 %cmp = fcmp ugt float %arg, 0.0
1109 define i1 @assume_ugt_neg1__uge_0(float %arg) {
1111 ; CHECK-SAME: float [[ARG:%.*]]) {
1112 ; CHECK-NEXT: [[UGT_NEG1:%.*]] = fcmp ugt float [[ARG]], -1.000000e+00
1114 ; CHECK-NEXT: [[CMP:%.*]] = fcmp uge float [[ARG]], 0.000000e+00
1117 %ugt.neg1 = fcmp ugt float %arg, -1.0
1119 %cmp = fcmp uge float %arg, 0.0
1123 define i1 @assume_ugt_neg1__ult_0(float %arg) {
1125 ; CHECK-SAME: float [[ARG:%.*]]) {
1126 ; CHECK-NEXT: [[UGT_NEG1:%.*]] = fcmp ugt float [[ARG]], -1.000000e+00
1128 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ult float [[ARG]], 0.000000e+00
1131 %ugt.neg1 = fcmp ugt float %arg, -1.0
1133 %cmp = fcmp ult float %arg, 0.0
1137 define i1 @assume_ugt_neg1__ule_0(float %arg) {
1139 ; CHECK-SAME: float [[ARG:%.*]]) {
1140 ; CHECK-NEXT: [[UGT_NEG1:%.*]] = fcmp ugt float [[ARG]], -1.000000e+00
1142 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ule float [[ARG]], 0.000000e+00
1145 %ugt.neg1 = fcmp ugt float %arg, -1.0
1147 %cmp = fcmp ule float %arg, 0.0
1151 define i1 @assume_ugt_neg1__une_0(float %arg) {
1153 ; CHECK-SAME: float [[ARG:%.*]]) {
1154 ; CHECK-NEXT: [[UGT_NEG1:%.*]] = fcmp ugt float [[ARG]], -1.000000e+00
1156 ; CHECK-NEXT: [[CMP:%.*]] = fcmp une float [[ARG]], 0.000000e+00
1159 %ugt.neg1 = fcmp ugt float %arg, -1.0
1161 %cmp = fcmp une float %arg, 0.0
1165 define i1 @assume_ugt_neg1__uno_0(float %arg) {
1167 ; CHECK-SAME: float [[ARG:%.*]]) {
1168 ; CHECK-NEXT: [[UGT_NEG1:%.*]] = fcmp ugt float [[ARG]], -1.000000e+00
1170 ; CHECK-NEXT: [[CMP:%.*]] = fcmp uno float [[ARG]], 0.000000e+00
1173 %ugt.neg1 = fcmp ugt float %arg, -1.0
1175 %cmp = fcmp uno float %arg, 0.0
1183 define i1 @assume_ule_neg1__oeq_0(float %arg) {
1185 ; CHECK-SAME: float [[ARG:%.*]]) {
1186 ; CHECK-NEXT: [[ULE_NEG1:%.*]] = fcmp ule float [[ARG]], -1.000000e+00
1190 %ule.neg1 = fcmp ule float %arg, -1.0
1192 %cmp = fcmp oeq float %arg, 0.0
1196 define i1 @assume_ule_neg1__ogt_0(float %arg) {
1198 ; CHECK-SAME: float [[ARG:%.*]]) {
1199 ; CHECK-NEXT: [[ULE_NEG1:%.*]] = fcmp ule float [[ARG]], -1.000000e+00
1203 %ule.neg1 = fcmp ule float %arg, -1.0
1205 %cmp = fcmp ogt float %arg, 0.0
1209 define i1 @assume_ule_neg1__oge_0(float %arg) {
1211 ; CHECK-SAME: float [[ARG:%.*]]) {
1212 ; CHECK-NEXT: [[ULE_NEG1:%.*]] = fcmp ule float [[ARG]], -1.000000e+00
1216 %ule.neg1 = fcmp ule float %arg, -1.0
1218 %cmp = fcmp oge float %arg, 0.0
1222 define i1 @assume_ule_neg1__olt_0(float %arg) {
1224 ; CHECK-SAME: float [[ARG:%.*]]) {
1225 ; CHECK-NEXT: [[ULE_NEG1:%.*]] = fcmp ule float [[ARG]], -1.000000e+00
1227 ; CHECK-NEXT: [[CMP:%.*]] = fcmp olt float [[ARG]], 0.000000e+00
1230 %ule.neg1 = fcmp ule float %arg, -1.0
1232 %cmp = fcmp olt float %arg, 0.0
1236 define i1 @assume_ule_neg1__ole_0(float %arg) {
1238 ; CHECK-SAME: float [[ARG:%.*]]) {
1239 ; CHECK-NEXT: [[ULE_NEG1:%.*]] = fcmp ule float [[ARG]], -1.000000e+00
1241 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ole float [[ARG]], 0.000000e+00
1244 %ule.neg1 = fcmp ule float %arg, -1.0
1246 %cmp = fcmp ole float %arg, 0.0
1250 define i1 @assume_ule_neg1__one_0(float %arg) {
1252 ; CHECK-SAME: float [[ARG:%.*]]) {
1253 ; CHECK-NEXT: [[ULE_NEG1:%.*]] = fcmp ule float [[ARG]], -1.000000e+00
1255 ; CHECK-NEXT: [[CMP:%.*]] = fcmp one float [[ARG]], 0.000000e+00
1258 %ule.neg1 = fcmp ule float %arg, -1.0
1260 %cmp = fcmp one float %arg, 0.0
1264 define i1 @assume_ule_neg1__ord_0(float %arg) {
1266 ; CHECK-SAME: float [[ARG:%.*]]) {
1267 ; CHECK-NEXT: [[ULE_NEG1:%.*]] = fcmp ule float [[ARG]], -1.000000e+00
1269 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ord float [[ARG]], 0.000000e+00
1272 %ule.neg1 = fcmp ule float %arg, -1.0
1274 %cmp = fcmp ord float %arg, 0.0
1278 define i1 @assume_ule_neg1__ueq_0(float %arg) {
1280 ; CHECK-SAME: float [[ARG:%.*]]) {
1281 ; CHECK-NEXT: [[ULE_NEG1:%.*]] = fcmp ule float [[ARG]], -1.000000e+00
1283 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ueq float [[ARG]], 0.000000e+00
1286 %ule.neg1 = fcmp ule float %arg, -1.0
1288 %cmp = fcmp ueq float %arg, 0.0
1292 define i1 @assume_ule_neg1__ugt_0(float %arg) {
1294 ; CHECK-SAME: float [[ARG:%.*]]) {
1295 ; CHECK-NEXT: [[ULE_NEG1:%.*]] = fcmp ule float [[ARG]], -1.000000e+00
1297 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ugt float [[ARG]], 0.000000e+00
1300 %ule.neg1 = fcmp ule float %arg, -1.0
1302 %cmp = fcmp ugt float %arg, 0.0
1306 define i1 @assume_ule_neg1__uge_0(float %arg) {
1308 ; CHECK-SAME: float [[ARG:%.*]]) {
1309 ; CHECK-NEXT: [[ULE_NEG1:%.*]] = fcmp ule float [[ARG]], -1.000000e+00
1311 ; CHECK-NEXT: [[CMP:%.*]] = fcmp uge float [[ARG]], 0.000000e+00
1314 %ule.neg1 = fcmp ule float %arg, -1.0
1316 %cmp = fcmp uge float %arg, 0.0
1320 define i1 @assume_ule_neg1__ult_0(float %arg) {
1322 ; CHECK-SAME: float [[ARG:%.*]]) {
1323 ; CHECK-NEXT: [[ULE_NEG1:%.*]] = fcmp ule float [[ARG]], -1.000000e+00
1327 %ule.neg1 = fcmp ule float %arg, -1.0
1329 %cmp = fcmp ult float %arg, 0.0
1333 define i1 @assume_ule_neg1__ule_0(float %arg) {
1335 ; CHECK-SAME: float [[ARG:%.*]]) {
1336 ; CHECK-NEXT: [[ULE_NEG1:%.*]] = fcmp ule float [[ARG]], -1.000000e+00
1340 %ule.neg1 = fcmp ule float %arg, -1.0
1342 %cmp = fcmp ule float %arg, 0.0
1346 define i1 @assume_ule_neg1__une_0(float %arg) {
1348 ; CHECK-SAME: float [[ARG:%.*]]) {
1349 ; CHECK-NEXT: [[ULE_NEG1:%.*]] = fcmp ule float [[ARG]], -1.000000e+00
1353 %ule.neg1 = fcmp ule float %arg, -1.0
1355 %cmp = fcmp une float %arg, 0.0
1359 define i1 @assume_ule_neg1__uno_0(float %arg) {
1361 ; CHECK-SAME: float [[ARG:%.*]]) {
1362 ; CHECK-NEXT: [[ULE_NEG1:%.*]] = fcmp ule float [[ARG]], -1.000000e+00
1364 ; CHECK-NEXT: [[CMP:%.*]] = fcmp uno float [[ARG]], 0.000000e+00
1367 %ule.neg1 = fcmp ule float %arg, -1.0
1369 %cmp = fcmp uno float %arg, 0.0
1377 define i1 @assume_ult_neg1__oeq_0(float %arg) {
1379 ; CHECK-SAME: float [[ARG:%.*]]) {
1380 ; CHECK-NEXT: [[ULT_NEG1:%.*]] = fcmp ult float [[ARG]], -1.000000e+00
1384 %ult.neg1 = fcmp ult float %arg, -1.0
1386 %cmp = fcmp oeq float %arg, 0.0
1390 define i1 @assume_ult_neg1__ogt_0(float %arg) {
1392 ; CHECK-SAME: float [[ARG:%.*]]) {
1393 ; CHECK-NEXT: [[ULT_NEG1:%.*]] = fcmp ult float [[ARG]], -1.000000e+00
1397 %ult.neg1 = fcmp ult float %arg, -1.0
1399 %cmp = fcmp ogt float %arg, 0.0
1403 define i1 @assume_ult_neg1__oge_0(float %arg) {
1405 ; CHECK-SAME: float [[ARG:%.*]]) {
1406 ; CHECK-NEXT: [[ULT_NEG1:%.*]] = fcmp ult float [[ARG]], -1.000000e+00
1410 %ult.neg1 = fcmp ult float %arg, -1.0
1412 %cmp = fcmp oge float %arg, 0.0
1416 define i1 @assume_ult_neg1__olt_0(float %arg) {
1418 ; CHECK-SAME: float [[ARG:%.*]]) {
1419 ; CHECK-NEXT: [[ULT_NEG1:%.*]] = fcmp ult float [[ARG]], -1.000000e+00
1421 ; CHECK-NEXT: [[CMP:%.*]] = fcmp olt float [[ARG]], 0.000000e+00
1424 %ult.neg1 = fcmp ult float %arg, -1.0
1426 %cmp = fcmp olt float %arg, 0.0
1430 define i1 @assume_ult_neg1__ole_0(float %arg) {
1432 ; CHECK-SAME: float [[ARG:%.*]]) {
1433 ; CHECK-NEXT: [[ULT_NEG1:%.*]] = fcmp ult float [[ARG]], -1.000000e+00
1435 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ole float [[ARG]], 0.000000e+00
1438 %ult.neg1 = fcmp ult float %arg, -1.0
1440 %cmp = fcmp ole float %arg, 0.0
1444 define i1 @assume_ult_neg1__one_0(float %arg) {
1446 ; CHECK-SAME: float [[ARG:%.*]]) {
1447 ; CHECK-NEXT: [[ULT_NEG1:%.*]] = fcmp ult float [[ARG]], -1.000000e+00
1449 ; CHECK-NEXT: [[CMP:%.*]] = fcmp one float [[ARG]], 0.000000e+00
1452 %ult.neg1 = fcmp ult float %arg, -1.0
1454 %cmp = fcmp one float %arg, 0.0
1458 define i1 @assume_ult_neg1__ord_0(float %arg) {
1460 ; CHECK-SAME: float [[ARG:%.*]]) {
1461 ; CHECK-NEXT: [[ULT_NEG1:%.*]] = fcmp ult float [[ARG]], -1.000000e+00
1463 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ord float [[ARG]], 0.000000e+00
1466 %ult.neg1 = fcmp ult float %arg, -1.0
1468 %cmp = fcmp ord float %arg, 0.0
1472 define i1 @assume_ult_neg1__ueq_0(float %arg) {
1474 ; CHECK-SAME: float [[ARG:%.*]]) {
1475 ; CHECK-NEXT: [[ULT_NEG1:%.*]] = fcmp ult float [[ARG]], -1.000000e+00
1477 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ueq float [[ARG]], 0.000000e+00
1480 %ult.neg1 = fcmp ult float %arg, -1.0
1482 %cmp = fcmp ueq float %arg, 0.0
1486 define i1 @assume_ult_neg1__ugt_0(float %arg) {
1488 ; CHECK-SAME: float [[ARG:%.*]]) {
1489 ; CHECK-NEXT: [[ULT_NEG1:%.*]] = fcmp ult float [[ARG]], -1.000000e+00
1491 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ugt float [[ARG]], 0.000000e+00
1494 %ult.neg1 = fcmp ult float %arg, -1.0
1496 %cmp = fcmp ugt float %arg, 0.0
1500 define i1 @assume_ult_neg1__uge_0(float %arg) {
1502 ; CHECK-SAME: float [[ARG:%.*]]) {
1503 ; CHECK-NEXT: [[ULT_NEG1:%.*]] = fcmp ult float [[ARG]], -1.000000e+00
1505 ; CHECK-NEXT: [[CMP:%.*]] = fcmp uge float [[ARG]], 0.000000e+00
1508 %ult.neg1 = fcmp ult float %arg, -1.0
1510 %cmp = fcmp uge float %arg, 0.0
1514 define i1 @assume_ult_neg1__ult_0(float %arg) {
1516 ; CHECK-SAME: float [[ARG:%.*]]) {
1517 ; CHECK-NEXT: [[ULT_NEG1:%.*]] = fcmp ult float [[ARG]], -1.000000e+00
1521 %ult.neg1 = fcmp ult float %arg, -1.0
1523 %cmp = fcmp ult float %arg, 0.0
1527 define i1 @assume_ult_neg1__ule_0(float %arg) {
1529 ; CHECK-SAME: float [[ARG:%.*]]) {
1530 ; CHECK-NEXT: [[ULT_NEG1:%.*]] = fcmp ult float [[ARG]], -1.000000e+00
1534 %ult.neg1 = fcmp ult float %arg, -1.0
1536 %cmp = fcmp ule float %arg, 0.0
1540 define i1 @assume_ult_neg1__une_0(float %arg) {
1542 ; CHECK-SAME: float [[ARG:%.*]]) {
1543 ; CHECK-NEXT: [[ULT_NEG1:%.*]] = fcmp ult float [[ARG]], -1.000000e+00
1547 %ult.neg1 = fcmp ult float %arg, -1.0
1549 %cmp = fcmp une float %arg, 0.0
1553 define i1 @assume_ult_neg1__uno_0(float %arg) {
1555 ; CHECK-SAME: float [[ARG:%.*]]) {
1556 ; CHECK-NEXT: [[ULT_NEG1:%.*]] = fcmp ult float [[ARG]], -1.000000e+00
1558 ; CHECK-NEXT: [[CMP:%.*]] = fcmp uno float [[ARG]], 0.000000e+00
1561 %ult.neg1 = fcmp ult float %arg, -1.0
1563 %cmp = fcmp uno float %arg, 0.0
1571 define i1 @assume_oeq_0__oeq_0(float %arg) {
1573 ; CHECK-SAME: float [[ARG:%.*]]) {
1574 ; CHECK-NEXT: [[OEQ_0:%.*]] = fcmp oeq float [[ARG]], 0.000000e+00
1578 %oeq.0 = fcmp oeq float %arg, 0.0
1580 %cmp = fcmp oeq float %arg, 0.0
1584 define i1 @assume_oeq_0__ueq_0(float %arg) {
1586 ; CHECK-SAME: float [[ARG:%.*]]) {
1587 ; CHECK-NEXT: [[OEQ_0:%.*]] = fcmp oeq float [[ARG]], 0.000000e+00
1591 %oeq.0 = fcmp oeq float %arg, 0.0
1593 %cmp = fcmp ueq float %arg, 0.0
1597 define i1 @assume_one_0__oeq_0(float %arg) {
1599 ; CHECK-SAME: float [[ARG:%.*]]) {
1600 ; CHECK-NEXT: [[OEQ_0:%.*]] = fcmp one float [[ARG]], 0.000000e+00
1604 %oeq.0 = fcmp one float %arg, 0.0
1606 %cmp = fcmp oeq float %arg, 0.0
1610 define i1 @assume_ueq_0__oeq_0(float %arg) {
1612 ; CHECK-SAME: float [[ARG:%.*]]) {
1613 ; CHECK-NEXT: [[OEQ_0:%.*]] = fcmp ueq float [[ARG]], 0.000000e+00
1615 ; CHECK-NEXT: [[CMP:%.*]] = fcmp oeq float [[ARG]], 0.000000e+00
1618 %oeq.0 = fcmp ueq float %arg, 0.0
1620 %cmp = fcmp oeq float %arg, 0.0
1624 define i1 @assume_ueq_0__ueq_0(float %arg) {
1626 ; CHECK-SAME: float [[ARG:%.*]]) {
1627 ; CHECK-NEXT: [[UEQ_0:%.*]] = fcmp ueq float [[ARG]], 0.000000e+00
1631 %ueq.0 = fcmp ueq float %arg, 0.0
1633 %cmp = fcmp ueq float %arg, 0.0
1637 define i1 @assume_one_0__ueq_0(float %arg) {
1639 ; CHECK-SAME: float [[ARG:%.*]]) {
1640 ; CHECK-NEXT: [[ONE_0:%.*]] = fcmp one float [[ARG]], 0.000000e+00
1644 %one.0 = fcmp one float %arg, 0.0
1646 %cmp = fcmp ueq float %arg, 0.0
1650 define i1 @assume_one_0__one_0(float %arg) {
1652 ; CHECK-SAME: float [[ARG:%.*]]) {
1653 ; CHECK-NEXT: [[ONE_0:%.*]] = fcmp one float [[ARG]], 0.000000e+00
1657 %one.0 = fcmp one float %arg, 0.0
1659 %cmp = fcmp one float %arg, 0.0
1663 define i1 @assume_une_0__oeq_0(float %arg) {
1665 ; CHECK-SAME: float [[ARG:%.*]]) {
1666 ; CHECK-NEXT: [[ONE_0:%.*]] = fcmp une float [[ARG]], 0.000000e+00
1670 %one.0 = fcmp une float %arg, 0.0
1672 %cmp = fcmp oeq float %arg, 0.0
1676 define i1 @assume_une_0__one_0(float %arg) {
1678 ; CHECK-SAME: float [[ARG:%.*]]) {
1679 ; CHECK-NEXT: [[ONE_0:%.*]] = fcmp une float [[ARG]], 0.000000e+00
1681 ; CHECK-NEXT: [[CMP:%.*]] = fcmp one float [[ARG]], 0.000000e+00
1684 %one.0 = fcmp une float %arg, 0.0
1686 %cmp = fcmp one float %arg, 0.0
1694 define i1 @assume_olt_pos1__oeq_0(float %arg) {
1696 ; CHECK-SAME: float [[ARG:%.*]]) {
1697 ; CHECK-NEXT: [[OLT_POS1:%.*]] = fcmp olt float [[ARG]], 1.000000e+00
1699 ; CHECK-NEXT: [[CMP:%.*]] = fcmp oeq float [[ARG]], 0.000000e+00
1702 %olt.pos1 = fcmp olt float %arg, 1.0
1704 %cmp = fcmp oeq float %arg, 0.0
1708 define i1 @assume_olt_pos1__ogt_0(float %arg) {
1710 ; CHECK-SAME: float [[ARG:%.*]]) {
1711 ; CHECK-NEXT: [[OLT_POS1:%.*]] = fcmp olt float [[ARG]], 1.000000e+00
1713 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ogt float [[ARG]], 0.000000e+00
1716 %olt.pos1 = fcmp olt float %arg, 1.0
1718 %cmp = fcmp ogt float %arg, 0.0
1722 define i1 @assume_olt_pos1__oge_0(float %arg) {
1724 ; CHECK-SAME: float [[ARG:%.*]]) {
1725 ; CHECK-NEXT: [[OLT_POS1:%.*]] = fcmp olt float [[ARG]], 1.000000e+00
1727 ; CHECK-NEXT: [[CMP:%.*]] = fcmp oge float [[ARG]], 0.000000e+00
1730 %olt.pos1 = fcmp olt float %arg, 1.0
1732 %cmp = fcmp oge float %arg, 0.0
1736 define i1 @assume_olt_pos1__olt_0(float %arg) {
1738 ; CHECK-SAME: float [[ARG:%.*]]) {
1739 ; CHECK-NEXT: [[OLT_POS1:%.*]] = fcmp olt float [[ARG]], 1.000000e+00
1741 ; CHECK-NEXT: [[CMP:%.*]] = fcmp olt float [[ARG]], 0.000000e+00
1744 %olt.pos1 = fcmp olt float %arg, 1.0
1746 %cmp = fcmp olt float %arg, 0.0
1750 define i1 @assume_olt_pos1__ole_0(float %arg) {
1752 ; CHECK-SAME: float [[ARG:%.*]]) {
1753 ; CHECK-NEXT: [[OLT_POS1:%.*]] = fcmp olt float [[ARG]], 1.000000e+00
1755 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ole float [[ARG]], 0.000000e+00
1758 %olt.pos1 = fcmp olt float %arg, 1.0
1760 %cmp = fcmp ole float %arg, 0.0
1764 define i1 @assume_olt_pos1__one_0(float %arg) {
1766 ; CHECK-SAME: float [[ARG:%.*]]) {
1767 ; CHECK-NEXT: [[OLT_POS1:%.*]] = fcmp olt float [[ARG]], 1.000000e+00
1769 ; CHECK-NEXT: [[CMP:%.*]] = fcmp one float [[ARG]], 0.000000e+00
1772 %olt.pos1 = fcmp olt float %arg, 1.0
1774 %cmp = fcmp one float %arg, 0.0
1778 define i1 @assume_olt_pos1__ord_0(float %arg) {
1780 ; CHECK-SAME: float [[ARG:%.*]]) {
1781 ; CHECK-NEXT: [[OLT_POS1:%.*]] = fcmp olt float [[ARG]], 1.000000e+00
1785 %olt.pos1 = fcmp olt float %arg, 1.0
1787 %cmp = fcmp ord float %arg, 0.0
1791 define i1 @assume_olt_pos1__ueq_0(float %arg) {
1793 ; CHECK-SAME: float [[ARG:%.*]]) {
1794 ; CHECK-NEXT: [[OLT_POS1:%.*]] = fcmp olt float [[ARG]], 1.000000e+00
1796 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ueq float [[ARG]], 0.000000e+00
1799 %olt.pos1 = fcmp olt float %arg, 1.0
1801 %cmp = fcmp ueq float %arg, 0.0
1805 define i1 @assume_olt_pos1__ugt_0(float %arg) {
1807 ; CHECK-SAME: float [[ARG:%.*]]) {
1808 ; CHECK-NEXT: [[OLT_POS1:%.*]] = fcmp olt float [[ARG]], 1.000000e+00
1810 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ugt float [[ARG]], 0.000000e+00
1813 %olt.pos1 = fcmp olt float %arg, 1.0
1815 %cmp = fcmp ugt float %arg, 0.0
1819 define i1 @assume_olt_pos1__uge_0(float %arg) {
1821 ; CHECK-SAME: float [[ARG:%.*]]) {
1822 ; CHECK-NEXT: [[OLT_POS1:%.*]] = fcmp olt float [[ARG]], 1.000000e+00
1824 ; CHECK-NEXT: [[CMP:%.*]] = fcmp uge float [[ARG]], 0.000000e+00
1827 %olt.pos1 = fcmp olt float %arg, 1.0
1829 %cmp = fcmp uge float %arg, 0.0
1833 define i1 @assume_olt_pos1__ult_0(float %arg) {
1835 ; CHECK-SAME: float [[ARG:%.*]]) {
1836 ; CHECK-NEXT: [[OLT_POS1:%.*]] = fcmp olt float [[ARG]], 1.000000e+00
1838 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ult float [[ARG]], 0.000000e+00
1841 %olt.pos1 = fcmp olt float %arg, 1.0
1843 %cmp = fcmp ult float %arg, 0.0
1847 define i1 @assume_olt_pos1__ule_0(float %arg) {
1849 ; CHECK-SAME: float [[ARG:%.*]]) {
1850 ; CHECK-NEXT: [[OLT_POS1:%.*]] = fcmp olt float [[ARG]], 1.000000e+00
1852 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ule float [[ARG]], 0.000000e+00
1855 %olt.pos1 = fcmp olt float %arg, 1.0
1857 %cmp = fcmp ule float %arg, 0.0
1861 define i1 @assume_olt_pos1__une_0(float %arg) {
1863 ; CHECK-SAME: float [[ARG:%.*]]) {
1864 ; CHECK-NEXT: [[OLT_POS1:%.*]] = fcmp olt float [[ARG]], 1.000000e+00
1866 ; CHECK-NEXT: [[CMP:%.*]] = fcmp une float [[ARG]], 0.000000e+00
1869 %olt.pos1 = fcmp olt float %arg, 1.0
1871 %cmp = fcmp une float %arg, 0.0
1875 define i1 @assume_olt_pos1__uno_0(float %arg) {
1877 ; CHECK-SAME: float [[ARG:%.*]]) {
1878 ; CHECK-NEXT: [[OLT_POS1:%.*]] = fcmp olt float [[ARG]], 1.000000e+00
1882 %olt.pos1 = fcmp olt float %arg, 1.0
1884 %cmp = fcmp uno float %arg, 0.0
1892 define i1 @assume_ole_pos1__oeq_0(float %arg) {
1894 ; CHECK-SAME: float [[ARG:%.*]]) {
1895 ; CHECK-NEXT: [[OLE_POS1:%.*]] = fcmp ole float [[ARG]], 1.000000e+00
1897 ; CHECK-NEXT: [[CMP:%.*]] = fcmp oeq float [[ARG]], 0.000000e+00
1900 %ole.pos1 = fcmp ole float %arg, 1.0
1902 %cmp = fcmp oeq float %arg, 0.0
1906 define i1 @assume_ole_pos1__ogt_0(float %arg) {
1908 ; CHECK-SAME: float [[ARG:%.*]]) {
1909 ; CHECK-NEXT: [[OLE_POS1:%.*]] = fcmp ole float [[ARG]], 1.000000e+00
1911 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ogt float [[ARG]], 0.000000e+00
1914 %ole.pos1 = fcmp ole float %arg, 1.0
1916 %cmp = fcmp ogt float %arg, 0.0
1920 define i1 @assume_ole_pos1__oge_0(float %arg) {
1922 ; CHECK-SAME: float [[ARG:%.*]]) {
1923 ; CHECK-NEXT: [[OLE_POS1:%.*]] = fcmp ole float [[ARG]], 1.000000e+00
1925 ; CHECK-NEXT: [[CMP:%.*]] = fcmp oge float [[ARG]], 0.000000e+00
1928 %ole.pos1 = fcmp ole float %arg, 1.0
1930 %cmp = fcmp oge float %arg, 0.0
1934 define i1 @assume_ole_pos1__olt_0(float %arg) {
1936 ; CHECK-SAME: float [[ARG:%.*]]) {
1937 ; CHECK-NEXT: [[OLE_POS1:%.*]] = fcmp ole float [[ARG]], 1.000000e+00
1939 ; CHECK-NEXT: [[CMP:%.*]] = fcmp olt float [[ARG]], 0.000000e+00
1942 %ole.pos1 = fcmp ole float %arg, 1.0
1944 %cmp = fcmp olt float %arg, 0.0
1948 define i1 @assume_ole_pos1__ole_0(float %arg) {
1950 ; CHECK-SAME: float [[ARG:%.*]]) {
1951 ; CHECK-NEXT: [[OLE_POS1:%.*]] = fcmp ole float [[ARG]], 1.000000e+00
1953 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ole float [[ARG]], 0.000000e+00
1956 %ole.pos1 = fcmp ole float %arg, 1.0
1958 %cmp = fcmp ole float %arg, 0.0
1962 define i1 @assume_ole_pos1__one_0(float %arg) {
1964 ; CHECK-SAME: float [[ARG:%.*]]) {
1965 ; CHECK-NEXT: [[OLE_POS1:%.*]] = fcmp ole float [[ARG]], 1.000000e+00
1967 ; CHECK-NEXT: [[CMP:%.*]] = fcmp one float [[ARG]], 0.000000e+00
1970 %ole.pos1 = fcmp ole float %arg, 1.0
1972 %cmp = fcmp one float %arg, 0.0
1976 define i1 @assume_ole_pos1__ord_0(float %arg) {
1978 ; CHECK-SAME: float [[ARG:%.*]]) {
1979 ; CHECK-NEXT: [[OLE_POS1:%.*]] = fcmp ole float [[ARG]], 1.000000e+00
1983 %ole.pos1 = fcmp ole float %arg, 1.0
1985 %cmp = fcmp ord float %arg, 0.0
1989 define i1 @assume_ole_pos1__ueq_0(float %arg) {
1991 ; CHECK-SAME: float [[ARG:%.*]]) {
1992 ; CHECK-NEXT: [[OLE_POS1:%.*]] = fcmp ole float [[ARG]], 1.000000e+00
1994 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ueq float [[ARG]], 0.000000e+00
1997 %ole.pos1 = fcmp ole float %arg, 1.0
1999 %cmp = fcmp ueq float %arg, 0.0
2003 define i1 @assume_ole_pos1__ugt_0(float %arg) {
2005 ; CHECK-SAME: float [[ARG:%.*]]) {
2006 ; CHECK-NEXT: [[OLE_POS1:%.*]] = fcmp ole float [[ARG]], 1.000000e+00
2008 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ugt float [[ARG]], 0.000000e+00
2011 %ole.pos1 = fcmp ole float %arg, 1.0
2013 %cmp = fcmp ugt float %arg, 0.0
2017 define i1 @assume_ole_pos1__uge_0(float %arg) {
2019 ; CHECK-SAME: float [[ARG:%.*]]) {
2020 ; CHECK-NEXT: [[OLE_POS1:%.*]] = fcmp ole float [[ARG]], 1.000000e+00
2022 ; CHECK-NEXT: [[CMP:%.*]] = fcmp uge float [[ARG]], 0.000000e+00
2025 %ole.pos1 = fcmp ole float %arg, 1.0
2027 %cmp = fcmp uge float %arg, 0.0
2031 define i1 @assume_ole_pos1__ult_0(float %arg) {
2033 ; CHECK-SAME: float [[ARG:%.*]]) {
2034 ; CHECK-NEXT: [[OLE_POS1:%.*]] = fcmp ole float [[ARG]], 1.000000e+00
2036 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ult float [[ARG]], 0.000000e+00
2039 %ole.pos1 = fcmp ole float %arg, 1.0
2041 %cmp = fcmp ult float %arg, 0.0
2045 define i1 @assume_ole_pos1__ule_0(float %arg) {
2047 ; CHECK-SAME: float [[ARG:%.*]]) {
2048 ; CHECK-NEXT: [[OLE_POS1:%.*]] = fcmp ole float [[ARG]], 1.000000e+00
2050 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ule float [[ARG]], 0.000000e+00
2053 %ole.pos1 = fcmp ole float %arg, 1.0
2055 %cmp = fcmp ule float %arg, 0.0
2059 define i1 @assume_ole_pos1__une_0(float %arg) {
2061 ; CHECK-SAME: float [[ARG:%.*]]) {
2062 ; CHECK-NEXT: [[OLE_POS1:%.*]] = fcmp ole float [[ARG]], 1.000000e+00
2064 ; CHECK-NEXT: [[CMP:%.*]] = fcmp une float [[ARG]], 0.000000e+00
2067 %ole.pos1 = fcmp ole float %arg, 1.0
2069 %cmp = fcmp une float %arg, 0.0
2073 define i1 @assume_ole_pos1__uno_0(float %arg) {
2075 ; CHECK-SAME: float [[ARG:%.*]]) {
2076 ; CHECK-NEXT: [[OLE_POS1:%.*]] = fcmp ole float [[ARG]], 1.000000e+00
2080 %ole.pos1 = fcmp ole float %arg, 1.0
2082 %cmp = fcmp uno float %arg, 0.0
2090 define i1 @assume_ogt_pos1__oeq_0(float %arg) {
2092 ; CHECK-SAME: float [[ARG:%.*]]) {
2093 ; CHECK-NEXT: [[OGT_POS1:%.*]] = fcmp ogt float [[ARG]], 1.000000e+00
2097 %ogt.pos1 = fcmp ogt float %arg, 1.0
2099 %cmp = fcmp oeq float %arg, 0.0
2103 define i1 @assume_ogt_pos1__ogt_0(float %arg) {
2105 ; CHECK-SAME: float [[ARG:%.*]]) {
2106 ; CHECK-NEXT: [[OGT_POS1:%.*]] = fcmp ogt float [[ARG]], 1.000000e+00
2110 %ogt.pos1 = fcmp ogt float %arg, 1.0
2112 %cmp = fcmp ogt float %arg, 0.0
2116 define i1 @assume_ogt_pos1__oge_0(float %arg) {
2118 ; CHECK-SAME: float [[ARG:%.*]]) {
2119 ; CHECK-NEXT: [[OGT_POS1:%.*]] = fcmp ogt float [[ARG]], 1.000000e+00
2123 %ogt.pos1 = fcmp ogt float %arg, 1.0
2125 %cmp = fcmp oge float %arg, 0.0
2129 define i1 @assume_ogt_pos1__olt_0(float %arg) {
2131 ; CHECK-SAME: float [[ARG:%.*]]) {
2132 ; CHECK-NEXT: [[OGT_POS1:%.*]] = fcmp ogt float [[ARG]], 1.000000e+00
2136 %ogt.pos1 = fcmp ogt float %arg, 1.0
2138 %cmp = fcmp olt float %arg, 0.0
2142 define i1 @assume_ogt_pos1__ole_0(float %arg) {
2144 ; CHECK-SAME: float [[ARG:%.*]]) {
2145 ; CHECK-NEXT: [[OGT_POS1:%.*]] = fcmp ogt float [[ARG]], 1.000000e+00
2149 %ogt.pos1 = fcmp ogt float %arg, 1.0
2151 %cmp = fcmp ole float %arg, 0.0
2155 define i1 @assume_ogt_pos1__one_0(float %arg) {
2157 ; CHECK-SAME: float [[ARG:%.*]]) {
2158 ; CHECK-NEXT: [[OGT_POS1:%.*]] = fcmp ogt float [[ARG]], 1.000000e+00
2162 %ogt.pos1 = fcmp ogt float %arg, 1.0
2164 %cmp = fcmp one float %arg, 0.0
2168 define i1 @assume_ogt_pos1__ord_0(float %arg) {
2170 ; CHECK-SAME: float [[ARG:%.*]]) {
2171 ; CHECK-NEXT: [[OGT_POS1:%.*]] = fcmp ogt float [[ARG]], 1.000000e+00
2175 %ogt.pos1 = fcmp ogt float %arg, 1.0
2177 %cmp = fcmp ord float %arg, 0.0
2181 define i1 @assume_ogt_pos1__ueq_0(float %arg) {
2183 ; CHECK-SAME: float [[ARG:%.*]]) {
2184 ; CHECK-NEXT: [[OGT_POS1:%.*]] = fcmp ogt float [[ARG]], 1.000000e+00
2188 %ogt.pos1 = fcmp ogt float %arg, 1.0
2190 %cmp = fcmp ueq float %arg, 0.0
2194 define i1 @assume_ogt_pos1__ugt_0(float %arg) {
2196 ; CHECK-SAME: float [[ARG:%.*]]) {
2197 ; CHECK-NEXT: [[OGT_POS1:%.*]] = fcmp ogt float [[ARG]], 1.000000e+00
2201 %ogt.pos1 = fcmp ogt float %arg, 1.0
2203 %cmp = fcmp ugt float %arg, 0.0
2207 define i1 @assume_ogt_pos1__uge_0(float %arg) {
2209 ; CHECK-SAME: float [[ARG:%.*]]) {
2210 ; CHECK-NEXT: [[OGT_POS1:%.*]] = fcmp ogt float [[ARG]], 1.000000e+00
2214 %ogt.pos1 = fcmp ogt float %arg, 1.0
2216 %cmp = fcmp uge float %arg, 0.0
2220 define i1 @assume_ogt_pos1__ult_0(float %arg) {
2222 ; CHECK-SAME: float [[ARG:%.*]]) {
2223 ; CHECK-NEXT: [[OGT_POS1:%.*]] = fcmp ogt float [[ARG]], 1.000000e+00
2227 %ogt.pos1 = fcmp ogt float %arg, 1.0
2229 %cmp = fcmp ult float %arg, 0.0
2233 define i1 @assume_ogt_pos1__ule_0(float %arg) {
2235 ; CHECK-SAME: float [[ARG:%.*]]) {
2236 ; CHECK-NEXT: [[OGT_POS1:%.*]] = fcmp ogt float [[ARG]], 1.000000e+00
2240 %ogt.pos1 = fcmp ogt float %arg, 1.0
2242 %cmp = fcmp ule float %arg, 0.0
2246 define i1 @assume_ogt_pos1__une_0(float %arg) {
2248 ; CHECK-SAME: float [[ARG:%.*]]) {
2249 ; CHECK-NEXT: [[OGT_POS1:%.*]] = fcmp ogt float [[ARG]], 1.000000e+00
2253 %ogt.pos1 = fcmp ogt float %arg, 1.0
2255 %cmp = fcmp une float %arg, 0.0
2259 define i1 @assume_ogt_pos1__uno_0(float %arg) {
2261 ; CHECK-SAME: float [[ARG:%.*]]) {
2262 ; CHECK-NEXT: [[OGT_POS1:%.*]] = fcmp ogt float [[ARG]], 1.000000e+00
2266 %ogt.pos1 = fcmp ogt float %arg, 1.0
2268 %cmp = fcmp uno float %arg, 0.0
2276 define i1 @assume_oge_pos1__oeq_0(float %arg) {
2278 ; CHECK-SAME: float [[ARG:%.*]]) {
2279 ; CHECK-NEXT: [[OGE_POS1:%.*]] = fcmp oge float [[ARG]], 1.000000e+00
2283 %oge.pos1 = fcmp oge float %arg, 1.0
2285 %cmp = fcmp oeq float %arg, 0.0
2289 define i1 @assume_oge_pos1__ogt_0(float %arg) {
2291 ; CHECK-SAME: float [[ARG:%.*]]) {
2292 ; CHECK-NEXT: [[OGE_POS1:%.*]] = fcmp oge float [[ARG]], 1.000000e+00
2296 %oge.pos1 = fcmp oge float %arg, 1.0
2298 %cmp = fcmp ogt float %arg, 0.0
2302 define i1 @assume_oge_pos1__oge_0(float %arg) {
2304 ; CHECK-SAME: float [[ARG:%.*]]) {
2305 ; CHECK-NEXT: [[OGE_POS1:%.*]] = fcmp oge float [[ARG]], 1.000000e+00
2309 %oge.pos1 = fcmp oge float %arg, 1.0
2311 %cmp = fcmp oge float %arg, 0.0
2315 define i1 @assume_oge_pos1__olt_0(float %arg) {
2317 ; CHECK-SAME: float [[ARG:%.*]]) {
2318 ; CHECK-NEXT: [[OGE_POS1:%.*]] = fcmp oge float [[ARG]], 1.000000e+00
2322 %oge.pos1 = fcmp oge float %arg, 1.0
2324 %cmp = fcmp olt float %arg, 0.0
2328 define i1 @assume_oge_pos1__ole_0(float %arg) {
2330 ; CHECK-SAME: float [[ARG:%.*]]) {
2331 ; CHECK-NEXT: [[OGE_POS1:%.*]] = fcmp oge float [[ARG]], 1.000000e+00
2335 %oge.pos1 = fcmp oge float %arg, 1.0
2337 %cmp = fcmp ole float %arg, 0.0
2341 define i1 @assume_oge_pos1__one_0(float %arg) {
2343 ; CHECK-SAME: float [[ARG:%.*]]) {
2344 ; CHECK-NEXT: [[OGE_POS1:%.*]] = fcmp oge float [[ARG]], 1.000000e+00
2348 %oge.pos1 = fcmp oge float %arg, 1.0
2350 %cmp = fcmp one float %arg, 0.0
2354 define i1 @assume_oge_pos1__ord_0(float %arg) {
2356 ; CHECK-SAME: float [[ARG:%.*]]) {
2357 ; CHECK-NEXT: [[OGE_POS1:%.*]] = fcmp oge float [[ARG]], 1.000000e+00
2361 %oge.pos1 = fcmp oge float %arg, 1.0
2363 %cmp = fcmp ord float %arg, 0.0
2367 define i1 @assume_oge_pos1__ueq_0(float %arg) {
2369 ; CHECK-SAME: float [[ARG:%.*]]) {
2370 ; CHECK-NEXT: [[OGE_POS1:%.*]] = fcmp oge float [[ARG]], 1.000000e+00
2374 %oge.pos1 = fcmp oge float %arg, 1.0
2376 %cmp = fcmp ueq float %arg, 0.0
2380 define i1 @assume_oge_pos1__ugt_0(float %arg) {
2382 ; CHECK-SAME: float [[ARG:%.*]]) {
2383 ; CHECK-NEXT: [[OGE_POS1:%.*]] = fcmp oge float [[ARG]], 1.000000e+00
2387 %oge.pos1 = fcmp oge float %arg, 1.0
2389 %cmp = fcmp ugt float %arg, 0.0
2393 define i1 @assume_oge_pos1__uge_0(float %arg) {
2395 ; CHECK-SAME: float [[ARG:%.*]]) {
2396 ; CHECK-NEXT: [[OGE_POS1:%.*]] = fcmp oge float [[ARG]], 1.000000e+00
2400 %oge.pos1 = fcmp oge float %arg, 1.0
2402 %cmp = fcmp uge float %arg, 0.0
2406 define i1 @assume_oge_pos1__ult_0(float %arg) {
2408 ; CHECK-SAME: float [[ARG:%.*]]) {
2409 ; CHECK-NEXT: [[OGE_POS1:%.*]] = fcmp oge float [[ARG]], 1.000000e+00
2413 %oge.pos1 = fcmp oge float %arg, 1.0
2415 %cmp = fcmp ult float %arg, 0.0
2419 define i1 @assume_oge_pos1__ule_0(float %arg) {
2421 ; CHECK-SAME: float [[ARG:%.*]]) {
2422 ; CHECK-NEXT: [[OGE_POS1:%.*]] = fcmp oge float [[ARG]], 1.000000e+00
2426 %oge.pos1 = fcmp oge float %arg, 1.0
2428 %cmp = fcmp ule float %arg, 0.0
2432 define i1 @assume_oge_pos1__une_0(float %arg) {
2434 ; CHECK-SAME: float [[ARG:%.*]]) {
2435 ; CHECK-NEXT: [[OGE_POS1:%.*]] = fcmp oge float [[ARG]], 1.000000e+00
2439 %oge.pos1 = fcmp oge float %arg, 1.0
2441 %cmp = fcmp une float %arg, 0.0
2445 define i1 @assume_oge_pos1__uno_0(float %arg) {
2447 ; CHECK-SAME: float [[ARG:%.*]]) {
2448 ; CHECK-NEXT: [[OGE_POS1:%.*]] = fcmp oge float [[ARG]], 1.000000e+00
2452 %oge.pos1 = fcmp oge float %arg, 1.0
2454 %cmp = fcmp uno float %arg, 0.0
2462 define i1 @assume_ugt_pos1__oeq_0(float %arg) {
2464 ; CHECK-SAME: float [[ARG:%.*]]) {
2465 ; CHECK-NEXT: [[UGT_POS1:%.*]] = fcmp ugt float [[ARG]], 1.000000e+00
2469 %ugt.pos1 = fcmp ugt float %arg, 1.0
2471 %cmp = fcmp oeq float %arg, 0.0
2475 define i1 @assume_ugt_pos1__ogt_0(float %arg) {
2477 ; CHECK-SAME: float [[ARG:%.*]]) {
2478 ; CHECK-NEXT: [[UGT_POS1:%.*]] = fcmp ugt float [[ARG]], 1.000000e+00
2480 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ogt float [[ARG]], 0.000000e+00
2483 %ugt.pos1 = fcmp ugt float %arg, 1.0
2485 %cmp = fcmp ogt float %arg, 0.0
2489 define i1 @assume_ugt_pos1__oge_0(float %arg) {
2491 ; CHECK-SAME: float [[ARG:%.*]]) {
2492 ; CHECK-NEXT: [[UGT_POS1:%.*]] = fcmp ugt float [[ARG]], 1.000000e+00
2494 ; CHECK-NEXT: [[CMP:%.*]] = fcmp oge float [[ARG]], 0.000000e+00
2497 %ugt.pos1 = fcmp ugt float %arg, 1.0
2499 %cmp = fcmp oge float %arg, 0.0
2503 define i1 @assume_ugt_pos1__olt_0(float %arg) {
2505 ; CHECK-SAME: float [[ARG:%.*]]) {
2506 ; CHECK-NEXT: [[UGT_POS1:%.*]] = fcmp ugt float [[ARG]], 1.000000e+00
2510 %ugt.pos1 = fcmp ugt float %arg, 1.0
2512 %cmp = fcmp olt float %arg, 0.0
2516 define i1 @assume_ugt_pos1__ole_0(float %arg) {
2518 ; CHECK-SAME: float [[ARG:%.*]]) {
2519 ; CHECK-NEXT: [[UGT_POS1:%.*]] = fcmp ugt float [[ARG]], 1.000000e+00
2523 %ugt.pos1 = fcmp ugt float %arg, 1.0
2525 %cmp = fcmp ole float %arg, 0.0
2529 define i1 @assume_ugt_pos1__one_0(float %arg) {
2531 ; CHECK-SAME: float [[ARG:%.*]]) {
2532 ; CHECK-NEXT: [[UGT_POS1:%.*]] = fcmp ugt float [[ARG]], 1.000000e+00
2534 ; CHECK-NEXT: [[CMP:%.*]] = fcmp one float [[ARG]], 0.000000e+00
2537 %ugt.pos1 = fcmp ugt float %arg, 1.0
2539 %cmp = fcmp one float %arg, 0.0
2543 define i1 @assume_ugt_pos1__ord_0(float %arg) {
2545 ; CHECK-SAME: float [[ARG:%.*]]) {
2546 ; CHECK-NEXT: [[UGT_POS1:%.*]] = fcmp ugt float [[ARG]], 1.000000e+00
2548 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ord float [[ARG]], 0.000000e+00
2551 %ugt.pos1 = fcmp ugt float %arg, 1.0
2553 %cmp = fcmp ord float %arg, 0.0
2557 define i1 @assume_ugt_pos1__ueq_0(float %arg) {
2559 ; CHECK-SAME: float [[ARG:%.*]]) {
2560 ; CHECK-NEXT: [[UGT_POS1:%.*]] = fcmp ugt float [[ARG]], 1.000000e+00
2562 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ueq float [[ARG]], 0.000000e+00
2565 %ugt.pos1 = fcmp ugt float %arg, 1.0
2567 %cmp = fcmp ueq float %arg, 0.0
2571 define i1 @assume_ugt_pos1__ugt_0(float %arg) {
2573 ; CHECK-SAME: float [[ARG:%.*]]) {
2574 ; CHECK-NEXT: [[UGT_POS1:%.*]] = fcmp ugt float [[ARG]], 1.000000e+00
2578 %ugt.pos1 = fcmp ugt float %arg, 1.0
2580 %cmp = fcmp ugt float %arg, 0.0
2584 define i1 @assume_ugt_pos1__uge_0(float %arg) {
2586 ; CHECK-SAME: float [[ARG:%.*]]) {
2587 ; CHECK-NEXT: [[UGT_POS1:%.*]] = fcmp ugt float [[ARG]], 1.000000e+00
2591 %ugt.pos1 = fcmp ugt float %arg, 1.0
2593 %cmp = fcmp uge float %arg, 0.0
2597 define i1 @assume_ugt_pos1__ult_0(float %arg) {
2599 ; CHECK-SAME: float [[ARG:%.*]]) {
2600 ; CHECK-NEXT: [[UGT_POS1:%.*]] = fcmp ugt float [[ARG]], 1.000000e+00
2602 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ult float [[ARG]], 0.000000e+00
2605 %ugt.pos1 = fcmp ugt float %arg, 1.0
2607 %cmp = fcmp ult float %arg, 0.0
2611 define i1 @assume_ugt_pos1__ule_0(float %arg) {
2613 ; CHECK-SAME: float [[ARG:%.*]]) {
2614 ; CHECK-NEXT: [[UGT_POS1:%.*]] = fcmp ugt float [[ARG]], 1.000000e+00
2616 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ule float [[ARG]], 0.000000e+00
2619 %ugt.pos1 = fcmp ugt float %arg, 1.0
2621 %cmp = fcmp ule float %arg, 0.0
2625 define i1 @assume_ugt_pos1__une_0(float %arg) {
2627 ; CHECK-SAME: float [[ARG:%.*]]) {
2628 ; CHECK-NEXT: [[UGT_POS1:%.*]] = fcmp ugt float [[ARG]], 1.000000e+00
2632 %ugt.pos1 = fcmp ugt float %arg, 1.0
2634 %cmp = fcmp une float %arg, 0.0
2638 define i1 @assume_ugt_pos1__uno_0(float %arg) {
2640 ; CHECK-SAME: float [[ARG:%.*]]) {
2641 ; CHECK-NEXT: [[UGT_POS1:%.*]] = fcmp ugt float [[ARG]], 1.000000e+00
2643 ; CHECK-NEXT: [[CMP:%.*]] = fcmp uno float [[ARG]], 0.000000e+00
2646 %ugt.pos1 = fcmp ugt float %arg, 1.0
2648 %cmp = fcmp uno float %arg, 0.0
2656 define i1 @assume_uge_pos1__oeq_0(float %arg) {
2658 ; CHECK-SAME: float [[ARG:%.*]]) {
2659 ; CHECK-NEXT: [[UGE_POS1:%.*]] = fcmp uge float [[ARG]], 1.000000e+00
2663 %uge.pos1 = fcmp uge float %arg, 1.0
2665 %cmp = fcmp oeq float %arg, 0.0
2669 define i1 @assume_uge_pos1__ogt_0(float %arg) {
2671 ; CHECK-SAME: float [[ARG:%.*]]) {
2672 ; CHECK-NEXT: [[UGE_POS1:%.*]] = fcmp uge float [[ARG]], 1.000000e+00
2674 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ogt float [[ARG]], 0.000000e+00
2677 %uge.pos1 = fcmp uge float %arg, 1.0
2679 %cmp = fcmp ogt float %arg, 0.0
2683 define i1 @assume_uge_pos1__oge_0(float %arg) {
2685 ; CHECK-SAME: float [[ARG:%.*]]) {
2686 ; CHECK-NEXT: [[UGE_POS1:%.*]] = fcmp uge float [[ARG]], 1.000000e+00
2688 ; CHECK-NEXT: [[CMP:%.*]] = fcmp oge float [[ARG]], 0.000000e+00
2691 %uge.pos1 = fcmp uge float %arg, 1.0
2693 %cmp = fcmp oge float %arg, 0.0
2697 define i1 @assume_uge_pos1__olt_0(float %arg) {
2699 ; CHECK-SAME: float [[ARG:%.*]]) {
2700 ; CHECK-NEXT: [[UGE_POS1:%.*]] = fcmp uge float [[ARG]], 1.000000e+00
2704 %uge.pos1 = fcmp uge float %arg, 1.0
2706 %cmp = fcmp olt float %arg, 0.0
2710 define i1 @assume_uge_pos1__ole_0(float %arg) {
2712 ; CHECK-SAME: float [[ARG:%.*]]) {
2713 ; CHECK-NEXT: [[UGE_POS1:%.*]] = fcmp uge float [[ARG]], 1.000000e+00
2717 %uge.pos1 = fcmp uge float %arg, 1.0
2719 %cmp = fcmp ole float %arg, 0.0
2723 define i1 @assume_uge_pos1__one_0(float %arg) {
2725 ; CHECK-SAME: float [[ARG:%.*]]) {
2726 ; CHECK-NEXT: [[UGE_POS1:%.*]] = fcmp uge float [[ARG]], 1.000000e+00
2728 ; CHECK-NEXT: [[CMP:%.*]] = fcmp one float [[ARG]], 0.000000e+00
2731 %uge.pos1 = fcmp uge float %arg, 1.0
2733 %cmp = fcmp one float %arg, 0.0
2737 define i1 @assume_uge_pos1__ord_0(float %arg) {
2739 ; CHECK-SAME: float [[ARG:%.*]]) {
2740 ; CHECK-NEXT: [[UGE_POS1:%.*]] = fcmp uge float [[ARG]], 1.000000e+00
2742 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ord float [[ARG]], 0.000000e+00
2745 %uge.pos1 = fcmp uge float %arg, 1.0
2747 %cmp = fcmp ord float %arg, 0.0
2751 define i1 @assume_uge_pos1__ueq_0(float %arg) {
2753 ; CHECK-SAME: float [[ARG:%.*]]) {
2754 ; CHECK-NEXT: [[UGE_POS1:%.*]] = fcmp uge float [[ARG]], 1.000000e+00
2756 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ueq float [[ARG]], 0.000000e+00
2759 %uge.pos1 = fcmp uge float %arg, 1.0
2761 %cmp = fcmp ueq float %arg, 0.0
2765 define i1 @assume_uge_pos1__ugt_0(float %arg) {
2767 ; CHECK-SAME: float [[ARG:%.*]]) {
2768 ; CHECK-NEXT: [[UGE_POS1:%.*]] = fcmp uge float [[ARG]], 1.000000e+00
2772 %uge.pos1 = fcmp uge float %arg, 1.0
2774 %cmp = fcmp ugt float %arg, 0.0
2778 define i1 @assume_uge_pos1__uge_0(float %arg) {
2780 ; CHECK-SAME: float [[ARG:%.*]]) {
2781 ; CHECK-NEXT: [[UGE_POS1:%.*]] = fcmp uge float [[ARG]], 1.000000e+00
2785 %uge.pos1 = fcmp uge float %arg, 1.0
2787 %cmp = fcmp uge float %arg, 0.0
2791 define i1 @assume_uge_pos1__ult_0(float %arg) {
2793 ; CHECK-SAME: float [[ARG:%.*]]) {
2794 ; CHECK-NEXT: [[UGE_POS1:%.*]] = fcmp uge float [[ARG]], 1.000000e+00
2796 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ult float [[ARG]], 0.000000e+00
2799 %uge.pos1 = fcmp uge float %arg, 1.0
2801 %cmp = fcmp ult float %arg, 0.0
2805 define i1 @assume_uge_pos1__ule_0(float %arg) {
2807 ; CHECK-SAME: float [[ARG:%.*]]) {
2808 ; CHECK-NEXT: [[UGE_POS1:%.*]] = fcmp uge float [[ARG]], 1.000000e+00
2810 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ule float [[ARG]], 0.000000e+00
2813 %uge.pos1 = fcmp uge float %arg, 1.0
2815 %cmp = fcmp ule float %arg, 0.0
2819 define i1 @assume_uge_pos1__une_0(float %arg) {
2821 ; CHECK-SAME: float [[ARG:%.*]]) {
2822 ; CHECK-NEXT: [[UGE_POS1:%.*]] = fcmp uge float [[ARG]], 1.000000e+00
2826 %uge.pos1 = fcmp uge float %arg, 1.0
2828 %cmp = fcmp une float %arg, 0.0
2832 define i1 @assume_uge_pos1__uno_0(float %arg) {
2834 ; CHECK-SAME: float [[ARG:%.*]]) {
2835 ; CHECK-NEXT: [[UGE_POS1:%.*]] = fcmp uge float [[ARG]], 1.000000e+00
2837 ; CHECK-NEXT: [[CMP:%.*]] = fcmp uno float [[ARG]], 0.000000e+00
2840 %uge.pos1 = fcmp uge float %arg, 1.0
2842 %cmp = fcmp uno float %arg, 0.0
2850 define i1 @assume_olt_neg1__oeq_inf(float %arg) {
2852 ; CHECK-SAME: float [[ARG:%.*]]) {
2853 ; CHECK-NEXT: [[OLT_NEG1:%.*]] = fcmp olt float [[ARG]], -1.000000e+00
2857 %olt.neg1 = fcmp olt float %arg, -1.0
2859 %cmp = fcmp oeq float %arg, 0x7FF0000000000000
2863 define i1 @assume_olt_neg1__one_inf(float %arg) {
2865 ; CHECK-SAME: float [[ARG:%.*]]) {
2866 ; CHECK-NEXT: [[OLT_NEG1:%.*]] = fcmp olt float [[ARG]], -1.000000e+00
2870 %olt.neg1 = fcmp olt float %arg, -1.0
2872 %cmp = fcmp one float %arg, 0x7FF0000000000000
2876 define i1 @assume_olt_neg1__oeq_ninf(float %arg) {
2878 ; CHECK-SAME: float [[ARG:%.*]]) {
2879 ; CHECK-NEXT: [[OLT_NEG1:%.*]] = fcmp olt float [[ARG]], -1.000000e+00
2881 ; CHECK-NEXT: [[CMP:%.*]] = fcmp oeq float [[ARG]], 0xFFF0000000000000
2884 %olt.neg1 = fcmp olt float %arg, -1.0
2886 %cmp = fcmp oeq float %arg, 0xFFF0000000000000
2890 define i1 @assume_olt_neg1__one_ninf(float %arg) {
2892 ; CHECK-SAME: float [[ARG:%.*]]) {
2893 ; CHECK-NEXT: [[OLT_NEG1:%.*]] = fcmp olt float [[ARG]], -1.000000e+00
2895 ; CHECK-NEXT: [[CMP:%.*]] = fcmp one float [[ARG]], 0xFFF0000000000000
2898 %olt.neg1 = fcmp olt float %arg, -1.0
2900 %cmp = fcmp one float %arg, 0xFFF0000000000000
2908 define i1 @assume_olt_1__oeq_2(float %arg) {
2910 ; CHECK-SAME: float [[ARG:%.*]]) {
2911 ; CHECK-NEXT: [[OLT_1:%.*]] = fcmp olt float [[ARG]], 1.000000e+00
2913 ; CHECK-NEXT: [[CMP:%.*]] = fcmp oeq float [[ARG]], 2.000000e+00
2916 %olt.1 = fcmp olt float %arg, 1.0
2918 %cmp = fcmp oeq float %arg, 2.0
2923 define i1 @assume_ogt_2__oeq_2(float %arg) {
2925 ; CHECK-SAME: float [[ARG:%.*]]) {
2926 ; CHECK-NEXT: [[OLT_1:%.*]] = fcmp ogt float [[ARG]], 2.000000e+00
2928 ; CHECK-NEXT: [[CMP:%.*]] = fcmp oeq float [[ARG]], 2.000000e+00
2931 %olt.1 = fcmp ogt float %arg, 2.0
2933 %cmp = fcmp oeq float %arg, 2.0
2937 define i1 @assume_olt_2__olt_1(float %arg) {
2939 ; CHECK-SAME: float [[ARG:%.*]]) {
2940 ; CHECK-NEXT: [[OLT_1:%.*]] = fcmp olt float [[ARG]], 2.000000e+00
2942 ; CHECK-NEXT: [[CMP:%.*]] = fcmp olt float [[ARG]], 1.000000e+00
2945 %olt.1 = fcmp olt float %arg, 2.0
2947 %cmp = fcmp olt float %arg, 1.0
2955 define i1 @assume_ogt_neginf_one_neginf(float %arg) {
2957 ; CHECK-SAME: float [[ARG:%.*]]) {
2958 ; CHECK-NEXT: [[CMP_OGT_NEGINF:%.*]] = fcmp ogt float [[ARG]], 0xFFF0000000000000
2962 %cmp.ogt.neginf = fcmp ogt float %arg, 0xFFF0000000000000
2964 %cmp = fcmp one float %arg, 0xFFF0000000000000
2968 define i1 @assume_ogt_neginf_oeq_posinf(float %arg) {
2970 ; CHECK-SAME: float [[ARG:%.*]]) {
2971 ; CHECK-NEXT: [[CMP_OGT_NEGINF:%.*]] = fcmp ogt float [[ARG]], 0xFFF0000000000000
2973 ; CHECK-NEXT: [[CMP:%.*]] = fcmp oeq float [[ARG]], 0x7FF0000000000000
2976 %cmp.ogt.neginf = fcmp ogt float %arg, 0xFFF0000000000000
2978 %cmp = fcmp oeq float %arg, 0x7FF0000000000000
2982 define i1 @assume_ule_neginf_oeq_neginf(float %arg) {
2984 ; CHECK-SAME: float [[ARG:%.*]]) {
2985 ; CHECK-NEXT: [[CMP_ULE_NEGINF:%.*]] = fcmp ule float [[ARG]], 0xFFF0000000000000
2987 ; CHECK-NEXT: [[CMP:%.*]] = fcmp oeq float [[ARG]], 0xFFF0000000000000
2990 %cmp.ule.neginf = fcmp ule float %arg, 0xFFF0000000000000
2992 %cmp = fcmp oeq float %arg, 0xFFF0000000000000
2996 define i1 @assume_ult_neginf_oeq_neginf(float %arg) {
2998 ; CHECK-SAME: float [[ARG:%.*]]) {
2999 ; CHECK-NEXT: [[CMP_ULT_NEGINF:%.*]] = fcmp ult float [[ARG]], 0xFFF0000000000000
3003 %cmp.ult.neginf = fcmp ult float %arg, 0xFFF0000000000000
3005 %cmp = fcmp oeq float %arg, 0xFFF0000000000000
3009 define i1 @assume_fabs_ogt_neginf_one_neginf(float %arg) {
3011 ; CHECK-SAME: float [[ARG:%.*]]) {
3012 ; CHECK-NEXT: [[FABS_ARG:%.*]] = call float @llvm.fabs.f32(float [[ARG]])
3015 ; CHECK-NEXT: [[CMP:%.*]] = fcmp one float [[ARG]], 0xFFF0000000000000
3018 %fabs.arg = call float @llvm.fabs.f32(float %arg)
3019 %cmp.ogt.neginf = fcmp ogt float %fabs.arg, 0xFFF0000000000000
3021 %cmp = fcmp one float %arg, 0xFFF0000000000000
3025 define i1 @assume_fabs_ogt_neginf_one_posinf(float %arg) {
3027 ; CHECK-SAME: float [[ARG:%.*]]) {
3028 ; CHECK-NEXT: [[FABS_ARG:%.*]] = call float @llvm.fabs.f32(float [[ARG]])
3031 ; CHECK-NEXT: [[CMP:%.*]] = fcmp one float [[ARG]], 0x7FF0000000000000
3034 %fabs.arg = call float @llvm.fabs.f32(float %arg)
3035 %cmp.ogt.neginf = fcmp ogt float %fabs.arg, 0xFFF0000000000000
3037 %cmp = fcmp one float %arg, 0x7FF0000000000000
3041 define i1 @assume_fabs_ule_neginf_oeq_neginf(float %arg) {
3043 ; CHECK-SAME: float [[ARG:%.*]]) {
3044 ; CHECK-NEXT: [[FABS_ARG:%.*]] = call float @llvm.fabs.f32(float [[ARG]])
3049 %fabs.arg = call float @llvm.fabs.f32(float %arg)
3050 %cmp.ogt.neginf = fcmp ule float %fabs.arg, 0xFFF0000000000000
3052 %cmp = fcmp oeq float %arg, 0xFFF0000000000000
3056 define i1 @assume_oge_neginf_oeq_neginf(float %arg) {
3058 ; CHECK-SAME: float [[ARG:%.*]]) {
3059 ; CHECK-NEXT: [[CMP_OGE_NEGINF:%.*]] = fcmp oge float [[ARG]], 0xFFF0000000000000
3061 ; CHECK-NEXT: [[CMP:%.*]] = fcmp oeq float [[ARG]], 0xFFF0000000000000
3064 %cmp.oge.neginf = fcmp oge float %arg, 0xFFF0000000000000
3066 %cmp = fcmp oeq float %arg, 0xFFF0000000000000