1 ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-unknown \
2 ; RUN: -ppc-reduce-cr-logicals=false < %s | FileCheck %s
3 ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-unknown \
4 ; RUN: -ppc-reduce-cr-logicals=false < %s | FileCheck %s
6 define signext i32 @testi32slt(i32 signext %c1, i32 signext %c2, i32 signext %c3, i32 signext %c4, i32 signext %a1, i32 signext %a2) #0 {
7 ; CHECK-LABEL: testi32slt
8 ; CHECK: crorc [[REG:[0-9]+]], 2, 6
9 ; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}
11 %cmp1 = icmp eq i32 %c3, %c4
12 %cmp3tmp = icmp eq i32 %c1, %c2
13 %cmp3 = icmp slt i1 %cmp3tmp, %cmp1
14 br i1 %cmp3, label %iftrue, label %iffalse
21 define signext i32 @testi32ult(i32 signext %c1, i32 signext %c2, i32 signext %c3, i32 signext %c4, i32 signext %a1, i32 signext %a2) #0 {
22 ; CHECK-LABEL: testi32ult
23 ; CHECK: crorc [[REG:[0-9]+]], 6, 2
24 ; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}
26 %cmp1 = icmp eq i32 %c3, %c4
27 %cmp3tmp = icmp eq i32 %c1, %c2
28 %cmp3 = icmp ult i1 %cmp3tmp, %cmp1
29 br i1 %cmp3, label %iftrue, label %iffalse
36 define signext i32 @testi32sle(i32 signext %c1, i32 signext %c2, i32 signext %c3, i32 signext %c4, i32 signext %a1, i32 signext %a2) #0 {
37 ; CHECK-LABEL: testi32sle
38 ; CHECK: crandc [[REG:[0-9]+]], 2, 6
39 ; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}
41 %cmp1 = icmp eq i32 %c3, %c4
42 %cmp3tmp = icmp eq i32 %c1, %c2
43 %cmp3 = icmp sle i1 %cmp3tmp, %cmp1
44 br i1 %cmp3, label %iftrue, label %iffalse
51 define signext i32 @testi32ule(i32 signext %c1, i32 signext %c2, i32 signext %c3, i32 signext %c4, i32 signext %a1, i32 signext %a2) #0 {
52 ; CHECK-LABEL: testi32ule
53 ; CHECK: crandc [[REG:[0-9]+]], 6, 2
54 ; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}
56 %cmp1 = icmp eq i32 %c3, %c4
57 %cmp3tmp = icmp eq i32 %c1, %c2
58 %cmp3 = icmp ule i1 %cmp3tmp, %cmp1
59 br i1 %cmp3, label %iftrue, label %iffalse
66 define signext i32 @testi32eq(i32 signext %c1, i32 signext %c2, i32 signext %c3, i32 signext %c4, i32 signext %a1, i32 signext %a2) #0 {
67 ; CHECK-LABEL: testi32eq:
68 ; CHECK: crxor [[REG:[0-9]+]], 6, 2
69 ; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}
71 %cmp1 = icmp eq i32 %c3, %c4
72 %cmp3tmp = icmp eq i32 %c1, %c2
73 %cmp3 = icmp eq i1 %cmp3tmp, %cmp1
74 br i1 %cmp3, label %iftrue, label %iffalse
81 define signext i32 @testi32sge(i32 signext %c1, i32 signext %c2, i32 signext %c3, i32 signext %c4, i32 signext %a1, i32 signext %a2) #0 {
82 ; CHECK-LABEL: testi32sge:
83 ; CHECK: crandc [[REG:[0-9]+]], 6, 2
84 ; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}
86 %cmp1 = icmp eq i32 %c3, %c4
87 %cmp3tmp = icmp eq i32 %c1, %c2
88 %cmp3 = icmp sge i1 %cmp3tmp, %cmp1
89 br i1 %cmp3, label %iftrue, label %iffalse
96 define signext i32 @testi32uge(i32 signext %c1, i32 signext %c2, i32 signext %c3, i32 signext %c4, i32 signext %a1, i32 signext %a2) #0 {
97 ; CHECK-LABEL: testi32uge:
98 ; CHECK: crandc [[REG:[0-9]+]], 2, 6
99 ; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}
101 %cmp1 = icmp eq i32 %c3, %c4
102 %cmp3tmp = icmp eq i32 %c1, %c2
103 %cmp3 = icmp uge i1 %cmp3tmp, %cmp1
104 br i1 %cmp3, label %iftrue, label %iffalse
111 define signext i32 @testi32sgt(i32 signext %c1, i32 signext %c2, i32 signext %c3, i32 signext %c4, i32 signext %a1, i32 signext %a2) #0 {
112 ; CHECK-LABEL: testi32sgt:
113 ; CHECK: crorc [[REG:[0-9]+]], 6, 2
114 ; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}
116 %cmp1 = icmp eq i32 %c3, %c4
117 %cmp3tmp = icmp eq i32 %c1, %c2
118 %cmp3 = icmp sgt i1 %cmp3tmp, %cmp1
119 br i1 %cmp3, label %iftrue, label %iffalse
126 define signext i32 @testi32ugt(i32 signext %c1, i32 signext %c2, i32 signext %c3, i32 signext %c4, i32 signext %a1, i32 signext %a2) #0 {
127 ; CHECK-LABEL: testi32ugt:
128 ; CHECK: crorc [[REG:[0-9]+]], 2, 6
129 ; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}
131 %cmp1 = icmp eq i32 %c3, %c4
132 %cmp3tmp = icmp eq i32 %c1, %c2
133 %cmp3 = icmp ugt i1 %cmp3tmp, %cmp1
134 br i1 %cmp3, label %iftrue, label %iffalse
141 define signext i32 @testi32ne(i32 signext %c1, i32 signext %c2, i32 signext %c3, i32 signext %c4, i32 signext %a1, i32 signext %a2) #0 {
142 ; CHECK-LABEL: testi32ne:
143 ; CHECK: creqv [[REG:[0-9]+]], 6, 2
144 ; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}
146 %cmp1 = icmp eq i32 %c3, %c4
147 %cmp3tmp = icmp eq i32 %c1, %c2
148 %cmp3 = icmp ne i1 %cmp3tmp, %cmp1
149 br i1 %cmp3, label %iftrue, label %iffalse
156 define i64 @testi64slt(i64 %c1, i64 %c2, i64 %c3, i64 %c4, i64 %a1, i64 %a2) #0 {
157 ; CHECK-LABEL: testi64slt
158 ; CHECK: crorc [[REG:[0-9]+]], 2, 6
159 ; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}
161 %cmp1 = icmp eq i64 %c3, %c4
162 %cmp3tmp = icmp eq i64 %c1, %c2
163 %cmp3 = icmp slt i1 %cmp3tmp, %cmp1
164 br i1 %cmp3, label %iftrue, label %iffalse
171 define i64 @testi64ult(i64 %c1, i64 %c2, i64 %c3, i64 %c4, i64 %a1, i64 %a2) #0 {
172 ; CHECK-LABEL: testi64ult
173 ; CHECK: crorc [[REG:[0-9]+]], 6, 2
174 ; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}
176 %cmp1 = icmp eq i64 %c3, %c4
177 %cmp3tmp = icmp eq i64 %c1, %c2
178 %cmp3 = icmp ult i1 %cmp3tmp, %cmp1
179 br i1 %cmp3, label %iftrue, label %iffalse
186 define i64 @testi64sle(i64 %c1, i64 %c2, i64 %c3, i64 %c4, i64 %a1, i64 %a2) #0 {
187 ; CHECK-LABEL: testi64sle
188 ; CHECK: crandc [[REG:[0-9]+]], 2, 6
189 ; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}
191 %cmp1 = icmp eq i64 %c3, %c4
192 %cmp3tmp = icmp eq i64 %c1, %c2
193 %cmp3 = icmp sle i1 %cmp3tmp, %cmp1
194 br i1 %cmp3, label %iftrue, label %iffalse
201 define i64 @testi64ule(i64 %c1, i64 %c2, i64 %c3, i64 %c4, i64 %a1, i64 %a2) #0 {
202 ; CHECK-LABEL: testi64ule
203 ; CHECK: crandc [[REG:[0-9]+]], 6, 2
204 ; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}
206 %cmp1 = icmp eq i64 %c3, %c4
207 %cmp3tmp = icmp eq i64 %c1, %c2
208 %cmp3 = icmp ule i1 %cmp3tmp, %cmp1
209 br i1 %cmp3, label %iftrue, label %iffalse
216 define i64 @testi64eq(i64 %c1, i64 %c2, i64 %c3, i64 %c4, i64 %a1, i64 %a2) #0 {
217 ; CHECK-LABEL: testi64eq
218 ; CHECK: crxor [[REG:[0-9]+]], 6, 2
219 ; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}
221 %cmp1 = icmp eq i64 %c3, %c4
222 %cmp3tmp = icmp eq i64 %c1, %c2
223 %cmp3 = icmp eq i1 %cmp3tmp, %cmp1
224 br i1 %cmp3, label %iftrue, label %iffalse
231 define i64 @testi64sge(i64 %c1, i64 %c2, i64 %c3, i64 %c4, i64 %a1, i64 %a2) #0 {
232 ; CHECK-LABEL: testi64sge
233 ; CHECK: crandc [[REG:[0-9]+]], 6, 2
234 ; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}
236 %cmp1 = icmp eq i64 %c3, %c4
237 %cmp3tmp = icmp eq i64 %c1, %c2
238 %cmp3 = icmp sge i1 %cmp3tmp, %cmp1
239 br i1 %cmp3, label %iftrue, label %iffalse
246 define i64 @testi64uge(i64 %c1, i64 %c2, i64 %c3, i64 %c4, i64 %a1, i64 %a2) #0 {
247 ; CHECK-LABEL: testi64uge
248 ; CHECK: crandc [[REG:[0-9]+]], 2, 6
249 ; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}
251 %cmp1 = icmp eq i64 %c3, %c4
252 %cmp3tmp = icmp eq i64 %c1, %c2
253 %cmp3 = icmp uge i1 %cmp3tmp, %cmp1
254 br i1 %cmp3, label %iftrue, label %iffalse
261 define i64 @testi64sgt(i64 %c1, i64 %c2, i64 %c3, i64 %c4, i64 %a1, i64 %a2) #0 {
262 ; CHECK-LABEL: testi64sgt
263 ; CHECK: crorc [[REG:[0-9]+]], 6, 2
264 ; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}
266 %cmp1 = icmp eq i64 %c3, %c4
267 %cmp3tmp = icmp eq i64 %c1, %c2
268 %cmp3 = icmp sgt i1 %cmp3tmp, %cmp1
269 br i1 %cmp3, label %iftrue, label %iffalse
276 define i64 @testi64ugt(i64 %c1, i64 %c2, i64 %c3, i64 %c4, i64 %a1, i64 %a2) #0 {
277 ; CHECK-LABEL: testi64ugt
278 ; CHECK: crorc [[REG:[0-9]+]], 2, 6
279 ; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}
281 %cmp1 = icmp eq i64 %c3, %c4
282 %cmp3tmp = icmp eq i64 %c1, %c2
283 %cmp3 = icmp ugt i1 %cmp3tmp, %cmp1
284 br i1 %cmp3, label %iftrue, label %iffalse
291 define i64 @testi64ne(i64 %c1, i64 %c2, i64 %c3, i64 %c4, i64 %a1, i64 %a2) #0 {
292 ; CHECK-LABEL: testi64ne
293 ; CHECK: creqv [[REG:[0-9]+]], 6, 2
294 ; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}
296 %cmp1 = icmp eq i64 %c3, %c4
297 %cmp3tmp = icmp eq i64 %c1, %c2
298 %cmp3 = icmp ne i1 %cmp3tmp, %cmp1
299 br i1 %cmp3, label %iftrue, label %iffalse
306 define float @testfloatslt(float %c1, float %c2, float %c3, float %c4, float %a1, float %a2) #0 {
307 ; CHECK-LABEL: testfloatslt
308 ; CHECK: crorc [[REG:[0-9]+]], 2, 6
309 ; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}
311 %cmp1 = fcmp oeq float %c3, %c4
312 %cmp3tmp = fcmp oeq float %c1, %c2
313 %cmp3 = icmp slt i1 %cmp3tmp, %cmp1
314 br i1 %cmp3, label %iftrue, label %iffalse
321 define float @testfloatult(float %c1, float %c2, float %c3, float %c4, float %a1, float %a2) #0 {
322 ; CHECK-LABEL: testfloatult
323 ; CHECK: crorc [[REG:[0-9]+]], 6, 2
324 ; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}
326 %cmp1 = fcmp oeq float %c3, %c4
327 %cmp3tmp = fcmp oeq float %c1, %c2
328 %cmp3 = icmp ult i1 %cmp3tmp, %cmp1
329 br i1 %cmp3, label %iftrue, label %iffalse
336 define float @testfloatsle(float %c1, float %c2, float %c3, float %c4, float %a1, float %a2) #0 {
337 ; CHECK-LABEL: testfloatsle
338 ; CHECK: crandc [[REG:[0-9]+]], 2, 6
339 ; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}
341 %cmp1 = fcmp oeq float %c3, %c4
342 %cmp3tmp = fcmp oeq float %c1, %c2
343 %cmp3 = icmp sle i1 %cmp3tmp, %cmp1
344 br i1 %cmp3, label %iftrue, label %iffalse
351 define float @testfloatule(float %c1, float %c2, float %c3, float %c4, float %a1, float %a2) #0 {
352 ; CHECK-LABEL: testfloatule
353 ; CHECK: crandc [[REG:[0-9]+]], 6, 2
354 ; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}
356 %cmp1 = fcmp oeq float %c3, %c4
357 %cmp3tmp = fcmp oeq float %c1, %c2
358 %cmp3 = icmp ule i1 %cmp3tmp, %cmp1
359 br i1 %cmp3, label %iftrue, label %iffalse
366 define float @testfloateq(float %c1, float %c2, float %c3, float %c4, float %a1, float %a2) #0 {
367 ; CHECK-LABEL: testfloateq
368 ; CHECK: crxor [[REG:[0-9]+]], 6, 2
369 ; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}
371 %cmp1 = fcmp oeq float %c3, %c4
372 %cmp3tmp = fcmp oeq float %c1, %c2
373 %cmp3 = icmp eq i1 %cmp3tmp, %cmp1
374 br i1 %cmp3, label %iftrue, label %iffalse
381 define float @testfloatsge(float %c1, float %c2, float %c3, float %c4, float %a1, float %a2) #0 {
382 ; CHECK-LABEL: testfloatsge
383 ; CHECK: crandc [[REG:[0-9]+]], 6, 2
384 ; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}
386 %cmp1 = fcmp oeq float %c3, %c4
387 %cmp3tmp = fcmp oeq float %c1, %c2
388 %cmp3 = icmp sge i1 %cmp3tmp, %cmp1
389 br i1 %cmp3, label %iftrue, label %iffalse
396 define float @testfloatuge(float %c1, float %c2, float %c3, float %c4, float %a1, float %a2) #0 {
397 ; CHECK-LABEL: testfloatuge
398 ; CHECK: crandc [[REG:[0-9]+]], 2, 6
399 ; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}
401 %cmp1 = fcmp oeq float %c3, %c4
402 %cmp3tmp = fcmp oeq float %c1, %c2
403 %cmp3 = icmp uge i1 %cmp3tmp, %cmp1
404 br i1 %cmp3, label %iftrue, label %iffalse
411 define float @testfloatsgt(float %c1, float %c2, float %c3, float %c4, float %a1, float %a2) #0 {
412 ; CHECK-LABEL: testfloatsgt
413 ; CHECK: crorc [[REG:[0-9]+]], 6, 2
414 ; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}
416 %cmp1 = fcmp oeq float %c3, %c4
417 %cmp3tmp = fcmp oeq float %c1, %c2
418 %cmp3 = icmp sgt i1 %cmp3tmp, %cmp1
419 br i1 %cmp3, label %iftrue, label %iffalse
426 define float @testfloatugt(float %c1, float %c2, float %c3, float %c4, float %a1, float %a2) #0 {
427 ; CHECK-LABEL: testfloatugt
428 ; CHECK: crorc [[REG:[0-9]+]], 2, 6
429 ; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}
431 %cmp1 = fcmp oeq float %c3, %c4
432 %cmp3tmp = fcmp oeq float %c1, %c2
433 %cmp3 = icmp ugt i1 %cmp3tmp, %cmp1
434 br i1 %cmp3, label %iftrue, label %iffalse
441 define float @testfloatne(float %c1, float %c2, float %c3, float %c4, float %a1, float %a2) #0 {
442 ; CHECK-LABEL: testfloatne
443 ; CHECK: creqv [[REG:[0-9]+]], 6, 2
444 ; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}
446 %cmp1 = fcmp oeq float %c3, %c4
447 %cmp3tmp = fcmp oeq float %c1, %c2
448 %cmp3 = icmp ne i1 %cmp3tmp, %cmp1
449 br i1 %cmp3, label %iftrue, label %iffalse
456 define double @testdoubleslt(double %c1, double %c2, double %c3, double %c4, double %a1, double %a2) #0 {
457 ; CHECK-LABEL: testdoubleslt
458 ; CHECK: crorc [[REG:[0-9]+]], 2, 6
459 ; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}
461 %cmp1 = fcmp oeq double %c3, %c4
462 %cmp3tmp = fcmp oeq double %c1, %c2
463 %cmp3 = icmp slt i1 %cmp3tmp, %cmp1
464 br i1 %cmp3, label %iftrue, label %iffalse
471 define double @testdoubleult(double %c1, double %c2, double %c3, double %c4, double %a1, double %a2) #0 {
472 ; CHECK-LABEL: testdoubleult:
473 ; CHECK: crorc [[REG:[0-9]+]], 6, 2
474 ; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}
476 %cmp1 = fcmp oeq double %c3, %c4
477 %cmp3tmp = fcmp oeq double %c1, %c2
478 %cmp3 = icmp ult i1 %cmp3tmp, %cmp1
479 br i1 %cmp3, label %iftrue, label %iffalse
486 define double @testdoublesle(double %c1, double %c2, double %c3, double %c4, double %a1, double %a2) #0 {
487 ; CHECK-LABEL: testdoublesle
488 ; CHECK: crandc [[REG:[0-9]+]], 2, 6
489 ; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}
491 %cmp1 = fcmp oeq double %c3, %c4
492 %cmp3tmp = fcmp oeq double %c1, %c2
493 %cmp3 = icmp sle i1 %cmp3tmp, %cmp1
494 br i1 %cmp3, label %iftrue, label %iffalse
501 define double @testdoubleule(double %c1, double %c2, double %c3, double %c4, double %a1, double %a2) #0 {
502 ; CHECK-LABEL: testdoubleule:
503 ; CHECK: crandc [[REG:[0-9]+]], 6, 2
504 ; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}
506 %cmp1 = fcmp oeq double %c3, %c4
507 %cmp3tmp = fcmp oeq double %c1, %c2
508 %cmp3 = icmp ule i1 %cmp3tmp, %cmp1
509 br i1 %cmp3, label %iftrue, label %iffalse
516 define double @testdoubleeq(double %c1, double %c2, double %c3, double %c4, double %a1, double %a2) #0 {
517 ; CHECK-LABEL: testdoubleeq
518 ; CHECK: crxor [[REG:[0-9]+]], 6, 2
519 ; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}
521 %cmp1 = fcmp oeq double %c3, %c4
522 %cmp3tmp = fcmp oeq double %c1, %c2
523 %cmp3 = icmp eq i1 %cmp3tmp, %cmp1
524 br i1 %cmp3, label %iftrue, label %iffalse
531 define double @testdoublesge(double %c1, double %c2, double %c3, double %c4, double %a1, double %a2) #0 {
532 ; CHECK-LABEL: testdoublesge
533 ; CHECK: crandc [[REG:[0-9]+]], 6, 2
534 ; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}
536 %cmp1 = fcmp oeq double %c3, %c4
537 %cmp3tmp = fcmp oeq double %c1, %c2
538 %cmp3 = icmp sge i1 %cmp3tmp, %cmp1
539 br i1 %cmp3, label %iftrue, label %iffalse
546 define double @testdoubleuge(double %c1, double %c2, double %c3, double %c4, double %a1, double %a2) #0 {
547 ; CHECK-LABEL: testdoubleuge
548 ; CHECK: crandc [[REG:[0-9]+]], 2, 6
549 ; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}
551 %cmp1 = fcmp oeq double %c3, %c4
552 %cmp3tmp = fcmp oeq double %c1, %c2
553 %cmp3 = icmp uge i1 %cmp3tmp, %cmp1
554 br i1 %cmp3, label %iftrue, label %iffalse
561 define double @testdoublesgt(double %c1, double %c2, double %c3, double %c4, double %a1, double %a2) #0 {
562 ; CHECK-LABEL: testdoublesgt:
563 ; CHECK: crorc [[REG:[0-9]+]], 6, 2
564 ; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}
566 %cmp1 = fcmp oeq double %c3, %c4
567 %cmp3tmp = fcmp oeq double %c1, %c2
568 %cmp3 = icmp sgt i1 %cmp3tmp, %cmp1
569 br i1 %cmp3, label %iftrue, label %iffalse
576 define double @testdoubleugt(double %c1, double %c2, double %c3, double %c4, double %a1, double %a2) #0 {
577 ; CHECK-LABEL: testdoubleugt
578 ; CHECK: crorc [[REG:[0-9]+]], 2, 6
579 ; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}
581 %cmp1 = fcmp oeq double %c3, %c4
582 %cmp3tmp = fcmp oeq double %c1, %c2
583 %cmp3 = icmp ugt i1 %cmp3tmp, %cmp1
584 br i1 %cmp3, label %iftrue, label %iffalse
591 define double @testdoublene(double %c1, double %c2, double %c3, double %c4, double %a1, double %a2) #0 {
592 ; CHECK-LABEL: testdoublene
593 ; CHECK: creqv [[REG:[0-9]+]], 6, 2
594 ; CHECK: bc 12, [[REG]], {{\.[a-zA-Z0-9_]+}}
596 %cmp1 = fcmp oeq double %c3, %c4
597 %cmp3tmp = fcmp oeq double %c1, %c2
598 %cmp3 = icmp ne i1 %cmp3tmp, %cmp1
599 br i1 %cmp3, label %iftrue, label %iffalse