• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2; RUN: opt < %s -instcombine -S | FileCheck %s
3
4define 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]]
8;
9  %cmp1 = fcmp uno double %x, 0.0
10  %cmp2 = fcmp uno double %y, 0.0
11  %or = or i1 %cmp1, %cmp2
12  ret i1 %or
13}
14
15define <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]]
19;
20  %cmp1 = fcmp uno <2 x double> %x, <double 0.0, double undef>
21  %cmp2 = fcmp uno <2 x double> %y, <double undef, double 0.0>
22  %or = or <2 x i1> %cmp1, %cmp2
23  ret <2 x i1> %or
24}
25
26define 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]]
32;
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
37  %r = or i1 %or, %uno3
38  ret i1 %r
39}
40
41define 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]]
47;
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
52  %r = or i1 %uno3, %or
53  ret i1 %r
54}
55
56define <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]]
61;
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
66  ret <2 x i1> %r
67}
68
69define <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]]
74;
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
79  ret <2 x i1> %r
80}
81
82define 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]]
86;
87  %cmp1 = fcmp uno float %x, 1.0
88  %cmp2 = fcmp uno float %y, 2.0
89  %or = or i1 %cmp1, %cmp2
90  ret i1 %or
91}
92
93define <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]]
97;
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
101  ret <3 x i1> %or
102}
103
104define i1 @auto_gen_0(double %a, double %b) {
105; CHECK-LABEL: @auto_gen_0(
106; CHECK-NEXT:    ret i1 false
107;
108  %cmp = fcmp false double %a, %b
109  %cmp1 = fcmp false double %a, %b
110  %retval = or i1 %cmp, %cmp1
111  ret i1 %retval
112}
113
114define 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]]
118;
119  %cmp = fcmp oeq double %a, %b
120  %cmp1 = fcmp false double %a, %b
121  %retval = or i1 %cmp, %cmp1
122  ret i1 %retval
123}
124
125define 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]]
129;
130  %cmp = fcmp oeq double %a, %b
131  %cmp1 = fcmp oeq double %a, %b
132  %retval = or i1 %cmp, %cmp1
133  ret i1 %retval
134}
135
136define 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]]
140;
141  %cmp = fcmp ogt double %a, %b
142  %cmp1 = fcmp false double %a, %b
143  %retval = or i1 %cmp, %cmp1
144  ret i1 %retval
145}
146
147define 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]]
151;
152  %cmp = fcmp ogt double %a, %b
153  %cmp1 = fcmp oeq double %a, %b
154  %retval = or i1 %cmp, %cmp1
155  ret i1 %retval
156}
157
158define 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]]
162;
163  %cmp = fcmp ogt double %a, %b
164  %cmp1 = fcmp ogt double %a, %b
165  %retval = or i1 %cmp, %cmp1
166  ret i1 %retval
167}
168
169define 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]]
173;
174  %cmp = fcmp oge double %a, %b
175  %cmp1 = fcmp false double %a, %b
176  %retval = or i1 %cmp, %cmp1
177  ret i1 %retval
178}
179
180define 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]]
184;
185  %cmp = fcmp oge double %a, %b
186  %cmp1 = fcmp oeq double %a, %b
187  %retval = or i1 %cmp, %cmp1
188  ret i1 %retval
189}
190
191define 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]]
195;
196  %cmp = fcmp oge double %a, %b
197  %cmp1 = fcmp ogt double %a, %b
198  %retval = or i1 %cmp, %cmp1
199  ret i1 %retval
200}
201
202define 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]]
206;
207  %cmp = fcmp oge double %a, %b
208  %cmp1 = fcmp oge double %a, %b
209  %retval = or i1 %cmp, %cmp1
210  ret i1 %retval
211}
212
213define 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]]
217;
218  %cmp = fcmp olt double %a, %b
219  %cmp1 = fcmp false double %a, %b
220  %retval = or i1 %cmp, %cmp1
221  ret i1 %retval
222}
223
224define 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]]
228;
229  %cmp = fcmp olt double %a, %b
230  %cmp1 = fcmp oeq double %a, %b
231  %retval = or i1 %cmp, %cmp1
232  ret i1 %retval
233}
234
235define 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]]
239;
240  %cmp = fcmp olt double %a, %b
241  %cmp1 = fcmp ogt double %a, %b
242  %retval = or i1 %cmp, %cmp1
243  ret i1 %retval
244}
245
246define 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]]
250;
251  %cmp = fcmp olt double %a, %b
252  %cmp1 = fcmp oge double %a, %b
253  %retval = or i1 %cmp, %cmp1
254  ret i1 %retval
255}
256
257define 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]]
261;
262  %cmp = fcmp olt double %a, %b
263  %cmp1 = fcmp olt double %a, %b
264  %retval = or i1 %cmp, %cmp1
265  ret i1 %retval
266}
267
268define 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]]
272;
273  %cmp = fcmp ole double %a, %b
274  %cmp1 = fcmp false double %a, %b
275  %retval = or i1 %cmp, %cmp1
276  ret i1 %retval
277}
278
279define 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]]
283;
284  %cmp = fcmp ole double %a, %b
285  %cmp1 = fcmp oeq double %a, %b
286  %retval = or i1 %cmp, %cmp1
287  ret i1 %retval
288}
289
290define 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]]
294;
295  %cmp = fcmp ole double %a, %b
296  %cmp1 = fcmp ogt double %a, %b
297  %retval = or i1 %cmp, %cmp1
298  ret i1 %retval
299}
300
301define 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]]
305;
306  %cmp = fcmp ole double %a, %b
307  %cmp1 = fcmp oge double %a, %b
308  %retval = or i1 %cmp, %cmp1
309  ret i1 %retval
310}
311
312define 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]]
316;
317  %cmp = fcmp ole double %a, %b
318  %cmp1 = fcmp olt double %a, %b
319  %retval = or i1 %cmp, %cmp1
320  ret i1 %retval
321}
322
323define 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]]
327;
328  %cmp = fcmp ole double %a, %b
329  %cmp1 = fcmp ole double %a, %b
330  %retval = or i1 %cmp, %cmp1
331  ret i1 %retval
332}
333
334define 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]]
338;
339  %cmp = fcmp one double %a, %b
340  %cmp1 = fcmp false double %a, %b
341  %retval = or i1 %cmp, %cmp1
342  ret i1 %retval
343}
344
345define 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]]
349;
350  %cmp = fcmp one double %a, %b
351  %cmp1 = fcmp oeq double %a, %b
352  %retval = or i1 %cmp, %cmp1
353  ret i1 %retval
354}
355
356define 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]]
360;
361  %cmp = fcmp one double %a, %b
362  %cmp1 = fcmp ogt double %a, %b
363  %retval = or i1 %cmp, %cmp1
364  ret i1 %retval
365}
366
367define 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]]
371;
372  %cmp = fcmp one double %a, %b
373  %cmp1 = fcmp oge double %a, %b
374  %retval = or i1 %cmp, %cmp1
375  ret i1 %retval
376}
377
378define 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]]
382;
383  %cmp = fcmp one double %a, %b
384  %cmp1 = fcmp olt double %a, %b
385  %retval = or i1 %cmp, %cmp1
386  ret i1 %retval
387}
388
389define 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]]
393;
394  %cmp = fcmp one double %a, %b
395  %cmp1 = fcmp ole double %a, %b
396  %retval = or i1 %cmp, %cmp1
397  ret i1 %retval
398}
399
400define 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]]
404;
405  %cmp = fcmp one double %a, %b
406  %cmp1 = fcmp one double %a, %b
407  %retval = or i1 %cmp, %cmp1
408  ret i1 %retval
409}
410
411define 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]]
415;
416  %cmp = fcmp ord double %a, %b
417  %cmp1 = fcmp false double %a, %b
418  %retval = or i1 %cmp, %cmp1
419  ret i1 %retval
420}
421
422define 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]]
426;
427  %cmp = fcmp ord double %a, %b
428  %cmp1 = fcmp oeq double %a, %b
429  %retval = or i1 %cmp, %cmp1
430  ret i1 %retval
431}
432
433define 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]]
437;
438  %cmp = fcmp ord double %a, %b
439  %cmp1 = fcmp ogt double %a, %b
440  %retval = or i1 %cmp, %cmp1
441  ret i1 %retval
442}
443
444define 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]]
448;
449  %cmp = fcmp ord double %a, %b
450  %cmp1 = fcmp oge double %a, %b
451  %retval = or i1 %cmp, %cmp1
452  ret i1 %retval
453}
454
455define 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]]
459;
460  %cmp = fcmp ord double %a, %b
461  %cmp1 = fcmp olt double %a, %b
462  %retval = or i1 %cmp, %cmp1
463  ret i1 %retval
464}
465
466define 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]]
470;
471  %cmp = fcmp ord double %a, %b
472  %cmp1 = fcmp ole double %a, %b
473  %retval = or i1 %cmp, %cmp1
474  ret i1 %retval
475}
476
477define 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]]
481;
482  %cmp = fcmp ord double %a, %b
483  %cmp1 = fcmp one double %a, %b
484  %retval = or i1 %cmp, %cmp1
485  ret i1 %retval
486}
487
488define 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]]
492;
493  %cmp = fcmp ord double %a, %b
494  %cmp1 = fcmp ord double %a, %b
495  %retval = or i1 %cmp, %cmp1
496  ret i1 %retval
497}
498
499define 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]]
503;
504  %cmp = fcmp ueq double %a, %b
505  %cmp1 = fcmp false double %a, %b
506  %retval = or i1 %cmp, %cmp1
507  ret i1 %retval
508}
509
510define 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]]
514;
515  %cmp = fcmp ueq double %a, %b
516  %cmp1 = fcmp oeq double %a, %b
517  %retval = or i1 %cmp, %cmp1
518  ret i1 %retval
519}
520
521define 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]]
525;
526  %cmp = fcmp ueq double %a, %b
527  %cmp1 = fcmp ogt double %a, %b
528  %retval = or i1 %cmp, %cmp1
529  ret i1 %retval
530}
531
532define 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]]
536;
537  %cmp = fcmp ueq double %a, %b
538  %cmp1 = fcmp oge double %a, %b
539  %retval = or i1 %cmp, %cmp1
540  ret i1 %retval
541}
542
543define 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]]
547;
548  %cmp = fcmp ueq double %a, %b
549  %cmp1 = fcmp olt double %a, %b
550  %retval = or i1 %cmp, %cmp1
551  ret i1 %retval
552}
553
554define 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]]
558;
559  %cmp = fcmp ueq double %a, %b
560  %cmp1 = fcmp ole double %a, %b
561  %retval = or i1 %cmp, %cmp1
562  ret i1 %retval
563}
564
565define i1 @auto_gen_42(double %a, double %b) {
566; CHECK-LABEL: @auto_gen_42(
567; CHECK-NEXT:    ret i1 true
568;
569  %cmp = fcmp ueq double %a, %b
570  %cmp1 = fcmp one double %a, %b
571  %retval = or i1 %cmp, %cmp1
572  ret i1 %retval
573}
574
575define i1 @auto_gen_43(double %a, double %b) {
576; CHECK-LABEL: @auto_gen_43(
577; CHECK-NEXT:    ret i1 true
578;
579  %cmp = fcmp ueq double %a, %b
580  %cmp1 = fcmp ord double %a, %b
581  %retval = or i1 %cmp, %cmp1
582  ret i1 %retval
583}
584
585define 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]]
589;
590  %cmp = fcmp ueq double %a, %b
591  %cmp1 = fcmp ueq double %a, %b
592  %retval = or i1 %cmp, %cmp1
593  ret i1 %retval
594}
595
596define 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]]
600;
601  %cmp = fcmp ugt double %a, %b
602  %cmp1 = fcmp false double %a, %b
603  %retval = or i1 %cmp, %cmp1
604  ret i1 %retval
605}
606
607define 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]]
611;
612  %cmp = fcmp ugt double %a, %b
613  %cmp1 = fcmp oeq double %a, %b
614  %retval = or i1 %cmp, %cmp1
615  ret i1 %retval
616}
617
618define 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]]
622;
623  %cmp = fcmp ugt double %a, %b
624  %cmp1 = fcmp ogt double %a, %b
625  %retval = or i1 %cmp, %cmp1
626  ret i1 %retval
627}
628
629define 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]]
633;
634  %cmp = fcmp ugt double %a, %b
635  %cmp1 = fcmp oge double %a, %b
636  %retval = or i1 %cmp, %cmp1
637  ret i1 %retval
638}
639
640define 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]]
644;
645  %cmp = fcmp ugt double %a, %b
646  %cmp1 = fcmp olt double %a, %b
647  %retval = or i1 %cmp, %cmp1
648  ret i1 %retval
649}
650
651define i1 @auto_gen_50(double %a, double %b) {
652; CHECK-LABEL: @auto_gen_50(
653; CHECK-NEXT:    ret i1 true
654;
655  %cmp = fcmp ugt double %a, %b
656  %cmp1 = fcmp ole double %a, %b
657  %retval = or i1 %cmp, %cmp1
658  ret i1 %retval
659}
660
661define 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]]
665;
666  %cmp = fcmp ugt double %a, %b
667  %cmp1 = fcmp one double %a, %b
668  %retval = or i1 %cmp, %cmp1
669  ret i1 %retval
670}
671
672define i1 @auto_gen_52(double %a, double %b) {
673; CHECK-LABEL: @auto_gen_52(
674; CHECK-NEXT:    ret i1 true
675;
676  %cmp = fcmp ugt double %a, %b
677  %cmp1 = fcmp ord double %a, %b
678  %retval = or i1 %cmp, %cmp1
679  ret i1 %retval
680}
681
682define 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]]
686;
687  %cmp = fcmp ugt double %a, %b
688  %cmp1 = fcmp ueq double %a, %b
689  %retval = or i1 %cmp, %cmp1
690  ret i1 %retval
691}
692
693define 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]]
697;
698  %cmp = fcmp ugt double %a, %b
699  %cmp1 = fcmp ugt double %a, %b
700  %retval = or i1 %cmp, %cmp1
701  ret i1 %retval
702}
703
704define 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]]
708;
709  %cmp = fcmp uge double %a, %b
710  %cmp1 = fcmp false double %a, %b
711  %retval = or i1 %cmp, %cmp1
712  ret i1 %retval
713}
714
715define 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]]
719;
720  %cmp = fcmp uge double %a, %b
721  %cmp1 = fcmp oeq double %a, %b
722  %retval = or i1 %cmp, %cmp1
723  ret i1 %retval
724}
725
726define 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]]
730;
731  %cmp = fcmp uge double %a, %b
732  %cmp1 = fcmp ogt double %a, %b
733  %retval = or i1 %cmp, %cmp1
734  ret i1 %retval
735}
736
737define 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]]
741;
742  %cmp = fcmp uge double %a, %b
743  %cmp1 = fcmp oge double %a, %b
744  %retval = or i1 %cmp, %cmp1
745  ret i1 %retval
746}
747
748define i1 @auto_gen_59(double %a, double %b) {
749; CHECK-LABEL: @auto_gen_59(
750; CHECK-NEXT:    ret i1 true
751;
752  %cmp = fcmp uge double %a, %b
753  %cmp1 = fcmp olt double %a, %b
754  %retval = or i1 %cmp, %cmp1
755  ret i1 %retval
756}
757
758define i1 @auto_gen_60(double %a, double %b) {
759; CHECK-LABEL: @auto_gen_60(
760; CHECK-NEXT:    ret i1 true
761;
762  %cmp = fcmp uge double %a, %b
763  %cmp1 = fcmp ole double %a, %b
764  %retval = or i1 %cmp, %cmp1
765  ret i1 %retval
766}
767
768define i1 @auto_gen_61(double %a, double %b) {
769; CHECK-LABEL: @auto_gen_61(
770; CHECK-NEXT:    ret i1 true
771;
772  %cmp = fcmp uge double %a, %b
773  %cmp1 = fcmp one double %a, %b
774  %retval = or i1 %cmp, %cmp1
775  ret i1 %retval
776}
777
778define i1 @auto_gen_62(double %a, double %b) {
779; CHECK-LABEL: @auto_gen_62(
780; CHECK-NEXT:    ret i1 true
781;
782  %cmp = fcmp uge double %a, %b
783  %cmp1 = fcmp ord double %a, %b
784  %retval = or i1 %cmp, %cmp1
785  ret i1 %retval
786}
787
788define 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]]
792;
793  %cmp = fcmp uge double %a, %b
794  %cmp1 = fcmp ueq double %a, %b
795  %retval = or i1 %cmp, %cmp1
796  ret i1 %retval
797}
798
799define 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]]
803;
804  %cmp = fcmp uge double %a, %b
805  %cmp1 = fcmp ugt double %a, %b
806  %retval = or i1 %cmp, %cmp1
807  ret i1 %retval
808}
809
810define 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]]
814;
815  %cmp = fcmp uge double %a, %b
816  %cmp1 = fcmp uge double %a, %b
817  %retval = or i1 %cmp, %cmp1
818  ret i1 %retval
819}
820
821define 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]]
825;
826  %cmp = fcmp ult double %a, %b
827  %cmp1 = fcmp false double %a, %b
828  %retval = or i1 %cmp, %cmp1
829  ret i1 %retval
830}
831
832define 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]]
836;
837  %cmp = fcmp ult double %a, %b
838  %cmp1 = fcmp oeq double %a, %b
839  %retval = or i1 %cmp, %cmp1
840  ret i1 %retval
841}
842
843define 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]]
847;
848  %cmp = fcmp ult double %a, %b
849  %cmp1 = fcmp ogt double %a, %b
850  %retval = or i1 %cmp, %cmp1
851  ret i1 %retval
852}
853
854define i1 @auto_gen_69(double %a, double %b) {
855; CHECK-LABEL: @auto_gen_69(
856; CHECK-NEXT:    ret i1 true
857;
858  %cmp = fcmp ult double %a, %b
859  %cmp1 = fcmp oge double %a, %b
860  %retval = or i1 %cmp, %cmp1
861  ret i1 %retval
862}
863
864define 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]]
868;
869  %cmp = fcmp ult double %a, %b
870  %cmp1 = fcmp olt double %a, %b
871  %retval = or i1 %cmp, %cmp1
872  ret i1 %retval
873}
874
875define 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]]
879;
880  %cmp = fcmp ult double %a, %b
881  %cmp1 = fcmp ole double %a, %b
882  %retval = or i1 %cmp, %cmp1
883  ret i1 %retval
884}
885
886define 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]]
890;
891  %cmp = fcmp ult double %a, %b
892  %cmp1 = fcmp one double %a, %b
893  %retval = or i1 %cmp, %cmp1
894  ret i1 %retval
895}
896
897define i1 @auto_gen_73(double %a, double %b) {
898; CHECK-LABEL: @auto_gen_73(
899; CHECK-NEXT:    ret i1 true
900;
901  %cmp = fcmp ult double %a, %b
902  %cmp1 = fcmp ord double %a, %b
903  %retval = or i1 %cmp, %cmp1
904  ret i1 %retval
905}
906
907define 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]]
911;
912  %cmp = fcmp ult double %a, %b
913  %cmp1 = fcmp ueq double %a, %b
914  %retval = or i1 %cmp, %cmp1
915  ret i1 %retval
916}
917
918define 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]]
922;
923  %cmp = fcmp ult double %a, %b
924  %cmp1 = fcmp ugt double %a, %b
925  %retval = or i1 %cmp, %cmp1
926  ret i1 %retval
927}
928
929define i1 @auto_gen_76(double %a, double %b) {
930; CHECK-LABEL: @auto_gen_76(
931; CHECK-NEXT:    ret i1 true
932;
933  %cmp = fcmp ult double %a, %b
934  %cmp1 = fcmp uge double %a, %b
935  %retval = or i1 %cmp, %cmp1
936  ret i1 %retval
937}
938
939define 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]]
943;
944  %cmp = fcmp ult double %a, %b
945  %cmp1 = fcmp ult double %a, %b
946  %retval = or i1 %cmp, %cmp1
947  ret i1 %retval
948}
949
950define 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]]
954;
955  %cmp = fcmp ule double %a, %b
956  %cmp1 = fcmp false double %a, %b
957  %retval = or i1 %cmp, %cmp1
958  ret i1 %retval
959}
960
961define 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]]
965;
966  %cmp = fcmp ule double %a, %b
967  %cmp1 = fcmp oeq double %a, %b
968  %retval = or i1 %cmp, %cmp1
969  ret i1 %retval
970}
971
972define i1 @auto_gen_80(double %a, double %b) {
973; CHECK-LABEL: @auto_gen_80(
974; CHECK-NEXT:    ret i1 true
975;
976  %cmp = fcmp ule double %a, %b
977  %cmp1 = fcmp ogt double %a, %b
978  %retval = or i1 %cmp, %cmp1
979  ret i1 %retval
980}
981
982define i1 @auto_gen_81(double %a, double %b) {
983; CHECK-LABEL: @auto_gen_81(
984; CHECK-NEXT:    ret i1 true
985;
986  %cmp = fcmp ule double %a, %b
987  %cmp1 = fcmp oge double %a, %b
988  %retval = or i1 %cmp, %cmp1
989  ret i1 %retval
990}
991
992define 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]]
996;
997  %cmp = fcmp ule double %a, %b
998  %cmp1 = fcmp olt double %a, %b
999  %retval = or i1 %cmp, %cmp1
1000  ret i1 %retval
1001}
1002
1003define 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]]
1007;
1008  %cmp = fcmp ule double %a, %b
1009  %cmp1 = fcmp ole double %a, %b
1010  %retval = or i1 %cmp, %cmp1
1011  ret i1 %retval
1012}
1013
1014define i1 @auto_gen_84(double %a, double %b) {
1015; CHECK-LABEL: @auto_gen_84(
1016; CHECK-NEXT:    ret i1 true
1017;
1018  %cmp = fcmp ule double %a, %b
1019  %cmp1 = fcmp one double %a, %b
1020  %retval = or i1 %cmp, %cmp1
1021  ret i1 %retval
1022}
1023
1024define i1 @auto_gen_85(double %a, double %b) {
1025; CHECK-LABEL: @auto_gen_85(
1026; CHECK-NEXT:    ret i1 true
1027;
1028  %cmp = fcmp ule double %a, %b
1029  %cmp1 = fcmp ord double %a, %b
1030  %retval = or i1 %cmp, %cmp1
1031  ret i1 %retval
1032}
1033
1034define 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]]
1038;
1039  %cmp = fcmp ule double %a, %b
1040  %cmp1 = fcmp ueq double %a, %b
1041  %retval = or i1 %cmp, %cmp1
1042  ret i1 %retval
1043}
1044
1045define i1 @auto_gen_87(double %a, double %b) {
1046; CHECK-LABEL: @auto_gen_87(
1047; CHECK-NEXT:    ret i1 true
1048;
1049  %cmp = fcmp ule double %a, %b
1050  %cmp1 = fcmp ugt double %a, %b
1051  %retval = or i1 %cmp, %cmp1
1052  ret i1 %retval
1053}
1054
1055define i1 @auto_gen_88(double %a, double %b) {
1056; CHECK-LABEL: @auto_gen_88(
1057; CHECK-NEXT:    ret i1 true
1058;
1059  %cmp = fcmp ule double %a, %b
1060  %cmp1 = fcmp uge double %a, %b
1061  %retval = or i1 %cmp, %cmp1
1062  ret i1 %retval
1063}
1064
1065define 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]]
1069;
1070  %cmp = fcmp ule double %a, %b
1071  %cmp1 = fcmp ult double %a, %b
1072  %retval = or i1 %cmp, %cmp1
1073  ret i1 %retval
1074}
1075
1076define 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]]
1080;
1081  %cmp = fcmp ule double %a, %b
1082  %cmp1 = fcmp ule double %a, %b
1083  %retval = or i1 %cmp, %cmp1
1084  ret i1 %retval
1085}
1086
1087define 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]]
1091;
1092  %cmp = fcmp une double %a, %b
1093  %cmp1 = fcmp false double %a, %b
1094  %retval = or i1 %cmp, %cmp1
1095  ret i1 %retval
1096}
1097
1098define i1 @auto_gen_92(double %a, double %b) {
1099; CHECK-LABEL: @auto_gen_92(
1100; CHECK-NEXT:    ret i1 true
1101;
1102  %cmp = fcmp une double %a, %b
1103  %cmp1 = fcmp oeq double %a, %b
1104  %retval = or i1 %cmp, %cmp1
1105  ret i1 %retval
1106}
1107
1108define 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]]
1112;
1113  %cmp = fcmp une double %a, %b
1114  %cmp1 = fcmp ogt double %a, %b
1115  %retval = or i1 %cmp, %cmp1
1116  ret i1 %retval
1117}
1118
1119define i1 @auto_gen_94(double %a, double %b) {
1120; CHECK-LABEL: @auto_gen_94(
1121; CHECK-NEXT:    ret i1 true
1122;
1123  %cmp = fcmp une double %a, %b
1124  %cmp1 = fcmp oge double %a, %b
1125  %retval = or i1 %cmp, %cmp1
1126  ret i1 %retval
1127}
1128
1129define 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]]
1133;
1134  %cmp = fcmp une double %a, %b
1135  %cmp1 = fcmp olt double %a, %b
1136  %retval = or i1 %cmp, %cmp1
1137  ret i1 %retval
1138}
1139
1140define i1 @auto_gen_96(double %a, double %b) {
1141; CHECK-LABEL: @auto_gen_96(
1142; CHECK-NEXT:    ret i1 true
1143;
1144  %cmp = fcmp une double %a, %b
1145  %cmp1 = fcmp ole double %a, %b
1146  %retval = or i1 %cmp, %cmp1
1147  ret i1 %retval
1148}
1149
1150define 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]]
1154;
1155  %cmp = fcmp une double %a, %b
1156  %cmp1 = fcmp one double %a, %b
1157  %retval = or i1 %cmp, %cmp1
1158  ret i1 %retval
1159}
1160
1161define i1 @auto_gen_98(double %a, double %b) {
1162; CHECK-LABEL: @auto_gen_98(
1163; CHECK-NEXT:    ret i1 true
1164;
1165  %cmp = fcmp une double %a, %b
1166  %cmp1 = fcmp ord double %a, %b
1167  %retval = or i1 %cmp, %cmp1
1168  ret i1 %retval
1169}
1170
1171define i1 @auto_gen_99(double %a, double %b) {
1172; CHECK-LABEL: @auto_gen_99(
1173; CHECK-NEXT:    ret i1 true
1174;
1175  %cmp = fcmp une double %a, %b
1176  %cmp1 = fcmp ueq double %a, %b
1177  %retval = or i1 %cmp, %cmp1
1178  ret i1 %retval
1179}
1180
1181define 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]]
1185;
1186  %cmp = fcmp une double %a, %b
1187  %cmp1 = fcmp ugt double %a, %b
1188  %retval = or i1 %cmp, %cmp1
1189  ret i1 %retval
1190}
1191
1192define i1 @auto_gen_101(double %a, double %b) {
1193; CHECK-LABEL: @auto_gen_101(
1194; CHECK-NEXT:    ret i1 true
1195;
1196  %cmp = fcmp une double %a, %b
1197  %cmp1 = fcmp uge double %a, %b
1198  %retval = or i1 %cmp, %cmp1
1199  ret i1 %retval
1200}
1201
1202define 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]]
1206;
1207  %cmp = fcmp une double %a, %b
1208  %cmp1 = fcmp ult double %a, %b
1209  %retval = or i1 %cmp, %cmp1
1210  ret i1 %retval
1211}
1212
1213define i1 @auto_gen_103(double %a, double %b) {
1214; CHECK-LABEL: @auto_gen_103(
1215; CHECK-NEXT:    ret i1 true
1216;
1217  %cmp = fcmp une double %a, %b
1218  %cmp1 = fcmp ule double %a, %b
1219  %retval = or i1 %cmp, %cmp1
1220  ret i1 %retval
1221}
1222
1223define 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]]
1227;
1228  %cmp = fcmp une double %a, %b
1229  %cmp1 = fcmp une double %a, %b
1230  %retval = or i1 %cmp, %cmp1
1231  ret i1 %retval
1232}
1233
1234define 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]]
1238;
1239  %cmp = fcmp uno double %a, %b
1240  %cmp1 = fcmp false double %a, %b
1241  %retval = or i1 %cmp, %cmp1
1242  ret i1 %retval
1243}
1244
1245define 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]]
1249;
1250  %cmp = fcmp uno double %a, %b
1251  %cmp1 = fcmp oeq double %a, %b
1252  %retval = or i1 %cmp, %cmp1
1253  ret i1 %retval
1254}
1255
1256define 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]]
1260;
1261  %cmp = fcmp uno double %a, %b
1262  %cmp1 = fcmp ogt double %a, %b
1263  %retval = or i1 %cmp, %cmp1
1264  ret i1 %retval
1265}
1266
1267define 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]]
1271;
1272  %cmp = fcmp uno double %a, %b
1273  %cmp1 = fcmp oge double %a, %b
1274  %retval = or i1 %cmp, %cmp1
1275  ret i1 %retval
1276}
1277
1278define 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]]
1282;
1283  %cmp = fcmp uno double %a, %b
1284  %cmp1 = fcmp olt double %a, %b
1285  %retval = or i1 %cmp, %cmp1
1286  ret i1 %retval
1287}
1288
1289define 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]]
1293;
1294  %cmp = fcmp uno double %a, %b
1295  %cmp1 = fcmp ole double %a, %b
1296  %retval = or i1 %cmp, %cmp1
1297  ret i1 %retval
1298}
1299
1300define 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]]
1304;
1305  %cmp = fcmp uno double %a, %b
1306  %cmp1 = fcmp one double %a, %b
1307  %retval = or i1 %cmp, %cmp1
1308  ret i1 %retval
1309}
1310
1311define i1 @auto_gen_112(double %a, double %b) {
1312; CHECK-LABEL: @auto_gen_112(
1313; CHECK-NEXT:    ret i1 true
1314;
1315  %cmp = fcmp uno double %a, %b
1316  %cmp1 = fcmp ord double %a, %b
1317  %retval = or i1 %cmp, %cmp1
1318  ret i1 %retval
1319}
1320
1321define 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]]
1325;
1326  %cmp = fcmp uno double %a, %b
1327  %cmp1 = fcmp ueq double %a, %b
1328  %retval = or i1 %cmp, %cmp1
1329  ret i1 %retval
1330}
1331
1332define 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]]
1336;
1337  %cmp = fcmp uno double %a, %b
1338  %cmp1 = fcmp ugt double %a, %b
1339  %retval = or i1 %cmp, %cmp1
1340  ret i1 %retval
1341}
1342
1343define 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]]
1347;
1348  %cmp = fcmp uno double %a, %b
1349  %cmp1 = fcmp uge double %a, %b
1350  %retval = or i1 %cmp, %cmp1
1351  ret i1 %retval
1352}
1353
1354define 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]]
1358;
1359  %cmp = fcmp uno double %a, %b
1360  %cmp1 = fcmp ult double %a, %b
1361  %retval = or i1 %cmp, %cmp1
1362  ret i1 %retval
1363}
1364
1365define 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]]
1369;
1370  %cmp = fcmp uno double %a, %b
1371  %cmp1 = fcmp ule double %a, %b
1372  %retval = or i1 %cmp, %cmp1
1373  ret i1 %retval
1374}
1375
1376define 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]]
1380;
1381  %cmp = fcmp uno double %a, %b
1382  %cmp1 = fcmp une double %a, %b
1383  %retval = or i1 %cmp, %cmp1
1384  ret i1 %retval
1385}
1386
1387define 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]]
1391;
1392  %cmp = fcmp uno double %a, %b
1393  %cmp1 = fcmp uno double %a, %b
1394  %retval = or i1 %cmp, %cmp1
1395  ret i1 %retval
1396}
1397
1398define i1 @auto_gen_120(double %a, double %b) {
1399; CHECK-LABEL: @auto_gen_120(
1400; CHECK-NEXT:    ret i1 true
1401;
1402  %cmp = fcmp true double %a, %b
1403  %cmp1 = fcmp false double %a, %b
1404  %retval = or i1 %cmp, %cmp1
1405  ret i1 %retval
1406}
1407
1408define i1 @auto_gen_121(double %a, double %b) {
1409; CHECK-LABEL: @auto_gen_121(
1410; CHECK-NEXT:    ret i1 true
1411;
1412  %cmp = fcmp true double %a, %b
1413  %cmp1 = fcmp oeq double %a, %b
1414  %retval = or i1 %cmp, %cmp1
1415  ret i1 %retval
1416}
1417
1418define i1 @auto_gen_122(double %a, double %b) {
1419; CHECK-LABEL: @auto_gen_122(
1420; CHECK-NEXT:    ret i1 true
1421;
1422  %cmp = fcmp true double %a, %b
1423  %cmp1 = fcmp ogt double %a, %b
1424  %retval = or i1 %cmp, %cmp1
1425  ret i1 %retval
1426}
1427
1428define i1 @auto_gen_123(double %a, double %b) {
1429; CHECK-LABEL: @auto_gen_123(
1430; CHECK-NEXT:    ret i1 true
1431;
1432  %cmp = fcmp true double %a, %b
1433  %cmp1 = fcmp oge double %a, %b
1434  %retval = or i1 %cmp, %cmp1
1435  ret i1 %retval
1436}
1437
1438define i1 @auto_gen_124(double %a, double %b) {
1439; CHECK-LABEL: @auto_gen_124(
1440; CHECK-NEXT:    ret i1 true
1441;
1442  %cmp = fcmp true double %a, %b
1443  %cmp1 = fcmp olt double %a, %b
1444  %retval = or i1 %cmp, %cmp1
1445  ret i1 %retval
1446}
1447
1448define i1 @auto_gen_125(double %a, double %b) {
1449; CHECK-LABEL: @auto_gen_125(
1450; CHECK-NEXT:    ret i1 true
1451;
1452  %cmp = fcmp true double %a, %b
1453  %cmp1 = fcmp ole double %a, %b
1454  %retval = or i1 %cmp, %cmp1
1455  ret i1 %retval
1456}
1457
1458define i1 @auto_gen_126(double %a, double %b) {
1459; CHECK-LABEL: @auto_gen_126(
1460; CHECK-NEXT:    ret i1 true
1461;
1462  %cmp = fcmp true double %a, %b
1463  %cmp1 = fcmp one double %a, %b
1464  %retval = or i1 %cmp, %cmp1
1465  ret i1 %retval
1466}
1467
1468define i1 @auto_gen_127(double %a, double %b) {
1469; CHECK-LABEL: @auto_gen_127(
1470; CHECK-NEXT:    ret i1 true
1471;
1472  %cmp = fcmp true double %a, %b
1473  %cmp1 = fcmp ord double %a, %b
1474  %retval = or i1 %cmp, %cmp1
1475  ret i1 %retval
1476}
1477
1478define i1 @auto_gen_128(double %a, double %b) {
1479; CHECK-LABEL: @auto_gen_128(
1480; CHECK-NEXT:    ret i1 true
1481;
1482  %cmp = fcmp true double %a, %b
1483  %cmp1 = fcmp ueq double %a, %b
1484  %retval = or i1 %cmp, %cmp1
1485  ret i1 %retval
1486}
1487
1488define i1 @auto_gen_129(double %a, double %b) {
1489; CHECK-LABEL: @auto_gen_129(
1490; CHECK-NEXT:    ret i1 true
1491;
1492  %cmp = fcmp true double %a, %b
1493  %cmp1 = fcmp ugt double %a, %b
1494  %retval = or i1 %cmp, %cmp1
1495  ret i1 %retval
1496}
1497
1498define i1 @auto_gen_130(double %a, double %b) {
1499; CHECK-LABEL: @auto_gen_130(
1500; CHECK-NEXT:    ret i1 true
1501;
1502  %cmp = fcmp true double %a, %b
1503  %cmp1 = fcmp uge double %a, %b
1504  %retval = or i1 %cmp, %cmp1
1505  ret i1 %retval
1506}
1507
1508define i1 @auto_gen_131(double %a, double %b) {
1509; CHECK-LABEL: @auto_gen_131(
1510; CHECK-NEXT:    ret i1 true
1511;
1512  %cmp = fcmp true double %a, %b
1513  %cmp1 = fcmp ult double %a, %b
1514  %retval = or i1 %cmp, %cmp1
1515  ret i1 %retval
1516}
1517
1518define i1 @auto_gen_132(double %a, double %b) {
1519; CHECK-LABEL: @auto_gen_132(
1520; CHECK-NEXT:    ret i1 true
1521;
1522  %cmp = fcmp true double %a, %b
1523  %cmp1 = fcmp ule double %a, %b
1524  %retval = or i1 %cmp, %cmp1
1525  ret i1 %retval
1526}
1527
1528define i1 @auto_gen_133(double %a, double %b) {
1529; CHECK-LABEL: @auto_gen_133(
1530; CHECK-NEXT:    ret i1 true
1531;
1532  %cmp = fcmp true double %a, %b
1533  %cmp1 = fcmp une double %a, %b
1534  %retval = or i1 %cmp, %cmp1
1535  ret i1 %retval
1536}
1537
1538define i1 @auto_gen_134(double %a, double %b) {
1539; CHECK-LABEL: @auto_gen_134(
1540; CHECK-NEXT:    ret i1 true
1541;
1542  %cmp = fcmp true double %a, %b
1543  %cmp1 = fcmp uno double %a, %b
1544  %retval = or i1 %cmp, %cmp1
1545  ret i1 %retval
1546}
1547
1548define i1 @auto_gen_135(double %a, double %b) {
1549; CHECK-LABEL: @auto_gen_135(
1550; CHECK-NEXT:    ret i1 true
1551;
1552  %cmp = fcmp true double %a, %b
1553  %cmp1 = fcmp true double %a, %b
1554  %retval = or i1 %cmp, %cmp1
1555  ret i1 %retval
1556}
1557