1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2 ; RUN: opt < %s -instcombine -S | FileCheck %s
4 define i1 @PR1738(double %x, double %y) {
5 ; CHECK-LABEL: @PR1738(
6 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[X:%.*]], [[Y:%.*]]
7 ; CHECK-NEXT: ret i1 [[TMP1]]
9 %cmp1 = fcmp uno double %x, 0.0
10 %cmp2 = fcmp uno double %y, 0.0
11 %or = or i1 %cmp1, %cmp2
15 define <2 x i1> @PR1738_vec_undef(<2 x double> %x, <2 x double> %y) {
16 ; CHECK-LABEL: @PR1738_vec_undef(
17 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno <2 x double> [[X:%.*]], [[Y:%.*]]
18 ; CHECK-NEXT: ret <2 x i1> [[TMP1]]
20 %cmp1 = fcmp uno <2 x double> %x, <double 0.0, double undef>
21 %cmp2 = fcmp uno <2 x double> %y, <double undef, double 0.0>
22 %or = or <2 x i1> %cmp1, %cmp2
26 define i1 @PR41069(double %a, double %b, double %c, double %d) {
27 ; CHECK-LABEL: @PR41069(
28 ; CHECK-NEXT: [[UNO1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
29 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[D:%.*]], [[C:%.*]]
30 ; CHECK-NEXT: [[R:%.*]] = or i1 [[TMP1]], [[UNO1]]
31 ; CHECK-NEXT: ret i1 [[R]]
33 %uno1 = fcmp uno double %a, %b
34 %uno2 = fcmp uno double %c, 0.0
35 %or = or i1 %uno1, %uno2
36 %uno3 = fcmp uno double %d, 0.0
41 define i1 @PR41069_commute(double %a, double %b, double %c, double %d) {
42 ; CHECK-LABEL: @PR41069_commute(
43 ; CHECK-NEXT: [[UNO1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
44 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[D:%.*]], [[C:%.*]]
45 ; CHECK-NEXT: [[R:%.*]] = or i1 [[TMP1]], [[UNO1]]
46 ; CHECK-NEXT: ret i1 [[R]]
48 %uno1 = fcmp uno double %a, %b
49 %uno2 = fcmp uno double %c, 0.0
50 %or = or i1 %uno1, %uno2
51 %uno3 = fcmp uno double %d, 0.0
56 define <2 x i1> @PR41069_vec(<2 x i1> %z, <2 x float> %c, <2 x float> %d) {
57 ; CHECK-LABEL: @PR41069_vec(
58 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno <2 x float> [[D:%.*]], [[C:%.*]]
59 ; CHECK-NEXT: [[R:%.*]] = or <2 x i1> [[TMP1]], [[Z:%.*]]
60 ; CHECK-NEXT: ret <2 x i1> [[R]]
62 %uno1 = fcmp uno <2 x float> %c, zeroinitializer
63 %or = or <2 x i1> %uno1, %z
64 %uno2 = fcmp uno <2 x float> %d, <float 0.0, float undef>
65 %r = or <2 x i1> %or, %uno2
69 define <2 x i1> @PR41069_vec_commute(<2 x i1> %z, <2 x float> %c, <2 x float> %d) {
70 ; CHECK-LABEL: @PR41069_vec_commute(
71 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno <2 x float> [[D:%.*]], [[C:%.*]]
72 ; CHECK-NEXT: [[R:%.*]] = or <2 x i1> [[TMP1]], [[Z:%.*]]
73 ; CHECK-NEXT: ret <2 x i1> [[R]]
75 %uno1 = fcmp uno <2 x float> %c, zeroinitializer
76 %or = or <2 x i1> %uno1, %z
77 %uno2 = fcmp uno <2 x float> %d, <float 0.0, float undef>
78 %r = or <2 x i1> %uno2, %or
82 define i1 @fcmp_uno_nonzero(float %x, float %y) {
83 ; CHECK-LABEL: @fcmp_uno_nonzero(
84 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno float [[X:%.*]], [[Y:%.*]]
85 ; CHECK-NEXT: ret i1 [[TMP1]]
87 %cmp1 = fcmp uno float %x, 1.0
88 %cmp2 = fcmp uno float %y, 2.0
89 %or = or i1 %cmp1, %cmp2
93 define <3 x i1> @fcmp_uno_nonzero_vec(<3 x float> %x, <3 x float> %y) {
94 ; CHECK-LABEL: @fcmp_uno_nonzero_vec(
95 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno <3 x float> [[X:%.*]], [[Y:%.*]]
96 ; CHECK-NEXT: ret <3 x i1> [[TMP1]]
98 %cmp1 = fcmp uno <3 x float> %x, <float 1.0, float 2.0, float 3.0>
99 %cmp2 = fcmp uno <3 x float> %y, <float 3.0, float 2.0, float 1.0>
100 %or = or <3 x i1> %cmp1, %cmp2
104 define i1 @auto_gen_0(double %a, double %b) {
105 ; CHECK-LABEL: @auto_gen_0(
106 ; CHECK-NEXT: ret i1 false
108 %cmp = fcmp false double %a, %b
109 %cmp1 = fcmp false double %a, %b
110 %retval = or i1 %cmp, %cmp1
114 define i1 @auto_gen_1(double %a, double %b) {
115 ; CHECK-LABEL: @auto_gen_1(
116 ; CHECK-NEXT: [[CMP:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
117 ; CHECK-NEXT: ret i1 [[CMP]]
119 %cmp = fcmp oeq double %a, %b
120 %cmp1 = fcmp false double %a, %b
121 %retval = or i1 %cmp, %cmp1
125 define i1 @auto_gen_2(double %a, double %b) {
126 ; CHECK-LABEL: @auto_gen_2(
127 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
128 ; CHECK-NEXT: ret i1 [[TMP1]]
130 %cmp = fcmp oeq double %a, %b
131 %cmp1 = fcmp oeq double %a, %b
132 %retval = or i1 %cmp, %cmp1
136 define i1 @auto_gen_3(double %a, double %b) {
137 ; CHECK-LABEL: @auto_gen_3(
138 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
139 ; CHECK-NEXT: ret i1 [[CMP]]
141 %cmp = fcmp ogt double %a, %b
142 %cmp1 = fcmp false double %a, %b
143 %retval = or i1 %cmp, %cmp1
147 define i1 @auto_gen_4(double %a, double %b) {
148 ; CHECK-LABEL: @auto_gen_4(
149 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
150 ; CHECK-NEXT: ret i1 [[TMP1]]
152 %cmp = fcmp ogt double %a, %b
153 %cmp1 = fcmp oeq double %a, %b
154 %retval = or i1 %cmp, %cmp1
158 define i1 @auto_gen_5(double %a, double %b) {
159 ; CHECK-LABEL: @auto_gen_5(
160 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
161 ; CHECK-NEXT: ret i1 [[TMP1]]
163 %cmp = fcmp ogt double %a, %b
164 %cmp1 = fcmp ogt double %a, %b
165 %retval = or i1 %cmp, %cmp1
169 define i1 @auto_gen_6(double %a, double %b) {
170 ; CHECK-LABEL: @auto_gen_6(
171 ; CHECK-NEXT: [[CMP:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
172 ; CHECK-NEXT: ret i1 [[CMP]]
174 %cmp = fcmp oge double %a, %b
175 %cmp1 = fcmp false double %a, %b
176 %retval = or i1 %cmp, %cmp1
180 define i1 @auto_gen_7(double %a, double %b) {
181 ; CHECK-LABEL: @auto_gen_7(
182 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
183 ; CHECK-NEXT: ret i1 [[TMP1]]
185 %cmp = fcmp oge double %a, %b
186 %cmp1 = fcmp oeq double %a, %b
187 %retval = or i1 %cmp, %cmp1
191 define i1 @auto_gen_8(double %a, double %b) {
192 ; CHECK-LABEL: @auto_gen_8(
193 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
194 ; CHECK-NEXT: ret i1 [[TMP1]]
196 %cmp = fcmp oge double %a, %b
197 %cmp1 = fcmp ogt double %a, %b
198 %retval = or i1 %cmp, %cmp1
202 define i1 @auto_gen_9(double %a, double %b) {
203 ; CHECK-LABEL: @auto_gen_9(
204 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
205 ; CHECK-NEXT: ret i1 [[TMP1]]
207 %cmp = fcmp oge double %a, %b
208 %cmp1 = fcmp oge double %a, %b
209 %retval = or i1 %cmp, %cmp1
213 define i1 @auto_gen_10(double %a, double %b) {
214 ; CHECK-LABEL: @auto_gen_10(
215 ; CHECK-NEXT: [[CMP:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
216 ; CHECK-NEXT: ret i1 [[CMP]]
218 %cmp = fcmp olt double %a, %b
219 %cmp1 = fcmp false double %a, %b
220 %retval = or i1 %cmp, %cmp1
224 define i1 @auto_gen_11(double %a, double %b) {
225 ; CHECK-LABEL: @auto_gen_11(
226 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
227 ; CHECK-NEXT: ret i1 [[TMP1]]
229 %cmp = fcmp olt double %a, %b
230 %cmp1 = fcmp oeq double %a, %b
231 %retval = or i1 %cmp, %cmp1
235 define i1 @auto_gen_12(double %a, double %b) {
236 ; CHECK-LABEL: @auto_gen_12(
237 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
238 ; CHECK-NEXT: ret i1 [[TMP1]]
240 %cmp = fcmp olt double %a, %b
241 %cmp1 = fcmp ogt double %a, %b
242 %retval = or i1 %cmp, %cmp1
246 define i1 @auto_gen_13(double %a, double %b) {
247 ; CHECK-LABEL: @auto_gen_13(
248 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
249 ; CHECK-NEXT: ret i1 [[TMP1]]
251 %cmp = fcmp olt double %a, %b
252 %cmp1 = fcmp oge double %a, %b
253 %retval = or i1 %cmp, %cmp1
257 define i1 @auto_gen_14(double %a, double %b) {
258 ; CHECK-LABEL: @auto_gen_14(
259 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
260 ; CHECK-NEXT: ret i1 [[TMP1]]
262 %cmp = fcmp olt double %a, %b
263 %cmp1 = fcmp olt double %a, %b
264 %retval = or i1 %cmp, %cmp1
268 define i1 @auto_gen_15(double %a, double %b) {
269 ; CHECK-LABEL: @auto_gen_15(
270 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
271 ; CHECK-NEXT: ret i1 [[CMP]]
273 %cmp = fcmp ole double %a, %b
274 %cmp1 = fcmp false double %a, %b
275 %retval = or i1 %cmp, %cmp1
279 define i1 @auto_gen_16(double %a, double %b) {
280 ; CHECK-LABEL: @auto_gen_16(
281 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
282 ; CHECK-NEXT: ret i1 [[TMP1]]
284 %cmp = fcmp ole double %a, %b
285 %cmp1 = fcmp oeq double %a, %b
286 %retval = or i1 %cmp, %cmp1
290 define i1 @auto_gen_17(double %a, double %b) {
291 ; CHECK-LABEL: @auto_gen_17(
292 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
293 ; CHECK-NEXT: ret i1 [[TMP1]]
295 %cmp = fcmp ole double %a, %b
296 %cmp1 = fcmp ogt double %a, %b
297 %retval = or i1 %cmp, %cmp1
301 define i1 @auto_gen_18(double %a, double %b) {
302 ; CHECK-LABEL: @auto_gen_18(
303 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
304 ; CHECK-NEXT: ret i1 [[TMP1]]
306 %cmp = fcmp ole double %a, %b
307 %cmp1 = fcmp oge double %a, %b
308 %retval = or i1 %cmp, %cmp1
312 define i1 @auto_gen_19(double %a, double %b) {
313 ; CHECK-LABEL: @auto_gen_19(
314 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
315 ; CHECK-NEXT: ret i1 [[TMP1]]
317 %cmp = fcmp ole double %a, %b
318 %cmp1 = fcmp olt double %a, %b
319 %retval = or i1 %cmp, %cmp1
323 define i1 @auto_gen_20(double %a, double %b) {
324 ; CHECK-LABEL: @auto_gen_20(
325 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
326 ; CHECK-NEXT: ret i1 [[TMP1]]
328 %cmp = fcmp ole double %a, %b
329 %cmp1 = fcmp ole double %a, %b
330 %retval = or i1 %cmp, %cmp1
334 define i1 @auto_gen_21(double %a, double %b) {
335 ; CHECK-LABEL: @auto_gen_21(
336 ; CHECK-NEXT: [[CMP:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
337 ; CHECK-NEXT: ret i1 [[CMP]]
339 %cmp = fcmp one double %a, %b
340 %cmp1 = fcmp false double %a, %b
341 %retval = or i1 %cmp, %cmp1
345 define i1 @auto_gen_22(double %a, double %b) {
346 ; CHECK-LABEL: @auto_gen_22(
347 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
348 ; CHECK-NEXT: ret i1 [[TMP1]]
350 %cmp = fcmp one double %a, %b
351 %cmp1 = fcmp oeq double %a, %b
352 %retval = or i1 %cmp, %cmp1
356 define i1 @auto_gen_23(double %a, double %b) {
357 ; CHECK-LABEL: @auto_gen_23(
358 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
359 ; CHECK-NEXT: ret i1 [[TMP1]]
361 %cmp = fcmp one double %a, %b
362 %cmp1 = fcmp ogt double %a, %b
363 %retval = or i1 %cmp, %cmp1
367 define i1 @auto_gen_24(double %a, double %b) {
368 ; CHECK-LABEL: @auto_gen_24(
369 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
370 ; CHECK-NEXT: ret i1 [[TMP1]]
372 %cmp = fcmp one double %a, %b
373 %cmp1 = fcmp oge double %a, %b
374 %retval = or i1 %cmp, %cmp1
378 define i1 @auto_gen_25(double %a, double %b) {
379 ; CHECK-LABEL: @auto_gen_25(
380 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
381 ; CHECK-NEXT: ret i1 [[TMP1]]
383 %cmp = fcmp one double %a, %b
384 %cmp1 = fcmp olt double %a, %b
385 %retval = or i1 %cmp, %cmp1
389 define i1 @auto_gen_26(double %a, double %b) {
390 ; CHECK-LABEL: @auto_gen_26(
391 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
392 ; CHECK-NEXT: ret i1 [[TMP1]]
394 %cmp = fcmp one double %a, %b
395 %cmp1 = fcmp ole double %a, %b
396 %retval = or i1 %cmp, %cmp1
400 define i1 @auto_gen_27(double %a, double %b) {
401 ; CHECK-LABEL: @auto_gen_27(
402 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
403 ; CHECK-NEXT: ret i1 [[TMP1]]
405 %cmp = fcmp one double %a, %b
406 %cmp1 = fcmp one double %a, %b
407 %retval = or i1 %cmp, %cmp1
411 define i1 @auto_gen_28(double %a, double %b) {
412 ; CHECK-LABEL: @auto_gen_28(
413 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
414 ; CHECK-NEXT: ret i1 [[CMP]]
416 %cmp = fcmp ord double %a, %b
417 %cmp1 = fcmp false double %a, %b
418 %retval = or i1 %cmp, %cmp1
422 define i1 @auto_gen_29(double %a, double %b) {
423 ; CHECK-LABEL: @auto_gen_29(
424 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
425 ; CHECK-NEXT: ret i1 [[TMP1]]
427 %cmp = fcmp ord double %a, %b
428 %cmp1 = fcmp oeq double %a, %b
429 %retval = or i1 %cmp, %cmp1
433 define i1 @auto_gen_30(double %a, double %b) {
434 ; CHECK-LABEL: @auto_gen_30(
435 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
436 ; CHECK-NEXT: ret i1 [[TMP1]]
438 %cmp = fcmp ord double %a, %b
439 %cmp1 = fcmp ogt double %a, %b
440 %retval = or i1 %cmp, %cmp1
444 define i1 @auto_gen_31(double %a, double %b) {
445 ; CHECK-LABEL: @auto_gen_31(
446 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
447 ; CHECK-NEXT: ret i1 [[TMP1]]
449 %cmp = fcmp ord double %a, %b
450 %cmp1 = fcmp oge double %a, %b
451 %retval = or i1 %cmp, %cmp1
455 define i1 @auto_gen_32(double %a, double %b) {
456 ; CHECK-LABEL: @auto_gen_32(
457 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
458 ; CHECK-NEXT: ret i1 [[TMP1]]
460 %cmp = fcmp ord double %a, %b
461 %cmp1 = fcmp olt double %a, %b
462 %retval = or i1 %cmp, %cmp1
466 define i1 @auto_gen_33(double %a, double %b) {
467 ; CHECK-LABEL: @auto_gen_33(
468 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
469 ; CHECK-NEXT: ret i1 [[TMP1]]
471 %cmp = fcmp ord double %a, %b
472 %cmp1 = fcmp ole double %a, %b
473 %retval = or i1 %cmp, %cmp1
477 define i1 @auto_gen_34(double %a, double %b) {
478 ; CHECK-LABEL: @auto_gen_34(
479 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
480 ; CHECK-NEXT: ret i1 [[TMP1]]
482 %cmp = fcmp ord double %a, %b
483 %cmp1 = fcmp one double %a, %b
484 %retval = or i1 %cmp, %cmp1
488 define i1 @auto_gen_35(double %a, double %b) {
489 ; CHECK-LABEL: @auto_gen_35(
490 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
491 ; CHECK-NEXT: ret i1 [[TMP1]]
493 %cmp = fcmp ord double %a, %b
494 %cmp1 = fcmp ord double %a, %b
495 %retval = or i1 %cmp, %cmp1
499 define i1 @auto_gen_36(double %a, double %b) {
500 ; CHECK-LABEL: @auto_gen_36(
501 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
502 ; CHECK-NEXT: ret i1 [[CMP]]
504 %cmp = fcmp ueq double %a, %b
505 %cmp1 = fcmp false double %a, %b
506 %retval = or i1 %cmp, %cmp1
510 define i1 @auto_gen_37(double %a, double %b) {
511 ; CHECK-LABEL: @auto_gen_37(
512 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
513 ; CHECK-NEXT: ret i1 [[TMP1]]
515 %cmp = fcmp ueq double %a, %b
516 %cmp1 = fcmp oeq double %a, %b
517 %retval = or i1 %cmp, %cmp1
521 define i1 @auto_gen_38(double %a, double %b) {
522 ; CHECK-LABEL: @auto_gen_38(
523 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
524 ; CHECK-NEXT: ret i1 [[TMP1]]
526 %cmp = fcmp ueq double %a, %b
527 %cmp1 = fcmp ogt double %a, %b
528 %retval = or i1 %cmp, %cmp1
532 define i1 @auto_gen_39(double %a, double %b) {
533 ; CHECK-LABEL: @auto_gen_39(
534 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
535 ; CHECK-NEXT: ret i1 [[TMP1]]
537 %cmp = fcmp ueq double %a, %b
538 %cmp1 = fcmp oge double %a, %b
539 %retval = or i1 %cmp, %cmp1
543 define i1 @auto_gen_40(double %a, double %b) {
544 ; CHECK-LABEL: @auto_gen_40(
545 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
546 ; CHECK-NEXT: ret i1 [[TMP1]]
548 %cmp = fcmp ueq double %a, %b
549 %cmp1 = fcmp olt double %a, %b
550 %retval = or i1 %cmp, %cmp1
554 define i1 @auto_gen_41(double %a, double %b) {
555 ; CHECK-LABEL: @auto_gen_41(
556 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
557 ; CHECK-NEXT: ret i1 [[TMP1]]
559 %cmp = fcmp ueq double %a, %b
560 %cmp1 = fcmp ole double %a, %b
561 %retval = or i1 %cmp, %cmp1
565 define i1 @auto_gen_42(double %a, double %b) {
566 ; CHECK-LABEL: @auto_gen_42(
567 ; CHECK-NEXT: ret i1 true
569 %cmp = fcmp ueq double %a, %b
570 %cmp1 = fcmp one double %a, %b
571 %retval = or i1 %cmp, %cmp1
575 define i1 @auto_gen_43(double %a, double %b) {
576 ; CHECK-LABEL: @auto_gen_43(
577 ; CHECK-NEXT: ret i1 true
579 %cmp = fcmp ueq double %a, %b
580 %cmp1 = fcmp ord double %a, %b
581 %retval = or i1 %cmp, %cmp1
585 define i1 @auto_gen_44(double %a, double %b) {
586 ; CHECK-LABEL: @auto_gen_44(
587 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
588 ; CHECK-NEXT: ret i1 [[TMP1]]
590 %cmp = fcmp ueq double %a, %b
591 %cmp1 = fcmp ueq double %a, %b
592 %retval = or i1 %cmp, %cmp1
596 define i1 @auto_gen_45(double %a, double %b) {
597 ; CHECK-LABEL: @auto_gen_45(
598 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
599 ; CHECK-NEXT: ret i1 [[CMP]]
601 %cmp = fcmp ugt double %a, %b
602 %cmp1 = fcmp false double %a, %b
603 %retval = or i1 %cmp, %cmp1
607 define i1 @auto_gen_46(double %a, double %b) {
608 ; CHECK-LABEL: @auto_gen_46(
609 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
610 ; CHECK-NEXT: ret i1 [[TMP1]]
612 %cmp = fcmp ugt double %a, %b
613 %cmp1 = fcmp oeq double %a, %b
614 %retval = or i1 %cmp, %cmp1
618 define i1 @auto_gen_47(double %a, double %b) {
619 ; CHECK-LABEL: @auto_gen_47(
620 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
621 ; CHECK-NEXT: ret i1 [[TMP1]]
623 %cmp = fcmp ugt double %a, %b
624 %cmp1 = fcmp ogt double %a, %b
625 %retval = or i1 %cmp, %cmp1
629 define i1 @auto_gen_48(double %a, double %b) {
630 ; CHECK-LABEL: @auto_gen_48(
631 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
632 ; CHECK-NEXT: ret i1 [[TMP1]]
634 %cmp = fcmp ugt double %a, %b
635 %cmp1 = fcmp oge double %a, %b
636 %retval = or i1 %cmp, %cmp1
640 define i1 @auto_gen_49(double %a, double %b) {
641 ; CHECK-LABEL: @auto_gen_49(
642 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
643 ; CHECK-NEXT: ret i1 [[TMP1]]
645 %cmp = fcmp ugt double %a, %b
646 %cmp1 = fcmp olt double %a, %b
647 %retval = or i1 %cmp, %cmp1
651 define i1 @auto_gen_50(double %a, double %b) {
652 ; CHECK-LABEL: @auto_gen_50(
653 ; CHECK-NEXT: ret i1 true
655 %cmp = fcmp ugt double %a, %b
656 %cmp1 = fcmp ole double %a, %b
657 %retval = or i1 %cmp, %cmp1
661 define i1 @auto_gen_51(double %a, double %b) {
662 ; CHECK-LABEL: @auto_gen_51(
663 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
664 ; CHECK-NEXT: ret i1 [[TMP1]]
666 %cmp = fcmp ugt double %a, %b
667 %cmp1 = fcmp one double %a, %b
668 %retval = or i1 %cmp, %cmp1
672 define i1 @auto_gen_52(double %a, double %b) {
673 ; CHECK-LABEL: @auto_gen_52(
674 ; CHECK-NEXT: ret i1 true
676 %cmp = fcmp ugt double %a, %b
677 %cmp1 = fcmp ord double %a, %b
678 %retval = or i1 %cmp, %cmp1
682 define i1 @auto_gen_53(double %a, double %b) {
683 ; CHECK-LABEL: @auto_gen_53(
684 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
685 ; CHECK-NEXT: ret i1 [[TMP1]]
687 %cmp = fcmp ugt double %a, %b
688 %cmp1 = fcmp ueq double %a, %b
689 %retval = or i1 %cmp, %cmp1
693 define i1 @auto_gen_54(double %a, double %b) {
694 ; CHECK-LABEL: @auto_gen_54(
695 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
696 ; CHECK-NEXT: ret i1 [[TMP1]]
698 %cmp = fcmp ugt double %a, %b
699 %cmp1 = fcmp ugt double %a, %b
700 %retval = or i1 %cmp, %cmp1
704 define i1 @auto_gen_55(double %a, double %b) {
705 ; CHECK-LABEL: @auto_gen_55(
706 ; CHECK-NEXT: [[CMP:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
707 ; CHECK-NEXT: ret i1 [[CMP]]
709 %cmp = fcmp uge double %a, %b
710 %cmp1 = fcmp false double %a, %b
711 %retval = or i1 %cmp, %cmp1
715 define i1 @auto_gen_56(double %a, double %b) {
716 ; CHECK-LABEL: @auto_gen_56(
717 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
718 ; CHECK-NEXT: ret i1 [[TMP1]]
720 %cmp = fcmp uge double %a, %b
721 %cmp1 = fcmp oeq double %a, %b
722 %retval = or i1 %cmp, %cmp1
726 define i1 @auto_gen_57(double %a, double %b) {
727 ; CHECK-LABEL: @auto_gen_57(
728 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
729 ; CHECK-NEXT: ret i1 [[TMP1]]
731 %cmp = fcmp uge double %a, %b
732 %cmp1 = fcmp ogt double %a, %b
733 %retval = or i1 %cmp, %cmp1
737 define i1 @auto_gen_58(double %a, double %b) {
738 ; CHECK-LABEL: @auto_gen_58(
739 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
740 ; CHECK-NEXT: ret i1 [[TMP1]]
742 %cmp = fcmp uge double %a, %b
743 %cmp1 = fcmp oge double %a, %b
744 %retval = or i1 %cmp, %cmp1
748 define i1 @auto_gen_59(double %a, double %b) {
749 ; CHECK-LABEL: @auto_gen_59(
750 ; CHECK-NEXT: ret i1 true
752 %cmp = fcmp uge double %a, %b
753 %cmp1 = fcmp olt double %a, %b
754 %retval = or i1 %cmp, %cmp1
758 define i1 @auto_gen_60(double %a, double %b) {
759 ; CHECK-LABEL: @auto_gen_60(
760 ; CHECK-NEXT: ret i1 true
762 %cmp = fcmp uge double %a, %b
763 %cmp1 = fcmp ole double %a, %b
764 %retval = or i1 %cmp, %cmp1
768 define i1 @auto_gen_61(double %a, double %b) {
769 ; CHECK-LABEL: @auto_gen_61(
770 ; CHECK-NEXT: ret i1 true
772 %cmp = fcmp uge double %a, %b
773 %cmp1 = fcmp one double %a, %b
774 %retval = or i1 %cmp, %cmp1
778 define i1 @auto_gen_62(double %a, double %b) {
779 ; CHECK-LABEL: @auto_gen_62(
780 ; CHECK-NEXT: ret i1 true
782 %cmp = fcmp uge double %a, %b
783 %cmp1 = fcmp ord double %a, %b
784 %retval = or i1 %cmp, %cmp1
788 define i1 @auto_gen_63(double %a, double %b) {
789 ; CHECK-LABEL: @auto_gen_63(
790 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
791 ; CHECK-NEXT: ret i1 [[TMP1]]
793 %cmp = fcmp uge double %a, %b
794 %cmp1 = fcmp ueq double %a, %b
795 %retval = or i1 %cmp, %cmp1
799 define i1 @auto_gen_64(double %a, double %b) {
800 ; CHECK-LABEL: @auto_gen_64(
801 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
802 ; CHECK-NEXT: ret i1 [[TMP1]]
804 %cmp = fcmp uge double %a, %b
805 %cmp1 = fcmp ugt double %a, %b
806 %retval = or i1 %cmp, %cmp1
810 define i1 @auto_gen_65(double %a, double %b) {
811 ; CHECK-LABEL: @auto_gen_65(
812 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
813 ; CHECK-NEXT: ret i1 [[TMP1]]
815 %cmp = fcmp uge double %a, %b
816 %cmp1 = fcmp uge double %a, %b
817 %retval = or i1 %cmp, %cmp1
821 define i1 @auto_gen_66(double %a, double %b) {
822 ; CHECK-LABEL: @auto_gen_66(
823 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
824 ; CHECK-NEXT: ret i1 [[CMP]]
826 %cmp = fcmp ult double %a, %b
827 %cmp1 = fcmp false double %a, %b
828 %retval = or i1 %cmp, %cmp1
832 define i1 @auto_gen_67(double %a, double %b) {
833 ; CHECK-LABEL: @auto_gen_67(
834 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
835 ; CHECK-NEXT: ret i1 [[TMP1]]
837 %cmp = fcmp ult double %a, %b
838 %cmp1 = fcmp oeq double %a, %b
839 %retval = or i1 %cmp, %cmp1
843 define i1 @auto_gen_68(double %a, double %b) {
844 ; CHECK-LABEL: @auto_gen_68(
845 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
846 ; CHECK-NEXT: ret i1 [[TMP1]]
848 %cmp = fcmp ult double %a, %b
849 %cmp1 = fcmp ogt double %a, %b
850 %retval = or i1 %cmp, %cmp1
854 define i1 @auto_gen_69(double %a, double %b) {
855 ; CHECK-LABEL: @auto_gen_69(
856 ; CHECK-NEXT: ret i1 true
858 %cmp = fcmp ult double %a, %b
859 %cmp1 = fcmp oge double %a, %b
860 %retval = or i1 %cmp, %cmp1
864 define i1 @auto_gen_70(double %a, double %b) {
865 ; CHECK-LABEL: @auto_gen_70(
866 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
867 ; CHECK-NEXT: ret i1 [[TMP1]]
869 %cmp = fcmp ult double %a, %b
870 %cmp1 = fcmp olt double %a, %b
871 %retval = or i1 %cmp, %cmp1
875 define i1 @auto_gen_71(double %a, double %b) {
876 ; CHECK-LABEL: @auto_gen_71(
877 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
878 ; CHECK-NEXT: ret i1 [[TMP1]]
880 %cmp = fcmp ult double %a, %b
881 %cmp1 = fcmp ole double %a, %b
882 %retval = or i1 %cmp, %cmp1
886 define i1 @auto_gen_72(double %a, double %b) {
887 ; CHECK-LABEL: @auto_gen_72(
888 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
889 ; CHECK-NEXT: ret i1 [[TMP1]]
891 %cmp = fcmp ult double %a, %b
892 %cmp1 = fcmp one double %a, %b
893 %retval = or i1 %cmp, %cmp1
897 define i1 @auto_gen_73(double %a, double %b) {
898 ; CHECK-LABEL: @auto_gen_73(
899 ; CHECK-NEXT: ret i1 true
901 %cmp = fcmp ult double %a, %b
902 %cmp1 = fcmp ord double %a, %b
903 %retval = or i1 %cmp, %cmp1
907 define i1 @auto_gen_74(double %a, double %b) {
908 ; CHECK-LABEL: @auto_gen_74(
909 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
910 ; CHECK-NEXT: ret i1 [[TMP1]]
912 %cmp = fcmp ult double %a, %b
913 %cmp1 = fcmp ueq double %a, %b
914 %retval = or i1 %cmp, %cmp1
918 define i1 @auto_gen_75(double %a, double %b) {
919 ; CHECK-LABEL: @auto_gen_75(
920 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
921 ; CHECK-NEXT: ret i1 [[TMP1]]
923 %cmp = fcmp ult double %a, %b
924 %cmp1 = fcmp ugt double %a, %b
925 %retval = or i1 %cmp, %cmp1
929 define i1 @auto_gen_76(double %a, double %b) {
930 ; CHECK-LABEL: @auto_gen_76(
931 ; CHECK-NEXT: ret i1 true
933 %cmp = fcmp ult double %a, %b
934 %cmp1 = fcmp uge double %a, %b
935 %retval = or i1 %cmp, %cmp1
939 define i1 @auto_gen_77(double %a, double %b) {
940 ; CHECK-LABEL: @auto_gen_77(
941 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
942 ; CHECK-NEXT: ret i1 [[TMP1]]
944 %cmp = fcmp ult double %a, %b
945 %cmp1 = fcmp ult double %a, %b
946 %retval = or i1 %cmp, %cmp1
950 define i1 @auto_gen_78(double %a, double %b) {
951 ; CHECK-LABEL: @auto_gen_78(
952 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
953 ; CHECK-NEXT: ret i1 [[CMP]]
955 %cmp = fcmp ule double %a, %b
956 %cmp1 = fcmp false double %a, %b
957 %retval = or i1 %cmp, %cmp1
961 define i1 @auto_gen_79(double %a, double %b) {
962 ; CHECK-LABEL: @auto_gen_79(
963 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
964 ; CHECK-NEXT: ret i1 [[TMP1]]
966 %cmp = fcmp ule double %a, %b
967 %cmp1 = fcmp oeq double %a, %b
968 %retval = or i1 %cmp, %cmp1
972 define i1 @auto_gen_80(double %a, double %b) {
973 ; CHECK-LABEL: @auto_gen_80(
974 ; CHECK-NEXT: ret i1 true
976 %cmp = fcmp ule double %a, %b
977 %cmp1 = fcmp ogt double %a, %b
978 %retval = or i1 %cmp, %cmp1
982 define i1 @auto_gen_81(double %a, double %b) {
983 ; CHECK-LABEL: @auto_gen_81(
984 ; CHECK-NEXT: ret i1 true
986 %cmp = fcmp ule double %a, %b
987 %cmp1 = fcmp oge double %a, %b
988 %retval = or i1 %cmp, %cmp1
992 define i1 @auto_gen_82(double %a, double %b) {
993 ; CHECK-LABEL: @auto_gen_82(
994 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
995 ; CHECK-NEXT: ret i1 [[TMP1]]
997 %cmp = fcmp ule double %a, %b
998 %cmp1 = fcmp olt double %a, %b
999 %retval = or i1 %cmp, %cmp1
1003 define i1 @auto_gen_83(double %a, double %b) {
1004 ; CHECK-LABEL: @auto_gen_83(
1005 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
1006 ; CHECK-NEXT: ret i1 [[TMP1]]
1008 %cmp = fcmp ule double %a, %b
1009 %cmp1 = fcmp ole double %a, %b
1010 %retval = or i1 %cmp, %cmp1
1014 define i1 @auto_gen_84(double %a, double %b) {
1015 ; CHECK-LABEL: @auto_gen_84(
1016 ; CHECK-NEXT: ret i1 true
1018 %cmp = fcmp ule double %a, %b
1019 %cmp1 = fcmp one double %a, %b
1020 %retval = or i1 %cmp, %cmp1
1024 define i1 @auto_gen_85(double %a, double %b) {
1025 ; CHECK-LABEL: @auto_gen_85(
1026 ; CHECK-NEXT: ret i1 true
1028 %cmp = fcmp ule double %a, %b
1029 %cmp1 = fcmp ord double %a, %b
1030 %retval = or i1 %cmp, %cmp1
1034 define i1 @auto_gen_86(double %a, double %b) {
1035 ; CHECK-LABEL: @auto_gen_86(
1036 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
1037 ; CHECK-NEXT: ret i1 [[TMP1]]
1039 %cmp = fcmp ule double %a, %b
1040 %cmp1 = fcmp ueq double %a, %b
1041 %retval = or i1 %cmp, %cmp1
1045 define i1 @auto_gen_87(double %a, double %b) {
1046 ; CHECK-LABEL: @auto_gen_87(
1047 ; CHECK-NEXT: ret i1 true
1049 %cmp = fcmp ule double %a, %b
1050 %cmp1 = fcmp ugt double %a, %b
1051 %retval = or i1 %cmp, %cmp1
1055 define i1 @auto_gen_88(double %a, double %b) {
1056 ; CHECK-LABEL: @auto_gen_88(
1057 ; CHECK-NEXT: ret i1 true
1059 %cmp = fcmp ule double %a, %b
1060 %cmp1 = fcmp uge double %a, %b
1061 %retval = or i1 %cmp, %cmp1
1065 define i1 @auto_gen_89(double %a, double %b) {
1066 ; CHECK-LABEL: @auto_gen_89(
1067 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
1068 ; CHECK-NEXT: ret i1 [[TMP1]]
1070 %cmp = fcmp ule double %a, %b
1071 %cmp1 = fcmp ult double %a, %b
1072 %retval = or i1 %cmp, %cmp1
1076 define i1 @auto_gen_90(double %a, double %b) {
1077 ; CHECK-LABEL: @auto_gen_90(
1078 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
1079 ; CHECK-NEXT: ret i1 [[TMP1]]
1081 %cmp = fcmp ule double %a, %b
1082 %cmp1 = fcmp ule double %a, %b
1083 %retval = or i1 %cmp, %cmp1
1087 define i1 @auto_gen_91(double %a, double %b) {
1088 ; CHECK-LABEL: @auto_gen_91(
1089 ; CHECK-NEXT: [[CMP:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
1090 ; CHECK-NEXT: ret i1 [[CMP]]
1092 %cmp = fcmp une double %a, %b
1093 %cmp1 = fcmp false double %a, %b
1094 %retval = or i1 %cmp, %cmp1
1098 define i1 @auto_gen_92(double %a, double %b) {
1099 ; CHECK-LABEL: @auto_gen_92(
1100 ; CHECK-NEXT: ret i1 true
1102 %cmp = fcmp une double %a, %b
1103 %cmp1 = fcmp oeq double %a, %b
1104 %retval = or i1 %cmp, %cmp1
1108 define i1 @auto_gen_93(double %a, double %b) {
1109 ; CHECK-LABEL: @auto_gen_93(
1110 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
1111 ; CHECK-NEXT: ret i1 [[TMP1]]
1113 %cmp = fcmp une double %a, %b
1114 %cmp1 = fcmp ogt double %a, %b
1115 %retval = or i1 %cmp, %cmp1
1119 define i1 @auto_gen_94(double %a, double %b) {
1120 ; CHECK-LABEL: @auto_gen_94(
1121 ; CHECK-NEXT: ret i1 true
1123 %cmp = fcmp une double %a, %b
1124 %cmp1 = fcmp oge double %a, %b
1125 %retval = or i1 %cmp, %cmp1
1129 define i1 @auto_gen_95(double %a, double %b) {
1130 ; CHECK-LABEL: @auto_gen_95(
1131 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
1132 ; CHECK-NEXT: ret i1 [[TMP1]]
1134 %cmp = fcmp une double %a, %b
1135 %cmp1 = fcmp olt double %a, %b
1136 %retval = or i1 %cmp, %cmp1
1140 define i1 @auto_gen_96(double %a, double %b) {
1141 ; CHECK-LABEL: @auto_gen_96(
1142 ; CHECK-NEXT: ret i1 true
1144 %cmp = fcmp une double %a, %b
1145 %cmp1 = fcmp ole double %a, %b
1146 %retval = or i1 %cmp, %cmp1
1150 define i1 @auto_gen_97(double %a, double %b) {
1151 ; CHECK-LABEL: @auto_gen_97(
1152 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
1153 ; CHECK-NEXT: ret i1 [[TMP1]]
1155 %cmp = fcmp une double %a, %b
1156 %cmp1 = fcmp one double %a, %b
1157 %retval = or i1 %cmp, %cmp1
1161 define i1 @auto_gen_98(double %a, double %b) {
1162 ; CHECK-LABEL: @auto_gen_98(
1163 ; CHECK-NEXT: ret i1 true
1165 %cmp = fcmp une double %a, %b
1166 %cmp1 = fcmp ord double %a, %b
1167 %retval = or i1 %cmp, %cmp1
1171 define i1 @auto_gen_99(double %a, double %b) {
1172 ; CHECK-LABEL: @auto_gen_99(
1173 ; CHECK-NEXT: ret i1 true
1175 %cmp = fcmp une double %a, %b
1176 %cmp1 = fcmp ueq double %a, %b
1177 %retval = or i1 %cmp, %cmp1
1181 define i1 @auto_gen_100(double %a, double %b) {
1182 ; CHECK-LABEL: @auto_gen_100(
1183 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
1184 ; CHECK-NEXT: ret i1 [[TMP1]]
1186 %cmp = fcmp une double %a, %b
1187 %cmp1 = fcmp ugt double %a, %b
1188 %retval = or i1 %cmp, %cmp1
1192 define i1 @auto_gen_101(double %a, double %b) {
1193 ; CHECK-LABEL: @auto_gen_101(
1194 ; CHECK-NEXT: ret i1 true
1196 %cmp = fcmp une double %a, %b
1197 %cmp1 = fcmp uge double %a, %b
1198 %retval = or i1 %cmp, %cmp1
1202 define i1 @auto_gen_102(double %a, double %b) {
1203 ; CHECK-LABEL: @auto_gen_102(
1204 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
1205 ; CHECK-NEXT: ret i1 [[TMP1]]
1207 %cmp = fcmp une double %a, %b
1208 %cmp1 = fcmp ult double %a, %b
1209 %retval = or i1 %cmp, %cmp1
1213 define i1 @auto_gen_103(double %a, double %b) {
1214 ; CHECK-LABEL: @auto_gen_103(
1215 ; CHECK-NEXT: ret i1 true
1217 %cmp = fcmp une double %a, %b
1218 %cmp1 = fcmp ule double %a, %b
1219 %retval = or i1 %cmp, %cmp1
1223 define i1 @auto_gen_104(double %a, double %b) {
1224 ; CHECK-LABEL: @auto_gen_104(
1225 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
1226 ; CHECK-NEXT: ret i1 [[TMP1]]
1228 %cmp = fcmp une double %a, %b
1229 %cmp1 = fcmp une double %a, %b
1230 %retval = or i1 %cmp, %cmp1
1234 define i1 @auto_gen_105(double %a, double %b) {
1235 ; CHECK-LABEL: @auto_gen_105(
1236 ; CHECK-NEXT: [[CMP:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
1237 ; CHECK-NEXT: ret i1 [[CMP]]
1239 %cmp = fcmp uno double %a, %b
1240 %cmp1 = fcmp false double %a, %b
1241 %retval = or i1 %cmp, %cmp1
1245 define i1 @auto_gen_106(double %a, double %b) {
1246 ; CHECK-LABEL: @auto_gen_106(
1247 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
1248 ; CHECK-NEXT: ret i1 [[TMP1]]
1250 %cmp = fcmp uno double %a, %b
1251 %cmp1 = fcmp oeq double %a, %b
1252 %retval = or i1 %cmp, %cmp1
1256 define i1 @auto_gen_107(double %a, double %b) {
1257 ; CHECK-LABEL: @auto_gen_107(
1258 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
1259 ; CHECK-NEXT: ret i1 [[TMP1]]
1261 %cmp = fcmp uno double %a, %b
1262 %cmp1 = fcmp ogt double %a, %b
1263 %retval = or i1 %cmp, %cmp1
1267 define i1 @auto_gen_108(double %a, double %b) {
1268 ; CHECK-LABEL: @auto_gen_108(
1269 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
1270 ; CHECK-NEXT: ret i1 [[TMP1]]
1272 %cmp = fcmp uno double %a, %b
1273 %cmp1 = fcmp oge double %a, %b
1274 %retval = or i1 %cmp, %cmp1
1278 define i1 @auto_gen_109(double %a, double %b) {
1279 ; CHECK-LABEL: @auto_gen_109(
1280 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
1281 ; CHECK-NEXT: ret i1 [[TMP1]]
1283 %cmp = fcmp uno double %a, %b
1284 %cmp1 = fcmp olt double %a, %b
1285 %retval = or i1 %cmp, %cmp1
1289 define i1 @auto_gen_110(double %a, double %b) {
1290 ; CHECK-LABEL: @auto_gen_110(
1291 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
1292 ; CHECK-NEXT: ret i1 [[TMP1]]
1294 %cmp = fcmp uno double %a, %b
1295 %cmp1 = fcmp ole double %a, %b
1296 %retval = or i1 %cmp, %cmp1
1300 define i1 @auto_gen_111(double %a, double %b) {
1301 ; CHECK-LABEL: @auto_gen_111(
1302 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
1303 ; CHECK-NEXT: ret i1 [[TMP1]]
1305 %cmp = fcmp uno double %a, %b
1306 %cmp1 = fcmp one double %a, %b
1307 %retval = or i1 %cmp, %cmp1
1311 define i1 @auto_gen_112(double %a, double %b) {
1312 ; CHECK-LABEL: @auto_gen_112(
1313 ; CHECK-NEXT: ret i1 true
1315 %cmp = fcmp uno double %a, %b
1316 %cmp1 = fcmp ord double %a, %b
1317 %retval = or i1 %cmp, %cmp1
1321 define i1 @auto_gen_113(double %a, double %b) {
1322 ; CHECK-LABEL: @auto_gen_113(
1323 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
1324 ; CHECK-NEXT: ret i1 [[TMP1]]
1326 %cmp = fcmp uno double %a, %b
1327 %cmp1 = fcmp ueq double %a, %b
1328 %retval = or i1 %cmp, %cmp1
1332 define i1 @auto_gen_114(double %a, double %b) {
1333 ; CHECK-LABEL: @auto_gen_114(
1334 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
1335 ; CHECK-NEXT: ret i1 [[TMP1]]
1337 %cmp = fcmp uno double %a, %b
1338 %cmp1 = fcmp ugt double %a, %b
1339 %retval = or i1 %cmp, %cmp1
1343 define i1 @auto_gen_115(double %a, double %b) {
1344 ; CHECK-LABEL: @auto_gen_115(
1345 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
1346 ; CHECK-NEXT: ret i1 [[TMP1]]
1348 %cmp = fcmp uno double %a, %b
1349 %cmp1 = fcmp uge double %a, %b
1350 %retval = or i1 %cmp, %cmp1
1354 define i1 @auto_gen_116(double %a, double %b) {
1355 ; CHECK-LABEL: @auto_gen_116(
1356 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
1357 ; CHECK-NEXT: ret i1 [[TMP1]]
1359 %cmp = fcmp uno double %a, %b
1360 %cmp1 = fcmp ult double %a, %b
1361 %retval = or i1 %cmp, %cmp1
1365 define i1 @auto_gen_117(double %a, double %b) {
1366 ; CHECK-LABEL: @auto_gen_117(
1367 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
1368 ; CHECK-NEXT: ret i1 [[TMP1]]
1370 %cmp = fcmp uno double %a, %b
1371 %cmp1 = fcmp ule double %a, %b
1372 %retval = or i1 %cmp, %cmp1
1376 define i1 @auto_gen_118(double %a, double %b) {
1377 ; CHECK-LABEL: @auto_gen_118(
1378 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
1379 ; CHECK-NEXT: ret i1 [[TMP1]]
1381 %cmp = fcmp uno double %a, %b
1382 %cmp1 = fcmp une double %a, %b
1383 %retval = or i1 %cmp, %cmp1
1387 define i1 @auto_gen_119(double %a, double %b) {
1388 ; CHECK-LABEL: @auto_gen_119(
1389 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
1390 ; CHECK-NEXT: ret i1 [[TMP1]]
1392 %cmp = fcmp uno double %a, %b
1393 %cmp1 = fcmp uno double %a, %b
1394 %retval = or i1 %cmp, %cmp1
1398 define i1 @auto_gen_120(double %a, double %b) {
1399 ; CHECK-LABEL: @auto_gen_120(
1400 ; CHECK-NEXT: ret i1 true
1402 %cmp = fcmp true double %a, %b
1403 %cmp1 = fcmp false double %a, %b
1404 %retval = or i1 %cmp, %cmp1
1408 define i1 @auto_gen_121(double %a, double %b) {
1409 ; CHECK-LABEL: @auto_gen_121(
1410 ; CHECK-NEXT: ret i1 true
1412 %cmp = fcmp true double %a, %b
1413 %cmp1 = fcmp oeq double %a, %b
1414 %retval = or i1 %cmp, %cmp1
1418 define i1 @auto_gen_122(double %a, double %b) {
1419 ; CHECK-LABEL: @auto_gen_122(
1420 ; CHECK-NEXT: ret i1 true
1422 %cmp = fcmp true double %a, %b
1423 %cmp1 = fcmp ogt double %a, %b
1424 %retval = or i1 %cmp, %cmp1
1428 define i1 @auto_gen_123(double %a, double %b) {
1429 ; CHECK-LABEL: @auto_gen_123(
1430 ; CHECK-NEXT: ret i1 true
1432 %cmp = fcmp true double %a, %b
1433 %cmp1 = fcmp oge double %a, %b
1434 %retval = or i1 %cmp, %cmp1
1438 define i1 @auto_gen_124(double %a, double %b) {
1439 ; CHECK-LABEL: @auto_gen_124(
1440 ; CHECK-NEXT: ret i1 true
1442 %cmp = fcmp true double %a, %b
1443 %cmp1 = fcmp olt double %a, %b
1444 %retval = or i1 %cmp, %cmp1
1448 define i1 @auto_gen_125(double %a, double %b) {
1449 ; CHECK-LABEL: @auto_gen_125(
1450 ; CHECK-NEXT: ret i1 true
1452 %cmp = fcmp true double %a, %b
1453 %cmp1 = fcmp ole double %a, %b
1454 %retval = or i1 %cmp, %cmp1
1458 define i1 @auto_gen_126(double %a, double %b) {
1459 ; CHECK-LABEL: @auto_gen_126(
1460 ; CHECK-NEXT: ret i1 true
1462 %cmp = fcmp true double %a, %b
1463 %cmp1 = fcmp one double %a, %b
1464 %retval = or i1 %cmp, %cmp1
1468 define i1 @auto_gen_127(double %a, double %b) {
1469 ; CHECK-LABEL: @auto_gen_127(
1470 ; CHECK-NEXT: ret i1 true
1472 %cmp = fcmp true double %a, %b
1473 %cmp1 = fcmp ord double %a, %b
1474 %retval = or i1 %cmp, %cmp1
1478 define i1 @auto_gen_128(double %a, double %b) {
1479 ; CHECK-LABEL: @auto_gen_128(
1480 ; CHECK-NEXT: ret i1 true
1482 %cmp = fcmp true double %a, %b
1483 %cmp1 = fcmp ueq double %a, %b
1484 %retval = or i1 %cmp, %cmp1
1488 define i1 @auto_gen_129(double %a, double %b) {
1489 ; CHECK-LABEL: @auto_gen_129(
1490 ; CHECK-NEXT: ret i1 true
1492 %cmp = fcmp true double %a, %b
1493 %cmp1 = fcmp ugt double %a, %b
1494 %retval = or i1 %cmp, %cmp1
1498 define i1 @auto_gen_130(double %a, double %b) {
1499 ; CHECK-LABEL: @auto_gen_130(
1500 ; CHECK-NEXT: ret i1 true
1502 %cmp = fcmp true double %a, %b
1503 %cmp1 = fcmp uge double %a, %b
1504 %retval = or i1 %cmp, %cmp1
1508 define i1 @auto_gen_131(double %a, double %b) {
1509 ; CHECK-LABEL: @auto_gen_131(
1510 ; CHECK-NEXT: ret i1 true
1512 %cmp = fcmp true double %a, %b
1513 %cmp1 = fcmp ult double %a, %b
1514 %retval = or i1 %cmp, %cmp1
1518 define i1 @auto_gen_132(double %a, double %b) {
1519 ; CHECK-LABEL: @auto_gen_132(
1520 ; CHECK-NEXT: ret i1 true
1522 %cmp = fcmp true double %a, %b
1523 %cmp1 = fcmp ule double %a, %b
1524 %retval = or i1 %cmp, %cmp1
1528 define i1 @auto_gen_133(double %a, double %b) {
1529 ; CHECK-LABEL: @auto_gen_133(
1530 ; CHECK-NEXT: ret i1 true
1532 %cmp = fcmp true double %a, %b
1533 %cmp1 = fcmp une double %a, %b
1534 %retval = or i1 %cmp, %cmp1
1538 define i1 @auto_gen_134(double %a, double %b) {
1539 ; CHECK-LABEL: @auto_gen_134(
1540 ; CHECK-NEXT: ret i1 true
1542 %cmp = fcmp true double %a, %b
1543 %cmp1 = fcmp uno double %a, %b
1544 %retval = or i1 %cmp, %cmp1
1548 define i1 @auto_gen_135(double %a, double %b) {
1549 ; CHECK-LABEL: @auto_gen_135(
1550 ; CHECK-NEXT: ret i1 true
1552 %cmp = fcmp true double %a, %b
1553 %cmp1 = fcmp true double %a, %b
1554 %retval = or i1 %cmp, %cmp1