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 uno double [[X:%.*]], [[Y:%.*]]
7 ; CHECK-NEXT: ret i1 [[TMP1]]
9 %cmp1 = fcmp uno double %x, 0.0
10 %cmp2 = fcmp uno double %y, 0.0
11 %or = or 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 uno <2 x double> [[X:%.*]], [[Y:%.*]]
18 ; CHECK-NEXT: ret <2 x i1> [[TMP1]]
20 %cmp1 = fcmp uno <2 x double> %x, <double 0.0, double undef>
21 %cmp2 = fcmp uno <2 x double> %y, <double undef, double 0.0>
22 %or = or <2 x i1> %cmp1, %cmp2
26 define i1 @fcmp_uno_nonzero(float %x, float %y) {
27 ; CHECK-LABEL: @fcmp_uno_nonzero(
28 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno float [[X:%.*]], [[Y:%.*]]
29 ; CHECK-NEXT: ret i1 [[TMP1]]
31 %cmp1 = fcmp uno float %x, 1.0
32 %cmp2 = fcmp uno float %y, 2.0
33 %or = or i1 %cmp1, %cmp2
37 define <3 x i1> @fcmp_uno_nonzero_vec(<3 x float> %x, <3 x float> %y) {
38 ; CHECK-LABEL: @fcmp_uno_nonzero_vec(
39 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno <3 x float> [[X:%.*]], [[Y:%.*]]
40 ; CHECK-NEXT: ret <3 x i1> [[TMP1]]
42 %cmp1 = fcmp uno <3 x float> %x, <float 1.0, float 2.0, float 3.0>
43 %cmp2 = fcmp uno <3 x float> %y, <float 3.0, float 2.0, float 1.0>
44 %or = or <3 x i1> %cmp1, %cmp2
48 define i1 @auto_gen_0(double %a, double %b) {
49 ; CHECK-LABEL: @auto_gen_0(
50 ; CHECK-NEXT: ret i1 false
52 %cmp = fcmp false double %a, %b
53 %cmp1 = fcmp false double %a, %b
54 %retval = or i1 %cmp, %cmp1
58 define i1 @auto_gen_1(double %a, double %b) {
59 ; CHECK-LABEL: @auto_gen_1(
60 ; CHECK-NEXT: [[CMP:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
61 ; CHECK-NEXT: ret i1 [[CMP]]
63 %cmp = fcmp oeq double %a, %b
64 %cmp1 = fcmp false double %a, %b
65 %retval = or i1 %cmp, %cmp1
69 define i1 @auto_gen_2(double %a, double %b) {
70 ; CHECK-LABEL: @auto_gen_2(
71 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
72 ; CHECK-NEXT: ret i1 [[TMP1]]
74 %cmp = fcmp oeq double %a, %b
75 %cmp1 = fcmp oeq double %a, %b
76 %retval = or i1 %cmp, %cmp1
80 define i1 @auto_gen_3(double %a, double %b) {
81 ; CHECK-LABEL: @auto_gen_3(
82 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
83 ; CHECK-NEXT: ret i1 [[CMP]]
85 %cmp = fcmp ogt double %a, %b
86 %cmp1 = fcmp false double %a, %b
87 %retval = or i1 %cmp, %cmp1
91 define i1 @auto_gen_4(double %a, double %b) {
92 ; CHECK-LABEL: @auto_gen_4(
93 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
94 ; CHECK-NEXT: ret i1 [[TMP1]]
96 %cmp = fcmp ogt double %a, %b
97 %cmp1 = fcmp oeq double %a, %b
98 %retval = or i1 %cmp, %cmp1
102 define i1 @auto_gen_5(double %a, double %b) {
103 ; CHECK-LABEL: @auto_gen_5(
104 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
105 ; CHECK-NEXT: ret i1 [[TMP1]]
107 %cmp = fcmp ogt double %a, %b
108 %cmp1 = fcmp ogt double %a, %b
109 %retval = or i1 %cmp, %cmp1
113 define i1 @auto_gen_6(double %a, double %b) {
114 ; CHECK-LABEL: @auto_gen_6(
115 ; CHECK-NEXT: [[CMP:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
116 ; CHECK-NEXT: ret i1 [[CMP]]
118 %cmp = fcmp oge double %a, %b
119 %cmp1 = fcmp false double %a, %b
120 %retval = or i1 %cmp, %cmp1
124 define i1 @auto_gen_7(double %a, double %b) {
125 ; CHECK-LABEL: @auto_gen_7(
126 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
127 ; CHECK-NEXT: ret i1 [[TMP1]]
129 %cmp = fcmp oge double %a, %b
130 %cmp1 = fcmp oeq double %a, %b
131 %retval = or i1 %cmp, %cmp1
135 define i1 @auto_gen_8(double %a, double %b) {
136 ; CHECK-LABEL: @auto_gen_8(
137 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
138 ; CHECK-NEXT: ret i1 [[TMP1]]
140 %cmp = fcmp oge double %a, %b
141 %cmp1 = fcmp ogt double %a, %b
142 %retval = or i1 %cmp, %cmp1
146 define i1 @auto_gen_9(double %a, double %b) {
147 ; CHECK-LABEL: @auto_gen_9(
148 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
149 ; CHECK-NEXT: ret i1 [[TMP1]]
151 %cmp = fcmp oge double %a, %b
152 %cmp1 = fcmp oge double %a, %b
153 %retval = or i1 %cmp, %cmp1
157 define i1 @auto_gen_10(double %a, double %b) {
158 ; CHECK-LABEL: @auto_gen_10(
159 ; CHECK-NEXT: [[CMP:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
160 ; CHECK-NEXT: ret i1 [[CMP]]
162 %cmp = fcmp olt double %a, %b
163 %cmp1 = fcmp false double %a, %b
164 %retval = or i1 %cmp, %cmp1
168 define i1 @auto_gen_11(double %a, double %b) {
169 ; CHECK-LABEL: @auto_gen_11(
170 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
171 ; CHECK-NEXT: ret i1 [[TMP1]]
173 %cmp = fcmp olt double %a, %b
174 %cmp1 = fcmp oeq double %a, %b
175 %retval = or i1 %cmp, %cmp1
179 define i1 @auto_gen_12(double %a, double %b) {
180 ; CHECK-LABEL: @auto_gen_12(
181 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
182 ; CHECK-NEXT: ret i1 [[TMP1]]
184 %cmp = fcmp olt double %a, %b
185 %cmp1 = fcmp ogt double %a, %b
186 %retval = or i1 %cmp, %cmp1
190 define i1 @auto_gen_13(double %a, double %b) {
191 ; CHECK-LABEL: @auto_gen_13(
192 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
193 ; CHECK-NEXT: ret i1 [[TMP1]]
195 %cmp = fcmp olt double %a, %b
196 %cmp1 = fcmp oge double %a, %b
197 %retval = or i1 %cmp, %cmp1
201 define i1 @auto_gen_14(double %a, double %b) {
202 ; CHECK-LABEL: @auto_gen_14(
203 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
204 ; CHECK-NEXT: ret i1 [[TMP1]]
206 %cmp = fcmp olt double %a, %b
207 %cmp1 = fcmp olt double %a, %b
208 %retval = or i1 %cmp, %cmp1
212 define i1 @auto_gen_15(double %a, double %b) {
213 ; CHECK-LABEL: @auto_gen_15(
214 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
215 ; CHECK-NEXT: ret i1 [[CMP]]
217 %cmp = fcmp ole double %a, %b
218 %cmp1 = fcmp false double %a, %b
219 %retval = or i1 %cmp, %cmp1
223 define i1 @auto_gen_16(double %a, double %b) {
224 ; CHECK-LABEL: @auto_gen_16(
225 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
226 ; CHECK-NEXT: ret i1 [[TMP1]]
228 %cmp = fcmp ole double %a, %b
229 %cmp1 = fcmp oeq double %a, %b
230 %retval = or i1 %cmp, %cmp1
234 define i1 @auto_gen_17(double %a, double %b) {
235 ; CHECK-LABEL: @auto_gen_17(
236 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
237 ; CHECK-NEXT: ret i1 [[TMP1]]
239 %cmp = fcmp ole double %a, %b
240 %cmp1 = fcmp ogt double %a, %b
241 %retval = or i1 %cmp, %cmp1
245 define i1 @auto_gen_18(double %a, double %b) {
246 ; CHECK-LABEL: @auto_gen_18(
247 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
248 ; CHECK-NEXT: ret i1 [[TMP1]]
250 %cmp = fcmp ole double %a, %b
251 %cmp1 = fcmp oge double %a, %b
252 %retval = or i1 %cmp, %cmp1
256 define i1 @auto_gen_19(double %a, double %b) {
257 ; CHECK-LABEL: @auto_gen_19(
258 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
259 ; CHECK-NEXT: ret i1 [[TMP1]]
261 %cmp = fcmp ole double %a, %b
262 %cmp1 = fcmp olt double %a, %b
263 %retval = or i1 %cmp, %cmp1
267 define i1 @auto_gen_20(double %a, double %b) {
268 ; CHECK-LABEL: @auto_gen_20(
269 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
270 ; CHECK-NEXT: ret i1 [[TMP1]]
272 %cmp = fcmp ole double %a, %b
273 %cmp1 = fcmp ole double %a, %b
274 %retval = or i1 %cmp, %cmp1
278 define i1 @auto_gen_21(double %a, double %b) {
279 ; CHECK-LABEL: @auto_gen_21(
280 ; CHECK-NEXT: [[CMP:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
281 ; CHECK-NEXT: ret i1 [[CMP]]
283 %cmp = fcmp one double %a, %b
284 %cmp1 = fcmp false double %a, %b
285 %retval = or i1 %cmp, %cmp1
289 define i1 @auto_gen_22(double %a, double %b) {
290 ; CHECK-LABEL: @auto_gen_22(
291 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
292 ; CHECK-NEXT: ret i1 [[TMP1]]
294 %cmp = fcmp one double %a, %b
295 %cmp1 = fcmp oeq double %a, %b
296 %retval = or i1 %cmp, %cmp1
300 define i1 @auto_gen_23(double %a, double %b) {
301 ; CHECK-LABEL: @auto_gen_23(
302 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
303 ; CHECK-NEXT: ret i1 [[TMP1]]
305 %cmp = fcmp one double %a, %b
306 %cmp1 = fcmp ogt double %a, %b
307 %retval = or i1 %cmp, %cmp1
311 define i1 @auto_gen_24(double %a, double %b) {
312 ; CHECK-LABEL: @auto_gen_24(
313 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
314 ; CHECK-NEXT: ret i1 [[TMP1]]
316 %cmp = fcmp one double %a, %b
317 %cmp1 = fcmp oge double %a, %b
318 %retval = or i1 %cmp, %cmp1
322 define i1 @auto_gen_25(double %a, double %b) {
323 ; CHECK-LABEL: @auto_gen_25(
324 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
325 ; CHECK-NEXT: ret i1 [[TMP1]]
327 %cmp = fcmp one double %a, %b
328 %cmp1 = fcmp olt double %a, %b
329 %retval = or i1 %cmp, %cmp1
333 define i1 @auto_gen_26(double %a, double %b) {
334 ; CHECK-LABEL: @auto_gen_26(
335 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
336 ; CHECK-NEXT: ret i1 [[TMP1]]
338 %cmp = fcmp one double %a, %b
339 %cmp1 = fcmp ole double %a, %b
340 %retval = or i1 %cmp, %cmp1
344 define i1 @auto_gen_27(double %a, double %b) {
345 ; CHECK-LABEL: @auto_gen_27(
346 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
347 ; CHECK-NEXT: ret i1 [[TMP1]]
349 %cmp = fcmp one double %a, %b
350 %cmp1 = fcmp one double %a, %b
351 %retval = or i1 %cmp, %cmp1
355 define i1 @auto_gen_28(double %a, double %b) {
356 ; CHECK-LABEL: @auto_gen_28(
357 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
358 ; CHECK-NEXT: ret i1 [[CMP]]
360 %cmp = fcmp ord double %a, %b
361 %cmp1 = fcmp false double %a, %b
362 %retval = or i1 %cmp, %cmp1
366 define i1 @auto_gen_29(double %a, double %b) {
367 ; CHECK-LABEL: @auto_gen_29(
368 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
369 ; CHECK-NEXT: ret i1 [[TMP1]]
371 %cmp = fcmp ord double %a, %b
372 %cmp1 = fcmp oeq double %a, %b
373 %retval = or i1 %cmp, %cmp1
377 define i1 @auto_gen_30(double %a, double %b) {
378 ; CHECK-LABEL: @auto_gen_30(
379 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
380 ; CHECK-NEXT: ret i1 [[TMP1]]
382 %cmp = fcmp ord double %a, %b
383 %cmp1 = fcmp ogt double %a, %b
384 %retval = or i1 %cmp, %cmp1
388 define i1 @auto_gen_31(double %a, double %b) {
389 ; CHECK-LABEL: @auto_gen_31(
390 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
391 ; CHECK-NEXT: ret i1 [[TMP1]]
393 %cmp = fcmp ord double %a, %b
394 %cmp1 = fcmp oge double %a, %b
395 %retval = or i1 %cmp, %cmp1
399 define i1 @auto_gen_32(double %a, double %b) {
400 ; CHECK-LABEL: @auto_gen_32(
401 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
402 ; CHECK-NEXT: ret i1 [[TMP1]]
404 %cmp = fcmp ord double %a, %b
405 %cmp1 = fcmp olt double %a, %b
406 %retval = or i1 %cmp, %cmp1
410 define i1 @auto_gen_33(double %a, double %b) {
411 ; CHECK-LABEL: @auto_gen_33(
412 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
413 ; CHECK-NEXT: ret i1 [[TMP1]]
415 %cmp = fcmp ord double %a, %b
416 %cmp1 = fcmp ole double %a, %b
417 %retval = or i1 %cmp, %cmp1
421 define i1 @auto_gen_34(double %a, double %b) {
422 ; CHECK-LABEL: @auto_gen_34(
423 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
424 ; CHECK-NEXT: ret i1 [[TMP1]]
426 %cmp = fcmp ord double %a, %b
427 %cmp1 = fcmp one double %a, %b
428 %retval = or i1 %cmp, %cmp1
432 define i1 @auto_gen_35(double %a, double %b) {
433 ; CHECK-LABEL: @auto_gen_35(
434 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
435 ; CHECK-NEXT: ret i1 [[TMP1]]
437 %cmp = fcmp ord double %a, %b
438 %cmp1 = fcmp ord double %a, %b
439 %retval = or i1 %cmp, %cmp1
443 define i1 @auto_gen_36(double %a, double %b) {
444 ; CHECK-LABEL: @auto_gen_36(
445 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
446 ; CHECK-NEXT: ret i1 [[CMP]]
448 %cmp = fcmp ueq double %a, %b
449 %cmp1 = fcmp false double %a, %b
450 %retval = or i1 %cmp, %cmp1
454 define i1 @auto_gen_37(double %a, double %b) {
455 ; CHECK-LABEL: @auto_gen_37(
456 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
457 ; CHECK-NEXT: ret i1 [[TMP1]]
459 %cmp = fcmp ueq double %a, %b
460 %cmp1 = fcmp oeq double %a, %b
461 %retval = or i1 %cmp, %cmp1
465 define i1 @auto_gen_38(double %a, double %b) {
466 ; CHECK-LABEL: @auto_gen_38(
467 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
468 ; CHECK-NEXT: ret i1 [[TMP1]]
470 %cmp = fcmp ueq double %a, %b
471 %cmp1 = fcmp ogt double %a, %b
472 %retval = or i1 %cmp, %cmp1
476 define i1 @auto_gen_39(double %a, double %b) {
477 ; CHECK-LABEL: @auto_gen_39(
478 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
479 ; CHECK-NEXT: ret i1 [[TMP1]]
481 %cmp = fcmp ueq double %a, %b
482 %cmp1 = fcmp oge double %a, %b
483 %retval = or i1 %cmp, %cmp1
487 define i1 @auto_gen_40(double %a, double %b) {
488 ; CHECK-LABEL: @auto_gen_40(
489 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
490 ; CHECK-NEXT: ret i1 [[TMP1]]
492 %cmp = fcmp ueq double %a, %b
493 %cmp1 = fcmp olt double %a, %b
494 %retval = or i1 %cmp, %cmp1
498 define i1 @auto_gen_41(double %a, double %b) {
499 ; CHECK-LABEL: @auto_gen_41(
500 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
501 ; CHECK-NEXT: ret i1 [[TMP1]]
503 %cmp = fcmp ueq double %a, %b
504 %cmp1 = fcmp ole double %a, %b
505 %retval = or i1 %cmp, %cmp1
509 define i1 @auto_gen_42(double %a, double %b) {
510 ; CHECK-LABEL: @auto_gen_42(
511 ; CHECK-NEXT: ret i1 true
513 %cmp = fcmp ueq double %a, %b
514 %cmp1 = fcmp one double %a, %b
515 %retval = or i1 %cmp, %cmp1
519 define i1 @auto_gen_43(double %a, double %b) {
520 ; CHECK-LABEL: @auto_gen_43(
521 ; CHECK-NEXT: ret i1 true
523 %cmp = fcmp ueq double %a, %b
524 %cmp1 = fcmp ord double %a, %b
525 %retval = or i1 %cmp, %cmp1
529 define i1 @auto_gen_44(double %a, double %b) {
530 ; CHECK-LABEL: @auto_gen_44(
531 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
532 ; CHECK-NEXT: ret i1 [[TMP1]]
534 %cmp = fcmp ueq double %a, %b
535 %cmp1 = fcmp ueq double %a, %b
536 %retval = or i1 %cmp, %cmp1
540 define i1 @auto_gen_45(double %a, double %b) {
541 ; CHECK-LABEL: @auto_gen_45(
542 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
543 ; CHECK-NEXT: ret i1 [[CMP]]
545 %cmp = fcmp ugt double %a, %b
546 %cmp1 = fcmp false double %a, %b
547 %retval = or i1 %cmp, %cmp1
551 define i1 @auto_gen_46(double %a, double %b) {
552 ; CHECK-LABEL: @auto_gen_46(
553 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
554 ; CHECK-NEXT: ret i1 [[TMP1]]
556 %cmp = fcmp ugt double %a, %b
557 %cmp1 = fcmp oeq double %a, %b
558 %retval = or i1 %cmp, %cmp1
562 define i1 @auto_gen_47(double %a, double %b) {
563 ; CHECK-LABEL: @auto_gen_47(
564 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
565 ; CHECK-NEXT: ret i1 [[TMP1]]
567 %cmp = fcmp ugt double %a, %b
568 %cmp1 = fcmp ogt double %a, %b
569 %retval = or i1 %cmp, %cmp1
573 define i1 @auto_gen_48(double %a, double %b) {
574 ; CHECK-LABEL: @auto_gen_48(
575 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
576 ; CHECK-NEXT: ret i1 [[TMP1]]
578 %cmp = fcmp ugt double %a, %b
579 %cmp1 = fcmp oge double %a, %b
580 %retval = or i1 %cmp, %cmp1
584 define i1 @auto_gen_49(double %a, double %b) {
585 ; CHECK-LABEL: @auto_gen_49(
586 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
587 ; CHECK-NEXT: ret i1 [[TMP1]]
589 %cmp = fcmp ugt double %a, %b
590 %cmp1 = fcmp olt double %a, %b
591 %retval = or i1 %cmp, %cmp1
595 define i1 @auto_gen_50(double %a, double %b) {
596 ; CHECK-LABEL: @auto_gen_50(
597 ; CHECK-NEXT: ret i1 true
599 %cmp = fcmp ugt double %a, %b
600 %cmp1 = fcmp ole double %a, %b
601 %retval = or i1 %cmp, %cmp1
605 define i1 @auto_gen_51(double %a, double %b) {
606 ; CHECK-LABEL: @auto_gen_51(
607 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
608 ; CHECK-NEXT: ret i1 [[TMP1]]
610 %cmp = fcmp ugt double %a, %b
611 %cmp1 = fcmp one double %a, %b
612 %retval = or i1 %cmp, %cmp1
616 define i1 @auto_gen_52(double %a, double %b) {
617 ; CHECK-LABEL: @auto_gen_52(
618 ; CHECK-NEXT: ret i1 true
620 %cmp = fcmp ugt double %a, %b
621 %cmp1 = fcmp ord double %a, %b
622 %retval = or i1 %cmp, %cmp1
626 define i1 @auto_gen_53(double %a, double %b) {
627 ; CHECK-LABEL: @auto_gen_53(
628 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
629 ; CHECK-NEXT: ret i1 [[TMP1]]
631 %cmp = fcmp ugt double %a, %b
632 %cmp1 = fcmp ueq double %a, %b
633 %retval = or i1 %cmp, %cmp1
637 define i1 @auto_gen_54(double %a, double %b) {
638 ; CHECK-LABEL: @auto_gen_54(
639 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
640 ; CHECK-NEXT: ret i1 [[TMP1]]
642 %cmp = fcmp ugt double %a, %b
643 %cmp1 = fcmp ugt double %a, %b
644 %retval = or i1 %cmp, %cmp1
648 define i1 @auto_gen_55(double %a, double %b) {
649 ; CHECK-LABEL: @auto_gen_55(
650 ; CHECK-NEXT: [[CMP:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
651 ; CHECK-NEXT: ret i1 [[CMP]]
653 %cmp = fcmp uge double %a, %b
654 %cmp1 = fcmp false double %a, %b
655 %retval = or i1 %cmp, %cmp1
659 define i1 @auto_gen_56(double %a, double %b) {
660 ; CHECK-LABEL: @auto_gen_56(
661 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
662 ; CHECK-NEXT: ret i1 [[TMP1]]
664 %cmp = fcmp uge double %a, %b
665 %cmp1 = fcmp oeq double %a, %b
666 %retval = or i1 %cmp, %cmp1
670 define i1 @auto_gen_57(double %a, double %b) {
671 ; CHECK-LABEL: @auto_gen_57(
672 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
673 ; CHECK-NEXT: ret i1 [[TMP1]]
675 %cmp = fcmp uge double %a, %b
676 %cmp1 = fcmp ogt double %a, %b
677 %retval = or i1 %cmp, %cmp1
681 define i1 @auto_gen_58(double %a, double %b) {
682 ; CHECK-LABEL: @auto_gen_58(
683 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
684 ; CHECK-NEXT: ret i1 [[TMP1]]
686 %cmp = fcmp uge double %a, %b
687 %cmp1 = fcmp oge double %a, %b
688 %retval = or i1 %cmp, %cmp1
692 define i1 @auto_gen_59(double %a, double %b) {
693 ; CHECK-LABEL: @auto_gen_59(
694 ; CHECK-NEXT: ret i1 true
696 %cmp = fcmp uge double %a, %b
697 %cmp1 = fcmp olt double %a, %b
698 %retval = or i1 %cmp, %cmp1
702 define i1 @auto_gen_60(double %a, double %b) {
703 ; CHECK-LABEL: @auto_gen_60(
704 ; CHECK-NEXT: ret i1 true
706 %cmp = fcmp uge double %a, %b
707 %cmp1 = fcmp ole double %a, %b
708 %retval = or i1 %cmp, %cmp1
712 define i1 @auto_gen_61(double %a, double %b) {
713 ; CHECK-LABEL: @auto_gen_61(
714 ; CHECK-NEXT: ret i1 true
716 %cmp = fcmp uge double %a, %b
717 %cmp1 = fcmp one double %a, %b
718 %retval = or i1 %cmp, %cmp1
722 define i1 @auto_gen_62(double %a, double %b) {
723 ; CHECK-LABEL: @auto_gen_62(
724 ; CHECK-NEXT: ret i1 true
726 %cmp = fcmp uge double %a, %b
727 %cmp1 = fcmp ord double %a, %b
728 %retval = or i1 %cmp, %cmp1
732 define i1 @auto_gen_63(double %a, double %b) {
733 ; CHECK-LABEL: @auto_gen_63(
734 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
735 ; CHECK-NEXT: ret i1 [[TMP1]]
737 %cmp = fcmp uge double %a, %b
738 %cmp1 = fcmp ueq double %a, %b
739 %retval = or i1 %cmp, %cmp1
743 define i1 @auto_gen_64(double %a, double %b) {
744 ; CHECK-LABEL: @auto_gen_64(
745 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
746 ; CHECK-NEXT: ret i1 [[TMP1]]
748 %cmp = fcmp uge double %a, %b
749 %cmp1 = fcmp ugt double %a, %b
750 %retval = or i1 %cmp, %cmp1
754 define i1 @auto_gen_65(double %a, double %b) {
755 ; CHECK-LABEL: @auto_gen_65(
756 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
757 ; CHECK-NEXT: ret i1 [[TMP1]]
759 %cmp = fcmp uge double %a, %b
760 %cmp1 = fcmp uge double %a, %b
761 %retval = or i1 %cmp, %cmp1
765 define i1 @auto_gen_66(double %a, double %b) {
766 ; CHECK-LABEL: @auto_gen_66(
767 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
768 ; CHECK-NEXT: ret i1 [[CMP]]
770 %cmp = fcmp ult double %a, %b
771 %cmp1 = fcmp false double %a, %b
772 %retval = or i1 %cmp, %cmp1
776 define i1 @auto_gen_67(double %a, double %b) {
777 ; CHECK-LABEL: @auto_gen_67(
778 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
779 ; CHECK-NEXT: ret i1 [[TMP1]]
781 %cmp = fcmp ult double %a, %b
782 %cmp1 = fcmp oeq double %a, %b
783 %retval = or i1 %cmp, %cmp1
787 define i1 @auto_gen_68(double %a, double %b) {
788 ; CHECK-LABEL: @auto_gen_68(
789 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
790 ; CHECK-NEXT: ret i1 [[TMP1]]
792 %cmp = fcmp ult double %a, %b
793 %cmp1 = fcmp ogt double %a, %b
794 %retval = or i1 %cmp, %cmp1
798 define i1 @auto_gen_69(double %a, double %b) {
799 ; CHECK-LABEL: @auto_gen_69(
800 ; CHECK-NEXT: ret i1 true
802 %cmp = fcmp ult double %a, %b
803 %cmp1 = fcmp oge double %a, %b
804 %retval = or i1 %cmp, %cmp1
808 define i1 @auto_gen_70(double %a, double %b) {
809 ; CHECK-LABEL: @auto_gen_70(
810 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
811 ; CHECK-NEXT: ret i1 [[TMP1]]
813 %cmp = fcmp ult double %a, %b
814 %cmp1 = fcmp olt double %a, %b
815 %retval = or i1 %cmp, %cmp1
819 define i1 @auto_gen_71(double %a, double %b) {
820 ; CHECK-LABEL: @auto_gen_71(
821 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
822 ; CHECK-NEXT: ret i1 [[TMP1]]
824 %cmp = fcmp ult double %a, %b
825 %cmp1 = fcmp ole double %a, %b
826 %retval = or i1 %cmp, %cmp1
830 define i1 @auto_gen_72(double %a, double %b) {
831 ; CHECK-LABEL: @auto_gen_72(
832 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
833 ; CHECK-NEXT: ret i1 [[TMP1]]
835 %cmp = fcmp ult double %a, %b
836 %cmp1 = fcmp one double %a, %b
837 %retval = or i1 %cmp, %cmp1
841 define i1 @auto_gen_73(double %a, double %b) {
842 ; CHECK-LABEL: @auto_gen_73(
843 ; CHECK-NEXT: ret i1 true
845 %cmp = fcmp ult double %a, %b
846 %cmp1 = fcmp ord double %a, %b
847 %retval = or i1 %cmp, %cmp1
851 define i1 @auto_gen_74(double %a, double %b) {
852 ; CHECK-LABEL: @auto_gen_74(
853 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
854 ; CHECK-NEXT: ret i1 [[TMP1]]
856 %cmp = fcmp ult double %a, %b
857 %cmp1 = fcmp ueq double %a, %b
858 %retval = or i1 %cmp, %cmp1
862 define i1 @auto_gen_75(double %a, double %b) {
863 ; CHECK-LABEL: @auto_gen_75(
864 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
865 ; CHECK-NEXT: ret i1 [[TMP1]]
867 %cmp = fcmp ult double %a, %b
868 %cmp1 = fcmp ugt double %a, %b
869 %retval = or i1 %cmp, %cmp1
873 define i1 @auto_gen_76(double %a, double %b) {
874 ; CHECK-LABEL: @auto_gen_76(
875 ; CHECK-NEXT: ret i1 true
877 %cmp = fcmp ult double %a, %b
878 %cmp1 = fcmp uge double %a, %b
879 %retval = or i1 %cmp, %cmp1
883 define i1 @auto_gen_77(double %a, double %b) {
884 ; CHECK-LABEL: @auto_gen_77(
885 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
886 ; CHECK-NEXT: ret i1 [[TMP1]]
888 %cmp = fcmp ult double %a, %b
889 %cmp1 = fcmp ult double %a, %b
890 %retval = or i1 %cmp, %cmp1
894 define i1 @auto_gen_78(double %a, double %b) {
895 ; CHECK-LABEL: @auto_gen_78(
896 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
897 ; CHECK-NEXT: ret i1 [[CMP]]
899 %cmp = fcmp ule double %a, %b
900 %cmp1 = fcmp false double %a, %b
901 %retval = or i1 %cmp, %cmp1
905 define i1 @auto_gen_79(double %a, double %b) {
906 ; CHECK-LABEL: @auto_gen_79(
907 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
908 ; CHECK-NEXT: ret i1 [[TMP1]]
910 %cmp = fcmp ule double %a, %b
911 %cmp1 = fcmp oeq double %a, %b
912 %retval = or i1 %cmp, %cmp1
916 define i1 @auto_gen_80(double %a, double %b) {
917 ; CHECK-LABEL: @auto_gen_80(
918 ; CHECK-NEXT: ret i1 true
920 %cmp = fcmp ule double %a, %b
921 %cmp1 = fcmp ogt double %a, %b
922 %retval = or i1 %cmp, %cmp1
926 define i1 @auto_gen_81(double %a, double %b) {
927 ; CHECK-LABEL: @auto_gen_81(
928 ; CHECK-NEXT: ret i1 true
930 %cmp = fcmp ule double %a, %b
931 %cmp1 = fcmp oge double %a, %b
932 %retval = or i1 %cmp, %cmp1
936 define i1 @auto_gen_82(double %a, double %b) {
937 ; CHECK-LABEL: @auto_gen_82(
938 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
939 ; CHECK-NEXT: ret i1 [[TMP1]]
941 %cmp = fcmp ule double %a, %b
942 %cmp1 = fcmp olt double %a, %b
943 %retval = or i1 %cmp, %cmp1
947 define i1 @auto_gen_83(double %a, double %b) {
948 ; CHECK-LABEL: @auto_gen_83(
949 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
950 ; CHECK-NEXT: ret i1 [[TMP1]]
952 %cmp = fcmp ule double %a, %b
953 %cmp1 = fcmp ole double %a, %b
954 %retval = or i1 %cmp, %cmp1
958 define i1 @auto_gen_84(double %a, double %b) {
959 ; CHECK-LABEL: @auto_gen_84(
960 ; CHECK-NEXT: ret i1 true
962 %cmp = fcmp ule double %a, %b
963 %cmp1 = fcmp one double %a, %b
964 %retval = or i1 %cmp, %cmp1
968 define i1 @auto_gen_85(double %a, double %b) {
969 ; CHECK-LABEL: @auto_gen_85(
970 ; CHECK-NEXT: ret i1 true
972 %cmp = fcmp ule double %a, %b
973 %cmp1 = fcmp ord double %a, %b
974 %retval = or i1 %cmp, %cmp1
978 define i1 @auto_gen_86(double %a, double %b) {
979 ; CHECK-LABEL: @auto_gen_86(
980 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
981 ; CHECK-NEXT: ret i1 [[TMP1]]
983 %cmp = fcmp ule double %a, %b
984 %cmp1 = fcmp ueq double %a, %b
985 %retval = or i1 %cmp, %cmp1
989 define i1 @auto_gen_87(double %a, double %b) {
990 ; CHECK-LABEL: @auto_gen_87(
991 ; CHECK-NEXT: ret i1 true
993 %cmp = fcmp ule double %a, %b
994 %cmp1 = fcmp ugt double %a, %b
995 %retval = or i1 %cmp, %cmp1
999 define i1 @auto_gen_88(double %a, double %b) {
1000 ; CHECK-LABEL: @auto_gen_88(
1001 ; CHECK-NEXT: ret i1 true
1003 %cmp = fcmp ule double %a, %b
1004 %cmp1 = fcmp uge double %a, %b
1005 %retval = or i1 %cmp, %cmp1
1009 define i1 @auto_gen_89(double %a, double %b) {
1010 ; CHECK-LABEL: @auto_gen_89(
1011 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
1012 ; CHECK-NEXT: ret i1 [[TMP1]]
1014 %cmp = fcmp ule double %a, %b
1015 %cmp1 = fcmp ult double %a, %b
1016 %retval = or i1 %cmp, %cmp1
1020 define i1 @auto_gen_90(double %a, double %b) {
1021 ; CHECK-LABEL: @auto_gen_90(
1022 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
1023 ; CHECK-NEXT: ret i1 [[TMP1]]
1025 %cmp = fcmp ule double %a, %b
1026 %cmp1 = fcmp ule double %a, %b
1027 %retval = or i1 %cmp, %cmp1
1031 define i1 @auto_gen_91(double %a, double %b) {
1032 ; CHECK-LABEL: @auto_gen_91(
1033 ; CHECK-NEXT: [[CMP:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
1034 ; CHECK-NEXT: ret i1 [[CMP]]
1036 %cmp = fcmp une double %a, %b
1037 %cmp1 = fcmp false double %a, %b
1038 %retval = or i1 %cmp, %cmp1
1042 define i1 @auto_gen_92(double %a, double %b) {
1043 ; CHECK-LABEL: @auto_gen_92(
1044 ; CHECK-NEXT: ret i1 true
1046 %cmp = fcmp une double %a, %b
1047 %cmp1 = fcmp oeq double %a, %b
1048 %retval = or i1 %cmp, %cmp1
1052 define i1 @auto_gen_93(double %a, double %b) {
1053 ; CHECK-LABEL: @auto_gen_93(
1054 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
1055 ; CHECK-NEXT: ret i1 [[TMP1]]
1057 %cmp = fcmp une double %a, %b
1058 %cmp1 = fcmp ogt double %a, %b
1059 %retval = or i1 %cmp, %cmp1
1063 define i1 @auto_gen_94(double %a, double %b) {
1064 ; CHECK-LABEL: @auto_gen_94(
1065 ; CHECK-NEXT: ret i1 true
1067 %cmp = fcmp une double %a, %b
1068 %cmp1 = fcmp oge double %a, %b
1069 %retval = or i1 %cmp, %cmp1
1073 define i1 @auto_gen_95(double %a, double %b) {
1074 ; CHECK-LABEL: @auto_gen_95(
1075 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
1076 ; CHECK-NEXT: ret i1 [[TMP1]]
1078 %cmp = fcmp une double %a, %b
1079 %cmp1 = fcmp olt double %a, %b
1080 %retval = or i1 %cmp, %cmp1
1084 define i1 @auto_gen_96(double %a, double %b) {
1085 ; CHECK-LABEL: @auto_gen_96(
1086 ; CHECK-NEXT: ret i1 true
1088 %cmp = fcmp une double %a, %b
1089 %cmp1 = fcmp ole double %a, %b
1090 %retval = or i1 %cmp, %cmp1
1094 define i1 @auto_gen_97(double %a, double %b) {
1095 ; CHECK-LABEL: @auto_gen_97(
1096 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
1097 ; CHECK-NEXT: ret i1 [[TMP1]]
1099 %cmp = fcmp une double %a, %b
1100 %cmp1 = fcmp one double %a, %b
1101 %retval = or i1 %cmp, %cmp1
1105 define i1 @auto_gen_98(double %a, double %b) {
1106 ; CHECK-LABEL: @auto_gen_98(
1107 ; CHECK-NEXT: ret i1 true
1109 %cmp = fcmp une double %a, %b
1110 %cmp1 = fcmp ord double %a, %b
1111 %retval = or i1 %cmp, %cmp1
1115 define i1 @auto_gen_99(double %a, double %b) {
1116 ; CHECK-LABEL: @auto_gen_99(
1117 ; CHECK-NEXT: ret i1 true
1119 %cmp = fcmp une double %a, %b
1120 %cmp1 = fcmp ueq double %a, %b
1121 %retval = or i1 %cmp, %cmp1
1125 define i1 @auto_gen_100(double %a, double %b) {
1126 ; CHECK-LABEL: @auto_gen_100(
1127 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
1128 ; CHECK-NEXT: ret i1 [[TMP1]]
1130 %cmp = fcmp une double %a, %b
1131 %cmp1 = fcmp ugt double %a, %b
1132 %retval = or i1 %cmp, %cmp1
1136 define i1 @auto_gen_101(double %a, double %b) {
1137 ; CHECK-LABEL: @auto_gen_101(
1138 ; CHECK-NEXT: ret i1 true
1140 %cmp = fcmp une double %a, %b
1141 %cmp1 = fcmp uge double %a, %b
1142 %retval = or i1 %cmp, %cmp1
1146 define i1 @auto_gen_102(double %a, double %b) {
1147 ; CHECK-LABEL: @auto_gen_102(
1148 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
1149 ; CHECK-NEXT: ret i1 [[TMP1]]
1151 %cmp = fcmp une double %a, %b
1152 %cmp1 = fcmp ult double %a, %b
1153 %retval = or i1 %cmp, %cmp1
1157 define i1 @auto_gen_103(double %a, double %b) {
1158 ; CHECK-LABEL: @auto_gen_103(
1159 ; CHECK-NEXT: ret i1 true
1161 %cmp = fcmp une double %a, %b
1162 %cmp1 = fcmp ule double %a, %b
1163 %retval = or i1 %cmp, %cmp1
1167 define i1 @auto_gen_104(double %a, double %b) {
1168 ; CHECK-LABEL: @auto_gen_104(
1169 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
1170 ; CHECK-NEXT: ret i1 [[TMP1]]
1172 %cmp = fcmp une double %a, %b
1173 %cmp1 = fcmp une double %a, %b
1174 %retval = or i1 %cmp, %cmp1
1178 define i1 @auto_gen_105(double %a, double %b) {
1179 ; CHECK-LABEL: @auto_gen_105(
1180 ; CHECK-NEXT: [[CMP:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
1181 ; CHECK-NEXT: ret i1 [[CMP]]
1183 %cmp = fcmp uno double %a, %b
1184 %cmp1 = fcmp false double %a, %b
1185 %retval = or i1 %cmp, %cmp1
1189 define i1 @auto_gen_106(double %a, double %b) {
1190 ; CHECK-LABEL: @auto_gen_106(
1191 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
1192 ; CHECK-NEXT: ret i1 [[TMP1]]
1194 %cmp = fcmp uno double %a, %b
1195 %cmp1 = fcmp oeq double %a, %b
1196 %retval = or i1 %cmp, %cmp1
1200 define i1 @auto_gen_107(double %a, double %b) {
1201 ; CHECK-LABEL: @auto_gen_107(
1202 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
1203 ; CHECK-NEXT: ret i1 [[TMP1]]
1205 %cmp = fcmp uno double %a, %b
1206 %cmp1 = fcmp ogt double %a, %b
1207 %retval = or i1 %cmp, %cmp1
1211 define i1 @auto_gen_108(double %a, double %b) {
1212 ; CHECK-LABEL: @auto_gen_108(
1213 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
1214 ; CHECK-NEXT: ret i1 [[TMP1]]
1216 %cmp = fcmp uno double %a, %b
1217 %cmp1 = fcmp oge double %a, %b
1218 %retval = or i1 %cmp, %cmp1
1222 define i1 @auto_gen_109(double %a, double %b) {
1223 ; CHECK-LABEL: @auto_gen_109(
1224 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
1225 ; CHECK-NEXT: ret i1 [[TMP1]]
1227 %cmp = fcmp uno double %a, %b
1228 %cmp1 = fcmp olt double %a, %b
1229 %retval = or i1 %cmp, %cmp1
1233 define i1 @auto_gen_110(double %a, double %b) {
1234 ; CHECK-LABEL: @auto_gen_110(
1235 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
1236 ; CHECK-NEXT: ret i1 [[TMP1]]
1238 %cmp = fcmp uno double %a, %b
1239 %cmp1 = fcmp ole double %a, %b
1240 %retval = or i1 %cmp, %cmp1
1244 define i1 @auto_gen_111(double %a, double %b) {
1245 ; CHECK-LABEL: @auto_gen_111(
1246 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
1247 ; CHECK-NEXT: ret i1 [[TMP1]]
1249 %cmp = fcmp uno double %a, %b
1250 %cmp1 = fcmp one double %a, %b
1251 %retval = or i1 %cmp, %cmp1
1255 define i1 @auto_gen_112(double %a, double %b) {
1256 ; CHECK-LABEL: @auto_gen_112(
1257 ; CHECK-NEXT: ret i1 true
1259 %cmp = fcmp uno double %a, %b
1260 %cmp1 = fcmp ord double %a, %b
1261 %retval = or i1 %cmp, %cmp1
1265 define i1 @auto_gen_113(double %a, double %b) {
1266 ; CHECK-LABEL: @auto_gen_113(
1267 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
1268 ; CHECK-NEXT: ret i1 [[TMP1]]
1270 %cmp = fcmp uno double %a, %b
1271 %cmp1 = fcmp ueq double %a, %b
1272 %retval = or i1 %cmp, %cmp1
1276 define i1 @auto_gen_114(double %a, double %b) {
1277 ; CHECK-LABEL: @auto_gen_114(
1278 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
1279 ; CHECK-NEXT: ret i1 [[TMP1]]
1281 %cmp = fcmp uno double %a, %b
1282 %cmp1 = fcmp ugt double %a, %b
1283 %retval = or i1 %cmp, %cmp1
1287 define i1 @auto_gen_115(double %a, double %b) {
1288 ; CHECK-LABEL: @auto_gen_115(
1289 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
1290 ; CHECK-NEXT: ret i1 [[TMP1]]
1292 %cmp = fcmp uno double %a, %b
1293 %cmp1 = fcmp uge double %a, %b
1294 %retval = or i1 %cmp, %cmp1
1298 define i1 @auto_gen_116(double %a, double %b) {
1299 ; CHECK-LABEL: @auto_gen_116(
1300 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
1301 ; CHECK-NEXT: ret i1 [[TMP1]]
1303 %cmp = fcmp uno double %a, %b
1304 %cmp1 = fcmp ult double %a, %b
1305 %retval = or i1 %cmp, %cmp1
1309 define i1 @auto_gen_117(double %a, double %b) {
1310 ; CHECK-LABEL: @auto_gen_117(
1311 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
1312 ; CHECK-NEXT: ret i1 [[TMP1]]
1314 %cmp = fcmp uno double %a, %b
1315 %cmp1 = fcmp ule double %a, %b
1316 %retval = or i1 %cmp, %cmp1
1320 define i1 @auto_gen_118(double %a, double %b) {
1321 ; CHECK-LABEL: @auto_gen_118(
1322 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
1323 ; CHECK-NEXT: ret i1 [[TMP1]]
1325 %cmp = fcmp uno double %a, %b
1326 %cmp1 = fcmp une double %a, %b
1327 %retval = or i1 %cmp, %cmp1
1331 define i1 @auto_gen_119(double %a, double %b) {
1332 ; CHECK-LABEL: @auto_gen_119(
1333 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
1334 ; CHECK-NEXT: ret i1 [[TMP1]]
1336 %cmp = fcmp uno double %a, %b
1337 %cmp1 = fcmp uno double %a, %b
1338 %retval = or i1 %cmp, %cmp1
1342 define i1 @auto_gen_120(double %a, double %b) {
1343 ; CHECK-LABEL: @auto_gen_120(
1344 ; CHECK-NEXT: ret i1 true
1346 %cmp = fcmp true double %a, %b
1347 %cmp1 = fcmp false double %a, %b
1348 %retval = or i1 %cmp, %cmp1
1352 define i1 @auto_gen_121(double %a, double %b) {
1353 ; CHECK-LABEL: @auto_gen_121(
1354 ; CHECK-NEXT: ret i1 true
1356 %cmp = fcmp true double %a, %b
1357 %cmp1 = fcmp oeq double %a, %b
1358 %retval = or i1 %cmp, %cmp1
1362 define i1 @auto_gen_122(double %a, double %b) {
1363 ; CHECK-LABEL: @auto_gen_122(
1364 ; CHECK-NEXT: ret i1 true
1366 %cmp = fcmp true double %a, %b
1367 %cmp1 = fcmp ogt double %a, %b
1368 %retval = or i1 %cmp, %cmp1
1372 define i1 @auto_gen_123(double %a, double %b) {
1373 ; CHECK-LABEL: @auto_gen_123(
1374 ; CHECK-NEXT: ret i1 true
1376 %cmp = fcmp true double %a, %b
1377 %cmp1 = fcmp oge double %a, %b
1378 %retval = or i1 %cmp, %cmp1
1382 define i1 @auto_gen_124(double %a, double %b) {
1383 ; CHECK-LABEL: @auto_gen_124(
1384 ; CHECK-NEXT: ret i1 true
1386 %cmp = fcmp true double %a, %b
1387 %cmp1 = fcmp olt double %a, %b
1388 %retval = or i1 %cmp, %cmp1
1392 define i1 @auto_gen_125(double %a, double %b) {
1393 ; CHECK-LABEL: @auto_gen_125(
1394 ; CHECK-NEXT: ret i1 true
1396 %cmp = fcmp true double %a, %b
1397 %cmp1 = fcmp ole double %a, %b
1398 %retval = or i1 %cmp, %cmp1
1402 define i1 @auto_gen_126(double %a, double %b) {
1403 ; CHECK-LABEL: @auto_gen_126(
1404 ; CHECK-NEXT: ret i1 true
1406 %cmp = fcmp true double %a, %b
1407 %cmp1 = fcmp one double %a, %b
1408 %retval = or i1 %cmp, %cmp1
1412 define i1 @auto_gen_127(double %a, double %b) {
1413 ; CHECK-LABEL: @auto_gen_127(
1414 ; CHECK-NEXT: ret i1 true
1416 %cmp = fcmp true double %a, %b
1417 %cmp1 = fcmp ord double %a, %b
1418 %retval = or i1 %cmp, %cmp1
1422 define i1 @auto_gen_128(double %a, double %b) {
1423 ; CHECK-LABEL: @auto_gen_128(
1424 ; CHECK-NEXT: ret i1 true
1426 %cmp = fcmp true double %a, %b
1427 %cmp1 = fcmp ueq double %a, %b
1428 %retval = or i1 %cmp, %cmp1
1432 define i1 @auto_gen_129(double %a, double %b) {
1433 ; CHECK-LABEL: @auto_gen_129(
1434 ; CHECK-NEXT: ret i1 true
1436 %cmp = fcmp true double %a, %b
1437 %cmp1 = fcmp ugt double %a, %b
1438 %retval = or i1 %cmp, %cmp1
1442 define i1 @auto_gen_130(double %a, double %b) {
1443 ; CHECK-LABEL: @auto_gen_130(
1444 ; CHECK-NEXT: ret i1 true
1446 %cmp = fcmp true double %a, %b
1447 %cmp1 = fcmp uge double %a, %b
1448 %retval = or i1 %cmp, %cmp1
1452 define i1 @auto_gen_131(double %a, double %b) {
1453 ; CHECK-LABEL: @auto_gen_131(
1454 ; CHECK-NEXT: ret i1 true
1456 %cmp = fcmp true double %a, %b
1457 %cmp1 = fcmp ult double %a, %b
1458 %retval = or i1 %cmp, %cmp1
1462 define i1 @auto_gen_132(double %a, double %b) {
1463 ; CHECK-LABEL: @auto_gen_132(
1464 ; CHECK-NEXT: ret i1 true
1466 %cmp = fcmp true double %a, %b
1467 %cmp1 = fcmp ule double %a, %b
1468 %retval = or i1 %cmp, %cmp1
1472 define i1 @auto_gen_133(double %a, double %b) {
1473 ; CHECK-LABEL: @auto_gen_133(
1474 ; CHECK-NEXT: ret i1 true
1476 %cmp = fcmp true double %a, %b
1477 %cmp1 = fcmp une double %a, %b
1478 %retval = or i1 %cmp, %cmp1
1482 define i1 @auto_gen_134(double %a, double %b) {
1483 ; CHECK-LABEL: @auto_gen_134(
1484 ; CHECK-NEXT: ret i1 true
1486 %cmp = fcmp true double %a, %b
1487 %cmp1 = fcmp uno double %a, %b
1488 %retval = or i1 %cmp, %cmp1
1492 define i1 @auto_gen_135(double %a, double %b) {
1493 ; CHECK-LABEL: @auto_gen_135(
1494 ; CHECK-NEXT: ret i1 true
1496 %cmp = fcmp true double %a, %b
1497 %cmp1 = fcmp true double %a, %b
1498 %retval = or i1 %cmp, %cmp1