1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2; RUN: opt < %s -instcombine -S | FileCheck %s
3
4; PR15737
5define i1 @t8(float %a, double %b) {
6; CHECK-LABEL: @t8(
7; CHECK-NEXT:    [[CMP:%.*]] = fcmp ord float %a, 0.000000e+00
8; CHECK-NEXT:    [[CMP1:%.*]] = fcmp ord double %b, 0.000000e+00
9; CHECK-NEXT:    [[AND:%.*]] = and i1 [[CMP]], [[CMP1]]
10; CHECK-NEXT:    ret i1 [[AND]]
11;
12  %cmp = fcmp ord float %a, 0.000000e+00
13  %cmp1 = fcmp ord double %b, 0.000000e+00
14  %and = and i1 %cmp, %cmp1
15  ret i1 %and
16}
17
18define <2 x i1> @t9(<2 x float> %a, <2 x double> %b) {
19; CHECK-LABEL: @t9(
20; CHECK-NEXT:    [[CMP:%.*]] = fcmp ord <2 x float> %a, zeroinitializer
21; CHECK-NEXT:    [[CMP1:%.*]] = fcmp ord <2 x double> %b, zeroinitializer
22; CHECK-NEXT:    [[AND:%.*]] = and <2 x i1> [[CMP]], [[CMP1]]
23; CHECK-NEXT:    ret <2 x i1> [[AND]]
24;
25  %cmp = fcmp ord <2 x float> %a, zeroinitializer
26  %cmp1 = fcmp ord <2 x double> %b, zeroinitializer
27  %and = and <2 x i1> %cmp, %cmp1
28  ret <2 x i1> %and
29}
30
31define i1 @auto_gen_0(double %a, double %b) {
32; CHECK-LABEL: @auto_gen_0(
33; CHECK-NEXT:    ret i1 false
34;
35  %cmp = fcmp false double %a, %b
36  %cmp1 = fcmp false double %a, %b
37  %retval = and i1 %cmp, %cmp1
38  ret i1 %retval
39}
40
41define i1 @auto_gen_1(double %a, double %b) {
42; CHECK-LABEL: @auto_gen_1(
43; CHECK-NEXT:    ret i1 false
44;
45  %cmp = fcmp oeq double %a, %b
46  %cmp1 = fcmp false double %a, %b
47  %retval = and i1 %cmp, %cmp1
48  ret i1 %retval
49}
50
51define i1 @auto_gen_2(double %a, double %b) {
52; CHECK-LABEL: @auto_gen_2(
53; CHECK-NEXT:    [[TMP1:%.*]] = fcmp oeq double %a, %b
54; CHECK-NEXT:    ret i1 [[TMP1]]
55;
56  %cmp = fcmp oeq double %a, %b
57  %cmp1 = fcmp oeq double %a, %b
58  %retval = and i1 %cmp, %cmp1
59  ret i1 %retval
60}
61
62define i1 @auto_gen_3(double %a, double %b) {
63; CHECK-LABEL: @auto_gen_3(
64; CHECK-NEXT:    ret i1 false
65;
66  %cmp = fcmp ogt double %a, %b
67  %cmp1 = fcmp false double %a, %b
68  %retval = and i1 %cmp, %cmp1
69  ret i1 %retval
70}
71
72define i1 @auto_gen_4(double %a, double %b) {
73; CHECK-LABEL: @auto_gen_4(
74; CHECK-NEXT:    ret i1 false
75;
76  %cmp = fcmp ogt double %a, %b
77  %cmp1 = fcmp oeq double %a, %b
78  %retval = and i1 %cmp, %cmp1
79  ret i1 %retval
80}
81
82define i1 @auto_gen_5(double %a, double %b) {
83; CHECK-LABEL: @auto_gen_5(
84; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ogt double %a, %b
85; CHECK-NEXT:    ret i1 [[TMP1]]
86;
87  %cmp = fcmp ogt double %a, %b
88  %cmp1 = fcmp ogt double %a, %b
89  %retval = and i1 %cmp, %cmp1
90  ret i1 %retval
91}
92
93define i1 @auto_gen_6(double %a, double %b) {
94; CHECK-LABEL: @auto_gen_6(
95; CHECK-NEXT:    ret i1 false
96;
97  %cmp = fcmp oge double %a, %b
98  %cmp1 = fcmp false double %a, %b
99  %retval = and i1 %cmp, %cmp1
100  ret i1 %retval
101}
102
103define i1 @auto_gen_7(double %a, double %b) {
104; CHECK-LABEL: @auto_gen_7(
105; CHECK-NEXT:    [[TMP1:%.*]] = fcmp oeq double %a, %b
106; CHECK-NEXT:    ret i1 [[TMP1]]
107;
108  %cmp = fcmp oge double %a, %b
109  %cmp1 = fcmp oeq double %a, %b
110  %retval = and i1 %cmp, %cmp1
111  ret i1 %retval
112}
113
114define i1 @auto_gen_8(double %a, double %b) {
115; CHECK-LABEL: @auto_gen_8(
116; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ogt double %a, %b
117; CHECK-NEXT:    ret i1 [[TMP1]]
118;
119  %cmp = fcmp oge double %a, %b
120  %cmp1 = fcmp ogt double %a, %b
121  %retval = and i1 %cmp, %cmp1
122  ret i1 %retval
123}
124
125define i1 @auto_gen_9(double %a, double %b) {
126; CHECK-LABEL: @auto_gen_9(
127; CHECK-NEXT:    [[TMP1:%.*]] = fcmp oge double %a, %b
128; CHECK-NEXT:    ret i1 [[TMP1]]
129;
130  %cmp = fcmp oge double %a, %b
131  %cmp1 = fcmp oge double %a, %b
132  %retval = and i1 %cmp, %cmp1
133  ret i1 %retval
134}
135
136define i1 @auto_gen_10(double %a, double %b) {
137; CHECK-LABEL: @auto_gen_10(
138; CHECK-NEXT:    ret i1 false
139;
140  %cmp = fcmp olt double %a, %b
141  %cmp1 = fcmp false double %a, %b
142  %retval = and i1 %cmp, %cmp1
143  ret i1 %retval
144}
145
146define i1 @auto_gen_11(double %a, double %b) {
147; CHECK-LABEL: @auto_gen_11(
148; CHECK-NEXT:    ret i1 false
149;
150  %cmp = fcmp olt double %a, %b
151  %cmp1 = fcmp oeq double %a, %b
152  %retval = and i1 %cmp, %cmp1
153  ret i1 %retval
154}
155
156define i1 @auto_gen_12(double %a, double %b) {
157; CHECK-LABEL: @auto_gen_12(
158; CHECK-NEXT:    ret i1 false
159;
160  %cmp = fcmp olt double %a, %b
161  %cmp1 = fcmp ogt double %a, %b
162  %retval = and i1 %cmp, %cmp1
163  ret i1 %retval
164}
165
166define i1 @auto_gen_13(double %a, double %b) {
167; CHECK-LABEL: @auto_gen_13(
168; CHECK-NEXT:    ret i1 false
169;
170  %cmp = fcmp olt double %a, %b
171  %cmp1 = fcmp oge double %a, %b
172  %retval = and i1 %cmp, %cmp1
173  ret i1 %retval
174}
175
176define i1 @auto_gen_14(double %a, double %b) {
177; CHECK-LABEL: @auto_gen_14(
178; CHECK-NEXT:    [[TMP1:%.*]] = fcmp olt double %a, %b
179; CHECK-NEXT:    ret i1 [[TMP1]]
180;
181  %cmp = fcmp olt double %a, %b
182  %cmp1 = fcmp olt double %a, %b
183  %retval = and i1 %cmp, %cmp1
184  ret i1 %retval
185}
186
187define i1 @auto_gen_15(double %a, double %b) {
188; CHECK-LABEL: @auto_gen_15(
189; CHECK-NEXT:    ret i1 false
190;
191  %cmp = fcmp ole double %a, %b
192  %cmp1 = fcmp false double %a, %b
193  %retval = and i1 %cmp, %cmp1
194  ret i1 %retval
195}
196
197define i1 @auto_gen_16(double %a, double %b) {
198; CHECK-LABEL: @auto_gen_16(
199; CHECK-NEXT:    [[TMP1:%.*]] = fcmp oeq double %a, %b
200; CHECK-NEXT:    ret i1 [[TMP1]]
201;
202  %cmp = fcmp ole double %a, %b
203  %cmp1 = fcmp oeq double %a, %b
204  %retval = and i1 %cmp, %cmp1
205  ret i1 %retval
206}
207
208define i1 @auto_gen_17(double %a, double %b) {
209; CHECK-LABEL: @auto_gen_17(
210; CHECK-NEXT:    ret i1 false
211;
212  %cmp = fcmp ole double %a, %b
213  %cmp1 = fcmp ogt double %a, %b
214  %retval = and i1 %cmp, %cmp1
215  ret i1 %retval
216}
217
218define i1 @auto_gen_18(double %a, double %b) {
219; CHECK-LABEL: @auto_gen_18(
220; CHECK-NEXT:    [[TMP1:%.*]] = fcmp oeq double %a, %b
221; CHECK-NEXT:    ret i1 [[TMP1]]
222;
223  %cmp = fcmp ole double %a, %b
224  %cmp1 = fcmp oge double %a, %b
225  %retval = and i1 %cmp, %cmp1
226  ret i1 %retval
227}
228
229define i1 @auto_gen_19(double %a, double %b) {
230; CHECK-LABEL: @auto_gen_19(
231; CHECK-NEXT:    [[TMP1:%.*]] = fcmp olt double %a, %b
232; CHECK-NEXT:    ret i1 [[TMP1]]
233;
234  %cmp = fcmp ole double %a, %b
235  %cmp1 = fcmp olt double %a, %b
236  %retval = and i1 %cmp, %cmp1
237  ret i1 %retval
238}
239
240define i1 @auto_gen_20(double %a, double %b) {
241; CHECK-LABEL: @auto_gen_20(
242; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ole double %a, %b
243; CHECK-NEXT:    ret i1 [[TMP1]]
244;
245  %cmp = fcmp ole double %a, %b
246  %cmp1 = fcmp ole double %a, %b
247  %retval = and i1 %cmp, %cmp1
248  ret i1 %retval
249}
250
251define i1 @auto_gen_21(double %a, double %b) {
252; CHECK-LABEL: @auto_gen_21(
253; CHECK-NEXT:    ret i1 false
254;
255  %cmp = fcmp one double %a, %b
256  %cmp1 = fcmp false double %a, %b
257  %retval = and i1 %cmp, %cmp1
258  ret i1 %retval
259}
260
261define i1 @auto_gen_22(double %a, double %b) {
262; CHECK-LABEL: @auto_gen_22(
263; CHECK-NEXT:    ret i1 false
264;
265  %cmp = fcmp one double %a, %b
266  %cmp1 = fcmp oeq double %a, %b
267  %retval = and i1 %cmp, %cmp1
268  ret i1 %retval
269}
270
271define i1 @auto_gen_23(double %a, double %b) {
272; CHECK-LABEL: @auto_gen_23(
273; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ogt double %a, %b
274; CHECK-NEXT:    ret i1 [[TMP1]]
275;
276  %cmp = fcmp one double %a, %b
277  %cmp1 = fcmp ogt double %a, %b
278  %retval = and i1 %cmp, %cmp1
279  ret i1 %retval
280}
281
282define i1 @auto_gen_24(double %a, double %b) {
283; CHECK-LABEL: @auto_gen_24(
284; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ogt double %a, %b
285; CHECK-NEXT:    ret i1 [[TMP1]]
286;
287  %cmp = fcmp one double %a, %b
288  %cmp1 = fcmp oge double %a, %b
289  %retval = and i1 %cmp, %cmp1
290  ret i1 %retval
291}
292
293define i1 @auto_gen_25(double %a, double %b) {
294; CHECK-LABEL: @auto_gen_25(
295; CHECK-NEXT:    [[TMP1:%.*]] = fcmp olt double %a, %b
296; CHECK-NEXT:    ret i1 [[TMP1]]
297;
298  %cmp = fcmp one double %a, %b
299  %cmp1 = fcmp olt double %a, %b
300  %retval = and i1 %cmp, %cmp1
301  ret i1 %retval
302}
303
304define i1 @auto_gen_26(double %a, double %b) {
305; CHECK-LABEL: @auto_gen_26(
306; CHECK-NEXT:    [[TMP1:%.*]] = fcmp olt double %a, %b
307; CHECK-NEXT:    ret i1 [[TMP1]]
308;
309  %cmp = fcmp one double %a, %b
310  %cmp1 = fcmp ole double %a, %b
311  %retval = and i1 %cmp, %cmp1
312  ret i1 %retval
313}
314
315define i1 @auto_gen_27(double %a, double %b) {
316; CHECK-LABEL: @auto_gen_27(
317; CHECK-NEXT:    [[TMP1:%.*]] = fcmp one double %a, %b
318; CHECK-NEXT:    ret i1 [[TMP1]]
319;
320  %cmp = fcmp one double %a, %b
321  %cmp1 = fcmp one double %a, %b
322  %retval = and i1 %cmp, %cmp1
323  ret i1 %retval
324}
325
326define i1 @auto_gen_28(double %a, double %b) {
327; CHECK-LABEL: @auto_gen_28(
328; CHECK-NEXT:    ret i1 false
329;
330  %cmp = fcmp ord double %a, %b
331  %cmp1 = fcmp false double %a, %b
332  %retval = and i1 %cmp, %cmp1
333  ret i1 %retval
334}
335
336define i1 @auto_gen_29(double %a, double %b) {
337; CHECK-LABEL: @auto_gen_29(
338; CHECK-NEXT:    [[TMP1:%.*]] = fcmp oeq double %a, %b
339; CHECK-NEXT:    ret i1 [[TMP1]]
340;
341  %cmp = fcmp ord double %a, %b
342  %cmp1 = fcmp oeq double %a, %b
343  %retval = and i1 %cmp, %cmp1
344  ret i1 %retval
345}
346
347define i1 @auto_gen_30(double %a, double %b) {
348; CHECK-LABEL: @auto_gen_30(
349; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ogt double %a, %b
350; CHECK-NEXT:    ret i1 [[TMP1]]
351;
352  %cmp = fcmp ord double %a, %b
353  %cmp1 = fcmp ogt double %a, %b
354  %retval = and i1 %cmp, %cmp1
355  ret i1 %retval
356}
357
358define i1 @auto_gen_31(double %a, double %b) {
359; CHECK-LABEL: @auto_gen_31(
360; CHECK-NEXT:    [[TMP1:%.*]] = fcmp oge double %a, %b
361; CHECK-NEXT:    ret i1 [[TMP1]]
362;
363  %cmp = fcmp ord double %a, %b
364  %cmp1 = fcmp oge double %a, %b
365  %retval = and i1 %cmp, %cmp1
366  ret i1 %retval
367}
368
369define i1 @auto_gen_32(double %a, double %b) {
370; CHECK-LABEL: @auto_gen_32(
371; CHECK-NEXT:    [[TMP1:%.*]] = fcmp olt double %a, %b
372; CHECK-NEXT:    ret i1 [[TMP1]]
373;
374  %cmp = fcmp ord double %a, %b
375  %cmp1 = fcmp olt double %a, %b
376  %retval = and i1 %cmp, %cmp1
377  ret i1 %retval
378}
379
380define i1 @auto_gen_33(double %a, double %b) {
381; CHECK-LABEL: @auto_gen_33(
382; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ole double %a, %b
383; CHECK-NEXT:    ret i1 [[TMP1]]
384;
385  %cmp = fcmp ord double %a, %b
386  %cmp1 = fcmp ole double %a, %b
387  %retval = and i1 %cmp, %cmp1
388  ret i1 %retval
389}
390
391define i1 @auto_gen_34(double %a, double %b) {
392; CHECK-LABEL: @auto_gen_34(
393; CHECK-NEXT:    [[TMP1:%.*]] = fcmp one double %a, %b
394; CHECK-NEXT:    ret i1 [[TMP1]]
395;
396  %cmp = fcmp ord double %a, %b
397  %cmp1 = fcmp one double %a, %b
398  %retval = and i1 %cmp, %cmp1
399  ret i1 %retval
400}
401
402define i1 @auto_gen_35(double %a, double %b) {
403; CHECK-LABEL: @auto_gen_35(
404; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ord double %a, %b
405; CHECK-NEXT:    ret i1 [[TMP1]]
406;
407  %cmp = fcmp ord double %a, %b
408  %cmp1 = fcmp ord double %a, %b
409  %retval = and i1 %cmp, %cmp1
410  ret i1 %retval
411}
412
413define i1 @auto_gen_36(double %a, double %b) {
414; CHECK-LABEL: @auto_gen_36(
415; CHECK-NEXT:    ret i1 false
416;
417  %cmp = fcmp ueq double %a, %b
418  %cmp1 = fcmp false double %a, %b
419  %retval = and i1 %cmp, %cmp1
420  ret i1 %retval
421}
422
423define i1 @auto_gen_37(double %a, double %b) {
424; CHECK-LABEL: @auto_gen_37(
425; CHECK-NEXT:    [[TMP1:%.*]] = fcmp oeq double %a, %b
426; CHECK-NEXT:    ret i1 [[TMP1]]
427;
428  %cmp = fcmp ueq double %a, %b
429  %cmp1 = fcmp oeq double %a, %b
430  %retval = and i1 %cmp, %cmp1
431  ret i1 %retval
432}
433
434define i1 @auto_gen_38(double %a, double %b) {
435; CHECK-LABEL: @auto_gen_38(
436; CHECK-NEXT:    ret i1 false
437;
438  %cmp = fcmp ueq double %a, %b
439  %cmp1 = fcmp ogt double %a, %b
440  %retval = and i1 %cmp, %cmp1
441  ret i1 %retval
442}
443
444define i1 @auto_gen_39(double %a, double %b) {
445; CHECK-LABEL: @auto_gen_39(
446; CHECK-NEXT:    [[TMP1:%.*]] = fcmp oeq double %a, %b
447; CHECK-NEXT:    ret i1 [[TMP1]]
448;
449  %cmp = fcmp ueq double %a, %b
450  %cmp1 = fcmp oge double %a, %b
451  %retval = and i1 %cmp, %cmp1
452  ret i1 %retval
453}
454
455define i1 @auto_gen_40(double %a, double %b) {
456; CHECK-LABEL: @auto_gen_40(
457; CHECK-NEXT:    ret i1 false
458;
459  %cmp = fcmp ueq double %a, %b
460  %cmp1 = fcmp olt double %a, %b
461  %retval = and i1 %cmp, %cmp1
462  ret i1 %retval
463}
464
465define i1 @auto_gen_41(double %a, double %b) {
466; CHECK-LABEL: @auto_gen_41(
467; CHECK-NEXT:    [[TMP1:%.*]] = fcmp oeq double %a, %b
468; CHECK-NEXT:    ret i1 [[TMP1]]
469;
470  %cmp = fcmp ueq double %a, %b
471  %cmp1 = fcmp ole double %a, %b
472  %retval = and i1 %cmp, %cmp1
473  ret i1 %retval
474}
475
476define i1 @auto_gen_42(double %a, double %b) {
477; CHECK-LABEL: @auto_gen_42(
478; CHECK-NEXT:    ret i1 false
479;
480  %cmp = fcmp ueq double %a, %b
481  %cmp1 = fcmp one double %a, %b
482  %retval = and i1 %cmp, %cmp1
483  ret i1 %retval
484}
485
486define i1 @auto_gen_43(double %a, double %b) {
487; CHECK-LABEL: @auto_gen_43(
488; CHECK-NEXT:    [[TMP1:%.*]] = fcmp oeq double %a, %b
489; CHECK-NEXT:    ret i1 [[TMP1]]
490;
491  %cmp = fcmp ueq double %a, %b
492  %cmp1 = fcmp ord double %a, %b
493  %retval = and i1 %cmp, %cmp1
494  ret i1 %retval
495}
496
497define i1 @auto_gen_44(double %a, double %b) {
498; CHECK-LABEL: @auto_gen_44(
499; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ueq double %a, %b
500; CHECK-NEXT:    ret i1 [[TMP1]]
501;
502  %cmp = fcmp ueq double %a, %b
503  %cmp1 = fcmp ueq double %a, %b
504  %retval = and i1 %cmp, %cmp1
505  ret i1 %retval
506}
507
508define i1 @auto_gen_45(double %a, double %b) {
509; CHECK-LABEL: @auto_gen_45(
510; CHECK-NEXT:    ret i1 false
511;
512  %cmp = fcmp ugt double %a, %b
513  %cmp1 = fcmp false double %a, %b
514  %retval = and i1 %cmp, %cmp1
515  ret i1 %retval
516}
517
518define i1 @auto_gen_46(double %a, double %b) {
519; CHECK-LABEL: @auto_gen_46(
520; CHECK-NEXT:    ret i1 false
521;
522  %cmp = fcmp ugt double %a, %b
523  %cmp1 = fcmp oeq double %a, %b
524  %retval = and i1 %cmp, %cmp1
525  ret i1 %retval
526}
527
528define i1 @auto_gen_47(double %a, double %b) {
529; CHECK-LABEL: @auto_gen_47(
530; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ogt double %a, %b
531; CHECK-NEXT:    ret i1 [[TMP1]]
532;
533  %cmp = fcmp ugt double %a, %b
534  %cmp1 = fcmp ogt double %a, %b
535  %retval = and i1 %cmp, %cmp1
536  ret i1 %retval
537}
538
539define i1 @auto_gen_48(double %a, double %b) {
540; CHECK-LABEL: @auto_gen_48(
541; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ogt double %a, %b
542; CHECK-NEXT:    ret i1 [[TMP1]]
543;
544  %cmp = fcmp ugt double %a, %b
545  %cmp1 = fcmp oge double %a, %b
546  %retval = and i1 %cmp, %cmp1
547  ret i1 %retval
548}
549
550define i1 @auto_gen_49(double %a, double %b) {
551; CHECK-LABEL: @auto_gen_49(
552; CHECK-NEXT:    ret i1 false
553;
554  %cmp = fcmp ugt double %a, %b
555  %cmp1 = fcmp olt double %a, %b
556  %retval = and i1 %cmp, %cmp1
557  ret i1 %retval
558}
559
560define i1 @auto_gen_50(double %a, double %b) {
561; CHECK-LABEL: @auto_gen_50(
562; CHECK-NEXT:    ret i1 false
563;
564  %cmp = fcmp ugt double %a, %b
565  %cmp1 = fcmp ole double %a, %b
566  %retval = and i1 %cmp, %cmp1
567  ret i1 %retval
568}
569
570define i1 @auto_gen_51(double %a, double %b) {
571; CHECK-LABEL: @auto_gen_51(
572; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ogt double %a, %b
573; CHECK-NEXT:    ret i1 [[TMP1]]
574;
575  %cmp = fcmp ugt double %a, %b
576  %cmp1 = fcmp one double %a, %b
577  %retval = and i1 %cmp, %cmp1
578  ret i1 %retval
579}
580
581define i1 @auto_gen_52(double %a, double %b) {
582; CHECK-LABEL: @auto_gen_52(
583; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ogt double %a, %b
584; CHECK-NEXT:    ret i1 [[TMP1]]
585;
586  %cmp = fcmp ugt double %a, %b
587  %cmp1 = fcmp ord double %a, %b
588  %retval = and i1 %cmp, %cmp1
589  ret i1 %retval
590}
591
592define i1 @auto_gen_53(double %a, double %b) {
593; CHECK-LABEL: @auto_gen_53(
594; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uno double %a, %b
595; CHECK-NEXT:    ret i1 [[TMP1]]
596;
597  %cmp = fcmp ugt double %a, %b
598  %cmp1 = fcmp ueq double %a, %b
599  %retval = and i1 %cmp, %cmp1
600  ret i1 %retval
601}
602
603define i1 @auto_gen_54(double %a, double %b) {
604; CHECK-LABEL: @auto_gen_54(
605; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ugt double %a, %b
606; CHECK-NEXT:    ret i1 [[TMP1]]
607;
608  %cmp = fcmp ugt double %a, %b
609  %cmp1 = fcmp ugt double %a, %b
610  %retval = and i1 %cmp, %cmp1
611  ret i1 %retval
612}
613
614define i1 @auto_gen_55(double %a, double %b) {
615; CHECK-LABEL: @auto_gen_55(
616; CHECK-NEXT:    ret i1 false
617;
618  %cmp = fcmp uge double %a, %b
619  %cmp1 = fcmp false double %a, %b
620  %retval = and i1 %cmp, %cmp1
621  ret i1 %retval
622}
623
624define i1 @auto_gen_56(double %a, double %b) {
625; CHECK-LABEL: @auto_gen_56(
626; CHECK-NEXT:    [[TMP1:%.*]] = fcmp oeq double %a, %b
627; CHECK-NEXT:    ret i1 [[TMP1]]
628;
629  %cmp = fcmp uge double %a, %b
630  %cmp1 = fcmp oeq double %a, %b
631  %retval = and i1 %cmp, %cmp1
632  ret i1 %retval
633}
634
635define i1 @auto_gen_57(double %a, double %b) {
636; CHECK-LABEL: @auto_gen_57(
637; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ogt double %a, %b
638; CHECK-NEXT:    ret i1 [[TMP1]]
639;
640  %cmp = fcmp uge double %a, %b
641  %cmp1 = fcmp ogt double %a, %b
642  %retval = and i1 %cmp, %cmp1
643  ret i1 %retval
644}
645
646define i1 @auto_gen_58(double %a, double %b) {
647; CHECK-LABEL: @auto_gen_58(
648; CHECK-NEXT:    [[TMP1:%.*]] = fcmp oge double %a, %b
649; CHECK-NEXT:    ret i1 [[TMP1]]
650;
651  %cmp = fcmp uge double %a, %b
652  %cmp1 = fcmp oge double %a, %b
653  %retval = and i1 %cmp, %cmp1
654  ret i1 %retval
655}
656
657define i1 @auto_gen_59(double %a, double %b) {
658; CHECK-LABEL: @auto_gen_59(
659; CHECK-NEXT:    ret i1 false
660;
661  %cmp = fcmp uge double %a, %b
662  %cmp1 = fcmp olt double %a, %b
663  %retval = and i1 %cmp, %cmp1
664  ret i1 %retval
665}
666
667define i1 @auto_gen_60(double %a, double %b) {
668; CHECK-LABEL: @auto_gen_60(
669; CHECK-NEXT:    [[TMP1:%.*]] = fcmp oeq double %a, %b
670; CHECK-NEXT:    ret i1 [[TMP1]]
671;
672  %cmp = fcmp uge double %a, %b
673  %cmp1 = fcmp ole double %a, %b
674  %retval = and i1 %cmp, %cmp1
675  ret i1 %retval
676}
677
678define i1 @auto_gen_61(double %a, double %b) {
679; CHECK-LABEL: @auto_gen_61(
680; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ogt double %a, %b
681; CHECK-NEXT:    ret i1 [[TMP1]]
682;
683  %cmp = fcmp uge double %a, %b
684  %cmp1 = fcmp one double %a, %b
685  %retval = and i1 %cmp, %cmp1
686  ret i1 %retval
687}
688
689define i1 @auto_gen_62(double %a, double %b) {
690; CHECK-LABEL: @auto_gen_62(
691; CHECK-NEXT:    [[TMP1:%.*]] = fcmp oge double %a, %b
692; CHECK-NEXT:    ret i1 [[TMP1]]
693;
694  %cmp = fcmp uge double %a, %b
695  %cmp1 = fcmp ord double %a, %b
696  %retval = and i1 %cmp, %cmp1
697  ret i1 %retval
698}
699
700define i1 @auto_gen_63(double %a, double %b) {
701; CHECK-LABEL: @auto_gen_63(
702; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ueq double %a, %b
703; CHECK-NEXT:    ret i1 [[TMP1]]
704;
705  %cmp = fcmp uge double %a, %b
706  %cmp1 = fcmp ueq double %a, %b
707  %retval = and i1 %cmp, %cmp1
708  ret i1 %retval
709}
710
711define i1 @auto_gen_64(double %a, double %b) {
712; CHECK-LABEL: @auto_gen_64(
713; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ugt double %a, %b
714; CHECK-NEXT:    ret i1 [[TMP1]]
715;
716  %cmp = fcmp uge double %a, %b
717  %cmp1 = fcmp ugt double %a, %b
718  %retval = and i1 %cmp, %cmp1
719  ret i1 %retval
720}
721
722define i1 @auto_gen_65(double %a, double %b) {
723; CHECK-LABEL: @auto_gen_65(
724; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uge double %a, %b
725; CHECK-NEXT:    ret i1 [[TMP1]]
726;
727  %cmp = fcmp uge double %a, %b
728  %cmp1 = fcmp uge double %a, %b
729  %retval = and i1 %cmp, %cmp1
730  ret i1 %retval
731}
732
733define i1 @auto_gen_66(double %a, double %b) {
734; CHECK-LABEL: @auto_gen_66(
735; CHECK-NEXT:    ret i1 false
736;
737  %cmp = fcmp ult double %a, %b
738  %cmp1 = fcmp false double %a, %b
739  %retval = and i1 %cmp, %cmp1
740  ret i1 %retval
741}
742
743define i1 @auto_gen_67(double %a, double %b) {
744; CHECK-LABEL: @auto_gen_67(
745; CHECK-NEXT:    ret i1 false
746;
747  %cmp = fcmp ult double %a, %b
748  %cmp1 = fcmp oeq double %a, %b
749  %retval = and i1 %cmp, %cmp1
750  ret i1 %retval
751}
752
753define i1 @auto_gen_68(double %a, double %b) {
754; CHECK-LABEL: @auto_gen_68(
755; CHECK-NEXT:    ret i1 false
756;
757  %cmp = fcmp ult double %a, %b
758  %cmp1 = fcmp ogt double %a, %b
759  %retval = and i1 %cmp, %cmp1
760  ret i1 %retval
761}
762
763define i1 @auto_gen_69(double %a, double %b) {
764; CHECK-LABEL: @auto_gen_69(
765; CHECK-NEXT:    ret i1 false
766;
767  %cmp = fcmp ult double %a, %b
768  %cmp1 = fcmp oge double %a, %b
769  %retval = and i1 %cmp, %cmp1
770  ret i1 %retval
771}
772
773define i1 @auto_gen_70(double %a, double %b) {
774; CHECK-LABEL: @auto_gen_70(
775; CHECK-NEXT:    [[TMP1:%.*]] = fcmp olt double %a, %b
776; CHECK-NEXT:    ret i1 [[TMP1]]
777;
778  %cmp = fcmp ult double %a, %b
779  %cmp1 = fcmp olt double %a, %b
780  %retval = and i1 %cmp, %cmp1
781  ret i1 %retval
782}
783
784define i1 @auto_gen_71(double %a, double %b) {
785; CHECK-LABEL: @auto_gen_71(
786; CHECK-NEXT:    [[TMP1:%.*]] = fcmp olt double %a, %b
787; CHECK-NEXT:    ret i1 [[TMP1]]
788;
789  %cmp = fcmp ult double %a, %b
790  %cmp1 = fcmp ole double %a, %b
791  %retval = and i1 %cmp, %cmp1
792  ret i1 %retval
793}
794
795define i1 @auto_gen_72(double %a, double %b) {
796; CHECK-LABEL: @auto_gen_72(
797; CHECK-NEXT:    [[TMP1:%.*]] = fcmp olt double %a, %b
798; CHECK-NEXT:    ret i1 [[TMP1]]
799;
800  %cmp = fcmp ult double %a, %b
801  %cmp1 = fcmp one double %a, %b
802  %retval = and i1 %cmp, %cmp1
803  ret i1 %retval
804}
805
806define i1 @auto_gen_73(double %a, double %b) {
807; CHECK-LABEL: @auto_gen_73(
808; CHECK-NEXT:    [[TMP1:%.*]] = fcmp olt double %a, %b
809; CHECK-NEXT:    ret i1 [[TMP1]]
810;
811  %cmp = fcmp ult double %a, %b
812  %cmp1 = fcmp ord double %a, %b
813  %retval = and i1 %cmp, %cmp1
814  ret i1 %retval
815}
816
817define i1 @auto_gen_74(double %a, double %b) {
818; CHECK-LABEL: @auto_gen_74(
819; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uno double %a, %b
820; CHECK-NEXT:    ret i1 [[TMP1]]
821;
822  %cmp = fcmp ult double %a, %b
823  %cmp1 = fcmp ueq double %a, %b
824  %retval = and i1 %cmp, %cmp1
825  ret i1 %retval
826}
827
828define i1 @auto_gen_75(double %a, double %b) {
829; CHECK-LABEL: @auto_gen_75(
830; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uno double %a, %b
831; CHECK-NEXT:    ret i1 [[TMP1]]
832;
833  %cmp = fcmp ult double %a, %b
834  %cmp1 = fcmp ugt double %a, %b
835  %retval = and i1 %cmp, %cmp1
836  ret i1 %retval
837}
838
839define i1 @auto_gen_76(double %a, double %b) {
840; CHECK-LABEL: @auto_gen_76(
841; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uno double %a, %b
842; CHECK-NEXT:    ret i1 [[TMP1]]
843;
844  %cmp = fcmp ult double %a, %b
845  %cmp1 = fcmp uge double %a, %b
846  %retval = and i1 %cmp, %cmp1
847  ret i1 %retval
848}
849
850define i1 @auto_gen_77(double %a, double %b) {
851; CHECK-LABEL: @auto_gen_77(
852; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ult double %a, %b
853; CHECK-NEXT:    ret i1 [[TMP1]]
854;
855  %cmp = fcmp ult double %a, %b
856  %cmp1 = fcmp ult double %a, %b
857  %retval = and i1 %cmp, %cmp1
858  ret i1 %retval
859}
860
861define i1 @auto_gen_78(double %a, double %b) {
862; CHECK-LABEL: @auto_gen_78(
863; CHECK-NEXT:    ret i1 false
864;
865  %cmp = fcmp ule double %a, %b
866  %cmp1 = fcmp false double %a, %b
867  %retval = and i1 %cmp, %cmp1
868  ret i1 %retval
869}
870
871define i1 @auto_gen_79(double %a, double %b) {
872; CHECK-LABEL: @auto_gen_79(
873; CHECK-NEXT:    [[TMP1:%.*]] = fcmp oeq double %a, %b
874; CHECK-NEXT:    ret i1 [[TMP1]]
875;
876  %cmp = fcmp ule double %a, %b
877  %cmp1 = fcmp oeq double %a, %b
878  %retval = and i1 %cmp, %cmp1
879  ret i1 %retval
880}
881
882define i1 @auto_gen_80(double %a, double %b) {
883; CHECK-LABEL: @auto_gen_80(
884; CHECK-NEXT:    ret i1 false
885;
886  %cmp = fcmp ule double %a, %b
887  %cmp1 = fcmp ogt double %a, %b
888  %retval = and i1 %cmp, %cmp1
889  ret i1 %retval
890}
891
892define i1 @auto_gen_81(double %a, double %b) {
893; CHECK-LABEL: @auto_gen_81(
894; CHECK-NEXT:    [[TMP1:%.*]] = fcmp oeq double %a, %b
895; CHECK-NEXT:    ret i1 [[TMP1]]
896;
897  %cmp = fcmp ule double %a, %b
898  %cmp1 = fcmp oge double %a, %b
899  %retval = and i1 %cmp, %cmp1
900  ret i1 %retval
901}
902
903define i1 @auto_gen_82(double %a, double %b) {
904; CHECK-LABEL: @auto_gen_82(
905; CHECK-NEXT:    [[TMP1:%.*]] = fcmp olt double %a, %b
906; CHECK-NEXT:    ret i1 [[TMP1]]
907;
908  %cmp = fcmp ule double %a, %b
909  %cmp1 = fcmp olt double %a, %b
910  %retval = and i1 %cmp, %cmp1
911  ret i1 %retval
912}
913
914define i1 @auto_gen_83(double %a, double %b) {
915; CHECK-LABEL: @auto_gen_83(
916; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ole double %a, %b
917; CHECK-NEXT:    ret i1 [[TMP1]]
918;
919  %cmp = fcmp ule double %a, %b
920  %cmp1 = fcmp ole double %a, %b
921  %retval = and i1 %cmp, %cmp1
922  ret i1 %retval
923}
924
925define i1 @auto_gen_84(double %a, double %b) {
926; CHECK-LABEL: @auto_gen_84(
927; CHECK-NEXT:    [[TMP1:%.*]] = fcmp olt double %a, %b
928; CHECK-NEXT:    ret i1 [[TMP1]]
929;
930  %cmp = fcmp ule double %a, %b
931  %cmp1 = fcmp one double %a, %b
932  %retval = and i1 %cmp, %cmp1
933  ret i1 %retval
934}
935
936define i1 @auto_gen_85(double %a, double %b) {
937; CHECK-LABEL: @auto_gen_85(
938; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ole double %a, %b
939; CHECK-NEXT:    ret i1 [[TMP1]]
940;
941  %cmp = fcmp ule double %a, %b
942  %cmp1 = fcmp ord double %a, %b
943  %retval = and i1 %cmp, %cmp1
944  ret i1 %retval
945}
946
947define i1 @auto_gen_86(double %a, double %b) {
948; CHECK-LABEL: @auto_gen_86(
949; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ueq double %a, %b
950; CHECK-NEXT:    ret i1 [[TMP1]]
951;
952  %cmp = fcmp ule double %a, %b
953  %cmp1 = fcmp ueq double %a, %b
954  %retval = and i1 %cmp, %cmp1
955  ret i1 %retval
956}
957
958define i1 @auto_gen_87(double %a, double %b) {
959; CHECK-LABEL: @auto_gen_87(
960; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uno double %a, %b
961; CHECK-NEXT:    ret i1 [[TMP1]]
962;
963  %cmp = fcmp ule double %a, %b
964  %cmp1 = fcmp ugt double %a, %b
965  %retval = and i1 %cmp, %cmp1
966  ret i1 %retval
967}
968
969define i1 @auto_gen_88(double %a, double %b) {
970; CHECK-LABEL: @auto_gen_88(
971; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ueq double %a, %b
972; CHECK-NEXT:    ret i1 [[TMP1]]
973;
974  %cmp = fcmp ule double %a, %b
975  %cmp1 = fcmp uge double %a, %b
976  %retval = and i1 %cmp, %cmp1
977  ret i1 %retval
978}
979
980define i1 @auto_gen_89(double %a, double %b) {
981; CHECK-LABEL: @auto_gen_89(
982; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ult double %a, %b
983; CHECK-NEXT:    ret i1 [[TMP1]]
984;
985  %cmp = fcmp ule double %a, %b
986  %cmp1 = fcmp ult double %a, %b
987  %retval = and i1 %cmp, %cmp1
988  ret i1 %retval
989}
990
991define i1 @auto_gen_90(double %a, double %b) {
992; CHECK-LABEL: @auto_gen_90(
993; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ule double %a, %b
994; CHECK-NEXT:    ret i1 [[TMP1]]
995;
996  %cmp = fcmp ule double %a, %b
997  %cmp1 = fcmp ule double %a, %b
998  %retval = and i1 %cmp, %cmp1
999  ret i1 %retval
1000}
1001
1002define i1 @auto_gen_91(double %a, double %b) {
1003; CHECK-LABEL: @auto_gen_91(
1004; CHECK-NEXT:    ret i1 false
1005;
1006  %cmp = fcmp une double %a, %b
1007  %cmp1 = fcmp false double %a, %b
1008  %retval = and i1 %cmp, %cmp1
1009  ret i1 %retval
1010}
1011
1012define i1 @auto_gen_92(double %a, double %b) {
1013; CHECK-LABEL: @auto_gen_92(
1014; CHECK-NEXT:    ret i1 false
1015;
1016  %cmp = fcmp une double %a, %b
1017  %cmp1 = fcmp oeq double %a, %b
1018  %retval = and i1 %cmp, %cmp1
1019  ret i1 %retval
1020}
1021
1022define i1 @auto_gen_93(double %a, double %b) {
1023; CHECK-LABEL: @auto_gen_93(
1024; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ogt double %a, %b
1025; CHECK-NEXT:    ret i1 [[TMP1]]
1026;
1027  %cmp = fcmp une double %a, %b
1028  %cmp1 = fcmp ogt double %a, %b
1029  %retval = and i1 %cmp, %cmp1
1030  ret i1 %retval
1031}
1032
1033define i1 @auto_gen_94(double %a, double %b) {
1034; CHECK-LABEL: @auto_gen_94(
1035; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ogt double %a, %b
1036; CHECK-NEXT:    ret i1 [[TMP1]]
1037;
1038  %cmp = fcmp une double %a, %b
1039  %cmp1 = fcmp oge double %a, %b
1040  %retval = and i1 %cmp, %cmp1
1041  ret i1 %retval
1042}
1043
1044define i1 @auto_gen_95(double %a, double %b) {
1045; CHECK-LABEL: @auto_gen_95(
1046; CHECK-NEXT:    [[TMP1:%.*]] = fcmp olt double %a, %b
1047; CHECK-NEXT:    ret i1 [[TMP1]]
1048;
1049  %cmp = fcmp une double %a, %b
1050  %cmp1 = fcmp olt double %a, %b
1051  %retval = and i1 %cmp, %cmp1
1052  ret i1 %retval
1053}
1054
1055define i1 @auto_gen_96(double %a, double %b) {
1056; CHECK-LABEL: @auto_gen_96(
1057; CHECK-NEXT:    [[TMP1:%.*]] = fcmp olt double %a, %b
1058; CHECK-NEXT:    ret i1 [[TMP1]]
1059;
1060  %cmp = fcmp une double %a, %b
1061  %cmp1 = fcmp ole double %a, %b
1062  %retval = and i1 %cmp, %cmp1
1063  ret i1 %retval
1064}
1065
1066define i1 @auto_gen_97(double %a, double %b) {
1067; CHECK-LABEL: @auto_gen_97(
1068; CHECK-NEXT:    [[TMP1:%.*]] = fcmp one double %a, %b
1069; CHECK-NEXT:    ret i1 [[TMP1]]
1070;
1071  %cmp = fcmp une double %a, %b
1072  %cmp1 = fcmp one double %a, %b
1073  %retval = and i1 %cmp, %cmp1
1074  ret i1 %retval
1075}
1076
1077define i1 @auto_gen_98(double %a, double %b) {
1078; CHECK-LABEL: @auto_gen_98(
1079; CHECK-NEXT:    [[TMP1:%.*]] = fcmp one double %a, %b
1080; CHECK-NEXT:    ret i1 [[TMP1]]
1081;
1082  %cmp = fcmp une double %a, %b
1083  %cmp1 = fcmp ord double %a, %b
1084  %retval = and i1 %cmp, %cmp1
1085  ret i1 %retval
1086}
1087
1088define i1 @auto_gen_99(double %a, double %b) {
1089; CHECK-LABEL: @auto_gen_99(
1090; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uno double %a, %b
1091; CHECK-NEXT:    ret i1 [[TMP1]]
1092;
1093  %cmp = fcmp une double %a, %b
1094  %cmp1 = fcmp ueq double %a, %b
1095  %retval = and i1 %cmp, %cmp1
1096  ret i1 %retval
1097}
1098
1099define i1 @auto_gen_100(double %a, double %b) {
1100; CHECK-LABEL: @auto_gen_100(
1101; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ugt double %a, %b
1102; CHECK-NEXT:    ret i1 [[TMP1]]
1103;
1104  %cmp = fcmp une double %a, %b
1105  %cmp1 = fcmp ugt double %a, %b
1106  %retval = and i1 %cmp, %cmp1
1107  ret i1 %retval
1108}
1109
1110define i1 @auto_gen_101(double %a, double %b) {
1111; CHECK-LABEL: @auto_gen_101(
1112; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ugt double %a, %b
1113; CHECK-NEXT:    ret i1 [[TMP1]]
1114;
1115  %cmp = fcmp une double %a, %b
1116  %cmp1 = fcmp uge double %a, %b
1117  %retval = and i1 %cmp, %cmp1
1118  ret i1 %retval
1119}
1120
1121define i1 @auto_gen_102(double %a, double %b) {
1122; CHECK-LABEL: @auto_gen_102(
1123; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ult double %a, %b
1124; CHECK-NEXT:    ret i1 [[TMP1]]
1125;
1126  %cmp = fcmp une double %a, %b
1127  %cmp1 = fcmp ult double %a, %b
1128  %retval = and i1 %cmp, %cmp1
1129  ret i1 %retval
1130}
1131
1132define i1 @auto_gen_103(double %a, double %b) {
1133; CHECK-LABEL: @auto_gen_103(
1134; CHECK-NEXT:    [[TMP1:%.*]] = fcmp ult double %a, %b
1135; CHECK-NEXT:    ret i1 [[TMP1]]
1136;
1137  %cmp = fcmp une double %a, %b
1138  %cmp1 = fcmp ule double %a, %b
1139  %retval = and i1 %cmp, %cmp1
1140  ret i1 %retval
1141}
1142
1143define i1 @auto_gen_104(double %a, double %b) {
1144; CHECK-LABEL: @auto_gen_104(
1145; CHECK-NEXT:    [[TMP1:%.*]] = fcmp une double %a, %b
1146; CHECK-NEXT:    ret i1 [[TMP1]]
1147;
1148  %cmp = fcmp une double %a, %b
1149  %cmp1 = fcmp une double %a, %b
1150  %retval = and i1 %cmp, %cmp1
1151  ret i1 %retval
1152}
1153
1154define i1 @auto_gen_105(double %a, double %b) {
1155; CHECK-LABEL: @auto_gen_105(
1156; CHECK-NEXT:    ret i1 false
1157;
1158  %cmp = fcmp uno double %a, %b
1159  %cmp1 = fcmp false double %a, %b
1160  %retval = and i1 %cmp, %cmp1
1161  ret i1 %retval
1162}
1163
1164define i1 @auto_gen_106(double %a, double %b) {
1165; CHECK-LABEL: @auto_gen_106(
1166; CHECK-NEXT:    ret i1 false
1167;
1168  %cmp = fcmp uno double %a, %b
1169  %cmp1 = fcmp oeq double %a, %b
1170  %retval = and i1 %cmp, %cmp1
1171  ret i1 %retval
1172}
1173
1174define i1 @auto_gen_107(double %a, double %b) {
1175; CHECK-LABEL: @auto_gen_107(
1176; CHECK-NEXT:    ret i1 false
1177;
1178  %cmp = fcmp uno double %a, %b
1179  %cmp1 = fcmp ogt double %a, %b
1180  %retval = and i1 %cmp, %cmp1
1181  ret i1 %retval
1182}
1183
1184define i1 @auto_gen_108(double %a, double %b) {
1185; CHECK-LABEL: @auto_gen_108(
1186; CHECK-NEXT:    ret i1 false
1187;
1188  %cmp = fcmp uno double %a, %b
1189  %cmp1 = fcmp oge double %a, %b
1190  %retval = and i1 %cmp, %cmp1
1191  ret i1 %retval
1192}
1193
1194define i1 @auto_gen_109(double %a, double %b) {
1195; CHECK-LABEL: @auto_gen_109(
1196; CHECK-NEXT:    ret i1 false
1197;
1198  %cmp = fcmp uno double %a, %b
1199  %cmp1 = fcmp olt double %a, %b
1200  %retval = and i1 %cmp, %cmp1
1201  ret i1 %retval
1202}
1203
1204define i1 @auto_gen_110(double %a, double %b) {
1205; CHECK-LABEL: @auto_gen_110(
1206; CHECK-NEXT:    ret i1 false
1207;
1208  %cmp = fcmp uno double %a, %b
1209  %cmp1 = fcmp ole double %a, %b
1210  %retval = and i1 %cmp, %cmp1
1211  ret i1 %retval
1212}
1213
1214define i1 @auto_gen_111(double %a, double %b) {
1215; CHECK-LABEL: @auto_gen_111(
1216; CHECK-NEXT:    ret i1 false
1217;
1218  %cmp = fcmp uno double %a, %b
1219  %cmp1 = fcmp one double %a, %b
1220  %retval = and i1 %cmp, %cmp1
1221  ret i1 %retval
1222}
1223
1224define i1 @auto_gen_112(double %a, double %b) {
1225; CHECK-LABEL: @auto_gen_112(
1226; CHECK-NEXT:    ret i1 false
1227;
1228  %cmp = fcmp uno double %a, %b
1229  %cmp1 = fcmp ord double %a, %b
1230  %retval = and i1 %cmp, %cmp1
1231  ret i1 %retval
1232}
1233
1234define i1 @auto_gen_113(double %a, double %b) {
1235; CHECK-LABEL: @auto_gen_113(
1236; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uno double %a, %b
1237; CHECK-NEXT:    ret i1 [[TMP1]]
1238;
1239  %cmp = fcmp uno double %a, %b
1240  %cmp1 = fcmp ueq double %a, %b
1241  %retval = and i1 %cmp, %cmp1
1242  ret i1 %retval
1243}
1244
1245define i1 @auto_gen_114(double %a, double %b) {
1246; CHECK-LABEL: @auto_gen_114(
1247; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uno double %a, %b
1248; CHECK-NEXT:    ret i1 [[TMP1]]
1249;
1250  %cmp = fcmp uno double %a, %b
1251  %cmp1 = fcmp ugt double %a, %b
1252  %retval = and i1 %cmp, %cmp1
1253  ret i1 %retval
1254}
1255
1256define i1 @auto_gen_115(double %a, double %b) {
1257; CHECK-LABEL: @auto_gen_115(
1258; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uno double %a, %b
1259; CHECK-NEXT:    ret i1 [[TMP1]]
1260;
1261  %cmp = fcmp uno double %a, %b
1262  %cmp1 = fcmp uge double %a, %b
1263  %retval = and i1 %cmp, %cmp1
1264  ret i1 %retval
1265}
1266
1267define i1 @auto_gen_116(double %a, double %b) {
1268; CHECK-LABEL: @auto_gen_116(
1269; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uno double %a, %b
1270; CHECK-NEXT:    ret i1 [[TMP1]]
1271;
1272  %cmp = fcmp uno double %a, %b
1273  %cmp1 = fcmp ult double %a, %b
1274  %retval = and i1 %cmp, %cmp1
1275  ret i1 %retval
1276}
1277
1278define i1 @auto_gen_117(double %a, double %b) {
1279; CHECK-LABEL: @auto_gen_117(
1280; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uno double %a, %b
1281; CHECK-NEXT:    ret i1 [[TMP1]]
1282;
1283  %cmp = fcmp uno double %a, %b
1284  %cmp1 = fcmp ule double %a, %b
1285  %retval = and i1 %cmp, %cmp1
1286  ret i1 %retval
1287}
1288
1289define i1 @auto_gen_118(double %a, double %b) {
1290; CHECK-LABEL: @auto_gen_118(
1291; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uno double %a, %b
1292; CHECK-NEXT:    ret i1 [[TMP1]]
1293;
1294  %cmp = fcmp uno double %a, %b
1295  %cmp1 = fcmp une double %a, %b
1296  %retval = and i1 %cmp, %cmp1
1297  ret i1 %retval
1298}
1299
1300define i1 @auto_gen_119(double %a, double %b) {
1301; CHECK-LABEL: @auto_gen_119(
1302; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uno double %a, %b
1303; CHECK-NEXT:    ret i1 [[TMP1]]
1304;
1305  %cmp = fcmp uno double %a, %b
1306  %cmp1 = fcmp uno double %a, %b
1307  %retval = and i1 %cmp, %cmp1
1308  ret i1 %retval
1309}
1310
1311define i1 @auto_gen_120(double %a, double %b) {
1312; CHECK-LABEL: @auto_gen_120(
1313; CHECK-NEXT:    ret i1 false
1314;
1315  %cmp = fcmp true double %a, %b
1316  %cmp1 = fcmp false double %a, %b
1317  %retval = and i1 %cmp, %cmp1
1318  ret i1 %retval
1319}
1320
1321define i1 @auto_gen_121(double %a, double %b) {
1322; CHECK-LABEL: @auto_gen_121(
1323; CHECK-NEXT:    [[CMP1:%.*]] = fcmp oeq double %a, %b
1324; CHECK-NEXT:    ret i1 [[CMP1]]
1325;
1326  %cmp = fcmp true double %a, %b
1327  %cmp1 = fcmp oeq double %a, %b
1328  %retval = and i1 %cmp, %cmp1
1329  ret i1 %retval
1330}
1331
1332define i1 @auto_gen_122(double %a, double %b) {
1333; CHECK-LABEL: @auto_gen_122(
1334; CHECK-NEXT:    [[CMP1:%.*]] = fcmp ogt double %a, %b
1335; CHECK-NEXT:    ret i1 [[CMP1]]
1336;
1337  %cmp = fcmp true double %a, %b
1338  %cmp1 = fcmp ogt double %a, %b
1339  %retval = and i1 %cmp, %cmp1
1340  ret i1 %retval
1341}
1342
1343define i1 @auto_gen_123(double %a, double %b) {
1344; CHECK-LABEL: @auto_gen_123(
1345; CHECK-NEXT:    [[CMP1:%.*]] = fcmp oge double %a, %b
1346; CHECK-NEXT:    ret i1 [[CMP1]]
1347;
1348  %cmp = fcmp true double %a, %b
1349  %cmp1 = fcmp oge double %a, %b
1350  %retval = and i1 %cmp, %cmp1
1351  ret i1 %retval
1352}
1353
1354define i1 @auto_gen_124(double %a, double %b) {
1355; CHECK-LABEL: @auto_gen_124(
1356; CHECK-NEXT:    [[CMP1:%.*]] = fcmp olt double %a, %b
1357; CHECK-NEXT:    ret i1 [[CMP1]]
1358;
1359  %cmp = fcmp true double %a, %b
1360  %cmp1 = fcmp olt double %a, %b
1361  %retval = and i1 %cmp, %cmp1
1362  ret i1 %retval
1363}
1364
1365define i1 @auto_gen_125(double %a, double %b) {
1366; CHECK-LABEL: @auto_gen_125(
1367; CHECK-NEXT:    [[CMP1:%.*]] = fcmp ole double %a, %b
1368; CHECK-NEXT:    ret i1 [[CMP1]]
1369;
1370  %cmp = fcmp true double %a, %b
1371  %cmp1 = fcmp ole double %a, %b
1372  %retval = and i1 %cmp, %cmp1
1373  ret i1 %retval
1374}
1375
1376define i1 @auto_gen_126(double %a, double %b) {
1377; CHECK-LABEL: @auto_gen_126(
1378; CHECK-NEXT:    [[CMP1:%.*]] = fcmp one double %a, %b
1379; CHECK-NEXT:    ret i1 [[CMP1]]
1380;
1381  %cmp = fcmp true double %a, %b
1382  %cmp1 = fcmp one double %a, %b
1383  %retval = and i1 %cmp, %cmp1
1384  ret i1 %retval
1385}
1386
1387define i1 @auto_gen_127(double %a, double %b) {
1388; CHECK-LABEL: @auto_gen_127(
1389; CHECK-NEXT:    [[CMP1:%.*]] = fcmp ord double %a, %b
1390; CHECK-NEXT:    ret i1 [[CMP1]]
1391;
1392  %cmp = fcmp true double %a, %b
1393  %cmp1 = fcmp ord double %a, %b
1394  %retval = and i1 %cmp, %cmp1
1395  ret i1 %retval
1396}
1397
1398define i1 @auto_gen_128(double %a, double %b) {
1399; CHECK-LABEL: @auto_gen_128(
1400; CHECK-NEXT:    [[CMP1:%.*]] = fcmp ueq double %a, %b
1401; CHECK-NEXT:    ret i1 [[CMP1]]
1402;
1403  %cmp = fcmp true double %a, %b
1404  %cmp1 = fcmp ueq double %a, %b
1405  %retval = and i1 %cmp, %cmp1
1406  ret i1 %retval
1407}
1408
1409define i1 @auto_gen_129(double %a, double %b) {
1410; CHECK-LABEL: @auto_gen_129(
1411; CHECK-NEXT:    [[CMP1:%.*]] = fcmp ugt double %a, %b
1412; CHECK-NEXT:    ret i1 [[CMP1]]
1413;
1414  %cmp = fcmp true double %a, %b
1415  %cmp1 = fcmp ugt double %a, %b
1416  %retval = and i1 %cmp, %cmp1
1417  ret i1 %retval
1418}
1419
1420define i1 @auto_gen_130(double %a, double %b) {
1421; CHECK-LABEL: @auto_gen_130(
1422; CHECK-NEXT:    [[CMP1:%.*]] = fcmp uge double %a, %b
1423; CHECK-NEXT:    ret i1 [[CMP1]]
1424;
1425  %cmp = fcmp true double %a, %b
1426  %cmp1 = fcmp uge double %a, %b
1427  %retval = and i1 %cmp, %cmp1
1428  ret i1 %retval
1429}
1430
1431define i1 @auto_gen_131(double %a, double %b) {
1432; CHECK-LABEL: @auto_gen_131(
1433; CHECK-NEXT:    [[CMP1:%.*]] = fcmp ult double %a, %b
1434; CHECK-NEXT:    ret i1 [[CMP1]]
1435;
1436  %cmp = fcmp true double %a, %b
1437  %cmp1 = fcmp ult double %a, %b
1438  %retval = and i1 %cmp, %cmp1
1439  ret i1 %retval
1440}
1441
1442define i1 @auto_gen_132(double %a, double %b) {
1443; CHECK-LABEL: @auto_gen_132(
1444; CHECK-NEXT:    [[CMP1:%.*]] = fcmp ule double %a, %b
1445; CHECK-NEXT:    ret i1 [[CMP1]]
1446;
1447  %cmp = fcmp true double %a, %b
1448  %cmp1 = fcmp ule double %a, %b
1449  %retval = and i1 %cmp, %cmp1
1450  ret i1 %retval
1451}
1452
1453define i1 @auto_gen_133(double %a, double %b) {
1454; CHECK-LABEL: @auto_gen_133(
1455; CHECK-NEXT:    [[CMP1:%.*]] = fcmp une double %a, %b
1456; CHECK-NEXT:    ret i1 [[CMP1]]
1457;
1458  %cmp = fcmp true double %a, %b
1459  %cmp1 = fcmp une double %a, %b
1460  %retval = and i1 %cmp, %cmp1
1461  ret i1 %retval
1462}
1463
1464define i1 @auto_gen_134(double %a, double %b) {
1465; CHECK-LABEL: @auto_gen_134(
1466; CHECK-NEXT:    [[CMP1:%.*]] = fcmp uno double %a, %b
1467; CHECK-NEXT:    ret i1 [[CMP1]]
1468;
1469  %cmp = fcmp true double %a, %b
1470  %cmp1 = fcmp uno double %a, %b
1471  %retval = and i1 %cmp, %cmp1
1472  ret i1 %retval
1473}
1474
1475define i1 @auto_gen_135(double %a, double %b) {
1476; CHECK-LABEL: @auto_gen_135(
1477; CHECK-NEXT:    ret i1 true
1478;
1479  %cmp = fcmp true double %a, %b
1480  %cmp1 = fcmp true double %a, %b
1481  %retval = and i1 %cmp, %cmp1
1482  ret i1 %retval
1483}
1484