1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=x86_64-linux-gnu -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s
3 # RUN: llc -mtriple=i386-linux-gnu -mattr=+sse2 -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s
7 define i1 @fcmp_float_oeq(float %x, float %y) {
8 %1 = fcmp oeq float %x, %y
12 define i1 @fcmp_float_ogt(float %x, float %y) {
13 %1 = fcmp ogt float %x, %y
17 define i1 @fcmp_float_oge(float %x, float %y) {
18 %1 = fcmp oge float %x, %y
22 define i1 @fcmp_float_olt(float %x, float %y) {
23 %1 = fcmp olt float %x, %y
27 define i1 @fcmp_float_ole(float %x, float %y) {
28 %1 = fcmp ole float %x, %y
32 define i1 @fcmp_float_one(float %x, float %y) {
33 %1 = fcmp one float %x, %y
37 define i1 @fcmp_float_ord(float %x, float %y) {
38 %1 = fcmp ord float %x, %y
42 define i1 @fcmp_float_uno(float %x, float %y) {
43 %1 = fcmp uno float %x, %y
47 define i1 @fcmp_float_ueq(float %x, float %y) {
48 %1 = fcmp ueq float %x, %y
52 define i1 @fcmp_float_ugt(float %x, float %y) {
53 %1 = fcmp ugt float %x, %y
57 define i1 @fcmp_float_uge(float %x, float %y) {
58 %1 = fcmp uge float %x, %y
62 define i1 @fcmp_float_ult(float %x, float %y) {
63 %1 = fcmp ult float %x, %y
67 define i1 @fcmp_float_ule(float %x, float %y) {
68 %1 = fcmp ule float %x, %y
72 define i1 @fcmp_float_une(float %x, float %y) {
73 %1 = fcmp une float %x, %y
77 define i1 @fcmp_double_oeq(double %x, double %y) {
78 %1 = fcmp oeq double %x, %y
82 define i1 @fcmp_double_ogt(double %x, double %y) {
83 %1 = fcmp ogt double %x, %y
87 define i1 @fcmp_double_oge(double %x, double %y) {
88 %1 = fcmp oge double %x, %y
92 define i1 @fcmp_double_olt(double %x, double %y) {
93 %1 = fcmp olt double %x, %y
97 define i1 @fcmp_double_ole(double %x, double %y) {
98 %1 = fcmp ole double %x, %y
102 define i1 @fcmp_double_one(double %x, double %y) {
103 %1 = fcmp one double %x, %y
107 define i1 @fcmp_double_ord(double %x, double %y) {
108 %1 = fcmp ord double %x, %y
112 define i1 @fcmp_double_uno(double %x, double %y) {
113 %1 = fcmp uno double %x, %y
117 define i1 @fcmp_double_ueq(double %x, double %y) {
118 %1 = fcmp ueq double %x, %y
122 define i1 @fcmp_double_ugt(double %x, double %y) {
123 %1 = fcmp ugt double %x, %y
127 define i1 @fcmp_double_uge(double %x, double %y) {
128 %1 = fcmp uge double %x, %y
132 define i1 @fcmp_double_ult(double %x, double %y) {
133 %1 = fcmp ult double %x, %y
137 define i1 @fcmp_double_ule(double %x, double %y) {
138 %1 = fcmp ule double %x, %y
142 define i1 @fcmp_double_une(double %x, double %y) {
143 %1 = fcmp une double %x, %y
152 regBankSelected: true
153 tracksRegLiveness: true
155 - { id: 0, class: vecr }
156 - { id: 1, class: vecr }
157 - { id: 2, class: vecr }
158 - { id: 3, class: vecr }
159 - { id: 4, class: _ }
160 - { id: 5, class: gpr }
161 - { id: 6, class: gpr }
164 liveins: $xmm0, $xmm1
166 ; CHECK-LABEL: name: fcmp_float_oeq
167 ; CHECK: liveins: $xmm0, $xmm1
168 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
169 ; CHECK: [[COPY1:%[0-9]+]]:fr32 = COPY [[COPY]]
170 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
171 ; CHECK: [[COPY3:%[0-9]+]]:fr32 = COPY [[COPY2]]
172 ; CHECK: UCOMISSrr [[COPY1]], [[COPY3]], implicit-def $eflags
173 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 4, implicit $eflags
174 ; CHECK: [[SETCCr1:%[0-9]+]]:gr8 = SETCCr 11, implicit $eflags
175 ; CHECK: [[AND8rr:%[0-9]+]]:gr8 = AND8rr [[SETCCr]], [[SETCCr1]], implicit-def $eflags
176 ; CHECK: $al = COPY [[AND8rr]]
177 ; CHECK: RET 0, implicit $al
178 %2:vecr(s128) = COPY $xmm0
179 %0:vecr(s32) = G_TRUNC %2(s128)
180 %3:vecr(s128) = COPY $xmm1
181 %1:vecr(s32) = G_TRUNC %3(s128)
182 %6:gpr(s8) = G_FCMP floatpred(oeq), %0(s32), %1
183 %5:gpr(s8) = COPY %6(s8)
192 regBankSelected: true
193 tracksRegLiveness: true
195 - { id: 0, class: vecr }
196 - { id: 1, class: vecr }
197 - { id: 2, class: vecr }
198 - { id: 3, class: vecr }
199 - { id: 4, class: _ }
200 - { id: 5, class: gpr }
201 - { id: 6, class: gpr }
204 liveins: $xmm0, $xmm1
206 ; CHECK-LABEL: name: fcmp_float_ogt
207 ; CHECK: liveins: $xmm0, $xmm1
208 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
209 ; CHECK: [[COPY1:%[0-9]+]]:fr32 = COPY [[COPY]]
210 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
211 ; CHECK: [[COPY3:%[0-9]+]]:fr32 = COPY [[COPY2]]
212 ; CHECK: UCOMISSrr [[COPY1]], [[COPY3]], implicit-def $eflags
213 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 7, implicit $eflags
214 ; CHECK: $al = COPY [[SETCCr]]
215 ; CHECK: RET 0, implicit $al
216 %2:vecr(s128) = COPY $xmm0
217 %0:vecr(s32) = G_TRUNC %2(s128)
218 %3:vecr(s128) = COPY $xmm1
219 %1:vecr(s32) = G_TRUNC %3(s128)
220 %6:gpr(s8) = G_FCMP floatpred(ogt), %0(s32), %1
221 %5:gpr(s8) = COPY %6(s8)
230 regBankSelected: true
231 tracksRegLiveness: true
233 - { id: 0, class: vecr }
234 - { id: 1, class: vecr }
235 - { id: 2, class: vecr }
236 - { id: 3, class: vecr }
237 - { id: 4, class: _ }
238 - { id: 5, class: gpr }
239 - { id: 6, class: gpr }
242 liveins: $xmm0, $xmm1
244 ; CHECK-LABEL: name: fcmp_float_oge
245 ; CHECK: liveins: $xmm0, $xmm1
246 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
247 ; CHECK: [[COPY1:%[0-9]+]]:fr32 = COPY [[COPY]]
248 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
249 ; CHECK: [[COPY3:%[0-9]+]]:fr32 = COPY [[COPY2]]
250 ; CHECK: UCOMISSrr [[COPY1]], [[COPY3]], implicit-def $eflags
251 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 3, implicit $eflags
252 ; CHECK: $al = COPY [[SETCCr]]
253 ; CHECK: RET 0, implicit $al
254 %2:vecr(s128) = COPY $xmm0
255 %0:vecr(s32) = G_TRUNC %2(s128)
256 %3:vecr(s128) = COPY $xmm1
257 %1:vecr(s32) = G_TRUNC %3(s128)
258 %6:gpr(s8) = G_FCMP floatpred(oge), %0(s32), %1
259 %5:gpr(s8) = COPY %6(s8)
268 regBankSelected: true
269 tracksRegLiveness: true
271 - { id: 0, class: vecr }
272 - { id: 1, class: vecr }
273 - { id: 2, class: vecr }
274 - { id: 3, class: vecr }
275 - { id: 4, class: _ }
276 - { id: 5, class: gpr }
277 - { id: 6, class: gpr }
280 liveins: $xmm0, $xmm1
282 ; CHECK-LABEL: name: fcmp_float_olt
283 ; CHECK: liveins: $xmm0, $xmm1
284 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
285 ; CHECK: [[COPY1:%[0-9]+]]:fr32 = COPY [[COPY]]
286 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
287 ; CHECK: [[COPY3:%[0-9]+]]:fr32 = COPY [[COPY2]]
288 ; CHECK: UCOMISSrr [[COPY3]], [[COPY1]], implicit-def $eflags
289 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 7, implicit $eflags
290 ; CHECK: $al = COPY [[SETCCr]]
291 ; CHECK: RET 0, implicit $al
292 %2:vecr(s128) = COPY $xmm0
293 %0:vecr(s32) = G_TRUNC %2(s128)
294 %3:vecr(s128) = COPY $xmm1
295 %1:vecr(s32) = G_TRUNC %3(s128)
296 %6:gpr(s8) = G_FCMP floatpred(olt), %0(s32), %1
297 %5:gpr(s8) = COPY %6(s8)
306 regBankSelected: true
307 tracksRegLiveness: true
309 - { id: 0, class: vecr }
310 - { id: 1, class: vecr }
311 - { id: 2, class: vecr }
312 - { id: 3, class: vecr }
313 - { id: 4, class: _ }
314 - { id: 5, class: gpr }
315 - { id: 6, class: gpr }
318 liveins: $xmm0, $xmm1
320 ; CHECK-LABEL: name: fcmp_float_ole
321 ; CHECK: liveins: $xmm0, $xmm1
322 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
323 ; CHECK: [[COPY1:%[0-9]+]]:fr32 = COPY [[COPY]]
324 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
325 ; CHECK: [[COPY3:%[0-9]+]]:fr32 = COPY [[COPY2]]
326 ; CHECK: UCOMISSrr [[COPY3]], [[COPY1]], implicit-def $eflags
327 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 3, implicit $eflags
328 ; CHECK: $al = COPY [[SETCCr]]
329 ; CHECK: RET 0, implicit $al
330 %2:vecr(s128) = COPY $xmm0
331 %0:vecr(s32) = G_TRUNC %2(s128)
332 %3:vecr(s128) = COPY $xmm1
333 %1:vecr(s32) = G_TRUNC %3(s128)
334 %6:gpr(s8) = G_FCMP floatpred(ole), %0(s32), %1
335 %5:gpr(s8) = COPY %6(s8)
344 regBankSelected: true
345 tracksRegLiveness: true
347 - { id: 0, class: vecr }
348 - { id: 1, class: vecr }
349 - { id: 2, class: vecr }
350 - { id: 3, class: vecr }
351 - { id: 4, class: _ }
352 - { id: 5, class: gpr }
353 - { id: 6, class: gpr }
356 liveins: $xmm0, $xmm1
358 ; CHECK-LABEL: name: fcmp_float_one
359 ; CHECK: liveins: $xmm0, $xmm1
360 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
361 ; CHECK: [[COPY1:%[0-9]+]]:fr32 = COPY [[COPY]]
362 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
363 ; CHECK: [[COPY3:%[0-9]+]]:fr32 = COPY [[COPY2]]
364 ; CHECK: UCOMISSrr [[COPY1]], [[COPY3]], implicit-def $eflags
365 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 5, implicit $eflags
366 ; CHECK: $al = COPY [[SETCCr]]
367 ; CHECK: RET 0, implicit $al
368 %2:vecr(s128) = COPY $xmm0
369 %0:vecr(s32) = G_TRUNC %2(s128)
370 %3:vecr(s128) = COPY $xmm1
371 %1:vecr(s32) = G_TRUNC %3(s128)
372 %6:gpr(s8) = G_FCMP floatpred(one), %0(s32), %1
373 %5:gpr(s8) = COPY %6(s8)
382 regBankSelected: true
383 tracksRegLiveness: true
385 - { id: 0, class: vecr }
386 - { id: 1, class: vecr }
387 - { id: 2, class: vecr }
388 - { id: 3, class: vecr }
389 - { id: 4, class: _ }
390 - { id: 5, class: gpr }
391 - { id: 6, class: gpr }
394 liveins: $xmm0, $xmm1
396 ; CHECK-LABEL: name: fcmp_float_ord
397 ; CHECK: liveins: $xmm0, $xmm1
398 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
399 ; CHECK: [[COPY1:%[0-9]+]]:fr32 = COPY [[COPY]]
400 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
401 ; CHECK: [[COPY3:%[0-9]+]]:fr32 = COPY [[COPY2]]
402 ; CHECK: UCOMISSrr [[COPY1]], [[COPY3]], implicit-def $eflags
403 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 11, implicit $eflags
404 ; CHECK: $al = COPY [[SETCCr]]
405 ; CHECK: RET 0, implicit $al
406 %2:vecr(s128) = COPY $xmm0
407 %0:vecr(s32) = G_TRUNC %2(s128)
408 %3:vecr(s128) = COPY $xmm1
409 %1:vecr(s32) = G_TRUNC %3(s128)
410 %6:gpr(s8) = G_FCMP floatpred(ord), %0(s32), %1
411 %5:gpr(s8) = COPY %6(s8)
420 regBankSelected: true
421 tracksRegLiveness: true
423 - { id: 0, class: vecr }
424 - { id: 1, class: vecr }
425 - { id: 2, class: vecr }
426 - { id: 3, class: vecr }
427 - { id: 4, class: _ }
428 - { id: 5, class: gpr }
429 - { id: 6, class: gpr }
432 liveins: $xmm0, $xmm1
434 ; CHECK-LABEL: name: fcmp_float_uno
435 ; CHECK: liveins: $xmm0, $xmm1
436 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
437 ; CHECK: [[COPY1:%[0-9]+]]:fr32 = COPY [[COPY]]
438 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
439 ; CHECK: [[COPY3:%[0-9]+]]:fr32 = COPY [[COPY2]]
440 ; CHECK: UCOMISSrr [[COPY1]], [[COPY3]], implicit-def $eflags
441 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 10, implicit $eflags
442 ; CHECK: $al = COPY [[SETCCr]]
443 ; CHECK: RET 0, implicit $al
444 %2:vecr(s128) = COPY $xmm0
445 %0:vecr(s32) = G_TRUNC %2(s128)
446 %3:vecr(s128) = COPY $xmm1
447 %1:vecr(s32) = G_TRUNC %3(s128)
448 %6:gpr(s8) = G_FCMP floatpred(uno), %0(s32), %1
449 %5:gpr(s8) = COPY %6(s8)
458 regBankSelected: true
459 tracksRegLiveness: true
461 - { id: 0, class: vecr }
462 - { id: 1, class: vecr }
463 - { id: 2, class: vecr }
464 - { id: 3, class: vecr }
465 - { id: 4, class: _ }
466 - { id: 5, class: gpr }
467 - { id: 6, class: gpr }
470 liveins: $xmm0, $xmm1
472 ; CHECK-LABEL: name: fcmp_float_ueq
473 ; CHECK: liveins: $xmm0, $xmm1
474 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
475 ; CHECK: [[COPY1:%[0-9]+]]:fr32 = COPY [[COPY]]
476 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
477 ; CHECK: [[COPY3:%[0-9]+]]:fr32 = COPY [[COPY2]]
478 ; CHECK: UCOMISSrr [[COPY1]], [[COPY3]], implicit-def $eflags
479 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 4, implicit $eflags
480 ; CHECK: $al = COPY [[SETCCr]]
481 ; CHECK: RET 0, implicit $al
482 %2:vecr(s128) = COPY $xmm0
483 %0:vecr(s32) = G_TRUNC %2(s128)
484 %3:vecr(s128) = COPY $xmm1
485 %1:vecr(s32) = G_TRUNC %3(s128)
486 %6:gpr(s8) = G_FCMP floatpred(ueq), %0(s32), %1
487 %5:gpr(s8) = COPY %6(s8)
496 regBankSelected: true
497 tracksRegLiveness: true
499 - { id: 0, class: vecr }
500 - { id: 1, class: vecr }
501 - { id: 2, class: vecr }
502 - { id: 3, class: vecr }
503 - { id: 4, class: _ }
504 - { id: 5, class: gpr }
505 - { id: 6, class: gpr }
508 liveins: $xmm0, $xmm1
510 ; CHECK-LABEL: name: fcmp_float_ugt
511 ; CHECK: liveins: $xmm0, $xmm1
512 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
513 ; CHECK: [[COPY1:%[0-9]+]]:fr32 = COPY [[COPY]]
514 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
515 ; CHECK: [[COPY3:%[0-9]+]]:fr32 = COPY [[COPY2]]
516 ; CHECK: UCOMISSrr [[COPY3]], [[COPY1]], implicit-def $eflags
517 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 2, implicit $eflags
518 ; CHECK: $al = COPY [[SETCCr]]
519 ; CHECK: RET 0, implicit $al
520 %2:vecr(s128) = COPY $xmm0
521 %0:vecr(s32) = G_TRUNC %2(s128)
522 %3:vecr(s128) = COPY $xmm1
523 %1:vecr(s32) = G_TRUNC %3(s128)
524 %6:gpr(s8) = G_FCMP floatpred(ugt), %0(s32), %1
525 %5:gpr(s8) = COPY %6(s8)
534 regBankSelected: true
535 tracksRegLiveness: true
537 - { id: 0, class: vecr }
538 - { id: 1, class: vecr }
539 - { id: 2, class: vecr }
540 - { id: 3, class: vecr }
541 - { id: 4, class: _ }
542 - { id: 5, class: gpr }
543 - { id: 6, class: gpr }
546 liveins: $xmm0, $xmm1
548 ; CHECK-LABEL: name: fcmp_float_uge
549 ; CHECK: liveins: $xmm0, $xmm1
550 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
551 ; CHECK: [[COPY1:%[0-9]+]]:fr32 = COPY [[COPY]]
552 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
553 ; CHECK: [[COPY3:%[0-9]+]]:fr32 = COPY [[COPY2]]
554 ; CHECK: UCOMISSrr [[COPY3]], [[COPY1]], implicit-def $eflags
555 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 6, implicit $eflags
556 ; CHECK: $al = COPY [[SETCCr]]
557 ; CHECK: RET 0, implicit $al
558 %2:vecr(s128) = COPY $xmm0
559 %0:vecr(s32) = G_TRUNC %2(s128)
560 %3:vecr(s128) = COPY $xmm1
561 %1:vecr(s32) = G_TRUNC %3(s128)
562 %6:gpr(s8) = G_FCMP floatpred(uge), %0(s32), %1
563 %5:gpr(s8) = COPY %6(s8)
572 regBankSelected: true
573 tracksRegLiveness: true
575 - { id: 0, class: vecr }
576 - { id: 1, class: vecr }
577 - { id: 2, class: vecr }
578 - { id: 3, class: vecr }
579 - { id: 4, class: _ }
580 - { id: 5, class: gpr }
581 - { id: 6, class: gpr }
584 liveins: $xmm0, $xmm1
586 ; CHECK-LABEL: name: fcmp_float_ult
587 ; CHECK: liveins: $xmm0, $xmm1
588 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
589 ; CHECK: [[COPY1:%[0-9]+]]:fr32 = COPY [[COPY]]
590 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
591 ; CHECK: [[COPY3:%[0-9]+]]:fr32 = COPY [[COPY2]]
592 ; CHECK: UCOMISSrr [[COPY1]], [[COPY3]], implicit-def $eflags
593 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 2, implicit $eflags
594 ; CHECK: $al = COPY [[SETCCr]]
595 ; CHECK: RET 0, implicit $al
596 %2:vecr(s128) = COPY $xmm0
597 %0:vecr(s32) = G_TRUNC %2(s128)
598 %3:vecr(s128) = COPY $xmm1
599 %1:vecr(s32) = G_TRUNC %3(s128)
600 %6:gpr(s8) = G_FCMP floatpred(ult), %0(s32), %1
601 %5:gpr(s8) = COPY %6(s8)
610 regBankSelected: true
611 tracksRegLiveness: true
613 - { id: 0, class: vecr }
614 - { id: 1, class: vecr }
615 - { id: 2, class: vecr }
616 - { id: 3, class: vecr }
617 - { id: 4, class: _ }
618 - { id: 5, class: gpr }
619 - { id: 6, class: gpr }
622 liveins: $xmm0, $xmm1
624 ; CHECK-LABEL: name: fcmp_float_ule
625 ; CHECK: liveins: $xmm0, $xmm1
626 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
627 ; CHECK: [[COPY1:%[0-9]+]]:fr32 = COPY [[COPY]]
628 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
629 ; CHECK: [[COPY3:%[0-9]+]]:fr32 = COPY [[COPY2]]
630 ; CHECK: UCOMISSrr [[COPY1]], [[COPY3]], implicit-def $eflags
631 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 6, implicit $eflags
632 ; CHECK: $al = COPY [[SETCCr]]
633 ; CHECK: RET 0, implicit $al
634 %2:vecr(s128) = COPY $xmm0
635 %0:vecr(s32) = G_TRUNC %2(s128)
636 %3:vecr(s128) = COPY $xmm1
637 %1:vecr(s32) = G_TRUNC %3(s128)
638 %6:gpr(s8) = G_FCMP floatpred(ule), %0(s32), %1
639 %5:gpr(s8) = COPY %6(s8)
648 regBankSelected: true
649 tracksRegLiveness: true
651 - { id: 0, class: vecr }
652 - { id: 1, class: vecr }
653 - { id: 2, class: vecr }
654 - { id: 3, class: vecr }
655 - { id: 4, class: _ }
656 - { id: 5, class: gpr }
657 - { id: 6, class: gpr }
660 liveins: $xmm0, $xmm1
662 ; CHECK-LABEL: name: fcmp_float_une
663 ; CHECK: liveins: $xmm0, $xmm1
664 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
665 ; CHECK: [[COPY1:%[0-9]+]]:fr32 = COPY [[COPY]]
666 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
667 ; CHECK: [[COPY3:%[0-9]+]]:fr32 = COPY [[COPY2]]
668 ; CHECK: UCOMISSrr [[COPY1]], [[COPY3]], implicit-def $eflags
669 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 5, implicit $eflags
670 ; CHECK: [[SETCCr1:%[0-9]+]]:gr8 = SETCCr 10, implicit $eflags
671 ; CHECK: [[OR8rr:%[0-9]+]]:gr8 = OR8rr [[SETCCr]], [[SETCCr1]], implicit-def $eflags
672 ; CHECK: $al = COPY [[OR8rr]]
673 ; CHECK: RET 0, implicit $al
674 %2:vecr(s128) = COPY $xmm0
675 %0:vecr(s32) = G_TRUNC %2(s128)
676 %3:vecr(s128) = COPY $xmm1
677 %1:vecr(s32) = G_TRUNC %3(s128)
678 %6:gpr(s8) = G_FCMP floatpred(une), %0(s32), %1
679 %5:gpr(s8) = COPY %6(s8)
685 name: fcmp_double_oeq
688 regBankSelected: true
689 tracksRegLiveness: true
691 - { id: 0, class: vecr }
692 - { id: 1, class: vecr }
693 - { id: 2, class: vecr }
694 - { id: 3, class: vecr }
695 - { id: 4, class: _ }
696 - { id: 5, class: gpr }
697 - { id: 6, class: gpr }
700 liveins: $xmm0, $xmm1
702 ; CHECK-LABEL: name: fcmp_double_oeq
703 ; CHECK: liveins: $xmm0, $xmm1
704 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
705 ; CHECK: [[COPY1:%[0-9]+]]:fr64 = COPY [[COPY]]
706 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
707 ; CHECK: [[COPY3:%[0-9]+]]:fr64 = COPY [[COPY2]]
708 ; CHECK: UCOMISDrr [[COPY1]], [[COPY3]], implicit-def $eflags
709 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 4, implicit $eflags
710 ; CHECK: [[SETCCr1:%[0-9]+]]:gr8 = SETCCr 11, implicit $eflags
711 ; CHECK: [[AND8rr:%[0-9]+]]:gr8 = AND8rr [[SETCCr]], [[SETCCr1]], implicit-def $eflags
712 ; CHECK: $al = COPY [[AND8rr]]
713 ; CHECK: RET 0, implicit $al
714 %2:vecr(s128) = COPY $xmm0
715 %0:vecr(s64) = G_TRUNC %2(s128)
716 %3:vecr(s128) = COPY $xmm1
717 %1:vecr(s64) = G_TRUNC %3(s128)
718 %6:gpr(s8) = G_FCMP floatpred(oeq), %0(s64), %1
719 %5:gpr(s8) = COPY %6(s8)
725 name: fcmp_double_ogt
728 regBankSelected: true
729 tracksRegLiveness: true
731 - { id: 0, class: vecr }
732 - { id: 1, class: vecr }
733 - { id: 2, class: vecr }
734 - { id: 3, class: vecr }
735 - { id: 4, class: _ }
736 - { id: 5, class: gpr }
737 - { id: 6, class: gpr }
740 liveins: $xmm0, $xmm1
742 ; CHECK-LABEL: name: fcmp_double_ogt
743 ; CHECK: liveins: $xmm0, $xmm1
744 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
745 ; CHECK: [[COPY1:%[0-9]+]]:fr64 = COPY [[COPY]]
746 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
747 ; CHECK: [[COPY3:%[0-9]+]]:fr64 = COPY [[COPY2]]
748 ; CHECK: UCOMISDrr [[COPY1]], [[COPY3]], implicit-def $eflags
749 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 7, implicit $eflags
750 ; CHECK: $al = COPY [[SETCCr]]
751 ; CHECK: RET 0, implicit $al
752 %2:vecr(s128) = COPY $xmm0
753 %0:vecr(s64) = G_TRUNC %2(s128)
754 %3:vecr(s128) = COPY $xmm1
755 %1:vecr(s64) = G_TRUNC %3(s128)
756 %6:gpr(s8) = G_FCMP floatpred(ogt), %0(s64), %1
757 %5:gpr(s8) = COPY %6(s8)
763 name: fcmp_double_oge
766 regBankSelected: true
767 tracksRegLiveness: true
769 - { id: 0, class: vecr }
770 - { id: 1, class: vecr }
771 - { id: 2, class: vecr }
772 - { id: 3, class: vecr }
773 - { id: 4, class: _ }
774 - { id: 5, class: gpr }
775 - { id: 6, class: gpr }
778 liveins: $xmm0, $xmm1
780 ; CHECK-LABEL: name: fcmp_double_oge
781 ; CHECK: liveins: $xmm0, $xmm1
782 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
783 ; CHECK: [[COPY1:%[0-9]+]]:fr64 = COPY [[COPY]]
784 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
785 ; CHECK: [[COPY3:%[0-9]+]]:fr64 = COPY [[COPY2]]
786 ; CHECK: UCOMISDrr [[COPY1]], [[COPY3]], implicit-def $eflags
787 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 3, implicit $eflags
788 ; CHECK: $al = COPY [[SETCCr]]
789 ; CHECK: RET 0, implicit $al
790 %2:vecr(s128) = COPY $xmm0
791 %0:vecr(s64) = G_TRUNC %2(s128)
792 %3:vecr(s128) = COPY $xmm1
793 %1:vecr(s64) = G_TRUNC %3(s128)
794 %6:gpr(s8) = G_FCMP floatpred(oge), %0(s64), %1
795 %5:gpr(s8) = COPY %6(s8)
801 name: fcmp_double_olt
804 regBankSelected: true
805 tracksRegLiveness: true
807 - { id: 0, class: vecr }
808 - { id: 1, class: vecr }
809 - { id: 2, class: vecr }
810 - { id: 3, class: vecr }
811 - { id: 4, class: _ }
812 - { id: 5, class: gpr }
813 - { id: 6, class: gpr }
816 liveins: $xmm0, $xmm1
818 ; CHECK-LABEL: name: fcmp_double_olt
819 ; CHECK: liveins: $xmm0, $xmm1
820 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
821 ; CHECK: [[COPY1:%[0-9]+]]:fr64 = COPY [[COPY]]
822 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
823 ; CHECK: [[COPY3:%[0-9]+]]:fr64 = COPY [[COPY2]]
824 ; CHECK: UCOMISDrr [[COPY3]], [[COPY1]], implicit-def $eflags
825 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 7, implicit $eflags
826 ; CHECK: $al = COPY [[SETCCr]]
827 ; CHECK: RET 0, implicit $al
828 %2:vecr(s128) = COPY $xmm0
829 %0:vecr(s64) = G_TRUNC %2(s128)
830 %3:vecr(s128) = COPY $xmm1
831 %1:vecr(s64) = G_TRUNC %3(s128)
832 %6:gpr(s8) = G_FCMP floatpred(olt), %0(s64), %1
833 %5:gpr(s8) = COPY %6(s8)
839 name: fcmp_double_ole
842 regBankSelected: true
843 tracksRegLiveness: true
845 - { id: 0, class: vecr }
846 - { id: 1, class: vecr }
847 - { id: 2, class: vecr }
848 - { id: 3, class: vecr }
849 - { id: 4, class: _ }
850 - { id: 5, class: gpr }
851 - { id: 6, class: gpr }
854 liveins: $xmm0, $xmm1
856 ; CHECK-LABEL: name: fcmp_double_ole
857 ; CHECK: liveins: $xmm0, $xmm1
858 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
859 ; CHECK: [[COPY1:%[0-9]+]]:fr64 = COPY [[COPY]]
860 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
861 ; CHECK: [[COPY3:%[0-9]+]]:fr64 = COPY [[COPY2]]
862 ; CHECK: UCOMISDrr [[COPY3]], [[COPY1]], implicit-def $eflags
863 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 3, implicit $eflags
864 ; CHECK: $al = COPY [[SETCCr]]
865 ; CHECK: RET 0, implicit $al
866 %2:vecr(s128) = COPY $xmm0
867 %0:vecr(s64) = G_TRUNC %2(s128)
868 %3:vecr(s128) = COPY $xmm1
869 %1:vecr(s64) = G_TRUNC %3(s128)
870 %6:gpr(s8) = G_FCMP floatpred(ole), %0(s64), %1
871 %5:gpr(s8) = COPY %6(s8)
877 name: fcmp_double_one
880 regBankSelected: true
881 tracksRegLiveness: true
883 - { id: 0, class: vecr }
884 - { id: 1, class: vecr }
885 - { id: 2, class: vecr }
886 - { id: 3, class: vecr }
887 - { id: 4, class: _ }
888 - { id: 5, class: gpr }
889 - { id: 6, class: gpr }
892 liveins: $xmm0, $xmm1
894 ; CHECK-LABEL: name: fcmp_double_one
895 ; CHECK: liveins: $xmm0, $xmm1
896 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
897 ; CHECK: [[COPY1:%[0-9]+]]:fr64 = COPY [[COPY]]
898 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
899 ; CHECK: [[COPY3:%[0-9]+]]:fr64 = COPY [[COPY2]]
900 ; CHECK: UCOMISDrr [[COPY1]], [[COPY3]], implicit-def $eflags
901 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 5, implicit $eflags
902 ; CHECK: $al = COPY [[SETCCr]]
903 ; CHECK: RET 0, implicit $al
904 %2:vecr(s128) = COPY $xmm0
905 %0:vecr(s64) = G_TRUNC %2(s128)
906 %3:vecr(s128) = COPY $xmm1
907 %1:vecr(s64) = G_TRUNC %3(s128)
908 %6:gpr(s8) = G_FCMP floatpred(one), %0(s64), %1
909 %5:gpr(s8) = COPY %6(s8)
915 name: fcmp_double_ord
918 regBankSelected: true
919 tracksRegLiveness: true
921 - { id: 0, class: vecr }
922 - { id: 1, class: vecr }
923 - { id: 2, class: vecr }
924 - { id: 3, class: vecr }
925 - { id: 4, class: _ }
926 - { id: 5, class: gpr }
927 - { id: 6, class: gpr }
930 liveins: $xmm0, $xmm1
932 ; CHECK-LABEL: name: fcmp_double_ord
933 ; CHECK: liveins: $xmm0, $xmm1
934 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
935 ; CHECK: [[COPY1:%[0-9]+]]:fr64 = COPY [[COPY]]
936 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
937 ; CHECK: [[COPY3:%[0-9]+]]:fr64 = COPY [[COPY2]]
938 ; CHECK: UCOMISDrr [[COPY1]], [[COPY3]], implicit-def $eflags
939 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 11, implicit $eflags
940 ; CHECK: $al = COPY [[SETCCr]]
941 ; CHECK: RET 0, implicit $al
942 %2:vecr(s128) = COPY $xmm0
943 %0:vecr(s64) = G_TRUNC %2(s128)
944 %3:vecr(s128) = COPY $xmm1
945 %1:vecr(s64) = G_TRUNC %3(s128)
946 %6:gpr(s8) = G_FCMP floatpred(ord), %0(s64), %1
947 %5:gpr(s8) = COPY %6(s8)
953 name: fcmp_double_uno
956 regBankSelected: true
957 tracksRegLiveness: true
959 - { id: 0, class: vecr }
960 - { id: 1, class: vecr }
961 - { id: 2, class: vecr }
962 - { id: 3, class: vecr }
963 - { id: 4, class: _ }
964 - { id: 5, class: gpr }
965 - { id: 6, class: gpr }
968 liveins: $xmm0, $xmm1
970 ; CHECK-LABEL: name: fcmp_double_uno
971 ; CHECK: liveins: $xmm0, $xmm1
972 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
973 ; CHECK: [[COPY1:%[0-9]+]]:fr64 = COPY [[COPY]]
974 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
975 ; CHECK: [[COPY3:%[0-9]+]]:fr64 = COPY [[COPY2]]
976 ; CHECK: UCOMISDrr [[COPY1]], [[COPY3]], implicit-def $eflags
977 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 10, implicit $eflags
978 ; CHECK: $al = COPY [[SETCCr]]
979 ; CHECK: RET 0, implicit $al
980 %2:vecr(s128) = COPY $xmm0
981 %0:vecr(s64) = G_TRUNC %2(s128)
982 %3:vecr(s128) = COPY $xmm1
983 %1:vecr(s64) = G_TRUNC %3(s128)
984 %6:gpr(s8) = G_FCMP floatpred(uno), %0(s64), %1
985 %5:gpr(s8) = COPY %6(s8)
991 name: fcmp_double_ueq
994 regBankSelected: true
995 tracksRegLiveness: true
997 - { id: 0, class: vecr }
998 - { id: 1, class: vecr }
999 - { id: 2, class: vecr }
1000 - { id: 3, class: vecr }
1001 - { id: 4, class: _ }
1002 - { id: 5, class: gpr }
1003 - { id: 6, class: gpr }
1006 liveins: $xmm0, $xmm1
1008 ; CHECK-LABEL: name: fcmp_double_ueq
1009 ; CHECK: liveins: $xmm0, $xmm1
1010 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
1011 ; CHECK: [[COPY1:%[0-9]+]]:fr64 = COPY [[COPY]]
1012 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
1013 ; CHECK: [[COPY3:%[0-9]+]]:fr64 = COPY [[COPY2]]
1014 ; CHECK: UCOMISDrr [[COPY1]], [[COPY3]], implicit-def $eflags
1015 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 4, implicit $eflags
1016 ; CHECK: $al = COPY [[SETCCr]]
1017 ; CHECK: RET 0, implicit $al
1018 %2:vecr(s128) = COPY $xmm0
1019 %0:vecr(s64) = G_TRUNC %2(s128)
1020 %3:vecr(s128) = COPY $xmm1
1021 %1:vecr(s64) = G_TRUNC %3(s128)
1022 %6:gpr(s8) = G_FCMP floatpred(ueq), %0(s64), %1
1023 %5:gpr(s8) = COPY %6(s8)
1029 name: fcmp_double_ugt
1032 regBankSelected: true
1033 tracksRegLiveness: true
1035 - { id: 0, class: vecr }
1036 - { id: 1, class: vecr }
1037 - { id: 2, class: vecr }
1038 - { id: 3, class: vecr }
1039 - { id: 4, class: _ }
1040 - { id: 5, class: gpr }
1041 - { id: 6, class: gpr }
1044 liveins: $xmm0, $xmm1
1046 ; CHECK-LABEL: name: fcmp_double_ugt
1047 ; CHECK: liveins: $xmm0, $xmm1
1048 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
1049 ; CHECK: [[COPY1:%[0-9]+]]:fr64 = COPY [[COPY]]
1050 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
1051 ; CHECK: [[COPY3:%[0-9]+]]:fr64 = COPY [[COPY2]]
1052 ; CHECK: UCOMISDrr [[COPY3]], [[COPY1]], implicit-def $eflags
1053 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 2, implicit $eflags
1054 ; CHECK: $al = COPY [[SETCCr]]
1055 ; CHECK: RET 0, implicit $al
1056 %2:vecr(s128) = COPY $xmm0
1057 %0:vecr(s64) = G_TRUNC %2(s128)
1058 %3:vecr(s128) = COPY $xmm1
1059 %1:vecr(s64) = G_TRUNC %3(s128)
1060 %6:gpr(s8) = G_FCMP floatpred(ugt), %0(s64), %1
1061 %5:gpr(s8) = COPY %6(s8)
1067 name: fcmp_double_uge
1070 regBankSelected: true
1071 tracksRegLiveness: true
1073 - { id: 0, class: vecr }
1074 - { id: 1, class: vecr }
1075 - { id: 2, class: vecr }
1076 - { id: 3, class: vecr }
1077 - { id: 4, class: _ }
1078 - { id: 5, class: gpr }
1079 - { id: 6, class: gpr }
1082 liveins: $xmm0, $xmm1
1084 ; CHECK-LABEL: name: fcmp_double_uge
1085 ; CHECK: liveins: $xmm0, $xmm1
1086 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
1087 ; CHECK: [[COPY1:%[0-9]+]]:fr64 = COPY [[COPY]]
1088 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
1089 ; CHECK: [[COPY3:%[0-9]+]]:fr64 = COPY [[COPY2]]
1090 ; CHECK: UCOMISDrr [[COPY3]], [[COPY1]], implicit-def $eflags
1091 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 6, implicit $eflags
1092 ; CHECK: $al = COPY [[SETCCr]]
1093 ; CHECK: RET 0, implicit $al
1094 %2:vecr(s128) = COPY $xmm0
1095 %0:vecr(s64) = G_TRUNC %2(s128)
1096 %3:vecr(s128) = COPY $xmm1
1097 %1:vecr(s64) = G_TRUNC %3(s128)
1098 %6:gpr(s8) = G_FCMP floatpred(uge), %0(s64), %1
1099 %5:gpr(s8) = COPY %6(s8)
1105 name: fcmp_double_ult
1108 regBankSelected: true
1109 tracksRegLiveness: true
1111 - { id: 0, class: vecr }
1112 - { id: 1, class: vecr }
1113 - { id: 2, class: vecr }
1114 - { id: 3, class: vecr }
1115 - { id: 4, class: _ }
1116 - { id: 5, class: gpr }
1117 - { id: 6, class: gpr }
1120 liveins: $xmm0, $xmm1
1122 ; CHECK-LABEL: name: fcmp_double_ult
1123 ; CHECK: liveins: $xmm0, $xmm1
1124 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
1125 ; CHECK: [[COPY1:%[0-9]+]]:fr64 = COPY [[COPY]]
1126 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
1127 ; CHECK: [[COPY3:%[0-9]+]]:fr64 = COPY [[COPY2]]
1128 ; CHECK: UCOMISDrr [[COPY1]], [[COPY3]], implicit-def $eflags
1129 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 2, implicit $eflags
1130 ; CHECK: $al = COPY [[SETCCr]]
1131 ; CHECK: RET 0, implicit $al
1132 %2:vecr(s128) = COPY $xmm0
1133 %0:vecr(s64) = G_TRUNC %2(s128)
1134 %3:vecr(s128) = COPY $xmm1
1135 %1:vecr(s64) = G_TRUNC %3(s128)
1136 %6:gpr(s8) = G_FCMP floatpred(ult), %0(s64), %1
1137 %5:gpr(s8) = COPY %6(s8)
1143 name: fcmp_double_ule
1146 regBankSelected: true
1147 tracksRegLiveness: true
1149 - { id: 0, class: vecr }
1150 - { id: 1, class: vecr }
1151 - { id: 2, class: vecr }
1152 - { id: 3, class: vecr }
1153 - { id: 4, class: _ }
1154 - { id: 5, class: gpr }
1155 - { id: 6, class: gpr }
1158 liveins: $xmm0, $xmm1
1160 ; CHECK-LABEL: name: fcmp_double_ule
1161 ; CHECK: liveins: $xmm0, $xmm1
1162 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
1163 ; CHECK: [[COPY1:%[0-9]+]]:fr64 = COPY [[COPY]]
1164 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
1165 ; CHECK: [[COPY3:%[0-9]+]]:fr64 = COPY [[COPY2]]
1166 ; CHECK: UCOMISDrr [[COPY1]], [[COPY3]], implicit-def $eflags
1167 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 6, implicit $eflags
1168 ; CHECK: $al = COPY [[SETCCr]]
1169 ; CHECK: RET 0, implicit $al
1170 %2:vecr(s128) = COPY $xmm0
1171 %0:vecr(s64) = G_TRUNC %2(s128)
1172 %3:vecr(s128) = COPY $xmm1
1173 %1:vecr(s64) = G_TRUNC %3(s128)
1174 %6:gpr(s8) = G_FCMP floatpred(ule), %0(s64), %1
1175 %5:gpr(s8) = COPY %6(s8)
1181 name: fcmp_double_une
1184 regBankSelected: true
1185 tracksRegLiveness: true
1187 - { id: 0, class: vecr }
1188 - { id: 1, class: vecr }
1189 - { id: 2, class: vecr }
1190 - { id: 3, class: vecr }
1191 - { id: 4, class: _ }
1192 - { id: 5, class: gpr }
1193 - { id: 6, class: gpr }
1196 liveins: $xmm0, $xmm1
1198 ; CHECK-LABEL: name: fcmp_double_une
1199 ; CHECK: liveins: $xmm0, $xmm1
1200 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
1201 ; CHECK: [[COPY1:%[0-9]+]]:fr64 = COPY [[COPY]]
1202 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
1203 ; CHECK: [[COPY3:%[0-9]+]]:fr64 = COPY [[COPY2]]
1204 ; CHECK: UCOMISDrr [[COPY1]], [[COPY3]], implicit-def $eflags
1205 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 5, implicit $eflags
1206 ; CHECK: [[SETCCr1:%[0-9]+]]:gr8 = SETCCr 10, implicit $eflags
1207 ; CHECK: [[OR8rr:%[0-9]+]]:gr8 = OR8rr [[SETCCr]], [[SETCCr1]], implicit-def $eflags
1208 ; CHECK: $al = COPY [[OR8rr]]
1209 ; CHECK: RET 0, implicit $al
1210 %2:vecr(s128) = COPY $xmm0
1211 %0:vecr(s64) = G_TRUNC %2(s128)
1212 %3:vecr(s128) = COPY $xmm1
1213 %1:vecr(s64) = G_TRUNC %3(s128)
1214 %6:gpr(s8) = G_FCMP floatpred(une), %0(s64), %1
1215 %5:gpr(s8) = COPY %6(s8)