Revert r354244 "[DAGCombiner] Eliminate dead stores to stack."
[llvm-complete.git] / test / Transforms / InstCombine / or-fcmp.ll
blobfd467187c21d2bcec513aa907bd71fa0a0814af9
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
12   ret i1 %or
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
23   ret <2 x i1> %or
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
34   ret i1 %or
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
45   ret <3 x i1> %or
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
55   ret i1 %retval
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
66   ret i1 %retval
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
77   ret i1 %retval
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
88   ret i1 %retval
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
99   ret i1 %retval
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
110   ret i1 %retval
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
121   ret i1 %retval
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
132   ret i1 %retval
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
143   ret i1 %retval
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
154   ret i1 %retval
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
165   ret i1 %retval
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
176   ret i1 %retval
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
187   ret i1 %retval
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
198   ret i1 %retval
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
209   ret i1 %retval
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
220   ret i1 %retval
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
231   ret i1 %retval
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
242   ret i1 %retval
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
253   ret i1 %retval
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
264   ret i1 %retval
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
275   ret i1 %retval
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
286   ret i1 %retval
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
297   ret i1 %retval
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
308   ret i1 %retval
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
319   ret i1 %retval
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
330   ret i1 %retval
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
341   ret i1 %retval
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
352   ret i1 %retval
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
363   ret i1 %retval
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
374   ret i1 %retval
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
385   ret i1 %retval
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
396   ret i1 %retval
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
407   ret i1 %retval
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
418   ret i1 %retval
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
429   ret i1 %retval
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
440   ret i1 %retval
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
451   ret i1 %retval
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
462   ret i1 %retval
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
473   ret i1 %retval
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
484   ret i1 %retval
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
495   ret i1 %retval
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
506   ret i1 %retval
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
516   ret i1 %retval
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
526   ret i1 %retval
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
537   ret i1 %retval
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
548   ret i1 %retval
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
559   ret i1 %retval
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
570   ret i1 %retval
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
581   ret i1 %retval
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
592   ret i1 %retval
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
602   ret i1 %retval
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
613   ret i1 %retval
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
623   ret i1 %retval
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
634   ret i1 %retval
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
645   ret i1 %retval
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
656   ret i1 %retval
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
667   ret i1 %retval
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
678   ret i1 %retval
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
689   ret i1 %retval
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
699   ret i1 %retval
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
709   ret i1 %retval
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
719   ret i1 %retval
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
729   ret i1 %retval
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
740   ret i1 %retval
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
751   ret i1 %retval
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
762   ret i1 %retval
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
773   ret i1 %retval
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
784   ret i1 %retval
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
795   ret i1 %retval
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
805   ret i1 %retval
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
816   ret i1 %retval
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
827   ret i1 %retval
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
838   ret i1 %retval
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
848   ret i1 %retval
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
859   ret i1 %retval
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
870   ret i1 %retval
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
880   ret i1 %retval
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
891   ret i1 %retval
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
902   ret i1 %retval
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
913   ret i1 %retval
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
923   ret i1 %retval
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
933   ret i1 %retval
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
944   ret i1 %retval
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
955   ret i1 %retval
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
965   ret i1 %retval
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
975   ret i1 %retval
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
986   ret i1 %retval
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
996   ret i1 %retval
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
1006   ret i1 %retval
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
1017   ret i1 %retval
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
1028   ret i1 %retval
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
1039   ret i1 %retval
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
1049   ret i1 %retval
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
1060   ret i1 %retval
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
1070   ret i1 %retval
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
1081   ret i1 %retval
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
1091   ret i1 %retval
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
1102   ret i1 %retval
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
1112   ret i1 %retval
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
1122   ret i1 %retval
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
1133   ret i1 %retval
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
1143   ret i1 %retval
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
1154   ret i1 %retval
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
1164   ret i1 %retval
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
1175   ret i1 %retval
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
1186   ret i1 %retval
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
1197   ret i1 %retval
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
1208   ret i1 %retval
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
1219   ret i1 %retval
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
1230   ret i1 %retval
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
1241   ret i1 %retval
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
1252   ret i1 %retval
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
1262   ret i1 %retval
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
1273   ret i1 %retval
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
1284   ret i1 %retval
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
1295   ret i1 %retval
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
1306   ret i1 %retval
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
1317   ret i1 %retval
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
1328   ret i1 %retval
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
1339   ret i1 %retval
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
1349   ret i1 %retval
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
1359   ret i1 %retval
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
1369   ret i1 %retval
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
1379   ret i1 %retval
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
1389   ret i1 %retval
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
1399   ret i1 %retval
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
1409   ret i1 %retval
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
1419   ret i1 %retval
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
1429   ret i1 %retval
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
1439   ret i1 %retval
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
1449   ret i1 %retval
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
1459   ret i1 %retval
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
1469   ret i1 %retval
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
1479   ret i1 %retval
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
1489   ret i1 %retval
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
1499   ret i1 %retval