[sanitizer] Improve FreeBSD ASLR detection
[llvm-project.git] / llvm / test / Transforms / InstCombine / or-fcmp.ll
blobd1017c89f69d6d453841f771584081f8bfc6676d
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 ; TODO: this can be fixed by freezing %y
16 define i1 @PR1738_logical(double %x, double %y) {
17 ; CHECK-LABEL: @PR1738_logical(
18 ; CHECK-NEXT:    [[CMP1:%.*]] = fcmp uno double [[X:%.*]], 0.000000e+00
19 ; CHECK-NEXT:    [[CMP2:%.*]] = fcmp uno double [[Y:%.*]], 0.000000e+00
20 ; CHECK-NEXT:    [[OR:%.*]] = select i1 [[CMP1]], i1 true, i1 [[CMP2]]
21 ; CHECK-NEXT:    ret i1 [[OR]]
23   %cmp1 = fcmp uno double %x, 0.0
24   %cmp2 = fcmp uno double %y, 0.0
25   %or = select i1 %cmp1, i1 true, i1 %cmp2
26   ret i1 %or
29 define <2 x i1> @PR1738_vec_undef(<2 x double> %x, <2 x double> %y) {
30 ; CHECK-LABEL: @PR1738_vec_undef(
31 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uno <2 x double> [[X:%.*]], [[Y:%.*]]
32 ; CHECK-NEXT:    ret <2 x i1> [[TMP1]]
34   %cmp1 = fcmp uno <2 x double> %x, <double 0.0, double undef>
35   %cmp2 = fcmp uno <2 x double> %y, <double undef, double 0.0>
36   %or = or <2 x i1> %cmp1, %cmp2
37   ret <2 x i1> %or
40 define i1 @PR41069(double %a, double %b, double %c, double %d) {
41 ; CHECK-LABEL: @PR41069(
42 ; CHECK-NEXT:    [[UNO1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
43 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uno double [[D:%.*]], [[C:%.*]]
44 ; CHECK-NEXT:    [[R:%.*]] = or i1 [[TMP1]], [[UNO1]]
45 ; CHECK-NEXT:    ret i1 [[R]]
47   %uno1 = fcmp uno double %a, %b
48   %uno2 = fcmp uno double %c, 0.0
49   %or = or i1 %uno1, %uno2
50   %uno3 = fcmp uno double %d, 0.0
51   %r = or i1 %or, %uno3
52   ret i1 %r
55 ; TODO: this can be fixed by freezing %c and %d
56 define i1 @PR41069_logical(double %a, double %b, double %c, double %d) {
57 ; CHECK-LABEL: @PR41069_logical(
58 ; CHECK-NEXT:    [[UNO1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
59 ; CHECK-NEXT:    [[UNO2:%.*]] = fcmp uno double [[C:%.*]], 0.000000e+00
60 ; CHECK-NEXT:    [[OR:%.*]] = select i1 [[UNO1]], i1 true, i1 [[UNO2]]
61 ; CHECK-NEXT:    [[UNO3:%.*]] = fcmp uno double [[D:%.*]], 0.000000e+00
62 ; CHECK-NEXT:    [[R:%.*]] = select i1 [[OR]], i1 true, i1 [[UNO3]]
63 ; CHECK-NEXT:    ret i1 [[R]]
65   %uno1 = fcmp uno double %a, %b
66   %uno2 = fcmp uno double %c, 0.0
67   %or = select i1 %uno1, i1 true, i1 %uno2
68   %uno3 = fcmp uno double %d, 0.0
69   %r = select i1 %or, i1 true, i1 %uno3
70   ret i1 %r
73 define i1 @PR41069_commute(double %a, double %b, double %c, double %d) {
74 ; CHECK-LABEL: @PR41069_commute(
75 ; CHECK-NEXT:    [[UNO1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
76 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uno double [[D:%.*]], [[C:%.*]]
77 ; CHECK-NEXT:    [[R:%.*]] = or i1 [[TMP1]], [[UNO1]]
78 ; CHECK-NEXT:    ret i1 [[R]]
80   %uno1 = fcmp uno double %a, %b
81   %uno2 = fcmp uno double %c, 0.0
82   %or = or i1 %uno1, %uno2
83   %uno3 = fcmp uno double %d, 0.0
84   %r = or i1 %uno3, %or
85   ret i1 %r
88 ; TODO: this can be fixed by freezing %c and %d
89 define i1 @PR41069_commute_logical(double %a, double %b, double %c, double %d) {
90 ; CHECK-LABEL: @PR41069_commute_logical(
91 ; CHECK-NEXT:    [[UNO1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
92 ; CHECK-NEXT:    [[UNO2:%.*]] = fcmp uno double [[C:%.*]], 0.000000e+00
93 ; CHECK-NEXT:    [[UNO3:%.*]] = fcmp uno double [[D:%.*]], 0.000000e+00
94 ; CHECK-NEXT:    [[TMP1:%.*]] = select i1 [[UNO3]], i1 true, i1 [[UNO1]]
95 ; CHECK-NEXT:    [[R:%.*]] = select i1 [[TMP1]], i1 true, i1 [[UNO2]]
96 ; CHECK-NEXT:    ret i1 [[R]]
98   %uno1 = fcmp uno double %a, %b
99   %uno2 = fcmp uno double %c, 0.0
100   %or = select i1 %uno1, i1 true, i1 %uno2
101   %uno3 = fcmp uno double %d, 0.0
102   %r = select i1 %uno3, i1 true, i1 %or
103   ret i1 %r
106 define <2 x i1> @PR41069_vec(<2 x i1> %z, <2 x float> %c, <2 x float> %d) {
107 ; CHECK-LABEL: @PR41069_vec(
108 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uno <2 x float> [[D:%.*]], [[C:%.*]]
109 ; CHECK-NEXT:    [[R:%.*]] = or <2 x i1> [[TMP1]], [[Z:%.*]]
110 ; CHECK-NEXT:    ret <2 x i1> [[R]]
112   %uno1 = fcmp uno <2 x float> %c, zeroinitializer
113   %or = or <2 x i1> %uno1, %z
114   %uno2 = fcmp uno <2 x float> %d, <float 0.0, float undef>
115   %r = or <2 x i1> %or, %uno2
116   ret <2 x i1> %r
119 define <2 x i1> @PR41069_vec_commute(<2 x i1> %z, <2 x float> %c, <2 x float> %d) {
120 ; CHECK-LABEL: @PR41069_vec_commute(
121 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uno <2 x float> [[D:%.*]], [[C:%.*]]
122 ; CHECK-NEXT:    [[R:%.*]] = or <2 x i1> [[TMP1]], [[Z:%.*]]
123 ; CHECK-NEXT:    ret <2 x i1> [[R]]
125   %uno1 = fcmp uno <2 x float> %c, zeroinitializer
126   %or = or <2 x i1> %uno1, %z
127   %uno2 = fcmp uno <2 x float> %d, <float 0.0, float undef>
128   %r = or <2 x i1> %uno2, %or
129   ret <2 x i1> %r
132 define i1 @fcmp_uno_nonzero(float %x, float %y) {
133 ; CHECK-LABEL: @fcmp_uno_nonzero(
134 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uno float [[X:%.*]], [[Y:%.*]]
135 ; CHECK-NEXT:    ret i1 [[TMP1]]
137   %cmp1 = fcmp uno float %x, 1.0
138   %cmp2 = fcmp uno float %y, 2.0
139   %or = or i1 %cmp1, %cmp2
140   ret i1 %or
143 ; TODO: this can be fixed by freezing %y
144 define i1 @fcmp_uno_nonzero_logical(float %x, float %y) {
145 ; CHECK-LABEL: @fcmp_uno_nonzero_logical(
146 ; CHECK-NEXT:    [[CMP1:%.*]] = fcmp uno float [[X:%.*]], 0.000000e+00
147 ; CHECK-NEXT:    [[CMP2:%.*]] = fcmp uno float [[Y:%.*]], 0.000000e+00
148 ; CHECK-NEXT:    [[OR:%.*]] = select i1 [[CMP1]], i1 true, i1 [[CMP2]]
149 ; CHECK-NEXT:    ret i1 [[OR]]
151   %cmp1 = fcmp uno float %x, 1.0
152   %cmp2 = fcmp uno float %y, 2.0
153   %or = select i1 %cmp1, i1 true, i1 %cmp2
154   ret i1 %or
157 define <3 x i1> @fcmp_uno_nonzero_vec(<3 x float> %x, <3 x float> %y) {
158 ; CHECK-LABEL: @fcmp_uno_nonzero_vec(
159 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uno <3 x float> [[X:%.*]], [[Y:%.*]]
160 ; CHECK-NEXT:    ret <3 x i1> [[TMP1]]
162   %cmp1 = fcmp uno <3 x float> %x, <float 1.0, float 2.0, float 3.0>
163   %cmp2 = fcmp uno <3 x float> %y, <float 3.0, float 2.0, float 1.0>
164   %or = or <3 x i1> %cmp1, %cmp2
165   ret <3 x i1> %or
168 define i1 @auto_gen_0(double %a, double %b) {
169 ; CHECK-LABEL: @auto_gen_0(
170 ; CHECK-NEXT:    ret i1 false
172   %cmp = fcmp false double %a, %b
173   %cmp1 = fcmp false double %a, %b
174   %retval = or i1 %cmp, %cmp1
175   ret i1 %retval
178 define i1 @auto_gen_0_logical(double %a, double %b) {
179 ; CHECK-LABEL: @auto_gen_0_logical(
180 ; CHECK-NEXT:    ret i1 false
182   %cmp = fcmp false double %a, %b
183   %cmp1 = fcmp false double %a, %b
184   %retval = select i1 %cmp, i1 true, i1 %cmp1
185   ret i1 %retval
188 define i1 @auto_gen_1(double %a, double %b) {
189 ; CHECK-LABEL: @auto_gen_1(
190 ; CHECK-NEXT:    [[CMP:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
191 ; CHECK-NEXT:    ret i1 [[CMP]]
193   %cmp = fcmp oeq double %a, %b
194   %cmp1 = fcmp false double %a, %b
195   %retval = or i1 %cmp, %cmp1
196   ret i1 %retval
199 define i1 @auto_gen_1_logical(double %a, double %b) {
200 ; CHECK-LABEL: @auto_gen_1_logical(
201 ; CHECK-NEXT:    [[CMP:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
202 ; CHECK-NEXT:    ret i1 [[CMP]]
204   %cmp = fcmp oeq double %a, %b
205   %cmp1 = fcmp false double %a, %b
206   %retval = select i1 %cmp, i1 true, i1 %cmp1
207   ret i1 %retval
210 define i1 @auto_gen_2(double %a, double %b) {
211 ; CHECK-LABEL: @auto_gen_2(
212 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
213 ; CHECK-NEXT:    ret i1 [[TMP1]]
215   %cmp = fcmp oeq double %a, %b
216   %cmp1 = fcmp oeq double %a, %b
217   %retval = or i1 %cmp, %cmp1
218   ret i1 %retval
221 define i1 @auto_gen_2_logical(double %a, double %b) {
222 ; CHECK-LABEL: @auto_gen_2_logical(
223 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
224 ; CHECK-NEXT:    ret i1 [[TMP1]]
226   %cmp = fcmp oeq double %a, %b
227   %cmp1 = fcmp oeq double %a, %b
228   %retval = select i1 %cmp, i1 true, i1 %cmp1
229   ret i1 %retval
232 define i1 @auto_gen_3(double %a, double %b) {
233 ; CHECK-LABEL: @auto_gen_3(
234 ; CHECK-NEXT:    [[CMP:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
235 ; CHECK-NEXT:    ret i1 [[CMP]]
237   %cmp = fcmp ogt double %a, %b
238   %cmp1 = fcmp false double %a, %b
239   %retval = or i1 %cmp, %cmp1
240   ret i1 %retval
243 define i1 @auto_gen_3_logical(double %a, double %b) {
244 ; CHECK-LABEL: @auto_gen_3_logical(
245 ; CHECK-NEXT:    [[CMP:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
246 ; CHECK-NEXT:    ret i1 [[CMP]]
248   %cmp = fcmp ogt double %a, %b
249   %cmp1 = fcmp false double %a, %b
250   %retval = select i1 %cmp, i1 true, i1 %cmp1
251   ret i1 %retval
254 define i1 @auto_gen_4(double %a, double %b) {
255 ; CHECK-LABEL: @auto_gen_4(
256 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
257 ; CHECK-NEXT:    ret i1 [[TMP1]]
259   %cmp = fcmp ogt double %a, %b
260   %cmp1 = fcmp oeq double %a, %b
261   %retval = or i1 %cmp, %cmp1
262   ret i1 %retval
265 define i1 @auto_gen_4_logical(double %a, double %b) {
266 ; CHECK-LABEL: @auto_gen_4_logical(
267 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
268 ; CHECK-NEXT:    ret i1 [[TMP1]]
270   %cmp = fcmp ogt double %a, %b
271   %cmp1 = fcmp oeq double %a, %b
272   %retval = select i1 %cmp, i1 true, i1 %cmp1
273   ret i1 %retval
276 define i1 @auto_gen_5(double %a, double %b) {
277 ; CHECK-LABEL: @auto_gen_5(
278 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
279 ; CHECK-NEXT:    ret i1 [[TMP1]]
281   %cmp = fcmp ogt double %a, %b
282   %cmp1 = fcmp ogt double %a, %b
283   %retval = or i1 %cmp, %cmp1
284   ret i1 %retval
287 define i1 @auto_gen_5_logical(double %a, double %b) {
288 ; CHECK-LABEL: @auto_gen_5_logical(
289 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
290 ; CHECK-NEXT:    ret i1 [[TMP1]]
292   %cmp = fcmp ogt double %a, %b
293   %cmp1 = fcmp ogt double %a, %b
294   %retval = select i1 %cmp, i1 true, i1 %cmp1
295   ret i1 %retval
298 define i1 @auto_gen_6(double %a, double %b) {
299 ; CHECK-LABEL: @auto_gen_6(
300 ; CHECK-NEXT:    [[CMP:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
301 ; CHECK-NEXT:    ret i1 [[CMP]]
303   %cmp = fcmp oge double %a, %b
304   %cmp1 = fcmp false double %a, %b
305   %retval = or i1 %cmp, %cmp1
306   ret i1 %retval
309 define i1 @auto_gen_6_logical(double %a, double %b) {
310 ; CHECK-LABEL: @auto_gen_6_logical(
311 ; CHECK-NEXT:    [[CMP:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
312 ; CHECK-NEXT:    ret i1 [[CMP]]
314   %cmp = fcmp oge double %a, %b
315   %cmp1 = fcmp false double %a, %b
316   %retval = select i1 %cmp, i1 true, i1 %cmp1
317   ret i1 %retval
320 define i1 @auto_gen_7(double %a, double %b) {
321 ; CHECK-LABEL: @auto_gen_7(
322 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
323 ; CHECK-NEXT:    ret i1 [[TMP1]]
325   %cmp = fcmp oge double %a, %b
326   %cmp1 = fcmp oeq double %a, %b
327   %retval = or i1 %cmp, %cmp1
328   ret i1 %retval
331 define i1 @auto_gen_7_logical(double %a, double %b) {
332 ; CHECK-LABEL: @auto_gen_7_logical(
333 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
334 ; CHECK-NEXT:    ret i1 [[TMP1]]
336   %cmp = fcmp oge double %a, %b
337   %cmp1 = fcmp oeq double %a, %b
338   %retval = select i1 %cmp, i1 true, i1 %cmp1
339   ret i1 %retval
342 define i1 @auto_gen_8(double %a, double %b) {
343 ; CHECK-LABEL: @auto_gen_8(
344 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
345 ; CHECK-NEXT:    ret i1 [[TMP1]]
347   %cmp = fcmp oge double %a, %b
348   %cmp1 = fcmp ogt double %a, %b
349   %retval = or i1 %cmp, %cmp1
350   ret i1 %retval
353 define i1 @auto_gen_8_logical(double %a, double %b) {
354 ; CHECK-LABEL: @auto_gen_8_logical(
355 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
356 ; CHECK-NEXT:    ret i1 [[TMP1]]
358   %cmp = fcmp oge double %a, %b
359   %cmp1 = fcmp ogt double %a, %b
360   %retval = select i1 %cmp, i1 true, i1 %cmp1
361   ret i1 %retval
364 define i1 @auto_gen_9(double %a, double %b) {
365 ; CHECK-LABEL: @auto_gen_9(
366 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
367 ; CHECK-NEXT:    ret i1 [[TMP1]]
369   %cmp = fcmp oge double %a, %b
370   %cmp1 = fcmp oge double %a, %b
371   %retval = or i1 %cmp, %cmp1
372   ret i1 %retval
375 define i1 @auto_gen_9_logical(double %a, double %b) {
376 ; CHECK-LABEL: @auto_gen_9_logical(
377 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
378 ; CHECK-NEXT:    ret i1 [[TMP1]]
380   %cmp = fcmp oge double %a, %b
381   %cmp1 = fcmp oge double %a, %b
382   %retval = select i1 %cmp, i1 true, i1 %cmp1
383   ret i1 %retval
386 define i1 @auto_gen_10(double %a, double %b) {
387 ; CHECK-LABEL: @auto_gen_10(
388 ; CHECK-NEXT:    [[CMP:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
389 ; CHECK-NEXT:    ret i1 [[CMP]]
391   %cmp = fcmp olt double %a, %b
392   %cmp1 = fcmp false double %a, %b
393   %retval = or i1 %cmp, %cmp1
394   ret i1 %retval
397 define i1 @auto_gen_10_logical(double %a, double %b) {
398 ; CHECK-LABEL: @auto_gen_10_logical(
399 ; CHECK-NEXT:    [[CMP:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
400 ; CHECK-NEXT:    ret i1 [[CMP]]
402   %cmp = fcmp olt double %a, %b
403   %cmp1 = fcmp false double %a, %b
404   %retval = select i1 %cmp, i1 true, i1 %cmp1
405   ret i1 %retval
408 define i1 @auto_gen_11(double %a, double %b) {
409 ; CHECK-LABEL: @auto_gen_11(
410 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
411 ; CHECK-NEXT:    ret i1 [[TMP1]]
413   %cmp = fcmp olt double %a, %b
414   %cmp1 = fcmp oeq double %a, %b
415   %retval = or i1 %cmp, %cmp1
416   ret i1 %retval
419 define i1 @auto_gen_11_logical(double %a, double %b) {
420 ; CHECK-LABEL: @auto_gen_11_logical(
421 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
422 ; CHECK-NEXT:    ret i1 [[TMP1]]
424   %cmp = fcmp olt double %a, %b
425   %cmp1 = fcmp oeq double %a, %b
426   %retval = select i1 %cmp, i1 true, i1 %cmp1
427   ret i1 %retval
430 define i1 @auto_gen_12(double %a, double %b) {
431 ; CHECK-LABEL: @auto_gen_12(
432 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
433 ; CHECK-NEXT:    ret i1 [[TMP1]]
435   %cmp = fcmp olt double %a, %b
436   %cmp1 = fcmp ogt double %a, %b
437   %retval = or i1 %cmp, %cmp1
438   ret i1 %retval
441 define i1 @auto_gen_12_logical(double %a, double %b) {
442 ; CHECK-LABEL: @auto_gen_12_logical(
443 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
444 ; CHECK-NEXT:    ret i1 [[TMP1]]
446   %cmp = fcmp olt double %a, %b
447   %cmp1 = fcmp ogt double %a, %b
448   %retval = select i1 %cmp, i1 true, i1 %cmp1
449   ret i1 %retval
452 define i1 @auto_gen_13(double %a, double %b) {
453 ; CHECK-LABEL: @auto_gen_13(
454 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
455 ; CHECK-NEXT:    ret i1 [[TMP1]]
457   %cmp = fcmp olt double %a, %b
458   %cmp1 = fcmp oge double %a, %b
459   %retval = or i1 %cmp, %cmp1
460   ret i1 %retval
463 define i1 @auto_gen_13_logical(double %a, double %b) {
464 ; CHECK-LABEL: @auto_gen_13_logical(
465 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
466 ; CHECK-NEXT:    ret i1 [[TMP1]]
468   %cmp = fcmp olt double %a, %b
469   %cmp1 = fcmp oge double %a, %b
470   %retval = select i1 %cmp, i1 true, i1 %cmp1
471   ret i1 %retval
474 define i1 @auto_gen_14(double %a, double %b) {
475 ; CHECK-LABEL: @auto_gen_14(
476 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
477 ; CHECK-NEXT:    ret i1 [[TMP1]]
479   %cmp = fcmp olt double %a, %b
480   %cmp1 = fcmp olt double %a, %b
481   %retval = or i1 %cmp, %cmp1
482   ret i1 %retval
485 define i1 @auto_gen_14_logical(double %a, double %b) {
486 ; CHECK-LABEL: @auto_gen_14_logical(
487 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
488 ; CHECK-NEXT:    ret i1 [[TMP1]]
490   %cmp = fcmp olt double %a, %b
491   %cmp1 = fcmp olt double %a, %b
492   %retval = select i1 %cmp, i1 true, i1 %cmp1
493   ret i1 %retval
496 define i1 @auto_gen_15(double %a, double %b) {
497 ; CHECK-LABEL: @auto_gen_15(
498 ; CHECK-NEXT:    [[CMP:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
499 ; CHECK-NEXT:    ret i1 [[CMP]]
501   %cmp = fcmp ole double %a, %b
502   %cmp1 = fcmp false double %a, %b
503   %retval = or i1 %cmp, %cmp1
504   ret i1 %retval
507 define i1 @auto_gen_15_logical(double %a, double %b) {
508 ; CHECK-LABEL: @auto_gen_15_logical(
509 ; CHECK-NEXT:    [[CMP:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
510 ; CHECK-NEXT:    ret i1 [[CMP]]
512   %cmp = fcmp ole double %a, %b
513   %cmp1 = fcmp false double %a, %b
514   %retval = select i1 %cmp, i1 true, i1 %cmp1
515   ret i1 %retval
518 define i1 @auto_gen_16(double %a, double %b) {
519 ; CHECK-LABEL: @auto_gen_16(
520 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
521 ; CHECK-NEXT:    ret i1 [[TMP1]]
523   %cmp = fcmp ole double %a, %b
524   %cmp1 = fcmp oeq double %a, %b
525   %retval = or i1 %cmp, %cmp1
526   ret i1 %retval
529 define i1 @auto_gen_16_logical(double %a, double %b) {
530 ; CHECK-LABEL: @auto_gen_16_logical(
531 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
532 ; CHECK-NEXT:    ret i1 [[TMP1]]
534   %cmp = fcmp ole double %a, %b
535   %cmp1 = fcmp oeq double %a, %b
536   %retval = select i1 %cmp, i1 true, i1 %cmp1
537   ret i1 %retval
540 define i1 @auto_gen_17(double %a, double %b) {
541 ; CHECK-LABEL: @auto_gen_17(
542 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
543 ; CHECK-NEXT:    ret i1 [[TMP1]]
545   %cmp = fcmp ole double %a, %b
546   %cmp1 = fcmp ogt double %a, %b
547   %retval = or i1 %cmp, %cmp1
548   ret i1 %retval
551 define i1 @auto_gen_17_logical(double %a, double %b) {
552 ; CHECK-LABEL: @auto_gen_17_logical(
553 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
554 ; CHECK-NEXT:    ret i1 [[TMP1]]
556   %cmp = fcmp ole double %a, %b
557   %cmp1 = fcmp ogt double %a, %b
558   %retval = select i1 %cmp, i1 true, i1 %cmp1
559   ret i1 %retval
562 define i1 @auto_gen_18(double %a, double %b) {
563 ; CHECK-LABEL: @auto_gen_18(
564 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
565 ; CHECK-NEXT:    ret i1 [[TMP1]]
567   %cmp = fcmp ole double %a, %b
568   %cmp1 = fcmp oge double %a, %b
569   %retval = or i1 %cmp, %cmp1
570   ret i1 %retval
573 define i1 @auto_gen_18_logical(double %a, double %b) {
574 ; CHECK-LABEL: @auto_gen_18_logical(
575 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
576 ; CHECK-NEXT:    ret i1 [[TMP1]]
578   %cmp = fcmp ole double %a, %b
579   %cmp1 = fcmp oge double %a, %b
580   %retval = select i1 %cmp, i1 true, i1 %cmp1
581   ret i1 %retval
584 define i1 @auto_gen_19(double %a, double %b) {
585 ; CHECK-LABEL: @auto_gen_19(
586 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
587 ; CHECK-NEXT:    ret i1 [[TMP1]]
589   %cmp = fcmp ole 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_19_logical(double %a, double %b) {
596 ; CHECK-LABEL: @auto_gen_19_logical(
597 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
598 ; CHECK-NEXT:    ret i1 [[TMP1]]
600   %cmp = fcmp ole double %a, %b
601   %cmp1 = fcmp olt double %a, %b
602   %retval = select i1 %cmp, i1 true, i1 %cmp1
603   ret i1 %retval
606 define i1 @auto_gen_20(double %a, double %b) {
607 ; CHECK-LABEL: @auto_gen_20(
608 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
609 ; CHECK-NEXT:    ret i1 [[TMP1]]
611   %cmp = fcmp ole double %a, %b
612   %cmp1 = fcmp ole double %a, %b
613   %retval = or i1 %cmp, %cmp1
614   ret i1 %retval
617 define i1 @auto_gen_20_logical(double %a, double %b) {
618 ; CHECK-LABEL: @auto_gen_20_logical(
619 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
620 ; CHECK-NEXT:    ret i1 [[TMP1]]
622   %cmp = fcmp ole double %a, %b
623   %cmp1 = fcmp ole double %a, %b
624   %retval = select i1 %cmp, i1 true, i1 %cmp1
625   ret i1 %retval
628 define i1 @auto_gen_21(double %a, double %b) {
629 ; CHECK-LABEL: @auto_gen_21(
630 ; CHECK-NEXT:    [[CMP:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
631 ; CHECK-NEXT:    ret i1 [[CMP]]
633   %cmp = fcmp one double %a, %b
634   %cmp1 = fcmp false double %a, %b
635   %retval = or i1 %cmp, %cmp1
636   ret i1 %retval
639 define i1 @auto_gen_21_logical(double %a, double %b) {
640 ; CHECK-LABEL: @auto_gen_21_logical(
641 ; CHECK-NEXT:    [[CMP:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
642 ; CHECK-NEXT:    ret i1 [[CMP]]
644   %cmp = fcmp one double %a, %b
645   %cmp1 = fcmp false double %a, %b
646   %retval = select i1 %cmp, i1 true, i1 %cmp1
647   ret i1 %retval
650 define i1 @auto_gen_22(double %a, double %b) {
651 ; CHECK-LABEL: @auto_gen_22(
652 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
653 ; CHECK-NEXT:    ret i1 [[TMP1]]
655   %cmp = fcmp one double %a, %b
656   %cmp1 = fcmp oeq double %a, %b
657   %retval = or i1 %cmp, %cmp1
658   ret i1 %retval
661 define i1 @auto_gen_22_logical(double %a, double %b) {
662 ; CHECK-LABEL: @auto_gen_22_logical(
663 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
664 ; CHECK-NEXT:    ret i1 [[TMP1]]
666   %cmp = fcmp one double %a, %b
667   %cmp1 = fcmp oeq double %a, %b
668   %retval = select i1 %cmp, i1 true, i1 %cmp1
669   ret i1 %retval
672 define i1 @auto_gen_23(double %a, double %b) {
673 ; CHECK-LABEL: @auto_gen_23(
674 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
675 ; CHECK-NEXT:    ret i1 [[TMP1]]
677   %cmp = fcmp one double %a, %b
678   %cmp1 = fcmp ogt double %a, %b
679   %retval = or i1 %cmp, %cmp1
680   ret i1 %retval
683 define i1 @auto_gen_23_logical(double %a, double %b) {
684 ; CHECK-LABEL: @auto_gen_23_logical(
685 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
686 ; CHECK-NEXT:    ret i1 [[TMP1]]
688   %cmp = fcmp one double %a, %b
689   %cmp1 = fcmp ogt double %a, %b
690   %retval = select i1 %cmp, i1 true, i1 %cmp1
691   ret i1 %retval
694 define i1 @auto_gen_24(double %a, double %b) {
695 ; CHECK-LABEL: @auto_gen_24(
696 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
697 ; CHECK-NEXT:    ret i1 [[TMP1]]
699   %cmp = fcmp one double %a, %b
700   %cmp1 = fcmp oge double %a, %b
701   %retval = or i1 %cmp, %cmp1
702   ret i1 %retval
705 define i1 @auto_gen_24_logical(double %a, double %b) {
706 ; CHECK-LABEL: @auto_gen_24_logical(
707 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
708 ; CHECK-NEXT:    ret i1 [[TMP1]]
710   %cmp = fcmp one double %a, %b
711   %cmp1 = fcmp oge double %a, %b
712   %retval = select i1 %cmp, i1 true, i1 %cmp1
713   ret i1 %retval
716 define i1 @auto_gen_25(double %a, double %b) {
717 ; CHECK-LABEL: @auto_gen_25(
718 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
719 ; CHECK-NEXT:    ret i1 [[TMP1]]
721   %cmp = fcmp one double %a, %b
722   %cmp1 = fcmp olt double %a, %b
723   %retval = or i1 %cmp, %cmp1
724   ret i1 %retval
727 define i1 @auto_gen_25_logical(double %a, double %b) {
728 ; CHECK-LABEL: @auto_gen_25_logical(
729 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
730 ; CHECK-NEXT:    ret i1 [[TMP1]]
732   %cmp = fcmp one double %a, %b
733   %cmp1 = fcmp olt double %a, %b
734   %retval = select i1 %cmp, i1 true, i1 %cmp1
735   ret i1 %retval
738 define i1 @auto_gen_26(double %a, double %b) {
739 ; CHECK-LABEL: @auto_gen_26(
740 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
741 ; CHECK-NEXT:    ret i1 [[TMP1]]
743   %cmp = fcmp one double %a, %b
744   %cmp1 = fcmp ole double %a, %b
745   %retval = or i1 %cmp, %cmp1
746   ret i1 %retval
749 define i1 @auto_gen_26_logical(double %a, double %b) {
750 ; CHECK-LABEL: @auto_gen_26_logical(
751 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
752 ; CHECK-NEXT:    ret i1 [[TMP1]]
754   %cmp = fcmp one double %a, %b
755   %cmp1 = fcmp ole double %a, %b
756   %retval = select i1 %cmp, i1 true, i1 %cmp1
757   ret i1 %retval
760 define i1 @auto_gen_27(double %a, double %b) {
761 ; CHECK-LABEL: @auto_gen_27(
762 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
763 ; CHECK-NEXT:    ret i1 [[TMP1]]
765   %cmp = fcmp one double %a, %b
766   %cmp1 = fcmp one double %a, %b
767   %retval = or i1 %cmp, %cmp1
768   ret i1 %retval
771 define i1 @auto_gen_27_logical(double %a, double %b) {
772 ; CHECK-LABEL: @auto_gen_27_logical(
773 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
774 ; CHECK-NEXT:    ret i1 [[TMP1]]
776   %cmp = fcmp one double %a, %b
777   %cmp1 = fcmp one double %a, %b
778   %retval = select i1 %cmp, i1 true, i1 %cmp1
779   ret i1 %retval
782 define i1 @auto_gen_28(double %a, double %b) {
783 ; CHECK-LABEL: @auto_gen_28(
784 ; CHECK-NEXT:    [[CMP:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
785 ; CHECK-NEXT:    ret i1 [[CMP]]
787   %cmp = fcmp ord double %a, %b
788   %cmp1 = fcmp false double %a, %b
789   %retval = or i1 %cmp, %cmp1
790   ret i1 %retval
793 define i1 @auto_gen_28_logical(double %a, double %b) {
794 ; CHECK-LABEL: @auto_gen_28_logical(
795 ; CHECK-NEXT:    [[CMP:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
796 ; CHECK-NEXT:    ret i1 [[CMP]]
798   %cmp = fcmp ord double %a, %b
799   %cmp1 = fcmp false double %a, %b
800   %retval = select i1 %cmp, i1 true, i1 %cmp1
801   ret i1 %retval
804 define i1 @auto_gen_29(double %a, double %b) {
805 ; CHECK-LABEL: @auto_gen_29(
806 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
807 ; CHECK-NEXT:    ret i1 [[TMP1]]
809   %cmp = fcmp ord double %a, %b
810   %cmp1 = fcmp oeq double %a, %b
811   %retval = or i1 %cmp, %cmp1
812   ret i1 %retval
815 define i1 @auto_gen_29_logical(double %a, double %b) {
816 ; CHECK-LABEL: @auto_gen_29_logical(
817 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
818 ; CHECK-NEXT:    ret i1 [[TMP1]]
820   %cmp = fcmp ord double %a, %b
821   %cmp1 = fcmp oeq double %a, %b
822   %retval = select i1 %cmp, i1 true, i1 %cmp1
823   ret i1 %retval
826 define i1 @auto_gen_30(double %a, double %b) {
827 ; CHECK-LABEL: @auto_gen_30(
828 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
829 ; CHECK-NEXT:    ret i1 [[TMP1]]
831   %cmp = fcmp ord double %a, %b
832   %cmp1 = fcmp ogt double %a, %b
833   %retval = or i1 %cmp, %cmp1
834   ret i1 %retval
837 define i1 @auto_gen_30_logical(double %a, double %b) {
838 ; CHECK-LABEL: @auto_gen_30_logical(
839 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
840 ; CHECK-NEXT:    ret i1 [[TMP1]]
842   %cmp = fcmp ord double %a, %b
843   %cmp1 = fcmp ogt double %a, %b
844   %retval = select i1 %cmp, i1 true, i1 %cmp1
845   ret i1 %retval
848 define i1 @auto_gen_31(double %a, double %b) {
849 ; CHECK-LABEL: @auto_gen_31(
850 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
851 ; CHECK-NEXT:    ret i1 [[TMP1]]
853   %cmp = fcmp ord double %a, %b
854   %cmp1 = fcmp oge double %a, %b
855   %retval = or i1 %cmp, %cmp1
856   ret i1 %retval
859 define i1 @auto_gen_31_logical(double %a, double %b) {
860 ; CHECK-LABEL: @auto_gen_31_logical(
861 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
862 ; CHECK-NEXT:    ret i1 [[TMP1]]
864   %cmp = fcmp ord double %a, %b
865   %cmp1 = fcmp oge double %a, %b
866   %retval = select i1 %cmp, i1 true, i1 %cmp1
867   ret i1 %retval
870 define i1 @auto_gen_32(double %a, double %b) {
871 ; CHECK-LABEL: @auto_gen_32(
872 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
873 ; CHECK-NEXT:    ret i1 [[TMP1]]
875   %cmp = fcmp ord double %a, %b
876   %cmp1 = fcmp olt double %a, %b
877   %retval = or i1 %cmp, %cmp1
878   ret i1 %retval
881 define i1 @auto_gen_32_logical(double %a, double %b) {
882 ; CHECK-LABEL: @auto_gen_32_logical(
883 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
884 ; CHECK-NEXT:    ret i1 [[TMP1]]
886   %cmp = fcmp ord double %a, %b
887   %cmp1 = fcmp olt double %a, %b
888   %retval = select i1 %cmp, i1 true, i1 %cmp1
889   ret i1 %retval
892 define i1 @auto_gen_33(double %a, double %b) {
893 ; CHECK-LABEL: @auto_gen_33(
894 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
895 ; CHECK-NEXT:    ret i1 [[TMP1]]
897   %cmp = fcmp ord double %a, %b
898   %cmp1 = fcmp ole double %a, %b
899   %retval = or i1 %cmp, %cmp1
900   ret i1 %retval
903 define i1 @auto_gen_33_logical(double %a, double %b) {
904 ; CHECK-LABEL: @auto_gen_33_logical(
905 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
906 ; CHECK-NEXT:    ret i1 [[TMP1]]
908   %cmp = fcmp ord double %a, %b
909   %cmp1 = fcmp ole double %a, %b
910   %retval = select i1 %cmp, i1 true, i1 %cmp1
911   ret i1 %retval
914 define i1 @auto_gen_34(double %a, double %b) {
915 ; CHECK-LABEL: @auto_gen_34(
916 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
917 ; CHECK-NEXT:    ret i1 [[TMP1]]
919   %cmp = fcmp ord double %a, %b
920   %cmp1 = fcmp one double %a, %b
921   %retval = or i1 %cmp, %cmp1
922   ret i1 %retval
925 define i1 @auto_gen_34_logical(double %a, double %b) {
926 ; CHECK-LABEL: @auto_gen_34_logical(
927 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
928 ; CHECK-NEXT:    ret i1 [[TMP1]]
930   %cmp = fcmp ord double %a, %b
931   %cmp1 = fcmp one double %a, %b
932   %retval = select i1 %cmp, i1 true, i1 %cmp1
933   ret i1 %retval
936 define i1 @auto_gen_35(double %a, double %b) {
937 ; CHECK-LABEL: @auto_gen_35(
938 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
939 ; CHECK-NEXT:    ret i1 [[TMP1]]
941   %cmp = fcmp ord double %a, %b
942   %cmp1 = fcmp ord double %a, %b
943   %retval = or i1 %cmp, %cmp1
944   ret i1 %retval
947 define i1 @auto_gen_35_logical(double %a, double %b) {
948 ; CHECK-LABEL: @auto_gen_35_logical(
949 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
950 ; CHECK-NEXT:    ret i1 [[TMP1]]
952   %cmp = fcmp ord double %a, %b
953   %cmp1 = fcmp ord double %a, %b
954   %retval = select i1 %cmp, i1 true, i1 %cmp1
955   ret i1 %retval
958 define i1 @auto_gen_36(double %a, double %b) {
959 ; CHECK-LABEL: @auto_gen_36(
960 ; CHECK-NEXT:    [[CMP:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
961 ; CHECK-NEXT:    ret i1 [[CMP]]
963   %cmp = fcmp ueq double %a, %b
964   %cmp1 = fcmp false double %a, %b
965   %retval = or i1 %cmp, %cmp1
966   ret i1 %retval
969 define i1 @auto_gen_36_logical(double %a, double %b) {
970 ; CHECK-LABEL: @auto_gen_36_logical(
971 ; CHECK-NEXT:    [[CMP:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
972 ; CHECK-NEXT:    ret i1 [[CMP]]
974   %cmp = fcmp ueq double %a, %b
975   %cmp1 = fcmp false double %a, %b
976   %retval = select i1 %cmp, i1 true, i1 %cmp1
977   ret i1 %retval
980 define i1 @auto_gen_37(double %a, double %b) {
981 ; CHECK-LABEL: @auto_gen_37(
982 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
983 ; CHECK-NEXT:    ret i1 [[TMP1]]
985   %cmp = fcmp ueq double %a, %b
986   %cmp1 = fcmp oeq double %a, %b
987   %retval = or i1 %cmp, %cmp1
988   ret i1 %retval
991 define i1 @auto_gen_37_logical(double %a, double %b) {
992 ; CHECK-LABEL: @auto_gen_37_logical(
993 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
994 ; CHECK-NEXT:    ret i1 [[TMP1]]
996   %cmp = fcmp ueq double %a, %b
997   %cmp1 = fcmp oeq double %a, %b
998   %retval = select i1 %cmp, i1 true, i1 %cmp1
999   ret i1 %retval
1002 define i1 @auto_gen_38(double %a, double %b) {
1003 ; CHECK-LABEL: @auto_gen_38(
1004 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
1005 ; CHECK-NEXT:    ret i1 [[TMP1]]
1007   %cmp = fcmp ueq double %a, %b
1008   %cmp1 = fcmp ogt double %a, %b
1009   %retval = or i1 %cmp, %cmp1
1010   ret i1 %retval
1013 define i1 @auto_gen_38_logical(double %a, double %b) {
1014 ; CHECK-LABEL: @auto_gen_38_logical(
1015 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
1016 ; CHECK-NEXT:    ret i1 [[TMP1]]
1018   %cmp = fcmp ueq double %a, %b
1019   %cmp1 = fcmp ogt double %a, %b
1020   %retval = select i1 %cmp, i1 true, i1 %cmp1
1021   ret i1 %retval
1024 define i1 @auto_gen_39(double %a, double %b) {
1025 ; CHECK-LABEL: @auto_gen_39(
1026 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
1027 ; CHECK-NEXT:    ret i1 [[TMP1]]
1029   %cmp = fcmp ueq double %a, %b
1030   %cmp1 = fcmp oge double %a, %b
1031   %retval = or i1 %cmp, %cmp1
1032   ret i1 %retval
1035 define i1 @auto_gen_39_logical(double %a, double %b) {
1036 ; CHECK-LABEL: @auto_gen_39_logical(
1037 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
1038 ; CHECK-NEXT:    ret i1 [[TMP1]]
1040   %cmp = fcmp ueq double %a, %b
1041   %cmp1 = fcmp oge double %a, %b
1042   %retval = select i1 %cmp, i1 true, i1 %cmp1
1043   ret i1 %retval
1046 define i1 @auto_gen_40(double %a, double %b) {
1047 ; CHECK-LABEL: @auto_gen_40(
1048 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
1049 ; CHECK-NEXT:    ret i1 [[TMP1]]
1051   %cmp = fcmp ueq double %a, %b
1052   %cmp1 = fcmp olt double %a, %b
1053   %retval = or i1 %cmp, %cmp1
1054   ret i1 %retval
1057 define i1 @auto_gen_40_logical(double %a, double %b) {
1058 ; CHECK-LABEL: @auto_gen_40_logical(
1059 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
1060 ; CHECK-NEXT:    ret i1 [[TMP1]]
1062   %cmp = fcmp ueq double %a, %b
1063   %cmp1 = fcmp olt double %a, %b
1064   %retval = select i1 %cmp, i1 true, i1 %cmp1
1065   ret i1 %retval
1068 define i1 @auto_gen_41(double %a, double %b) {
1069 ; CHECK-LABEL: @auto_gen_41(
1070 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
1071 ; CHECK-NEXT:    ret i1 [[TMP1]]
1073   %cmp = fcmp ueq double %a, %b
1074   %cmp1 = fcmp ole double %a, %b
1075   %retval = or i1 %cmp, %cmp1
1076   ret i1 %retval
1079 define i1 @auto_gen_41_logical(double %a, double %b) {
1080 ; CHECK-LABEL: @auto_gen_41_logical(
1081 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
1082 ; CHECK-NEXT:    ret i1 [[TMP1]]
1084   %cmp = fcmp ueq double %a, %b
1085   %cmp1 = fcmp ole double %a, %b
1086   %retval = select i1 %cmp, i1 true, i1 %cmp1
1087   ret i1 %retval
1090 define i1 @auto_gen_42(double %a, double %b) {
1091 ; CHECK-LABEL: @auto_gen_42(
1092 ; CHECK-NEXT:    ret i1 true
1094   %cmp = fcmp ueq double %a, %b
1095   %cmp1 = fcmp one double %a, %b
1096   %retval = or i1 %cmp, %cmp1
1097   ret i1 %retval
1100 define i1 @auto_gen_42_logical(double %a, double %b) {
1101 ; CHECK-LABEL: @auto_gen_42_logical(
1102 ; CHECK-NEXT:    ret i1 true
1104   %cmp = fcmp ueq double %a, %b
1105   %cmp1 = fcmp one double %a, %b
1106   %retval = select i1 %cmp, i1 true, i1 %cmp1
1107   ret i1 %retval
1110 define i1 @auto_gen_43(double %a, double %b) {
1111 ; CHECK-LABEL: @auto_gen_43(
1112 ; CHECK-NEXT:    ret i1 true
1114   %cmp = fcmp ueq double %a, %b
1115   %cmp1 = fcmp ord double %a, %b
1116   %retval = or i1 %cmp, %cmp1
1117   ret i1 %retval
1120 define i1 @auto_gen_43_logical(double %a, double %b) {
1121 ; CHECK-LABEL: @auto_gen_43_logical(
1122 ; CHECK-NEXT:    ret i1 true
1124   %cmp = fcmp ueq double %a, %b
1125   %cmp1 = fcmp ord double %a, %b
1126   %retval = select i1 %cmp, i1 true, i1 %cmp1
1127   ret i1 %retval
1130 define i1 @auto_gen_44(double %a, double %b) {
1131 ; CHECK-LABEL: @auto_gen_44(
1132 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
1133 ; CHECK-NEXT:    ret i1 [[TMP1]]
1135   %cmp = fcmp ueq double %a, %b
1136   %cmp1 = fcmp ueq double %a, %b
1137   %retval = or i1 %cmp, %cmp1
1138   ret i1 %retval
1141 define i1 @auto_gen_44_logical(double %a, double %b) {
1142 ; CHECK-LABEL: @auto_gen_44_logical(
1143 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
1144 ; CHECK-NEXT:    ret i1 [[TMP1]]
1146   %cmp = fcmp ueq double %a, %b
1147   %cmp1 = fcmp ueq double %a, %b
1148   %retval = select i1 %cmp, i1 true, i1 %cmp1
1149   ret i1 %retval
1152 define i1 @auto_gen_45(double %a, double %b) {
1153 ; CHECK-LABEL: @auto_gen_45(
1154 ; CHECK-NEXT:    [[CMP:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
1155 ; CHECK-NEXT:    ret i1 [[CMP]]
1157   %cmp = fcmp ugt double %a, %b
1158   %cmp1 = fcmp false double %a, %b
1159   %retval = or i1 %cmp, %cmp1
1160   ret i1 %retval
1163 define i1 @auto_gen_45_logical(double %a, double %b) {
1164 ; CHECK-LABEL: @auto_gen_45_logical(
1165 ; CHECK-NEXT:    [[CMP:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
1166 ; CHECK-NEXT:    ret i1 [[CMP]]
1168   %cmp = fcmp ugt double %a, %b
1169   %cmp1 = fcmp false double %a, %b
1170   %retval = select i1 %cmp, i1 true, i1 %cmp1
1171   ret i1 %retval
1174 define i1 @auto_gen_46(double %a, double %b) {
1175 ; CHECK-LABEL: @auto_gen_46(
1176 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
1177 ; CHECK-NEXT:    ret i1 [[TMP1]]
1179   %cmp = fcmp ugt double %a, %b
1180   %cmp1 = fcmp oeq double %a, %b
1181   %retval = or i1 %cmp, %cmp1
1182   ret i1 %retval
1185 define i1 @auto_gen_46_logical(double %a, double %b) {
1186 ; CHECK-LABEL: @auto_gen_46_logical(
1187 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
1188 ; CHECK-NEXT:    ret i1 [[TMP1]]
1190   %cmp = fcmp ugt double %a, %b
1191   %cmp1 = fcmp oeq double %a, %b
1192   %retval = select i1 %cmp, i1 true, i1 %cmp1
1193   ret i1 %retval
1196 define i1 @auto_gen_47(double %a, double %b) {
1197 ; CHECK-LABEL: @auto_gen_47(
1198 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
1199 ; CHECK-NEXT:    ret i1 [[TMP1]]
1201   %cmp = fcmp ugt double %a, %b
1202   %cmp1 = fcmp ogt double %a, %b
1203   %retval = or i1 %cmp, %cmp1
1204   ret i1 %retval
1207 define i1 @auto_gen_47_logical(double %a, double %b) {
1208 ; CHECK-LABEL: @auto_gen_47_logical(
1209 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
1210 ; CHECK-NEXT:    ret i1 [[TMP1]]
1212   %cmp = fcmp ugt double %a, %b
1213   %cmp1 = fcmp ogt double %a, %b
1214   %retval = select i1 %cmp, i1 true, i1 %cmp1
1215   ret i1 %retval
1218 define i1 @auto_gen_48(double %a, double %b) {
1219 ; CHECK-LABEL: @auto_gen_48(
1220 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
1221 ; CHECK-NEXT:    ret i1 [[TMP1]]
1223   %cmp = fcmp ugt double %a, %b
1224   %cmp1 = fcmp oge double %a, %b
1225   %retval = or i1 %cmp, %cmp1
1226   ret i1 %retval
1229 define i1 @auto_gen_48_logical(double %a, double %b) {
1230 ; CHECK-LABEL: @auto_gen_48_logical(
1231 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
1232 ; CHECK-NEXT:    ret i1 [[TMP1]]
1234   %cmp = fcmp ugt double %a, %b
1235   %cmp1 = fcmp oge double %a, %b
1236   %retval = select i1 %cmp, i1 true, i1 %cmp1
1237   ret i1 %retval
1240 define i1 @auto_gen_49(double %a, double %b) {
1241 ; CHECK-LABEL: @auto_gen_49(
1242 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
1243 ; CHECK-NEXT:    ret i1 [[TMP1]]
1245   %cmp = fcmp ugt double %a, %b
1246   %cmp1 = fcmp olt double %a, %b
1247   %retval = or i1 %cmp, %cmp1
1248   ret i1 %retval
1251 define i1 @auto_gen_49_logical(double %a, double %b) {
1252 ; CHECK-LABEL: @auto_gen_49_logical(
1253 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
1254 ; CHECK-NEXT:    ret i1 [[TMP1]]
1256   %cmp = fcmp ugt double %a, %b
1257   %cmp1 = fcmp olt double %a, %b
1258   %retval = select i1 %cmp, i1 true, i1 %cmp1
1259   ret i1 %retval
1262 define i1 @auto_gen_50(double %a, double %b) {
1263 ; CHECK-LABEL: @auto_gen_50(
1264 ; CHECK-NEXT:    ret i1 true
1266   %cmp = fcmp ugt double %a, %b
1267   %cmp1 = fcmp ole double %a, %b
1268   %retval = or i1 %cmp, %cmp1
1269   ret i1 %retval
1272 define i1 @auto_gen_50_logical(double %a, double %b) {
1273 ; CHECK-LABEL: @auto_gen_50_logical(
1274 ; CHECK-NEXT:    ret i1 true
1276   %cmp = fcmp ugt double %a, %b
1277   %cmp1 = fcmp ole double %a, %b
1278   %retval = select i1 %cmp, i1 true, i1 %cmp1
1279   ret i1 %retval
1282 define i1 @auto_gen_51(double %a, double %b) {
1283 ; CHECK-LABEL: @auto_gen_51(
1284 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
1285 ; CHECK-NEXT:    ret i1 [[TMP1]]
1287   %cmp = fcmp ugt double %a, %b
1288   %cmp1 = fcmp one double %a, %b
1289   %retval = or i1 %cmp, %cmp1
1290   ret i1 %retval
1293 define i1 @auto_gen_51_logical(double %a, double %b) {
1294 ; CHECK-LABEL: @auto_gen_51_logical(
1295 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
1296 ; CHECK-NEXT:    ret i1 [[TMP1]]
1298   %cmp = fcmp ugt double %a, %b
1299   %cmp1 = fcmp one double %a, %b
1300   %retval = select i1 %cmp, i1 true, i1 %cmp1
1301   ret i1 %retval
1304 define i1 @auto_gen_52(double %a, double %b) {
1305 ; CHECK-LABEL: @auto_gen_52(
1306 ; CHECK-NEXT:    ret i1 true
1308   %cmp = fcmp ugt double %a, %b
1309   %cmp1 = fcmp ord double %a, %b
1310   %retval = or i1 %cmp, %cmp1
1311   ret i1 %retval
1314 define i1 @auto_gen_52_logical(double %a, double %b) {
1315 ; CHECK-LABEL: @auto_gen_52_logical(
1316 ; CHECK-NEXT:    ret i1 true
1318   %cmp = fcmp ugt double %a, %b
1319   %cmp1 = fcmp ord double %a, %b
1320   %retval = select i1 %cmp, i1 true, i1 %cmp1
1321   ret i1 %retval
1324 define i1 @auto_gen_53(double %a, double %b) {
1325 ; CHECK-LABEL: @auto_gen_53(
1326 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
1327 ; CHECK-NEXT:    ret i1 [[TMP1]]
1329   %cmp = fcmp ugt double %a, %b
1330   %cmp1 = fcmp ueq double %a, %b
1331   %retval = or i1 %cmp, %cmp1
1332   ret i1 %retval
1335 define i1 @auto_gen_53_logical(double %a, double %b) {
1336 ; CHECK-LABEL: @auto_gen_53_logical(
1337 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
1338 ; CHECK-NEXT:    ret i1 [[TMP1]]
1340   %cmp = fcmp ugt double %a, %b
1341   %cmp1 = fcmp ueq double %a, %b
1342   %retval = select i1 %cmp, i1 true, i1 %cmp1
1343   ret i1 %retval
1346 define i1 @auto_gen_54(double %a, double %b) {
1347 ; CHECK-LABEL: @auto_gen_54(
1348 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
1349 ; CHECK-NEXT:    ret i1 [[TMP1]]
1351   %cmp = fcmp ugt double %a, %b
1352   %cmp1 = fcmp ugt double %a, %b
1353   %retval = or i1 %cmp, %cmp1
1354   ret i1 %retval
1357 define i1 @auto_gen_54_logical(double %a, double %b) {
1358 ; CHECK-LABEL: @auto_gen_54_logical(
1359 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
1360 ; CHECK-NEXT:    ret i1 [[TMP1]]
1362   %cmp = fcmp ugt double %a, %b
1363   %cmp1 = fcmp ugt double %a, %b
1364   %retval = select i1 %cmp, i1 true, i1 %cmp1
1365   ret i1 %retval
1368 define i1 @auto_gen_55(double %a, double %b) {
1369 ; CHECK-LABEL: @auto_gen_55(
1370 ; CHECK-NEXT:    [[CMP:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
1371 ; CHECK-NEXT:    ret i1 [[CMP]]
1373   %cmp = fcmp uge double %a, %b
1374   %cmp1 = fcmp false double %a, %b
1375   %retval = or i1 %cmp, %cmp1
1376   ret i1 %retval
1379 define i1 @auto_gen_55_logical(double %a, double %b) {
1380 ; CHECK-LABEL: @auto_gen_55_logical(
1381 ; CHECK-NEXT:    [[CMP:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
1382 ; CHECK-NEXT:    ret i1 [[CMP]]
1384   %cmp = fcmp uge double %a, %b
1385   %cmp1 = fcmp false double %a, %b
1386   %retval = select i1 %cmp, i1 true, i1 %cmp1
1387   ret i1 %retval
1390 define i1 @auto_gen_56(double %a, double %b) {
1391 ; CHECK-LABEL: @auto_gen_56(
1392 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
1393 ; CHECK-NEXT:    ret i1 [[TMP1]]
1395   %cmp = fcmp uge double %a, %b
1396   %cmp1 = fcmp oeq double %a, %b
1397   %retval = or i1 %cmp, %cmp1
1398   ret i1 %retval
1401 define i1 @auto_gen_56_logical(double %a, double %b) {
1402 ; CHECK-LABEL: @auto_gen_56_logical(
1403 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
1404 ; CHECK-NEXT:    ret i1 [[TMP1]]
1406   %cmp = fcmp uge double %a, %b
1407   %cmp1 = fcmp oeq double %a, %b
1408   %retval = select i1 %cmp, i1 true, i1 %cmp1
1409   ret i1 %retval
1412 define i1 @auto_gen_57(double %a, double %b) {
1413 ; CHECK-LABEL: @auto_gen_57(
1414 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
1415 ; CHECK-NEXT:    ret i1 [[TMP1]]
1417   %cmp = fcmp uge double %a, %b
1418   %cmp1 = fcmp ogt double %a, %b
1419   %retval = or i1 %cmp, %cmp1
1420   ret i1 %retval
1423 define i1 @auto_gen_57_logical(double %a, double %b) {
1424 ; CHECK-LABEL: @auto_gen_57_logical(
1425 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
1426 ; CHECK-NEXT:    ret i1 [[TMP1]]
1428   %cmp = fcmp uge double %a, %b
1429   %cmp1 = fcmp ogt double %a, %b
1430   %retval = select i1 %cmp, i1 true, i1 %cmp1
1431   ret i1 %retval
1434 define i1 @auto_gen_58(double %a, double %b) {
1435 ; CHECK-LABEL: @auto_gen_58(
1436 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
1437 ; CHECK-NEXT:    ret i1 [[TMP1]]
1439   %cmp = fcmp uge double %a, %b
1440   %cmp1 = fcmp oge double %a, %b
1441   %retval = or i1 %cmp, %cmp1
1442   ret i1 %retval
1445 define i1 @auto_gen_58_logical(double %a, double %b) {
1446 ; CHECK-LABEL: @auto_gen_58_logical(
1447 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
1448 ; CHECK-NEXT:    ret i1 [[TMP1]]
1450   %cmp = fcmp uge double %a, %b
1451   %cmp1 = fcmp oge double %a, %b
1452   %retval = select i1 %cmp, i1 true, i1 %cmp1
1453   ret i1 %retval
1456 define i1 @auto_gen_59(double %a, double %b) {
1457 ; CHECK-LABEL: @auto_gen_59(
1458 ; CHECK-NEXT:    ret i1 true
1460   %cmp = fcmp uge double %a, %b
1461   %cmp1 = fcmp olt double %a, %b
1462   %retval = or i1 %cmp, %cmp1
1463   ret i1 %retval
1466 define i1 @auto_gen_59_logical(double %a, double %b) {
1467 ; CHECK-LABEL: @auto_gen_59_logical(
1468 ; CHECK-NEXT:    ret i1 true
1470   %cmp = fcmp uge double %a, %b
1471   %cmp1 = fcmp olt double %a, %b
1472   %retval = select i1 %cmp, i1 true, i1 %cmp1
1473   ret i1 %retval
1476 define i1 @auto_gen_60(double %a, double %b) {
1477 ; CHECK-LABEL: @auto_gen_60(
1478 ; CHECK-NEXT:    ret i1 true
1480   %cmp = fcmp uge double %a, %b
1481   %cmp1 = fcmp ole double %a, %b
1482   %retval = or i1 %cmp, %cmp1
1483   ret i1 %retval
1486 define i1 @auto_gen_60_logical(double %a, double %b) {
1487 ; CHECK-LABEL: @auto_gen_60_logical(
1488 ; CHECK-NEXT:    ret i1 true
1490   %cmp = fcmp uge double %a, %b
1491   %cmp1 = fcmp ole double %a, %b
1492   %retval = select i1 %cmp, i1 true, i1 %cmp1
1493   ret i1 %retval
1496 define i1 @auto_gen_61(double %a, double %b) {
1497 ; CHECK-LABEL: @auto_gen_61(
1498 ; CHECK-NEXT:    ret i1 true
1500   %cmp = fcmp uge double %a, %b
1501   %cmp1 = fcmp one double %a, %b
1502   %retval = or i1 %cmp, %cmp1
1503   ret i1 %retval
1506 define i1 @auto_gen_61_logical(double %a, double %b) {
1507 ; CHECK-LABEL: @auto_gen_61_logical(
1508 ; CHECK-NEXT:    ret i1 true
1510   %cmp = fcmp uge double %a, %b
1511   %cmp1 = fcmp one double %a, %b
1512   %retval = select i1 %cmp, i1 true, i1 %cmp1
1513   ret i1 %retval
1516 define i1 @auto_gen_62(double %a, double %b) {
1517 ; CHECK-LABEL: @auto_gen_62(
1518 ; CHECK-NEXT:    ret i1 true
1520   %cmp = fcmp uge double %a, %b
1521   %cmp1 = fcmp ord double %a, %b
1522   %retval = or i1 %cmp, %cmp1
1523   ret i1 %retval
1526 define i1 @auto_gen_62_logical(double %a, double %b) {
1527 ; CHECK-LABEL: @auto_gen_62_logical(
1528 ; CHECK-NEXT:    ret i1 true
1530   %cmp = fcmp uge double %a, %b
1531   %cmp1 = fcmp ord double %a, %b
1532   %retval = select i1 %cmp, i1 true, i1 %cmp1
1533   ret i1 %retval
1536 define i1 @auto_gen_63(double %a, double %b) {
1537 ; CHECK-LABEL: @auto_gen_63(
1538 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
1539 ; CHECK-NEXT:    ret i1 [[TMP1]]
1541   %cmp = fcmp uge double %a, %b
1542   %cmp1 = fcmp ueq double %a, %b
1543   %retval = or i1 %cmp, %cmp1
1544   ret i1 %retval
1547 define i1 @auto_gen_63_logical(double %a, double %b) {
1548 ; CHECK-LABEL: @auto_gen_63_logical(
1549 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
1550 ; CHECK-NEXT:    ret i1 [[TMP1]]
1552   %cmp = fcmp uge double %a, %b
1553   %cmp1 = fcmp ueq double %a, %b
1554   %retval = select i1 %cmp, i1 true, i1 %cmp1
1555   ret i1 %retval
1558 define i1 @auto_gen_64(double %a, double %b) {
1559 ; CHECK-LABEL: @auto_gen_64(
1560 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
1561 ; CHECK-NEXT:    ret i1 [[TMP1]]
1563   %cmp = fcmp uge double %a, %b
1564   %cmp1 = fcmp ugt double %a, %b
1565   %retval = or i1 %cmp, %cmp1
1566   ret i1 %retval
1569 define i1 @auto_gen_64_logical(double %a, double %b) {
1570 ; CHECK-LABEL: @auto_gen_64_logical(
1571 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
1572 ; CHECK-NEXT:    ret i1 [[TMP1]]
1574   %cmp = fcmp uge double %a, %b
1575   %cmp1 = fcmp ugt double %a, %b
1576   %retval = select i1 %cmp, i1 true, i1 %cmp1
1577   ret i1 %retval
1580 define i1 @auto_gen_65(double %a, double %b) {
1581 ; CHECK-LABEL: @auto_gen_65(
1582 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
1583 ; CHECK-NEXT:    ret i1 [[TMP1]]
1585   %cmp = fcmp uge double %a, %b
1586   %cmp1 = fcmp uge double %a, %b
1587   %retval = or i1 %cmp, %cmp1
1588   ret i1 %retval
1591 define i1 @auto_gen_65_logical(double %a, double %b) {
1592 ; CHECK-LABEL: @auto_gen_65_logical(
1593 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
1594 ; CHECK-NEXT:    ret i1 [[TMP1]]
1596   %cmp = fcmp uge double %a, %b
1597   %cmp1 = fcmp uge double %a, %b
1598   %retval = select i1 %cmp, i1 true, i1 %cmp1
1599   ret i1 %retval
1602 define i1 @auto_gen_66(double %a, double %b) {
1603 ; CHECK-LABEL: @auto_gen_66(
1604 ; CHECK-NEXT:    [[CMP:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
1605 ; CHECK-NEXT:    ret i1 [[CMP]]
1607   %cmp = fcmp ult double %a, %b
1608   %cmp1 = fcmp false double %a, %b
1609   %retval = or i1 %cmp, %cmp1
1610   ret i1 %retval
1613 define i1 @auto_gen_66_logical(double %a, double %b) {
1614 ; CHECK-LABEL: @auto_gen_66_logical(
1615 ; CHECK-NEXT:    [[CMP:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
1616 ; CHECK-NEXT:    ret i1 [[CMP]]
1618   %cmp = fcmp ult double %a, %b
1619   %cmp1 = fcmp false double %a, %b
1620   %retval = select i1 %cmp, i1 true, i1 %cmp1
1621   ret i1 %retval
1624 define i1 @auto_gen_67(double %a, double %b) {
1625 ; CHECK-LABEL: @auto_gen_67(
1626 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
1627 ; CHECK-NEXT:    ret i1 [[TMP1]]
1629   %cmp = fcmp ult double %a, %b
1630   %cmp1 = fcmp oeq double %a, %b
1631   %retval = or i1 %cmp, %cmp1
1632   ret i1 %retval
1635 define i1 @auto_gen_67_logical(double %a, double %b) {
1636 ; CHECK-LABEL: @auto_gen_67_logical(
1637 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
1638 ; CHECK-NEXT:    ret i1 [[TMP1]]
1640   %cmp = fcmp ult double %a, %b
1641   %cmp1 = fcmp oeq double %a, %b
1642   %retval = select i1 %cmp, i1 true, i1 %cmp1
1643   ret i1 %retval
1646 define i1 @auto_gen_68(double %a, double %b) {
1647 ; CHECK-LABEL: @auto_gen_68(
1648 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
1649 ; CHECK-NEXT:    ret i1 [[TMP1]]
1651   %cmp = fcmp ult double %a, %b
1652   %cmp1 = fcmp ogt double %a, %b
1653   %retval = or i1 %cmp, %cmp1
1654   ret i1 %retval
1657 define i1 @auto_gen_68_logical(double %a, double %b) {
1658 ; CHECK-LABEL: @auto_gen_68_logical(
1659 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
1660 ; CHECK-NEXT:    ret i1 [[TMP1]]
1662   %cmp = fcmp ult double %a, %b
1663   %cmp1 = fcmp ogt double %a, %b
1664   %retval = select i1 %cmp, i1 true, i1 %cmp1
1665   ret i1 %retval
1668 define i1 @auto_gen_69(double %a, double %b) {
1669 ; CHECK-LABEL: @auto_gen_69(
1670 ; CHECK-NEXT:    ret i1 true
1672   %cmp = fcmp ult double %a, %b
1673   %cmp1 = fcmp oge double %a, %b
1674   %retval = or i1 %cmp, %cmp1
1675   ret i1 %retval
1678 define i1 @auto_gen_69_logical(double %a, double %b) {
1679 ; CHECK-LABEL: @auto_gen_69_logical(
1680 ; CHECK-NEXT:    ret i1 true
1682   %cmp = fcmp ult double %a, %b
1683   %cmp1 = fcmp oge double %a, %b
1684   %retval = select i1 %cmp, i1 true, i1 %cmp1
1685   ret i1 %retval
1688 define i1 @auto_gen_70(double %a, double %b) {
1689 ; CHECK-LABEL: @auto_gen_70(
1690 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
1691 ; CHECK-NEXT:    ret i1 [[TMP1]]
1693   %cmp = fcmp ult double %a, %b
1694   %cmp1 = fcmp olt double %a, %b
1695   %retval = or i1 %cmp, %cmp1
1696   ret i1 %retval
1699 define i1 @auto_gen_70_logical(double %a, double %b) {
1700 ; CHECK-LABEL: @auto_gen_70_logical(
1701 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
1702 ; CHECK-NEXT:    ret i1 [[TMP1]]
1704   %cmp = fcmp ult double %a, %b
1705   %cmp1 = fcmp olt double %a, %b
1706   %retval = select i1 %cmp, i1 true, i1 %cmp1
1707   ret i1 %retval
1710 define i1 @auto_gen_71(double %a, double %b) {
1711 ; CHECK-LABEL: @auto_gen_71(
1712 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
1713 ; CHECK-NEXT:    ret i1 [[TMP1]]
1715   %cmp = fcmp ult double %a, %b
1716   %cmp1 = fcmp ole double %a, %b
1717   %retval = or i1 %cmp, %cmp1
1718   ret i1 %retval
1721 define i1 @auto_gen_71_logical(double %a, double %b) {
1722 ; CHECK-LABEL: @auto_gen_71_logical(
1723 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
1724 ; CHECK-NEXT:    ret i1 [[TMP1]]
1726   %cmp = fcmp ult double %a, %b
1727   %cmp1 = fcmp ole double %a, %b
1728   %retval = select i1 %cmp, i1 true, i1 %cmp1
1729   ret i1 %retval
1732 define i1 @auto_gen_72(double %a, double %b) {
1733 ; CHECK-LABEL: @auto_gen_72(
1734 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
1735 ; CHECK-NEXT:    ret i1 [[TMP1]]
1737   %cmp = fcmp ult double %a, %b
1738   %cmp1 = fcmp one double %a, %b
1739   %retval = or i1 %cmp, %cmp1
1740   ret i1 %retval
1743 define i1 @auto_gen_72_logical(double %a, double %b) {
1744 ; CHECK-LABEL: @auto_gen_72_logical(
1745 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
1746 ; CHECK-NEXT:    ret i1 [[TMP1]]
1748   %cmp = fcmp ult double %a, %b
1749   %cmp1 = fcmp one double %a, %b
1750   %retval = select i1 %cmp, i1 true, i1 %cmp1
1751   ret i1 %retval
1754 define i1 @auto_gen_73(double %a, double %b) {
1755 ; CHECK-LABEL: @auto_gen_73(
1756 ; CHECK-NEXT:    ret i1 true
1758   %cmp = fcmp ult double %a, %b
1759   %cmp1 = fcmp ord double %a, %b
1760   %retval = or i1 %cmp, %cmp1
1761   ret i1 %retval
1764 define i1 @auto_gen_73_logical(double %a, double %b) {
1765 ; CHECK-LABEL: @auto_gen_73_logical(
1766 ; CHECK-NEXT:    ret i1 true
1768   %cmp = fcmp ult double %a, %b
1769   %cmp1 = fcmp ord double %a, %b
1770   %retval = select i1 %cmp, i1 true, i1 %cmp1
1771   ret i1 %retval
1774 define i1 @auto_gen_74(double %a, double %b) {
1775 ; CHECK-LABEL: @auto_gen_74(
1776 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
1777 ; CHECK-NEXT:    ret i1 [[TMP1]]
1779   %cmp = fcmp ult double %a, %b
1780   %cmp1 = fcmp ueq double %a, %b
1781   %retval = or i1 %cmp, %cmp1
1782   ret i1 %retval
1785 define i1 @auto_gen_74_logical(double %a, double %b) {
1786 ; CHECK-LABEL: @auto_gen_74_logical(
1787 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
1788 ; CHECK-NEXT:    ret i1 [[TMP1]]
1790   %cmp = fcmp ult double %a, %b
1791   %cmp1 = fcmp ueq double %a, %b
1792   %retval = select i1 %cmp, i1 true, i1 %cmp1
1793   ret i1 %retval
1796 define i1 @auto_gen_75(double %a, double %b) {
1797 ; CHECK-LABEL: @auto_gen_75(
1798 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
1799 ; CHECK-NEXT:    ret i1 [[TMP1]]
1801   %cmp = fcmp ult double %a, %b
1802   %cmp1 = fcmp ugt double %a, %b
1803   %retval = or i1 %cmp, %cmp1
1804   ret i1 %retval
1807 define i1 @auto_gen_75_logical(double %a, double %b) {
1808 ; CHECK-LABEL: @auto_gen_75_logical(
1809 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
1810 ; CHECK-NEXT:    ret i1 [[TMP1]]
1812   %cmp = fcmp ult double %a, %b
1813   %cmp1 = fcmp ugt double %a, %b
1814   %retval = select i1 %cmp, i1 true, i1 %cmp1
1815   ret i1 %retval
1818 define i1 @auto_gen_76(double %a, double %b) {
1819 ; CHECK-LABEL: @auto_gen_76(
1820 ; CHECK-NEXT:    ret i1 true
1822   %cmp = fcmp ult double %a, %b
1823   %cmp1 = fcmp uge double %a, %b
1824   %retval = or i1 %cmp, %cmp1
1825   ret i1 %retval
1828 define i1 @auto_gen_76_logical(double %a, double %b) {
1829 ; CHECK-LABEL: @auto_gen_76_logical(
1830 ; CHECK-NEXT:    ret i1 true
1832   %cmp = fcmp ult double %a, %b
1833   %cmp1 = fcmp uge double %a, %b
1834   %retval = select i1 %cmp, i1 true, i1 %cmp1
1835   ret i1 %retval
1838 define i1 @auto_gen_77(double %a, double %b) {
1839 ; CHECK-LABEL: @auto_gen_77(
1840 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
1841 ; CHECK-NEXT:    ret i1 [[TMP1]]
1843   %cmp = fcmp ult double %a, %b
1844   %cmp1 = fcmp ult double %a, %b
1845   %retval = or i1 %cmp, %cmp1
1846   ret i1 %retval
1849 define i1 @auto_gen_77_logical(double %a, double %b) {
1850 ; CHECK-LABEL: @auto_gen_77_logical(
1851 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
1852 ; CHECK-NEXT:    ret i1 [[TMP1]]
1854   %cmp = fcmp ult double %a, %b
1855   %cmp1 = fcmp ult double %a, %b
1856   %retval = select i1 %cmp, i1 true, i1 %cmp1
1857   ret i1 %retval
1860 define i1 @auto_gen_78(double %a, double %b) {
1861 ; CHECK-LABEL: @auto_gen_78(
1862 ; CHECK-NEXT:    [[CMP:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
1863 ; CHECK-NEXT:    ret i1 [[CMP]]
1865   %cmp = fcmp ule double %a, %b
1866   %cmp1 = fcmp false double %a, %b
1867   %retval = or i1 %cmp, %cmp1
1868   ret i1 %retval
1871 define i1 @auto_gen_78_logical(double %a, double %b) {
1872 ; CHECK-LABEL: @auto_gen_78_logical(
1873 ; CHECK-NEXT:    [[CMP:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
1874 ; CHECK-NEXT:    ret i1 [[CMP]]
1876   %cmp = fcmp ule double %a, %b
1877   %cmp1 = fcmp false double %a, %b
1878   %retval = select i1 %cmp, i1 true, i1 %cmp1
1879   ret i1 %retval
1882 define i1 @auto_gen_79(double %a, double %b) {
1883 ; CHECK-LABEL: @auto_gen_79(
1884 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
1885 ; CHECK-NEXT:    ret i1 [[TMP1]]
1887   %cmp = fcmp ule double %a, %b
1888   %cmp1 = fcmp oeq double %a, %b
1889   %retval = or i1 %cmp, %cmp1
1890   ret i1 %retval
1893 define i1 @auto_gen_79_logical(double %a, double %b) {
1894 ; CHECK-LABEL: @auto_gen_79_logical(
1895 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
1896 ; CHECK-NEXT:    ret i1 [[TMP1]]
1898   %cmp = fcmp ule double %a, %b
1899   %cmp1 = fcmp oeq double %a, %b
1900   %retval = select i1 %cmp, i1 true, i1 %cmp1
1901   ret i1 %retval
1904 define i1 @auto_gen_80(double %a, double %b) {
1905 ; CHECK-LABEL: @auto_gen_80(
1906 ; CHECK-NEXT:    ret i1 true
1908   %cmp = fcmp ule double %a, %b
1909   %cmp1 = fcmp ogt double %a, %b
1910   %retval = or i1 %cmp, %cmp1
1911   ret i1 %retval
1914 define i1 @auto_gen_80_logical(double %a, double %b) {
1915 ; CHECK-LABEL: @auto_gen_80_logical(
1916 ; CHECK-NEXT:    ret i1 true
1918   %cmp = fcmp ule double %a, %b
1919   %cmp1 = fcmp ogt double %a, %b
1920   %retval = select i1 %cmp, i1 true, i1 %cmp1
1921   ret i1 %retval
1924 define i1 @auto_gen_81(double %a, double %b) {
1925 ; CHECK-LABEL: @auto_gen_81(
1926 ; CHECK-NEXT:    ret i1 true
1928   %cmp = fcmp ule double %a, %b
1929   %cmp1 = fcmp oge double %a, %b
1930   %retval = or i1 %cmp, %cmp1
1931   ret i1 %retval
1934 define i1 @auto_gen_81_logical(double %a, double %b) {
1935 ; CHECK-LABEL: @auto_gen_81_logical(
1936 ; CHECK-NEXT:    ret i1 true
1938   %cmp = fcmp ule double %a, %b
1939   %cmp1 = fcmp oge double %a, %b
1940   %retval = select i1 %cmp, i1 true, i1 %cmp1
1941   ret i1 %retval
1944 define i1 @auto_gen_82(double %a, double %b) {
1945 ; CHECK-LABEL: @auto_gen_82(
1946 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
1947 ; CHECK-NEXT:    ret i1 [[TMP1]]
1949   %cmp = fcmp ule double %a, %b
1950   %cmp1 = fcmp olt double %a, %b
1951   %retval = or i1 %cmp, %cmp1
1952   ret i1 %retval
1955 define i1 @auto_gen_82_logical(double %a, double %b) {
1956 ; CHECK-LABEL: @auto_gen_82_logical(
1957 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
1958 ; CHECK-NEXT:    ret i1 [[TMP1]]
1960   %cmp = fcmp ule double %a, %b
1961   %cmp1 = fcmp olt double %a, %b
1962   %retval = select i1 %cmp, i1 true, i1 %cmp1
1963   ret i1 %retval
1966 define i1 @auto_gen_83(double %a, double %b) {
1967 ; CHECK-LABEL: @auto_gen_83(
1968 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
1969 ; CHECK-NEXT:    ret i1 [[TMP1]]
1971   %cmp = fcmp ule double %a, %b
1972   %cmp1 = fcmp ole double %a, %b
1973   %retval = or i1 %cmp, %cmp1
1974   ret i1 %retval
1977 define i1 @auto_gen_83_logical(double %a, double %b) {
1978 ; CHECK-LABEL: @auto_gen_83_logical(
1979 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
1980 ; CHECK-NEXT:    ret i1 [[TMP1]]
1982   %cmp = fcmp ule double %a, %b
1983   %cmp1 = fcmp ole double %a, %b
1984   %retval = select i1 %cmp, i1 true, i1 %cmp1
1985   ret i1 %retval
1988 define i1 @auto_gen_84(double %a, double %b) {
1989 ; CHECK-LABEL: @auto_gen_84(
1990 ; CHECK-NEXT:    ret i1 true
1992   %cmp = fcmp ule double %a, %b
1993   %cmp1 = fcmp one double %a, %b
1994   %retval = or i1 %cmp, %cmp1
1995   ret i1 %retval
1998 define i1 @auto_gen_84_logical(double %a, double %b) {
1999 ; CHECK-LABEL: @auto_gen_84_logical(
2000 ; CHECK-NEXT:    ret i1 true
2002   %cmp = fcmp ule double %a, %b
2003   %cmp1 = fcmp one double %a, %b
2004   %retval = select i1 %cmp, i1 true, i1 %cmp1
2005   ret i1 %retval
2008 define i1 @auto_gen_85(double %a, double %b) {
2009 ; CHECK-LABEL: @auto_gen_85(
2010 ; CHECK-NEXT:    ret i1 true
2012   %cmp = fcmp ule double %a, %b
2013   %cmp1 = fcmp ord double %a, %b
2014   %retval = or i1 %cmp, %cmp1
2015   ret i1 %retval
2018 define i1 @auto_gen_85_logical(double %a, double %b) {
2019 ; CHECK-LABEL: @auto_gen_85_logical(
2020 ; CHECK-NEXT:    ret i1 true
2022   %cmp = fcmp ule double %a, %b
2023   %cmp1 = fcmp ord double %a, %b
2024   %retval = select i1 %cmp, i1 true, i1 %cmp1
2025   ret i1 %retval
2028 define i1 @auto_gen_86(double %a, double %b) {
2029 ; CHECK-LABEL: @auto_gen_86(
2030 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
2031 ; CHECK-NEXT:    ret i1 [[TMP1]]
2033   %cmp = fcmp ule double %a, %b
2034   %cmp1 = fcmp ueq double %a, %b
2035   %retval = or i1 %cmp, %cmp1
2036   ret i1 %retval
2039 define i1 @auto_gen_86_logical(double %a, double %b) {
2040 ; CHECK-LABEL: @auto_gen_86_logical(
2041 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
2042 ; CHECK-NEXT:    ret i1 [[TMP1]]
2044   %cmp = fcmp ule double %a, %b
2045   %cmp1 = fcmp ueq double %a, %b
2046   %retval = select i1 %cmp, i1 true, i1 %cmp1
2047   ret i1 %retval
2050 define i1 @auto_gen_87(double %a, double %b) {
2051 ; CHECK-LABEL: @auto_gen_87(
2052 ; CHECK-NEXT:    ret i1 true
2054   %cmp = fcmp ule double %a, %b
2055   %cmp1 = fcmp ugt double %a, %b
2056   %retval = or i1 %cmp, %cmp1
2057   ret i1 %retval
2060 define i1 @auto_gen_87_logical(double %a, double %b) {
2061 ; CHECK-LABEL: @auto_gen_87_logical(
2062 ; CHECK-NEXT:    ret i1 true
2064   %cmp = fcmp ule double %a, %b
2065   %cmp1 = fcmp ugt double %a, %b
2066   %retval = select i1 %cmp, i1 true, i1 %cmp1
2067   ret i1 %retval
2070 define i1 @auto_gen_88(double %a, double %b) {
2071 ; CHECK-LABEL: @auto_gen_88(
2072 ; CHECK-NEXT:    ret i1 true
2074   %cmp = fcmp ule double %a, %b
2075   %cmp1 = fcmp uge double %a, %b
2076   %retval = or i1 %cmp, %cmp1
2077   ret i1 %retval
2080 define i1 @auto_gen_88_logical(double %a, double %b) {
2081 ; CHECK-LABEL: @auto_gen_88_logical(
2082 ; CHECK-NEXT:    ret i1 true
2084   %cmp = fcmp ule double %a, %b
2085   %cmp1 = fcmp uge double %a, %b
2086   %retval = select i1 %cmp, i1 true, i1 %cmp1
2087   ret i1 %retval
2090 define i1 @auto_gen_89(double %a, double %b) {
2091 ; CHECK-LABEL: @auto_gen_89(
2092 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
2093 ; CHECK-NEXT:    ret i1 [[TMP1]]
2095   %cmp = fcmp ule double %a, %b
2096   %cmp1 = fcmp ult double %a, %b
2097   %retval = or i1 %cmp, %cmp1
2098   ret i1 %retval
2101 define i1 @auto_gen_89_logical(double %a, double %b) {
2102 ; CHECK-LABEL: @auto_gen_89_logical(
2103 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
2104 ; CHECK-NEXT:    ret i1 [[TMP1]]
2106   %cmp = fcmp ule double %a, %b
2107   %cmp1 = fcmp ult double %a, %b
2108   %retval = select i1 %cmp, i1 true, i1 %cmp1
2109   ret i1 %retval
2112 define i1 @auto_gen_90(double %a, double %b) {
2113 ; CHECK-LABEL: @auto_gen_90(
2114 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
2115 ; CHECK-NEXT:    ret i1 [[TMP1]]
2117   %cmp = fcmp ule double %a, %b
2118   %cmp1 = fcmp ule double %a, %b
2119   %retval = or i1 %cmp, %cmp1
2120   ret i1 %retval
2123 define i1 @auto_gen_90_logical(double %a, double %b) {
2124 ; CHECK-LABEL: @auto_gen_90_logical(
2125 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
2126 ; CHECK-NEXT:    ret i1 [[TMP1]]
2128   %cmp = fcmp ule double %a, %b
2129   %cmp1 = fcmp ule double %a, %b
2130   %retval = select i1 %cmp, i1 true, i1 %cmp1
2131   ret i1 %retval
2134 define i1 @auto_gen_91(double %a, double %b) {
2135 ; CHECK-LABEL: @auto_gen_91(
2136 ; CHECK-NEXT:    [[CMP:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
2137 ; CHECK-NEXT:    ret i1 [[CMP]]
2139   %cmp = fcmp une double %a, %b
2140   %cmp1 = fcmp false double %a, %b
2141   %retval = or i1 %cmp, %cmp1
2142   ret i1 %retval
2145 define i1 @auto_gen_91_logical(double %a, double %b) {
2146 ; CHECK-LABEL: @auto_gen_91_logical(
2147 ; CHECK-NEXT:    [[CMP:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
2148 ; CHECK-NEXT:    ret i1 [[CMP]]
2150   %cmp = fcmp une double %a, %b
2151   %cmp1 = fcmp false double %a, %b
2152   %retval = select i1 %cmp, i1 true, i1 %cmp1
2153   ret i1 %retval
2156 define i1 @auto_gen_92(double %a, double %b) {
2157 ; CHECK-LABEL: @auto_gen_92(
2158 ; CHECK-NEXT:    ret i1 true
2160   %cmp = fcmp une double %a, %b
2161   %cmp1 = fcmp oeq double %a, %b
2162   %retval = or i1 %cmp, %cmp1
2163   ret i1 %retval
2166 define i1 @auto_gen_92_logical(double %a, double %b) {
2167 ; CHECK-LABEL: @auto_gen_92_logical(
2168 ; CHECK-NEXT:    ret i1 true
2170   %cmp = fcmp une double %a, %b
2171   %cmp1 = fcmp oeq double %a, %b
2172   %retval = select i1 %cmp, i1 true, i1 %cmp1
2173   ret i1 %retval
2176 define i1 @auto_gen_93(double %a, double %b) {
2177 ; CHECK-LABEL: @auto_gen_93(
2178 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
2179 ; CHECK-NEXT:    ret i1 [[TMP1]]
2181   %cmp = fcmp une double %a, %b
2182   %cmp1 = fcmp ogt double %a, %b
2183   %retval = or i1 %cmp, %cmp1
2184   ret i1 %retval
2187 define i1 @auto_gen_93_logical(double %a, double %b) {
2188 ; CHECK-LABEL: @auto_gen_93_logical(
2189 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
2190 ; CHECK-NEXT:    ret i1 [[TMP1]]
2192   %cmp = fcmp une double %a, %b
2193   %cmp1 = fcmp ogt double %a, %b
2194   %retval = select i1 %cmp, i1 true, i1 %cmp1
2195   ret i1 %retval
2198 define i1 @auto_gen_94(double %a, double %b) {
2199 ; CHECK-LABEL: @auto_gen_94(
2200 ; CHECK-NEXT:    ret i1 true
2202   %cmp = fcmp une double %a, %b
2203   %cmp1 = fcmp oge double %a, %b
2204   %retval = or i1 %cmp, %cmp1
2205   ret i1 %retval
2208 define i1 @auto_gen_94_logical(double %a, double %b) {
2209 ; CHECK-LABEL: @auto_gen_94_logical(
2210 ; CHECK-NEXT:    ret i1 true
2212   %cmp = fcmp une double %a, %b
2213   %cmp1 = fcmp oge double %a, %b
2214   %retval = select i1 %cmp, i1 true, i1 %cmp1
2215   ret i1 %retval
2218 define i1 @auto_gen_95(double %a, double %b) {
2219 ; CHECK-LABEL: @auto_gen_95(
2220 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
2221 ; CHECK-NEXT:    ret i1 [[TMP1]]
2223   %cmp = fcmp une double %a, %b
2224   %cmp1 = fcmp olt double %a, %b
2225   %retval = or i1 %cmp, %cmp1
2226   ret i1 %retval
2229 define i1 @auto_gen_95_logical(double %a, double %b) {
2230 ; CHECK-LABEL: @auto_gen_95_logical(
2231 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
2232 ; CHECK-NEXT:    ret i1 [[TMP1]]
2234   %cmp = fcmp une double %a, %b
2235   %cmp1 = fcmp olt double %a, %b
2236   %retval = select i1 %cmp, i1 true, i1 %cmp1
2237   ret i1 %retval
2240 define i1 @auto_gen_96(double %a, double %b) {
2241 ; CHECK-LABEL: @auto_gen_96(
2242 ; CHECK-NEXT:    ret i1 true
2244   %cmp = fcmp une double %a, %b
2245   %cmp1 = fcmp ole double %a, %b
2246   %retval = or i1 %cmp, %cmp1
2247   ret i1 %retval
2250 define i1 @auto_gen_96_logical(double %a, double %b) {
2251 ; CHECK-LABEL: @auto_gen_96_logical(
2252 ; CHECK-NEXT:    ret i1 true
2254   %cmp = fcmp une double %a, %b
2255   %cmp1 = fcmp ole double %a, %b
2256   %retval = select i1 %cmp, i1 true, i1 %cmp1
2257   ret i1 %retval
2260 define i1 @auto_gen_97(double %a, double %b) {
2261 ; CHECK-LABEL: @auto_gen_97(
2262 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
2263 ; CHECK-NEXT:    ret i1 [[TMP1]]
2265   %cmp = fcmp une double %a, %b
2266   %cmp1 = fcmp one double %a, %b
2267   %retval = or i1 %cmp, %cmp1
2268   ret i1 %retval
2271 define i1 @auto_gen_97_logical(double %a, double %b) {
2272 ; CHECK-LABEL: @auto_gen_97_logical(
2273 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
2274 ; CHECK-NEXT:    ret i1 [[TMP1]]
2276   %cmp = fcmp une double %a, %b
2277   %cmp1 = fcmp one double %a, %b
2278   %retval = select i1 %cmp, i1 true, i1 %cmp1
2279   ret i1 %retval
2282 define i1 @auto_gen_98(double %a, double %b) {
2283 ; CHECK-LABEL: @auto_gen_98(
2284 ; CHECK-NEXT:    ret i1 true
2286   %cmp = fcmp une double %a, %b
2287   %cmp1 = fcmp ord double %a, %b
2288   %retval = or i1 %cmp, %cmp1
2289   ret i1 %retval
2292 define i1 @auto_gen_98_logical(double %a, double %b) {
2293 ; CHECK-LABEL: @auto_gen_98_logical(
2294 ; CHECK-NEXT:    ret i1 true
2296   %cmp = fcmp une double %a, %b
2297   %cmp1 = fcmp ord double %a, %b
2298   %retval = select i1 %cmp, i1 true, i1 %cmp1
2299   ret i1 %retval
2302 define i1 @auto_gen_99(double %a, double %b) {
2303 ; CHECK-LABEL: @auto_gen_99(
2304 ; CHECK-NEXT:    ret i1 true
2306   %cmp = fcmp une double %a, %b
2307   %cmp1 = fcmp ueq double %a, %b
2308   %retval = or i1 %cmp, %cmp1
2309   ret i1 %retval
2312 define i1 @auto_gen_99_logical(double %a, double %b) {
2313 ; CHECK-LABEL: @auto_gen_99_logical(
2314 ; CHECK-NEXT:    ret i1 true
2316   %cmp = fcmp une double %a, %b
2317   %cmp1 = fcmp ueq double %a, %b
2318   %retval = select i1 %cmp, i1 true, i1 %cmp1
2319   ret i1 %retval
2322 define i1 @auto_gen_100(double %a, double %b) {
2323 ; CHECK-LABEL: @auto_gen_100(
2324 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
2325 ; CHECK-NEXT:    ret i1 [[TMP1]]
2327   %cmp = fcmp une double %a, %b
2328   %cmp1 = fcmp ugt double %a, %b
2329   %retval = or i1 %cmp, %cmp1
2330   ret i1 %retval
2333 define i1 @auto_gen_100_logical(double %a, double %b) {
2334 ; CHECK-LABEL: @auto_gen_100_logical(
2335 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
2336 ; CHECK-NEXT:    ret i1 [[TMP1]]
2338   %cmp = fcmp une double %a, %b
2339   %cmp1 = fcmp ugt double %a, %b
2340   %retval = select i1 %cmp, i1 true, i1 %cmp1
2341   ret i1 %retval
2344 define i1 @auto_gen_101(double %a, double %b) {
2345 ; CHECK-LABEL: @auto_gen_101(
2346 ; CHECK-NEXT:    ret i1 true
2348   %cmp = fcmp une double %a, %b
2349   %cmp1 = fcmp uge double %a, %b
2350   %retval = or i1 %cmp, %cmp1
2351   ret i1 %retval
2354 define i1 @auto_gen_101_logical(double %a, double %b) {
2355 ; CHECK-LABEL: @auto_gen_101_logical(
2356 ; CHECK-NEXT:    ret i1 true
2358   %cmp = fcmp une double %a, %b
2359   %cmp1 = fcmp uge double %a, %b
2360   %retval = select i1 %cmp, i1 true, i1 %cmp1
2361   ret i1 %retval
2364 define i1 @auto_gen_102(double %a, double %b) {
2365 ; CHECK-LABEL: @auto_gen_102(
2366 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
2367 ; CHECK-NEXT:    ret i1 [[TMP1]]
2369   %cmp = fcmp une double %a, %b
2370   %cmp1 = fcmp ult double %a, %b
2371   %retval = or i1 %cmp, %cmp1
2372   ret i1 %retval
2375 define i1 @auto_gen_102_logical(double %a, double %b) {
2376 ; CHECK-LABEL: @auto_gen_102_logical(
2377 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
2378 ; CHECK-NEXT:    ret i1 [[TMP1]]
2380   %cmp = fcmp une double %a, %b
2381   %cmp1 = fcmp ult double %a, %b
2382   %retval = select i1 %cmp, i1 true, i1 %cmp1
2383   ret i1 %retval
2386 define i1 @auto_gen_103(double %a, double %b) {
2387 ; CHECK-LABEL: @auto_gen_103(
2388 ; CHECK-NEXT:    ret i1 true
2390   %cmp = fcmp une double %a, %b
2391   %cmp1 = fcmp ule double %a, %b
2392   %retval = or i1 %cmp, %cmp1
2393   ret i1 %retval
2396 define i1 @auto_gen_103_logical(double %a, double %b) {
2397 ; CHECK-LABEL: @auto_gen_103_logical(
2398 ; CHECK-NEXT:    ret i1 true
2400   %cmp = fcmp une double %a, %b
2401   %cmp1 = fcmp ule double %a, %b
2402   %retval = select i1 %cmp, i1 true, i1 %cmp1
2403   ret i1 %retval
2406 define i1 @auto_gen_104(double %a, double %b) {
2407 ; CHECK-LABEL: @auto_gen_104(
2408 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
2409 ; CHECK-NEXT:    ret i1 [[TMP1]]
2411   %cmp = fcmp une double %a, %b
2412   %cmp1 = fcmp une double %a, %b
2413   %retval = or i1 %cmp, %cmp1
2414   ret i1 %retval
2417 define i1 @auto_gen_104_logical(double %a, double %b) {
2418 ; CHECK-LABEL: @auto_gen_104_logical(
2419 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
2420 ; CHECK-NEXT:    ret i1 [[TMP1]]
2422   %cmp = fcmp une double %a, %b
2423   %cmp1 = fcmp une double %a, %b
2424   %retval = select i1 %cmp, i1 true, i1 %cmp1
2425   ret i1 %retval
2428 define i1 @auto_gen_105(double %a, double %b) {
2429 ; CHECK-LABEL: @auto_gen_105(
2430 ; CHECK-NEXT:    [[CMP:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
2431 ; CHECK-NEXT:    ret i1 [[CMP]]
2433   %cmp = fcmp uno double %a, %b
2434   %cmp1 = fcmp false double %a, %b
2435   %retval = or i1 %cmp, %cmp1
2436   ret i1 %retval
2439 define i1 @auto_gen_105_logical(double %a, double %b) {
2440 ; CHECK-LABEL: @auto_gen_105_logical(
2441 ; CHECK-NEXT:    [[CMP:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
2442 ; CHECK-NEXT:    ret i1 [[CMP]]
2444   %cmp = fcmp uno double %a, %b
2445   %cmp1 = fcmp false double %a, %b
2446   %retval = select i1 %cmp, i1 true, i1 %cmp1
2447   ret i1 %retval
2450 define i1 @auto_gen_106(double %a, double %b) {
2451 ; CHECK-LABEL: @auto_gen_106(
2452 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
2453 ; CHECK-NEXT:    ret i1 [[TMP1]]
2455   %cmp = fcmp uno double %a, %b
2456   %cmp1 = fcmp oeq double %a, %b
2457   %retval = or i1 %cmp, %cmp1
2458   ret i1 %retval
2461 define i1 @auto_gen_106_logical(double %a, double %b) {
2462 ; CHECK-LABEL: @auto_gen_106_logical(
2463 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
2464 ; CHECK-NEXT:    ret i1 [[TMP1]]
2466   %cmp = fcmp uno double %a, %b
2467   %cmp1 = fcmp oeq double %a, %b
2468   %retval = select i1 %cmp, i1 true, i1 %cmp1
2469   ret i1 %retval
2472 define i1 @auto_gen_107(double %a, double %b) {
2473 ; CHECK-LABEL: @auto_gen_107(
2474 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
2475 ; CHECK-NEXT:    ret i1 [[TMP1]]
2477   %cmp = fcmp uno double %a, %b
2478   %cmp1 = fcmp ogt double %a, %b
2479   %retval = or i1 %cmp, %cmp1
2480   ret i1 %retval
2483 define i1 @auto_gen_107_logical(double %a, double %b) {
2484 ; CHECK-LABEL: @auto_gen_107_logical(
2485 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
2486 ; CHECK-NEXT:    ret i1 [[TMP1]]
2488   %cmp = fcmp uno double %a, %b
2489   %cmp1 = fcmp ogt double %a, %b
2490   %retval = select i1 %cmp, i1 true, i1 %cmp1
2491   ret i1 %retval
2494 define i1 @auto_gen_108(double %a, double %b) {
2495 ; CHECK-LABEL: @auto_gen_108(
2496 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
2497 ; CHECK-NEXT:    ret i1 [[TMP1]]
2499   %cmp = fcmp uno double %a, %b
2500   %cmp1 = fcmp oge double %a, %b
2501   %retval = or i1 %cmp, %cmp1
2502   ret i1 %retval
2505 define i1 @auto_gen_108_logical(double %a, double %b) {
2506 ; CHECK-LABEL: @auto_gen_108_logical(
2507 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
2508 ; CHECK-NEXT:    ret i1 [[TMP1]]
2510   %cmp = fcmp uno double %a, %b
2511   %cmp1 = fcmp oge double %a, %b
2512   %retval = select i1 %cmp, i1 true, i1 %cmp1
2513   ret i1 %retval
2516 define i1 @auto_gen_109(double %a, double %b) {
2517 ; CHECK-LABEL: @auto_gen_109(
2518 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
2519 ; CHECK-NEXT:    ret i1 [[TMP1]]
2521   %cmp = fcmp uno double %a, %b
2522   %cmp1 = fcmp olt double %a, %b
2523   %retval = or i1 %cmp, %cmp1
2524   ret i1 %retval
2527 define i1 @auto_gen_109_logical(double %a, double %b) {
2528 ; CHECK-LABEL: @auto_gen_109_logical(
2529 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
2530 ; CHECK-NEXT:    ret i1 [[TMP1]]
2532   %cmp = fcmp uno double %a, %b
2533   %cmp1 = fcmp olt double %a, %b
2534   %retval = select i1 %cmp, i1 true, i1 %cmp1
2535   ret i1 %retval
2538 define i1 @auto_gen_110(double %a, double %b) {
2539 ; CHECK-LABEL: @auto_gen_110(
2540 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
2541 ; CHECK-NEXT:    ret i1 [[TMP1]]
2543   %cmp = fcmp uno double %a, %b
2544   %cmp1 = fcmp ole double %a, %b
2545   %retval = or i1 %cmp, %cmp1
2546   ret i1 %retval
2549 define i1 @auto_gen_110_logical(double %a, double %b) {
2550 ; CHECK-LABEL: @auto_gen_110_logical(
2551 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
2552 ; CHECK-NEXT:    ret i1 [[TMP1]]
2554   %cmp = fcmp uno double %a, %b
2555   %cmp1 = fcmp ole double %a, %b
2556   %retval = select i1 %cmp, i1 true, i1 %cmp1
2557   ret i1 %retval
2560 define i1 @auto_gen_111(double %a, double %b) {
2561 ; CHECK-LABEL: @auto_gen_111(
2562 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
2563 ; CHECK-NEXT:    ret i1 [[TMP1]]
2565   %cmp = fcmp uno double %a, %b
2566   %cmp1 = fcmp one double %a, %b
2567   %retval = or i1 %cmp, %cmp1
2568   ret i1 %retval
2571 define i1 @auto_gen_111_logical(double %a, double %b) {
2572 ; CHECK-LABEL: @auto_gen_111_logical(
2573 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
2574 ; CHECK-NEXT:    ret i1 [[TMP1]]
2576   %cmp = fcmp uno double %a, %b
2577   %cmp1 = fcmp one double %a, %b
2578   %retval = select i1 %cmp, i1 true, i1 %cmp1
2579   ret i1 %retval
2582 define i1 @auto_gen_112(double %a, double %b) {
2583 ; CHECK-LABEL: @auto_gen_112(
2584 ; CHECK-NEXT:    ret i1 true
2586   %cmp = fcmp uno double %a, %b
2587   %cmp1 = fcmp ord double %a, %b
2588   %retval = or i1 %cmp, %cmp1
2589   ret i1 %retval
2592 define i1 @auto_gen_112_logical(double %a, double %b) {
2593 ; CHECK-LABEL: @auto_gen_112_logical(
2594 ; CHECK-NEXT:    ret i1 true
2596   %cmp = fcmp uno double %a, %b
2597   %cmp1 = fcmp ord double %a, %b
2598   %retval = select i1 %cmp, i1 true, i1 %cmp1
2599   ret i1 %retval
2602 define i1 @auto_gen_113(double %a, double %b) {
2603 ; CHECK-LABEL: @auto_gen_113(
2604 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
2605 ; CHECK-NEXT:    ret i1 [[TMP1]]
2607   %cmp = fcmp uno double %a, %b
2608   %cmp1 = fcmp ueq double %a, %b
2609   %retval = or i1 %cmp, %cmp1
2610   ret i1 %retval
2613 define i1 @auto_gen_113_logical(double %a, double %b) {
2614 ; CHECK-LABEL: @auto_gen_113_logical(
2615 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
2616 ; CHECK-NEXT:    ret i1 [[TMP1]]
2618   %cmp = fcmp uno double %a, %b
2619   %cmp1 = fcmp ueq double %a, %b
2620   %retval = select i1 %cmp, i1 true, i1 %cmp1
2621   ret i1 %retval
2624 define i1 @auto_gen_114(double %a, double %b) {
2625 ; CHECK-LABEL: @auto_gen_114(
2626 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
2627 ; CHECK-NEXT:    ret i1 [[TMP1]]
2629   %cmp = fcmp uno double %a, %b
2630   %cmp1 = fcmp ugt double %a, %b
2631   %retval = or i1 %cmp, %cmp1
2632   ret i1 %retval
2635 define i1 @auto_gen_114_logical(double %a, double %b) {
2636 ; CHECK-LABEL: @auto_gen_114_logical(
2637 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
2638 ; CHECK-NEXT:    ret i1 [[TMP1]]
2640   %cmp = fcmp uno double %a, %b
2641   %cmp1 = fcmp ugt double %a, %b
2642   %retval = select i1 %cmp, i1 true, i1 %cmp1
2643   ret i1 %retval
2646 define i1 @auto_gen_115(double %a, double %b) {
2647 ; CHECK-LABEL: @auto_gen_115(
2648 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
2649 ; CHECK-NEXT:    ret i1 [[TMP1]]
2651   %cmp = fcmp uno double %a, %b
2652   %cmp1 = fcmp uge double %a, %b
2653   %retval = or i1 %cmp, %cmp1
2654   ret i1 %retval
2657 define i1 @auto_gen_115_logical(double %a, double %b) {
2658 ; CHECK-LABEL: @auto_gen_115_logical(
2659 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
2660 ; CHECK-NEXT:    ret i1 [[TMP1]]
2662   %cmp = fcmp uno double %a, %b
2663   %cmp1 = fcmp uge double %a, %b
2664   %retval = select i1 %cmp, i1 true, i1 %cmp1
2665   ret i1 %retval
2668 define i1 @auto_gen_116(double %a, double %b) {
2669 ; CHECK-LABEL: @auto_gen_116(
2670 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
2671 ; CHECK-NEXT:    ret i1 [[TMP1]]
2673   %cmp = fcmp uno double %a, %b
2674   %cmp1 = fcmp ult double %a, %b
2675   %retval = or i1 %cmp, %cmp1
2676   ret i1 %retval
2679 define i1 @auto_gen_116_logical(double %a, double %b) {
2680 ; CHECK-LABEL: @auto_gen_116_logical(
2681 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
2682 ; CHECK-NEXT:    ret i1 [[TMP1]]
2684   %cmp = fcmp uno double %a, %b
2685   %cmp1 = fcmp ult double %a, %b
2686   %retval = select i1 %cmp, i1 true, i1 %cmp1
2687   ret i1 %retval
2690 define i1 @auto_gen_117(double %a, double %b) {
2691 ; CHECK-LABEL: @auto_gen_117(
2692 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
2693 ; CHECK-NEXT:    ret i1 [[TMP1]]
2695   %cmp = fcmp uno double %a, %b
2696   %cmp1 = fcmp ule double %a, %b
2697   %retval = or i1 %cmp, %cmp1
2698   ret i1 %retval
2701 define i1 @auto_gen_117_logical(double %a, double %b) {
2702 ; CHECK-LABEL: @auto_gen_117_logical(
2703 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
2704 ; CHECK-NEXT:    ret i1 [[TMP1]]
2706   %cmp = fcmp uno double %a, %b
2707   %cmp1 = fcmp ule double %a, %b
2708   %retval = select i1 %cmp, i1 true, i1 %cmp1
2709   ret i1 %retval
2712 define i1 @auto_gen_118(double %a, double %b) {
2713 ; CHECK-LABEL: @auto_gen_118(
2714 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
2715 ; CHECK-NEXT:    ret i1 [[TMP1]]
2717   %cmp = fcmp uno double %a, %b
2718   %cmp1 = fcmp une double %a, %b
2719   %retval = or i1 %cmp, %cmp1
2720   ret i1 %retval
2723 define i1 @auto_gen_118_logical(double %a, double %b) {
2724 ; CHECK-LABEL: @auto_gen_118_logical(
2725 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
2726 ; CHECK-NEXT:    ret i1 [[TMP1]]
2728   %cmp = fcmp uno double %a, %b
2729   %cmp1 = fcmp une double %a, %b
2730   %retval = select i1 %cmp, i1 true, i1 %cmp1
2731   ret i1 %retval
2734 define i1 @auto_gen_119(double %a, double %b) {
2735 ; CHECK-LABEL: @auto_gen_119(
2736 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
2737 ; CHECK-NEXT:    ret i1 [[TMP1]]
2739   %cmp = fcmp uno double %a, %b
2740   %cmp1 = fcmp uno double %a, %b
2741   %retval = or i1 %cmp, %cmp1
2742   ret i1 %retval
2745 define i1 @auto_gen_119_logical(double %a, double %b) {
2746 ; CHECK-LABEL: @auto_gen_119_logical(
2747 ; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
2748 ; CHECK-NEXT:    ret i1 [[TMP1]]
2750   %cmp = fcmp uno double %a, %b
2751   %cmp1 = fcmp uno double %a, %b
2752   %retval = select i1 %cmp, i1 true, i1 %cmp1
2753   ret i1 %retval
2756 define i1 @auto_gen_120(double %a, double %b) {
2757 ; CHECK-LABEL: @auto_gen_120(
2758 ; CHECK-NEXT:    ret i1 true
2760   %cmp = fcmp true double %a, %b
2761   %cmp1 = fcmp false double %a, %b
2762   %retval = or i1 %cmp, %cmp1
2763   ret i1 %retval
2766 define i1 @auto_gen_120_logical(double %a, double %b) {
2767 ; CHECK-LABEL: @auto_gen_120_logical(
2768 ; CHECK-NEXT:    ret i1 true
2770   %cmp = fcmp true double %a, %b
2771   %cmp1 = fcmp false double %a, %b
2772   %retval = select i1 %cmp, i1 true, i1 %cmp1
2773   ret i1 %retval
2776 define i1 @auto_gen_121(double %a, double %b) {
2777 ; CHECK-LABEL: @auto_gen_121(
2778 ; CHECK-NEXT:    ret i1 true
2780   %cmp = fcmp true double %a, %b
2781   %cmp1 = fcmp oeq double %a, %b
2782   %retval = or i1 %cmp, %cmp1
2783   ret i1 %retval
2786 define i1 @auto_gen_121_logical(double %a, double %b) {
2787 ; CHECK-LABEL: @auto_gen_121_logical(
2788 ; CHECK-NEXT:    ret i1 true
2790   %cmp = fcmp true double %a, %b
2791   %cmp1 = fcmp oeq double %a, %b
2792   %retval = select i1 %cmp, i1 true, i1 %cmp1
2793   ret i1 %retval
2796 define i1 @auto_gen_122(double %a, double %b) {
2797 ; CHECK-LABEL: @auto_gen_122(
2798 ; CHECK-NEXT:    ret i1 true
2800   %cmp = fcmp true double %a, %b
2801   %cmp1 = fcmp ogt double %a, %b
2802   %retval = or i1 %cmp, %cmp1
2803   ret i1 %retval
2806 define i1 @auto_gen_122_logical(double %a, double %b) {
2807 ; CHECK-LABEL: @auto_gen_122_logical(
2808 ; CHECK-NEXT:    ret i1 true
2810   %cmp = fcmp true double %a, %b
2811   %cmp1 = fcmp ogt double %a, %b
2812   %retval = select i1 %cmp, i1 true, i1 %cmp1
2813   ret i1 %retval
2816 define i1 @auto_gen_123(double %a, double %b) {
2817 ; CHECK-LABEL: @auto_gen_123(
2818 ; CHECK-NEXT:    ret i1 true
2820   %cmp = fcmp true double %a, %b
2821   %cmp1 = fcmp oge double %a, %b
2822   %retval = or i1 %cmp, %cmp1
2823   ret i1 %retval
2826 define i1 @auto_gen_123_logical(double %a, double %b) {
2827 ; CHECK-LABEL: @auto_gen_123_logical(
2828 ; CHECK-NEXT:    ret i1 true
2830   %cmp = fcmp true double %a, %b
2831   %cmp1 = fcmp oge double %a, %b
2832   %retval = select i1 %cmp, i1 true, i1 %cmp1
2833   ret i1 %retval
2836 define i1 @auto_gen_124(double %a, double %b) {
2837 ; CHECK-LABEL: @auto_gen_124(
2838 ; CHECK-NEXT:    ret i1 true
2840   %cmp = fcmp true double %a, %b
2841   %cmp1 = fcmp olt double %a, %b
2842   %retval = or i1 %cmp, %cmp1
2843   ret i1 %retval
2846 define i1 @auto_gen_124_logical(double %a, double %b) {
2847 ; CHECK-LABEL: @auto_gen_124_logical(
2848 ; CHECK-NEXT:    ret i1 true
2850   %cmp = fcmp true double %a, %b
2851   %cmp1 = fcmp olt double %a, %b
2852   %retval = select i1 %cmp, i1 true, i1 %cmp1
2853   ret i1 %retval
2856 define i1 @auto_gen_125(double %a, double %b) {
2857 ; CHECK-LABEL: @auto_gen_125(
2858 ; CHECK-NEXT:    ret i1 true
2860   %cmp = fcmp true double %a, %b
2861   %cmp1 = fcmp ole double %a, %b
2862   %retval = or i1 %cmp, %cmp1
2863   ret i1 %retval
2866 define i1 @auto_gen_125_logical(double %a, double %b) {
2867 ; CHECK-LABEL: @auto_gen_125_logical(
2868 ; CHECK-NEXT:    ret i1 true
2870   %cmp = fcmp true double %a, %b
2871   %cmp1 = fcmp ole double %a, %b
2872   %retval = select i1 %cmp, i1 true, i1 %cmp1
2873   ret i1 %retval
2876 define i1 @auto_gen_126(double %a, double %b) {
2877 ; CHECK-LABEL: @auto_gen_126(
2878 ; CHECK-NEXT:    ret i1 true
2880   %cmp = fcmp true double %a, %b
2881   %cmp1 = fcmp one double %a, %b
2882   %retval = or i1 %cmp, %cmp1
2883   ret i1 %retval
2886 define i1 @auto_gen_126_logical(double %a, double %b) {
2887 ; CHECK-LABEL: @auto_gen_126_logical(
2888 ; CHECK-NEXT:    ret i1 true
2890   %cmp = fcmp true double %a, %b
2891   %cmp1 = fcmp one double %a, %b
2892   %retval = select i1 %cmp, i1 true, i1 %cmp1
2893   ret i1 %retval
2896 define i1 @auto_gen_127(double %a, double %b) {
2897 ; CHECK-LABEL: @auto_gen_127(
2898 ; CHECK-NEXT:    ret i1 true
2900   %cmp = fcmp true double %a, %b
2901   %cmp1 = fcmp ord double %a, %b
2902   %retval = or i1 %cmp, %cmp1
2903   ret i1 %retval
2906 define i1 @auto_gen_127_logical(double %a, double %b) {
2907 ; CHECK-LABEL: @auto_gen_127_logical(
2908 ; CHECK-NEXT:    ret i1 true
2910   %cmp = fcmp true double %a, %b
2911   %cmp1 = fcmp ord double %a, %b
2912   %retval = select i1 %cmp, i1 true, i1 %cmp1
2913   ret i1 %retval
2916 define i1 @auto_gen_128(double %a, double %b) {
2917 ; CHECK-LABEL: @auto_gen_128(
2918 ; CHECK-NEXT:    ret i1 true
2920   %cmp = fcmp true double %a, %b
2921   %cmp1 = fcmp ueq double %a, %b
2922   %retval = or i1 %cmp, %cmp1
2923   ret i1 %retval
2926 define i1 @auto_gen_128_logical(double %a, double %b) {
2927 ; CHECK-LABEL: @auto_gen_128_logical(
2928 ; CHECK-NEXT:    ret i1 true
2930   %cmp = fcmp true double %a, %b
2931   %cmp1 = fcmp ueq double %a, %b
2932   %retval = select i1 %cmp, i1 true, i1 %cmp1
2933   ret i1 %retval
2936 define i1 @auto_gen_129(double %a, double %b) {
2937 ; CHECK-LABEL: @auto_gen_129(
2938 ; CHECK-NEXT:    ret i1 true
2940   %cmp = fcmp true double %a, %b
2941   %cmp1 = fcmp ugt double %a, %b
2942   %retval = or i1 %cmp, %cmp1
2943   ret i1 %retval
2946 define i1 @auto_gen_129_logical(double %a, double %b) {
2947 ; CHECK-LABEL: @auto_gen_129_logical(
2948 ; CHECK-NEXT:    ret i1 true
2950   %cmp = fcmp true double %a, %b
2951   %cmp1 = fcmp ugt double %a, %b
2952   %retval = select i1 %cmp, i1 true, i1 %cmp1
2953   ret i1 %retval
2956 define i1 @auto_gen_130(double %a, double %b) {
2957 ; CHECK-LABEL: @auto_gen_130(
2958 ; CHECK-NEXT:    ret i1 true
2960   %cmp = fcmp true double %a, %b
2961   %cmp1 = fcmp uge double %a, %b
2962   %retval = or i1 %cmp, %cmp1
2963   ret i1 %retval
2966 define i1 @auto_gen_130_logical(double %a, double %b) {
2967 ; CHECK-LABEL: @auto_gen_130_logical(
2968 ; CHECK-NEXT:    ret i1 true
2970   %cmp = fcmp true double %a, %b
2971   %cmp1 = fcmp uge double %a, %b
2972   %retval = select i1 %cmp, i1 true, i1 %cmp1
2973   ret i1 %retval
2976 define i1 @auto_gen_131(double %a, double %b) {
2977 ; CHECK-LABEL: @auto_gen_131(
2978 ; CHECK-NEXT:    ret i1 true
2980   %cmp = fcmp true double %a, %b
2981   %cmp1 = fcmp ult double %a, %b
2982   %retval = or i1 %cmp, %cmp1
2983   ret i1 %retval
2986 define i1 @auto_gen_131_logical(double %a, double %b) {
2987 ; CHECK-LABEL: @auto_gen_131_logical(
2988 ; CHECK-NEXT:    ret i1 true
2990   %cmp = fcmp true double %a, %b
2991   %cmp1 = fcmp ult double %a, %b
2992   %retval = select i1 %cmp, i1 true, i1 %cmp1
2993   ret i1 %retval
2996 define i1 @auto_gen_132(double %a, double %b) {
2997 ; CHECK-LABEL: @auto_gen_132(
2998 ; CHECK-NEXT:    ret i1 true
3000   %cmp = fcmp true double %a, %b
3001   %cmp1 = fcmp ule double %a, %b
3002   %retval = or i1 %cmp, %cmp1
3003   ret i1 %retval
3006 define i1 @auto_gen_132_logical(double %a, double %b) {
3007 ; CHECK-LABEL: @auto_gen_132_logical(
3008 ; CHECK-NEXT:    ret i1 true
3010   %cmp = fcmp true double %a, %b
3011   %cmp1 = fcmp ule double %a, %b
3012   %retval = select i1 %cmp, i1 true, i1 %cmp1
3013   ret i1 %retval
3016 define i1 @auto_gen_133(double %a, double %b) {
3017 ; CHECK-LABEL: @auto_gen_133(
3018 ; CHECK-NEXT:    ret i1 true
3020   %cmp = fcmp true double %a, %b
3021   %cmp1 = fcmp une double %a, %b
3022   %retval = or i1 %cmp, %cmp1
3023   ret i1 %retval
3026 define i1 @auto_gen_133_logical(double %a, double %b) {
3027 ; CHECK-LABEL: @auto_gen_133_logical(
3028 ; CHECK-NEXT:    ret i1 true
3030   %cmp = fcmp true double %a, %b
3031   %cmp1 = fcmp une double %a, %b
3032   %retval = select i1 %cmp, i1 true, i1 %cmp1
3033   ret i1 %retval
3036 define i1 @auto_gen_134(double %a, double %b) {
3037 ; CHECK-LABEL: @auto_gen_134(
3038 ; CHECK-NEXT:    ret i1 true
3040   %cmp = fcmp true double %a, %b
3041   %cmp1 = fcmp uno double %a, %b
3042   %retval = or i1 %cmp, %cmp1
3043   ret i1 %retval
3046 define i1 @auto_gen_134_logical(double %a, double %b) {
3047 ; CHECK-LABEL: @auto_gen_134_logical(
3048 ; CHECK-NEXT:    ret i1 true
3050   %cmp = fcmp true double %a, %b
3051   %cmp1 = fcmp uno double %a, %b
3052   %retval = select i1 %cmp, i1 true, i1 %cmp1
3053   ret i1 %retval
3056 define i1 @auto_gen_135(double %a, double %b) {
3057 ; CHECK-LABEL: @auto_gen_135(
3058 ; CHECK-NEXT:    ret i1 true
3060   %cmp = fcmp true double %a, %b
3061   %cmp1 = fcmp true double %a, %b
3062   %retval = or i1 %cmp, %cmp1
3063   ret i1 %retval
3066 define i1 @auto_gen_135_logical(double %a, double %b) {
3067 ; CHECK-LABEL: @auto_gen_135_logical(
3068 ; CHECK-NEXT:    ret i1 true
3070   %cmp = fcmp true double %a, %b
3071   %cmp1 = fcmp true double %a, %b
3072   %retval = select i1 %cmp, i1 true, i1 %cmp1
3073   ret i1 %retval