xref: /llvm-project/llvm/test/Transforms/InstCombine/or-fcmp.ll (revision e5faeb69fbb87722ee315884eeef2089b10b0cee)
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2; RUN: opt < %s -passes=instcombine -S | FileCheck %s
3
4define i1 @PR1738(double %x, double %y) {
5; CHECK-LABEL: @PR1738(
6; CHECK-NEXT:    [[OR:%.*]] = fcmp uno double [[X:%.*]], [[Y:%.*]]
7; CHECK-NEXT:    ret i1 [[OR]]
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
15; TODO: this can be fixed by freezing %y
16define i1 @PR1738_logical(double %x, double %y) {
17; CHECK-LABEL: @PR1738_logical(
18; CHECK-NEXT:    [[CMP1:%.*]] = fcmp uno double [[X:%.*]], 0.000000e+00
19; CHECK-NEXT:    [[CMP2:%.*]] = fcmp uno double [[Y:%.*]], 0.000000e+00
20; CHECK-NEXT:    [[OR:%.*]] = select i1 [[CMP1]], i1 true, i1 [[CMP2]]
21; CHECK-NEXT:    ret i1 [[OR]]
22;
23  %cmp1 = fcmp uno double %x, 0.0
24  %cmp2 = fcmp uno double %y, 0.0
25  %or = select i1 %cmp1, i1 true, i1 %cmp2
26  ret i1 %or
27}
28
29define <2 x i1> @PR1738_vec_undef(<2 x double> %x, <2 x double> %y) {
30; CHECK-LABEL: @PR1738_vec_undef(
31; CHECK-NEXT:    [[CMP1:%.*]] = fcmp uno <2 x double> [[X:%.*]], <double 0.000000e+00, double undef>
32; CHECK-NEXT:    [[CMP2:%.*]] = fcmp uno <2 x double> [[Y:%.*]], <double undef, double 0.000000e+00>
33; CHECK-NEXT:    [[OR:%.*]] = or <2 x i1> [[CMP1]], [[CMP2]]
34; CHECK-NEXT:    ret <2 x i1> [[OR]]
35;
36  %cmp1 = fcmp uno <2 x double> %x, <double 0.0, double undef>
37  %cmp2 = fcmp uno <2 x double> %y, <double undef, double 0.0>
38  %or = or <2 x i1> %cmp1, %cmp2
39  ret <2 x i1> %or
40}
41
42define <2 x i1> @PR1738_vec_poison(<2 x double> %x, <2 x double> %y) {
43; CHECK-LABEL: @PR1738_vec_poison(
44; CHECK-NEXT:    [[OR:%.*]] = fcmp uno <2 x double> [[X:%.*]], [[Y:%.*]]
45; CHECK-NEXT:    ret <2 x i1> [[OR]]
46;
47  %cmp1 = fcmp uno <2 x double> %x, <double 0.0, double poison>
48  %cmp2 = fcmp uno <2 x double> %y, <double poison, double 0.0>
49  %or = or <2 x i1> %cmp1, %cmp2
50  ret <2 x i1> %or
51}
52
53define i1 @PR41069(double %a, double %b, double %c, double %d) {
54; CHECK-LABEL: @PR41069(
55; CHECK-NEXT:    [[UNO1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
56; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uno double [[D:%.*]], [[C:%.*]]
57; CHECK-NEXT:    [[R:%.*]] = or i1 [[UNO1]], [[TMP1]]
58; CHECK-NEXT:    ret i1 [[R]]
59;
60  %uno1 = fcmp uno double %a, %b
61  %uno2 = fcmp uno double %c, 0.0
62  %or = or i1 %uno1, %uno2
63  %uno3 = fcmp uno double %d, 0.0
64  %r = or i1 %or, %uno3
65  ret i1 %r
66}
67
68; TODO: this can be fixed by freezing %c and %d
69define i1 @PR41069_logical(double %a, double %b, double %c, double %d) {
70; CHECK-LABEL: @PR41069_logical(
71; CHECK-NEXT:    [[UNO1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
72; CHECK-NEXT:    [[UNO2:%.*]] = fcmp uno double [[C:%.*]], 0.000000e+00
73; CHECK-NEXT:    [[OR:%.*]] = select i1 [[UNO1]], i1 true, i1 [[UNO2]]
74; CHECK-NEXT:    [[UNO3:%.*]] = fcmp uno double [[D:%.*]], 0.000000e+00
75; CHECK-NEXT:    [[R:%.*]] = select i1 [[OR]], i1 true, i1 [[UNO3]]
76; CHECK-NEXT:    ret i1 [[R]]
77;
78  %uno1 = fcmp uno double %a, %b
79  %uno2 = fcmp uno double %c, 0.0
80  %or = select i1 %uno1, i1 true, i1 %uno2
81  %uno3 = fcmp uno double %d, 0.0
82  %r = select i1 %or, i1 true, i1 %uno3
83  ret i1 %r
84}
85
86define i1 @PR41069_commute(double %a, double %b, double %c, double %d) {
87; CHECK-LABEL: @PR41069_commute(
88; CHECK-NEXT:    [[UNO1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
89; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uno double [[D:%.*]], [[C:%.*]]
90; CHECK-NEXT:    [[R:%.*]] = or i1 [[UNO1]], [[TMP1]]
91; CHECK-NEXT:    ret i1 [[R]]
92;
93  %uno1 = fcmp uno double %a, %b
94  %uno2 = fcmp uno double %c, 0.0
95  %or = or i1 %uno1, %uno2
96  %uno3 = fcmp uno double %d, 0.0
97  %r = or i1 %uno3, %or
98  ret i1 %r
99}
100
101; TODO: this can be fixed by freezing %c and %d
102define i1 @PR41069_commute_logical(double %a, double %b, double %c, double %d) {
103; CHECK-LABEL: @PR41069_commute_logical(
104; CHECK-NEXT:    [[UNO1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
105; CHECK-NEXT:    [[UNO2:%.*]] = fcmp uno double [[C:%.*]], 0.000000e+00
106; CHECK-NEXT:    [[UNO3:%.*]] = fcmp uno double [[D:%.*]], 0.000000e+00
107; CHECK-NEXT:    [[TMP1:%.*]] = select i1 [[UNO3]], i1 true, i1 [[UNO1]]
108; CHECK-NEXT:    [[R:%.*]] = select i1 [[TMP1]], i1 true, i1 [[UNO2]]
109; CHECK-NEXT:    ret i1 [[R]]
110;
111  %uno1 = fcmp uno double %a, %b
112  %uno2 = fcmp uno double %c, 0.0
113  %or = select i1 %uno1, i1 true, i1 %uno2
114  %uno3 = fcmp uno double %d, 0.0
115  %r = select i1 %uno3, i1 true, i1 %or
116  ret i1 %r
117}
118
119define <2 x i1> @PR41069_vec(<2 x i1> %z, <2 x float> %c, <2 x float> %d) {
120; CHECK-LABEL: @PR41069_vec(
121; CHECK-NEXT:    [[UNO1:%.*]] = fcmp uno <2 x float> [[C:%.*]], zeroinitializer
122; CHECK-NEXT:    [[OR:%.*]] = or <2 x i1> [[UNO1]], [[Z:%.*]]
123; CHECK-NEXT:    [[UNO2:%.*]] = fcmp uno <2 x float> [[D:%.*]], <float 0.000000e+00, float undef>
124; CHECK-NEXT:    [[R:%.*]] = or <2 x i1> [[OR]], [[UNO2]]
125; CHECK-NEXT:    ret <2 x i1> [[R]]
126;
127  %uno1 = fcmp uno <2 x float> %c, zeroinitializer
128  %or = or <2 x i1> %uno1, %z
129  %uno2 = fcmp uno <2 x float> %d, <float 0.0, float undef>
130  %r = or <2 x i1> %or, %uno2
131  ret <2 x i1> %r
132}
133
134define <2 x i1> @PR41069_vec_poison(<2 x i1> %z, <2 x float> %c, <2 x float> %d) {
135; CHECK-LABEL: @PR41069_vec_poison(
136; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uno <2 x float> [[D:%.*]], [[C:%.*]]
137; CHECK-NEXT:    [[R:%.*]] = or <2 x i1> [[TMP1]], [[Z:%.*]]
138; CHECK-NEXT:    ret <2 x i1> [[R]]
139;
140  %uno1 = fcmp uno <2 x float> %c, zeroinitializer
141  %or = or <2 x i1> %uno1, %z
142  %uno2 = fcmp uno <2 x float> %d, <float 0.0, float poison>
143  %r = or <2 x i1> %or, %uno2
144  ret <2 x i1> %r
145}
146
147define <2 x i1> @PR41069_vec_commute(<2 x i1> %z, <2 x float> %c, <2 x float> %d) {
148; CHECK-LABEL: @PR41069_vec_commute(
149; CHECK-NEXT:    [[UNO1:%.*]] = fcmp uno <2 x float> [[C:%.*]], zeroinitializer
150; CHECK-NEXT:    [[OR:%.*]] = or <2 x i1> [[UNO1]], [[Z:%.*]]
151; CHECK-NEXT:    [[UNO2:%.*]] = fcmp uno <2 x float> [[D:%.*]], <float 0.000000e+00, float undef>
152; CHECK-NEXT:    [[R:%.*]] = or <2 x i1> [[UNO2]], [[OR]]
153; CHECK-NEXT:    ret <2 x i1> [[R]]
154;
155  %uno1 = fcmp uno <2 x float> %c, zeroinitializer
156  %or = or <2 x i1> %uno1, %z
157  %uno2 = fcmp uno <2 x float> %d, <float 0.0, float undef>
158  %r = or <2 x i1> %uno2, %or
159  ret <2 x i1> %r
160}
161
162define <2 x i1> @PR41069_vec_commute_poison(<2 x i1> %z, <2 x float> %c, <2 x float> %d) {
163; CHECK-LABEL: @PR41069_vec_commute_poison(
164; CHECK-NEXT:    [[TMP1:%.*]] = fcmp uno <2 x float> [[D:%.*]], [[C:%.*]]
165; CHECK-NEXT:    [[R:%.*]] = or <2 x i1> [[TMP1]], [[Z:%.*]]
166; CHECK-NEXT:    ret <2 x i1> [[R]]
167;
168  %uno1 = fcmp uno <2 x float> %c, zeroinitializer
169  %or = or <2 x i1> %uno1, %z
170  %uno2 = fcmp uno <2 x float> %d, <float 0.0, float poison>
171  %r = or <2 x i1> %uno2, %or
172  ret <2 x i1> %r
173}
174
175define i1 @fcmp_uno_nonzero(float %x, float %y) {
176; CHECK-LABEL: @fcmp_uno_nonzero(
177; CHECK-NEXT:    [[OR:%.*]] = fcmp uno float [[X:%.*]], [[Y:%.*]]
178; CHECK-NEXT:    ret i1 [[OR]]
179;
180  %cmp1 = fcmp uno float %x, 1.0
181  %cmp2 = fcmp uno float %y, 2.0
182  %or = or i1 %cmp1, %cmp2
183  ret i1 %or
184}
185
186; TODO: this can be fixed by freezing %y
187define i1 @fcmp_uno_nonzero_logical(float %x, float %y) {
188; CHECK-LABEL: @fcmp_uno_nonzero_logical(
189; CHECK-NEXT:    [[CMP1:%.*]] = fcmp uno float [[X:%.*]], 0.000000e+00
190; CHECK-NEXT:    [[CMP2:%.*]] = fcmp uno float [[Y:%.*]], 0.000000e+00
191; CHECK-NEXT:    [[OR:%.*]] = select i1 [[CMP1]], i1 true, i1 [[CMP2]]
192; CHECK-NEXT:    ret i1 [[OR]]
193;
194  %cmp1 = fcmp uno float %x, 1.0
195  %cmp2 = fcmp uno float %y, 2.0
196  %or = select i1 %cmp1, i1 true, i1 %cmp2
197  ret i1 %or
198}
199
200define <3 x i1> @fcmp_uno_nonzero_vec(<3 x float> %x, <3 x float> %y) {
201; CHECK-LABEL: @fcmp_uno_nonzero_vec(
202; CHECK-NEXT:    [[OR:%.*]] = fcmp uno <3 x float> [[X:%.*]], [[Y:%.*]]
203; CHECK-NEXT:    ret <3 x i1> [[OR]]
204;
205  %cmp1 = fcmp uno <3 x float> %x, <float 1.0, float 2.0, float 3.0>
206  %cmp2 = fcmp uno <3 x float> %y, <float 3.0, float 2.0, float 1.0>
207  %or = or <3 x i1> %cmp1, %cmp2
208  ret <3 x i1> %or
209}
210
211define i1 @auto_gen_0(double %a, double %b) {
212; CHECK-LABEL: @auto_gen_0(
213; CHECK-NEXT:    ret i1 false
214;
215  %cmp = fcmp false double %a, %b
216  %cmp1 = fcmp false double %a, %b
217  %retval = or i1 %cmp, %cmp1
218  ret i1 %retval
219}
220
221define i1 @auto_gen_0_logical(double %a, double %b) {
222; CHECK-LABEL: @auto_gen_0_logical(
223; CHECK-NEXT:    ret i1 false
224;
225  %cmp = fcmp false double %a, %b
226  %cmp1 = fcmp false double %a, %b
227  %retval = select i1 %cmp, i1 true, i1 %cmp1
228  ret i1 %retval
229}
230
231define i1 @auto_gen_0_logical_fmf(double %a, double %b) {
232; CHECK-LABEL: @auto_gen_0_logical_fmf(
233; CHECK-NEXT:    ret i1 false
234;
235  %cmp = fcmp false double %a, %b
236  %cmp1 = fcmp fast false double %a, %b
237  %retval = select i1 %cmp, i1 true, i1 %cmp1
238  ret i1 %retval
239}
240
241define i1 @auto_gen_1(double %a, double %b) {
242; CHECK-LABEL: @auto_gen_1(
243; CHECK-NEXT:    [[CMP:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
244; CHECK-NEXT:    ret i1 [[CMP]]
245;
246  %cmp = fcmp oeq double %a, %b
247  %cmp1 = fcmp false double %a, %b
248  %retval = or i1 %cmp, %cmp1
249  ret i1 %retval
250}
251
252define i1 @auto_gen_1_logical(double %a, double %b) {
253; CHECK-LABEL: @auto_gen_1_logical(
254; CHECK-NEXT:    [[CMP:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
255; CHECK-NEXT:    ret i1 [[CMP]]
256;
257  %cmp = fcmp oeq double %a, %b
258  %cmp1 = fcmp false double %a, %b
259  %retval = select i1 %cmp, i1 true, i1 %cmp1
260  ret i1 %retval
261}
262
263define i1 @auto_gen_1_logical_fmf(double %a, double %b) {
264; CHECK-LABEL: @auto_gen_1_logical_fmf(
265; CHECK-NEXT:    [[CMP:%.*]] = fcmp fast oeq double [[A:%.*]], [[B:%.*]]
266; CHECK-NEXT:    ret i1 [[CMP]]
267;
268  %cmp = fcmp fast oeq double %a, %b
269  %cmp1 = fcmp fast false double %a, %b
270  %retval = select i1 %cmp, i1 true, i1 %cmp1
271  ret i1 %retval
272}
273
274define i1 @auto_gen_2(double %a, double %b) {
275; CHECK-LABEL: @auto_gen_2(
276; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
277; CHECK-NEXT:    ret i1 [[RETVAL]]
278;
279  %cmp = fcmp oeq double %a, %b
280  %cmp1 = fcmp oeq double %a, %b
281  %retval = or i1 %cmp, %cmp1
282  ret i1 %retval
283}
284
285define i1 @auto_gen_2_logical(double %a, double %b) {
286; CHECK-LABEL: @auto_gen_2_logical(
287; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
288; CHECK-NEXT:    ret i1 [[RETVAL]]
289;
290  %cmp = fcmp oeq double %a, %b
291  %cmp1 = fcmp oeq double %a, %b
292  %retval = select i1 %cmp, i1 true, i1 %cmp1
293  ret i1 %retval
294}
295
296define i1 @auto_gen_2_logical_fmf(double %a, double %b) {
297; CHECK-LABEL: @auto_gen_2_logical_fmf(
298; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp oeq double [[A:%.*]], [[B:%.*]]
299; CHECK-NEXT:    ret i1 [[RETVAL]]
300;
301  %cmp = fcmp oeq double %a, %b
302  %cmp1 = fcmp fast oeq double %a, %b
303  %retval = select i1 %cmp, i1 true, i1 %cmp1
304  ret i1 %retval
305}
306
307define i1 @auto_gen_3(double %a, double %b) {
308; CHECK-LABEL: @auto_gen_3(
309; CHECK-NEXT:    [[CMP:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
310; CHECK-NEXT:    ret i1 [[CMP]]
311;
312  %cmp = fcmp ogt double %a, %b
313  %cmp1 = fcmp false double %a, %b
314  %retval = or i1 %cmp, %cmp1
315  ret i1 %retval
316}
317
318define i1 @auto_gen_3_logical(double %a, double %b) {
319; CHECK-LABEL: @auto_gen_3_logical(
320; CHECK-NEXT:    [[CMP:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
321; CHECK-NEXT:    ret i1 [[CMP]]
322;
323  %cmp = fcmp ogt double %a, %b
324  %cmp1 = fcmp false double %a, %b
325  %retval = select i1 %cmp, i1 true, i1 %cmp1
326  ret i1 %retval
327}
328
329define i1 @auto_gen_3_logical_fmf(double %a, double %b) {
330; CHECK-LABEL: @auto_gen_3_logical_fmf(
331; CHECK-NEXT:    [[CMP:%.*]] = fcmp fast ogt double [[A:%.*]], [[B:%.*]]
332; CHECK-NEXT:    ret i1 [[CMP]]
333;
334  %cmp = fcmp fast ogt double %a, %b
335  %cmp1 = fcmp fast false double %a, %b
336  %retval = select i1 %cmp, i1 true, i1 %cmp1
337  ret i1 %retval
338}
339
340define i1 @auto_gen_4(double %a, double %b) {
341; CHECK-LABEL: @auto_gen_4(
342; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
343; CHECK-NEXT:    ret i1 [[RETVAL]]
344;
345  %cmp = fcmp ogt double %a, %b
346  %cmp1 = fcmp oeq double %a, %b
347  %retval = or i1 %cmp, %cmp1
348  ret i1 %retval
349}
350
351define i1 @auto_gen_4_logical(double %a, double %b) {
352; CHECK-LABEL: @auto_gen_4_logical(
353; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
354; CHECK-NEXT:    ret i1 [[RETVAL]]
355;
356  %cmp = fcmp ogt double %a, %b
357  %cmp1 = fcmp oeq double %a, %b
358  %retval = select i1 %cmp, i1 true, i1 %cmp1
359  ret i1 %retval
360}
361
362define i1 @auto_gen_4_logical_fmf(double %a, double %b) {
363; CHECK-LABEL: @auto_gen_4_logical_fmf(
364; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
365; CHECK-NEXT:    ret i1 [[RETVAL]]
366;
367  %cmp = fcmp ogt double %a, %b
368  %cmp1 = fcmp fast oeq double %a, %b
369  %retval = select i1 %cmp, i1 true, i1 %cmp1
370  ret i1 %retval
371}
372
373define i1 @auto_gen_5(double %a, double %b) {
374; CHECK-LABEL: @auto_gen_5(
375; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
376; CHECK-NEXT:    ret i1 [[RETVAL]]
377;
378  %cmp = fcmp ogt double %a, %b
379  %cmp1 = fcmp ogt double %a, %b
380  %retval = or i1 %cmp, %cmp1
381  ret i1 %retval
382}
383
384define i1 @auto_gen_5_logical(double %a, double %b) {
385; CHECK-LABEL: @auto_gen_5_logical(
386; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ogt double [[A:%.*]], [[B:%.*]]
387; CHECK-NEXT:    ret i1 [[RETVAL]]
388;
389  %cmp = fcmp ogt double %a, %b
390  %cmp1 = fcmp ogt double %a, %b
391  %retval = select i1 %cmp, i1 true, i1 %cmp1
392  ret i1 %retval
393}
394
395define i1 @auto_gen_5_logical_fmf(double %a, double %b) {
396; CHECK-LABEL: @auto_gen_5_logical_fmf(
397; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp fast ogt double [[A:%.*]], [[B:%.*]]
398; CHECK-NEXT:    ret i1 [[RETVAL]]
399;
400  %cmp = fcmp fast ogt double %a, %b
401  %cmp1 = fcmp fast ogt double %a, %b
402  %retval = select i1 %cmp, i1 true, i1 %cmp1
403  ret i1 %retval
404}
405
406define i1 @auto_gen_6(double %a, double %b) {
407; CHECK-LABEL: @auto_gen_6(
408; CHECK-NEXT:    [[CMP:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
409; CHECK-NEXT:    ret i1 [[CMP]]
410;
411  %cmp = fcmp oge double %a, %b
412  %cmp1 = fcmp false double %a, %b
413  %retval = or i1 %cmp, %cmp1
414  ret i1 %retval
415}
416
417define i1 @auto_gen_6_logical(double %a, double %b) {
418; CHECK-LABEL: @auto_gen_6_logical(
419; CHECK-NEXT:    [[CMP:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
420; CHECK-NEXT:    ret i1 [[CMP]]
421;
422  %cmp = fcmp oge double %a, %b
423  %cmp1 = fcmp false double %a, %b
424  %retval = select i1 %cmp, i1 true, i1 %cmp1
425  ret i1 %retval
426}
427
428define i1 @auto_gen_6_logical_fmf(double %a, double %b) {
429; CHECK-LABEL: @auto_gen_6_logical_fmf(
430; CHECK-NEXT:    [[CMP:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
431; CHECK-NEXT:    ret i1 [[CMP]]
432;
433  %cmp = fcmp oge double %a, %b
434  %cmp1 = fcmp fast false double %a, %b
435  %retval = select i1 %cmp, i1 true, i1 %cmp1
436  ret i1 %retval
437}
438
439define i1 @auto_gen_7(double %a, double %b) {
440; CHECK-LABEL: @auto_gen_7(
441; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
442; CHECK-NEXT:    ret i1 [[RETVAL]]
443;
444  %cmp = fcmp oge double %a, %b
445  %cmp1 = fcmp oeq double %a, %b
446  %retval = or i1 %cmp, %cmp1
447  ret i1 %retval
448}
449
450define i1 @auto_gen_7_logical(double %a, double %b) {
451; CHECK-LABEL: @auto_gen_7_logical(
452; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
453; CHECK-NEXT:    ret i1 [[RETVAL]]
454;
455  %cmp = fcmp oge double %a, %b
456  %cmp1 = fcmp oeq double %a, %b
457  %retval = select i1 %cmp, i1 true, i1 %cmp1
458  ret i1 %retval
459}
460
461define i1 @auto_gen_7_logical_fmf(double %a, double %b) {
462; CHECK-LABEL: @auto_gen_7_logical_fmf(
463; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp fast oge double [[A:%.*]], [[B:%.*]]
464; CHECK-NEXT:    ret i1 [[RETVAL]]
465;
466  %cmp = fcmp fast oge double %a, %b
467  %cmp1 = fcmp fast oeq double %a, %b
468  %retval = select i1 %cmp, i1 true, i1 %cmp1
469  ret i1 %retval
470}
471
472define i1 @auto_gen_8(double %a, double %b) {
473; CHECK-LABEL: @auto_gen_8(
474; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
475; CHECK-NEXT:    ret i1 [[RETVAL]]
476;
477  %cmp = fcmp oge double %a, %b
478  %cmp1 = fcmp ogt double %a, %b
479  %retval = or i1 %cmp, %cmp1
480  ret i1 %retval
481}
482
483define i1 @auto_gen_8_logical(double %a, double %b) {
484; CHECK-LABEL: @auto_gen_8_logical(
485; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
486; CHECK-NEXT:    ret i1 [[RETVAL]]
487;
488  %cmp = fcmp oge double %a, %b
489  %cmp1 = fcmp ogt double %a, %b
490  %retval = select i1 %cmp, i1 true, i1 %cmp1
491  ret i1 %retval
492}
493
494define i1 @auto_gen_8_logical_fmf(double %a, double %b) {
495; CHECK-LABEL: @auto_gen_8_logical_fmf(
496; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
497; CHECK-NEXT:    ret i1 [[RETVAL]]
498;
499  %cmp = fcmp oge double %a, %b
500  %cmp1 = fcmp fast ogt double %a, %b
501  %retval = select i1 %cmp, i1 true, i1 %cmp1
502  ret i1 %retval
503}
504
505define i1 @auto_gen_9(double %a, double %b) {
506; CHECK-LABEL: @auto_gen_9(
507; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
508; CHECK-NEXT:    ret i1 [[RETVAL]]
509;
510  %cmp = fcmp oge double %a, %b
511  %cmp1 = fcmp oge double %a, %b
512  %retval = or i1 %cmp, %cmp1
513  ret i1 %retval
514}
515
516define i1 @auto_gen_9_logical(double %a, double %b) {
517; CHECK-LABEL: @auto_gen_9_logical(
518; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp oge double [[A:%.*]], [[B:%.*]]
519; CHECK-NEXT:    ret i1 [[RETVAL]]
520;
521  %cmp = fcmp oge double %a, %b
522  %cmp1 = fcmp oge double %a, %b
523  %retval = select i1 %cmp, i1 true, i1 %cmp1
524  ret i1 %retval
525}
526
527define i1 @auto_gen_9_logical_fmf(double %a, double %b) {
528; CHECK-LABEL: @auto_gen_9_logical_fmf(
529; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp fast oge double [[A:%.*]], [[B:%.*]]
530; CHECK-NEXT:    ret i1 [[RETVAL]]
531;
532  %cmp = fcmp fast oge double %a, %b
533  %cmp1 = fcmp fast oge double %a, %b
534  %retval = select i1 %cmp, i1 true, i1 %cmp1
535  ret i1 %retval
536}
537
538define i1 @auto_gen_10(double %a, double %b) {
539; CHECK-LABEL: @auto_gen_10(
540; CHECK-NEXT:    [[CMP:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
541; CHECK-NEXT:    ret i1 [[CMP]]
542;
543  %cmp = fcmp olt double %a, %b
544  %cmp1 = fcmp false double %a, %b
545  %retval = or i1 %cmp, %cmp1
546  ret i1 %retval
547}
548
549define i1 @auto_gen_10_logical(double %a, double %b) {
550; CHECK-LABEL: @auto_gen_10_logical(
551; CHECK-NEXT:    [[CMP:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
552; CHECK-NEXT:    ret i1 [[CMP]]
553;
554  %cmp = fcmp olt double %a, %b
555  %cmp1 = fcmp false double %a, %b
556  %retval = select i1 %cmp, i1 true, i1 %cmp1
557  ret i1 %retval
558}
559
560define i1 @auto_gen_10_logical_fmf(double %a, double %b) {
561; CHECK-LABEL: @auto_gen_10_logical_fmf(
562; CHECK-NEXT:    [[CMP:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
563; CHECK-NEXT:    ret i1 [[CMP]]
564;
565  %cmp = fcmp olt double %a, %b
566  %cmp1 = fcmp fast false double %a, %b
567  %retval = select i1 %cmp, i1 true, i1 %cmp1
568  ret i1 %retval
569}
570
571define i1 @auto_gen_11(double %a, double %b) {
572; CHECK-LABEL: @auto_gen_11(
573; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
574; CHECK-NEXT:    ret i1 [[RETVAL]]
575;
576  %cmp = fcmp olt double %a, %b
577  %cmp1 = fcmp oeq double %a, %b
578  %retval = or i1 %cmp, %cmp1
579  ret i1 %retval
580}
581
582define i1 @auto_gen_11_logical(double %a, double %b) {
583; CHECK-LABEL: @auto_gen_11_logical(
584; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
585; CHECK-NEXT:    ret i1 [[RETVAL]]
586;
587  %cmp = fcmp olt double %a, %b
588  %cmp1 = fcmp oeq double %a, %b
589  %retval = select i1 %cmp, i1 true, i1 %cmp1
590  ret i1 %retval
591}
592
593define i1 @auto_gen_11_logical_fmf(double %a, double %b) {
594; CHECK-LABEL: @auto_gen_11_logical_fmf(
595; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp fast ole double [[A:%.*]], [[B:%.*]]
596; CHECK-NEXT:    ret i1 [[RETVAL]]
597;
598  %cmp = fcmp fast olt double %a, %b
599  %cmp1 = fcmp fast oeq double %a, %b
600  %retval = select i1 %cmp, i1 true, i1 %cmp1
601  ret i1 %retval
602}
603
604define i1 @auto_gen_12(double %a, double %b) {
605; CHECK-LABEL: @auto_gen_12(
606; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
607; CHECK-NEXT:    ret i1 [[RETVAL]]
608;
609  %cmp = fcmp olt double %a, %b
610  %cmp1 = fcmp ogt double %a, %b
611  %retval = or i1 %cmp, %cmp1
612  ret i1 %retval
613}
614
615define i1 @auto_gen_12_logical(double %a, double %b) {
616; CHECK-LABEL: @auto_gen_12_logical(
617; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
618; CHECK-NEXT:    ret i1 [[RETVAL]]
619;
620  %cmp = fcmp olt double %a, %b
621  %cmp1 = fcmp ogt double %a, %b
622  %retval = select i1 %cmp, i1 true, i1 %cmp1
623  ret i1 %retval
624}
625
626define i1 @auto_gen_12_logical_fmf(double %a, double %b) {
627; CHECK-LABEL: @auto_gen_12_logical_fmf(
628; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
629; CHECK-NEXT:    ret i1 [[RETVAL]]
630;
631  %cmp = fcmp olt double %a, %b
632  %cmp1 = fcmp fast ogt double %a, %b
633  %retval = select i1 %cmp, i1 true, i1 %cmp1
634  ret i1 %retval
635}
636
637define i1 @auto_gen_13(double %a, double %b) {
638; CHECK-LABEL: @auto_gen_13(
639; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
640; CHECK-NEXT:    ret i1 [[RETVAL]]
641;
642  %cmp = fcmp olt double %a, %b
643  %cmp1 = fcmp oge double %a, %b
644  %retval = or i1 %cmp, %cmp1
645  ret i1 %retval
646}
647
648define i1 @auto_gen_13_logical(double %a, double %b) {
649; CHECK-LABEL: @auto_gen_13_logical(
650; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
651; CHECK-NEXT:    ret i1 [[RETVAL]]
652;
653  %cmp = fcmp olt double %a, %b
654  %cmp1 = fcmp oge double %a, %b
655  %retval = select i1 %cmp, i1 true, i1 %cmp1
656  ret i1 %retval
657}
658
659define i1 @auto_gen_13_logical_fmf(double %a, double %b) {
660; CHECK-LABEL: @auto_gen_13_logical_fmf(
661; CHECK-NEXT:    ret i1 true
662;
663  %cmp = fcmp fast olt double %a, %b
664  %cmp1 = fcmp fast oge double %a, %b
665  %retval = select i1 %cmp, i1 true, i1 %cmp1
666  ret i1 %retval
667}
668
669define i1 @auto_gen_14(double %a, double %b) {
670; CHECK-LABEL: @auto_gen_14(
671; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
672; CHECK-NEXT:    ret i1 [[RETVAL]]
673;
674  %cmp = fcmp olt double %a, %b
675  %cmp1 = fcmp olt double %a, %b
676  %retval = or i1 %cmp, %cmp1
677  ret i1 %retval
678}
679
680define i1 @auto_gen_14_logical(double %a, double %b) {
681; CHECK-LABEL: @auto_gen_14_logical(
682; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
683; CHECK-NEXT:    ret i1 [[RETVAL]]
684;
685  %cmp = fcmp olt double %a, %b
686  %cmp1 = fcmp olt double %a, %b
687  %retval = select i1 %cmp, i1 true, i1 %cmp1
688  ret i1 %retval
689}
690
691define i1 @auto_gen_14_logical_fmf(double %a, double %b) {
692; CHECK-LABEL: @auto_gen_14_logical_fmf(
693; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
694; CHECK-NEXT:    ret i1 [[RETVAL]]
695;
696  %cmp = fcmp olt double %a, %b
697  %cmp1 = fcmp fast olt double %a, %b
698  %retval = select i1 %cmp, i1 true, i1 %cmp1
699  ret i1 %retval
700}
701
702define i1 @auto_gen_15(double %a, double %b) {
703; CHECK-LABEL: @auto_gen_15(
704; CHECK-NEXT:    [[CMP:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
705; CHECK-NEXT:    ret i1 [[CMP]]
706;
707  %cmp = fcmp ole double %a, %b
708  %cmp1 = fcmp false double %a, %b
709  %retval = or i1 %cmp, %cmp1
710  ret i1 %retval
711}
712
713define i1 @auto_gen_15_logical(double %a, double %b) {
714; CHECK-LABEL: @auto_gen_15_logical(
715; CHECK-NEXT:    [[CMP:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
716; CHECK-NEXT:    ret i1 [[CMP]]
717;
718  %cmp = fcmp ole double %a, %b
719  %cmp1 = fcmp false double %a, %b
720  %retval = select i1 %cmp, i1 true, i1 %cmp1
721  ret i1 %retval
722}
723
724define i1 @auto_gen_15_logical_fmf(double %a, double %b) {
725; CHECK-LABEL: @auto_gen_15_logical_fmf(
726; CHECK-NEXT:    [[CMP:%.*]] = fcmp fast ole double [[A:%.*]], [[B:%.*]]
727; CHECK-NEXT:    ret i1 [[CMP]]
728;
729  %cmp = fcmp fast ole double %a, %b
730  %cmp1 = fcmp fast false double %a, %b
731  %retval = select i1 %cmp, i1 true, i1 %cmp1
732  ret i1 %retval
733}
734
735define i1 @auto_gen_16(double %a, double %b) {
736; CHECK-LABEL: @auto_gen_16(
737; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
738; CHECK-NEXT:    ret i1 [[RETVAL]]
739;
740  %cmp = fcmp ole double %a, %b
741  %cmp1 = fcmp oeq double %a, %b
742  %retval = or i1 %cmp, %cmp1
743  ret i1 %retval
744}
745
746define i1 @auto_gen_16_logical(double %a, double %b) {
747; CHECK-LABEL: @auto_gen_16_logical(
748; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
749; CHECK-NEXT:    ret i1 [[RETVAL]]
750;
751  %cmp = fcmp ole double %a, %b
752  %cmp1 = fcmp oeq double %a, %b
753  %retval = select i1 %cmp, i1 true, i1 %cmp1
754  ret i1 %retval
755}
756
757define i1 @auto_gen_16_logical_fmf(double %a, double %b) {
758; CHECK-LABEL: @auto_gen_16_logical_fmf(
759; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
760; CHECK-NEXT:    ret i1 [[RETVAL]]
761;
762  %cmp = fcmp ole double %a, %b
763  %cmp1 = fcmp fast oeq double %a, %b
764  %retval = select i1 %cmp, i1 true, i1 %cmp1
765  ret i1 %retval
766}
767
768define i1 @auto_gen_17(double %a, double %b) {
769; CHECK-LABEL: @auto_gen_17(
770; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
771; CHECK-NEXT:    ret i1 [[RETVAL]]
772;
773  %cmp = fcmp ole double %a, %b
774  %cmp1 = fcmp ogt double %a, %b
775  %retval = or i1 %cmp, %cmp1
776  ret i1 %retval
777}
778
779define i1 @auto_gen_17_logical(double %a, double %b) {
780; CHECK-LABEL: @auto_gen_17_logical(
781; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
782; CHECK-NEXT:    ret i1 [[RETVAL]]
783;
784  %cmp = fcmp ole double %a, %b
785  %cmp1 = fcmp ogt double %a, %b
786  %retval = select i1 %cmp, i1 true, i1 %cmp1
787  ret i1 %retval
788}
789
790define i1 @auto_gen_17_logical_fmf(double %a, double %b) {
791; CHECK-LABEL: @auto_gen_17_logical_fmf(
792; CHECK-NEXT:    ret i1 true
793;
794  %cmp = fcmp fast ole double %a, %b
795  %cmp1 = fcmp fast ogt double %a, %b
796  %retval = select i1 %cmp, i1 true, i1 %cmp1
797  ret i1 %retval
798}
799
800define i1 @auto_gen_18(double %a, double %b) {
801; CHECK-LABEL: @auto_gen_18(
802; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
803; CHECK-NEXT:    ret i1 [[RETVAL]]
804;
805  %cmp = fcmp ole double %a, %b
806  %cmp1 = fcmp oge double %a, %b
807  %retval = or i1 %cmp, %cmp1
808  ret i1 %retval
809}
810
811define i1 @auto_gen_18_logical(double %a, double %b) {
812; CHECK-LABEL: @auto_gen_18_logical(
813; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
814; CHECK-NEXT:    ret i1 [[RETVAL]]
815;
816  %cmp = fcmp ole double %a, %b
817  %cmp1 = fcmp oge double %a, %b
818  %retval = select i1 %cmp, i1 true, i1 %cmp1
819  ret i1 %retval
820}
821
822define i1 @auto_gen_18_logical_fmf(double %a, double %b) {
823; CHECK-LABEL: @auto_gen_18_logical_fmf(
824; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
825; CHECK-NEXT:    ret i1 [[RETVAL]]
826;
827  %cmp = fcmp ole double %a, %b
828  %cmp1 = fcmp fast oge double %a, %b
829  %retval = select i1 %cmp, i1 true, i1 %cmp1
830  ret i1 %retval
831}
832
833define i1 @auto_gen_19(double %a, double %b) {
834; CHECK-LABEL: @auto_gen_19(
835; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
836; CHECK-NEXT:    ret i1 [[RETVAL]]
837;
838  %cmp = fcmp ole double %a, %b
839  %cmp1 = fcmp olt double %a, %b
840  %retval = or i1 %cmp, %cmp1
841  ret i1 %retval
842}
843
844define i1 @auto_gen_19_logical(double %a, double %b) {
845; CHECK-LABEL: @auto_gen_19_logical(
846; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
847; CHECK-NEXT:    ret i1 [[RETVAL]]
848;
849  %cmp = fcmp ole double %a, %b
850  %cmp1 = fcmp olt double %a, %b
851  %retval = select i1 %cmp, i1 true, i1 %cmp1
852  ret i1 %retval
853}
854
855define i1 @auto_gen_19_logical_fmf(double %a, double %b) {
856; CHECK-LABEL: @auto_gen_19_logical_fmf(
857; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp fast ole double [[A:%.*]], [[B:%.*]]
858; CHECK-NEXT:    ret i1 [[RETVAL]]
859;
860  %cmp = fcmp fast ole double %a, %b
861  %cmp1 = fcmp fast olt double %a, %b
862  %retval = select i1 %cmp, i1 true, i1 %cmp1
863  ret i1 %retval
864}
865
866define i1 @auto_gen_20(double %a, double %b) {
867; CHECK-LABEL: @auto_gen_20(
868; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
869; CHECK-NEXT:    ret i1 [[RETVAL]]
870;
871  %cmp = fcmp ole double %a, %b
872  %cmp1 = fcmp ole double %a, %b
873  %retval = or i1 %cmp, %cmp1
874  ret i1 %retval
875}
876
877define i1 @auto_gen_20_logical(double %a, double %b) {
878; CHECK-LABEL: @auto_gen_20_logical(
879; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
880; CHECK-NEXT:    ret i1 [[RETVAL]]
881;
882  %cmp = fcmp ole double %a, %b
883  %cmp1 = fcmp ole double %a, %b
884  %retval = select i1 %cmp, i1 true, i1 %cmp1
885  ret i1 %retval
886}
887
888define i1 @auto_gen_20_logical_fmf(double %a, double %b) {
889; CHECK-LABEL: @auto_gen_20_logical_fmf(
890; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ole double [[A:%.*]], [[B:%.*]]
891; CHECK-NEXT:    ret i1 [[RETVAL]]
892;
893  %cmp = fcmp ole double %a, %b
894  %cmp1 = fcmp fast ole double %a, %b
895  %retval = select i1 %cmp, i1 true, i1 %cmp1
896  ret i1 %retval
897}
898
899define i1 @auto_gen_21(double %a, double %b) {
900; CHECK-LABEL: @auto_gen_21(
901; CHECK-NEXT:    [[CMP:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
902; CHECK-NEXT:    ret i1 [[CMP]]
903;
904  %cmp = fcmp one double %a, %b
905  %cmp1 = fcmp false double %a, %b
906  %retval = or i1 %cmp, %cmp1
907  ret i1 %retval
908}
909
910define i1 @auto_gen_21_logical(double %a, double %b) {
911; CHECK-LABEL: @auto_gen_21_logical(
912; CHECK-NEXT:    [[CMP:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
913; CHECK-NEXT:    ret i1 [[CMP]]
914;
915  %cmp = fcmp one double %a, %b
916  %cmp1 = fcmp false double %a, %b
917  %retval = select i1 %cmp, i1 true, i1 %cmp1
918  ret i1 %retval
919}
920
921define i1 @auto_gen_21_logical_fmf(double %a, double %b) {
922; CHECK-LABEL: @auto_gen_21_logical_fmf(
923; CHECK-NEXT:    [[CMP:%.*]] = fcmp fast one double [[A:%.*]], [[B:%.*]]
924; CHECK-NEXT:    ret i1 [[CMP]]
925;
926  %cmp = fcmp fast one double %a, %b
927  %cmp1 = fcmp fast false double %a, %b
928  %retval = select i1 %cmp, i1 true, i1 %cmp1
929  ret i1 %retval
930}
931
932define i1 @auto_gen_22(double %a, double %b) {
933; CHECK-LABEL: @auto_gen_22(
934; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
935; CHECK-NEXT:    ret i1 [[RETVAL]]
936;
937  %cmp = fcmp one double %a, %b
938  %cmp1 = fcmp oeq double %a, %b
939  %retval = or i1 %cmp, %cmp1
940  ret i1 %retval
941}
942
943define i1 @auto_gen_22_logical(double %a, double %b) {
944; CHECK-LABEL: @auto_gen_22_logical(
945; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
946; CHECK-NEXT:    ret i1 [[RETVAL]]
947;
948  %cmp = fcmp one double %a, %b
949  %cmp1 = fcmp oeq double %a, %b
950  %retval = select i1 %cmp, i1 true, i1 %cmp1
951  ret i1 %retval
952}
953
954define i1 @auto_gen_22_logical_fmf(double %a, double %b) {
955; CHECK-LABEL: @auto_gen_22_logical_fmf(
956; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
957; CHECK-NEXT:    ret i1 [[RETVAL]]
958;
959  %cmp = fcmp one double %a, %b
960  %cmp1 = fcmp fast oeq double %a, %b
961  %retval = select i1 %cmp, i1 true, i1 %cmp1
962  ret i1 %retval
963}
964
965define i1 @auto_gen_23(double %a, double %b) {
966; CHECK-LABEL: @auto_gen_23(
967; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
968; CHECK-NEXT:    ret i1 [[RETVAL]]
969;
970  %cmp = fcmp one double %a, %b
971  %cmp1 = fcmp ogt double %a, %b
972  %retval = or i1 %cmp, %cmp1
973  ret i1 %retval
974}
975
976define i1 @auto_gen_23_logical(double %a, double %b) {
977; CHECK-LABEL: @auto_gen_23_logical(
978; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
979; CHECK-NEXT:    ret i1 [[RETVAL]]
980;
981  %cmp = fcmp one double %a, %b
982  %cmp1 = fcmp ogt double %a, %b
983  %retval = select i1 %cmp, i1 true, i1 %cmp1
984  ret i1 %retval
985}
986
987define i1 @auto_gen_23_logical_fmf(double %a, double %b) {
988; CHECK-LABEL: @auto_gen_23_logical_fmf(
989; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp fast one double [[A:%.*]], [[B:%.*]]
990; CHECK-NEXT:    ret i1 [[RETVAL]]
991;
992  %cmp = fcmp fast one double %a, %b
993  %cmp1 = fcmp fast ogt double %a, %b
994  %retval = select i1 %cmp, i1 true, i1 %cmp1
995  ret i1 %retval
996}
997
998define i1 @auto_gen_24(double %a, double %b) {
999; CHECK-LABEL: @auto_gen_24(
1000; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
1001; CHECK-NEXT:    ret i1 [[RETVAL]]
1002;
1003  %cmp = fcmp one double %a, %b
1004  %cmp1 = fcmp oge double %a, %b
1005  %retval = or i1 %cmp, %cmp1
1006  ret i1 %retval
1007}
1008
1009define i1 @auto_gen_24_logical(double %a, double %b) {
1010; CHECK-LABEL: @auto_gen_24_logical(
1011; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
1012; CHECK-NEXT:    ret i1 [[RETVAL]]
1013;
1014  %cmp = fcmp one double %a, %b
1015  %cmp1 = fcmp oge double %a, %b
1016  %retval = select i1 %cmp, i1 true, i1 %cmp1
1017  ret i1 %retval
1018}
1019
1020define i1 @auto_gen_24_logical_fmf(double %a, double %b) {
1021; CHECK-LABEL: @auto_gen_24_logical_fmf(
1022; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
1023; CHECK-NEXT:    ret i1 [[RETVAL]]
1024;
1025  %cmp = fcmp one double %a, %b
1026  %cmp1 = fcmp fast oge double %a, %b
1027  %retval = select i1 %cmp, i1 true, i1 %cmp1
1028  ret i1 %retval
1029}
1030
1031define i1 @auto_gen_25(double %a, double %b) {
1032; CHECK-LABEL: @auto_gen_25(
1033; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
1034; CHECK-NEXT:    ret i1 [[RETVAL]]
1035;
1036  %cmp = fcmp one double %a, %b
1037  %cmp1 = fcmp olt double %a, %b
1038  %retval = or i1 %cmp, %cmp1
1039  ret i1 %retval
1040}
1041
1042define i1 @auto_gen_25_logical(double %a, double %b) {
1043; CHECK-LABEL: @auto_gen_25_logical(
1044; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
1045; CHECK-NEXT:    ret i1 [[RETVAL]]
1046;
1047  %cmp = fcmp one double %a, %b
1048  %cmp1 = fcmp olt double %a, %b
1049  %retval = select i1 %cmp, i1 true, i1 %cmp1
1050  ret i1 %retval
1051}
1052
1053define i1 @auto_gen_25_logical_fmf(double %a, double %b) {
1054; CHECK-LABEL: @auto_gen_25_logical_fmf(
1055; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp fast one double [[A:%.*]], [[B:%.*]]
1056; CHECK-NEXT:    ret i1 [[RETVAL]]
1057;
1058  %cmp = fcmp fast one double %a, %b
1059  %cmp1 = fcmp fast olt double %a, %b
1060  %retval = select i1 %cmp, i1 true, i1 %cmp1
1061  ret i1 %retval
1062}
1063
1064define i1 @auto_gen_26(double %a, double %b) {
1065; CHECK-LABEL: @auto_gen_26(
1066; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
1067; CHECK-NEXT:    ret i1 [[RETVAL]]
1068;
1069  %cmp = fcmp one double %a, %b
1070  %cmp1 = fcmp ole double %a, %b
1071  %retval = or i1 %cmp, %cmp1
1072  ret i1 %retval
1073}
1074
1075define i1 @auto_gen_26_logical(double %a, double %b) {
1076; CHECK-LABEL: @auto_gen_26_logical(
1077; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
1078; CHECK-NEXT:    ret i1 [[RETVAL]]
1079;
1080  %cmp = fcmp one double %a, %b
1081  %cmp1 = fcmp ole double %a, %b
1082  %retval = select i1 %cmp, i1 true, i1 %cmp1
1083  ret i1 %retval
1084}
1085
1086define i1 @auto_gen_26_logical_fmf(double %a, double %b) {
1087; CHECK-LABEL: @auto_gen_26_logical_fmf(
1088; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
1089; CHECK-NEXT:    ret i1 [[RETVAL]]
1090;
1091  %cmp = fcmp one double %a, %b
1092  %cmp1 = fcmp fast ole double %a, %b
1093  %retval = select i1 %cmp, i1 true, i1 %cmp1
1094  ret i1 %retval
1095}
1096
1097define i1 @auto_gen_27(double %a, double %b) {
1098; CHECK-LABEL: @auto_gen_27(
1099; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
1100; CHECK-NEXT:    ret i1 [[RETVAL]]
1101;
1102  %cmp = fcmp one double %a, %b
1103  %cmp1 = fcmp one double %a, %b
1104  %retval = or i1 %cmp, %cmp1
1105  ret i1 %retval
1106}
1107
1108define i1 @auto_gen_27_logical(double %a, double %b) {
1109; CHECK-LABEL: @auto_gen_27_logical(
1110; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
1111; CHECK-NEXT:    ret i1 [[RETVAL]]
1112;
1113  %cmp = fcmp one double %a, %b
1114  %cmp1 = fcmp one double %a, %b
1115  %retval = select i1 %cmp, i1 true, i1 %cmp1
1116  ret i1 %retval
1117}
1118
1119define i1 @auto_gen_27_logical_fmf(double %a, double %b) {
1120; CHECK-LABEL: @auto_gen_27_logical_fmf(
1121; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp fast one double [[A:%.*]], [[B:%.*]]
1122; CHECK-NEXT:    ret i1 [[RETVAL]]
1123;
1124  %cmp = fcmp fast one double %a, %b
1125  %cmp1 = fcmp fast one double %a, %b
1126  %retval = select i1 %cmp, i1 true, i1 %cmp1
1127  ret i1 %retval
1128}
1129
1130define i1 @auto_gen_28(double %a, double %b) {
1131; CHECK-LABEL: @auto_gen_28(
1132; CHECK-NEXT:    [[CMP:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
1133; CHECK-NEXT:    ret i1 [[CMP]]
1134;
1135  %cmp = fcmp ord double %a, %b
1136  %cmp1 = fcmp false double %a, %b
1137  %retval = or i1 %cmp, %cmp1
1138  ret i1 %retval
1139}
1140
1141define i1 @auto_gen_28_logical(double %a, double %b) {
1142; CHECK-LABEL: @auto_gen_28_logical(
1143; CHECK-NEXT:    [[CMP:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
1144; CHECK-NEXT:    ret i1 [[CMP]]
1145;
1146  %cmp = fcmp ord double %a, %b
1147  %cmp1 = fcmp false double %a, %b
1148  %retval = select i1 %cmp, i1 true, i1 %cmp1
1149  ret i1 %retval
1150}
1151
1152define i1 @auto_gen_28_logical_fmf(double %a, double %b) {
1153; CHECK-LABEL: @auto_gen_28_logical_fmf(
1154; CHECK-NEXT:    [[CMP:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
1155; CHECK-NEXT:    ret i1 [[CMP]]
1156;
1157  %cmp = fcmp ord double %a, %b
1158  %cmp1 = fcmp fast false double %a, %b
1159  %retval = select i1 %cmp, i1 true, i1 %cmp1
1160  ret i1 %retval
1161}
1162
1163define i1 @auto_gen_29(double %a, double %b) {
1164; CHECK-LABEL: @auto_gen_29(
1165; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
1166; CHECK-NEXT:    ret i1 [[RETVAL]]
1167;
1168  %cmp = fcmp ord double %a, %b
1169  %cmp1 = fcmp oeq double %a, %b
1170  %retval = or i1 %cmp, %cmp1
1171  ret i1 %retval
1172}
1173
1174define i1 @auto_gen_29_logical(double %a, double %b) {
1175; CHECK-LABEL: @auto_gen_29_logical(
1176; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
1177; CHECK-NEXT:    ret i1 [[RETVAL]]
1178;
1179  %cmp = fcmp ord double %a, %b
1180  %cmp1 = fcmp oeq double %a, %b
1181  %retval = select i1 %cmp, i1 true, i1 %cmp1
1182  ret i1 %retval
1183}
1184
1185define i1 @auto_gen_29_logical_fmf(double %a, double %b) {
1186; CHECK-LABEL: @auto_gen_29_logical_fmf(
1187; CHECK-NEXT:    ret i1 true
1188;
1189  %cmp = fcmp fast ord double %a, %b
1190  %cmp1 = fcmp fast oeq double %a, %b
1191  %retval = select i1 %cmp, i1 true, i1 %cmp1
1192  ret i1 %retval
1193}
1194
1195define i1 @auto_gen_30(double %a, double %b) {
1196; CHECK-LABEL: @auto_gen_30(
1197; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
1198; CHECK-NEXT:    ret i1 [[RETVAL]]
1199;
1200  %cmp = fcmp ord double %a, %b
1201  %cmp1 = fcmp ogt double %a, %b
1202  %retval = or i1 %cmp, %cmp1
1203  ret i1 %retval
1204}
1205
1206define i1 @auto_gen_30_logical(double %a, double %b) {
1207; CHECK-LABEL: @auto_gen_30_logical(
1208; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
1209; CHECK-NEXT:    ret i1 [[RETVAL]]
1210;
1211  %cmp = fcmp ord double %a, %b
1212  %cmp1 = fcmp ogt double %a, %b
1213  %retval = select i1 %cmp, i1 true, i1 %cmp1
1214  ret i1 %retval
1215}
1216
1217define i1 @auto_gen_30_logical_fmf(double %a, double %b) {
1218; CHECK-LABEL: @auto_gen_30_logical_fmf(
1219; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
1220; CHECK-NEXT:    ret i1 [[RETVAL]]
1221;
1222  %cmp = fcmp ord double %a, %b
1223  %cmp1 = fcmp fast ogt double %a, %b
1224  %retval = select i1 %cmp, i1 true, i1 %cmp1
1225  ret i1 %retval
1226}
1227
1228define i1 @auto_gen_31(double %a, double %b) {
1229; CHECK-LABEL: @auto_gen_31(
1230; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
1231; CHECK-NEXT:    ret i1 [[RETVAL]]
1232;
1233  %cmp = fcmp ord double %a, %b
1234  %cmp1 = fcmp oge double %a, %b
1235  %retval = or i1 %cmp, %cmp1
1236  ret i1 %retval
1237}
1238
1239define i1 @auto_gen_31_logical(double %a, double %b) {
1240; CHECK-LABEL: @auto_gen_31_logical(
1241; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
1242; CHECK-NEXT:    ret i1 [[RETVAL]]
1243;
1244  %cmp = fcmp ord double %a, %b
1245  %cmp1 = fcmp oge double %a, %b
1246  %retval = select i1 %cmp, i1 true, i1 %cmp1
1247  ret i1 %retval
1248}
1249
1250define i1 @auto_gen_31_logical_fmf(double %a, double %b) {
1251; CHECK-LABEL: @auto_gen_31_logical_fmf(
1252; CHECK-NEXT:    ret i1 true
1253;
1254  %cmp = fcmp fast ord double %a, %b
1255  %cmp1 = fcmp fast oge double %a, %b
1256  %retval = select i1 %cmp, i1 true, i1 %cmp1
1257  ret i1 %retval
1258}
1259
1260define i1 @auto_gen_32(double %a, double %b) {
1261; CHECK-LABEL: @auto_gen_32(
1262; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
1263; CHECK-NEXT:    ret i1 [[RETVAL]]
1264;
1265  %cmp = fcmp ord double %a, %b
1266  %cmp1 = fcmp olt double %a, %b
1267  %retval = or i1 %cmp, %cmp1
1268  ret i1 %retval
1269}
1270
1271define i1 @auto_gen_32_logical(double %a, double %b) {
1272; CHECK-LABEL: @auto_gen_32_logical(
1273; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
1274; CHECK-NEXT:    ret i1 [[RETVAL]]
1275;
1276  %cmp = fcmp ord double %a, %b
1277  %cmp1 = fcmp olt double %a, %b
1278  %retval = select i1 %cmp, i1 true, i1 %cmp1
1279  ret i1 %retval
1280}
1281
1282define i1 @auto_gen_32_logical_fmf(double %a, double %b) {
1283; CHECK-LABEL: @auto_gen_32_logical_fmf(
1284; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
1285; CHECK-NEXT:    ret i1 [[RETVAL]]
1286;
1287  %cmp = fcmp ord double %a, %b
1288  %cmp1 = fcmp fast olt double %a, %b
1289  %retval = select i1 %cmp, i1 true, i1 %cmp1
1290  ret i1 %retval
1291}
1292
1293define i1 @auto_gen_33(double %a, double %b) {
1294; CHECK-LABEL: @auto_gen_33(
1295; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
1296; CHECK-NEXT:    ret i1 [[RETVAL]]
1297;
1298  %cmp = fcmp ord double %a, %b
1299  %cmp1 = fcmp ole double %a, %b
1300  %retval = or i1 %cmp, %cmp1
1301  ret i1 %retval
1302}
1303
1304define i1 @auto_gen_33_logical(double %a, double %b) {
1305; CHECK-LABEL: @auto_gen_33_logical(
1306; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
1307; CHECK-NEXT:    ret i1 [[RETVAL]]
1308;
1309  %cmp = fcmp ord double %a, %b
1310  %cmp1 = fcmp ole double %a, %b
1311  %retval = select i1 %cmp, i1 true, i1 %cmp1
1312  ret i1 %retval
1313}
1314
1315define i1 @auto_gen_33_logical_fmf(double %a, double %b) {
1316; CHECK-LABEL: @auto_gen_33_logical_fmf(
1317; CHECK-NEXT:    ret i1 true
1318;
1319  %cmp = fcmp fast ord double %a, %b
1320  %cmp1 = fcmp fast ole double %a, %b
1321  %retval = select i1 %cmp, i1 true, i1 %cmp1
1322  ret i1 %retval
1323}
1324
1325define i1 @auto_gen_34(double %a, double %b) {
1326; CHECK-LABEL: @auto_gen_34(
1327; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
1328; CHECK-NEXT:    ret i1 [[RETVAL]]
1329;
1330  %cmp = fcmp ord double %a, %b
1331  %cmp1 = fcmp one double %a, %b
1332  %retval = or i1 %cmp, %cmp1
1333  ret i1 %retval
1334}
1335
1336define i1 @auto_gen_34_logical(double %a, double %b) {
1337; CHECK-LABEL: @auto_gen_34_logical(
1338; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
1339; CHECK-NEXT:    ret i1 [[RETVAL]]
1340;
1341  %cmp = fcmp ord double %a, %b
1342  %cmp1 = fcmp one double %a, %b
1343  %retval = select i1 %cmp, i1 true, i1 %cmp1
1344  ret i1 %retval
1345}
1346
1347define i1 @auto_gen_34_logical_fmf(double %a, double %b) {
1348; CHECK-LABEL: @auto_gen_34_logical_fmf(
1349; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
1350; CHECK-NEXT:    ret i1 [[RETVAL]]
1351;
1352  %cmp = fcmp ord double %a, %b
1353  %cmp1 = fcmp fast one double %a, %b
1354  %retval = select i1 %cmp, i1 true, i1 %cmp1
1355  ret i1 %retval
1356}
1357
1358define i1 @auto_gen_35(double %a, double %b) {
1359; CHECK-LABEL: @auto_gen_35(
1360; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
1361; CHECK-NEXT:    ret i1 [[RETVAL]]
1362;
1363  %cmp = fcmp ord double %a, %b
1364  %cmp1 = fcmp ord double %a, %b
1365  %retval = or i1 %cmp, %cmp1
1366  ret i1 %retval
1367}
1368
1369define i1 @auto_gen_35_logical(double %a, double %b) {
1370; CHECK-LABEL: @auto_gen_35_logical(
1371; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ord double [[A:%.*]], [[B:%.*]]
1372; CHECK-NEXT:    ret i1 [[RETVAL]]
1373;
1374  %cmp = fcmp ord double %a, %b
1375  %cmp1 = fcmp ord double %a, %b
1376  %retval = select i1 %cmp, i1 true, i1 %cmp1
1377  ret i1 %retval
1378}
1379
1380define i1 @auto_gen_35_logical_fmf(double %a, double %b) {
1381; CHECK-LABEL: @auto_gen_35_logical_fmf(
1382; CHECK-NEXT:    ret i1 true
1383;
1384  %cmp = fcmp fast ord double %a, %b
1385  %cmp1 = fcmp fast ord double %a, %b
1386  %retval = select i1 %cmp, i1 true, i1 %cmp1
1387  ret i1 %retval
1388}
1389
1390define i1 @auto_gen_36(double %a, double %b) {
1391; CHECK-LABEL: @auto_gen_36(
1392; CHECK-NEXT:    [[CMP:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
1393; CHECK-NEXT:    ret i1 [[CMP]]
1394;
1395  %cmp = fcmp ueq double %a, %b
1396  %cmp1 = fcmp false double %a, %b
1397  %retval = or i1 %cmp, %cmp1
1398  ret i1 %retval
1399}
1400
1401define i1 @auto_gen_36_logical(double %a, double %b) {
1402; CHECK-LABEL: @auto_gen_36_logical(
1403; CHECK-NEXT:    [[CMP:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
1404; CHECK-NEXT:    ret i1 [[CMP]]
1405;
1406  %cmp = fcmp ueq double %a, %b
1407  %cmp1 = fcmp false double %a, %b
1408  %retval = select i1 %cmp, i1 true, i1 %cmp1
1409  ret i1 %retval
1410}
1411
1412define i1 @auto_gen_36_logical_fmf(double %a, double %b) {
1413; CHECK-LABEL: @auto_gen_36_logical_fmf(
1414; CHECK-NEXT:    [[CMP:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
1415; CHECK-NEXT:    ret i1 [[CMP]]
1416;
1417  %cmp = fcmp ueq double %a, %b
1418  %cmp1 = fcmp fast false double %a, %b
1419  %retval = select i1 %cmp, i1 true, i1 %cmp1
1420  ret i1 %retval
1421}
1422
1423define i1 @auto_gen_37(double %a, double %b) {
1424; CHECK-LABEL: @auto_gen_37(
1425; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
1426; CHECK-NEXT:    ret i1 [[RETVAL]]
1427;
1428  %cmp = fcmp ueq double %a, %b
1429  %cmp1 = fcmp oeq double %a, %b
1430  %retval = or i1 %cmp, %cmp1
1431  ret i1 %retval
1432}
1433
1434define i1 @auto_gen_37_logical(double %a, double %b) {
1435; CHECK-LABEL: @auto_gen_37_logical(
1436; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
1437; CHECK-NEXT:    ret i1 [[RETVAL]]
1438;
1439  %cmp = fcmp ueq double %a, %b
1440  %cmp1 = fcmp oeq double %a, %b
1441  %retval = select i1 %cmp, i1 true, i1 %cmp1
1442  ret i1 %retval
1443}
1444
1445define i1 @auto_gen_37_logical_fmf(double %a, double %b) {
1446; CHECK-LABEL: @auto_gen_37_logical_fmf(
1447; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp fast ueq double [[A:%.*]], [[B:%.*]]
1448; CHECK-NEXT:    ret i1 [[RETVAL]]
1449;
1450  %cmp = fcmp fast ueq double %a, %b
1451  %cmp1 = fcmp fast oeq double %a, %b
1452  %retval = select i1 %cmp, i1 true, i1 %cmp1
1453  ret i1 %retval
1454}
1455
1456define i1 @auto_gen_38(double %a, double %b) {
1457; CHECK-LABEL: @auto_gen_38(
1458; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
1459; CHECK-NEXT:    ret i1 [[RETVAL]]
1460;
1461  %cmp = fcmp ueq double %a, %b
1462  %cmp1 = fcmp ogt double %a, %b
1463  %retval = or i1 %cmp, %cmp1
1464  ret i1 %retval
1465}
1466
1467define i1 @auto_gen_38_logical(double %a, double %b) {
1468; CHECK-LABEL: @auto_gen_38_logical(
1469; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
1470; CHECK-NEXT:    ret i1 [[RETVAL]]
1471;
1472  %cmp = fcmp ueq double %a, %b
1473  %cmp1 = fcmp ogt double %a, %b
1474  %retval = select i1 %cmp, i1 true, i1 %cmp1
1475  ret i1 %retval
1476}
1477
1478define i1 @auto_gen_38_logical_fmf(double %a, double %b) {
1479; CHECK-LABEL: @auto_gen_38_logical_fmf(
1480; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
1481; CHECK-NEXT:    ret i1 [[RETVAL]]
1482;
1483  %cmp = fcmp ueq double %a, %b
1484  %cmp1 = fcmp fast ogt double %a, %b
1485  %retval = select i1 %cmp, i1 true, i1 %cmp1
1486  ret i1 %retval
1487}
1488
1489define i1 @auto_gen_39(double %a, double %b) {
1490; CHECK-LABEL: @auto_gen_39(
1491; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
1492; CHECK-NEXT:    ret i1 [[RETVAL]]
1493;
1494  %cmp = fcmp ueq double %a, %b
1495  %cmp1 = fcmp oge double %a, %b
1496  %retval = or i1 %cmp, %cmp1
1497  ret i1 %retval
1498}
1499
1500define i1 @auto_gen_39_logical(double %a, double %b) {
1501; CHECK-LABEL: @auto_gen_39_logical(
1502; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
1503; CHECK-NEXT:    ret i1 [[RETVAL]]
1504;
1505  %cmp = fcmp ueq double %a, %b
1506  %cmp1 = fcmp oge double %a, %b
1507  %retval = select i1 %cmp, i1 true, i1 %cmp1
1508  ret i1 %retval
1509}
1510
1511define i1 @auto_gen_39_logical_fmf(double %a, double %b) {
1512; CHECK-LABEL: @auto_gen_39_logical_fmf(
1513; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp fast uge double [[A:%.*]], [[B:%.*]]
1514; CHECK-NEXT:    ret i1 [[RETVAL]]
1515;
1516  %cmp = fcmp fast ueq double %a, %b
1517  %cmp1 = fcmp fast oge double %a, %b
1518  %retval = select i1 %cmp, i1 true, i1 %cmp1
1519  ret i1 %retval
1520}
1521
1522define i1 @auto_gen_40(double %a, double %b) {
1523; CHECK-LABEL: @auto_gen_40(
1524; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
1525; CHECK-NEXT:    ret i1 [[RETVAL]]
1526;
1527  %cmp = fcmp ueq double %a, %b
1528  %cmp1 = fcmp olt double %a, %b
1529  %retval = or i1 %cmp, %cmp1
1530  ret i1 %retval
1531}
1532
1533define i1 @auto_gen_40_logical(double %a, double %b) {
1534; CHECK-LABEL: @auto_gen_40_logical(
1535; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
1536; CHECK-NEXT:    ret i1 [[RETVAL]]
1537;
1538  %cmp = fcmp ueq double %a, %b
1539  %cmp1 = fcmp olt double %a, %b
1540  %retval = select i1 %cmp, i1 true, i1 %cmp1
1541  ret i1 %retval
1542}
1543
1544define i1 @auto_gen_40_logical_fmf(double %a, double %b) {
1545; CHECK-LABEL: @auto_gen_40_logical_fmf(
1546; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
1547; CHECK-NEXT:    ret i1 [[RETVAL]]
1548;
1549  %cmp = fcmp ueq double %a, %b
1550  %cmp1 = fcmp fast olt double %a, %b
1551  %retval = select i1 %cmp, i1 true, i1 %cmp1
1552  ret i1 %retval
1553}
1554
1555define i1 @auto_gen_41(double %a, double %b) {
1556; CHECK-LABEL: @auto_gen_41(
1557; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
1558; CHECK-NEXT:    ret i1 [[RETVAL]]
1559;
1560  %cmp = fcmp ueq double %a, %b
1561  %cmp1 = fcmp ole double %a, %b
1562  %retval = or i1 %cmp, %cmp1
1563  ret i1 %retval
1564}
1565
1566define i1 @auto_gen_41_logical(double %a, double %b) {
1567; CHECK-LABEL: @auto_gen_41_logical(
1568; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
1569; CHECK-NEXT:    ret i1 [[RETVAL]]
1570;
1571  %cmp = fcmp ueq double %a, %b
1572  %cmp1 = fcmp ole double %a, %b
1573  %retval = select i1 %cmp, i1 true, i1 %cmp1
1574  ret i1 %retval
1575}
1576
1577define i1 @auto_gen_41_logical_fmf(double %a, double %b) {
1578; CHECK-LABEL: @auto_gen_41_logical_fmf(
1579; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp fast ule double [[A:%.*]], [[B:%.*]]
1580; CHECK-NEXT:    ret i1 [[RETVAL]]
1581;
1582  %cmp = fcmp fast ueq double %a, %b
1583  %cmp1 = fcmp fast ole double %a, %b
1584  %retval = select i1 %cmp, i1 true, i1 %cmp1
1585  ret i1 %retval
1586}
1587
1588define i1 @auto_gen_42(double %a, double %b) {
1589; CHECK-LABEL: @auto_gen_42(
1590; CHECK-NEXT:    ret i1 true
1591;
1592  %cmp = fcmp ueq double %a, %b
1593  %cmp1 = fcmp one double %a, %b
1594  %retval = or i1 %cmp, %cmp1
1595  ret i1 %retval
1596}
1597
1598define i1 @auto_gen_42_logical(double %a, double %b) {
1599; CHECK-LABEL: @auto_gen_42_logical(
1600; CHECK-NEXT:    ret i1 true
1601;
1602  %cmp = fcmp ueq double %a, %b
1603  %cmp1 = fcmp one double %a, %b
1604  %retval = select i1 %cmp, i1 true, i1 %cmp1
1605  ret i1 %retval
1606}
1607
1608define i1 @auto_gen_42_logical_fmf(double %a, double %b) {
1609; CHECK-LABEL: @auto_gen_42_logical_fmf(
1610; CHECK-NEXT:    ret i1 true
1611;
1612  %cmp = fcmp ueq double %a, %b
1613  %cmp1 = fcmp fast one double %a, %b
1614  %retval = select i1 %cmp, i1 true, i1 %cmp1
1615  ret i1 %retval
1616}
1617
1618define i1 @auto_gen_43(double %a, double %b) {
1619; CHECK-LABEL: @auto_gen_43(
1620; CHECK-NEXT:    ret i1 true
1621;
1622  %cmp = fcmp ueq double %a, %b
1623  %cmp1 = fcmp ord double %a, %b
1624  %retval = or i1 %cmp, %cmp1
1625  ret i1 %retval
1626}
1627
1628define i1 @auto_gen_43_logical(double %a, double %b) {
1629; CHECK-LABEL: @auto_gen_43_logical(
1630; CHECK-NEXT:    ret i1 true
1631;
1632  %cmp = fcmp ueq double %a, %b
1633  %cmp1 = fcmp ord double %a, %b
1634  %retval = select i1 %cmp, i1 true, i1 %cmp1
1635  ret i1 %retval
1636}
1637
1638define i1 @auto_gen_43_logical_fmf(double %a, double %b) {
1639; CHECK-LABEL: @auto_gen_43_logical_fmf(
1640; CHECK-NEXT:    ret i1 true
1641;
1642  %cmp = fcmp fast ueq double %a, %b
1643  %cmp1 = fcmp fast ord double %a, %b
1644  %retval = select i1 %cmp, i1 true, i1 %cmp1
1645  ret i1 %retval
1646}
1647
1648define i1 @auto_gen_44(double %a, double %b) {
1649; CHECK-LABEL: @auto_gen_44(
1650; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
1651; CHECK-NEXT:    ret i1 [[RETVAL]]
1652;
1653  %cmp = fcmp ueq double %a, %b
1654  %cmp1 = fcmp ueq double %a, %b
1655  %retval = or i1 %cmp, %cmp1
1656  ret i1 %retval
1657}
1658
1659define i1 @auto_gen_44_logical(double %a, double %b) {
1660; CHECK-LABEL: @auto_gen_44_logical(
1661; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
1662; CHECK-NEXT:    ret i1 [[RETVAL]]
1663;
1664  %cmp = fcmp ueq double %a, %b
1665  %cmp1 = fcmp ueq double %a, %b
1666  %retval = select i1 %cmp, i1 true, i1 %cmp1
1667  ret i1 %retval
1668}
1669
1670define i1 @auto_gen_44_logical_fmf(double %a, double %b) {
1671; CHECK-LABEL: @auto_gen_44_logical_fmf(
1672; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
1673; CHECK-NEXT:    ret i1 [[RETVAL]]
1674;
1675  %cmp = fcmp ueq double %a, %b
1676  %cmp1 = fcmp fast ueq double %a, %b
1677  %retval = select i1 %cmp, i1 true, i1 %cmp1
1678  ret i1 %retval
1679}
1680
1681define i1 @auto_gen_45(double %a, double %b) {
1682; CHECK-LABEL: @auto_gen_45(
1683; CHECK-NEXT:    [[CMP:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
1684; CHECK-NEXT:    ret i1 [[CMP]]
1685;
1686  %cmp = fcmp ugt double %a, %b
1687  %cmp1 = fcmp false double %a, %b
1688  %retval = or i1 %cmp, %cmp1
1689  ret i1 %retval
1690}
1691
1692define i1 @auto_gen_45_logical(double %a, double %b) {
1693; CHECK-LABEL: @auto_gen_45_logical(
1694; CHECK-NEXT:    [[CMP:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
1695; CHECK-NEXT:    ret i1 [[CMP]]
1696;
1697  %cmp = fcmp ugt double %a, %b
1698  %cmp1 = fcmp false double %a, %b
1699  %retval = select i1 %cmp, i1 true, i1 %cmp1
1700  ret i1 %retval
1701}
1702
1703define i1 @auto_gen_45_logical_fmf(double %a, double %b) {
1704; CHECK-LABEL: @auto_gen_45_logical_fmf(
1705; CHECK-NEXT:    [[CMP:%.*]] = fcmp fast ugt double [[A:%.*]], [[B:%.*]]
1706; CHECK-NEXT:    ret i1 [[CMP]]
1707;
1708  %cmp = fcmp fast ugt double %a, %b
1709  %cmp1 = fcmp fast false double %a, %b
1710  %retval = select i1 %cmp, i1 true, i1 %cmp1
1711  ret i1 %retval
1712}
1713
1714define i1 @auto_gen_46(double %a, double %b) {
1715; CHECK-LABEL: @auto_gen_46(
1716; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
1717; CHECK-NEXT:    ret i1 [[RETVAL]]
1718;
1719  %cmp = fcmp ugt double %a, %b
1720  %cmp1 = fcmp oeq double %a, %b
1721  %retval = or i1 %cmp, %cmp1
1722  ret i1 %retval
1723}
1724
1725define i1 @auto_gen_46_logical(double %a, double %b) {
1726; CHECK-LABEL: @auto_gen_46_logical(
1727; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
1728; CHECK-NEXT:    ret i1 [[RETVAL]]
1729;
1730  %cmp = fcmp ugt double %a, %b
1731  %cmp1 = fcmp oeq double %a, %b
1732  %retval = select i1 %cmp, i1 true, i1 %cmp1
1733  ret i1 %retval
1734}
1735
1736define i1 @auto_gen_46_logical_fmf(double %a, double %b) {
1737; CHECK-LABEL: @auto_gen_46_logical_fmf(
1738; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
1739; CHECK-NEXT:    ret i1 [[RETVAL]]
1740;
1741  %cmp = fcmp ugt double %a, %b
1742  %cmp1 = fcmp fast oeq double %a, %b
1743  %retval = select i1 %cmp, i1 true, i1 %cmp1
1744  ret i1 %retval
1745}
1746
1747define i1 @auto_gen_47(double %a, double %b) {
1748; CHECK-LABEL: @auto_gen_47(
1749; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
1750; CHECK-NEXT:    ret i1 [[RETVAL]]
1751;
1752  %cmp = fcmp ugt double %a, %b
1753  %cmp1 = fcmp ogt double %a, %b
1754  %retval = or i1 %cmp, %cmp1
1755  ret i1 %retval
1756}
1757
1758define i1 @auto_gen_47_logical(double %a, double %b) {
1759; CHECK-LABEL: @auto_gen_47_logical(
1760; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
1761; CHECK-NEXT:    ret i1 [[RETVAL]]
1762;
1763  %cmp = fcmp ugt double %a, %b
1764  %cmp1 = fcmp ogt double %a, %b
1765  %retval = select i1 %cmp, i1 true, i1 %cmp1
1766  ret i1 %retval
1767}
1768
1769define i1 @auto_gen_47_logical_fmf(double %a, double %b) {
1770; CHECK-LABEL: @auto_gen_47_logical_fmf(
1771; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp fast ugt double [[A:%.*]], [[B:%.*]]
1772; CHECK-NEXT:    ret i1 [[RETVAL]]
1773;
1774  %cmp = fcmp fast ugt double %a, %b
1775  %cmp1 = fcmp fast ogt double %a, %b
1776  %retval = select i1 %cmp, i1 true, i1 %cmp1
1777  ret i1 %retval
1778}
1779
1780define i1 @auto_gen_48(double %a, double %b) {
1781; CHECK-LABEL: @auto_gen_48(
1782; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
1783; CHECK-NEXT:    ret i1 [[RETVAL]]
1784;
1785  %cmp = fcmp ugt double %a, %b
1786  %cmp1 = fcmp oge double %a, %b
1787  %retval = or i1 %cmp, %cmp1
1788  ret i1 %retval
1789}
1790
1791define i1 @auto_gen_48_logical(double %a, double %b) {
1792; CHECK-LABEL: @auto_gen_48_logical(
1793; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
1794; CHECK-NEXT:    ret i1 [[RETVAL]]
1795;
1796  %cmp = fcmp ugt double %a, %b
1797  %cmp1 = fcmp oge double %a, %b
1798  %retval = select i1 %cmp, i1 true, i1 %cmp1
1799  ret i1 %retval
1800}
1801
1802define i1 @auto_gen_48_logical_fmf(double %a, double %b) {
1803; CHECK-LABEL: @auto_gen_48_logical_fmf(
1804; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
1805; CHECK-NEXT:    ret i1 [[RETVAL]]
1806;
1807  %cmp = fcmp ugt double %a, %b
1808  %cmp1 = fcmp fast oge double %a, %b
1809  %retval = select i1 %cmp, i1 true, i1 %cmp1
1810  ret i1 %retval
1811}
1812
1813define i1 @auto_gen_49(double %a, double %b) {
1814; CHECK-LABEL: @auto_gen_49(
1815; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
1816; CHECK-NEXT:    ret i1 [[RETVAL]]
1817;
1818  %cmp = fcmp ugt double %a, %b
1819  %cmp1 = fcmp olt double %a, %b
1820  %retval = or i1 %cmp, %cmp1
1821  ret i1 %retval
1822}
1823
1824define i1 @auto_gen_49_logical(double %a, double %b) {
1825; CHECK-LABEL: @auto_gen_49_logical(
1826; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
1827; CHECK-NEXT:    ret i1 [[RETVAL]]
1828;
1829  %cmp = fcmp ugt double %a, %b
1830  %cmp1 = fcmp olt double %a, %b
1831  %retval = select i1 %cmp, i1 true, i1 %cmp1
1832  ret i1 %retval
1833}
1834
1835define i1 @auto_gen_49_logical_fmf(double %a, double %b) {
1836; CHECK-LABEL: @auto_gen_49_logical_fmf(
1837; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp fast une double [[A:%.*]], [[B:%.*]]
1838; CHECK-NEXT:    ret i1 [[RETVAL]]
1839;
1840  %cmp = fcmp fast ugt double %a, %b
1841  %cmp1 = fcmp fast olt double %a, %b
1842  %retval = select i1 %cmp, i1 true, i1 %cmp1
1843  ret i1 %retval
1844}
1845
1846define i1 @auto_gen_50(double %a, double %b) {
1847; CHECK-LABEL: @auto_gen_50(
1848; CHECK-NEXT:    ret i1 true
1849;
1850  %cmp = fcmp ugt double %a, %b
1851  %cmp1 = fcmp ole double %a, %b
1852  %retval = or i1 %cmp, %cmp1
1853  ret i1 %retval
1854}
1855
1856define i1 @auto_gen_50_logical(double %a, double %b) {
1857; CHECK-LABEL: @auto_gen_50_logical(
1858; CHECK-NEXT:    ret i1 true
1859;
1860  %cmp = fcmp ugt double %a, %b
1861  %cmp1 = fcmp ole double %a, %b
1862  %retval = select i1 %cmp, i1 true, i1 %cmp1
1863  ret i1 %retval
1864}
1865
1866define i1 @auto_gen_50_logical_fmf(double %a, double %b) {
1867; CHECK-LABEL: @auto_gen_50_logical_fmf(
1868; CHECK-NEXT:    ret i1 true
1869;
1870  %cmp = fcmp ugt double %a, %b
1871  %cmp1 = fcmp fast ole double %a, %b
1872  %retval = select i1 %cmp, i1 true, i1 %cmp1
1873  ret i1 %retval
1874}
1875
1876define i1 @auto_gen_51(double %a, double %b) {
1877; CHECK-LABEL: @auto_gen_51(
1878; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
1879; CHECK-NEXT:    ret i1 [[RETVAL]]
1880;
1881  %cmp = fcmp ugt double %a, %b
1882  %cmp1 = fcmp one double %a, %b
1883  %retval = or i1 %cmp, %cmp1
1884  ret i1 %retval
1885}
1886
1887define i1 @auto_gen_51_logical(double %a, double %b) {
1888; CHECK-LABEL: @auto_gen_51_logical(
1889; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
1890; CHECK-NEXT:    ret i1 [[RETVAL]]
1891;
1892  %cmp = fcmp ugt double %a, %b
1893  %cmp1 = fcmp one double %a, %b
1894  %retval = select i1 %cmp, i1 true, i1 %cmp1
1895  ret i1 %retval
1896}
1897
1898define i1 @auto_gen_51_logical_fmf(double %a, double %b) {
1899; CHECK-LABEL: @auto_gen_51_logical_fmf(
1900; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp fast une double [[A:%.*]], [[B:%.*]]
1901; CHECK-NEXT:    ret i1 [[RETVAL]]
1902;
1903  %cmp = fcmp fast ugt double %a, %b
1904  %cmp1 = fcmp fast one double %a, %b
1905  %retval = select i1 %cmp, i1 true, i1 %cmp1
1906  ret i1 %retval
1907}
1908
1909define i1 @auto_gen_52(double %a, double %b) {
1910; CHECK-LABEL: @auto_gen_52(
1911; CHECK-NEXT:    ret i1 true
1912;
1913  %cmp = fcmp ugt double %a, %b
1914  %cmp1 = fcmp ord double %a, %b
1915  %retval = or i1 %cmp, %cmp1
1916  ret i1 %retval
1917}
1918
1919define i1 @auto_gen_52_logical(double %a, double %b) {
1920; CHECK-LABEL: @auto_gen_52_logical(
1921; CHECK-NEXT:    ret i1 true
1922;
1923  %cmp = fcmp ugt double %a, %b
1924  %cmp1 = fcmp ord double %a, %b
1925  %retval = select i1 %cmp, i1 true, i1 %cmp1
1926  ret i1 %retval
1927}
1928
1929define i1 @auto_gen_52_logical_fmf(double %a, double %b) {
1930; CHECK-LABEL: @auto_gen_52_logical_fmf(
1931; CHECK-NEXT:    ret i1 true
1932;
1933  %cmp = fcmp ugt double %a, %b
1934  %cmp1 = fcmp fast ord double %a, %b
1935  %retval = select i1 %cmp, i1 true, i1 %cmp1
1936  ret i1 %retval
1937}
1938
1939define i1 @auto_gen_53(double %a, double %b) {
1940; CHECK-LABEL: @auto_gen_53(
1941; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
1942; CHECK-NEXT:    ret i1 [[RETVAL]]
1943;
1944  %cmp = fcmp ugt double %a, %b
1945  %cmp1 = fcmp ueq double %a, %b
1946  %retval = or i1 %cmp, %cmp1
1947  ret i1 %retval
1948}
1949
1950define i1 @auto_gen_53_logical(double %a, double %b) {
1951; CHECK-LABEL: @auto_gen_53_logical(
1952; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
1953; CHECK-NEXT:    ret i1 [[RETVAL]]
1954;
1955  %cmp = fcmp ugt double %a, %b
1956  %cmp1 = fcmp ueq double %a, %b
1957  %retval = select i1 %cmp, i1 true, i1 %cmp1
1958  ret i1 %retval
1959}
1960
1961define i1 @auto_gen_53_logical_fmf(double %a, double %b) {
1962; CHECK-LABEL: @auto_gen_53_logical_fmf(
1963; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp fast uge double [[A:%.*]], [[B:%.*]]
1964; CHECK-NEXT:    ret i1 [[RETVAL]]
1965;
1966  %cmp = fcmp fast ugt double %a, %b
1967  %cmp1 = fcmp fast ueq double %a, %b
1968  %retval = select i1 %cmp, i1 true, i1 %cmp1
1969  ret i1 %retval
1970}
1971
1972define i1 @auto_gen_54(double %a, double %b) {
1973; CHECK-LABEL: @auto_gen_54(
1974; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
1975; CHECK-NEXT:    ret i1 [[RETVAL]]
1976;
1977  %cmp = fcmp ugt double %a, %b
1978  %cmp1 = fcmp ugt double %a, %b
1979  %retval = or i1 %cmp, %cmp1
1980  ret i1 %retval
1981}
1982
1983define i1 @auto_gen_54_logical(double %a, double %b) {
1984; CHECK-LABEL: @auto_gen_54_logical(
1985; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
1986; CHECK-NEXT:    ret i1 [[RETVAL]]
1987;
1988  %cmp = fcmp ugt double %a, %b
1989  %cmp1 = fcmp ugt double %a, %b
1990  %retval = select i1 %cmp, i1 true, i1 %cmp1
1991  ret i1 %retval
1992}
1993
1994define i1 @auto_gen_54_logical_fmf(double %a, double %b) {
1995; CHECK-LABEL: @auto_gen_54_logical_fmf(
1996; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
1997; CHECK-NEXT:    ret i1 [[RETVAL]]
1998;
1999  %cmp = fcmp ugt double %a, %b
2000  %cmp1 = fcmp fast ugt double %a, %b
2001  %retval = select i1 %cmp, i1 true, i1 %cmp1
2002  ret i1 %retval
2003}
2004
2005define i1 @auto_gen_55(double %a, double %b) {
2006; CHECK-LABEL: @auto_gen_55(
2007; CHECK-NEXT:    [[CMP:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
2008; CHECK-NEXT:    ret i1 [[CMP]]
2009;
2010  %cmp = fcmp uge double %a, %b
2011  %cmp1 = fcmp false double %a, %b
2012  %retval = or i1 %cmp, %cmp1
2013  ret i1 %retval
2014}
2015
2016define i1 @auto_gen_55_logical(double %a, double %b) {
2017; CHECK-LABEL: @auto_gen_55_logical(
2018; CHECK-NEXT:    [[CMP:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
2019; CHECK-NEXT:    ret i1 [[CMP]]
2020;
2021  %cmp = fcmp uge double %a, %b
2022  %cmp1 = fcmp false double %a, %b
2023  %retval = select i1 %cmp, i1 true, i1 %cmp1
2024  ret i1 %retval
2025}
2026
2027define i1 @auto_gen_55_logical_fmf(double %a, double %b) {
2028; CHECK-LABEL: @auto_gen_55_logical_fmf(
2029; CHECK-NEXT:    [[CMP:%.*]] = fcmp fast uge double [[A:%.*]], [[B:%.*]]
2030; CHECK-NEXT:    ret i1 [[CMP]]
2031;
2032  %cmp = fcmp fast uge double %a, %b
2033  %cmp1 = fcmp fast false double %a, %b
2034  %retval = select i1 %cmp, i1 true, i1 %cmp1
2035  ret i1 %retval
2036}
2037
2038define i1 @auto_gen_56(double %a, double %b) {
2039; CHECK-LABEL: @auto_gen_56(
2040; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
2041; CHECK-NEXT:    ret i1 [[RETVAL]]
2042;
2043  %cmp = fcmp uge double %a, %b
2044  %cmp1 = fcmp oeq double %a, %b
2045  %retval = or i1 %cmp, %cmp1
2046  ret i1 %retval
2047}
2048
2049define i1 @auto_gen_56_logical(double %a, double %b) {
2050; CHECK-LABEL: @auto_gen_56_logical(
2051; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
2052; CHECK-NEXT:    ret i1 [[RETVAL]]
2053;
2054  %cmp = fcmp uge double %a, %b
2055  %cmp1 = fcmp oeq double %a, %b
2056  %retval = select i1 %cmp, i1 true, i1 %cmp1
2057  ret i1 %retval
2058}
2059
2060define i1 @auto_gen_56_logical_fmf(double %a, double %b) {
2061; CHECK-LABEL: @auto_gen_56_logical_fmf(
2062; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
2063; CHECK-NEXT:    ret i1 [[RETVAL]]
2064;
2065  %cmp = fcmp uge double %a, %b
2066  %cmp1 = fcmp fast oeq double %a, %b
2067  %retval = select i1 %cmp, i1 true, i1 %cmp1
2068  ret i1 %retval
2069}
2070
2071define i1 @auto_gen_57(double %a, double %b) {
2072; CHECK-LABEL: @auto_gen_57(
2073; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
2074; CHECK-NEXT:    ret i1 [[RETVAL]]
2075;
2076  %cmp = fcmp uge double %a, %b
2077  %cmp1 = fcmp ogt double %a, %b
2078  %retval = or i1 %cmp, %cmp1
2079  ret i1 %retval
2080}
2081
2082define i1 @auto_gen_57_logical(double %a, double %b) {
2083; CHECK-LABEL: @auto_gen_57_logical(
2084; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
2085; CHECK-NEXT:    ret i1 [[RETVAL]]
2086;
2087  %cmp = fcmp uge double %a, %b
2088  %cmp1 = fcmp ogt double %a, %b
2089  %retval = select i1 %cmp, i1 true, i1 %cmp1
2090  ret i1 %retval
2091}
2092
2093define i1 @auto_gen_57_logical_fmf(double %a, double %b) {
2094; CHECK-LABEL: @auto_gen_57_logical_fmf(
2095; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp fast uge double [[A:%.*]], [[B:%.*]]
2096; CHECK-NEXT:    ret i1 [[RETVAL]]
2097;
2098  %cmp = fcmp fast uge double %a, %b
2099  %cmp1 = fcmp fast ogt double %a, %b
2100  %retval = select i1 %cmp, i1 true, i1 %cmp1
2101  ret i1 %retval
2102}
2103
2104define i1 @auto_gen_58(double %a, double %b) {
2105; CHECK-LABEL: @auto_gen_58(
2106; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
2107; CHECK-NEXT:    ret i1 [[RETVAL]]
2108;
2109  %cmp = fcmp uge double %a, %b
2110  %cmp1 = fcmp oge double %a, %b
2111  %retval = or i1 %cmp, %cmp1
2112  ret i1 %retval
2113}
2114
2115define i1 @auto_gen_58_logical(double %a, double %b) {
2116; CHECK-LABEL: @auto_gen_58_logical(
2117; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
2118; CHECK-NEXT:    ret i1 [[RETVAL]]
2119;
2120  %cmp = fcmp uge double %a, %b
2121  %cmp1 = fcmp oge double %a, %b
2122  %retval = select i1 %cmp, i1 true, i1 %cmp1
2123  ret i1 %retval
2124}
2125
2126define i1 @auto_gen_58_logical_fmf(double %a, double %b) {
2127; CHECK-LABEL: @auto_gen_58_logical_fmf(
2128; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
2129; CHECK-NEXT:    ret i1 [[RETVAL]]
2130;
2131  %cmp = fcmp uge double %a, %b
2132  %cmp1 = fcmp fast oge double %a, %b
2133  %retval = select i1 %cmp, i1 true, i1 %cmp1
2134  ret i1 %retval
2135}
2136
2137define i1 @auto_gen_59(double %a, double %b) {
2138; CHECK-LABEL: @auto_gen_59(
2139; CHECK-NEXT:    ret i1 true
2140;
2141  %cmp = fcmp uge double %a, %b
2142  %cmp1 = fcmp olt double %a, %b
2143  %retval = or i1 %cmp, %cmp1
2144  ret i1 %retval
2145}
2146
2147define i1 @auto_gen_59_logical(double %a, double %b) {
2148; CHECK-LABEL: @auto_gen_59_logical(
2149; CHECK-NEXT:    ret i1 true
2150;
2151  %cmp = fcmp uge double %a, %b
2152  %cmp1 = fcmp olt double %a, %b
2153  %retval = select i1 %cmp, i1 true, i1 %cmp1
2154  ret i1 %retval
2155}
2156
2157define i1 @auto_gen_59_logical_fmf(double %a, double %b) {
2158; CHECK-LABEL: @auto_gen_59_logical_fmf(
2159; CHECK-NEXT:    ret i1 true
2160;
2161  %cmp = fcmp fast uge double %a, %b
2162  %cmp1 = fcmp fast olt double %a, %b
2163  %retval = select i1 %cmp, i1 true, i1 %cmp1
2164  ret i1 %retval
2165}
2166
2167define i1 @auto_gen_60(double %a, double %b) {
2168; CHECK-LABEL: @auto_gen_60(
2169; CHECK-NEXT:    ret i1 true
2170;
2171  %cmp = fcmp uge double %a, %b
2172  %cmp1 = fcmp ole double %a, %b
2173  %retval = or i1 %cmp, %cmp1
2174  ret i1 %retval
2175}
2176
2177define i1 @auto_gen_60_logical(double %a, double %b) {
2178; CHECK-LABEL: @auto_gen_60_logical(
2179; CHECK-NEXT:    ret i1 true
2180;
2181  %cmp = fcmp uge double %a, %b
2182  %cmp1 = fcmp ole double %a, %b
2183  %retval = select i1 %cmp, i1 true, i1 %cmp1
2184  ret i1 %retval
2185}
2186
2187define i1 @auto_gen_60_logical_fmf(double %a, double %b) {
2188; CHECK-LABEL: @auto_gen_60_logical_fmf(
2189; CHECK-NEXT:    ret i1 true
2190;
2191  %cmp = fcmp uge double %a, %b
2192  %cmp1 = fcmp fast ole double %a, %b
2193  %retval = select i1 %cmp, i1 true, i1 %cmp1
2194  ret i1 %retval
2195}
2196
2197define i1 @auto_gen_61(double %a, double %b) {
2198; CHECK-LABEL: @auto_gen_61(
2199; CHECK-NEXT:    ret i1 true
2200;
2201  %cmp = fcmp uge double %a, %b
2202  %cmp1 = fcmp one double %a, %b
2203  %retval = or i1 %cmp, %cmp1
2204  ret i1 %retval
2205}
2206
2207define i1 @auto_gen_61_logical(double %a, double %b) {
2208; CHECK-LABEL: @auto_gen_61_logical(
2209; CHECK-NEXT:    ret i1 true
2210;
2211  %cmp = fcmp uge double %a, %b
2212  %cmp1 = fcmp one double %a, %b
2213  %retval = select i1 %cmp, i1 true, i1 %cmp1
2214  ret i1 %retval
2215}
2216
2217define i1 @auto_gen_61_logical_fmf(double %a, double %b) {
2218; CHECK-LABEL: @auto_gen_61_logical_fmf(
2219; CHECK-NEXT:    ret i1 true
2220;
2221  %cmp = fcmp fast uge double %a, %b
2222  %cmp1 = fcmp fast one double %a, %b
2223  %retval = select i1 %cmp, i1 true, i1 %cmp1
2224  ret i1 %retval
2225}
2226
2227define i1 @auto_gen_62(double %a, double %b) {
2228; CHECK-LABEL: @auto_gen_62(
2229; CHECK-NEXT:    ret i1 true
2230;
2231  %cmp = fcmp uge double %a, %b
2232  %cmp1 = fcmp ord double %a, %b
2233  %retval = or i1 %cmp, %cmp1
2234  ret i1 %retval
2235}
2236
2237define i1 @auto_gen_62_logical(double %a, double %b) {
2238; CHECK-LABEL: @auto_gen_62_logical(
2239; CHECK-NEXT:    ret i1 true
2240;
2241  %cmp = fcmp uge double %a, %b
2242  %cmp1 = fcmp ord double %a, %b
2243  %retval = select i1 %cmp, i1 true, i1 %cmp1
2244  ret i1 %retval
2245}
2246
2247define i1 @auto_gen_62_logical_fmf(double %a, double %b) {
2248; CHECK-LABEL: @auto_gen_62_logical_fmf(
2249; CHECK-NEXT:    ret i1 true
2250;
2251  %cmp = fcmp uge double %a, %b
2252  %cmp1 = fcmp fast ord double %a, %b
2253  %retval = select i1 %cmp, i1 true, i1 %cmp1
2254  ret i1 %retval
2255}
2256
2257define i1 @auto_gen_63(double %a, double %b) {
2258; CHECK-LABEL: @auto_gen_63(
2259; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
2260; CHECK-NEXT:    ret i1 [[RETVAL]]
2261;
2262  %cmp = fcmp uge double %a, %b
2263  %cmp1 = fcmp ueq double %a, %b
2264  %retval = or i1 %cmp, %cmp1
2265  ret i1 %retval
2266}
2267
2268define i1 @auto_gen_63_logical(double %a, double %b) {
2269; CHECK-LABEL: @auto_gen_63_logical(
2270; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
2271; CHECK-NEXT:    ret i1 [[RETVAL]]
2272;
2273  %cmp = fcmp uge double %a, %b
2274  %cmp1 = fcmp ueq double %a, %b
2275  %retval = select i1 %cmp, i1 true, i1 %cmp1
2276  ret i1 %retval
2277}
2278
2279define i1 @auto_gen_63_logical_fmf(double %a, double %b) {
2280; CHECK-LABEL: @auto_gen_63_logical_fmf(
2281; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp fast uge double [[A:%.*]], [[B:%.*]]
2282; CHECK-NEXT:    ret i1 [[RETVAL]]
2283;
2284  %cmp = fcmp fast uge double %a, %b
2285  %cmp1 = fcmp fast ueq double %a, %b
2286  %retval = select i1 %cmp, i1 true, i1 %cmp1
2287  ret i1 %retval
2288}
2289
2290define i1 @auto_gen_64(double %a, double %b) {
2291; CHECK-LABEL: @auto_gen_64(
2292; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
2293; CHECK-NEXT:    ret i1 [[RETVAL]]
2294;
2295  %cmp = fcmp uge double %a, %b
2296  %cmp1 = fcmp ugt double %a, %b
2297  %retval = or i1 %cmp, %cmp1
2298  ret i1 %retval
2299}
2300
2301define i1 @auto_gen_64_logical(double %a, double %b) {
2302; CHECK-LABEL: @auto_gen_64_logical(
2303; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
2304; CHECK-NEXT:    ret i1 [[RETVAL]]
2305;
2306  %cmp = fcmp uge double %a, %b
2307  %cmp1 = fcmp ugt double %a, %b
2308  %retval = select i1 %cmp, i1 true, i1 %cmp1
2309  ret i1 %retval
2310}
2311
2312define i1 @auto_gen_64_logical_fmf(double %a, double %b) {
2313; CHECK-LABEL: @auto_gen_64_logical_fmf(
2314; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
2315; CHECK-NEXT:    ret i1 [[RETVAL]]
2316;
2317  %cmp = fcmp uge double %a, %b
2318  %cmp1 = fcmp fast ugt double %a, %b
2319  %retval = select i1 %cmp, i1 true, i1 %cmp1
2320  ret i1 %retval
2321}
2322
2323define i1 @auto_gen_65(double %a, double %b) {
2324; CHECK-LABEL: @auto_gen_65(
2325; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
2326; CHECK-NEXT:    ret i1 [[RETVAL]]
2327;
2328  %cmp = fcmp uge double %a, %b
2329  %cmp1 = fcmp uge double %a, %b
2330  %retval = or i1 %cmp, %cmp1
2331  ret i1 %retval
2332}
2333
2334define i1 @auto_gen_65_logical(double %a, double %b) {
2335; CHECK-LABEL: @auto_gen_65_logical(
2336; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
2337; CHECK-NEXT:    ret i1 [[RETVAL]]
2338;
2339  %cmp = fcmp uge double %a, %b
2340  %cmp1 = fcmp uge double %a, %b
2341  %retval = select i1 %cmp, i1 true, i1 %cmp1
2342  ret i1 %retval
2343}
2344
2345define i1 @auto_gen_65_logical_fmf(double %a, double %b) {
2346; CHECK-LABEL: @auto_gen_65_logical_fmf(
2347; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp fast uge double [[A:%.*]], [[B:%.*]]
2348; CHECK-NEXT:    ret i1 [[RETVAL]]
2349;
2350  %cmp = fcmp fast uge double %a, %b
2351  %cmp1 = fcmp fast uge double %a, %b
2352  %retval = select i1 %cmp, i1 true, i1 %cmp1
2353  ret i1 %retval
2354}
2355
2356define i1 @auto_gen_66(double %a, double %b) {
2357; CHECK-LABEL: @auto_gen_66(
2358; CHECK-NEXT:    [[CMP:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
2359; CHECK-NEXT:    ret i1 [[CMP]]
2360;
2361  %cmp = fcmp ult double %a, %b
2362  %cmp1 = fcmp false double %a, %b
2363  %retval = or i1 %cmp, %cmp1
2364  ret i1 %retval
2365}
2366
2367define i1 @auto_gen_66_logical(double %a, double %b) {
2368; CHECK-LABEL: @auto_gen_66_logical(
2369; CHECK-NEXT:    [[CMP:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
2370; CHECK-NEXT:    ret i1 [[CMP]]
2371;
2372  %cmp = fcmp ult double %a, %b
2373  %cmp1 = fcmp false double %a, %b
2374  %retval = select i1 %cmp, i1 true, i1 %cmp1
2375  ret i1 %retval
2376}
2377
2378define i1 @auto_gen_66_logical_fmf(double %a, double %b) {
2379; CHECK-LABEL: @auto_gen_66_logical_fmf(
2380; CHECK-NEXT:    [[CMP:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
2381; CHECK-NEXT:    ret i1 [[CMP]]
2382;
2383  %cmp = fcmp ult double %a, %b
2384  %cmp1 = fcmp fast false double %a, %b
2385  %retval = select i1 %cmp, i1 true, i1 %cmp1
2386  ret i1 %retval
2387}
2388
2389define i1 @auto_gen_67(double %a, double %b) {
2390; CHECK-LABEL: @auto_gen_67(
2391; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
2392; CHECK-NEXT:    ret i1 [[RETVAL]]
2393;
2394  %cmp = fcmp ult double %a, %b
2395  %cmp1 = fcmp oeq double %a, %b
2396  %retval = or i1 %cmp, %cmp1
2397  ret i1 %retval
2398}
2399
2400define i1 @auto_gen_67_logical(double %a, double %b) {
2401; CHECK-LABEL: @auto_gen_67_logical(
2402; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
2403; CHECK-NEXT:    ret i1 [[RETVAL]]
2404;
2405  %cmp = fcmp ult double %a, %b
2406  %cmp1 = fcmp oeq double %a, %b
2407  %retval = select i1 %cmp, i1 true, i1 %cmp1
2408  ret i1 %retval
2409}
2410
2411define i1 @auto_gen_67_logical_fmf(double %a, double %b) {
2412; CHECK-LABEL: @auto_gen_67_logical_fmf(
2413; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp fast ule double [[A:%.*]], [[B:%.*]]
2414; CHECK-NEXT:    ret i1 [[RETVAL]]
2415;
2416  %cmp = fcmp fast ult double %a, %b
2417  %cmp1 = fcmp fast oeq double %a, %b
2418  %retval = select i1 %cmp, i1 true, i1 %cmp1
2419  ret i1 %retval
2420}
2421
2422define i1 @auto_gen_68(double %a, double %b) {
2423; CHECK-LABEL: @auto_gen_68(
2424; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
2425; CHECK-NEXT:    ret i1 [[RETVAL]]
2426;
2427  %cmp = fcmp ult double %a, %b
2428  %cmp1 = fcmp ogt double %a, %b
2429  %retval = or i1 %cmp, %cmp1
2430  ret i1 %retval
2431}
2432
2433define i1 @auto_gen_68_logical(double %a, double %b) {
2434; CHECK-LABEL: @auto_gen_68_logical(
2435; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
2436; CHECK-NEXT:    ret i1 [[RETVAL]]
2437;
2438  %cmp = fcmp ult double %a, %b
2439  %cmp1 = fcmp ogt double %a, %b
2440  %retval = select i1 %cmp, i1 true, i1 %cmp1
2441  ret i1 %retval
2442}
2443
2444define i1 @auto_gen_68_logical_fmf(double %a, double %b) {
2445; CHECK-LABEL: @auto_gen_68_logical_fmf(
2446; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
2447; CHECK-NEXT:    ret i1 [[RETVAL]]
2448;
2449  %cmp = fcmp ult double %a, %b
2450  %cmp1 = fcmp fast ogt double %a, %b
2451  %retval = select i1 %cmp, i1 true, i1 %cmp1
2452  ret i1 %retval
2453}
2454
2455define i1 @auto_gen_69(double %a, double %b) {
2456; CHECK-LABEL: @auto_gen_69(
2457; CHECK-NEXT:    ret i1 true
2458;
2459  %cmp = fcmp ult double %a, %b
2460  %cmp1 = fcmp oge double %a, %b
2461  %retval = or i1 %cmp, %cmp1
2462  ret i1 %retval
2463}
2464
2465define i1 @auto_gen_69_logical(double %a, double %b) {
2466; CHECK-LABEL: @auto_gen_69_logical(
2467; CHECK-NEXT:    ret i1 true
2468;
2469  %cmp = fcmp ult double %a, %b
2470  %cmp1 = fcmp oge double %a, %b
2471  %retval = select i1 %cmp, i1 true, i1 %cmp1
2472  ret i1 %retval
2473}
2474
2475define i1 @auto_gen_69_logical_fmf(double %a, double %b) {
2476; CHECK-LABEL: @auto_gen_69_logical_fmf(
2477; CHECK-NEXT:    ret i1 true
2478;
2479  %cmp = fcmp fast ult double %a, %b
2480  %cmp1 = fcmp fast oge double %a, %b
2481  %retval = select i1 %cmp, i1 true, i1 %cmp1
2482  ret i1 %retval
2483}
2484
2485define i1 @auto_gen_70(double %a, double %b) {
2486; CHECK-LABEL: @auto_gen_70(
2487; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
2488; CHECK-NEXT:    ret i1 [[RETVAL]]
2489;
2490  %cmp = fcmp ult double %a, %b
2491  %cmp1 = fcmp olt double %a, %b
2492  %retval = or i1 %cmp, %cmp1
2493  ret i1 %retval
2494}
2495
2496define i1 @auto_gen_70_logical(double %a, double %b) {
2497; CHECK-LABEL: @auto_gen_70_logical(
2498; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
2499; CHECK-NEXT:    ret i1 [[RETVAL]]
2500;
2501  %cmp = fcmp ult double %a, %b
2502  %cmp1 = fcmp olt double %a, %b
2503  %retval = select i1 %cmp, i1 true, i1 %cmp1
2504  ret i1 %retval
2505}
2506
2507define i1 @auto_gen_70_logical_fmf(double %a, double %b) {
2508; CHECK-LABEL: @auto_gen_70_logical_fmf(
2509; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
2510; CHECK-NEXT:    ret i1 [[RETVAL]]
2511;
2512  %cmp = fcmp ult double %a, %b
2513  %cmp1 = fcmp fast olt double %a, %b
2514  %retval = select i1 %cmp, i1 true, i1 %cmp1
2515  ret i1 %retval
2516}
2517
2518define i1 @auto_gen_71(double %a, double %b) {
2519; CHECK-LABEL: @auto_gen_71(
2520; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
2521; CHECK-NEXT:    ret i1 [[RETVAL]]
2522;
2523  %cmp = fcmp ult double %a, %b
2524  %cmp1 = fcmp ole double %a, %b
2525  %retval = or i1 %cmp, %cmp1
2526  ret i1 %retval
2527}
2528
2529define i1 @auto_gen_71_logical(double %a, double %b) {
2530; CHECK-LABEL: @auto_gen_71_logical(
2531; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
2532; CHECK-NEXT:    ret i1 [[RETVAL]]
2533;
2534  %cmp = fcmp ult double %a, %b
2535  %cmp1 = fcmp ole double %a, %b
2536  %retval = select i1 %cmp, i1 true, i1 %cmp1
2537  ret i1 %retval
2538}
2539
2540define i1 @auto_gen_71_logical_fmf(double %a, double %b) {
2541; CHECK-LABEL: @auto_gen_71_logical_fmf(
2542; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp fast ule double [[A:%.*]], [[B:%.*]]
2543; CHECK-NEXT:    ret i1 [[RETVAL]]
2544;
2545  %cmp = fcmp fast ult double %a, %b
2546  %cmp1 = fcmp fast ole double %a, %b
2547  %retval = select i1 %cmp, i1 true, i1 %cmp1
2548  ret i1 %retval
2549}
2550
2551define i1 @auto_gen_72(double %a, double %b) {
2552; CHECK-LABEL: @auto_gen_72(
2553; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
2554; CHECK-NEXT:    ret i1 [[RETVAL]]
2555;
2556  %cmp = fcmp ult double %a, %b
2557  %cmp1 = fcmp one double %a, %b
2558  %retval = or i1 %cmp, %cmp1
2559  ret i1 %retval
2560}
2561
2562define i1 @auto_gen_72_logical(double %a, double %b) {
2563; CHECK-LABEL: @auto_gen_72_logical(
2564; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
2565; CHECK-NEXT:    ret i1 [[RETVAL]]
2566;
2567  %cmp = fcmp ult double %a, %b
2568  %cmp1 = fcmp one double %a, %b
2569  %retval = select i1 %cmp, i1 true, i1 %cmp1
2570  ret i1 %retval
2571}
2572
2573define i1 @auto_gen_72_logical_fmf(double %a, double %b) {
2574; CHECK-LABEL: @auto_gen_72_logical_fmf(
2575; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
2576; CHECK-NEXT:    ret i1 [[RETVAL]]
2577;
2578  %cmp = fcmp ult double %a, %b
2579  %cmp1 = fcmp fast one double %a, %b
2580  %retval = select i1 %cmp, i1 true, i1 %cmp1
2581  ret i1 %retval
2582}
2583
2584define i1 @auto_gen_73(double %a, double %b) {
2585; CHECK-LABEL: @auto_gen_73(
2586; CHECK-NEXT:    ret i1 true
2587;
2588  %cmp = fcmp ult double %a, %b
2589  %cmp1 = fcmp ord double %a, %b
2590  %retval = or i1 %cmp, %cmp1
2591  ret i1 %retval
2592}
2593
2594define i1 @auto_gen_73_logical(double %a, double %b) {
2595; CHECK-LABEL: @auto_gen_73_logical(
2596; CHECK-NEXT:    ret i1 true
2597;
2598  %cmp = fcmp ult double %a, %b
2599  %cmp1 = fcmp ord double %a, %b
2600  %retval = select i1 %cmp, i1 true, i1 %cmp1
2601  ret i1 %retval
2602}
2603
2604define i1 @auto_gen_73_logical_fmf(double %a, double %b) {
2605; CHECK-LABEL: @auto_gen_73_logical_fmf(
2606; CHECK-NEXT:    ret i1 true
2607;
2608  %cmp = fcmp fast ult double %a, %b
2609  %cmp1 = fcmp fast ord double %a, %b
2610  %retval = select i1 %cmp, i1 true, i1 %cmp1
2611  ret i1 %retval
2612}
2613
2614define i1 @auto_gen_74(double %a, double %b) {
2615; CHECK-LABEL: @auto_gen_74(
2616; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
2617; CHECK-NEXT:    ret i1 [[RETVAL]]
2618;
2619  %cmp = fcmp ult double %a, %b
2620  %cmp1 = fcmp ueq double %a, %b
2621  %retval = or i1 %cmp, %cmp1
2622  ret i1 %retval
2623}
2624
2625define i1 @auto_gen_74_logical(double %a, double %b) {
2626; CHECK-LABEL: @auto_gen_74_logical(
2627; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
2628; CHECK-NEXT:    ret i1 [[RETVAL]]
2629;
2630  %cmp = fcmp ult double %a, %b
2631  %cmp1 = fcmp ueq double %a, %b
2632  %retval = select i1 %cmp, i1 true, i1 %cmp1
2633  ret i1 %retval
2634}
2635
2636define i1 @auto_gen_74_logical_fmf(double %a, double %b) {
2637; CHECK-LABEL: @auto_gen_74_logical_fmf(
2638; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
2639; CHECK-NEXT:    ret i1 [[RETVAL]]
2640;
2641  %cmp = fcmp ult double %a, %b
2642  %cmp1 = fcmp fast ueq double %a, %b
2643  %retval = select i1 %cmp, i1 true, i1 %cmp1
2644  ret i1 %retval
2645}
2646
2647define i1 @auto_gen_75(double %a, double %b) {
2648; CHECK-LABEL: @auto_gen_75(
2649; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
2650; CHECK-NEXT:    ret i1 [[RETVAL]]
2651;
2652  %cmp = fcmp ult double %a, %b
2653  %cmp1 = fcmp ugt double %a, %b
2654  %retval = or i1 %cmp, %cmp1
2655  ret i1 %retval
2656}
2657
2658define i1 @auto_gen_75_logical(double %a, double %b) {
2659; CHECK-LABEL: @auto_gen_75_logical(
2660; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
2661; CHECK-NEXT:    ret i1 [[RETVAL]]
2662;
2663  %cmp = fcmp ult double %a, %b
2664  %cmp1 = fcmp ugt double %a, %b
2665  %retval = select i1 %cmp, i1 true, i1 %cmp1
2666  ret i1 %retval
2667}
2668
2669define i1 @auto_gen_75_logical_fmf(double %a, double %b) {
2670; CHECK-LABEL: @auto_gen_75_logical_fmf(
2671; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp fast une double [[A:%.*]], [[B:%.*]]
2672; CHECK-NEXT:    ret i1 [[RETVAL]]
2673;
2674  %cmp = fcmp fast ult double %a, %b
2675  %cmp1 = fcmp fast ugt double %a, %b
2676  %retval = select i1 %cmp, i1 true, i1 %cmp1
2677  ret i1 %retval
2678}
2679
2680define i1 @auto_gen_76(double %a, double %b) {
2681; CHECK-LABEL: @auto_gen_76(
2682; CHECK-NEXT:    ret i1 true
2683;
2684  %cmp = fcmp ult double %a, %b
2685  %cmp1 = fcmp uge double %a, %b
2686  %retval = or i1 %cmp, %cmp1
2687  ret i1 %retval
2688}
2689
2690define i1 @auto_gen_76_logical(double %a, double %b) {
2691; CHECK-LABEL: @auto_gen_76_logical(
2692; CHECK-NEXT:    ret i1 true
2693;
2694  %cmp = fcmp ult double %a, %b
2695  %cmp1 = fcmp uge double %a, %b
2696  %retval = select i1 %cmp, i1 true, i1 %cmp1
2697  ret i1 %retval
2698}
2699
2700define i1 @auto_gen_76_logical_fmf(double %a, double %b) {
2701; CHECK-LABEL: @auto_gen_76_logical_fmf(
2702; CHECK-NEXT:    ret i1 true
2703;
2704  %cmp = fcmp ult double %a, %b
2705  %cmp1 = fcmp fast uge double %a, %b
2706  %retval = select i1 %cmp, i1 true, i1 %cmp1
2707  ret i1 %retval
2708}
2709
2710define i1 @auto_gen_77(double %a, double %b) {
2711; CHECK-LABEL: @auto_gen_77(
2712; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
2713; CHECK-NEXT:    ret i1 [[RETVAL]]
2714;
2715  %cmp = fcmp ult double %a, %b
2716  %cmp1 = fcmp ult double %a, %b
2717  %retval = or i1 %cmp, %cmp1
2718  ret i1 %retval
2719}
2720
2721define i1 @auto_gen_77_logical(double %a, double %b) {
2722; CHECK-LABEL: @auto_gen_77_logical(
2723; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
2724; CHECK-NEXT:    ret i1 [[RETVAL]]
2725;
2726  %cmp = fcmp ult double %a, %b
2727  %cmp1 = fcmp ult double %a, %b
2728  %retval = select i1 %cmp, i1 true, i1 %cmp1
2729  ret i1 %retval
2730}
2731
2732define i1 @auto_gen_77_logical_fmf(double %a, double %b) {
2733; CHECK-LABEL: @auto_gen_77_logical_fmf(
2734; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp fast ult double [[A:%.*]], [[B:%.*]]
2735; CHECK-NEXT:    ret i1 [[RETVAL]]
2736;
2737  %cmp = fcmp fast ult double %a, %b
2738  %cmp1 = fcmp fast ult double %a, %b
2739  %retval = select i1 %cmp, i1 true, i1 %cmp1
2740  ret i1 %retval
2741}
2742
2743define i1 @auto_gen_78(double %a, double %b) {
2744; CHECK-LABEL: @auto_gen_78(
2745; CHECK-NEXT:    [[CMP:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
2746; CHECK-NEXT:    ret i1 [[CMP]]
2747;
2748  %cmp = fcmp ule double %a, %b
2749  %cmp1 = fcmp false double %a, %b
2750  %retval = or i1 %cmp, %cmp1
2751  ret i1 %retval
2752}
2753
2754define i1 @auto_gen_78_logical(double %a, double %b) {
2755; CHECK-LABEL: @auto_gen_78_logical(
2756; CHECK-NEXT:    [[CMP:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
2757; CHECK-NEXT:    ret i1 [[CMP]]
2758;
2759  %cmp = fcmp ule double %a, %b
2760  %cmp1 = fcmp false double %a, %b
2761  %retval = select i1 %cmp, i1 true, i1 %cmp1
2762  ret i1 %retval
2763}
2764
2765define i1 @auto_gen_78_logical_fmf(double %a, double %b) {
2766; CHECK-LABEL: @auto_gen_78_logical_fmf(
2767; CHECK-NEXT:    [[CMP:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
2768; CHECK-NEXT:    ret i1 [[CMP]]
2769;
2770  %cmp = fcmp ule double %a, %b
2771  %cmp1 = fcmp fast false double %a, %b
2772  %retval = select i1 %cmp, i1 true, i1 %cmp1
2773  ret i1 %retval
2774}
2775
2776define i1 @auto_gen_79(double %a, double %b) {
2777; CHECK-LABEL: @auto_gen_79(
2778; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
2779; CHECK-NEXT:    ret i1 [[RETVAL]]
2780;
2781  %cmp = fcmp ule double %a, %b
2782  %cmp1 = fcmp oeq double %a, %b
2783  %retval = or i1 %cmp, %cmp1
2784  ret i1 %retval
2785}
2786
2787define i1 @auto_gen_79_logical(double %a, double %b) {
2788; CHECK-LABEL: @auto_gen_79_logical(
2789; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
2790; CHECK-NEXT:    ret i1 [[RETVAL]]
2791;
2792  %cmp = fcmp ule double %a, %b
2793  %cmp1 = fcmp oeq double %a, %b
2794  %retval = select i1 %cmp, i1 true, i1 %cmp1
2795  ret i1 %retval
2796}
2797
2798define i1 @auto_gen_79_logical_fmf(double %a, double %b) {
2799; CHECK-LABEL: @auto_gen_79_logical_fmf(
2800; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp fast ule double [[A:%.*]], [[B:%.*]]
2801; CHECK-NEXT:    ret i1 [[RETVAL]]
2802;
2803  %cmp = fcmp fast ule double %a, %b
2804  %cmp1 = fcmp fast oeq double %a, %b
2805  %retval = select i1 %cmp, i1 true, i1 %cmp1
2806  ret i1 %retval
2807}
2808
2809define i1 @auto_gen_80(double %a, double %b) {
2810; CHECK-LABEL: @auto_gen_80(
2811; CHECK-NEXT:    ret i1 true
2812;
2813  %cmp = fcmp ule double %a, %b
2814  %cmp1 = fcmp ogt double %a, %b
2815  %retval = or i1 %cmp, %cmp1
2816  ret i1 %retval
2817}
2818
2819define i1 @auto_gen_80_logical(double %a, double %b) {
2820; CHECK-LABEL: @auto_gen_80_logical(
2821; CHECK-NEXT:    ret i1 true
2822;
2823  %cmp = fcmp ule double %a, %b
2824  %cmp1 = fcmp ogt double %a, %b
2825  %retval = select i1 %cmp, i1 true, i1 %cmp1
2826  ret i1 %retval
2827}
2828
2829define i1 @auto_gen_80_logical_fmf(double %a, double %b) {
2830; CHECK-LABEL: @auto_gen_80_logical_fmf(
2831; CHECK-NEXT:    ret i1 true
2832;
2833  %cmp = fcmp ule double %a, %b
2834  %cmp1 = fcmp fast ogt double %a, %b
2835  %retval = select i1 %cmp, i1 true, i1 %cmp1
2836  ret i1 %retval
2837}
2838
2839define i1 @auto_gen_81(double %a, double %b) {
2840; CHECK-LABEL: @auto_gen_81(
2841; CHECK-NEXT:    ret i1 true
2842;
2843  %cmp = fcmp ule double %a, %b
2844  %cmp1 = fcmp oge double %a, %b
2845  %retval = or i1 %cmp, %cmp1
2846  ret i1 %retval
2847}
2848
2849define i1 @auto_gen_81_logical(double %a, double %b) {
2850; CHECK-LABEL: @auto_gen_81_logical(
2851; CHECK-NEXT:    ret i1 true
2852;
2853  %cmp = fcmp ule double %a, %b
2854  %cmp1 = fcmp oge double %a, %b
2855  %retval = select i1 %cmp, i1 true, i1 %cmp1
2856  ret i1 %retval
2857}
2858
2859define i1 @auto_gen_81_logical_fmf(double %a, double %b) {
2860; CHECK-LABEL: @auto_gen_81_logical_fmf(
2861; CHECK-NEXT:    ret i1 true
2862;
2863  %cmp = fcmp fast ule double %a, %b
2864  %cmp1 = fcmp fast oge double %a, %b
2865  %retval = select i1 %cmp, i1 true, i1 %cmp1
2866  ret i1 %retval
2867}
2868
2869define i1 @auto_gen_82(double %a, double %b) {
2870; CHECK-LABEL: @auto_gen_82(
2871; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
2872; CHECK-NEXT:    ret i1 [[RETVAL]]
2873;
2874  %cmp = fcmp ule double %a, %b
2875  %cmp1 = fcmp olt double %a, %b
2876  %retval = or i1 %cmp, %cmp1
2877  ret i1 %retval
2878}
2879
2880define i1 @auto_gen_82_logical(double %a, double %b) {
2881; CHECK-LABEL: @auto_gen_82_logical(
2882; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
2883; CHECK-NEXT:    ret i1 [[RETVAL]]
2884;
2885  %cmp = fcmp ule double %a, %b
2886  %cmp1 = fcmp olt double %a, %b
2887  %retval = select i1 %cmp, i1 true, i1 %cmp1
2888  ret i1 %retval
2889}
2890
2891define i1 @auto_gen_82_logical_fmf(double %a, double %b) {
2892; CHECK-LABEL: @auto_gen_82_logical_fmf(
2893; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
2894; CHECK-NEXT:    ret i1 [[RETVAL]]
2895;
2896  %cmp = fcmp ule double %a, %b
2897  %cmp1 = fcmp fast olt double %a, %b
2898  %retval = select i1 %cmp, i1 true, i1 %cmp1
2899  ret i1 %retval
2900}
2901
2902define i1 @auto_gen_83(double %a, double %b) {
2903; CHECK-LABEL: @auto_gen_83(
2904; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
2905; CHECK-NEXT:    ret i1 [[RETVAL]]
2906;
2907  %cmp = fcmp ule double %a, %b
2908  %cmp1 = fcmp ole double %a, %b
2909  %retval = or i1 %cmp, %cmp1
2910  ret i1 %retval
2911}
2912
2913define i1 @auto_gen_83_logical(double %a, double %b) {
2914; CHECK-LABEL: @auto_gen_83_logical(
2915; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
2916; CHECK-NEXT:    ret i1 [[RETVAL]]
2917;
2918  %cmp = fcmp ule double %a, %b
2919  %cmp1 = fcmp ole double %a, %b
2920  %retval = select i1 %cmp, i1 true, i1 %cmp1
2921  ret i1 %retval
2922}
2923
2924define i1 @auto_gen_83_logical_fmf(double %a, double %b) {
2925; CHECK-LABEL: @auto_gen_83_logical_fmf(
2926; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp fast ule double [[A:%.*]], [[B:%.*]]
2927; CHECK-NEXT:    ret i1 [[RETVAL]]
2928;
2929  %cmp = fcmp fast ule double %a, %b
2930  %cmp1 = fcmp fast ole double %a, %b
2931  %retval = select i1 %cmp, i1 true, i1 %cmp1
2932  ret i1 %retval
2933}
2934
2935define i1 @auto_gen_84(double %a, double %b) {
2936; CHECK-LABEL: @auto_gen_84(
2937; CHECK-NEXT:    ret i1 true
2938;
2939  %cmp = fcmp ule double %a, %b
2940  %cmp1 = fcmp one double %a, %b
2941  %retval = or i1 %cmp, %cmp1
2942  ret i1 %retval
2943}
2944
2945define i1 @auto_gen_84_logical(double %a, double %b) {
2946; CHECK-LABEL: @auto_gen_84_logical(
2947; CHECK-NEXT:    ret i1 true
2948;
2949  %cmp = fcmp ule double %a, %b
2950  %cmp1 = fcmp one double %a, %b
2951  %retval = select i1 %cmp, i1 true, i1 %cmp1
2952  ret i1 %retval
2953}
2954
2955define i1 @auto_gen_84_logical_fmf(double %a, double %b) {
2956; CHECK-LABEL: @auto_gen_84_logical_fmf(
2957; CHECK-NEXT:    ret i1 true
2958;
2959  %cmp = fcmp ule double %a, %b
2960  %cmp1 = fcmp fast one double %a, %b
2961  %retval = select i1 %cmp, i1 true, i1 %cmp1
2962  ret i1 %retval
2963}
2964
2965define i1 @auto_gen_85(double %a, double %b) {
2966; CHECK-LABEL: @auto_gen_85(
2967; CHECK-NEXT:    ret i1 true
2968;
2969  %cmp = fcmp ule double %a, %b
2970  %cmp1 = fcmp ord double %a, %b
2971  %retval = or i1 %cmp, %cmp1
2972  ret i1 %retval
2973}
2974
2975define i1 @auto_gen_85_logical(double %a, double %b) {
2976; CHECK-LABEL: @auto_gen_85_logical(
2977; CHECK-NEXT:    ret i1 true
2978;
2979  %cmp = fcmp ule double %a, %b
2980  %cmp1 = fcmp ord double %a, %b
2981  %retval = select i1 %cmp, i1 true, i1 %cmp1
2982  ret i1 %retval
2983}
2984
2985define i1 @auto_gen_85_logical_fmf(double %a, double %b) {
2986; CHECK-LABEL: @auto_gen_85_logical_fmf(
2987; CHECK-NEXT:    ret i1 true
2988;
2989  %cmp = fcmp fast ule double %a, %b
2990  %cmp1 = fcmp fast ord double %a, %b
2991  %retval = select i1 %cmp, i1 true, i1 %cmp1
2992  ret i1 %retval
2993}
2994
2995define i1 @auto_gen_86(double %a, double %b) {
2996; CHECK-LABEL: @auto_gen_86(
2997; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
2998; CHECK-NEXT:    ret i1 [[RETVAL]]
2999;
3000  %cmp = fcmp ule double %a, %b
3001  %cmp1 = fcmp ueq double %a, %b
3002  %retval = or i1 %cmp, %cmp1
3003  ret i1 %retval
3004}
3005
3006define i1 @auto_gen_86_logical(double %a, double %b) {
3007; CHECK-LABEL: @auto_gen_86_logical(
3008; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
3009; CHECK-NEXT:    ret i1 [[RETVAL]]
3010;
3011  %cmp = fcmp ule double %a, %b
3012  %cmp1 = fcmp ueq double %a, %b
3013  %retval = select i1 %cmp, i1 true, i1 %cmp1
3014  ret i1 %retval
3015}
3016
3017define i1 @auto_gen_86_logical_fmf(double %a, double %b) {
3018; CHECK-LABEL: @auto_gen_86_logical_fmf(
3019; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
3020; CHECK-NEXT:    ret i1 [[RETVAL]]
3021;
3022  %cmp = fcmp ule double %a, %b
3023  %cmp1 = fcmp fast ueq double %a, %b
3024  %retval = select i1 %cmp, i1 true, i1 %cmp1
3025  ret i1 %retval
3026}
3027
3028define i1 @auto_gen_87(double %a, double %b) {
3029; CHECK-LABEL: @auto_gen_87(
3030; CHECK-NEXT:    ret i1 true
3031;
3032  %cmp = fcmp ule double %a, %b
3033  %cmp1 = fcmp ugt double %a, %b
3034  %retval = or i1 %cmp, %cmp1
3035  ret i1 %retval
3036}
3037
3038define i1 @auto_gen_87_logical(double %a, double %b) {
3039; CHECK-LABEL: @auto_gen_87_logical(
3040; CHECK-NEXT:    ret i1 true
3041;
3042  %cmp = fcmp ule double %a, %b
3043  %cmp1 = fcmp ugt double %a, %b
3044  %retval = select i1 %cmp, i1 true, i1 %cmp1
3045  ret i1 %retval
3046}
3047
3048define i1 @auto_gen_87_logical_fmf(double %a, double %b) {
3049; CHECK-LABEL: @auto_gen_87_logical_fmf(
3050; CHECK-NEXT:    ret i1 true
3051;
3052  %cmp = fcmp fast ule double %a, %b
3053  %cmp1 = fcmp fast ugt double %a, %b
3054  %retval = select i1 %cmp, i1 true, i1 %cmp1
3055  ret i1 %retval
3056}
3057
3058define i1 @auto_gen_88(double %a, double %b) {
3059; CHECK-LABEL: @auto_gen_88(
3060; CHECK-NEXT:    ret i1 true
3061;
3062  %cmp = fcmp ule double %a, %b
3063  %cmp1 = fcmp uge double %a, %b
3064  %retval = or i1 %cmp, %cmp1
3065  ret i1 %retval
3066}
3067
3068define i1 @auto_gen_88_logical(double %a, double %b) {
3069; CHECK-LABEL: @auto_gen_88_logical(
3070; CHECK-NEXT:    ret i1 true
3071;
3072  %cmp = fcmp ule double %a, %b
3073  %cmp1 = fcmp uge double %a, %b
3074  %retval = select i1 %cmp, i1 true, i1 %cmp1
3075  ret i1 %retval
3076}
3077
3078define i1 @auto_gen_88_logical_fmf(double %a, double %b) {
3079; CHECK-LABEL: @auto_gen_88_logical_fmf(
3080; CHECK-NEXT:    ret i1 true
3081;
3082  %cmp = fcmp ule double %a, %b
3083  %cmp1 = fcmp fast uge double %a, %b
3084  %retval = select i1 %cmp, i1 true, i1 %cmp1
3085  ret i1 %retval
3086}
3087
3088define i1 @auto_gen_89(double %a, double %b) {
3089; CHECK-LABEL: @auto_gen_89(
3090; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
3091; CHECK-NEXT:    ret i1 [[RETVAL]]
3092;
3093  %cmp = fcmp ule double %a, %b
3094  %cmp1 = fcmp ult double %a, %b
3095  %retval = or i1 %cmp, %cmp1
3096  ret i1 %retval
3097}
3098
3099define i1 @auto_gen_89_logical(double %a, double %b) {
3100; CHECK-LABEL: @auto_gen_89_logical(
3101; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
3102; CHECK-NEXT:    ret i1 [[RETVAL]]
3103;
3104  %cmp = fcmp ule double %a, %b
3105  %cmp1 = fcmp ult double %a, %b
3106  %retval = select i1 %cmp, i1 true, i1 %cmp1
3107  ret i1 %retval
3108}
3109
3110define i1 @auto_gen_89_logical_fmf(double %a, double %b) {
3111; CHECK-LABEL: @auto_gen_89_logical_fmf(
3112; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp fast ule double [[A:%.*]], [[B:%.*]]
3113; CHECK-NEXT:    ret i1 [[RETVAL]]
3114;
3115  %cmp = fcmp fast ule double %a, %b
3116  %cmp1 = fcmp fast ult double %a, %b
3117  %retval = select i1 %cmp, i1 true, i1 %cmp1
3118  ret i1 %retval
3119}
3120
3121define i1 @auto_gen_90(double %a, double %b) {
3122; CHECK-LABEL: @auto_gen_90(
3123; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
3124; CHECK-NEXT:    ret i1 [[RETVAL]]
3125;
3126  %cmp = fcmp ule double %a, %b
3127  %cmp1 = fcmp ule double %a, %b
3128  %retval = or i1 %cmp, %cmp1
3129  ret i1 %retval
3130}
3131
3132define i1 @auto_gen_90_logical(double %a, double %b) {
3133; CHECK-LABEL: @auto_gen_90_logical(
3134; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
3135; CHECK-NEXT:    ret i1 [[RETVAL]]
3136;
3137  %cmp = fcmp ule double %a, %b
3138  %cmp1 = fcmp ule double %a, %b
3139  %retval = select i1 %cmp, i1 true, i1 %cmp1
3140  ret i1 %retval
3141}
3142
3143define i1 @auto_gen_90_logical_fmf(double %a, double %b) {
3144; CHECK-LABEL: @auto_gen_90_logical_fmf(
3145; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
3146; CHECK-NEXT:    ret i1 [[RETVAL]]
3147;
3148  %cmp = fcmp ule double %a, %b
3149  %cmp1 = fcmp fast ule double %a, %b
3150  %retval = select i1 %cmp, i1 true, i1 %cmp1
3151  ret i1 %retval
3152}
3153
3154define i1 @auto_gen_91(double %a, double %b) {
3155; CHECK-LABEL: @auto_gen_91(
3156; CHECK-NEXT:    [[CMP:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
3157; CHECK-NEXT:    ret i1 [[CMP]]
3158;
3159  %cmp = fcmp une double %a, %b
3160  %cmp1 = fcmp false double %a, %b
3161  %retval = or i1 %cmp, %cmp1
3162  ret i1 %retval
3163}
3164
3165define i1 @auto_gen_91_logical(double %a, double %b) {
3166; CHECK-LABEL: @auto_gen_91_logical(
3167; CHECK-NEXT:    [[CMP:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
3168; CHECK-NEXT:    ret i1 [[CMP]]
3169;
3170  %cmp = fcmp une double %a, %b
3171  %cmp1 = fcmp false double %a, %b
3172  %retval = select i1 %cmp, i1 true, i1 %cmp1
3173  ret i1 %retval
3174}
3175
3176define i1 @auto_gen_91_logical_fmf(double %a, double %b) {
3177; CHECK-LABEL: @auto_gen_91_logical_fmf(
3178; CHECK-NEXT:    [[CMP:%.*]] = fcmp fast une double [[A:%.*]], [[B:%.*]]
3179; CHECK-NEXT:    ret i1 [[CMP]]
3180;
3181  %cmp = fcmp fast une double %a, %b
3182  %cmp1 = fcmp fast false double %a, %b
3183  %retval = select i1 %cmp, i1 true, i1 %cmp1
3184  ret i1 %retval
3185}
3186
3187define i1 @auto_gen_92(double %a, double %b) {
3188; CHECK-LABEL: @auto_gen_92(
3189; CHECK-NEXT:    ret i1 true
3190;
3191  %cmp = fcmp une double %a, %b
3192  %cmp1 = fcmp oeq double %a, %b
3193  %retval = or i1 %cmp, %cmp1
3194  ret i1 %retval
3195}
3196
3197define i1 @auto_gen_92_logical(double %a, double %b) {
3198; CHECK-LABEL: @auto_gen_92_logical(
3199; CHECK-NEXT:    ret i1 true
3200;
3201  %cmp = fcmp une double %a, %b
3202  %cmp1 = fcmp oeq double %a, %b
3203  %retval = select i1 %cmp, i1 true, i1 %cmp1
3204  ret i1 %retval
3205}
3206
3207define i1 @auto_gen_92_logical_fmf(double %a, double %b) {
3208; CHECK-LABEL: @auto_gen_92_logical_fmf(
3209; CHECK-NEXT:    ret i1 true
3210;
3211  %cmp = fcmp une double %a, %b
3212  %cmp1 = fcmp fast oeq double %a, %b
3213  %retval = select i1 %cmp, i1 true, i1 %cmp1
3214  ret i1 %retval
3215}
3216
3217define i1 @auto_gen_93(double %a, double %b) {
3218; CHECK-LABEL: @auto_gen_93(
3219; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
3220; CHECK-NEXT:    ret i1 [[RETVAL]]
3221;
3222  %cmp = fcmp une double %a, %b
3223  %cmp1 = fcmp ogt double %a, %b
3224  %retval = or i1 %cmp, %cmp1
3225  ret i1 %retval
3226}
3227
3228define i1 @auto_gen_93_logical(double %a, double %b) {
3229; CHECK-LABEL: @auto_gen_93_logical(
3230; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
3231; CHECK-NEXT:    ret i1 [[RETVAL]]
3232;
3233  %cmp = fcmp une double %a, %b
3234  %cmp1 = fcmp ogt double %a, %b
3235  %retval = select i1 %cmp, i1 true, i1 %cmp1
3236  ret i1 %retval
3237}
3238
3239define i1 @auto_gen_93_logical_fmf(double %a, double %b) {
3240; CHECK-LABEL: @auto_gen_93_logical_fmf(
3241; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp fast une double [[A:%.*]], [[B:%.*]]
3242; CHECK-NEXT:    ret i1 [[RETVAL]]
3243;
3244  %cmp = fcmp fast une double %a, %b
3245  %cmp1 = fcmp fast ogt double %a, %b
3246  %retval = select i1 %cmp, i1 true, i1 %cmp1
3247  ret i1 %retval
3248}
3249
3250define i1 @auto_gen_94(double %a, double %b) {
3251; CHECK-LABEL: @auto_gen_94(
3252; CHECK-NEXT:    ret i1 true
3253;
3254  %cmp = fcmp une double %a, %b
3255  %cmp1 = fcmp oge double %a, %b
3256  %retval = or i1 %cmp, %cmp1
3257  ret i1 %retval
3258}
3259
3260define i1 @auto_gen_94_logical(double %a, double %b) {
3261; CHECK-LABEL: @auto_gen_94_logical(
3262; CHECK-NEXT:    ret i1 true
3263;
3264  %cmp = fcmp une double %a, %b
3265  %cmp1 = fcmp oge double %a, %b
3266  %retval = select i1 %cmp, i1 true, i1 %cmp1
3267  ret i1 %retval
3268}
3269
3270define i1 @auto_gen_94_logical_fmf(double %a, double %b) {
3271; CHECK-LABEL: @auto_gen_94_logical_fmf(
3272; CHECK-NEXT:    ret i1 true
3273;
3274  %cmp = fcmp une double %a, %b
3275  %cmp1 = fcmp fast oge double %a, %b
3276  %retval = select i1 %cmp, i1 true, i1 %cmp1
3277  ret i1 %retval
3278}
3279
3280define i1 @auto_gen_95(double %a, double %b) {
3281; CHECK-LABEL: @auto_gen_95(
3282; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
3283; CHECK-NEXT:    ret i1 [[RETVAL]]
3284;
3285  %cmp = fcmp une double %a, %b
3286  %cmp1 = fcmp olt double %a, %b
3287  %retval = or i1 %cmp, %cmp1
3288  ret i1 %retval
3289}
3290
3291define i1 @auto_gen_95_logical(double %a, double %b) {
3292; CHECK-LABEL: @auto_gen_95_logical(
3293; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
3294; CHECK-NEXT:    ret i1 [[RETVAL]]
3295;
3296  %cmp = fcmp une double %a, %b
3297  %cmp1 = fcmp olt double %a, %b
3298  %retval = select i1 %cmp, i1 true, i1 %cmp1
3299  ret i1 %retval
3300}
3301
3302define i1 @auto_gen_95_logical_fmf(double %a, double %b) {
3303; CHECK-LABEL: @auto_gen_95_logical_fmf(
3304; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp fast une double [[A:%.*]], [[B:%.*]]
3305; CHECK-NEXT:    ret i1 [[RETVAL]]
3306;
3307  %cmp = fcmp fast une double %a, %b
3308  %cmp1 = fcmp fast olt double %a, %b
3309  %retval = select i1 %cmp, i1 true, i1 %cmp1
3310  ret i1 %retval
3311}
3312
3313define i1 @auto_gen_96(double %a, double %b) {
3314; CHECK-LABEL: @auto_gen_96(
3315; CHECK-NEXT:    ret i1 true
3316;
3317  %cmp = fcmp une double %a, %b
3318  %cmp1 = fcmp ole double %a, %b
3319  %retval = or i1 %cmp, %cmp1
3320  ret i1 %retval
3321}
3322
3323define i1 @auto_gen_96_logical(double %a, double %b) {
3324; CHECK-LABEL: @auto_gen_96_logical(
3325; CHECK-NEXT:    ret i1 true
3326;
3327  %cmp = fcmp une double %a, %b
3328  %cmp1 = fcmp ole double %a, %b
3329  %retval = select i1 %cmp, i1 true, i1 %cmp1
3330  ret i1 %retval
3331}
3332
3333define i1 @auto_gen_96_logical_fmf(double %a, double %b) {
3334; CHECK-LABEL: @auto_gen_96_logical_fmf(
3335; CHECK-NEXT:    ret i1 true
3336;
3337  %cmp = fcmp une double %a, %b
3338  %cmp1 = fcmp fast ole double %a, %b
3339  %retval = select i1 %cmp, i1 true, i1 %cmp1
3340  ret i1 %retval
3341}
3342
3343define i1 @auto_gen_97(double %a, double %b) {
3344; CHECK-LABEL: @auto_gen_97(
3345; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
3346; CHECK-NEXT:    ret i1 [[RETVAL]]
3347;
3348  %cmp = fcmp une double %a, %b
3349  %cmp1 = fcmp one double %a, %b
3350  %retval = or i1 %cmp, %cmp1
3351  ret i1 %retval
3352}
3353
3354define i1 @auto_gen_97_logical(double %a, double %b) {
3355; CHECK-LABEL: @auto_gen_97_logical(
3356; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
3357; CHECK-NEXT:    ret i1 [[RETVAL]]
3358;
3359  %cmp = fcmp une double %a, %b
3360  %cmp1 = fcmp one double %a, %b
3361  %retval = select i1 %cmp, i1 true, i1 %cmp1
3362  ret i1 %retval
3363}
3364
3365define i1 @auto_gen_97_logical_fmf(double %a, double %b) {
3366; CHECK-LABEL: @auto_gen_97_logical_fmf(
3367; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp fast une double [[A:%.*]], [[B:%.*]]
3368; CHECK-NEXT:    ret i1 [[RETVAL]]
3369;
3370  %cmp = fcmp fast une double %a, %b
3371  %cmp1 = fcmp fast one double %a, %b
3372  %retval = select i1 %cmp, i1 true, i1 %cmp1
3373  ret i1 %retval
3374}
3375
3376define i1 @auto_gen_98(double %a, double %b) {
3377; CHECK-LABEL: @auto_gen_98(
3378; CHECK-NEXT:    ret i1 true
3379;
3380  %cmp = fcmp une double %a, %b
3381  %cmp1 = fcmp ord double %a, %b
3382  %retval = or i1 %cmp, %cmp1
3383  ret i1 %retval
3384}
3385
3386define i1 @auto_gen_98_logical(double %a, double %b) {
3387; CHECK-LABEL: @auto_gen_98_logical(
3388; CHECK-NEXT:    ret i1 true
3389;
3390  %cmp = fcmp une double %a, %b
3391  %cmp1 = fcmp ord double %a, %b
3392  %retval = select i1 %cmp, i1 true, i1 %cmp1
3393  ret i1 %retval
3394}
3395
3396define i1 @auto_gen_98_logical_fmf(double %a, double %b) {
3397; CHECK-LABEL: @auto_gen_98_logical_fmf(
3398; CHECK-NEXT:    ret i1 true
3399;
3400  %cmp = fcmp une double %a, %b
3401  %cmp1 = fcmp fast ord double %a, %b
3402  %retval = select i1 %cmp, i1 true, i1 %cmp1
3403  ret i1 %retval
3404}
3405
3406define i1 @auto_gen_99(double %a, double %b) {
3407; CHECK-LABEL: @auto_gen_99(
3408; CHECK-NEXT:    ret i1 true
3409;
3410  %cmp = fcmp une double %a, %b
3411  %cmp1 = fcmp ueq double %a, %b
3412  %retval = or i1 %cmp, %cmp1
3413  ret i1 %retval
3414}
3415
3416define i1 @auto_gen_99_logical(double %a, double %b) {
3417; CHECK-LABEL: @auto_gen_99_logical(
3418; CHECK-NEXT:    ret i1 true
3419;
3420  %cmp = fcmp une double %a, %b
3421  %cmp1 = fcmp ueq double %a, %b
3422  %retval = select i1 %cmp, i1 true, i1 %cmp1
3423  ret i1 %retval
3424}
3425
3426define i1 @auto_gen_99_logical_fmf(double %a, double %b) {
3427; CHECK-LABEL: @auto_gen_99_logical_fmf(
3428; CHECK-NEXT:    ret i1 true
3429;
3430  %cmp = fcmp fast une double %a, %b
3431  %cmp1 = fcmp fast ueq double %a, %b
3432  %retval = select i1 %cmp, i1 true, i1 %cmp1
3433  ret i1 %retval
3434}
3435
3436define i1 @auto_gen_100(double %a, double %b) {
3437; CHECK-LABEL: @auto_gen_100(
3438; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
3439; CHECK-NEXT:    ret i1 [[RETVAL]]
3440;
3441  %cmp = fcmp une double %a, %b
3442  %cmp1 = fcmp ugt double %a, %b
3443  %retval = or i1 %cmp, %cmp1
3444  ret i1 %retval
3445}
3446
3447define i1 @auto_gen_100_logical(double %a, double %b) {
3448; CHECK-LABEL: @auto_gen_100_logical(
3449; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
3450; CHECK-NEXT:    ret i1 [[RETVAL]]
3451;
3452  %cmp = fcmp une double %a, %b
3453  %cmp1 = fcmp ugt double %a, %b
3454  %retval = select i1 %cmp, i1 true, i1 %cmp1
3455  ret i1 %retval
3456}
3457
3458define i1 @auto_gen_100_logical_fmf(double %a, double %b) {
3459; CHECK-LABEL: @auto_gen_100_logical_fmf(
3460; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
3461; CHECK-NEXT:    ret i1 [[RETVAL]]
3462;
3463  %cmp = fcmp une double %a, %b
3464  %cmp1 = fcmp fast ugt double %a, %b
3465  %retval = select i1 %cmp, i1 true, i1 %cmp1
3466  ret i1 %retval
3467}
3468
3469define i1 @auto_gen_101(double %a, double %b) {
3470; CHECK-LABEL: @auto_gen_101(
3471; CHECK-NEXT:    ret i1 true
3472;
3473  %cmp = fcmp une double %a, %b
3474  %cmp1 = fcmp uge double %a, %b
3475  %retval = or i1 %cmp, %cmp1
3476  ret i1 %retval
3477}
3478
3479define i1 @auto_gen_101_logical(double %a, double %b) {
3480; CHECK-LABEL: @auto_gen_101_logical(
3481; CHECK-NEXT:    ret i1 true
3482;
3483  %cmp = fcmp une double %a, %b
3484  %cmp1 = fcmp uge double %a, %b
3485  %retval = select i1 %cmp, i1 true, i1 %cmp1
3486  ret i1 %retval
3487}
3488
3489define i1 @auto_gen_101_logical_fmf(double %a, double %b) {
3490; CHECK-LABEL: @auto_gen_101_logical_fmf(
3491; CHECK-NEXT:    ret i1 true
3492;
3493  %cmp = fcmp fast une double %a, %b
3494  %cmp1 = fcmp fast uge double %a, %b
3495  %retval = select i1 %cmp, i1 true, i1 %cmp1
3496  ret i1 %retval
3497}
3498
3499define i1 @auto_gen_102(double %a, double %b) {
3500; CHECK-LABEL: @auto_gen_102(
3501; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
3502; CHECK-NEXT:    ret i1 [[RETVAL]]
3503;
3504  %cmp = fcmp une double %a, %b
3505  %cmp1 = fcmp ult double %a, %b
3506  %retval = or i1 %cmp, %cmp1
3507  ret i1 %retval
3508}
3509
3510define i1 @auto_gen_102_logical(double %a, double %b) {
3511; CHECK-LABEL: @auto_gen_102_logical(
3512; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
3513; CHECK-NEXT:    ret i1 [[RETVAL]]
3514;
3515  %cmp = fcmp une double %a, %b
3516  %cmp1 = fcmp ult double %a, %b
3517  %retval = select i1 %cmp, i1 true, i1 %cmp1
3518  ret i1 %retval
3519}
3520
3521define i1 @auto_gen_102_logical_fmf(double %a, double %b) {
3522; CHECK-LABEL: @auto_gen_102_logical_fmf(
3523; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
3524; CHECK-NEXT:    ret i1 [[RETVAL]]
3525;
3526  %cmp = fcmp une double %a, %b
3527  %cmp1 = fcmp fast ult double %a, %b
3528  %retval = select i1 %cmp, i1 true, i1 %cmp1
3529  ret i1 %retval
3530}
3531
3532define i1 @auto_gen_103(double %a, double %b) {
3533; CHECK-LABEL: @auto_gen_103(
3534; CHECK-NEXT:    ret i1 true
3535;
3536  %cmp = fcmp une double %a, %b
3537  %cmp1 = fcmp ule double %a, %b
3538  %retval = or i1 %cmp, %cmp1
3539  ret i1 %retval
3540}
3541
3542define i1 @auto_gen_103_logical(double %a, double %b) {
3543; CHECK-LABEL: @auto_gen_103_logical(
3544; CHECK-NEXT:    ret i1 true
3545;
3546  %cmp = fcmp une double %a, %b
3547  %cmp1 = fcmp ule double %a, %b
3548  %retval = select i1 %cmp, i1 true, i1 %cmp1
3549  ret i1 %retval
3550}
3551
3552define i1 @auto_gen_103_logical_fmf(double %a, double %b) {
3553; CHECK-LABEL: @auto_gen_103_logical_fmf(
3554; CHECK-NEXT:    ret i1 true
3555;
3556  %cmp = fcmp fast une double %a, %b
3557  %cmp1 = fcmp fast ule double %a, %b
3558  %retval = select i1 %cmp, i1 true, i1 %cmp1
3559  ret i1 %retval
3560}
3561
3562define i1 @auto_gen_104(double %a, double %b) {
3563; CHECK-LABEL: @auto_gen_104(
3564; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
3565; CHECK-NEXT:    ret i1 [[RETVAL]]
3566;
3567  %cmp = fcmp une double %a, %b
3568  %cmp1 = fcmp une double %a, %b
3569  %retval = or i1 %cmp, %cmp1
3570  ret i1 %retval
3571}
3572
3573define i1 @auto_gen_104_logical(double %a, double %b) {
3574; CHECK-LABEL: @auto_gen_104_logical(
3575; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
3576; CHECK-NEXT:    ret i1 [[RETVAL]]
3577;
3578  %cmp = fcmp une double %a, %b
3579  %cmp1 = fcmp une double %a, %b
3580  %retval = select i1 %cmp, i1 true, i1 %cmp1
3581  ret i1 %retval
3582}
3583
3584define i1 @auto_gen_104_logical_fmf(double %a, double %b) {
3585; CHECK-LABEL: @auto_gen_104_logical_fmf(
3586; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
3587; CHECK-NEXT:    ret i1 [[RETVAL]]
3588;
3589  %cmp = fcmp une double %a, %b
3590  %cmp1 = fcmp fast une double %a, %b
3591  %retval = select i1 %cmp, i1 true, i1 %cmp1
3592  ret i1 %retval
3593}
3594
3595define i1 @auto_gen_105(double %a, double %b) {
3596; CHECK-LABEL: @auto_gen_105(
3597; CHECK-NEXT:    [[CMP:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
3598; CHECK-NEXT:    ret i1 [[CMP]]
3599;
3600  %cmp = fcmp uno double %a, %b
3601  %cmp1 = fcmp false double %a, %b
3602  %retval = or i1 %cmp, %cmp1
3603  ret i1 %retval
3604}
3605
3606define i1 @auto_gen_105_logical(double %a, double %b) {
3607; CHECK-LABEL: @auto_gen_105_logical(
3608; CHECK-NEXT:    [[CMP:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
3609; CHECK-NEXT:    ret i1 [[CMP]]
3610;
3611  %cmp = fcmp uno double %a, %b
3612  %cmp1 = fcmp false double %a, %b
3613  %retval = select i1 %cmp, i1 true, i1 %cmp1
3614  ret i1 %retval
3615}
3616
3617define i1 @auto_gen_105_logical_fmf(double %a, double %b) {
3618; CHECK-LABEL: @auto_gen_105_logical_fmf(
3619; CHECK-NEXT:    ret i1 false
3620;
3621  %cmp = fcmp fast uno double %a, %b
3622  %cmp1 = fcmp fast false double %a, %b
3623  %retval = select i1 %cmp, i1 true, i1 %cmp1
3624  ret i1 %retval
3625}
3626
3627define i1 @auto_gen_106(double %a, double %b) {
3628; CHECK-LABEL: @auto_gen_106(
3629; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
3630; CHECK-NEXT:    ret i1 [[RETVAL]]
3631;
3632  %cmp = fcmp uno double %a, %b
3633  %cmp1 = fcmp oeq double %a, %b
3634  %retval = or i1 %cmp, %cmp1
3635  ret i1 %retval
3636}
3637
3638define i1 @auto_gen_106_logical(double %a, double %b) {
3639; CHECK-LABEL: @auto_gen_106_logical(
3640; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
3641; CHECK-NEXT:    ret i1 [[RETVAL]]
3642;
3643  %cmp = fcmp uno double %a, %b
3644  %cmp1 = fcmp oeq double %a, %b
3645  %retval = select i1 %cmp, i1 true, i1 %cmp1
3646  ret i1 %retval
3647}
3648
3649define i1 @auto_gen_106_logical_fmf(double %a, double %b) {
3650; CHECK-LABEL: @auto_gen_106_logical_fmf(
3651; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
3652; CHECK-NEXT:    ret i1 [[RETVAL]]
3653;
3654  %cmp = fcmp uno double %a, %b
3655  %cmp1 = fcmp fast oeq double %a, %b
3656  %retval = select i1 %cmp, i1 true, i1 %cmp1
3657  ret i1 %retval
3658}
3659
3660define i1 @auto_gen_107(double %a, double %b) {
3661; CHECK-LABEL: @auto_gen_107(
3662; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
3663; CHECK-NEXT:    ret i1 [[RETVAL]]
3664;
3665  %cmp = fcmp uno double %a, %b
3666  %cmp1 = fcmp ogt double %a, %b
3667  %retval = or i1 %cmp, %cmp1
3668  ret i1 %retval
3669}
3670
3671define i1 @auto_gen_107_logical(double %a, double %b) {
3672; CHECK-LABEL: @auto_gen_107_logical(
3673; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
3674; CHECK-NEXT:    ret i1 [[RETVAL]]
3675;
3676  %cmp = fcmp uno double %a, %b
3677  %cmp1 = fcmp ogt double %a, %b
3678  %retval = select i1 %cmp, i1 true, i1 %cmp1
3679  ret i1 %retval
3680}
3681
3682define i1 @auto_gen_107_logical_fmf(double %a, double %b) {
3683; CHECK-LABEL: @auto_gen_107_logical_fmf(
3684; CHECK-NEXT:    [[CMP1:%.*]] = fcmp fast ogt double [[A:%.*]], [[B:%.*]]
3685; CHECK-NEXT:    ret i1 [[CMP1]]
3686;
3687  %cmp = fcmp fast uno double %a, %b
3688  %cmp1 = fcmp fast ogt double %a, %b
3689  %retval = select i1 %cmp, i1 true, i1 %cmp1
3690  ret i1 %retval
3691}
3692
3693define i1 @auto_gen_108(double %a, double %b) {
3694; CHECK-LABEL: @auto_gen_108(
3695; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
3696; CHECK-NEXT:    ret i1 [[RETVAL]]
3697;
3698  %cmp = fcmp uno double %a, %b
3699  %cmp1 = fcmp oge double %a, %b
3700  %retval = or i1 %cmp, %cmp1
3701  ret i1 %retval
3702}
3703
3704define i1 @auto_gen_108_logical(double %a, double %b) {
3705; CHECK-LABEL: @auto_gen_108_logical(
3706; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
3707; CHECK-NEXT:    ret i1 [[RETVAL]]
3708;
3709  %cmp = fcmp uno double %a, %b
3710  %cmp1 = fcmp oge double %a, %b
3711  %retval = select i1 %cmp, i1 true, i1 %cmp1
3712  ret i1 %retval
3713}
3714
3715define i1 @auto_gen_108_logical_fmf(double %a, double %b) {
3716; CHECK-LABEL: @auto_gen_108_logical_fmf(
3717; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
3718; CHECK-NEXT:    ret i1 [[RETVAL]]
3719;
3720  %cmp = fcmp uno double %a, %b
3721  %cmp1 = fcmp fast oge double %a, %b
3722  %retval = select i1 %cmp, i1 true, i1 %cmp1
3723  ret i1 %retval
3724}
3725
3726define i1 @auto_gen_109(double %a, double %b) {
3727; CHECK-LABEL: @auto_gen_109(
3728; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
3729; CHECK-NEXT:    ret i1 [[RETVAL]]
3730;
3731  %cmp = fcmp uno double %a, %b
3732  %cmp1 = fcmp olt double %a, %b
3733  %retval = or i1 %cmp, %cmp1
3734  ret i1 %retval
3735}
3736
3737define i1 @auto_gen_109_logical(double %a, double %b) {
3738; CHECK-LABEL: @auto_gen_109_logical(
3739; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
3740; CHECK-NEXT:    ret i1 [[RETVAL]]
3741;
3742  %cmp = fcmp uno double %a, %b
3743  %cmp1 = fcmp olt double %a, %b
3744  %retval = select i1 %cmp, i1 true, i1 %cmp1
3745  ret i1 %retval
3746}
3747
3748define i1 @auto_gen_109_logical_fmf(double %a, double %b) {
3749; CHECK-LABEL: @auto_gen_109_logical_fmf(
3750; CHECK-NEXT:    [[CMP1:%.*]] = fcmp fast olt double [[A:%.*]], [[B:%.*]]
3751; CHECK-NEXT:    ret i1 [[CMP1]]
3752;
3753  %cmp = fcmp fast uno double %a, %b
3754  %cmp1 = fcmp fast olt double %a, %b
3755  %retval = select i1 %cmp, i1 true, i1 %cmp1
3756  ret i1 %retval
3757}
3758
3759define i1 @auto_gen_110(double %a, double %b) {
3760; CHECK-LABEL: @auto_gen_110(
3761; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
3762; CHECK-NEXT:    ret i1 [[RETVAL]]
3763;
3764  %cmp = fcmp uno double %a, %b
3765  %cmp1 = fcmp ole double %a, %b
3766  %retval = or i1 %cmp, %cmp1
3767  ret i1 %retval
3768}
3769
3770define i1 @auto_gen_110_logical(double %a, double %b) {
3771; CHECK-LABEL: @auto_gen_110_logical(
3772; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
3773; CHECK-NEXT:    ret i1 [[RETVAL]]
3774;
3775  %cmp = fcmp uno double %a, %b
3776  %cmp1 = fcmp ole double %a, %b
3777  %retval = select i1 %cmp, i1 true, i1 %cmp1
3778  ret i1 %retval
3779}
3780
3781define i1 @auto_gen_110_logical_fmf(double %a, double %b) {
3782; CHECK-LABEL: @auto_gen_110_logical_fmf(
3783; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
3784; CHECK-NEXT:    ret i1 [[RETVAL]]
3785;
3786  %cmp = fcmp uno double %a, %b
3787  %cmp1 = fcmp fast ole double %a, %b
3788  %retval = select i1 %cmp, i1 true, i1 %cmp1
3789  ret i1 %retval
3790}
3791
3792define i1 @auto_gen_111(double %a, double %b) {
3793; CHECK-LABEL: @auto_gen_111(
3794; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
3795; CHECK-NEXT:    ret i1 [[RETVAL]]
3796;
3797  %cmp = fcmp uno double %a, %b
3798  %cmp1 = fcmp one double %a, %b
3799  %retval = or i1 %cmp, %cmp1
3800  ret i1 %retval
3801}
3802
3803define i1 @auto_gen_111_logical(double %a, double %b) {
3804; CHECK-LABEL: @auto_gen_111_logical(
3805; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
3806; CHECK-NEXT:    ret i1 [[RETVAL]]
3807;
3808  %cmp = fcmp uno double %a, %b
3809  %cmp1 = fcmp one double %a, %b
3810  %retval = select i1 %cmp, i1 true, i1 %cmp1
3811  ret i1 %retval
3812}
3813
3814define i1 @auto_gen_111_logical_fmf(double %a, double %b) {
3815; CHECK-LABEL: @auto_gen_111_logical_fmf(
3816; CHECK-NEXT:    [[CMP1:%.*]] = fcmp fast one double [[A:%.*]], [[B:%.*]]
3817; CHECK-NEXT:    ret i1 [[CMP1]]
3818;
3819  %cmp = fcmp fast uno double %a, %b
3820  %cmp1 = fcmp fast one double %a, %b
3821  %retval = select i1 %cmp, i1 true, i1 %cmp1
3822  ret i1 %retval
3823}
3824
3825define i1 @auto_gen_112(double %a, double %b) {
3826; CHECK-LABEL: @auto_gen_112(
3827; CHECK-NEXT:    ret i1 true
3828;
3829  %cmp = fcmp uno double %a, %b
3830  %cmp1 = fcmp ord double %a, %b
3831  %retval = or i1 %cmp, %cmp1
3832  ret i1 %retval
3833}
3834
3835define i1 @auto_gen_112_logical(double %a, double %b) {
3836; CHECK-LABEL: @auto_gen_112_logical(
3837; CHECK-NEXT:    ret i1 true
3838;
3839  %cmp = fcmp uno double %a, %b
3840  %cmp1 = fcmp ord double %a, %b
3841  %retval = select i1 %cmp, i1 true, i1 %cmp1
3842  ret i1 %retval
3843}
3844
3845define i1 @auto_gen_112_logical_fmf(double %a, double %b) {
3846; CHECK-LABEL: @auto_gen_112_logical_fmf(
3847; CHECK-NEXT:    ret i1 true
3848;
3849  %cmp = fcmp uno double %a, %b
3850  %cmp1 = fcmp fast ord double %a, %b
3851  %retval = select i1 %cmp, i1 true, i1 %cmp1
3852  ret i1 %retval
3853}
3854
3855define i1 @auto_gen_113(double %a, double %b) {
3856; CHECK-LABEL: @auto_gen_113(
3857; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
3858; CHECK-NEXT:    ret i1 [[RETVAL]]
3859;
3860  %cmp = fcmp uno double %a, %b
3861  %cmp1 = fcmp ueq double %a, %b
3862  %retval = or i1 %cmp, %cmp1
3863  ret i1 %retval
3864}
3865
3866define i1 @auto_gen_113_logical(double %a, double %b) {
3867; CHECK-LABEL: @auto_gen_113_logical(
3868; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ueq double [[A:%.*]], [[B:%.*]]
3869; CHECK-NEXT:    ret i1 [[RETVAL]]
3870;
3871  %cmp = fcmp uno double %a, %b
3872  %cmp1 = fcmp ueq double %a, %b
3873  %retval = select i1 %cmp, i1 true, i1 %cmp1
3874  ret i1 %retval
3875}
3876
3877define i1 @auto_gen_113_logical_fmf(double %a, double %b) {
3878; CHECK-LABEL: @auto_gen_113_logical_fmf(
3879; CHECK-NEXT:    [[CMP1:%.*]] = fcmp fast ueq double [[A:%.*]], [[B:%.*]]
3880; CHECK-NEXT:    ret i1 [[CMP1]]
3881;
3882  %cmp = fcmp fast uno double %a, %b
3883  %cmp1 = fcmp fast ueq double %a, %b
3884  %retval = select i1 %cmp, i1 true, i1 %cmp1
3885  ret i1 %retval
3886}
3887
3888define i1 @auto_gen_114(double %a, double %b) {
3889; CHECK-LABEL: @auto_gen_114(
3890; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
3891; CHECK-NEXT:    ret i1 [[RETVAL]]
3892;
3893  %cmp = fcmp uno double %a, %b
3894  %cmp1 = fcmp ugt double %a, %b
3895  %retval = or i1 %cmp, %cmp1
3896  ret i1 %retval
3897}
3898
3899define i1 @auto_gen_114_logical(double %a, double %b) {
3900; CHECK-LABEL: @auto_gen_114_logical(
3901; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
3902; CHECK-NEXT:    ret i1 [[RETVAL]]
3903;
3904  %cmp = fcmp uno double %a, %b
3905  %cmp1 = fcmp ugt double %a, %b
3906  %retval = select i1 %cmp, i1 true, i1 %cmp1
3907  ret i1 %retval
3908}
3909
3910define i1 @auto_gen_114_logical_fmf(double %a, double %b) {
3911; CHECK-LABEL: @auto_gen_114_logical_fmf(
3912; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ugt double [[A:%.*]], [[B:%.*]]
3913; CHECK-NEXT:    ret i1 [[RETVAL]]
3914;
3915  %cmp = fcmp uno double %a, %b
3916  %cmp1 = fcmp fast ugt double %a, %b
3917  %retval = select i1 %cmp, i1 true, i1 %cmp1
3918  ret i1 %retval
3919}
3920
3921define i1 @auto_gen_115(double %a, double %b) {
3922; CHECK-LABEL: @auto_gen_115(
3923; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
3924; CHECK-NEXT:    ret i1 [[RETVAL]]
3925;
3926  %cmp = fcmp uno double %a, %b
3927  %cmp1 = fcmp uge double %a, %b
3928  %retval = or i1 %cmp, %cmp1
3929  ret i1 %retval
3930}
3931
3932define i1 @auto_gen_115_logical(double %a, double %b) {
3933; CHECK-LABEL: @auto_gen_115_logical(
3934; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp uge double [[A:%.*]], [[B:%.*]]
3935; CHECK-NEXT:    ret i1 [[RETVAL]]
3936;
3937  %cmp = fcmp uno double %a, %b
3938  %cmp1 = fcmp uge double %a, %b
3939  %retval = select i1 %cmp, i1 true, i1 %cmp1
3940  ret i1 %retval
3941}
3942
3943define i1 @auto_gen_115_logical_fmf(double %a, double %b) {
3944; CHECK-LABEL: @auto_gen_115_logical_fmf(
3945; CHECK-NEXT:    [[CMP1:%.*]] = fcmp fast uge double [[A:%.*]], [[B:%.*]]
3946; CHECK-NEXT:    ret i1 [[CMP1]]
3947;
3948  %cmp = fcmp fast uno double %a, %b
3949  %cmp1 = fcmp fast uge double %a, %b
3950  %retval = select i1 %cmp, i1 true, i1 %cmp1
3951  ret i1 %retval
3952}
3953
3954define i1 @auto_gen_116(double %a, double %b) {
3955; CHECK-LABEL: @auto_gen_116(
3956; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
3957; CHECK-NEXT:    ret i1 [[RETVAL]]
3958;
3959  %cmp = fcmp uno double %a, %b
3960  %cmp1 = fcmp ult double %a, %b
3961  %retval = or i1 %cmp, %cmp1
3962  ret i1 %retval
3963}
3964
3965define i1 @auto_gen_116_logical(double %a, double %b) {
3966; CHECK-LABEL: @auto_gen_116_logical(
3967; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
3968; CHECK-NEXT:    ret i1 [[RETVAL]]
3969;
3970  %cmp = fcmp uno double %a, %b
3971  %cmp1 = fcmp ult double %a, %b
3972  %retval = select i1 %cmp, i1 true, i1 %cmp1
3973  ret i1 %retval
3974}
3975
3976define i1 @auto_gen_116_logical_fmf(double %a, double %b) {
3977; CHECK-LABEL: @auto_gen_116_logical_fmf(
3978; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]]
3979; CHECK-NEXT:    ret i1 [[RETVAL]]
3980;
3981  %cmp = fcmp uno double %a, %b
3982  %cmp1 = fcmp fast ult double %a, %b
3983  %retval = select i1 %cmp, i1 true, i1 %cmp1
3984  ret i1 %retval
3985}
3986
3987define i1 @auto_gen_117(double %a, double %b) {
3988; CHECK-LABEL: @auto_gen_117(
3989; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
3990; CHECK-NEXT:    ret i1 [[RETVAL]]
3991;
3992  %cmp = fcmp uno double %a, %b
3993  %cmp1 = fcmp ule double %a, %b
3994  %retval = or i1 %cmp, %cmp1
3995  ret i1 %retval
3996}
3997
3998define i1 @auto_gen_117_logical(double %a, double %b) {
3999; CHECK-LABEL: @auto_gen_117_logical(
4000; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp ule double [[A:%.*]], [[B:%.*]]
4001; CHECK-NEXT:    ret i1 [[RETVAL]]
4002;
4003  %cmp = fcmp uno double %a, %b
4004  %cmp1 = fcmp ule double %a, %b
4005  %retval = select i1 %cmp, i1 true, i1 %cmp1
4006  ret i1 %retval
4007}
4008
4009define i1 @auto_gen_117_logical_fmf(double %a, double %b) {
4010; CHECK-LABEL: @auto_gen_117_logical_fmf(
4011; CHECK-NEXT:    [[CMP1:%.*]] = fcmp fast ule double [[A:%.*]], [[B:%.*]]
4012; CHECK-NEXT:    ret i1 [[CMP1]]
4013;
4014  %cmp = fcmp fast uno double %a, %b
4015  %cmp1 = fcmp fast ule double %a, %b
4016  %retval = select i1 %cmp, i1 true, i1 %cmp1
4017  ret i1 %retval
4018}
4019
4020define i1 @auto_gen_118(double %a, double %b) {
4021; CHECK-LABEL: @auto_gen_118(
4022; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
4023; CHECK-NEXT:    ret i1 [[RETVAL]]
4024;
4025  %cmp = fcmp uno double %a, %b
4026  %cmp1 = fcmp une double %a, %b
4027  %retval = or i1 %cmp, %cmp1
4028  ret i1 %retval
4029}
4030
4031define i1 @auto_gen_118_logical(double %a, double %b) {
4032; CHECK-LABEL: @auto_gen_118_logical(
4033; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
4034; CHECK-NEXT:    ret i1 [[RETVAL]]
4035;
4036  %cmp = fcmp uno double %a, %b
4037  %cmp1 = fcmp une double %a, %b
4038  %retval = select i1 %cmp, i1 true, i1 %cmp1
4039  ret i1 %retval
4040}
4041
4042define i1 @auto_gen_118_logical_fmf(double %a, double %b) {
4043; CHECK-LABEL: @auto_gen_118_logical_fmf(
4044; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp une double [[A:%.*]], [[B:%.*]]
4045; CHECK-NEXT:    ret i1 [[RETVAL]]
4046;
4047  %cmp = fcmp uno double %a, %b
4048  %cmp1 = fcmp fast une double %a, %b
4049  %retval = select i1 %cmp, i1 true, i1 %cmp1
4050  ret i1 %retval
4051}
4052
4053define i1 @auto_gen_119(double %a, double %b) {
4054; CHECK-LABEL: @auto_gen_119(
4055; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
4056; CHECK-NEXT:    ret i1 [[RETVAL]]
4057;
4058  %cmp = fcmp uno double %a, %b
4059  %cmp1 = fcmp uno double %a, %b
4060  %retval = or i1 %cmp, %cmp1
4061  ret i1 %retval
4062}
4063
4064define i1 @auto_gen_119_logical(double %a, double %b) {
4065; CHECK-LABEL: @auto_gen_119_logical(
4066; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]]
4067; CHECK-NEXT:    ret i1 [[RETVAL]]
4068;
4069  %cmp = fcmp uno double %a, %b
4070  %cmp1 = fcmp uno double %a, %b
4071  %retval = select i1 %cmp, i1 true, i1 %cmp1
4072  ret i1 %retval
4073}
4074
4075define i1 @auto_gen_119_logical_fmf(double %a, double %b) {
4076; CHECK-LABEL: @auto_gen_119_logical_fmf(
4077; CHECK-NEXT:    ret i1 false
4078;
4079  %cmp = fcmp fast uno double %a, %b
4080  %cmp1 = fcmp fast uno double %a, %b
4081  %retval = select i1 %cmp, i1 true, i1 %cmp1
4082  ret i1 %retval
4083}
4084
4085define i1 @auto_gen_120(double %a, double %b) {
4086; CHECK-LABEL: @auto_gen_120(
4087; CHECK-NEXT:    ret i1 true
4088;
4089  %cmp = fcmp true double %a, %b
4090  %cmp1 = fcmp false double %a, %b
4091  %retval = or i1 %cmp, %cmp1
4092  ret i1 %retval
4093}
4094
4095define i1 @auto_gen_120_logical(double %a, double %b) {
4096; CHECK-LABEL: @auto_gen_120_logical(
4097; CHECK-NEXT:    ret i1 true
4098;
4099  %cmp = fcmp true double %a, %b
4100  %cmp1 = fcmp false double %a, %b
4101  %retval = select i1 %cmp, i1 true, i1 %cmp1
4102  ret i1 %retval
4103}
4104
4105define i1 @auto_gen_120_logical_fmf(double %a, double %b) {
4106; CHECK-LABEL: @auto_gen_120_logical_fmf(
4107; CHECK-NEXT:    ret i1 true
4108;
4109  %cmp = fcmp true double %a, %b
4110  %cmp1 = fcmp fast false double %a, %b
4111  %retval = select i1 %cmp, i1 true, i1 %cmp1
4112  ret i1 %retval
4113}
4114
4115define i1 @auto_gen_121(double %a, double %b) {
4116; CHECK-LABEL: @auto_gen_121(
4117; CHECK-NEXT:    ret i1 true
4118;
4119  %cmp = fcmp true double %a, %b
4120  %cmp1 = fcmp oeq double %a, %b
4121  %retval = or i1 %cmp, %cmp1
4122  ret i1 %retval
4123}
4124
4125define i1 @auto_gen_121_logical(double %a, double %b) {
4126; CHECK-LABEL: @auto_gen_121_logical(
4127; CHECK-NEXT:    ret i1 true
4128;
4129  %cmp = fcmp true double %a, %b
4130  %cmp1 = fcmp oeq double %a, %b
4131  %retval = select i1 %cmp, i1 true, i1 %cmp1
4132  ret i1 %retval
4133}
4134
4135define i1 @auto_gen_121_logical_fmf(double %a, double %b) {
4136; CHECK-LABEL: @auto_gen_121_logical_fmf(
4137; CHECK-NEXT:    ret i1 true
4138;
4139  %cmp = fcmp fast true double %a, %b
4140  %cmp1 = fcmp fast oeq double %a, %b
4141  %retval = select i1 %cmp, i1 true, i1 %cmp1
4142  ret i1 %retval
4143}
4144
4145define i1 @auto_gen_122(double %a, double %b) {
4146; CHECK-LABEL: @auto_gen_122(
4147; CHECK-NEXT:    ret i1 true
4148;
4149  %cmp = fcmp true double %a, %b
4150  %cmp1 = fcmp ogt double %a, %b
4151  %retval = or i1 %cmp, %cmp1
4152  ret i1 %retval
4153}
4154
4155define i1 @auto_gen_122_logical(double %a, double %b) {
4156; CHECK-LABEL: @auto_gen_122_logical(
4157; CHECK-NEXT:    ret i1 true
4158;
4159  %cmp = fcmp true double %a, %b
4160  %cmp1 = fcmp ogt double %a, %b
4161  %retval = select i1 %cmp, i1 true, i1 %cmp1
4162  ret i1 %retval
4163}
4164
4165define i1 @auto_gen_122_logical_fmf(double %a, double %b) {
4166; CHECK-LABEL: @auto_gen_122_logical_fmf(
4167; CHECK-NEXT:    ret i1 true
4168;
4169  %cmp = fcmp true double %a, %b
4170  %cmp1 = fcmp fast ogt double %a, %b
4171  %retval = select i1 %cmp, i1 true, i1 %cmp1
4172  ret i1 %retval
4173}
4174
4175define i1 @auto_gen_123(double %a, double %b) {
4176; CHECK-LABEL: @auto_gen_123(
4177; CHECK-NEXT:    ret i1 true
4178;
4179  %cmp = fcmp true double %a, %b
4180  %cmp1 = fcmp oge double %a, %b
4181  %retval = or i1 %cmp, %cmp1
4182  ret i1 %retval
4183}
4184
4185define i1 @auto_gen_123_logical(double %a, double %b) {
4186; CHECK-LABEL: @auto_gen_123_logical(
4187; CHECK-NEXT:    ret i1 true
4188;
4189  %cmp = fcmp true double %a, %b
4190  %cmp1 = fcmp oge double %a, %b
4191  %retval = select i1 %cmp, i1 true, i1 %cmp1
4192  ret i1 %retval
4193}
4194
4195define i1 @auto_gen_123_logical_fmf(double %a, double %b) {
4196; CHECK-LABEL: @auto_gen_123_logical_fmf(
4197; CHECK-NEXT:    ret i1 true
4198;
4199  %cmp = fcmp fast true double %a, %b
4200  %cmp1 = fcmp fast oge double %a, %b
4201  %retval = select i1 %cmp, i1 true, i1 %cmp1
4202  ret i1 %retval
4203}
4204
4205define i1 @auto_gen_124(double %a, double %b) {
4206; CHECK-LABEL: @auto_gen_124(
4207; CHECK-NEXT:    ret i1 true
4208;
4209  %cmp = fcmp true double %a, %b
4210  %cmp1 = fcmp olt double %a, %b
4211  %retval = or i1 %cmp, %cmp1
4212  ret i1 %retval
4213}
4214
4215define i1 @auto_gen_124_logical(double %a, double %b) {
4216; CHECK-LABEL: @auto_gen_124_logical(
4217; CHECK-NEXT:    ret i1 true
4218;
4219  %cmp = fcmp true double %a, %b
4220  %cmp1 = fcmp olt double %a, %b
4221  %retval = select i1 %cmp, i1 true, i1 %cmp1
4222  ret i1 %retval
4223}
4224
4225define i1 @auto_gen_124_logical_fmf(double %a, double %b) {
4226; CHECK-LABEL: @auto_gen_124_logical_fmf(
4227; CHECK-NEXT:    ret i1 true
4228;
4229  %cmp = fcmp true double %a, %b
4230  %cmp1 = fcmp fast olt double %a, %b
4231  %retval = select i1 %cmp, i1 true, i1 %cmp1
4232  ret i1 %retval
4233}
4234
4235define i1 @auto_gen_125(double %a, double %b) {
4236; CHECK-LABEL: @auto_gen_125(
4237; CHECK-NEXT:    ret i1 true
4238;
4239  %cmp = fcmp true double %a, %b
4240  %cmp1 = fcmp ole double %a, %b
4241  %retval = or i1 %cmp, %cmp1
4242  ret i1 %retval
4243}
4244
4245define i1 @auto_gen_125_logical(double %a, double %b) {
4246; CHECK-LABEL: @auto_gen_125_logical(
4247; CHECK-NEXT:    ret i1 true
4248;
4249  %cmp = fcmp true double %a, %b
4250  %cmp1 = fcmp ole double %a, %b
4251  %retval = select i1 %cmp, i1 true, i1 %cmp1
4252  ret i1 %retval
4253}
4254
4255define i1 @auto_gen_125_logical_fmf(double %a, double %b) {
4256; CHECK-LABEL: @auto_gen_125_logical_fmf(
4257; CHECK-NEXT:    ret i1 true
4258;
4259  %cmp = fcmp fast true double %a, %b
4260  %cmp1 = fcmp fast ole double %a, %b
4261  %retval = select i1 %cmp, i1 true, i1 %cmp1
4262  ret i1 %retval
4263}
4264
4265define i1 @auto_gen_126(double %a, double %b) {
4266; CHECK-LABEL: @auto_gen_126(
4267; CHECK-NEXT:    ret i1 true
4268;
4269  %cmp = fcmp true double %a, %b
4270  %cmp1 = fcmp one double %a, %b
4271  %retval = or i1 %cmp, %cmp1
4272  ret i1 %retval
4273}
4274
4275define i1 @auto_gen_126_logical(double %a, double %b) {
4276; CHECK-LABEL: @auto_gen_126_logical(
4277; CHECK-NEXT:    ret i1 true
4278;
4279  %cmp = fcmp true double %a, %b
4280  %cmp1 = fcmp one double %a, %b
4281  %retval = select i1 %cmp, i1 true, i1 %cmp1
4282  ret i1 %retval
4283}
4284
4285define i1 @auto_gen_126_logical_fmf(double %a, double %b) {
4286; CHECK-LABEL: @auto_gen_126_logical_fmf(
4287; CHECK-NEXT:    ret i1 true
4288;
4289  %cmp = fcmp true double %a, %b
4290  %cmp1 = fcmp fast one double %a, %b
4291  %retval = select i1 %cmp, i1 true, i1 %cmp1
4292  ret i1 %retval
4293}
4294
4295define i1 @auto_gen_127(double %a, double %b) {
4296; CHECK-LABEL: @auto_gen_127(
4297; CHECK-NEXT:    ret i1 true
4298;
4299  %cmp = fcmp true double %a, %b
4300  %cmp1 = fcmp ord double %a, %b
4301  %retval = or i1 %cmp, %cmp1
4302  ret i1 %retval
4303}
4304
4305define i1 @auto_gen_127_logical(double %a, double %b) {
4306; CHECK-LABEL: @auto_gen_127_logical(
4307; CHECK-NEXT:    ret i1 true
4308;
4309  %cmp = fcmp true double %a, %b
4310  %cmp1 = fcmp ord double %a, %b
4311  %retval = select i1 %cmp, i1 true, i1 %cmp1
4312  ret i1 %retval
4313}
4314
4315define i1 @auto_gen_127_logical_fmf(double %a, double %b) {
4316; CHECK-LABEL: @auto_gen_127_logical_fmf(
4317; CHECK-NEXT:    ret i1 true
4318;
4319  %cmp = fcmp fast true double %a, %b
4320  %cmp1 = fcmp fast ord double %a, %b
4321  %retval = select i1 %cmp, i1 true, i1 %cmp1
4322  ret i1 %retval
4323}
4324
4325define i1 @auto_gen_128(double %a, double %b) {
4326; CHECK-LABEL: @auto_gen_128(
4327; CHECK-NEXT:    ret i1 true
4328;
4329  %cmp = fcmp true double %a, %b
4330  %cmp1 = fcmp ueq double %a, %b
4331  %retval = or i1 %cmp, %cmp1
4332  ret i1 %retval
4333}
4334
4335define i1 @auto_gen_128_logical(double %a, double %b) {
4336; CHECK-LABEL: @auto_gen_128_logical(
4337; CHECK-NEXT:    ret i1 true
4338;
4339  %cmp = fcmp true double %a, %b
4340  %cmp1 = fcmp ueq double %a, %b
4341  %retval = select i1 %cmp, i1 true, i1 %cmp1
4342  ret i1 %retval
4343}
4344
4345define i1 @auto_gen_128_logical_fmf(double %a, double %b) {
4346; CHECK-LABEL: @auto_gen_128_logical_fmf(
4347; CHECK-NEXT:    ret i1 true
4348;
4349  %cmp = fcmp true double %a, %b
4350  %cmp1 = fcmp fast ueq double %a, %b
4351  %retval = select i1 %cmp, i1 true, i1 %cmp1
4352  ret i1 %retval
4353}
4354
4355define i1 @auto_gen_129(double %a, double %b) {
4356; CHECK-LABEL: @auto_gen_129(
4357; CHECK-NEXT:    ret i1 true
4358;
4359  %cmp = fcmp true double %a, %b
4360  %cmp1 = fcmp ugt double %a, %b
4361  %retval = or i1 %cmp, %cmp1
4362  ret i1 %retval
4363}
4364
4365define i1 @auto_gen_129_logical(double %a, double %b) {
4366; CHECK-LABEL: @auto_gen_129_logical(
4367; CHECK-NEXT:    ret i1 true
4368;
4369  %cmp = fcmp true double %a, %b
4370  %cmp1 = fcmp ugt double %a, %b
4371  %retval = select i1 %cmp, i1 true, i1 %cmp1
4372  ret i1 %retval
4373}
4374
4375define i1 @auto_gen_129_logical_fmf(double %a, double %b) {
4376; CHECK-LABEL: @auto_gen_129_logical_fmf(
4377; CHECK-NEXT:    ret i1 true
4378;
4379  %cmp = fcmp fast true double %a, %b
4380  %cmp1 = fcmp fast ugt double %a, %b
4381  %retval = select i1 %cmp, i1 true, i1 %cmp1
4382  ret i1 %retval
4383}
4384
4385define i1 @auto_gen_130(double %a, double %b) {
4386; CHECK-LABEL: @auto_gen_130(
4387; CHECK-NEXT:    ret i1 true
4388;
4389  %cmp = fcmp true double %a, %b
4390  %cmp1 = fcmp uge double %a, %b
4391  %retval = or i1 %cmp, %cmp1
4392  ret i1 %retval
4393}
4394
4395define i1 @auto_gen_130_logical(double %a, double %b) {
4396; CHECK-LABEL: @auto_gen_130_logical(
4397; CHECK-NEXT:    ret i1 true
4398;
4399  %cmp = fcmp true double %a, %b
4400  %cmp1 = fcmp uge double %a, %b
4401  %retval = select i1 %cmp, i1 true, i1 %cmp1
4402  ret i1 %retval
4403}
4404
4405define i1 @auto_gen_130_logical_fmf(double %a, double %b) {
4406; CHECK-LABEL: @auto_gen_130_logical_fmf(
4407; CHECK-NEXT:    ret i1 true
4408;
4409  %cmp = fcmp true double %a, %b
4410  %cmp1 = fcmp fast uge double %a, %b
4411  %retval = select i1 %cmp, i1 true, i1 %cmp1
4412  ret i1 %retval
4413}
4414
4415define i1 @auto_gen_131(double %a, double %b) {
4416; CHECK-LABEL: @auto_gen_131(
4417; CHECK-NEXT:    ret i1 true
4418;
4419  %cmp = fcmp true double %a, %b
4420  %cmp1 = fcmp ult double %a, %b
4421  %retval = or i1 %cmp, %cmp1
4422  ret i1 %retval
4423}
4424
4425define i1 @auto_gen_131_logical(double %a, double %b) {
4426; CHECK-LABEL: @auto_gen_131_logical(
4427; CHECK-NEXT:    ret i1 true
4428;
4429  %cmp = fcmp true double %a, %b
4430  %cmp1 = fcmp ult double %a, %b
4431  %retval = select i1 %cmp, i1 true, i1 %cmp1
4432  ret i1 %retval
4433}
4434
4435define i1 @auto_gen_131_logical_fmf(double %a, double %b) {
4436; CHECK-LABEL: @auto_gen_131_logical_fmf(
4437; CHECK-NEXT:    ret i1 true
4438;
4439  %cmp = fcmp fast true double %a, %b
4440  %cmp1 = fcmp fast ult double %a, %b
4441  %retval = select i1 %cmp, i1 true, i1 %cmp1
4442  ret i1 %retval
4443}
4444
4445define i1 @auto_gen_132(double %a, double %b) {
4446; CHECK-LABEL: @auto_gen_132(
4447; CHECK-NEXT:    ret i1 true
4448;
4449  %cmp = fcmp true double %a, %b
4450  %cmp1 = fcmp ule double %a, %b
4451  %retval = or i1 %cmp, %cmp1
4452  ret i1 %retval
4453}
4454
4455define i1 @auto_gen_132_logical(double %a, double %b) {
4456; CHECK-LABEL: @auto_gen_132_logical(
4457; CHECK-NEXT:    ret i1 true
4458;
4459  %cmp = fcmp true double %a, %b
4460  %cmp1 = fcmp ule double %a, %b
4461  %retval = select i1 %cmp, i1 true, i1 %cmp1
4462  ret i1 %retval
4463}
4464
4465define i1 @auto_gen_132_logical_fmf(double %a, double %b) {
4466; CHECK-LABEL: @auto_gen_132_logical_fmf(
4467; CHECK-NEXT:    ret i1 true
4468;
4469  %cmp = fcmp true double %a, %b
4470  %cmp1 = fcmp fast ule double %a, %b
4471  %retval = select i1 %cmp, i1 true, i1 %cmp1
4472  ret i1 %retval
4473}
4474
4475define i1 @auto_gen_133(double %a, double %b) {
4476; CHECK-LABEL: @auto_gen_133(
4477; CHECK-NEXT:    ret i1 true
4478;
4479  %cmp = fcmp true double %a, %b
4480  %cmp1 = fcmp une double %a, %b
4481  %retval = or i1 %cmp, %cmp1
4482  ret i1 %retval
4483}
4484
4485define i1 @auto_gen_133_logical(double %a, double %b) {
4486; CHECK-LABEL: @auto_gen_133_logical(
4487; CHECK-NEXT:    ret i1 true
4488;
4489  %cmp = fcmp true double %a, %b
4490  %cmp1 = fcmp une double %a, %b
4491  %retval = select i1 %cmp, i1 true, i1 %cmp1
4492  ret i1 %retval
4493}
4494
4495define i1 @auto_gen_133_logical_fmf(double %a, double %b) {
4496; CHECK-LABEL: @auto_gen_133_logical_fmf(
4497; CHECK-NEXT:    ret i1 true
4498;
4499  %cmp = fcmp fast true double %a, %b
4500  %cmp1 = fcmp fast une double %a, %b
4501  %retval = select i1 %cmp, i1 true, i1 %cmp1
4502  ret i1 %retval
4503}
4504
4505define i1 @auto_gen_134(double %a, double %b) {
4506; CHECK-LABEL: @auto_gen_134(
4507; CHECK-NEXT:    ret i1 true
4508;
4509  %cmp = fcmp true double %a, %b
4510  %cmp1 = fcmp uno double %a, %b
4511  %retval = or i1 %cmp, %cmp1
4512  ret i1 %retval
4513}
4514
4515define i1 @auto_gen_134_logical(double %a, double %b) {
4516; CHECK-LABEL: @auto_gen_134_logical(
4517; CHECK-NEXT:    ret i1 true
4518;
4519  %cmp = fcmp true double %a, %b
4520  %cmp1 = fcmp uno double %a, %b
4521  %retval = select i1 %cmp, i1 true, i1 %cmp1
4522  ret i1 %retval
4523}
4524
4525define i1 @auto_gen_134_logical_fmf(double %a, double %b) {
4526; CHECK-LABEL: @auto_gen_134_logical_fmf(
4527; CHECK-NEXT:    ret i1 true
4528;
4529  %cmp = fcmp true double %a, %b
4530  %cmp1 = fcmp fast uno double %a, %b
4531  %retval = select i1 %cmp, i1 true, i1 %cmp1
4532  ret i1 %retval
4533}
4534
4535define i1 @auto_gen_135(double %a, double %b) {
4536; CHECK-LABEL: @auto_gen_135(
4537; CHECK-NEXT:    ret i1 true
4538;
4539  %cmp = fcmp true double %a, %b
4540  %cmp1 = fcmp true double %a, %b
4541  %retval = or i1 %cmp, %cmp1
4542  ret i1 %retval
4543}
4544
4545define i1 @auto_gen_135_logical(double %a, double %b) {
4546; CHECK-LABEL: @auto_gen_135_logical(
4547; CHECK-NEXT:    ret i1 true
4548;
4549  %cmp = fcmp true double %a, %b
4550  %cmp1 = fcmp true double %a, %b
4551  %retval = select i1 %cmp, i1 true, i1 %cmp1
4552  ret i1 %retval
4553}
4554
4555define i1 @auto_gen_135_logical_fmf(double %a, double %b) {
4556; CHECK-LABEL: @auto_gen_135_logical_fmf(
4557; CHECK-NEXT:    ret i1 true
4558;
4559  %cmp = fcmp fast true double %a, %b
4560  %cmp1 = fcmp fast true double %a, %b
4561  %retval = select i1 %cmp, i1 true, i1 %cmp1
4562  ret i1 %retval
4563}
4564
4565define i1 @intersect_fmf_1(double %a, double %b) {
4566; CHECK-LABEL: @intersect_fmf_1(
4567; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp fast one double [[A:%.*]], [[B:%.*]]
4568; CHECK-NEXT:    ret i1 [[RETVAL]]
4569;
4570  %cmp = fcmp fast olt double %a, %b
4571  %cmp1 = fcmp fast ogt double %a, %b
4572  %retval = or i1 %cmp, %cmp1
4573  ret i1 %retval
4574}
4575
4576define i1 @intersect_fmf_2(double %a, double %b) {
4577; CHECK-LABEL: @intersect_fmf_2(
4578; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
4579; CHECK-NEXT:    ret i1 [[RETVAL]]
4580;
4581  %cmp = fcmp fast olt double %a, %b
4582  %cmp1 = fcmp ogt double %a, %b
4583  %retval = or i1 %cmp, %cmp1
4584  ret i1 %retval
4585}
4586
4587define i1 @intersect_fmf_3(double %a, double %b) {
4588; CHECK-LABEL: @intersect_fmf_3(
4589; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
4590; CHECK-NEXT:    ret i1 [[RETVAL]]
4591;
4592  %cmp = fcmp olt double %a, %b
4593  %cmp1 = fcmp fast ogt double %a, %b
4594  %retval = or i1 %cmp, %cmp1
4595  ret i1 %retval
4596}
4597
4598define i1 @intersect_fmf_4(double %a, double %b) {
4599; CHECK-LABEL: @intersect_fmf_4(
4600; CHECK-NEXT:    [[RETVAL:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
4601; CHECK-NEXT:    ret i1 [[RETVAL]]
4602;
4603  %cmp = fcmp ninf olt double %a, %b
4604  %cmp1 = fcmp nnan ogt double %a, %b
4605  %retval = or i1 %cmp, %cmp1
4606  ret i1 %retval
4607}
4608
4609define i1 @or_fcmp_reassoc1(i1 %x, double %a, double %b) {
4610; CHECK-LABEL: @or_fcmp_reassoc1(
4611; CHECK-NEXT:    [[OR:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
4612; CHECK-NEXT:    [[RETVAL:%.*]] = or i1 [[OR]], [[CMP1:%.*]]
4613; CHECK-NEXT:    ret i1 [[RETVAL]]
4614;
4615  %cmp = fcmp olt double %a, %b
4616  %cmp1 = fcmp ogt double %a, %b
4617  %or = or i1 %cmp, %x
4618  %retval = or i1 %or, %cmp1
4619  ret i1 %retval
4620}
4621
4622define i1 @or_fcmp_reassoc2(i1 %x, double %a, double %b) {
4623; CHECK-LABEL: @or_fcmp_reassoc2(
4624; CHECK-NEXT:    [[TMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
4625; CHECK-NEXT:    [[RETVAL:%.*]] = or i1 [[X:%.*]], [[TMP1]]
4626; CHECK-NEXT:    ret i1 [[RETVAL]]
4627;
4628  %cmp = fcmp olt double %a, %b
4629  %cmp1 = fcmp ogt double %a, %b
4630  %or = or i1 %x, %cmp
4631  %retval = or i1 %or, %cmp1
4632  ret i1 %retval
4633}
4634
4635define i1 @or_fcmp_reassoc3(i1 %x, double %a, double %b) {
4636; CHECK-LABEL: @or_fcmp_reassoc3(
4637; CHECK-NEXT:    [[TMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
4638; CHECK-NEXT:    [[RETVAL:%.*]] = or i1 [[TMP1]], [[X:%.*]]
4639; CHECK-NEXT:    ret i1 [[RETVAL]]
4640;
4641  %cmp = fcmp olt double %a, %b
4642  %cmp1 = fcmp ogt double %a, %b
4643  %or = or i1 %cmp, %x
4644  %retval = or i1 %cmp1, %or
4645  ret i1 %retval
4646}
4647
4648define i1 @or_fcmp_reassoc4(i1 %x, double %a, double %b) {
4649; CHECK-LABEL: @or_fcmp_reassoc4(
4650; CHECK-NEXT:    [[TMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]]
4651; CHECK-NEXT:    [[RETVAL:%.*]] = or i1 [[X:%.*]], [[TMP1]]
4652; CHECK-NEXT:    ret i1 [[RETVAL]]
4653;
4654  %cmp = fcmp olt double %a, %b
4655  %cmp1 = fcmp ogt double %a, %b
4656  %or = or i1 %x, %cmp
4657  %retval = or i1 %cmp1, %or
4658  ret i1 %retval
4659}
4660