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
6 define i1 @fcmp_float_oeq(float %x, float %y) {
7 %1 = fcmp oeq float %x, %y
11 define i1 @fcmp_float_ogt(float %x, float %y) {
12 %1 = fcmp ogt float %x, %y
16 define i1 @fcmp_float_oge(float %x, float %y) {
17 %1 = fcmp oge float %x, %y
21 define i1 @fcmp_float_olt(float %x, float %y) {
22 %1 = fcmp olt float %x, %y
26 define i1 @fcmp_float_ole(float %x, float %y) {
27 %1 = fcmp ole float %x, %y
31 define i1 @fcmp_float_one(float %x, float %y) {
32 %1 = fcmp one float %x, %y
36 define i1 @fcmp_float_ord(float %x, float %y) {
37 %1 = fcmp ord float %x, %y
41 define i1 @fcmp_float_uno(float %x, float %y) {
42 %1 = fcmp uno float %x, %y
46 define i1 @fcmp_float_ueq(float %x, float %y) {
47 %1 = fcmp ueq float %x, %y
51 define i1 @fcmp_float_ugt(float %x, float %y) {
52 %1 = fcmp ugt float %x, %y
56 define i1 @fcmp_float_uge(float %x, float %y) {
57 %1 = fcmp uge float %x, %y
61 define i1 @fcmp_float_ult(float %x, float %y) {
62 %1 = fcmp ult float %x, %y
66 define i1 @fcmp_float_ule(float %x, float %y) {
67 %1 = fcmp ule float %x, %y
71 define i1 @fcmp_float_une(float %x, float %y) {
72 %1 = fcmp une float %x, %y
76 define i1 @fcmp_double_oeq(double %x, double %y) {
77 %1 = fcmp oeq double %x, %y
81 define i1 @fcmp_double_ogt(double %x, double %y) {
82 %1 = fcmp ogt double %x, %y
86 define i1 @fcmp_double_oge(double %x, double %y) {
87 %1 = fcmp oge double %x, %y
91 define i1 @fcmp_double_olt(double %x, double %y) {
92 %1 = fcmp olt double %x, %y
96 define i1 @fcmp_double_ole(double %x, double %y) {
97 %1 = fcmp ole double %x, %y
101 define i1 @fcmp_double_one(double %x, double %y) {
102 %1 = fcmp one double %x, %y
106 define i1 @fcmp_double_ord(double %x, double %y) {
107 %1 = fcmp ord double %x, %y
111 define i1 @fcmp_double_uno(double %x, double %y) {
112 %1 = fcmp uno double %x, %y
116 define i1 @fcmp_double_ueq(double %x, double %y) {
117 %1 = fcmp ueq double %x, %y
121 define i1 @fcmp_double_ugt(double %x, double %y) {
122 %1 = fcmp ugt double %x, %y
126 define i1 @fcmp_double_uge(double %x, double %y) {
127 %1 = fcmp uge double %x, %y
131 define i1 @fcmp_double_ult(double %x, double %y) {
132 %1 = fcmp ult double %x, %y
136 define i1 @fcmp_double_ule(double %x, double %y) {
137 %1 = fcmp ule double %x, %y
141 define i1 @fcmp_double_une(double %x, double %y) {
142 %1 = fcmp une double %x, %y
151 regBankSelected: true
152 tracksRegLiveness: true
154 - { id: 0, class: vecr }
155 - { id: 1, class: vecr }
156 - { id: 2, class: vecr }
157 - { id: 3, class: vecr }
158 - { id: 4, class: _ }
159 - { id: 5, class: gpr }
160 - { id: 6, class: gpr }
163 liveins: $xmm0, $xmm1
165 ; CHECK-LABEL: name: fcmp_float_oeq
166 ; CHECK: liveins: $xmm0, $xmm1
167 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
168 ; CHECK: [[COPY1:%[0-9]+]]:fr32 = COPY [[COPY]]
169 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
170 ; CHECK: [[COPY3:%[0-9]+]]:fr32 = COPY [[COPY2]]
171 ; CHECK: UCOMISSrr [[COPY1]], [[COPY3]], implicit-def $eflags
172 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 4, implicit $eflags
173 ; CHECK: [[SETCCr1:%[0-9]+]]:gr8 = SETCCr 11, implicit $eflags
174 ; CHECK: [[AND8rr:%[0-9]+]]:gr8 = AND8rr [[SETCCr]], [[SETCCr1]], implicit-def $eflags
175 ; CHECK: $al = COPY [[AND8rr]]
176 ; CHECK: RET 0, implicit $al
177 %2:vecr(s128) = COPY $xmm0
178 %0:vecr(s32) = G_TRUNC %2(s128)
179 %3:vecr(s128) = COPY $xmm1
180 %1:vecr(s32) = G_TRUNC %3(s128)
181 %6:gpr(s8) = G_FCMP floatpred(oeq), %0(s32), %1
182 %5:gpr(s8) = COPY %6(s8)
191 regBankSelected: true
192 tracksRegLiveness: true
194 - { id: 0, class: vecr }
195 - { id: 1, class: vecr }
196 - { id: 2, class: vecr }
197 - { id: 3, class: vecr }
198 - { id: 4, class: _ }
199 - { id: 5, class: gpr }
200 - { id: 6, class: gpr }
203 liveins: $xmm0, $xmm1
205 ; CHECK-LABEL: name: fcmp_float_ogt
206 ; CHECK: liveins: $xmm0, $xmm1
207 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
208 ; CHECK: [[COPY1:%[0-9]+]]:fr32 = COPY [[COPY]]
209 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
210 ; CHECK: [[COPY3:%[0-9]+]]:fr32 = COPY [[COPY2]]
211 ; CHECK: UCOMISSrr [[COPY1]], [[COPY3]], implicit-def $eflags
212 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 7, implicit $eflags
213 ; CHECK: $al = COPY [[SETCCr]]
214 ; CHECK: RET 0, implicit $al
215 %2:vecr(s128) = COPY $xmm0
216 %0:vecr(s32) = G_TRUNC %2(s128)
217 %3:vecr(s128) = COPY $xmm1
218 %1:vecr(s32) = G_TRUNC %3(s128)
219 %6:gpr(s8) = G_FCMP floatpred(ogt), %0(s32), %1
220 %5:gpr(s8) = COPY %6(s8)
229 regBankSelected: true
230 tracksRegLiveness: true
232 - { id: 0, class: vecr }
233 - { id: 1, class: vecr }
234 - { id: 2, class: vecr }
235 - { id: 3, class: vecr }
236 - { id: 4, class: _ }
237 - { id: 5, class: gpr }
238 - { id: 6, class: gpr }
241 liveins: $xmm0, $xmm1
243 ; CHECK-LABEL: name: fcmp_float_oge
244 ; CHECK: liveins: $xmm0, $xmm1
245 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
246 ; CHECK: [[COPY1:%[0-9]+]]:fr32 = COPY [[COPY]]
247 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
248 ; CHECK: [[COPY3:%[0-9]+]]:fr32 = COPY [[COPY2]]
249 ; CHECK: UCOMISSrr [[COPY1]], [[COPY3]], implicit-def $eflags
250 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 3, implicit $eflags
251 ; CHECK: $al = COPY [[SETCCr]]
252 ; CHECK: RET 0, implicit $al
253 %2:vecr(s128) = COPY $xmm0
254 %0:vecr(s32) = G_TRUNC %2(s128)
255 %3:vecr(s128) = COPY $xmm1
256 %1:vecr(s32) = G_TRUNC %3(s128)
257 %6:gpr(s8) = G_FCMP floatpred(oge), %0(s32), %1
258 %5:gpr(s8) = COPY %6(s8)
267 regBankSelected: true
268 tracksRegLiveness: true
270 - { id: 0, class: vecr }
271 - { id: 1, class: vecr }
272 - { id: 2, class: vecr }
273 - { id: 3, class: vecr }
274 - { id: 4, class: _ }
275 - { id: 5, class: gpr }
276 - { id: 6, class: gpr }
279 liveins: $xmm0, $xmm1
281 ; CHECK-LABEL: name: fcmp_float_olt
282 ; CHECK: liveins: $xmm0, $xmm1
283 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
284 ; CHECK: [[COPY1:%[0-9]+]]:fr32 = COPY [[COPY]]
285 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
286 ; CHECK: [[COPY3:%[0-9]+]]:fr32 = COPY [[COPY2]]
287 ; CHECK: UCOMISSrr [[COPY3]], [[COPY1]], implicit-def $eflags
288 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 7, implicit $eflags
289 ; CHECK: $al = COPY [[SETCCr]]
290 ; CHECK: RET 0, implicit $al
291 %2:vecr(s128) = COPY $xmm0
292 %0:vecr(s32) = G_TRUNC %2(s128)
293 %3:vecr(s128) = COPY $xmm1
294 %1:vecr(s32) = G_TRUNC %3(s128)
295 %6:gpr(s8) = G_FCMP floatpred(olt), %0(s32), %1
296 %5:gpr(s8) = COPY %6(s8)
305 regBankSelected: true
306 tracksRegLiveness: true
308 - { id: 0, class: vecr }
309 - { id: 1, class: vecr }
310 - { id: 2, class: vecr }
311 - { id: 3, class: vecr }
312 - { id: 4, class: _ }
313 - { id: 5, class: gpr }
314 - { id: 6, class: gpr }
317 liveins: $xmm0, $xmm1
319 ; CHECK-LABEL: name: fcmp_float_ole
320 ; CHECK: liveins: $xmm0, $xmm1
321 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
322 ; CHECK: [[COPY1:%[0-9]+]]:fr32 = COPY [[COPY]]
323 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
324 ; CHECK: [[COPY3:%[0-9]+]]:fr32 = COPY [[COPY2]]
325 ; CHECK: UCOMISSrr [[COPY3]], [[COPY1]], implicit-def $eflags
326 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 3, implicit $eflags
327 ; CHECK: $al = COPY [[SETCCr]]
328 ; CHECK: RET 0, implicit $al
329 %2:vecr(s128) = COPY $xmm0
330 %0:vecr(s32) = G_TRUNC %2(s128)
331 %3:vecr(s128) = COPY $xmm1
332 %1:vecr(s32) = G_TRUNC %3(s128)
333 %6:gpr(s8) = G_FCMP floatpred(ole), %0(s32), %1
334 %5:gpr(s8) = COPY %6(s8)
343 regBankSelected: true
344 tracksRegLiveness: true
346 - { id: 0, class: vecr }
347 - { id: 1, class: vecr }
348 - { id: 2, class: vecr }
349 - { id: 3, class: vecr }
350 - { id: 4, class: _ }
351 - { id: 5, class: gpr }
352 - { id: 6, class: gpr }
355 liveins: $xmm0, $xmm1
357 ; CHECK-LABEL: name: fcmp_float_one
358 ; CHECK: liveins: $xmm0, $xmm1
359 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
360 ; CHECK: [[COPY1:%[0-9]+]]:fr32 = COPY [[COPY]]
361 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
362 ; CHECK: [[COPY3:%[0-9]+]]:fr32 = COPY [[COPY2]]
363 ; CHECK: UCOMISSrr [[COPY1]], [[COPY3]], implicit-def $eflags
364 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 5, implicit $eflags
365 ; CHECK: $al = COPY [[SETCCr]]
366 ; CHECK: RET 0, implicit $al
367 %2:vecr(s128) = COPY $xmm0
368 %0:vecr(s32) = G_TRUNC %2(s128)
369 %3:vecr(s128) = COPY $xmm1
370 %1:vecr(s32) = G_TRUNC %3(s128)
371 %6:gpr(s8) = G_FCMP floatpred(one), %0(s32), %1
372 %5:gpr(s8) = COPY %6(s8)
381 regBankSelected: true
382 tracksRegLiveness: true
384 - { id: 0, class: vecr }
385 - { id: 1, class: vecr }
386 - { id: 2, class: vecr }
387 - { id: 3, class: vecr }
388 - { id: 4, class: _ }
389 - { id: 5, class: gpr }
390 - { id: 6, class: gpr }
393 liveins: $xmm0, $xmm1
395 ; CHECK-LABEL: name: fcmp_float_ord
396 ; CHECK: liveins: $xmm0, $xmm1
397 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
398 ; CHECK: [[COPY1:%[0-9]+]]:fr32 = COPY [[COPY]]
399 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
400 ; CHECK: [[COPY3:%[0-9]+]]:fr32 = COPY [[COPY2]]
401 ; CHECK: UCOMISSrr [[COPY1]], [[COPY3]], implicit-def $eflags
402 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 11, implicit $eflags
403 ; CHECK: $al = COPY [[SETCCr]]
404 ; CHECK: RET 0, implicit $al
405 %2:vecr(s128) = COPY $xmm0
406 %0:vecr(s32) = G_TRUNC %2(s128)
407 %3:vecr(s128) = COPY $xmm1
408 %1:vecr(s32) = G_TRUNC %3(s128)
409 %6:gpr(s8) = G_FCMP floatpred(ord), %0(s32), %1
410 %5:gpr(s8) = COPY %6(s8)
419 regBankSelected: true
420 tracksRegLiveness: true
422 - { id: 0, class: vecr }
423 - { id: 1, class: vecr }
424 - { id: 2, class: vecr }
425 - { id: 3, class: vecr }
426 - { id: 4, class: _ }
427 - { id: 5, class: gpr }
428 - { id: 6, class: gpr }
431 liveins: $xmm0, $xmm1
433 ; CHECK-LABEL: name: fcmp_float_uno
434 ; CHECK: liveins: $xmm0, $xmm1
435 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
436 ; CHECK: [[COPY1:%[0-9]+]]:fr32 = COPY [[COPY]]
437 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
438 ; CHECK: [[COPY3:%[0-9]+]]:fr32 = COPY [[COPY2]]
439 ; CHECK: UCOMISSrr [[COPY1]], [[COPY3]], implicit-def $eflags
440 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 10, implicit $eflags
441 ; CHECK: $al = COPY [[SETCCr]]
442 ; CHECK: RET 0, implicit $al
443 %2:vecr(s128) = COPY $xmm0
444 %0:vecr(s32) = G_TRUNC %2(s128)
445 %3:vecr(s128) = COPY $xmm1
446 %1:vecr(s32) = G_TRUNC %3(s128)
447 %6:gpr(s8) = G_FCMP floatpred(uno), %0(s32), %1
448 %5:gpr(s8) = COPY %6(s8)
457 regBankSelected: true
458 tracksRegLiveness: true
460 - { id: 0, class: vecr }
461 - { id: 1, class: vecr }
462 - { id: 2, class: vecr }
463 - { id: 3, class: vecr }
464 - { id: 4, class: _ }
465 - { id: 5, class: gpr }
466 - { id: 6, class: gpr }
469 liveins: $xmm0, $xmm1
471 ; CHECK-LABEL: name: fcmp_float_ueq
472 ; CHECK: liveins: $xmm0, $xmm1
473 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
474 ; CHECK: [[COPY1:%[0-9]+]]:fr32 = COPY [[COPY]]
475 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
476 ; CHECK: [[COPY3:%[0-9]+]]:fr32 = COPY [[COPY2]]
477 ; CHECK: UCOMISSrr [[COPY1]], [[COPY3]], implicit-def $eflags
478 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 4, implicit $eflags
479 ; CHECK: $al = COPY [[SETCCr]]
480 ; CHECK: RET 0, implicit $al
481 %2:vecr(s128) = COPY $xmm0
482 %0:vecr(s32) = G_TRUNC %2(s128)
483 %3:vecr(s128) = COPY $xmm1
484 %1:vecr(s32) = G_TRUNC %3(s128)
485 %6:gpr(s8) = G_FCMP floatpred(ueq), %0(s32), %1
486 %5:gpr(s8) = COPY %6(s8)
495 regBankSelected: true
496 tracksRegLiveness: true
498 - { id: 0, class: vecr }
499 - { id: 1, class: vecr }
500 - { id: 2, class: vecr }
501 - { id: 3, class: vecr }
502 - { id: 4, class: _ }
503 - { id: 5, class: gpr }
504 - { id: 6, class: gpr }
507 liveins: $xmm0, $xmm1
509 ; CHECK-LABEL: name: fcmp_float_ugt
510 ; CHECK: liveins: $xmm0, $xmm1
511 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
512 ; CHECK: [[COPY1:%[0-9]+]]:fr32 = COPY [[COPY]]
513 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
514 ; CHECK: [[COPY3:%[0-9]+]]:fr32 = COPY [[COPY2]]
515 ; CHECK: UCOMISSrr [[COPY3]], [[COPY1]], implicit-def $eflags
516 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 2, implicit $eflags
517 ; CHECK: $al = COPY [[SETCCr]]
518 ; CHECK: RET 0, implicit $al
519 %2:vecr(s128) = COPY $xmm0
520 %0:vecr(s32) = G_TRUNC %2(s128)
521 %3:vecr(s128) = COPY $xmm1
522 %1:vecr(s32) = G_TRUNC %3(s128)
523 %6:gpr(s8) = G_FCMP floatpred(ugt), %0(s32), %1
524 %5:gpr(s8) = COPY %6(s8)
533 regBankSelected: true
534 tracksRegLiveness: true
536 - { id: 0, class: vecr }
537 - { id: 1, class: vecr }
538 - { id: 2, class: vecr }
539 - { id: 3, class: vecr }
540 - { id: 4, class: _ }
541 - { id: 5, class: gpr }
542 - { id: 6, class: gpr }
545 liveins: $xmm0, $xmm1
547 ; CHECK-LABEL: name: fcmp_float_uge
548 ; CHECK: liveins: $xmm0, $xmm1
549 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
550 ; CHECK: [[COPY1:%[0-9]+]]:fr32 = COPY [[COPY]]
551 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
552 ; CHECK: [[COPY3:%[0-9]+]]:fr32 = COPY [[COPY2]]
553 ; CHECK: UCOMISSrr [[COPY3]], [[COPY1]], implicit-def $eflags
554 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 6, implicit $eflags
555 ; CHECK: $al = COPY [[SETCCr]]
556 ; CHECK: RET 0, implicit $al
557 %2:vecr(s128) = COPY $xmm0
558 %0:vecr(s32) = G_TRUNC %2(s128)
559 %3:vecr(s128) = COPY $xmm1
560 %1:vecr(s32) = G_TRUNC %3(s128)
561 %6:gpr(s8) = G_FCMP floatpred(uge), %0(s32), %1
562 %5:gpr(s8) = COPY %6(s8)
571 regBankSelected: true
572 tracksRegLiveness: true
574 - { id: 0, class: vecr }
575 - { id: 1, class: vecr }
576 - { id: 2, class: vecr }
577 - { id: 3, class: vecr }
578 - { id: 4, class: _ }
579 - { id: 5, class: gpr }
580 - { id: 6, class: gpr }
583 liveins: $xmm0, $xmm1
585 ; CHECK-LABEL: name: fcmp_float_ult
586 ; CHECK: liveins: $xmm0, $xmm1
587 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
588 ; CHECK: [[COPY1:%[0-9]+]]:fr32 = COPY [[COPY]]
589 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
590 ; CHECK: [[COPY3:%[0-9]+]]:fr32 = COPY [[COPY2]]
591 ; CHECK: UCOMISSrr [[COPY1]], [[COPY3]], implicit-def $eflags
592 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 2, implicit $eflags
593 ; CHECK: $al = COPY [[SETCCr]]
594 ; CHECK: RET 0, implicit $al
595 %2:vecr(s128) = COPY $xmm0
596 %0:vecr(s32) = G_TRUNC %2(s128)
597 %3:vecr(s128) = COPY $xmm1
598 %1:vecr(s32) = G_TRUNC %3(s128)
599 %6:gpr(s8) = G_FCMP floatpred(ult), %0(s32), %1
600 %5:gpr(s8) = COPY %6(s8)
609 regBankSelected: true
610 tracksRegLiveness: true
612 - { id: 0, class: vecr }
613 - { id: 1, class: vecr }
614 - { id: 2, class: vecr }
615 - { id: 3, class: vecr }
616 - { id: 4, class: _ }
617 - { id: 5, class: gpr }
618 - { id: 6, class: gpr }
621 liveins: $xmm0, $xmm1
623 ; CHECK-LABEL: name: fcmp_float_ule
624 ; CHECK: liveins: $xmm0, $xmm1
625 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
626 ; CHECK: [[COPY1:%[0-9]+]]:fr32 = COPY [[COPY]]
627 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
628 ; CHECK: [[COPY3:%[0-9]+]]:fr32 = COPY [[COPY2]]
629 ; CHECK: UCOMISSrr [[COPY1]], [[COPY3]], implicit-def $eflags
630 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 6, implicit $eflags
631 ; CHECK: $al = COPY [[SETCCr]]
632 ; CHECK: RET 0, implicit $al
633 %2:vecr(s128) = COPY $xmm0
634 %0:vecr(s32) = G_TRUNC %2(s128)
635 %3:vecr(s128) = COPY $xmm1
636 %1:vecr(s32) = G_TRUNC %3(s128)
637 %6:gpr(s8) = G_FCMP floatpred(ule), %0(s32), %1
638 %5:gpr(s8) = COPY %6(s8)
647 regBankSelected: true
648 tracksRegLiveness: true
650 - { id: 0, class: vecr }
651 - { id: 1, class: vecr }
652 - { id: 2, class: vecr }
653 - { id: 3, class: vecr }
654 - { id: 4, class: _ }
655 - { id: 5, class: gpr }
656 - { id: 6, class: gpr }
659 liveins: $xmm0, $xmm1
661 ; CHECK-LABEL: name: fcmp_float_une
662 ; CHECK: liveins: $xmm0, $xmm1
663 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
664 ; CHECK: [[COPY1:%[0-9]+]]:fr32 = COPY [[COPY]]
665 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
666 ; CHECK: [[COPY3:%[0-9]+]]:fr32 = COPY [[COPY2]]
667 ; CHECK: UCOMISSrr [[COPY1]], [[COPY3]], implicit-def $eflags
668 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 5, implicit $eflags
669 ; CHECK: [[SETCCr1:%[0-9]+]]:gr8 = SETCCr 10, implicit $eflags
670 ; CHECK: [[OR8rr:%[0-9]+]]:gr8 = OR8rr [[SETCCr]], [[SETCCr1]], implicit-def $eflags
671 ; CHECK: $al = COPY [[OR8rr]]
672 ; CHECK: RET 0, implicit $al
673 %2:vecr(s128) = COPY $xmm0
674 %0:vecr(s32) = G_TRUNC %2(s128)
675 %3:vecr(s128) = COPY $xmm1
676 %1:vecr(s32) = G_TRUNC %3(s128)
677 %6:gpr(s8) = G_FCMP floatpred(une), %0(s32), %1
678 %5:gpr(s8) = COPY %6(s8)
684 name: fcmp_double_oeq
687 regBankSelected: true
688 tracksRegLiveness: true
690 - { id: 0, class: vecr }
691 - { id: 1, class: vecr }
692 - { id: 2, class: vecr }
693 - { id: 3, class: vecr }
694 - { id: 4, class: _ }
695 - { id: 5, class: gpr }
696 - { id: 6, class: gpr }
699 liveins: $xmm0, $xmm1
701 ; CHECK-LABEL: name: fcmp_double_oeq
702 ; CHECK: liveins: $xmm0, $xmm1
703 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
704 ; CHECK: [[COPY1:%[0-9]+]]:fr64 = COPY [[COPY]]
705 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
706 ; CHECK: [[COPY3:%[0-9]+]]:fr64 = COPY [[COPY2]]
707 ; CHECK: UCOMISDrr [[COPY1]], [[COPY3]], implicit-def $eflags
708 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 4, implicit $eflags
709 ; CHECK: [[SETCCr1:%[0-9]+]]:gr8 = SETCCr 11, implicit $eflags
710 ; CHECK: [[AND8rr:%[0-9]+]]:gr8 = AND8rr [[SETCCr]], [[SETCCr1]], implicit-def $eflags
711 ; CHECK: $al = COPY [[AND8rr]]
712 ; CHECK: RET 0, implicit $al
713 %2:vecr(s128) = COPY $xmm0
714 %0:vecr(s64) = G_TRUNC %2(s128)
715 %3:vecr(s128) = COPY $xmm1
716 %1:vecr(s64) = G_TRUNC %3(s128)
717 %6:gpr(s8) = G_FCMP floatpred(oeq), %0(s64), %1
718 %5:gpr(s8) = COPY %6(s8)
724 name: fcmp_double_ogt
727 regBankSelected: true
728 tracksRegLiveness: true
730 - { id: 0, class: vecr }
731 - { id: 1, class: vecr }
732 - { id: 2, class: vecr }
733 - { id: 3, class: vecr }
734 - { id: 4, class: _ }
735 - { id: 5, class: gpr }
736 - { id: 6, class: gpr }
739 liveins: $xmm0, $xmm1
741 ; CHECK-LABEL: name: fcmp_double_ogt
742 ; CHECK: liveins: $xmm0, $xmm1
743 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
744 ; CHECK: [[COPY1:%[0-9]+]]:fr64 = COPY [[COPY]]
745 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
746 ; CHECK: [[COPY3:%[0-9]+]]:fr64 = COPY [[COPY2]]
747 ; CHECK: UCOMISDrr [[COPY1]], [[COPY3]], implicit-def $eflags
748 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 7, implicit $eflags
749 ; CHECK: $al = COPY [[SETCCr]]
750 ; CHECK: RET 0, implicit $al
751 %2:vecr(s128) = COPY $xmm0
752 %0:vecr(s64) = G_TRUNC %2(s128)
753 %3:vecr(s128) = COPY $xmm1
754 %1:vecr(s64) = G_TRUNC %3(s128)
755 %6:gpr(s8) = G_FCMP floatpred(ogt), %0(s64), %1
756 %5:gpr(s8) = COPY %6(s8)
762 name: fcmp_double_oge
765 regBankSelected: true
766 tracksRegLiveness: true
768 - { id: 0, class: vecr }
769 - { id: 1, class: vecr }
770 - { id: 2, class: vecr }
771 - { id: 3, class: vecr }
772 - { id: 4, class: _ }
773 - { id: 5, class: gpr }
774 - { id: 6, class: gpr }
777 liveins: $xmm0, $xmm1
779 ; CHECK-LABEL: name: fcmp_double_oge
780 ; CHECK: liveins: $xmm0, $xmm1
781 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
782 ; CHECK: [[COPY1:%[0-9]+]]:fr64 = COPY [[COPY]]
783 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
784 ; CHECK: [[COPY3:%[0-9]+]]:fr64 = COPY [[COPY2]]
785 ; CHECK: UCOMISDrr [[COPY1]], [[COPY3]], implicit-def $eflags
786 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 3, implicit $eflags
787 ; CHECK: $al = COPY [[SETCCr]]
788 ; CHECK: RET 0, implicit $al
789 %2:vecr(s128) = COPY $xmm0
790 %0:vecr(s64) = G_TRUNC %2(s128)
791 %3:vecr(s128) = COPY $xmm1
792 %1:vecr(s64) = G_TRUNC %3(s128)
793 %6:gpr(s8) = G_FCMP floatpred(oge), %0(s64), %1
794 %5:gpr(s8) = COPY %6(s8)
800 name: fcmp_double_olt
803 regBankSelected: true
804 tracksRegLiveness: true
806 - { id: 0, class: vecr }
807 - { id: 1, class: vecr }
808 - { id: 2, class: vecr }
809 - { id: 3, class: vecr }
810 - { id: 4, class: _ }
811 - { id: 5, class: gpr }
812 - { id: 6, class: gpr }
815 liveins: $xmm0, $xmm1
817 ; CHECK-LABEL: name: fcmp_double_olt
818 ; CHECK: liveins: $xmm0, $xmm1
819 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
820 ; CHECK: [[COPY1:%[0-9]+]]:fr64 = COPY [[COPY]]
821 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
822 ; CHECK: [[COPY3:%[0-9]+]]:fr64 = COPY [[COPY2]]
823 ; CHECK: UCOMISDrr [[COPY3]], [[COPY1]], implicit-def $eflags
824 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 7, implicit $eflags
825 ; CHECK: $al = COPY [[SETCCr]]
826 ; CHECK: RET 0, implicit $al
827 %2:vecr(s128) = COPY $xmm0
828 %0:vecr(s64) = G_TRUNC %2(s128)
829 %3:vecr(s128) = COPY $xmm1
830 %1:vecr(s64) = G_TRUNC %3(s128)
831 %6:gpr(s8) = G_FCMP floatpred(olt), %0(s64), %1
832 %5:gpr(s8) = COPY %6(s8)
838 name: fcmp_double_ole
841 regBankSelected: true
842 tracksRegLiveness: true
844 - { id: 0, class: vecr }
845 - { id: 1, class: vecr }
846 - { id: 2, class: vecr }
847 - { id: 3, class: vecr }
848 - { id: 4, class: _ }
849 - { id: 5, class: gpr }
850 - { id: 6, class: gpr }
853 liveins: $xmm0, $xmm1
855 ; CHECK-LABEL: name: fcmp_double_ole
856 ; CHECK: liveins: $xmm0, $xmm1
857 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
858 ; CHECK: [[COPY1:%[0-9]+]]:fr64 = COPY [[COPY]]
859 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
860 ; CHECK: [[COPY3:%[0-9]+]]:fr64 = COPY [[COPY2]]
861 ; CHECK: UCOMISDrr [[COPY3]], [[COPY1]], implicit-def $eflags
862 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 3, implicit $eflags
863 ; CHECK: $al = COPY [[SETCCr]]
864 ; CHECK: RET 0, implicit $al
865 %2:vecr(s128) = COPY $xmm0
866 %0:vecr(s64) = G_TRUNC %2(s128)
867 %3:vecr(s128) = COPY $xmm1
868 %1:vecr(s64) = G_TRUNC %3(s128)
869 %6:gpr(s8) = G_FCMP floatpred(ole), %0(s64), %1
870 %5:gpr(s8) = COPY %6(s8)
876 name: fcmp_double_one
879 regBankSelected: true
880 tracksRegLiveness: true
882 - { id: 0, class: vecr }
883 - { id: 1, class: vecr }
884 - { id: 2, class: vecr }
885 - { id: 3, class: vecr }
886 - { id: 4, class: _ }
887 - { id: 5, class: gpr }
888 - { id: 6, class: gpr }
891 liveins: $xmm0, $xmm1
893 ; CHECK-LABEL: name: fcmp_double_one
894 ; CHECK: liveins: $xmm0, $xmm1
895 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
896 ; CHECK: [[COPY1:%[0-9]+]]:fr64 = COPY [[COPY]]
897 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
898 ; CHECK: [[COPY3:%[0-9]+]]:fr64 = COPY [[COPY2]]
899 ; CHECK: UCOMISDrr [[COPY1]], [[COPY3]], implicit-def $eflags
900 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 5, implicit $eflags
901 ; CHECK: $al = COPY [[SETCCr]]
902 ; CHECK: RET 0, implicit $al
903 %2:vecr(s128) = COPY $xmm0
904 %0:vecr(s64) = G_TRUNC %2(s128)
905 %3:vecr(s128) = COPY $xmm1
906 %1:vecr(s64) = G_TRUNC %3(s128)
907 %6:gpr(s8) = G_FCMP floatpred(one), %0(s64), %1
908 %5:gpr(s8) = COPY %6(s8)
914 name: fcmp_double_ord
917 regBankSelected: true
918 tracksRegLiveness: true
920 - { id: 0, class: vecr }
921 - { id: 1, class: vecr }
922 - { id: 2, class: vecr }
923 - { id: 3, class: vecr }
924 - { id: 4, class: _ }
925 - { id: 5, class: gpr }
926 - { id: 6, class: gpr }
929 liveins: $xmm0, $xmm1
931 ; CHECK-LABEL: name: fcmp_double_ord
932 ; CHECK: liveins: $xmm0, $xmm1
933 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
934 ; CHECK: [[COPY1:%[0-9]+]]:fr64 = COPY [[COPY]]
935 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
936 ; CHECK: [[COPY3:%[0-9]+]]:fr64 = COPY [[COPY2]]
937 ; CHECK: UCOMISDrr [[COPY1]], [[COPY3]], implicit-def $eflags
938 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 11, implicit $eflags
939 ; CHECK: $al = COPY [[SETCCr]]
940 ; CHECK: RET 0, implicit $al
941 %2:vecr(s128) = COPY $xmm0
942 %0:vecr(s64) = G_TRUNC %2(s128)
943 %3:vecr(s128) = COPY $xmm1
944 %1:vecr(s64) = G_TRUNC %3(s128)
945 %6:gpr(s8) = G_FCMP floatpred(ord), %0(s64), %1
946 %5:gpr(s8) = COPY %6(s8)
952 name: fcmp_double_uno
955 regBankSelected: true
956 tracksRegLiveness: true
958 - { id: 0, class: vecr }
959 - { id: 1, class: vecr }
960 - { id: 2, class: vecr }
961 - { id: 3, class: vecr }
962 - { id: 4, class: _ }
963 - { id: 5, class: gpr }
964 - { id: 6, class: gpr }
967 liveins: $xmm0, $xmm1
969 ; CHECK-LABEL: name: fcmp_double_uno
970 ; CHECK: liveins: $xmm0, $xmm1
971 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
972 ; CHECK: [[COPY1:%[0-9]+]]:fr64 = COPY [[COPY]]
973 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
974 ; CHECK: [[COPY3:%[0-9]+]]:fr64 = COPY [[COPY2]]
975 ; CHECK: UCOMISDrr [[COPY1]], [[COPY3]], implicit-def $eflags
976 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 10, implicit $eflags
977 ; CHECK: $al = COPY [[SETCCr]]
978 ; CHECK: RET 0, implicit $al
979 %2:vecr(s128) = COPY $xmm0
980 %0:vecr(s64) = G_TRUNC %2(s128)
981 %3:vecr(s128) = COPY $xmm1
982 %1:vecr(s64) = G_TRUNC %3(s128)
983 %6:gpr(s8) = G_FCMP floatpred(uno), %0(s64), %1
984 %5:gpr(s8) = COPY %6(s8)
990 name: fcmp_double_ueq
993 regBankSelected: true
994 tracksRegLiveness: true
996 - { id: 0, class: vecr }
997 - { id: 1, class: vecr }
998 - { id: 2, class: vecr }
999 - { id: 3, class: vecr }
1000 - { id: 4, class: _ }
1001 - { id: 5, class: gpr }
1002 - { id: 6, class: gpr }
1005 liveins: $xmm0, $xmm1
1007 ; CHECK-LABEL: name: fcmp_double_ueq
1008 ; CHECK: liveins: $xmm0, $xmm1
1009 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
1010 ; CHECK: [[COPY1:%[0-9]+]]:fr64 = COPY [[COPY]]
1011 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
1012 ; CHECK: [[COPY3:%[0-9]+]]:fr64 = COPY [[COPY2]]
1013 ; CHECK: UCOMISDrr [[COPY1]], [[COPY3]], implicit-def $eflags
1014 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 4, implicit $eflags
1015 ; CHECK: $al = COPY [[SETCCr]]
1016 ; CHECK: RET 0, implicit $al
1017 %2:vecr(s128) = COPY $xmm0
1018 %0:vecr(s64) = G_TRUNC %2(s128)
1019 %3:vecr(s128) = COPY $xmm1
1020 %1:vecr(s64) = G_TRUNC %3(s128)
1021 %6:gpr(s8) = G_FCMP floatpred(ueq), %0(s64), %1
1022 %5:gpr(s8) = COPY %6(s8)
1028 name: fcmp_double_ugt
1031 regBankSelected: true
1032 tracksRegLiveness: true
1034 - { id: 0, class: vecr }
1035 - { id: 1, class: vecr }
1036 - { id: 2, class: vecr }
1037 - { id: 3, class: vecr }
1038 - { id: 4, class: _ }
1039 - { id: 5, class: gpr }
1040 - { id: 6, class: gpr }
1043 liveins: $xmm0, $xmm1
1045 ; CHECK-LABEL: name: fcmp_double_ugt
1046 ; CHECK: liveins: $xmm0, $xmm1
1047 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
1048 ; CHECK: [[COPY1:%[0-9]+]]:fr64 = COPY [[COPY]]
1049 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
1050 ; CHECK: [[COPY3:%[0-9]+]]:fr64 = COPY [[COPY2]]
1051 ; CHECK: UCOMISDrr [[COPY3]], [[COPY1]], implicit-def $eflags
1052 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 2, implicit $eflags
1053 ; CHECK: $al = COPY [[SETCCr]]
1054 ; CHECK: RET 0, implicit $al
1055 %2:vecr(s128) = COPY $xmm0
1056 %0:vecr(s64) = G_TRUNC %2(s128)
1057 %3:vecr(s128) = COPY $xmm1
1058 %1:vecr(s64) = G_TRUNC %3(s128)
1059 %6:gpr(s8) = G_FCMP floatpred(ugt), %0(s64), %1
1060 %5:gpr(s8) = COPY %6(s8)
1066 name: fcmp_double_uge
1069 regBankSelected: true
1070 tracksRegLiveness: true
1072 - { id: 0, class: vecr }
1073 - { id: 1, class: vecr }
1074 - { id: 2, class: vecr }
1075 - { id: 3, class: vecr }
1076 - { id: 4, class: _ }
1077 - { id: 5, class: gpr }
1078 - { id: 6, class: gpr }
1081 liveins: $xmm0, $xmm1
1083 ; CHECK-LABEL: name: fcmp_double_uge
1084 ; CHECK: liveins: $xmm0, $xmm1
1085 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
1086 ; CHECK: [[COPY1:%[0-9]+]]:fr64 = COPY [[COPY]]
1087 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
1088 ; CHECK: [[COPY3:%[0-9]+]]:fr64 = COPY [[COPY2]]
1089 ; CHECK: UCOMISDrr [[COPY3]], [[COPY1]], implicit-def $eflags
1090 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 6, implicit $eflags
1091 ; CHECK: $al = COPY [[SETCCr]]
1092 ; CHECK: RET 0, implicit $al
1093 %2:vecr(s128) = COPY $xmm0
1094 %0:vecr(s64) = G_TRUNC %2(s128)
1095 %3:vecr(s128) = COPY $xmm1
1096 %1:vecr(s64) = G_TRUNC %3(s128)
1097 %6:gpr(s8) = G_FCMP floatpred(uge), %0(s64), %1
1098 %5:gpr(s8) = COPY %6(s8)
1104 name: fcmp_double_ult
1107 regBankSelected: true
1108 tracksRegLiveness: true
1110 - { id: 0, class: vecr }
1111 - { id: 1, class: vecr }
1112 - { id: 2, class: vecr }
1113 - { id: 3, class: vecr }
1114 - { id: 4, class: _ }
1115 - { id: 5, class: gpr }
1116 - { id: 6, class: gpr }
1119 liveins: $xmm0, $xmm1
1121 ; CHECK-LABEL: name: fcmp_double_ult
1122 ; CHECK: liveins: $xmm0, $xmm1
1123 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
1124 ; CHECK: [[COPY1:%[0-9]+]]:fr64 = COPY [[COPY]]
1125 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
1126 ; CHECK: [[COPY3:%[0-9]+]]:fr64 = COPY [[COPY2]]
1127 ; CHECK: UCOMISDrr [[COPY1]], [[COPY3]], implicit-def $eflags
1128 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 2, implicit $eflags
1129 ; CHECK: $al = COPY [[SETCCr]]
1130 ; CHECK: RET 0, implicit $al
1131 %2:vecr(s128) = COPY $xmm0
1132 %0:vecr(s64) = G_TRUNC %2(s128)
1133 %3:vecr(s128) = COPY $xmm1
1134 %1:vecr(s64) = G_TRUNC %3(s128)
1135 %6:gpr(s8) = G_FCMP floatpred(ult), %0(s64), %1
1136 %5:gpr(s8) = COPY %6(s8)
1142 name: fcmp_double_ule
1145 regBankSelected: true
1146 tracksRegLiveness: true
1148 - { id: 0, class: vecr }
1149 - { id: 1, class: vecr }
1150 - { id: 2, class: vecr }
1151 - { id: 3, class: vecr }
1152 - { id: 4, class: _ }
1153 - { id: 5, class: gpr }
1154 - { id: 6, class: gpr }
1157 liveins: $xmm0, $xmm1
1159 ; CHECK-LABEL: name: fcmp_double_ule
1160 ; CHECK: liveins: $xmm0, $xmm1
1161 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
1162 ; CHECK: [[COPY1:%[0-9]+]]:fr64 = COPY [[COPY]]
1163 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
1164 ; CHECK: [[COPY3:%[0-9]+]]:fr64 = COPY [[COPY2]]
1165 ; CHECK: UCOMISDrr [[COPY1]], [[COPY3]], implicit-def $eflags
1166 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 6, implicit $eflags
1167 ; CHECK: $al = COPY [[SETCCr]]
1168 ; CHECK: RET 0, implicit $al
1169 %2:vecr(s128) = COPY $xmm0
1170 %0:vecr(s64) = G_TRUNC %2(s128)
1171 %3:vecr(s128) = COPY $xmm1
1172 %1:vecr(s64) = G_TRUNC %3(s128)
1173 %6:gpr(s8) = G_FCMP floatpred(ule), %0(s64), %1
1174 %5:gpr(s8) = COPY %6(s8)
1180 name: fcmp_double_une
1183 regBankSelected: true
1184 tracksRegLiveness: true
1186 - { id: 0, class: vecr }
1187 - { id: 1, class: vecr }
1188 - { id: 2, class: vecr }
1189 - { id: 3, class: vecr }
1190 - { id: 4, class: _ }
1191 - { id: 5, class: gpr }
1192 - { id: 6, class: gpr }
1195 liveins: $xmm0, $xmm1
1197 ; CHECK-LABEL: name: fcmp_double_une
1198 ; CHECK: liveins: $xmm0, $xmm1
1199 ; CHECK: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
1200 ; CHECK: [[COPY1:%[0-9]+]]:fr64 = COPY [[COPY]]
1201 ; CHECK: [[COPY2:%[0-9]+]]:vr128 = COPY $xmm1
1202 ; CHECK: [[COPY3:%[0-9]+]]:fr64 = COPY [[COPY2]]
1203 ; CHECK: UCOMISDrr [[COPY1]], [[COPY3]], implicit-def $eflags
1204 ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 5, implicit $eflags
1205 ; CHECK: [[SETCCr1:%[0-9]+]]:gr8 = SETCCr 10, implicit $eflags
1206 ; CHECK: [[OR8rr:%[0-9]+]]:gr8 = OR8rr [[SETCCr]], [[SETCCr1]], implicit-def $eflags
1207 ; CHECK: $al = COPY [[OR8rr]]
1208 ; CHECK: RET 0, implicit $al
1209 %2:vecr(s128) = COPY $xmm0
1210 %0:vecr(s64) = G_TRUNC %2(s128)
1211 %3:vecr(s128) = COPY $xmm1
1212 %1:vecr(s64) = G_TRUNC %3(s128)
1213 %6:gpr(s8) = G_FCMP floatpred(une), %0(s64), %1
1214 %5:gpr(s8) = COPY %6(s8)