1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2 ; RUN: opt < %s -instcombine -S | FileCheck %s
4 define i1 @PR1738(double %x, double %y) {
5 ; CHECK-LABEL: @PR1738(
6 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[X:%.*]], [[Y:%.*]]
7 ; CHECK-NEXT: ret i1 [[TMP1]]
9 %cmp1 = fcmp uno double %x, 0.0
10 %cmp2 = fcmp uno double %y, 0.0
11 %or = or i1 %cmp1, %cmp2
15 ; 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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