1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2 ; RUN: opt < %s -passes=instcombine -S | FileCheck %s
4 define 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]]
9 %cmp1 = fcmp uno double %x, 0.0
10 %cmp2 = fcmp uno double %y, 0.0
11 %or = or i1 %cmp1, %cmp2
15 ; TODO: this can be fixed by freezing %y
16 define i1 @PR1738_logical(double %x, double %y) {
17 ; CHECK-LABEL: @PR1738_logical(
18 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp uno double [[X:%.*]], 0.000000e+00
19 ; CHECK-NEXT: [[CMP2:%.*]] = fcmp uno double [[Y:%.*]], 0.000000e+00
20 ; CHECK-NEXT: [[OR:%.*]] = select i1 [[CMP1]], i1 true, i1 [[CMP2]]
21 ; CHECK-NEXT: ret i1 [[OR]]
23 %cmp1 = fcmp uno double %x, 0.0
24 %cmp2 = fcmp uno double %y, 0.0
25 %or = select i1 %cmp1, i1 true, i1 %cmp2
29 define <2 x i1> @PR1738_vec_undef(<2 x double> %x, <2 x double> %y) {
30 ; CHECK-LABEL: @PR1738_vec_undef(
31 ; CHECK-NEXT: [[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]]
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
42 define <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]]
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
53 define 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 [[TMP1]], [[UNO1]]
58 ; CHECK-NEXT: ret i1 [[R]]
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
68 ; TODO: this can be fixed by freezing %c and %d
69 define 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]]
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
86 define 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 [[TMP1]], [[UNO1]]
91 ; CHECK-NEXT: ret i1 [[R]]
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
101 ; TODO: this can be fixed by freezing %c and %d
102 define 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]]
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
119 define <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]]
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
134 define <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]]
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
147 define <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]]
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
162 define <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]]
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
175 define 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]]
180 %cmp1 = fcmp uno float %x, 1.0
181 %cmp2 = fcmp uno float %y, 2.0
182 %or = or i1 %cmp1, %cmp2
186 ; TODO: this can be fixed by freezing %y
187 define 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]]
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
200 define <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]]
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
211 define i1 @auto_gen_0(double %a, double %b) {
212 ; CHECK-LABEL: @auto_gen_0(
213 ; CHECK-NEXT: ret i1 false
215 %cmp = fcmp false double %a, %b
216 %cmp1 = fcmp false double %a, %b
217 %retval = or i1 %cmp, %cmp1
221 define i1 @auto_gen_0_logical(double %a, double %b) {
222 ; CHECK-LABEL: @auto_gen_0_logical(
223 ; CHECK-NEXT: ret i1 false
225 %cmp = fcmp false double %a, %b
226 %cmp1 = fcmp false double %a, %b
227 %retval = select i1 %cmp, i1 true, i1 %cmp1
231 define i1 @auto_gen_0_logical_fmf(double %a, double %b) {
232 ; CHECK-LABEL: @auto_gen_0_logical_fmf(
233 ; CHECK-NEXT: ret i1 false
235 %cmp = fcmp false double %a, %b
236 %cmp1 = fcmp fast false double %a, %b
237 %retval = select i1 %cmp, i1 true, i1 %cmp1
241 define 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]]
246 %cmp = fcmp oeq double %a, %b
247 %cmp1 = fcmp false double %a, %b
248 %retval = or i1 %cmp, %cmp1
252 define 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]]
257 %cmp = fcmp oeq double %a, %b
258 %cmp1 = fcmp false double %a, %b
259 %retval = select i1 %cmp, i1 true, i1 %cmp1
263 define 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]]
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
274 define 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]]
279 %cmp = fcmp oeq double %a, %b
280 %cmp1 = fcmp oeq double %a, %b
281 %retval = or i1 %cmp, %cmp1
285 define 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]]
290 %cmp = fcmp oeq double %a, %b
291 %cmp1 = fcmp oeq double %a, %b
292 %retval = select i1 %cmp, i1 true, i1 %cmp1
296 define 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]]
301 %cmp = fcmp oeq double %a, %b
302 %cmp1 = fcmp fast oeq double %a, %b
303 %retval = select i1 %cmp, i1 true, i1 %cmp1
307 define 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]]
312 %cmp = fcmp ogt double %a, %b
313 %cmp1 = fcmp false double %a, %b
314 %retval = or i1 %cmp, %cmp1
318 define 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]]
323 %cmp = fcmp ogt double %a, %b
324 %cmp1 = fcmp false double %a, %b
325 %retval = select i1 %cmp, i1 true, i1 %cmp1
329 define 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]]
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
340 define 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]]
345 %cmp = fcmp ogt double %a, %b
346 %cmp1 = fcmp oeq double %a, %b
347 %retval = or i1 %cmp, %cmp1
351 define 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]]
356 %cmp = fcmp ogt double %a, %b
357 %cmp1 = fcmp oeq double %a, %b
358 %retval = select i1 %cmp, i1 true, i1 %cmp1
362 define 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]]
367 %cmp = fcmp ogt double %a, %b
368 %cmp1 = fcmp fast oeq double %a, %b
369 %retval = select i1 %cmp, i1 true, i1 %cmp1
373 define 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]]
378 %cmp = fcmp ogt double %a, %b
379 %cmp1 = fcmp ogt double %a, %b
380 %retval = or i1 %cmp, %cmp1
384 define 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]]
389 %cmp = fcmp ogt double %a, %b
390 %cmp1 = fcmp ogt double %a, %b
391 %retval = select i1 %cmp, i1 true, i1 %cmp1
395 define 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]]
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
406 define 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]]
411 %cmp = fcmp oge double %a, %b
412 %cmp1 = fcmp false double %a, %b
413 %retval = or i1 %cmp, %cmp1
417 define 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]]
422 %cmp = fcmp oge double %a, %b
423 %cmp1 = fcmp false double %a, %b
424 %retval = select i1 %cmp, i1 true, i1 %cmp1
428 define 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]]
433 %cmp = fcmp oge double %a, %b
434 %cmp1 = fcmp fast false double %a, %b
435 %retval = select i1 %cmp, i1 true, i1 %cmp1
439 define 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]]
444 %cmp = fcmp oge double %a, %b
445 %cmp1 = fcmp oeq double %a, %b
446 %retval = or i1 %cmp, %cmp1
450 define 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]]
455 %cmp = fcmp oge double %a, %b
456 %cmp1 = fcmp oeq double %a, %b
457 %retval = select i1 %cmp, i1 true, i1 %cmp1
461 define 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]]
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
472 define 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]]
477 %cmp = fcmp oge double %a, %b
478 %cmp1 = fcmp ogt double %a, %b
479 %retval = or i1 %cmp, %cmp1
483 define 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]]
488 %cmp = fcmp oge double %a, %b
489 %cmp1 = fcmp ogt double %a, %b
490 %retval = select i1 %cmp, i1 true, i1 %cmp1
494 define 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]]
499 %cmp = fcmp oge double %a, %b
500 %cmp1 = fcmp fast ogt double %a, %b
501 %retval = select i1 %cmp, i1 true, i1 %cmp1
505 define 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]]
510 %cmp = fcmp oge double %a, %b
511 %cmp1 = fcmp oge double %a, %b
512 %retval = or i1 %cmp, %cmp1
516 define 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]]
521 %cmp = fcmp oge double %a, %b
522 %cmp1 = fcmp oge double %a, %b
523 %retval = select i1 %cmp, i1 true, i1 %cmp1
527 define 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]]
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
538 define 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]]
543 %cmp = fcmp olt double %a, %b
544 %cmp1 = fcmp false double %a, %b
545 %retval = or i1 %cmp, %cmp1
549 define 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]]
554 %cmp = fcmp olt double %a, %b
555 %cmp1 = fcmp false double %a, %b
556 %retval = select i1 %cmp, i1 true, i1 %cmp1
560 define 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]]
565 %cmp = fcmp olt double %a, %b
566 %cmp1 = fcmp fast false double %a, %b
567 %retval = select i1 %cmp, i1 true, i1 %cmp1
571 define 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]]
576 %cmp = fcmp olt double %a, %b
577 %cmp1 = fcmp oeq double %a, %b
578 %retval = or i1 %cmp, %cmp1
582 define 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]]
587 %cmp = fcmp olt double %a, %b
588 %cmp1 = fcmp oeq double %a, %b
589 %retval = select i1 %cmp, i1 true, i1 %cmp1
593 define 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]]
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
604 define 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]]
609 %cmp = fcmp olt double %a, %b
610 %cmp1 = fcmp ogt double %a, %b
611 %retval = or i1 %cmp, %cmp1
615 define 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]]
620 %cmp = fcmp olt double %a, %b
621 %cmp1 = fcmp ogt double %a, %b
622 %retval = select i1 %cmp, i1 true, i1 %cmp1
626 define 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]]
631 %cmp = fcmp olt double %a, %b
632 %cmp1 = fcmp fast ogt double %a, %b
633 %retval = select i1 %cmp, i1 true, i1 %cmp1
637 define 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]]
642 %cmp = fcmp olt double %a, %b
643 %cmp1 = fcmp oge double %a, %b
644 %retval = or i1 %cmp, %cmp1
648 define 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]]
653 %cmp = fcmp olt double %a, %b
654 %cmp1 = fcmp oge double %a, %b
655 %retval = select i1 %cmp, i1 true, i1 %cmp1
659 define i1 @auto_gen_13_logical_fmf(double %a, double %b) {
660 ; CHECK-LABEL: @auto_gen_13_logical_fmf(
661 ; CHECK-NEXT: ret i1 true
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
669 define 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]]
674 %cmp = fcmp olt double %a, %b
675 %cmp1 = fcmp olt double %a, %b
676 %retval = or i1 %cmp, %cmp1
680 define 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]]
685 %cmp = fcmp olt double %a, %b
686 %cmp1 = fcmp olt double %a, %b
687 %retval = select i1 %cmp, i1 true, i1 %cmp1
691 define 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]]
696 %cmp = fcmp olt double %a, %b
697 %cmp1 = fcmp fast olt double %a, %b
698 %retval = select i1 %cmp, i1 true, i1 %cmp1
702 define 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]]
707 %cmp = fcmp ole double %a, %b
708 %cmp1 = fcmp false double %a, %b
709 %retval = or i1 %cmp, %cmp1
713 define 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]]
718 %cmp = fcmp ole double %a, %b
719 %cmp1 = fcmp false double %a, %b
720 %retval = select i1 %cmp, i1 true, i1 %cmp1
724 define 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]]
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
735 define 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]]
740 %cmp = fcmp ole double %a, %b
741 %cmp1 = fcmp oeq double %a, %b
742 %retval = or i1 %cmp, %cmp1
746 define 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]]
751 %cmp = fcmp ole double %a, %b
752 %cmp1 = fcmp oeq double %a, %b
753 %retval = select i1 %cmp, i1 true, i1 %cmp1
757 define 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]]
762 %cmp = fcmp ole double %a, %b
763 %cmp1 = fcmp fast oeq double %a, %b
764 %retval = select i1 %cmp, i1 true, i1 %cmp1
768 define 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]]
773 %cmp = fcmp ole double %a, %b
774 %cmp1 = fcmp ogt double %a, %b
775 %retval = or i1 %cmp, %cmp1
779 define 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]]
784 %cmp = fcmp ole double %a, %b
785 %cmp1 = fcmp ogt double %a, %b
786 %retval = select i1 %cmp, i1 true, i1 %cmp1
790 define i1 @auto_gen_17_logical_fmf(double %a, double %b) {
791 ; CHECK-LABEL: @auto_gen_17_logical_fmf(
792 ; CHECK-NEXT: ret i1 true
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
800 define 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]]
805 %cmp = fcmp ole double %a, %b
806 %cmp1 = fcmp oge double %a, %b
807 %retval = or i1 %cmp, %cmp1
811 define 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]]
816 %cmp = fcmp ole double %a, %b
817 %cmp1 = fcmp oge double %a, %b
818 %retval = select i1 %cmp, i1 true, i1 %cmp1
822 define 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]]
827 %cmp = fcmp ole double %a, %b
828 %cmp1 = fcmp fast oge double %a, %b
829 %retval = select i1 %cmp, i1 true, i1 %cmp1
833 define 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]]
838 %cmp = fcmp ole double %a, %b
839 %cmp1 = fcmp olt double %a, %b
840 %retval = or i1 %cmp, %cmp1
844 define 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]]
849 %cmp = fcmp ole double %a, %b
850 %cmp1 = fcmp olt double %a, %b
851 %retval = select i1 %cmp, i1 true, i1 %cmp1
855 define 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]]
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
866 define 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]]
871 %cmp = fcmp ole double %a, %b
872 %cmp1 = fcmp ole double %a, %b
873 %retval = or i1 %cmp, %cmp1
877 define 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]]
882 %cmp = fcmp ole double %a, %b
883 %cmp1 = fcmp ole double %a, %b
884 %retval = select i1 %cmp, i1 true, i1 %cmp1
888 define 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]]
893 %cmp = fcmp ole double %a, %b
894 %cmp1 = fcmp fast ole double %a, %b
895 %retval = select i1 %cmp, i1 true, i1 %cmp1
899 define 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]]
904 %cmp = fcmp one double %a, %b
905 %cmp1 = fcmp false double %a, %b
906 %retval = or i1 %cmp, %cmp1
910 define 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]]
915 %cmp = fcmp one double %a, %b
916 %cmp1 = fcmp false double %a, %b
917 %retval = select i1 %cmp, i1 true, i1 %cmp1
921 define 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]]
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
932 define 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]]
937 %cmp = fcmp one double %a, %b
938 %cmp1 = fcmp oeq double %a, %b
939 %retval = or i1 %cmp, %cmp1
943 define 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]]
948 %cmp = fcmp one double %a, %b
949 %cmp1 = fcmp oeq double %a, %b
950 %retval = select i1 %cmp, i1 true, i1 %cmp1
954 define 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]]
959 %cmp = fcmp one double %a, %b
960 %cmp1 = fcmp fast oeq double %a, %b
961 %retval = select i1 %cmp, i1 true, i1 %cmp1
965 define 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]]
970 %cmp = fcmp one double %a, %b
971 %cmp1 = fcmp ogt double %a, %b
972 %retval = or i1 %cmp, %cmp1
976 define 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]]
981 %cmp = fcmp one double %a, %b
982 %cmp1 = fcmp ogt double %a, %b
983 %retval = select i1 %cmp, i1 true, i1 %cmp1
987 define 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]]
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
998 define 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]]
1003 %cmp = fcmp one double %a, %b
1004 %cmp1 = fcmp oge double %a, %b
1005 %retval = or i1 %cmp, %cmp1
1009 define 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]]
1014 %cmp = fcmp one double %a, %b
1015 %cmp1 = fcmp oge double %a, %b
1016 %retval = select i1 %cmp, i1 true, i1 %cmp1
1020 define 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]]
1025 %cmp = fcmp one double %a, %b
1026 %cmp1 = fcmp fast oge double %a, %b
1027 %retval = select i1 %cmp, i1 true, i1 %cmp1
1031 define 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]]
1036 %cmp = fcmp one double %a, %b
1037 %cmp1 = fcmp olt double %a, %b
1038 %retval = or i1 %cmp, %cmp1
1042 define 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]]
1047 %cmp = fcmp one double %a, %b
1048 %cmp1 = fcmp olt double %a, %b
1049 %retval = select i1 %cmp, i1 true, i1 %cmp1
1053 define 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]]
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
1064 define 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]]
1069 %cmp = fcmp one double %a, %b
1070 %cmp1 = fcmp ole double %a, %b
1071 %retval = or i1 %cmp, %cmp1
1075 define 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]]
1080 %cmp = fcmp one double %a, %b
1081 %cmp1 = fcmp ole double %a, %b
1082 %retval = select i1 %cmp, i1 true, i1 %cmp1
1086 define 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]]
1091 %cmp = fcmp one double %a, %b
1092 %cmp1 = fcmp fast ole double %a, %b
1093 %retval = select i1 %cmp, i1 true, i1 %cmp1
1097 define 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]]
1102 %cmp = fcmp one double %a, %b
1103 %cmp1 = fcmp one double %a, %b
1104 %retval = or i1 %cmp, %cmp1
1108 define 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]]
1113 %cmp = fcmp one double %a, %b
1114 %cmp1 = fcmp one double %a, %b
1115 %retval = select i1 %cmp, i1 true, i1 %cmp1
1119 define 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]]
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
1130 define 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]]
1135 %cmp = fcmp ord double %a, %b
1136 %cmp1 = fcmp false double %a, %b
1137 %retval = or i1 %cmp, %cmp1
1141 define 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]]
1146 %cmp = fcmp ord double %a, %b
1147 %cmp1 = fcmp false double %a, %b
1148 %retval = select i1 %cmp, i1 true, i1 %cmp1
1152 define 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]]
1157 %cmp = fcmp ord double %a, %b
1158 %cmp1 = fcmp fast false double %a, %b
1159 %retval = select i1 %cmp, i1 true, i1 %cmp1
1163 define 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]]
1168 %cmp = fcmp ord double %a, %b
1169 %cmp1 = fcmp oeq double %a, %b
1170 %retval = or i1 %cmp, %cmp1
1174 define 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]]
1179 %cmp = fcmp ord double %a, %b
1180 %cmp1 = fcmp oeq double %a, %b
1181 %retval = select i1 %cmp, i1 true, i1 %cmp1
1185 define i1 @auto_gen_29_logical_fmf(double %a, double %b) {
1186 ; CHECK-LABEL: @auto_gen_29_logical_fmf(
1187 ; CHECK-NEXT: ret i1 true
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
1195 define 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]]
1200 %cmp = fcmp ord double %a, %b
1201 %cmp1 = fcmp ogt double %a, %b
1202 %retval = or i1 %cmp, %cmp1
1206 define 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]]
1211 %cmp = fcmp ord double %a, %b
1212 %cmp1 = fcmp ogt double %a, %b
1213 %retval = select i1 %cmp, i1 true, i1 %cmp1
1217 define 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]]
1222 %cmp = fcmp ord double %a, %b
1223 %cmp1 = fcmp fast ogt double %a, %b
1224 %retval = select i1 %cmp, i1 true, i1 %cmp1
1228 define 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]]
1233 %cmp = fcmp ord double %a, %b
1234 %cmp1 = fcmp oge double %a, %b
1235 %retval = or i1 %cmp, %cmp1
1239 define 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]]
1244 %cmp = fcmp ord double %a, %b
1245 %cmp1 = fcmp oge double %a, %b
1246 %retval = select i1 %cmp, i1 true, i1 %cmp1
1250 define i1 @auto_gen_31_logical_fmf(double %a, double %b) {
1251 ; CHECK-LABEL: @auto_gen_31_logical_fmf(
1252 ; CHECK-NEXT: ret i1 true
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
1260 define 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]]
1265 %cmp = fcmp ord double %a, %b
1266 %cmp1 = fcmp olt double %a, %b
1267 %retval = or i1 %cmp, %cmp1
1271 define 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]]
1276 %cmp = fcmp ord double %a, %b
1277 %cmp1 = fcmp olt double %a, %b
1278 %retval = select i1 %cmp, i1 true, i1 %cmp1
1282 define 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]]
1287 %cmp = fcmp ord double %a, %b
1288 %cmp1 = fcmp fast olt double %a, %b
1289 %retval = select i1 %cmp, i1 true, i1 %cmp1
1293 define 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]]
1298 %cmp = fcmp ord double %a, %b
1299 %cmp1 = fcmp ole double %a, %b
1300 %retval = or i1 %cmp, %cmp1
1304 define 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]]
1309 %cmp = fcmp ord double %a, %b
1310 %cmp1 = fcmp ole double %a, %b
1311 %retval = select i1 %cmp, i1 true, i1 %cmp1
1315 define i1 @auto_gen_33_logical_fmf(double %a, double %b) {
1316 ; CHECK-LABEL: @auto_gen_33_logical_fmf(
1317 ; CHECK-NEXT: ret i1 true
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
1325 define 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]]
1330 %cmp = fcmp ord double %a, %b
1331 %cmp1 = fcmp one double %a, %b
1332 %retval = or i1 %cmp, %cmp1
1336 define 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]]
1341 %cmp = fcmp ord double %a, %b
1342 %cmp1 = fcmp one double %a, %b
1343 %retval = select i1 %cmp, i1 true, i1 %cmp1
1347 define 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]]
1352 %cmp = fcmp ord double %a, %b
1353 %cmp1 = fcmp fast one double %a, %b
1354 %retval = select i1 %cmp, i1 true, i1 %cmp1
1358 define 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]]
1363 %cmp = fcmp ord double %a, %b
1364 %cmp1 = fcmp ord double %a, %b
1365 %retval = or i1 %cmp, %cmp1
1369 define 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]]
1374 %cmp = fcmp ord double %a, %b
1375 %cmp1 = fcmp ord double %a, %b
1376 %retval = select i1 %cmp, i1 true, i1 %cmp1
1380 define i1 @auto_gen_35_logical_fmf(double %a, double %b) {
1381 ; CHECK-LABEL: @auto_gen_35_logical_fmf(
1382 ; CHECK-NEXT: ret i1 true
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
1390 define 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]]
1395 %cmp = fcmp ueq double %a, %b
1396 %cmp1 = fcmp false double %a, %b
1397 %retval = or i1 %cmp, %cmp1
1401 define 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]]
1406 %cmp = fcmp ueq double %a, %b
1407 %cmp1 = fcmp false double %a, %b
1408 %retval = select i1 %cmp, i1 true, i1 %cmp1
1412 define 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]]
1417 %cmp = fcmp ueq double %a, %b
1418 %cmp1 = fcmp fast false double %a, %b
1419 %retval = select i1 %cmp, i1 true, i1 %cmp1
1423 define 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]]
1428 %cmp = fcmp ueq double %a, %b
1429 %cmp1 = fcmp oeq double %a, %b
1430 %retval = or i1 %cmp, %cmp1
1434 define 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]]
1439 %cmp = fcmp ueq double %a, %b
1440 %cmp1 = fcmp oeq double %a, %b
1441 %retval = select i1 %cmp, i1 true, i1 %cmp1
1445 define 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]]
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
1456 define 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]]
1461 %cmp = fcmp ueq double %a, %b
1462 %cmp1 = fcmp ogt double %a, %b
1463 %retval = or i1 %cmp, %cmp1
1467 define 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]]
1472 %cmp = fcmp ueq double %a, %b
1473 %cmp1 = fcmp ogt double %a, %b
1474 %retval = select i1 %cmp, i1 true, i1 %cmp1
1478 define 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]]
1483 %cmp = fcmp ueq double %a, %b
1484 %cmp1 = fcmp fast ogt double %a, %b
1485 %retval = select i1 %cmp, i1 true, i1 %cmp1
1489 define 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]]
1494 %cmp = fcmp ueq double %a, %b
1495 %cmp1 = fcmp oge double %a, %b
1496 %retval = or i1 %cmp, %cmp1
1500 define 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]]
1505 %cmp = fcmp ueq double %a, %b
1506 %cmp1 = fcmp oge double %a, %b
1507 %retval = select i1 %cmp, i1 true, i1 %cmp1
1511 define 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]]
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
1522 define 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]]
1527 %cmp = fcmp ueq double %a, %b
1528 %cmp1 = fcmp olt double %a, %b
1529 %retval = or i1 %cmp, %cmp1
1533 define 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]]
1538 %cmp = fcmp ueq double %a, %b
1539 %cmp1 = fcmp olt double %a, %b
1540 %retval = select i1 %cmp, i1 true, i1 %cmp1
1544 define 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]]
1549 %cmp = fcmp ueq double %a, %b
1550 %cmp1 = fcmp fast olt double %a, %b
1551 %retval = select i1 %cmp, i1 true, i1 %cmp1
1555 define 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]]
1560 %cmp = fcmp ueq double %a, %b
1561 %cmp1 = fcmp ole double %a, %b
1562 %retval = or i1 %cmp, %cmp1
1566 define 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]]
1571 %cmp = fcmp ueq double %a, %b
1572 %cmp1 = fcmp ole double %a, %b
1573 %retval = select i1 %cmp, i1 true, i1 %cmp1
1577 define 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]]
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
1588 define i1 @auto_gen_42(double %a, double %b) {
1589 ; CHECK-LABEL: @auto_gen_42(
1590 ; CHECK-NEXT: ret i1 true
1592 %cmp = fcmp ueq double %a, %b
1593 %cmp1 = fcmp one double %a, %b
1594 %retval = or i1 %cmp, %cmp1
1598 define i1 @auto_gen_42_logical(double %a, double %b) {
1599 ; CHECK-LABEL: @auto_gen_42_logical(
1600 ; CHECK-NEXT: ret i1 true
1602 %cmp = fcmp ueq double %a, %b
1603 %cmp1 = fcmp one double %a, %b
1604 %retval = select i1 %cmp, i1 true, i1 %cmp1
1608 define i1 @auto_gen_42_logical_fmf(double %a, double %b) {
1609 ; CHECK-LABEL: @auto_gen_42_logical_fmf(
1610 ; CHECK-NEXT: ret i1 true
1612 %cmp = fcmp ueq double %a, %b
1613 %cmp1 = fcmp fast one double %a, %b
1614 %retval = select i1 %cmp, i1 true, i1 %cmp1
1618 define i1 @auto_gen_43(double %a, double %b) {
1619 ; CHECK-LABEL: @auto_gen_43(
1620 ; CHECK-NEXT: ret i1 true
1622 %cmp = fcmp ueq double %a, %b
1623 %cmp1 = fcmp ord double %a, %b
1624 %retval = or i1 %cmp, %cmp1
1628 define i1 @auto_gen_43_logical(double %a, double %b) {
1629 ; CHECK-LABEL: @auto_gen_43_logical(
1630 ; CHECK-NEXT: ret i1 true
1632 %cmp = fcmp ueq double %a, %b
1633 %cmp1 = fcmp ord double %a, %b
1634 %retval = select i1 %cmp, i1 true, i1 %cmp1
1638 define i1 @auto_gen_43_logical_fmf(double %a, double %b) {
1639 ; CHECK-LABEL: @auto_gen_43_logical_fmf(
1640 ; CHECK-NEXT: ret i1 true
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
1648 define 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]]
1653 %cmp = fcmp ueq double %a, %b
1654 %cmp1 = fcmp ueq double %a, %b
1655 %retval = or i1 %cmp, %cmp1
1659 define 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]]
1664 %cmp = fcmp ueq double %a, %b
1665 %cmp1 = fcmp ueq double %a, %b
1666 %retval = select i1 %cmp, i1 true, i1 %cmp1
1670 define 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]]
1675 %cmp = fcmp ueq double %a, %b
1676 %cmp1 = fcmp fast ueq double %a, %b
1677 %retval = select i1 %cmp, i1 true, i1 %cmp1
1681 define 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]]
1686 %cmp = fcmp ugt double %a, %b
1687 %cmp1 = fcmp false double %a, %b
1688 %retval = or i1 %cmp, %cmp1
1692 define 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]]
1697 %cmp = fcmp ugt double %a, %b
1698 %cmp1 = fcmp false double %a, %b
1699 %retval = select i1 %cmp, i1 true, i1 %cmp1
1703 define 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]]
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
1714 define 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]]
1719 %cmp = fcmp ugt double %a, %b
1720 %cmp1 = fcmp oeq double %a, %b
1721 %retval = or i1 %cmp, %cmp1
1725 define 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]]
1730 %cmp = fcmp ugt double %a, %b
1731 %cmp1 = fcmp oeq double %a, %b
1732 %retval = select i1 %cmp, i1 true, i1 %cmp1
1736 define 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]]
1741 %cmp = fcmp ugt double %a, %b
1742 %cmp1 = fcmp fast oeq double %a, %b
1743 %retval = select i1 %cmp, i1 true, i1 %cmp1
1747 define 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]]
1752 %cmp = fcmp ugt double %a, %b
1753 %cmp1 = fcmp ogt double %a, %b
1754 %retval = or i1 %cmp, %cmp1
1758 define 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]]
1763 %cmp = fcmp ugt double %a, %b
1764 %cmp1 = fcmp ogt double %a, %b
1765 %retval = select i1 %cmp, i1 true, i1 %cmp1
1769 define 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]]
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
1780 define 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]]
1785 %cmp = fcmp ugt double %a, %b
1786 %cmp1 = fcmp oge double %a, %b
1787 %retval = or i1 %cmp, %cmp1
1791 define 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]]
1796 %cmp = fcmp ugt double %a, %b
1797 %cmp1 = fcmp oge double %a, %b
1798 %retval = select i1 %cmp, i1 true, i1 %cmp1
1802 define 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]]
1807 %cmp = fcmp ugt double %a, %b
1808 %cmp1 = fcmp fast oge double %a, %b
1809 %retval = select i1 %cmp, i1 true, i1 %cmp1
1813 define 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]]
1818 %cmp = fcmp ugt double %a, %b
1819 %cmp1 = fcmp olt double %a, %b
1820 %retval = or i1 %cmp, %cmp1
1824 define 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]]
1829 %cmp = fcmp ugt double %a, %b
1830 %cmp1 = fcmp olt double %a, %b
1831 %retval = select i1 %cmp, i1 true, i1 %cmp1
1835 define 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]]
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
1846 define i1 @auto_gen_50(double %a, double %b) {
1847 ; CHECK-LABEL: @auto_gen_50(
1848 ; CHECK-NEXT: ret i1 true
1850 %cmp = fcmp ugt double %a, %b
1851 %cmp1 = fcmp ole double %a, %b
1852 %retval = or i1 %cmp, %cmp1
1856 define i1 @auto_gen_50_logical(double %a, double %b) {
1857 ; CHECK-LABEL: @auto_gen_50_logical(
1858 ; CHECK-NEXT: ret i1 true
1860 %cmp = fcmp ugt double %a, %b
1861 %cmp1 = fcmp ole double %a, %b
1862 %retval = select i1 %cmp, i1 true, i1 %cmp1
1866 define i1 @auto_gen_50_logical_fmf(double %a, double %b) {
1867 ; CHECK-LABEL: @auto_gen_50_logical_fmf(
1868 ; CHECK-NEXT: ret i1 true
1870 %cmp = fcmp ugt double %a, %b
1871 %cmp1 = fcmp fast ole double %a, %b
1872 %retval = select i1 %cmp, i1 true, i1 %cmp1
1876 define 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]]
1881 %cmp = fcmp ugt double %a, %b
1882 %cmp1 = fcmp one double %a, %b
1883 %retval = or i1 %cmp, %cmp1
1887 define 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]]
1892 %cmp = fcmp ugt double %a, %b
1893 %cmp1 = fcmp one double %a, %b
1894 %retval = select i1 %cmp, i1 true, i1 %cmp1
1898 define 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]]
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
1909 define i1 @auto_gen_52(double %a, double %b) {
1910 ; CHECK-LABEL: @auto_gen_52(
1911 ; CHECK-NEXT: ret i1 true
1913 %cmp = fcmp ugt double %a, %b
1914 %cmp1 = fcmp ord double %a, %b
1915 %retval = or i1 %cmp, %cmp1
1919 define i1 @auto_gen_52_logical(double %a, double %b) {
1920 ; CHECK-LABEL: @auto_gen_52_logical(
1921 ; CHECK-NEXT: ret i1 true
1923 %cmp = fcmp ugt double %a, %b
1924 %cmp1 = fcmp ord double %a, %b
1925 %retval = select i1 %cmp, i1 true, i1 %cmp1
1929 define i1 @auto_gen_52_logical_fmf(double %a, double %b) {
1930 ; CHECK-LABEL: @auto_gen_52_logical_fmf(
1931 ; CHECK-NEXT: ret i1 true
1933 %cmp = fcmp ugt double %a, %b
1934 %cmp1 = fcmp fast ord double %a, %b
1935 %retval = select i1 %cmp, i1 true, i1 %cmp1
1939 define 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]]
1944 %cmp = fcmp ugt double %a, %b
1945 %cmp1 = fcmp ueq double %a, %b
1946 %retval = or i1 %cmp, %cmp1
1950 define 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]]
1955 %cmp = fcmp ugt double %a, %b
1956 %cmp1 = fcmp ueq double %a, %b
1957 %retval = select i1 %cmp, i1 true, i1 %cmp1
1961 define 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]]
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
1972 define 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]]
1977 %cmp = fcmp ugt double %a, %b
1978 %cmp1 = fcmp ugt double %a, %b
1979 %retval = or i1 %cmp, %cmp1
1983 define 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]]
1988 %cmp = fcmp ugt double %a, %b
1989 %cmp1 = fcmp ugt double %a, %b
1990 %retval = select i1 %cmp, i1 true, i1 %cmp1
1994 define 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]]
1999 %cmp = fcmp ugt double %a, %b
2000 %cmp1 = fcmp fast ugt double %a, %b
2001 %retval = select i1 %cmp, i1 true, i1 %cmp1
2005 define 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]]
2010 %cmp = fcmp uge double %a, %b
2011 %cmp1 = fcmp false double %a, %b
2012 %retval = or i1 %cmp, %cmp1
2016 define 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]]
2021 %cmp = fcmp uge double %a, %b
2022 %cmp1 = fcmp false double %a, %b
2023 %retval = select i1 %cmp, i1 true, i1 %cmp1
2027 define 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]]
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
2038 define 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]]
2043 %cmp = fcmp uge double %a, %b
2044 %cmp1 = fcmp oeq double %a, %b
2045 %retval = or i1 %cmp, %cmp1
2049 define 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]]
2054 %cmp = fcmp uge double %a, %b
2055 %cmp1 = fcmp oeq double %a, %b
2056 %retval = select i1 %cmp, i1 true, i1 %cmp1
2060 define 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]]
2065 %cmp = fcmp uge double %a, %b
2066 %cmp1 = fcmp fast oeq double %a, %b
2067 %retval = select i1 %cmp, i1 true, i1 %cmp1
2071 define 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]]
2076 %cmp = fcmp uge double %a, %b
2077 %cmp1 = fcmp ogt double %a, %b
2078 %retval = or i1 %cmp, %cmp1
2082 define 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]]
2087 %cmp = fcmp uge double %a, %b
2088 %cmp1 = fcmp ogt double %a, %b
2089 %retval = select i1 %cmp, i1 true, i1 %cmp1
2093 define 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]]
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
2104 define 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]]
2109 %cmp = fcmp uge double %a, %b
2110 %cmp1 = fcmp oge double %a, %b
2111 %retval = or i1 %cmp, %cmp1
2115 define 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]]
2120 %cmp = fcmp uge double %a, %b
2121 %cmp1 = fcmp oge double %a, %b
2122 %retval = select i1 %cmp, i1 true, i1 %cmp1
2126 define 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]]
2131 %cmp = fcmp uge double %a, %b
2132 %cmp1 = fcmp fast oge double %a, %b
2133 %retval = select i1 %cmp, i1 true, i1 %cmp1
2137 define i1 @auto_gen_59(double %a, double %b) {
2138 ; CHECK-LABEL: @auto_gen_59(
2139 ; CHECK-NEXT: ret i1 true
2141 %cmp = fcmp uge double %a, %b
2142 %cmp1 = fcmp olt double %a, %b
2143 %retval = or i1 %cmp, %cmp1
2147 define i1 @auto_gen_59_logical(double %a, double %b) {
2148 ; CHECK-LABEL: @auto_gen_59_logical(
2149 ; CHECK-NEXT: ret i1 true
2151 %cmp = fcmp uge double %a, %b
2152 %cmp1 = fcmp olt double %a, %b
2153 %retval = select i1 %cmp, i1 true, i1 %cmp1
2157 define i1 @auto_gen_59_logical_fmf(double %a, double %b) {
2158 ; CHECK-LABEL: @auto_gen_59_logical_fmf(
2159 ; CHECK-NEXT: ret i1 true
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
2167 define i1 @auto_gen_60(double %a, double %b) {
2168 ; CHECK-LABEL: @auto_gen_60(
2169 ; CHECK-NEXT: ret i1 true
2171 %cmp = fcmp uge double %a, %b
2172 %cmp1 = fcmp ole double %a, %b
2173 %retval = or i1 %cmp, %cmp1
2177 define i1 @auto_gen_60_logical(double %a, double %b) {
2178 ; CHECK-LABEL: @auto_gen_60_logical(
2179 ; CHECK-NEXT: ret i1 true
2181 %cmp = fcmp uge double %a, %b
2182 %cmp1 = fcmp ole double %a, %b
2183 %retval = select i1 %cmp, i1 true, i1 %cmp1
2187 define i1 @auto_gen_60_logical_fmf(double %a, double %b) {
2188 ; CHECK-LABEL: @auto_gen_60_logical_fmf(
2189 ; CHECK-NEXT: ret i1 true
2191 %cmp = fcmp uge double %a, %b
2192 %cmp1 = fcmp fast ole double %a, %b
2193 %retval = select i1 %cmp, i1 true, i1 %cmp1
2197 define i1 @auto_gen_61(double %a, double %b) {
2198 ; CHECK-LABEL: @auto_gen_61(
2199 ; CHECK-NEXT: ret i1 true
2201 %cmp = fcmp uge double %a, %b
2202 %cmp1 = fcmp one double %a, %b
2203 %retval = or i1 %cmp, %cmp1
2207 define i1 @auto_gen_61_logical(double %a, double %b) {
2208 ; CHECK-LABEL: @auto_gen_61_logical(
2209 ; CHECK-NEXT: ret i1 true
2211 %cmp = fcmp uge double %a, %b
2212 %cmp1 = fcmp one double %a, %b
2213 %retval = select i1 %cmp, i1 true, i1 %cmp1
2217 define i1 @auto_gen_61_logical_fmf(double %a, double %b) {
2218 ; CHECK-LABEL: @auto_gen_61_logical_fmf(
2219 ; CHECK-NEXT: ret i1 true
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
2227 define i1 @auto_gen_62(double %a, double %b) {
2228 ; CHECK-LABEL: @auto_gen_62(
2229 ; CHECK-NEXT: ret i1 true
2231 %cmp = fcmp uge double %a, %b
2232 %cmp1 = fcmp ord double %a, %b
2233 %retval = or i1 %cmp, %cmp1
2237 define i1 @auto_gen_62_logical(double %a, double %b) {
2238 ; CHECK-LABEL: @auto_gen_62_logical(
2239 ; CHECK-NEXT: ret i1 true
2241 %cmp = fcmp uge double %a, %b
2242 %cmp1 = fcmp ord double %a, %b
2243 %retval = select i1 %cmp, i1 true, i1 %cmp1
2247 define i1 @auto_gen_62_logical_fmf(double %a, double %b) {
2248 ; CHECK-LABEL: @auto_gen_62_logical_fmf(
2249 ; CHECK-NEXT: ret i1 true
2251 %cmp = fcmp uge double %a, %b
2252 %cmp1 = fcmp fast ord double %a, %b
2253 %retval = select i1 %cmp, i1 true, i1 %cmp1
2257 define 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]]
2262 %cmp = fcmp uge double %a, %b
2263 %cmp1 = fcmp ueq double %a, %b
2264 %retval = or i1 %cmp, %cmp1
2268 define 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]]
2273 %cmp = fcmp uge double %a, %b
2274 %cmp1 = fcmp ueq double %a, %b
2275 %retval = select i1 %cmp, i1 true, i1 %cmp1
2279 define 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]]
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
2290 define 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]]
2295 %cmp = fcmp uge double %a, %b
2296 %cmp1 = fcmp ugt double %a, %b
2297 %retval = or i1 %cmp, %cmp1
2301 define 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]]
2306 %cmp = fcmp uge double %a, %b
2307 %cmp1 = fcmp ugt double %a, %b
2308 %retval = select i1 %cmp, i1 true, i1 %cmp1
2312 define 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]]
2317 %cmp = fcmp uge double %a, %b
2318 %cmp1 = fcmp fast ugt double %a, %b
2319 %retval = select i1 %cmp, i1 true, i1 %cmp1
2323 define 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]]
2328 %cmp = fcmp uge double %a, %b
2329 %cmp1 = fcmp uge double %a, %b
2330 %retval = or i1 %cmp, %cmp1
2334 define 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]]
2339 %cmp = fcmp uge double %a, %b
2340 %cmp1 = fcmp uge double %a, %b
2341 %retval = select i1 %cmp, i1 true, i1 %cmp1
2345 define 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]]
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
2356 define 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]]
2361 %cmp = fcmp ult double %a, %b
2362 %cmp1 = fcmp false double %a, %b
2363 %retval = or i1 %cmp, %cmp1
2367 define 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]]
2372 %cmp = fcmp ult double %a, %b
2373 %cmp1 = fcmp false double %a, %b
2374 %retval = select i1 %cmp, i1 true, i1 %cmp1
2378 define 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]]
2383 %cmp = fcmp ult double %a, %b
2384 %cmp1 = fcmp fast false double %a, %b
2385 %retval = select i1 %cmp, i1 true, i1 %cmp1
2389 define 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]]
2394 %cmp = fcmp ult double %a, %b
2395 %cmp1 = fcmp oeq double %a, %b
2396 %retval = or i1 %cmp, %cmp1
2400 define 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]]
2405 %cmp = fcmp ult double %a, %b
2406 %cmp1 = fcmp oeq double %a, %b
2407 %retval = select i1 %cmp, i1 true, i1 %cmp1
2411 define 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]]
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
2422 define 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]]
2427 %cmp = fcmp ult double %a, %b
2428 %cmp1 = fcmp ogt double %a, %b
2429 %retval = or i1 %cmp, %cmp1
2433 define 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]]
2438 %cmp = fcmp ult double %a, %b
2439 %cmp1 = fcmp ogt double %a, %b
2440 %retval = select i1 %cmp, i1 true, i1 %cmp1
2444 define 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]]
2449 %cmp = fcmp ult double %a, %b
2450 %cmp1 = fcmp fast ogt double %a, %b
2451 %retval = select i1 %cmp, i1 true, i1 %cmp1
2455 define i1 @auto_gen_69(double %a, double %b) {
2456 ; CHECK-LABEL: @auto_gen_69(
2457 ; CHECK-NEXT: ret i1 true
2459 %cmp = fcmp ult double %a, %b
2460 %cmp1 = fcmp oge double %a, %b
2461 %retval = or i1 %cmp, %cmp1
2465 define i1 @auto_gen_69_logical(double %a, double %b) {
2466 ; CHECK-LABEL: @auto_gen_69_logical(
2467 ; CHECK-NEXT: ret i1 true
2469 %cmp = fcmp ult double %a, %b
2470 %cmp1 = fcmp oge double %a, %b
2471 %retval = select i1 %cmp, i1 true, i1 %cmp1
2475 define i1 @auto_gen_69_logical_fmf(double %a, double %b) {
2476 ; CHECK-LABEL: @auto_gen_69_logical_fmf(
2477 ; CHECK-NEXT: ret i1 true
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
2485 define 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]]
2490 %cmp = fcmp ult double %a, %b
2491 %cmp1 = fcmp olt double %a, %b
2492 %retval = or i1 %cmp, %cmp1
2496 define 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]]
2501 %cmp = fcmp ult double %a, %b
2502 %cmp1 = fcmp olt double %a, %b
2503 %retval = select i1 %cmp, i1 true, i1 %cmp1
2507 define 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]]
2512 %cmp = fcmp ult double %a, %b
2513 %cmp1 = fcmp fast olt double %a, %b
2514 %retval = select i1 %cmp, i1 true, i1 %cmp1
2518 define 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]]
2523 %cmp = fcmp ult double %a, %b
2524 %cmp1 = fcmp ole double %a, %b
2525 %retval = or i1 %cmp, %cmp1
2529 define 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]]
2534 %cmp = fcmp ult double %a, %b
2535 %cmp1 = fcmp ole double %a, %b
2536 %retval = select i1 %cmp, i1 true, i1 %cmp1
2540 define 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]]
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
2551 define 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]]
2556 %cmp = fcmp ult double %a, %b
2557 %cmp1 = fcmp one double %a, %b
2558 %retval = or i1 %cmp, %cmp1
2562 define 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]]
2567 %cmp = fcmp ult double %a, %b
2568 %cmp1 = fcmp one double %a, %b
2569 %retval = select i1 %cmp, i1 true, i1 %cmp1
2573 define 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]]
2578 %cmp = fcmp ult double %a, %b
2579 %cmp1 = fcmp fast one double %a, %b
2580 %retval = select i1 %cmp, i1 true, i1 %cmp1
2584 define i1 @auto_gen_73(double %a, double %b) {
2585 ; CHECK-LABEL: @auto_gen_73(
2586 ; CHECK-NEXT: ret i1 true
2588 %cmp = fcmp ult double %a, %b
2589 %cmp1 = fcmp ord double %a, %b
2590 %retval = or i1 %cmp, %cmp1
2594 define i1 @auto_gen_73_logical(double %a, double %b) {
2595 ; CHECK-LABEL: @auto_gen_73_logical(
2596 ; CHECK-NEXT: ret i1 true
2598 %cmp = fcmp ult double %a, %b
2599 %cmp1 = fcmp ord double %a, %b
2600 %retval = select i1 %cmp, i1 true, i1 %cmp1
2604 define i1 @auto_gen_73_logical_fmf(double %a, double %b) {
2605 ; CHECK-LABEL: @auto_gen_73_logical_fmf(
2606 ; CHECK-NEXT: ret i1 true
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
2614 define 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]]
2619 %cmp = fcmp ult double %a, %b
2620 %cmp1 = fcmp ueq double %a, %b
2621 %retval = or i1 %cmp, %cmp1
2625 define 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]]
2630 %cmp = fcmp ult double %a, %b
2631 %cmp1 = fcmp ueq double %a, %b
2632 %retval = select i1 %cmp, i1 true, i1 %cmp1
2636 define 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]]
2641 %cmp = fcmp ult double %a, %b
2642 %cmp1 = fcmp fast ueq double %a, %b
2643 %retval = select i1 %cmp, i1 true, i1 %cmp1
2647 define 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]]
2652 %cmp = fcmp ult double %a, %b
2653 %cmp1 = fcmp ugt double %a, %b
2654 %retval = or i1 %cmp, %cmp1
2658 define 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]]
2663 %cmp = fcmp ult double %a, %b
2664 %cmp1 = fcmp ugt double %a, %b
2665 %retval = select i1 %cmp, i1 true, i1 %cmp1
2669 define 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]]
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
2680 define i1 @auto_gen_76(double %a, double %b) {
2681 ; CHECK-LABEL: @auto_gen_76(
2682 ; CHECK-NEXT: ret i1 true
2684 %cmp = fcmp ult double %a, %b
2685 %cmp1 = fcmp uge double %a, %b
2686 %retval = or i1 %cmp, %cmp1
2690 define i1 @auto_gen_76_logical(double %a, double %b) {
2691 ; CHECK-LABEL: @auto_gen_76_logical(
2692 ; CHECK-NEXT: ret i1 true
2694 %cmp = fcmp ult double %a, %b
2695 %cmp1 = fcmp uge double %a, %b
2696 %retval = select i1 %cmp, i1 true, i1 %cmp1
2700 define i1 @auto_gen_76_logical_fmf(double %a, double %b) {
2701 ; CHECK-LABEL: @auto_gen_76_logical_fmf(
2702 ; CHECK-NEXT: ret i1 true
2704 %cmp = fcmp ult double %a, %b
2705 %cmp1 = fcmp fast uge double %a, %b
2706 %retval = select i1 %cmp, i1 true, i1 %cmp1
2710 define 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]]
2715 %cmp = fcmp ult double %a, %b
2716 %cmp1 = fcmp ult double %a, %b
2717 %retval = or i1 %cmp, %cmp1
2721 define 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]]
2726 %cmp = fcmp ult double %a, %b
2727 %cmp1 = fcmp ult double %a, %b
2728 %retval = select i1 %cmp, i1 true, i1 %cmp1
2732 define 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]]
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
2743 define 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]]
2748 %cmp = fcmp ule double %a, %b
2749 %cmp1 = fcmp false double %a, %b
2750 %retval = or i1 %cmp, %cmp1
2754 define 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]]
2759 %cmp = fcmp ule double %a, %b
2760 %cmp1 = fcmp false double %a, %b
2761 %retval = select i1 %cmp, i1 true, i1 %cmp1
2765 define 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]]
2770 %cmp = fcmp ule double %a, %b
2771 %cmp1 = fcmp fast false double %a, %b
2772 %retval = select i1 %cmp, i1 true, i1 %cmp1
2776 define 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]]
2781 %cmp = fcmp ule double %a, %b
2782 %cmp1 = fcmp oeq double %a, %b
2783 %retval = or i1 %cmp, %cmp1
2787 define 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]]
2792 %cmp = fcmp ule double %a, %b
2793 %cmp1 = fcmp oeq double %a, %b
2794 %retval = select i1 %cmp, i1 true, i1 %cmp1
2798 define 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]]
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
2809 define i1 @auto_gen_80(double %a, double %b) {
2810 ; CHECK-LABEL: @auto_gen_80(
2811 ; CHECK-NEXT: ret i1 true
2813 %cmp = fcmp ule double %a, %b
2814 %cmp1 = fcmp ogt double %a, %b
2815 %retval = or i1 %cmp, %cmp1
2819 define i1 @auto_gen_80_logical(double %a, double %b) {
2820 ; CHECK-LABEL: @auto_gen_80_logical(
2821 ; CHECK-NEXT: ret i1 true
2823 %cmp = fcmp ule double %a, %b
2824 %cmp1 = fcmp ogt double %a, %b
2825 %retval = select i1 %cmp, i1 true, i1 %cmp1
2829 define i1 @auto_gen_80_logical_fmf(double %a, double %b) {
2830 ; CHECK-LABEL: @auto_gen_80_logical_fmf(
2831 ; CHECK-NEXT: ret i1 true
2833 %cmp = fcmp ule double %a, %b
2834 %cmp1 = fcmp fast ogt double %a, %b
2835 %retval = select i1 %cmp, i1 true, i1 %cmp1
2839 define i1 @auto_gen_81(double %a, double %b) {
2840 ; CHECK-LABEL: @auto_gen_81(
2841 ; CHECK-NEXT: ret i1 true
2843 %cmp = fcmp ule double %a, %b
2844 %cmp1 = fcmp oge double %a, %b
2845 %retval = or i1 %cmp, %cmp1
2849 define i1 @auto_gen_81_logical(double %a, double %b) {
2850 ; CHECK-LABEL: @auto_gen_81_logical(
2851 ; CHECK-NEXT: ret i1 true
2853 %cmp = fcmp ule double %a, %b
2854 %cmp1 = fcmp oge double %a, %b
2855 %retval = select i1 %cmp, i1 true, i1 %cmp1
2859 define i1 @auto_gen_81_logical_fmf(double %a, double %b) {
2860 ; CHECK-LABEL: @auto_gen_81_logical_fmf(
2861 ; CHECK-NEXT: ret i1 true
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
2869 define 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]]
2874 %cmp = fcmp ule double %a, %b
2875 %cmp1 = fcmp olt double %a, %b
2876 %retval = or i1 %cmp, %cmp1
2880 define 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]]
2885 %cmp = fcmp ule double %a, %b
2886 %cmp1 = fcmp olt double %a, %b
2887 %retval = select i1 %cmp, i1 true, i1 %cmp1
2891 define 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]]
2896 %cmp = fcmp ule double %a, %b
2897 %cmp1 = fcmp fast olt double %a, %b
2898 %retval = select i1 %cmp, i1 true, i1 %cmp1
2902 define 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]]
2907 %cmp = fcmp ule double %a, %b
2908 %cmp1 = fcmp ole double %a, %b
2909 %retval = or i1 %cmp, %cmp1
2913 define 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]]
2918 %cmp = fcmp ule double %a, %b
2919 %cmp1 = fcmp ole double %a, %b
2920 %retval = select i1 %cmp, i1 true, i1 %cmp1
2924 define 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]]
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
2935 define i1 @auto_gen_84(double %a, double %b) {
2936 ; CHECK-LABEL: @auto_gen_84(
2937 ; CHECK-NEXT: ret i1 true
2939 %cmp = fcmp ule double %a, %b
2940 %cmp1 = fcmp one double %a, %b
2941 %retval = or i1 %cmp, %cmp1
2945 define i1 @auto_gen_84_logical(double %a, double %b) {
2946 ; CHECK-LABEL: @auto_gen_84_logical(
2947 ; CHECK-NEXT: ret i1 true
2949 %cmp = fcmp ule double %a, %b
2950 %cmp1 = fcmp one double %a, %b
2951 %retval = select i1 %cmp, i1 true, i1 %cmp1
2955 define i1 @auto_gen_84_logical_fmf(double %a, double %b) {
2956 ; CHECK-LABEL: @auto_gen_84_logical_fmf(
2957 ; CHECK-NEXT: ret i1 true
2959 %cmp = fcmp ule double %a, %b
2960 %cmp1 = fcmp fast one double %a, %b
2961 %retval = select i1 %cmp, i1 true, i1 %cmp1
2965 define i1 @auto_gen_85(double %a, double %b) {
2966 ; CHECK-LABEL: @auto_gen_85(
2967 ; CHECK-NEXT: ret i1 true
2969 %cmp = fcmp ule double %a, %b
2970 %cmp1 = fcmp ord double %a, %b
2971 %retval = or i1 %cmp, %cmp1
2975 define i1 @auto_gen_85_logical(double %a, double %b) {
2976 ; CHECK-LABEL: @auto_gen_85_logical(
2977 ; CHECK-NEXT: ret i1 true
2979 %cmp = fcmp ule double %a, %b
2980 %cmp1 = fcmp ord double %a, %b
2981 %retval = select i1 %cmp, i1 true, i1 %cmp1
2985 define i1 @auto_gen_85_logical_fmf(double %a, double %b) {
2986 ; CHECK-LABEL: @auto_gen_85_logical_fmf(
2987 ; CHECK-NEXT: ret i1 true
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
2995 define 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]]
3000 %cmp = fcmp ule double %a, %b
3001 %cmp1 = fcmp ueq double %a, %b
3002 %retval = or i1 %cmp, %cmp1
3006 define 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]]
3011 %cmp = fcmp ule double %a, %b
3012 %cmp1 = fcmp ueq double %a, %b
3013 %retval = select i1 %cmp, i1 true, i1 %cmp1
3017 define 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]]
3022 %cmp = fcmp ule double %a, %b
3023 %cmp1 = fcmp fast ueq double %a, %b
3024 %retval = select i1 %cmp, i1 true, i1 %cmp1
3028 define i1 @auto_gen_87(double %a, double %b) {
3029 ; CHECK-LABEL: @auto_gen_87(
3030 ; CHECK-NEXT: ret i1 true
3032 %cmp = fcmp ule double %a, %b
3033 %cmp1 = fcmp ugt double %a, %b
3034 %retval = or i1 %cmp, %cmp1
3038 define i1 @auto_gen_87_logical(double %a, double %b) {
3039 ; CHECK-LABEL: @auto_gen_87_logical(
3040 ; CHECK-NEXT: ret i1 true
3042 %cmp = fcmp ule double %a, %b
3043 %cmp1 = fcmp ugt double %a, %b
3044 %retval = select i1 %cmp, i1 true, i1 %cmp1
3048 define i1 @auto_gen_87_logical_fmf(double %a, double %b) {
3049 ; CHECK-LABEL: @auto_gen_87_logical_fmf(
3050 ; CHECK-NEXT: ret i1 true
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
3058 define i1 @auto_gen_88(double %a, double %b) {
3059 ; CHECK-LABEL: @auto_gen_88(
3060 ; CHECK-NEXT: ret i1 true
3062 %cmp = fcmp ule double %a, %b
3063 %cmp1 = fcmp uge double %a, %b
3064 %retval = or i1 %cmp, %cmp1
3068 define i1 @auto_gen_88_logical(double %a, double %b) {
3069 ; CHECK-LABEL: @auto_gen_88_logical(
3070 ; CHECK-NEXT: ret i1 true
3072 %cmp = fcmp ule double %a, %b
3073 %cmp1 = fcmp uge double %a, %b
3074 %retval = select i1 %cmp, i1 true, i1 %cmp1
3078 define i1 @auto_gen_88_logical_fmf(double %a, double %b) {
3079 ; CHECK-LABEL: @auto_gen_88_logical_fmf(
3080 ; CHECK-NEXT: ret i1 true
3082 %cmp = fcmp ule double %a, %b
3083 %cmp1 = fcmp fast uge double %a, %b
3084 %retval = select i1 %cmp, i1 true, i1 %cmp1
3088 define 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]]
3093 %cmp = fcmp ule double %a, %b
3094 %cmp1 = fcmp ult double %a, %b
3095 %retval = or i1 %cmp, %cmp1
3099 define 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]]
3104 %cmp = fcmp ule double %a, %b
3105 %cmp1 = fcmp ult double %a, %b
3106 %retval = select i1 %cmp, i1 true, i1 %cmp1
3110 define 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]]
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
3121 define 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]]
3126 %cmp = fcmp ule double %a, %b
3127 %cmp1 = fcmp ule double %a, %b
3128 %retval = or i1 %cmp, %cmp1
3132 define 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]]
3137 %cmp = fcmp ule double %a, %b
3138 %cmp1 = fcmp ule double %a, %b
3139 %retval = select i1 %cmp, i1 true, i1 %cmp1
3143 define 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]]
3148 %cmp = fcmp ule double %a, %b
3149 %cmp1 = fcmp fast ule double %a, %b
3150 %retval = select i1 %cmp, i1 true, i1 %cmp1
3154 define 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]]
3159 %cmp = fcmp une double %a, %b
3160 %cmp1 = fcmp false double %a, %b
3161 %retval = or i1 %cmp, %cmp1
3165 define 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]]
3170 %cmp = fcmp une double %a, %b
3171 %cmp1 = fcmp false double %a, %b
3172 %retval = select i1 %cmp, i1 true, i1 %cmp1
3176 define 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]]
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
3187 define i1 @auto_gen_92(double %a, double %b) {
3188 ; CHECK-LABEL: @auto_gen_92(
3189 ; CHECK-NEXT: ret i1 true
3191 %cmp = fcmp une double %a, %b
3192 %cmp1 = fcmp oeq double %a, %b
3193 %retval = or i1 %cmp, %cmp1
3197 define i1 @auto_gen_92_logical(double %a, double %b) {
3198 ; CHECK-LABEL: @auto_gen_92_logical(
3199 ; CHECK-NEXT: ret i1 true
3201 %cmp = fcmp une double %a, %b
3202 %cmp1 = fcmp oeq double %a, %b
3203 %retval = select i1 %cmp, i1 true, i1 %cmp1
3207 define i1 @auto_gen_92_logical_fmf(double %a, double %b) {
3208 ; CHECK-LABEL: @auto_gen_92_logical_fmf(
3209 ; CHECK-NEXT: ret i1 true
3211 %cmp = fcmp une double %a, %b
3212 %cmp1 = fcmp fast oeq double %a, %b
3213 %retval = select i1 %cmp, i1 true, i1 %cmp1
3217 define 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]]
3222 %cmp = fcmp une double %a, %b
3223 %cmp1 = fcmp ogt double %a, %b
3224 %retval = or i1 %cmp, %cmp1
3228 define 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]]
3233 %cmp = fcmp une double %a, %b
3234 %cmp1 = fcmp ogt double %a, %b
3235 %retval = select i1 %cmp, i1 true, i1 %cmp1
3239 define 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]]
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
3250 define i1 @auto_gen_94(double %a, double %b) {
3251 ; CHECK-LABEL: @auto_gen_94(
3252 ; CHECK-NEXT: ret i1 true
3254 %cmp = fcmp une double %a, %b
3255 %cmp1 = fcmp oge double %a, %b
3256 %retval = or i1 %cmp, %cmp1
3260 define i1 @auto_gen_94_logical(double %a, double %b) {
3261 ; CHECK-LABEL: @auto_gen_94_logical(
3262 ; CHECK-NEXT: ret i1 true
3264 %cmp = fcmp une double %a, %b
3265 %cmp1 = fcmp oge double %a, %b
3266 %retval = select i1 %cmp, i1 true, i1 %cmp1
3270 define i1 @auto_gen_94_logical_fmf(double %a, double %b) {
3271 ; CHECK-LABEL: @auto_gen_94_logical_fmf(
3272 ; CHECK-NEXT: ret i1 true
3274 %cmp = fcmp une double %a, %b
3275 %cmp1 = fcmp fast oge double %a, %b
3276 %retval = select i1 %cmp, i1 true, i1 %cmp1
3280 define 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]]
3285 %cmp = fcmp une double %a, %b
3286 %cmp1 = fcmp olt double %a, %b
3287 %retval = or i1 %cmp, %cmp1
3291 define 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]]
3296 %cmp = fcmp une double %a, %b
3297 %cmp1 = fcmp olt double %a, %b
3298 %retval = select i1 %cmp, i1 true, i1 %cmp1
3302 define 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]]
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
3313 define i1 @auto_gen_96(double %a, double %b) {
3314 ; CHECK-LABEL: @auto_gen_96(
3315 ; CHECK-NEXT: ret i1 true
3317 %cmp = fcmp une double %a, %b
3318 %cmp1 = fcmp ole double %a, %b
3319 %retval = or i1 %cmp, %cmp1
3323 define i1 @auto_gen_96_logical(double %a, double %b) {
3324 ; CHECK-LABEL: @auto_gen_96_logical(
3325 ; CHECK-NEXT: ret i1 true
3327 %cmp = fcmp une double %a, %b
3328 %cmp1 = fcmp ole double %a, %b
3329 %retval = select i1 %cmp, i1 true, i1 %cmp1
3333 define i1 @auto_gen_96_logical_fmf(double %a, double %b) {
3334 ; CHECK-LABEL: @auto_gen_96_logical_fmf(
3335 ; CHECK-NEXT: ret i1 true
3337 %cmp = fcmp une double %a, %b
3338 %cmp1 = fcmp fast ole double %a, %b
3339 %retval = select i1 %cmp, i1 true, i1 %cmp1
3343 define 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]]
3348 %cmp = fcmp une double %a, %b
3349 %cmp1 = fcmp one double %a, %b
3350 %retval = or i1 %cmp, %cmp1
3354 define 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]]
3359 %cmp = fcmp une double %a, %b
3360 %cmp1 = fcmp one double %a, %b
3361 %retval = select i1 %cmp, i1 true, i1 %cmp1
3365 define 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]]
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
3376 define i1 @auto_gen_98(double %a, double %b) {
3377 ; CHECK-LABEL: @auto_gen_98(
3378 ; CHECK-NEXT: ret i1 true
3380 %cmp = fcmp une double %a, %b
3381 %cmp1 = fcmp ord double %a, %b
3382 %retval = or i1 %cmp, %cmp1
3386 define i1 @auto_gen_98_logical(double %a, double %b) {
3387 ; CHECK-LABEL: @auto_gen_98_logical(
3388 ; CHECK-NEXT: ret i1 true
3390 %cmp = fcmp une double %a, %b
3391 %cmp1 = fcmp ord double %a, %b
3392 %retval = select i1 %cmp, i1 true, i1 %cmp1
3396 define i1 @auto_gen_98_logical_fmf(double %a, double %b) {
3397 ; CHECK-LABEL: @auto_gen_98_logical_fmf(
3398 ; CHECK-NEXT: ret i1 true
3400 %cmp = fcmp une double %a, %b
3401 %cmp1 = fcmp fast ord double %a, %b
3402 %retval = select i1 %cmp, i1 true, i1 %cmp1
3406 define i1 @auto_gen_99(double %a, double %b) {
3407 ; CHECK-LABEL: @auto_gen_99(
3408 ; CHECK-NEXT: ret i1 true
3410 %cmp = fcmp une double %a, %b
3411 %cmp1 = fcmp ueq double %a, %b
3412 %retval = or i1 %cmp, %cmp1
3416 define i1 @auto_gen_99_logical(double %a, double %b) {
3417 ; CHECK-LABEL: @auto_gen_99_logical(
3418 ; CHECK-NEXT: ret i1 true
3420 %cmp = fcmp une double %a, %b
3421 %cmp1 = fcmp ueq double %a, %b
3422 %retval = select i1 %cmp, i1 true, i1 %cmp1
3426 define i1 @auto_gen_99_logical_fmf(double %a, double %b) {
3427 ; CHECK-LABEL: @auto_gen_99_logical_fmf(
3428 ; CHECK-NEXT: ret i1 true
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
3436 define 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]]
3441 %cmp = fcmp une double %a, %b
3442 %cmp1 = fcmp ugt double %a, %b
3443 %retval = or i1 %cmp, %cmp1
3447 define 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]]
3452 %cmp = fcmp une double %a, %b
3453 %cmp1 = fcmp ugt double %a, %b
3454 %retval = select i1 %cmp, i1 true, i1 %cmp1
3458 define 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]]
3463 %cmp = fcmp une double %a, %b
3464 %cmp1 = fcmp fast ugt double %a, %b
3465 %retval = select i1 %cmp, i1 true, i1 %cmp1
3469 define i1 @auto_gen_101(double %a, double %b) {
3470 ; CHECK-LABEL: @auto_gen_101(
3471 ; CHECK-NEXT: ret i1 true
3473 %cmp = fcmp une double %a, %b
3474 %cmp1 = fcmp uge double %a, %b
3475 %retval = or i1 %cmp, %cmp1
3479 define i1 @auto_gen_101_logical(double %a, double %b) {
3480 ; CHECK-LABEL: @auto_gen_101_logical(
3481 ; CHECK-NEXT: ret i1 true
3483 %cmp = fcmp une double %a, %b
3484 %cmp1 = fcmp uge double %a, %b
3485 %retval = select i1 %cmp, i1 true, i1 %cmp1
3489 define i1 @auto_gen_101_logical_fmf(double %a, double %b) {
3490 ; CHECK-LABEL: @auto_gen_101_logical_fmf(
3491 ; CHECK-NEXT: ret i1 true
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
3499 define 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]]
3504 %cmp = fcmp une double %a, %b
3505 %cmp1 = fcmp ult double %a, %b
3506 %retval = or i1 %cmp, %cmp1
3510 define 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]]
3515 %cmp = fcmp une double %a, %b
3516 %cmp1 = fcmp ult double %a, %b
3517 %retval = select i1 %cmp, i1 true, i1 %cmp1
3521 define 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]]
3526 %cmp = fcmp une double %a, %b
3527 %cmp1 = fcmp fast ult double %a, %b
3528 %retval = select i1 %cmp, i1 true, i1 %cmp1
3532 define i1 @auto_gen_103(double %a, double %b) {
3533 ; CHECK-LABEL: @auto_gen_103(
3534 ; CHECK-NEXT: ret i1 true
3536 %cmp = fcmp une double %a, %b
3537 %cmp1 = fcmp ule double %a, %b
3538 %retval = or i1 %cmp, %cmp1
3542 define i1 @auto_gen_103_logical(double %a, double %b) {
3543 ; CHECK-LABEL: @auto_gen_103_logical(
3544 ; CHECK-NEXT: ret i1 true
3546 %cmp = fcmp une double %a, %b
3547 %cmp1 = fcmp ule double %a, %b
3548 %retval = select i1 %cmp, i1 true, i1 %cmp1
3552 define i1 @auto_gen_103_logical_fmf(double %a, double %b) {
3553 ; CHECK-LABEL: @auto_gen_103_logical_fmf(
3554 ; CHECK-NEXT: ret i1 true
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
3562 define 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]]
3567 %cmp = fcmp une double %a, %b
3568 %cmp1 = fcmp une double %a, %b
3569 %retval = or i1 %cmp, %cmp1
3573 define 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]]
3578 %cmp = fcmp une double %a, %b
3579 %cmp1 = fcmp une double %a, %b
3580 %retval = select i1 %cmp, i1 true, i1 %cmp1
3584 define 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]]
3589 %cmp = fcmp une double %a, %b
3590 %cmp1 = fcmp fast une double %a, %b
3591 %retval = select i1 %cmp, i1 true, i1 %cmp1
3595 define 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]]
3600 %cmp = fcmp uno double %a, %b
3601 %cmp1 = fcmp false double %a, %b
3602 %retval = or i1 %cmp, %cmp1
3606 define 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]]
3611 %cmp = fcmp uno double %a, %b
3612 %cmp1 = fcmp false double %a, %b
3613 %retval = select i1 %cmp, i1 true, i1 %cmp1
3617 define i1 @auto_gen_105_logical_fmf(double %a, double %b) {
3618 ; CHECK-LABEL: @auto_gen_105_logical_fmf(
3619 ; CHECK-NEXT: ret i1 false
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
3627 define 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]]
3632 %cmp = fcmp uno double %a, %b
3633 %cmp1 = fcmp oeq double %a, %b
3634 %retval = or i1 %cmp, %cmp1
3638 define 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]]
3643 %cmp = fcmp uno double %a, %b
3644 %cmp1 = fcmp oeq double %a, %b
3645 %retval = select i1 %cmp, i1 true, i1 %cmp1
3649 define 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]]
3654 %cmp = fcmp uno double %a, %b
3655 %cmp1 = fcmp fast oeq double %a, %b
3656 %retval = select i1 %cmp, i1 true, i1 %cmp1
3660 define 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]]
3665 %cmp = fcmp uno double %a, %b
3666 %cmp1 = fcmp ogt double %a, %b
3667 %retval = or i1 %cmp, %cmp1
3671 define 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]]
3676 %cmp = fcmp uno double %a, %b
3677 %cmp1 = fcmp ogt double %a, %b
3678 %retval = select i1 %cmp, i1 true, i1 %cmp1
3682 define 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]]
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
3693 define 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]]
3698 %cmp = fcmp uno double %a, %b
3699 %cmp1 = fcmp oge double %a, %b
3700 %retval = or i1 %cmp, %cmp1
3704 define 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]]
3709 %cmp = fcmp uno double %a, %b
3710 %cmp1 = fcmp oge double %a, %b
3711 %retval = select i1 %cmp, i1 true, i1 %cmp1
3715 define 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]]
3720 %cmp = fcmp uno double %a, %b
3721 %cmp1 = fcmp fast oge double %a, %b
3722 %retval = select i1 %cmp, i1 true, i1 %cmp1
3726 define 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]]
3731 %cmp = fcmp uno double %a, %b
3732 %cmp1 = fcmp olt double %a, %b
3733 %retval = or i1 %cmp, %cmp1
3737 define 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]]
3742 %cmp = fcmp uno double %a, %b
3743 %cmp1 = fcmp olt double %a, %b
3744 %retval = select i1 %cmp, i1 true, i1 %cmp1
3748 define 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]]
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
3759 define 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]]
3764 %cmp = fcmp uno double %a, %b
3765 %cmp1 = fcmp ole double %a, %b
3766 %retval = or i1 %cmp, %cmp1
3770 define 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]]
3775 %cmp = fcmp uno double %a, %b
3776 %cmp1 = fcmp ole double %a, %b
3777 %retval = select i1 %cmp, i1 true, i1 %cmp1
3781 define 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]]
3786 %cmp = fcmp uno double %a, %b
3787 %cmp1 = fcmp fast ole double %a, %b
3788 %retval = select i1 %cmp, i1 true, i1 %cmp1
3792 define 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]]
3797 %cmp = fcmp uno double %a, %b
3798 %cmp1 = fcmp one double %a, %b
3799 %retval = or i1 %cmp, %cmp1
3803 define 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]]
3808 %cmp = fcmp uno double %a, %b
3809 %cmp1 = fcmp one double %a, %b
3810 %retval = select i1 %cmp, i1 true, i1 %cmp1
3814 define 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]]
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
3825 define i1 @auto_gen_112(double %a, double %b) {
3826 ; CHECK-LABEL: @auto_gen_112(
3827 ; CHECK-NEXT: ret i1 true
3829 %cmp = fcmp uno double %a, %b
3830 %cmp1 = fcmp ord double %a, %b
3831 %retval = or i1 %cmp, %cmp1
3835 define i1 @auto_gen_112_logical(double %a, double %b) {
3836 ; CHECK-LABEL: @auto_gen_112_logical(
3837 ; CHECK-NEXT: ret i1 true
3839 %cmp = fcmp uno double %a, %b
3840 %cmp1 = fcmp ord double %a, %b
3841 %retval = select i1 %cmp, i1 true, i1 %cmp1
3845 define i1 @auto_gen_112_logical_fmf(double %a, double %b) {
3846 ; CHECK-LABEL: @auto_gen_112_logical_fmf(
3847 ; CHECK-NEXT: ret i1 true
3849 %cmp = fcmp uno double %a, %b
3850 %cmp1 = fcmp fast ord double %a, %b
3851 %retval = select i1 %cmp, i1 true, i1 %cmp1
3855 define 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]]
3860 %cmp = fcmp uno double %a, %b
3861 %cmp1 = fcmp ueq double %a, %b
3862 %retval = or i1 %cmp, %cmp1
3866 define 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]]
3871 %cmp = fcmp uno double %a, %b
3872 %cmp1 = fcmp ueq double %a, %b
3873 %retval = select i1 %cmp, i1 true, i1 %cmp1
3877 define 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]]
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
3888 define 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]]
3893 %cmp = fcmp uno double %a, %b
3894 %cmp1 = fcmp ugt double %a, %b
3895 %retval = or i1 %cmp, %cmp1
3899 define 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]]
3904 %cmp = fcmp uno double %a, %b
3905 %cmp1 = fcmp ugt double %a, %b
3906 %retval = select i1 %cmp, i1 true, i1 %cmp1
3910 define 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]]
3915 %cmp = fcmp uno double %a, %b
3916 %cmp1 = fcmp fast ugt double %a, %b
3917 %retval = select i1 %cmp, i1 true, i1 %cmp1
3921 define 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]]
3926 %cmp = fcmp uno double %a, %b
3927 %cmp1 = fcmp uge double %a, %b
3928 %retval = or i1 %cmp, %cmp1
3932 define 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]]
3937 %cmp = fcmp uno double %a, %b
3938 %cmp1 = fcmp uge double %a, %b
3939 %retval = select i1 %cmp, i1 true, i1 %cmp1
3943 define 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]]
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
3954 define 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]]
3959 %cmp = fcmp uno double %a, %b
3960 %cmp1 = fcmp ult double %a, %b
3961 %retval = or i1 %cmp, %cmp1
3965 define 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]]
3970 %cmp = fcmp uno double %a, %b
3971 %cmp1 = fcmp ult double %a, %b
3972 %retval = select i1 %cmp, i1 true, i1 %cmp1
3976 define 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]]
3981 %cmp = fcmp uno double %a, %b
3982 %cmp1 = fcmp fast ult double %a, %b
3983 %retval = select i1 %cmp, i1 true, i1 %cmp1
3987 define 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]]
3992 %cmp = fcmp uno double %a, %b
3993 %cmp1 = fcmp ule double %a, %b
3994 %retval = or i1 %cmp, %cmp1
3998 define 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]]
4003 %cmp = fcmp uno double %a, %b
4004 %cmp1 = fcmp ule double %a, %b
4005 %retval = select i1 %cmp, i1 true, i1 %cmp1
4009 define 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]]
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
4020 define 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]]
4025 %cmp = fcmp uno double %a, %b
4026 %cmp1 = fcmp une double %a, %b
4027 %retval = or i1 %cmp, %cmp1
4031 define 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]]
4036 %cmp = fcmp uno double %a, %b
4037 %cmp1 = fcmp une double %a, %b
4038 %retval = select i1 %cmp, i1 true, i1 %cmp1
4042 define 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]]
4047 %cmp = fcmp uno double %a, %b
4048 %cmp1 = fcmp fast une double %a, %b
4049 %retval = select i1 %cmp, i1 true, i1 %cmp1
4053 define 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]]
4058 %cmp = fcmp uno double %a, %b
4059 %cmp1 = fcmp uno double %a, %b
4060 %retval = or i1 %cmp, %cmp1
4064 define 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]]
4069 %cmp = fcmp uno double %a, %b
4070 %cmp1 = fcmp uno double %a, %b
4071 %retval = select i1 %cmp, i1 true, i1 %cmp1
4075 define i1 @auto_gen_119_logical_fmf(double %a, double %b) {
4076 ; CHECK-LABEL: @auto_gen_119_logical_fmf(
4077 ; CHECK-NEXT: ret i1 false
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
4085 define i1 @auto_gen_120(double %a, double %b) {
4086 ; CHECK-LABEL: @auto_gen_120(
4087 ; CHECK-NEXT: ret i1 true
4089 %cmp = fcmp true double %a, %b
4090 %cmp1 = fcmp false double %a, %b
4091 %retval = or i1 %cmp, %cmp1
4095 define i1 @auto_gen_120_logical(double %a, double %b) {
4096 ; CHECK-LABEL: @auto_gen_120_logical(
4097 ; CHECK-NEXT: ret i1 true
4099 %cmp = fcmp true double %a, %b
4100 %cmp1 = fcmp false double %a, %b
4101 %retval = select i1 %cmp, i1 true, i1 %cmp1
4105 define i1 @auto_gen_120_logical_fmf(double %a, double %b) {
4106 ; CHECK-LABEL: @auto_gen_120_logical_fmf(
4107 ; CHECK-NEXT: ret i1 true
4109 %cmp = fcmp true double %a, %b
4110 %cmp1 = fcmp fast false double %a, %b
4111 %retval = select i1 %cmp, i1 true, i1 %cmp1
4115 define i1 @auto_gen_121(double %a, double %b) {
4116 ; CHECK-LABEL: @auto_gen_121(
4117 ; CHECK-NEXT: ret i1 true
4119 %cmp = fcmp true double %a, %b
4120 %cmp1 = fcmp oeq double %a, %b
4121 %retval = or i1 %cmp, %cmp1
4125 define i1 @auto_gen_121_logical(double %a, double %b) {
4126 ; CHECK-LABEL: @auto_gen_121_logical(
4127 ; CHECK-NEXT: ret i1 true
4129 %cmp = fcmp true double %a, %b
4130 %cmp1 = fcmp oeq double %a, %b
4131 %retval = select i1 %cmp, i1 true, i1 %cmp1
4135 define i1 @auto_gen_121_logical_fmf(double %a, double %b) {
4136 ; CHECK-LABEL: @auto_gen_121_logical_fmf(
4137 ; CHECK-NEXT: ret i1 true
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
4145 define i1 @auto_gen_122(double %a, double %b) {
4146 ; CHECK-LABEL: @auto_gen_122(
4147 ; CHECK-NEXT: ret i1 true
4149 %cmp = fcmp true double %a, %b
4150 %cmp1 = fcmp ogt double %a, %b
4151 %retval = or i1 %cmp, %cmp1
4155 define i1 @auto_gen_122_logical(double %a, double %b) {
4156 ; CHECK-LABEL: @auto_gen_122_logical(
4157 ; CHECK-NEXT: ret i1 true
4159 %cmp = fcmp true double %a, %b
4160 %cmp1 = fcmp ogt double %a, %b
4161 %retval = select i1 %cmp, i1 true, i1 %cmp1
4165 define i1 @auto_gen_122_logical_fmf(double %a, double %b) {
4166 ; CHECK-LABEL: @auto_gen_122_logical_fmf(
4167 ; CHECK-NEXT: ret i1 true
4169 %cmp = fcmp true double %a, %b
4170 %cmp1 = fcmp fast ogt double %a, %b
4171 %retval = select i1 %cmp, i1 true, i1 %cmp1
4175 define i1 @auto_gen_123(double %a, double %b) {
4176 ; CHECK-LABEL: @auto_gen_123(
4177 ; CHECK-NEXT: ret i1 true
4179 %cmp = fcmp true double %a, %b
4180 %cmp1 = fcmp oge double %a, %b
4181 %retval = or i1 %cmp, %cmp1
4185 define i1 @auto_gen_123_logical(double %a, double %b) {
4186 ; CHECK-LABEL: @auto_gen_123_logical(
4187 ; CHECK-NEXT: ret i1 true
4189 %cmp = fcmp true double %a, %b
4190 %cmp1 = fcmp oge double %a, %b
4191 %retval = select i1 %cmp, i1 true, i1 %cmp1
4195 define i1 @auto_gen_123_logical_fmf(double %a, double %b) {
4196 ; CHECK-LABEL: @auto_gen_123_logical_fmf(
4197 ; CHECK-NEXT: ret i1 true
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
4205 define i1 @auto_gen_124(double %a, double %b) {
4206 ; CHECK-LABEL: @auto_gen_124(
4207 ; CHECK-NEXT: ret i1 true
4209 %cmp = fcmp true double %a, %b
4210 %cmp1 = fcmp olt double %a, %b
4211 %retval = or i1 %cmp, %cmp1
4215 define i1 @auto_gen_124_logical(double %a, double %b) {
4216 ; CHECK-LABEL: @auto_gen_124_logical(
4217 ; CHECK-NEXT: ret i1 true
4219 %cmp = fcmp true double %a, %b
4220 %cmp1 = fcmp olt double %a, %b
4221 %retval = select i1 %cmp, i1 true, i1 %cmp1
4225 define i1 @auto_gen_124_logical_fmf(double %a, double %b) {
4226 ; CHECK-LABEL: @auto_gen_124_logical_fmf(
4227 ; CHECK-NEXT: ret i1 true
4229 %cmp = fcmp true double %a, %b
4230 %cmp1 = fcmp fast olt double %a, %b
4231 %retval = select i1 %cmp, i1 true, i1 %cmp1
4235 define i1 @auto_gen_125(double %a, double %b) {
4236 ; CHECK-LABEL: @auto_gen_125(
4237 ; CHECK-NEXT: ret i1 true
4239 %cmp = fcmp true double %a, %b
4240 %cmp1 = fcmp ole double %a, %b
4241 %retval = or i1 %cmp, %cmp1
4245 define i1 @auto_gen_125_logical(double %a, double %b) {
4246 ; CHECK-LABEL: @auto_gen_125_logical(
4247 ; CHECK-NEXT: ret i1 true
4249 %cmp = fcmp true double %a, %b
4250 %cmp1 = fcmp ole double %a, %b
4251 %retval = select i1 %cmp, i1 true, i1 %cmp1
4255 define i1 @auto_gen_125_logical_fmf(double %a, double %b) {
4256 ; CHECK-LABEL: @auto_gen_125_logical_fmf(
4257 ; CHECK-NEXT: ret i1 true
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
4265 define i1 @auto_gen_126(double %a, double %b) {
4266 ; CHECK-LABEL: @auto_gen_126(
4267 ; CHECK-NEXT: ret i1 true
4269 %cmp = fcmp true double %a, %b
4270 %cmp1 = fcmp one double %a, %b
4271 %retval = or i1 %cmp, %cmp1
4275 define i1 @auto_gen_126_logical(double %a, double %b) {
4276 ; CHECK-LABEL: @auto_gen_126_logical(
4277 ; CHECK-NEXT: ret i1 true
4279 %cmp = fcmp true double %a, %b
4280 %cmp1 = fcmp one double %a, %b
4281 %retval = select i1 %cmp, i1 true, i1 %cmp1
4285 define i1 @auto_gen_126_logical_fmf(double %a, double %b) {
4286 ; CHECK-LABEL: @auto_gen_126_logical_fmf(
4287 ; CHECK-NEXT: ret i1 true
4289 %cmp = fcmp true double %a, %b
4290 %cmp1 = fcmp fast one double %a, %b
4291 %retval = select i1 %cmp, i1 true, i1 %cmp1
4295 define i1 @auto_gen_127(double %a, double %b) {
4296 ; CHECK-LABEL: @auto_gen_127(
4297 ; CHECK-NEXT: ret i1 true
4299 %cmp = fcmp true double %a, %b
4300 %cmp1 = fcmp ord double %a, %b
4301 %retval = or i1 %cmp, %cmp1
4305 define i1 @auto_gen_127_logical(double %a, double %b) {
4306 ; CHECK-LABEL: @auto_gen_127_logical(
4307 ; CHECK-NEXT: ret i1 true
4309 %cmp = fcmp true double %a, %b
4310 %cmp1 = fcmp ord double %a, %b
4311 %retval = select i1 %cmp, i1 true, i1 %cmp1
4315 define i1 @auto_gen_127_logical_fmf(double %a, double %b) {
4316 ; CHECK-LABEL: @auto_gen_127_logical_fmf(
4317 ; CHECK-NEXT: ret i1 true
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
4325 define i1 @auto_gen_128(double %a, double %b) {
4326 ; CHECK-LABEL: @auto_gen_128(
4327 ; CHECK-NEXT: ret i1 true
4329 %cmp = fcmp true double %a, %b
4330 %cmp1 = fcmp ueq double %a, %b
4331 %retval = or i1 %cmp, %cmp1
4335 define i1 @auto_gen_128_logical(double %a, double %b) {
4336 ; CHECK-LABEL: @auto_gen_128_logical(
4337 ; CHECK-NEXT: ret i1 true
4339 %cmp = fcmp true double %a, %b
4340 %cmp1 = fcmp ueq double %a, %b
4341 %retval = select i1 %cmp, i1 true, i1 %cmp1
4345 define i1 @auto_gen_128_logical_fmf(double %a, double %b) {
4346 ; CHECK-LABEL: @auto_gen_128_logical_fmf(
4347 ; CHECK-NEXT: ret i1 true
4349 %cmp = fcmp true double %a, %b
4350 %cmp1 = fcmp fast ueq double %a, %b
4351 %retval = select i1 %cmp, i1 true, i1 %cmp1
4355 define i1 @auto_gen_129(double %a, double %b) {
4356 ; CHECK-LABEL: @auto_gen_129(
4357 ; CHECK-NEXT: ret i1 true
4359 %cmp = fcmp true double %a, %b
4360 %cmp1 = fcmp ugt double %a, %b
4361 %retval = or i1 %cmp, %cmp1
4365 define i1 @auto_gen_129_logical(double %a, double %b) {
4366 ; CHECK-LABEL: @auto_gen_129_logical(
4367 ; CHECK-NEXT: ret i1 true
4369 %cmp = fcmp true double %a, %b
4370 %cmp1 = fcmp ugt double %a, %b
4371 %retval = select i1 %cmp, i1 true, i1 %cmp1
4375 define i1 @auto_gen_129_logical_fmf(double %a, double %b) {
4376 ; CHECK-LABEL: @auto_gen_129_logical_fmf(
4377 ; CHECK-NEXT: ret i1 true
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
4385 define i1 @auto_gen_130(double %a, double %b) {
4386 ; CHECK-LABEL: @auto_gen_130(
4387 ; CHECK-NEXT: ret i1 true
4389 %cmp = fcmp true double %a, %b
4390 %cmp1 = fcmp uge double %a, %b
4391 %retval = or i1 %cmp, %cmp1
4395 define i1 @auto_gen_130_logical(double %a, double %b) {
4396 ; CHECK-LABEL: @auto_gen_130_logical(
4397 ; CHECK-NEXT: ret i1 true
4399 %cmp = fcmp true double %a, %b
4400 %cmp1 = fcmp uge double %a, %b
4401 %retval = select i1 %cmp, i1 true, i1 %cmp1
4405 define i1 @auto_gen_130_logical_fmf(double %a, double %b) {
4406 ; CHECK-LABEL: @auto_gen_130_logical_fmf(
4407 ; CHECK-NEXT: ret i1 true
4409 %cmp = fcmp true double %a, %b
4410 %cmp1 = fcmp fast uge double %a, %b
4411 %retval = select i1 %cmp, i1 true, i1 %cmp1
4415 define i1 @auto_gen_131(double %a, double %b) {
4416 ; CHECK-LABEL: @auto_gen_131(
4417 ; CHECK-NEXT: ret i1 true
4419 %cmp = fcmp true double %a, %b
4420 %cmp1 = fcmp ult double %a, %b
4421 %retval = or i1 %cmp, %cmp1
4425 define i1 @auto_gen_131_logical(double %a, double %b) {
4426 ; CHECK-LABEL: @auto_gen_131_logical(
4427 ; CHECK-NEXT: ret i1 true
4429 %cmp = fcmp true double %a, %b
4430 %cmp1 = fcmp ult double %a, %b
4431 %retval = select i1 %cmp, i1 true, i1 %cmp1
4435 define i1 @auto_gen_131_logical_fmf(double %a, double %b) {
4436 ; CHECK-LABEL: @auto_gen_131_logical_fmf(
4437 ; CHECK-NEXT: ret i1 true
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
4445 define i1 @auto_gen_132(double %a, double %b) {
4446 ; CHECK-LABEL: @auto_gen_132(
4447 ; CHECK-NEXT: ret i1 true
4449 %cmp = fcmp true double %a, %b
4450 %cmp1 = fcmp ule double %a, %b
4451 %retval = or i1 %cmp, %cmp1
4455 define i1 @auto_gen_132_logical(double %a, double %b) {
4456 ; CHECK-LABEL: @auto_gen_132_logical(
4457 ; CHECK-NEXT: ret i1 true
4459 %cmp = fcmp true double %a, %b
4460 %cmp1 = fcmp ule double %a, %b
4461 %retval = select i1 %cmp, i1 true, i1 %cmp1
4465 define i1 @auto_gen_132_logical_fmf(double %a, double %b) {
4466 ; CHECK-LABEL: @auto_gen_132_logical_fmf(
4467 ; CHECK-NEXT: ret i1 true
4469 %cmp = fcmp true double %a, %b
4470 %cmp1 = fcmp fast ule double %a, %b
4471 %retval = select i1 %cmp, i1 true, i1 %cmp1
4475 define i1 @auto_gen_133(double %a, double %b) {
4476 ; CHECK-LABEL: @auto_gen_133(
4477 ; CHECK-NEXT: ret i1 true
4479 %cmp = fcmp true double %a, %b
4480 %cmp1 = fcmp une double %a, %b
4481 %retval = or i1 %cmp, %cmp1
4485 define i1 @auto_gen_133_logical(double %a, double %b) {
4486 ; CHECK-LABEL: @auto_gen_133_logical(
4487 ; CHECK-NEXT: ret i1 true
4489 %cmp = fcmp true double %a, %b
4490 %cmp1 = fcmp une double %a, %b
4491 %retval = select i1 %cmp, i1 true, i1 %cmp1
4495 define i1 @auto_gen_133_logical_fmf(double %a, double %b) {
4496 ; CHECK-LABEL: @auto_gen_133_logical_fmf(
4497 ; CHECK-NEXT: ret i1 true
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
4505 define i1 @auto_gen_134(double %a, double %b) {
4506 ; CHECK-LABEL: @auto_gen_134(
4507 ; CHECK-NEXT: ret i1 true
4509 %cmp = fcmp true double %a, %b
4510 %cmp1 = fcmp uno double %a, %b
4511 %retval = or i1 %cmp, %cmp1
4515 define i1 @auto_gen_134_logical(double %a, double %b) {
4516 ; CHECK-LABEL: @auto_gen_134_logical(
4517 ; CHECK-NEXT: ret i1 true
4519 %cmp = fcmp true double %a, %b
4520 %cmp1 = fcmp uno double %a, %b
4521 %retval = select i1 %cmp, i1 true, i1 %cmp1
4525 define i1 @auto_gen_134_logical_fmf(double %a, double %b) {
4526 ; CHECK-LABEL: @auto_gen_134_logical_fmf(
4527 ; CHECK-NEXT: ret i1 true
4529 %cmp = fcmp true double %a, %b
4530 %cmp1 = fcmp fast uno double %a, %b
4531 %retval = select i1 %cmp, i1 true, i1 %cmp1
4535 define i1 @auto_gen_135(double %a, double %b) {
4536 ; CHECK-LABEL: @auto_gen_135(
4537 ; CHECK-NEXT: ret i1 true
4539 %cmp = fcmp true double %a, %b
4540 %cmp1 = fcmp true double %a, %b
4541 %retval = or i1 %cmp, %cmp1
4545 define i1 @auto_gen_135_logical(double %a, double %b) {
4546 ; CHECK-LABEL: @auto_gen_135_logical(
4547 ; CHECK-NEXT: ret i1 true
4549 %cmp = fcmp true double %a, %b
4550 %cmp1 = fcmp true double %a, %b
4551 %retval = select i1 %cmp, i1 true, i1 %cmp1
4555 define i1 @auto_gen_135_logical_fmf(double %a, double %b) {
4556 ; CHECK-LABEL: @auto_gen_135_logical_fmf(
4557 ; CHECK-NEXT: ret i1 true
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
4565 define 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]]
4570 %cmp = fcmp fast olt double %a, %b
4571 %cmp1 = fcmp fast ogt double %a, %b
4572 %retval = or i1 %cmp, %cmp1
4576 define 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]]
4581 %cmp = fcmp fast olt double %a, %b
4582 %cmp1 = fcmp ogt double %a, %b
4583 %retval = or i1 %cmp, %cmp1
4587 define 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]]
4592 %cmp = fcmp olt double %a, %b
4593 %cmp1 = fcmp fast ogt double %a, %b
4594 %retval = or i1 %cmp, %cmp1
4598 define 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]]
4603 %cmp = fcmp ninf olt double %a, %b
4604 %cmp1 = fcmp nnan ogt double %a, %b
4605 %retval = or i1 %cmp, %cmp1
4609 define i1 @or_fcmp_reassoc1(i1 %x, double %a, double %b) {
4610 ; CHECK-LABEL: @or_fcmp_reassoc1(
4611 ; CHECK-NEXT: [[OR:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
4612 ; CHECK-NEXT: [[CMP2:%.*]] = fcmp ogt double [[A]], [[B]]
4613 ; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[OR]], [[CMP1:%.*]]
4614 ; CHECK-NEXT: [[RETVAL1:%.*]] = or i1 [[RETVAL]], [[CMP2]]
4615 ; CHECK-NEXT: ret i1 [[RETVAL1]]
4617 %cmp = fcmp olt double %a, %b
4618 %cmp1 = fcmp ogt double %a, %b
4619 %or = or i1 %cmp, %x
4620 %retval = or i1 %or, %cmp1
4624 define i1 @or_fcmp_reassoc2(i1 %x, double %a, double %b) {
4625 ; CHECK-LABEL: @or_fcmp_reassoc2(
4626 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
4627 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp ogt double [[A]], [[B]]
4628 ; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[X:%.*]], [[TMP1]]
4629 ; CHECK-NEXT: [[RETVAL1:%.*]] = or i1 [[RETVAL]], [[CMP1]]
4630 ; CHECK-NEXT: ret i1 [[RETVAL1]]
4632 %cmp = fcmp olt double %a, %b
4633 %cmp1 = fcmp ogt double %a, %b
4634 %or = or i1 %x, %cmp
4635 %retval = or i1 %or, %cmp1
4639 define i1 @or_fcmp_reassoc3(i1 %x, double %a, double %b) {
4640 ; CHECK-LABEL: @or_fcmp_reassoc3(
4641 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
4642 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp ogt double [[A]], [[B]]
4643 ; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[TMP1]], [[X:%.*]]
4644 ; CHECK-NEXT: [[RETVAL1:%.*]] = or i1 [[CMP1]], [[RETVAL]]
4645 ; CHECK-NEXT: ret i1 [[RETVAL1]]
4647 %cmp = fcmp olt double %a, %b
4648 %cmp1 = fcmp ogt double %a, %b
4649 %or = or i1 %cmp, %x
4650 %retval = or i1 %cmp1, %or
4654 define i1 @or_fcmp_reassoc4(i1 %x, double %a, double %b) {
4655 ; CHECK-LABEL: @or_fcmp_reassoc4(
4656 ; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]]
4657 ; CHECK-NEXT: [[CMP1:%.*]] = fcmp ogt double [[A]], [[B]]
4658 ; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[X:%.*]], [[TMP1]]
4659 ; CHECK-NEXT: [[RETVAL1:%.*]] = or i1 [[CMP1]], [[RETVAL]]
4660 ; CHECK-NEXT: ret i1 [[RETVAL1]]
4662 %cmp = fcmp olt double %a, %b
4663 %cmp1 = fcmp ogt double %a, %b
4664 %or = or i1 %x, %cmp
4665 %retval = or i1 %cmp1, %or