1130 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=x86_64-linux-gnu -run-pass=legalizer -verify-machineinstrs %s -o - | FileCheck %s3# RUN: llc -mtriple=i386-linux-gnu -mattr=+sse2 -run-pass=legalizer -verify-machineinstrs %s -o - | FileCheck %s4 5# TODO: x87/SSE1-only test coverage6 7--- |8 9 define i1 @fcmp_float_oeq(float %x, float %y) {10 %1 = fcmp oeq float %x, %y11 ret i1 %112 }13 14 define i1 @fcmp_float_ogt(float %x, float %y) {15 %1 = fcmp ogt float %x, %y16 ret i1 %117 }18 19 define i1 @fcmp_float_oge(float %x, float %y) {20 %1 = fcmp oge float %x, %y21 ret i1 %122 }23 24 define i1 @fcmp_float_olt(float %x, float %y) {25 %1 = fcmp olt float %x, %y26 ret i1 %127 }28 29 define i1 @fcmp_float_ole(float %x, float %y) {30 %1 = fcmp ole float %x, %y31 ret i1 %132 }33 34 define i1 @fcmp_float_one(float %x, float %y) {35 %1 = fcmp one float %x, %y36 ret i1 %137 }38 39 define i1 @fcmp_float_ord(float %x, float %y) {40 %1 = fcmp ord float %x, %y41 ret i1 %142 }43 44 define i1 @fcmp_float_uno(float %x, float %y) {45 %1 = fcmp uno float %x, %y46 ret i1 %147 }48 49 define i1 @fcmp_float_ueq(float %x, float %y) {50 %1 = fcmp ueq float %x, %y51 ret i1 %152 }53 54 define i1 @fcmp_float_ugt(float %x, float %y) {55 %1 = fcmp ugt float %x, %y56 ret i1 %157 }58 59 define i1 @fcmp_float_uge(float %x, float %y) {60 %1 = fcmp uge float %x, %y61 ret i1 %162 }63 64 define i1 @fcmp_float_ult(float %x, float %y) {65 %1 = fcmp ult float %x, %y66 ret i1 %167 }68 69 define i1 @fcmp_float_ule(float %x, float %y) {70 %1 = fcmp ule float %x, %y71 ret i1 %172 }73 74 define i1 @fcmp_float_une(float %x, float %y) {75 %1 = fcmp une float %x, %y76 ret i1 %177 }78 79 define i1 @fcmp_double_oeq(double %x, double %y) {80 %1 = fcmp oeq double %x, %y81 ret i1 %182 }83 84 define i1 @fcmp_double_ogt(double %x, double %y) {85 %1 = fcmp ogt double %x, %y86 ret i1 %187 }88 89 define i1 @fcmp_double_oge(double %x, double %y) {90 %1 = fcmp oge double %x, %y91 ret i1 %192 }93 94 define i1 @fcmp_double_olt(double %x, double %y) {95 %1 = fcmp olt double %x, %y96 ret i1 %197 }98 99 define i1 @fcmp_double_ole(double %x, double %y) {100 %1 = fcmp ole double %x, %y101 ret i1 %1102 }103 104 define i1 @fcmp_double_one(double %x, double %y) {105 %1 = fcmp one double %x, %y106 ret i1 %1107 }108 109 define i1 @fcmp_double_ord(double %x, double %y) {110 %1 = fcmp ord double %x, %y111 ret i1 %1112 }113 114 define i1 @fcmp_double_uno(double %x, double %y) {115 %1 = fcmp uno double %x, %y116 ret i1 %1117 }118 119 define i1 @fcmp_double_ueq(double %x, double %y) {120 %1 = fcmp ueq double %x, %y121 ret i1 %1122 }123 124 define i1 @fcmp_double_ugt(double %x, double %y) {125 %1 = fcmp ugt double %x, %y126 ret i1 %1127 }128 129 define i1 @fcmp_double_uge(double %x, double %y) {130 %1 = fcmp uge double %x, %y131 ret i1 %1132 }133 134 define i1 @fcmp_double_ult(double %x, double %y) {135 %1 = fcmp ult double %x, %y136 ret i1 %1137 }138 139 define i1 @fcmp_double_ule(double %x, double %y) {140 %1 = fcmp ule double %x, %y141 ret i1 %1142 }143 144 define i1 @fcmp_double_une(double %x, double %y) {145 %1 = fcmp une double %x, %y146 ret i1 %1147 }148 149...150---151name: fcmp_float_oeq152alignment: 16153tracksRegLiveness: true154registers:155 - { id: 0, class: _ }156 - { id: 1, class: _ }157 - { id: 2, class: _ }158 - { id: 3, class: _ }159 - { id: 4, class: _ }160 - { id: 5, class: _ }161body: |162 bb.1 (%ir-block.0):163 liveins: $xmm0, $xmm1164 165 ; CHECK-LABEL: name: fcmp_float_oeq166 ; CHECK: liveins: $xmm0, $xmm1167 ; CHECK-NEXT: {{ $}}168 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s128) = COPY $xmm0169 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s128)170 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s128) = COPY $xmm1171 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[COPY1]](s128)172 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s8) = G_FCMP floatpred(oeq), [[TRUNC]](s32), [[TRUNC1]]173 ; CHECK-NEXT: $al = COPY [[FCMP]](s8)174 ; CHECK-NEXT: RET 0, implicit $al175 %2:_(s128) = COPY $xmm0176 %0:_(s32) = G_TRUNC %2(s128)177 %3:_(s128) = COPY $xmm1178 %1:_(s32) = G_TRUNC %3(s128)179 %4:_(s1) = G_FCMP floatpred(oeq), %0(s32), %1180 %5:_(s8) = G_ANYEXT %4(s1)181 $al = COPY %5(s8)182 RET 0, implicit $al183 184...185---186name: fcmp_float_ogt187alignment: 16188tracksRegLiveness: true189registers:190 - { id: 0, class: _ }191 - { id: 1, class: _ }192 - { id: 2, class: _ }193 - { id: 3, class: _ }194 - { id: 4, class: _ }195 - { id: 5, class: _ }196body: |197 bb.1 (%ir-block.0):198 liveins: $xmm0, $xmm1199 200 ; CHECK-LABEL: name: fcmp_float_ogt201 ; CHECK: liveins: $xmm0, $xmm1202 ; CHECK-NEXT: {{ $}}203 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s128) = COPY $xmm0204 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s128)205 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s128) = COPY $xmm1206 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[COPY1]](s128)207 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s8) = G_FCMP floatpred(ogt), [[TRUNC]](s32), [[TRUNC1]]208 ; CHECK-NEXT: $al = COPY [[FCMP]](s8)209 ; CHECK-NEXT: RET 0, implicit $al210 %2:_(s128) = COPY $xmm0211 %0:_(s32) = G_TRUNC %2(s128)212 %3:_(s128) = COPY $xmm1213 %1:_(s32) = G_TRUNC %3(s128)214 %4:_(s1) = G_FCMP floatpred(ogt), %0(s32), %1215 %5:_(s8) = G_ANYEXT %4(s1)216 $al = COPY %5(s8)217 RET 0, implicit $al218 219...220---221name: fcmp_float_oge222alignment: 16223tracksRegLiveness: true224registers:225 - { id: 0, class: _ }226 - { id: 1, class: _ }227 - { id: 2, class: _ }228 - { id: 3, class: _ }229 - { id: 4, class: _ }230 - { id: 5, class: _ }231body: |232 bb.1 (%ir-block.0):233 liveins: $xmm0, $xmm1234 235 ; CHECK-LABEL: name: fcmp_float_oge236 ; CHECK: liveins: $xmm0, $xmm1237 ; CHECK-NEXT: {{ $}}238 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s128) = COPY $xmm0239 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s128)240 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s128) = COPY $xmm1241 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[COPY1]](s128)242 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s8) = G_FCMP floatpred(oge), [[TRUNC]](s32), [[TRUNC1]]243 ; CHECK-NEXT: $al = COPY [[FCMP]](s8)244 ; CHECK-NEXT: RET 0, implicit $al245 %2:_(s128) = COPY $xmm0246 %0:_(s32) = G_TRUNC %2(s128)247 %3:_(s128) = COPY $xmm1248 %1:_(s32) = G_TRUNC %3(s128)249 %4:_(s1) = G_FCMP floatpred(oge), %0(s32), %1250 %5:_(s8) = G_ANYEXT %4(s1)251 $al = COPY %5(s8)252 RET 0, implicit $al253 254...255---256name: fcmp_float_olt257alignment: 16258tracksRegLiveness: true259registers:260 - { id: 0, class: _ }261 - { id: 1, class: _ }262 - { id: 2, class: _ }263 - { id: 3, class: _ }264 - { id: 4, class: _ }265 - { id: 5, class: _ }266body: |267 bb.1 (%ir-block.0):268 liveins: $xmm0, $xmm1269 270 ; CHECK-LABEL: name: fcmp_float_olt271 ; CHECK: liveins: $xmm0, $xmm1272 ; CHECK-NEXT: {{ $}}273 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s128) = COPY $xmm0274 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s128)275 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s128) = COPY $xmm1276 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[COPY1]](s128)277 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s8) = G_FCMP floatpred(olt), [[TRUNC]](s32), [[TRUNC1]]278 ; CHECK-NEXT: $al = COPY [[FCMP]](s8)279 ; CHECK-NEXT: RET 0, implicit $al280 %2:_(s128) = COPY $xmm0281 %0:_(s32) = G_TRUNC %2(s128)282 %3:_(s128) = COPY $xmm1283 %1:_(s32) = G_TRUNC %3(s128)284 %4:_(s1) = G_FCMP floatpred(olt), %0(s32), %1285 %5:_(s8) = G_ANYEXT %4(s1)286 $al = COPY %5(s8)287 RET 0, implicit $al288 289...290---291name: fcmp_float_ole292alignment: 16293tracksRegLiveness: true294registers:295 - { id: 0, class: _ }296 - { id: 1, class: _ }297 - { id: 2, class: _ }298 - { id: 3, class: _ }299 - { id: 4, class: _ }300 - { id: 5, class: _ }301body: |302 bb.1 (%ir-block.0):303 liveins: $xmm0, $xmm1304 305 ; CHECK-LABEL: name: fcmp_float_ole306 ; CHECK: liveins: $xmm0, $xmm1307 ; CHECK-NEXT: {{ $}}308 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s128) = COPY $xmm0309 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s128)310 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s128) = COPY $xmm1311 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[COPY1]](s128)312 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s8) = G_FCMP floatpred(ole), [[TRUNC]](s32), [[TRUNC1]]313 ; CHECK-NEXT: $al = COPY [[FCMP]](s8)314 ; CHECK-NEXT: RET 0, implicit $al315 %2:_(s128) = COPY $xmm0316 %0:_(s32) = G_TRUNC %2(s128)317 %3:_(s128) = COPY $xmm1318 %1:_(s32) = G_TRUNC %3(s128)319 %4:_(s1) = G_FCMP floatpred(ole), %0(s32), %1320 %5:_(s8) = G_ANYEXT %4(s1)321 $al = COPY %5(s8)322 RET 0, implicit $al323 324...325---326name: fcmp_float_one327alignment: 16328tracksRegLiveness: true329registers:330 - { id: 0, class: _ }331 - { id: 1, class: _ }332 - { id: 2, class: _ }333 - { id: 3, class: _ }334 - { id: 4, class: _ }335 - { id: 5, class: _ }336body: |337 bb.1 (%ir-block.0):338 liveins: $xmm0, $xmm1339 340 ; CHECK-LABEL: name: fcmp_float_one341 ; CHECK: liveins: $xmm0, $xmm1342 ; CHECK-NEXT: {{ $}}343 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s128) = COPY $xmm0344 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s128)345 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s128) = COPY $xmm1346 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[COPY1]](s128)347 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s8) = G_FCMP floatpred(one), [[TRUNC]](s32), [[TRUNC1]]348 ; CHECK-NEXT: $al = COPY [[FCMP]](s8)349 ; CHECK-NEXT: RET 0, implicit $al350 %2:_(s128) = COPY $xmm0351 %0:_(s32) = G_TRUNC %2(s128)352 %3:_(s128) = COPY $xmm1353 %1:_(s32) = G_TRUNC %3(s128)354 %4:_(s1) = G_FCMP floatpred(one), %0(s32), %1355 %5:_(s8) = G_ANYEXT %4(s1)356 $al = COPY %5(s8)357 RET 0, implicit $al358 359...360---361name: fcmp_float_ord362alignment: 16363tracksRegLiveness: true364registers:365 - { id: 0, class: _ }366 - { id: 1, class: _ }367 - { id: 2, class: _ }368 - { id: 3, class: _ }369 - { id: 4, class: _ }370 - { id: 5, class: _ }371body: |372 bb.1 (%ir-block.0):373 liveins: $xmm0, $xmm1374 375 ; CHECK-LABEL: name: fcmp_float_ord376 ; CHECK: liveins: $xmm0, $xmm1377 ; CHECK-NEXT: {{ $}}378 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s128) = COPY $xmm0379 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s128)380 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s128) = COPY $xmm1381 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[COPY1]](s128)382 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s8) = G_FCMP floatpred(ord), [[TRUNC]](s32), [[TRUNC1]]383 ; CHECK-NEXT: $al = COPY [[FCMP]](s8)384 ; CHECK-NEXT: RET 0, implicit $al385 %2:_(s128) = COPY $xmm0386 %0:_(s32) = G_TRUNC %2(s128)387 %3:_(s128) = COPY $xmm1388 %1:_(s32) = G_TRUNC %3(s128)389 %4:_(s1) = G_FCMP floatpred(ord), %0(s32), %1390 %5:_(s8) = G_ANYEXT %4(s1)391 $al = COPY %5(s8)392 RET 0, implicit $al393 394...395---396name: fcmp_float_uno397alignment: 16398tracksRegLiveness: true399registers:400 - { id: 0, class: _ }401 - { id: 1, class: _ }402 - { id: 2, class: _ }403 - { id: 3, class: _ }404 - { id: 4, class: _ }405 - { id: 5, class: _ }406body: |407 bb.1 (%ir-block.0):408 liveins: $xmm0, $xmm1409 410 ; CHECK-LABEL: name: fcmp_float_uno411 ; CHECK: liveins: $xmm0, $xmm1412 ; CHECK-NEXT: {{ $}}413 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s128) = COPY $xmm0414 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s128)415 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s128) = COPY $xmm1416 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[COPY1]](s128)417 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s8) = G_FCMP floatpred(uno), [[TRUNC]](s32), [[TRUNC1]]418 ; CHECK-NEXT: $al = COPY [[FCMP]](s8)419 ; CHECK-NEXT: RET 0, implicit $al420 %2:_(s128) = COPY $xmm0421 %0:_(s32) = G_TRUNC %2(s128)422 %3:_(s128) = COPY $xmm1423 %1:_(s32) = G_TRUNC %3(s128)424 %4:_(s1) = G_FCMP floatpred(uno), %0(s32), %1425 %5:_(s8) = G_ANYEXT %4(s1)426 $al = COPY %5(s8)427 RET 0, implicit $al428 429...430---431name: fcmp_float_ueq432alignment: 16433tracksRegLiveness: true434registers:435 - { id: 0, class: _ }436 - { id: 1, class: _ }437 - { id: 2, class: _ }438 - { id: 3, class: _ }439 - { id: 4, class: _ }440 - { id: 5, class: _ }441body: |442 bb.1 (%ir-block.0):443 liveins: $xmm0, $xmm1444 445 ; CHECK-LABEL: name: fcmp_float_ueq446 ; CHECK: liveins: $xmm0, $xmm1447 ; CHECK-NEXT: {{ $}}448 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s128) = COPY $xmm0449 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s128)450 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s128) = COPY $xmm1451 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[COPY1]](s128)452 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s8) = G_FCMP floatpred(ueq), [[TRUNC]](s32), [[TRUNC1]]453 ; CHECK-NEXT: $al = COPY [[FCMP]](s8)454 ; CHECK-NEXT: RET 0, implicit $al455 %2:_(s128) = COPY $xmm0456 %0:_(s32) = G_TRUNC %2(s128)457 %3:_(s128) = COPY $xmm1458 %1:_(s32) = G_TRUNC %3(s128)459 %4:_(s1) = G_FCMP floatpred(ueq), %0(s32), %1460 %5:_(s8) = G_ANYEXT %4(s1)461 $al = COPY %5(s8)462 RET 0, implicit $al463 464...465---466name: fcmp_float_ugt467alignment: 16468tracksRegLiveness: true469registers:470 - { id: 0, class: _ }471 - { id: 1, class: _ }472 - { id: 2, class: _ }473 - { id: 3, class: _ }474 - { id: 4, class: _ }475 - { id: 5, class: _ }476body: |477 bb.1 (%ir-block.0):478 liveins: $xmm0, $xmm1479 480 ; CHECK-LABEL: name: fcmp_float_ugt481 ; CHECK: liveins: $xmm0, $xmm1482 ; CHECK-NEXT: {{ $}}483 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s128) = COPY $xmm0484 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s128)485 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s128) = COPY $xmm1486 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[COPY1]](s128)487 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s8) = G_FCMP floatpred(ugt), [[TRUNC]](s32), [[TRUNC1]]488 ; CHECK-NEXT: $al = COPY [[FCMP]](s8)489 ; CHECK-NEXT: RET 0, implicit $al490 %2:_(s128) = COPY $xmm0491 %0:_(s32) = G_TRUNC %2(s128)492 %3:_(s128) = COPY $xmm1493 %1:_(s32) = G_TRUNC %3(s128)494 %4:_(s1) = G_FCMP floatpred(ugt), %0(s32), %1495 %5:_(s8) = G_ANYEXT %4(s1)496 $al = COPY %5(s8)497 RET 0, implicit $al498 499...500---501name: fcmp_float_uge502alignment: 16503tracksRegLiveness: true504registers:505 - { id: 0, class: _ }506 - { id: 1, class: _ }507 - { id: 2, class: _ }508 - { id: 3, class: _ }509 - { id: 4, class: _ }510 - { id: 5, class: _ }511body: |512 bb.1 (%ir-block.0):513 liveins: $xmm0, $xmm1514 515 ; CHECK-LABEL: name: fcmp_float_uge516 ; CHECK: liveins: $xmm0, $xmm1517 ; CHECK-NEXT: {{ $}}518 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s128) = COPY $xmm0519 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s128)520 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s128) = COPY $xmm1521 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[COPY1]](s128)522 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s8) = G_FCMP floatpred(uge), [[TRUNC]](s32), [[TRUNC1]]523 ; CHECK-NEXT: $al = COPY [[FCMP]](s8)524 ; CHECK-NEXT: RET 0, implicit $al525 %2:_(s128) = COPY $xmm0526 %0:_(s32) = G_TRUNC %2(s128)527 %3:_(s128) = COPY $xmm1528 %1:_(s32) = G_TRUNC %3(s128)529 %4:_(s1) = G_FCMP floatpred(uge), %0(s32), %1530 %5:_(s8) = G_ANYEXT %4(s1)531 $al = COPY %5(s8)532 RET 0, implicit $al533 534...535---536name: fcmp_float_ult537alignment: 16538tracksRegLiveness: true539registers:540 - { id: 0, class: _ }541 - { id: 1, class: _ }542 - { id: 2, class: _ }543 - { id: 3, class: _ }544 - { id: 4, class: _ }545 - { id: 5, class: _ }546body: |547 bb.1 (%ir-block.0):548 liveins: $xmm0, $xmm1549 550 ; CHECK-LABEL: name: fcmp_float_ult551 ; CHECK: liveins: $xmm0, $xmm1552 ; CHECK-NEXT: {{ $}}553 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s128) = COPY $xmm0554 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s128)555 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s128) = COPY $xmm1556 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[COPY1]](s128)557 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s8) = G_FCMP floatpred(ult), [[TRUNC]](s32), [[TRUNC1]]558 ; CHECK-NEXT: $al = COPY [[FCMP]](s8)559 ; CHECK-NEXT: RET 0, implicit $al560 %2:_(s128) = COPY $xmm0561 %0:_(s32) = G_TRUNC %2(s128)562 %3:_(s128) = COPY $xmm1563 %1:_(s32) = G_TRUNC %3(s128)564 %4:_(s1) = G_FCMP floatpred(ult), %0(s32), %1565 %5:_(s8) = G_ANYEXT %4(s1)566 $al = COPY %5(s8)567 RET 0, implicit $al568 569...570---571name: fcmp_float_ule572alignment: 16573tracksRegLiveness: true574registers:575 - { id: 0, class: _ }576 - { id: 1, class: _ }577 - { id: 2, class: _ }578 - { id: 3, class: _ }579 - { id: 4, class: _ }580 - { id: 5, class: _ }581body: |582 bb.1 (%ir-block.0):583 liveins: $xmm0, $xmm1584 585 ; CHECK-LABEL: name: fcmp_float_ule586 ; CHECK: liveins: $xmm0, $xmm1587 ; CHECK-NEXT: {{ $}}588 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s128) = COPY $xmm0589 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s128)590 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s128) = COPY $xmm1591 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[COPY1]](s128)592 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s8) = G_FCMP floatpred(ule), [[TRUNC]](s32), [[TRUNC1]]593 ; CHECK-NEXT: $al = COPY [[FCMP]](s8)594 ; CHECK-NEXT: RET 0, implicit $al595 %2:_(s128) = COPY $xmm0596 %0:_(s32) = G_TRUNC %2(s128)597 %3:_(s128) = COPY $xmm1598 %1:_(s32) = G_TRUNC %3(s128)599 %4:_(s1) = G_FCMP floatpred(ule), %0(s32), %1600 %5:_(s8) = G_ANYEXT %4(s1)601 $al = COPY %5(s8)602 RET 0, implicit $al603 604...605---606name: fcmp_float_une607alignment: 16608tracksRegLiveness: true609registers:610 - { id: 0, class: _ }611 - { id: 1, class: _ }612 - { id: 2, class: _ }613 - { id: 3, class: _ }614 - { id: 4, class: _ }615 - { id: 5, class: _ }616body: |617 bb.1 (%ir-block.0):618 liveins: $xmm0, $xmm1619 620 ; CHECK-LABEL: name: fcmp_float_une621 ; CHECK: liveins: $xmm0, $xmm1622 ; CHECK-NEXT: {{ $}}623 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s128) = COPY $xmm0624 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s128)625 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s128) = COPY $xmm1626 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[COPY1]](s128)627 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s8) = G_FCMP floatpred(une), [[TRUNC]](s32), [[TRUNC1]]628 ; CHECK-NEXT: $al = COPY [[FCMP]](s8)629 ; CHECK-NEXT: RET 0, implicit $al630 %2:_(s128) = COPY $xmm0631 %0:_(s32) = G_TRUNC %2(s128)632 %3:_(s128) = COPY $xmm1633 %1:_(s32) = G_TRUNC %3(s128)634 %4:_(s1) = G_FCMP floatpred(une), %0(s32), %1635 %5:_(s8) = G_ANYEXT %4(s1)636 $al = COPY %5(s8)637 RET 0, implicit $al638 639...640---641name: fcmp_double_oeq642alignment: 16643tracksRegLiveness: true644registers:645 - { id: 0, class: _ }646 - { id: 1, class: _ }647 - { id: 2, class: _ }648 - { id: 3, class: _ }649 - { id: 4, class: _ }650 - { id: 5, class: _ }651body: |652 bb.1 (%ir-block.0):653 liveins: $xmm0, $xmm1654 655 ; CHECK-LABEL: name: fcmp_double_oeq656 ; CHECK: liveins: $xmm0, $xmm1657 ; CHECK-NEXT: {{ $}}658 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s128) = COPY $xmm0659 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s64) = G_TRUNC [[COPY]](s128)660 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s128) = COPY $xmm1661 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s64) = G_TRUNC [[COPY1]](s128)662 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s8) = G_FCMP floatpred(oeq), [[TRUNC]](s64), [[TRUNC1]]663 ; CHECK-NEXT: $al = COPY [[FCMP]](s8)664 ; CHECK-NEXT: RET 0, implicit $al665 %2:_(s128) = COPY $xmm0666 %0:_(s64) = G_TRUNC %2(s128)667 %3:_(s128) = COPY $xmm1668 %1:_(s64) = G_TRUNC %3(s128)669 %4:_(s1) = G_FCMP floatpred(oeq), %0(s64), %1670 %5:_(s8) = G_ANYEXT %4(s1)671 $al = COPY %5(s8)672 RET 0, implicit $al673 674...675---676name: fcmp_double_ogt677alignment: 16678tracksRegLiveness: true679registers:680 - { id: 0, class: _ }681 - { id: 1, class: _ }682 - { id: 2, class: _ }683 - { id: 3, class: _ }684 - { id: 4, class: _ }685 - { id: 5, class: _ }686body: |687 bb.1 (%ir-block.0):688 liveins: $xmm0, $xmm1689 690 ; CHECK-LABEL: name: fcmp_double_ogt691 ; CHECK: liveins: $xmm0, $xmm1692 ; CHECK-NEXT: {{ $}}693 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s128) = COPY $xmm0694 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s64) = G_TRUNC [[COPY]](s128)695 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s128) = COPY $xmm1696 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s64) = G_TRUNC [[COPY1]](s128)697 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s8) = G_FCMP floatpred(ogt), [[TRUNC]](s64), [[TRUNC1]]698 ; CHECK-NEXT: $al = COPY [[FCMP]](s8)699 ; CHECK-NEXT: RET 0, implicit $al700 %2:_(s128) = COPY $xmm0701 %0:_(s64) = G_TRUNC %2(s128)702 %3:_(s128) = COPY $xmm1703 %1:_(s64) = G_TRUNC %3(s128)704 %4:_(s1) = G_FCMP floatpred(ogt), %0(s64), %1705 %5:_(s8) = G_ANYEXT %4(s1)706 $al = COPY %5(s8)707 RET 0, implicit $al708 709...710---711name: fcmp_double_oge712alignment: 16713tracksRegLiveness: true714registers:715 - { id: 0, class: _ }716 - { id: 1, class: _ }717 - { id: 2, class: _ }718 - { id: 3, class: _ }719 - { id: 4, class: _ }720 - { id: 5, class: _ }721body: |722 bb.1 (%ir-block.0):723 liveins: $xmm0, $xmm1724 725 ; CHECK-LABEL: name: fcmp_double_oge726 ; CHECK: liveins: $xmm0, $xmm1727 ; CHECK-NEXT: {{ $}}728 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s128) = COPY $xmm0729 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s64) = G_TRUNC [[COPY]](s128)730 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s128) = COPY $xmm1731 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s64) = G_TRUNC [[COPY1]](s128)732 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s8) = G_FCMP floatpred(oge), [[TRUNC]](s64), [[TRUNC1]]733 ; CHECK-NEXT: $al = COPY [[FCMP]](s8)734 ; CHECK-NEXT: RET 0, implicit $al735 %2:_(s128) = COPY $xmm0736 %0:_(s64) = G_TRUNC %2(s128)737 %3:_(s128) = COPY $xmm1738 %1:_(s64) = G_TRUNC %3(s128)739 %4:_(s1) = G_FCMP floatpred(oge), %0(s64), %1740 %5:_(s8) = G_ANYEXT %4(s1)741 $al = COPY %5(s8)742 RET 0, implicit $al743 744...745---746name: fcmp_double_olt747alignment: 16748tracksRegLiveness: true749registers:750 - { id: 0, class: _ }751 - { id: 1, class: _ }752 - { id: 2, class: _ }753 - { id: 3, class: _ }754 - { id: 4, class: _ }755 - { id: 5, class: _ }756body: |757 bb.1 (%ir-block.0):758 liveins: $xmm0, $xmm1759 760 ; CHECK-LABEL: name: fcmp_double_olt761 ; CHECK: liveins: $xmm0, $xmm1762 ; CHECK-NEXT: {{ $}}763 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s128) = COPY $xmm0764 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s64) = G_TRUNC [[COPY]](s128)765 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s128) = COPY $xmm1766 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s64) = G_TRUNC [[COPY1]](s128)767 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s8) = G_FCMP floatpred(olt), [[TRUNC]](s64), [[TRUNC1]]768 ; CHECK-NEXT: $al = COPY [[FCMP]](s8)769 ; CHECK-NEXT: RET 0, implicit $al770 %2:_(s128) = COPY $xmm0771 %0:_(s64) = G_TRUNC %2(s128)772 %3:_(s128) = COPY $xmm1773 %1:_(s64) = G_TRUNC %3(s128)774 %4:_(s1) = G_FCMP floatpred(olt), %0(s64), %1775 %5:_(s8) = G_ANYEXT %4(s1)776 $al = COPY %5(s8)777 RET 0, implicit $al778 779...780---781name: fcmp_double_ole782alignment: 16783tracksRegLiveness: true784registers:785 - { id: 0, class: _ }786 - { id: 1, class: _ }787 - { id: 2, class: _ }788 - { id: 3, class: _ }789 - { id: 4, class: _ }790 - { id: 5, class: _ }791body: |792 bb.1 (%ir-block.0):793 liveins: $xmm0, $xmm1794 795 ; CHECK-LABEL: name: fcmp_double_ole796 ; CHECK: liveins: $xmm0, $xmm1797 ; CHECK-NEXT: {{ $}}798 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s128) = COPY $xmm0799 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s64) = G_TRUNC [[COPY]](s128)800 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s128) = COPY $xmm1801 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s64) = G_TRUNC [[COPY1]](s128)802 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s8) = G_FCMP floatpred(ole), [[TRUNC]](s64), [[TRUNC1]]803 ; CHECK-NEXT: $al = COPY [[FCMP]](s8)804 ; CHECK-NEXT: RET 0, implicit $al805 %2:_(s128) = COPY $xmm0806 %0:_(s64) = G_TRUNC %2(s128)807 %3:_(s128) = COPY $xmm1808 %1:_(s64) = G_TRUNC %3(s128)809 %4:_(s1) = G_FCMP floatpred(ole), %0(s64), %1810 %5:_(s8) = G_ANYEXT %4(s1)811 $al = COPY %5(s8)812 RET 0, implicit $al813 814...815---816name: fcmp_double_one817alignment: 16818tracksRegLiveness: true819registers:820 - { id: 0, class: _ }821 - { id: 1, class: _ }822 - { id: 2, class: _ }823 - { id: 3, class: _ }824 - { id: 4, class: _ }825 - { id: 5, class: _ }826body: |827 bb.1 (%ir-block.0):828 liveins: $xmm0, $xmm1829 830 ; CHECK-LABEL: name: fcmp_double_one831 ; CHECK: liveins: $xmm0, $xmm1832 ; CHECK-NEXT: {{ $}}833 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s128) = COPY $xmm0834 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s64) = G_TRUNC [[COPY]](s128)835 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s128) = COPY $xmm1836 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s64) = G_TRUNC [[COPY1]](s128)837 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s8) = G_FCMP floatpred(one), [[TRUNC]](s64), [[TRUNC1]]838 ; CHECK-NEXT: $al = COPY [[FCMP]](s8)839 ; CHECK-NEXT: RET 0, implicit $al840 %2:_(s128) = COPY $xmm0841 %0:_(s64) = G_TRUNC %2(s128)842 %3:_(s128) = COPY $xmm1843 %1:_(s64) = G_TRUNC %3(s128)844 %4:_(s1) = G_FCMP floatpred(one), %0(s64), %1845 %5:_(s8) = G_ANYEXT %4(s1)846 $al = COPY %5(s8)847 RET 0, implicit $al848 849...850---851name: fcmp_double_ord852alignment: 16853tracksRegLiveness: true854registers:855 - { id: 0, class: _ }856 - { id: 1, class: _ }857 - { id: 2, class: _ }858 - { id: 3, class: _ }859 - { id: 4, class: _ }860 - { id: 5, class: _ }861body: |862 bb.1 (%ir-block.0):863 liveins: $xmm0, $xmm1864 865 ; CHECK-LABEL: name: fcmp_double_ord866 ; CHECK: liveins: $xmm0, $xmm1867 ; CHECK-NEXT: {{ $}}868 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s128) = COPY $xmm0869 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s64) = G_TRUNC [[COPY]](s128)870 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s128) = COPY $xmm1871 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s64) = G_TRUNC [[COPY1]](s128)872 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s8) = G_FCMP floatpred(ord), [[TRUNC]](s64), [[TRUNC1]]873 ; CHECK-NEXT: $al = COPY [[FCMP]](s8)874 ; CHECK-NEXT: RET 0, implicit $al875 %2:_(s128) = COPY $xmm0876 %0:_(s64) = G_TRUNC %2(s128)877 %3:_(s128) = COPY $xmm1878 %1:_(s64) = G_TRUNC %3(s128)879 %4:_(s1) = G_FCMP floatpred(ord), %0(s64), %1880 %5:_(s8) = G_ANYEXT %4(s1)881 $al = COPY %5(s8)882 RET 0, implicit $al883 884...885---886name: fcmp_double_uno887alignment: 16888tracksRegLiveness: true889registers:890 - { id: 0, class: _ }891 - { id: 1, class: _ }892 - { id: 2, class: _ }893 - { id: 3, class: _ }894 - { id: 4, class: _ }895 - { id: 5, class: _ }896body: |897 bb.1 (%ir-block.0):898 liveins: $xmm0, $xmm1899 900 ; CHECK-LABEL: name: fcmp_double_uno901 ; CHECK: liveins: $xmm0, $xmm1902 ; CHECK-NEXT: {{ $}}903 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s128) = COPY $xmm0904 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s64) = G_TRUNC [[COPY]](s128)905 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s128) = COPY $xmm1906 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s64) = G_TRUNC [[COPY1]](s128)907 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s8) = G_FCMP floatpred(uno), [[TRUNC]](s64), [[TRUNC1]]908 ; CHECK-NEXT: $al = COPY [[FCMP]](s8)909 ; CHECK-NEXT: RET 0, implicit $al910 %2:_(s128) = COPY $xmm0911 %0:_(s64) = G_TRUNC %2(s128)912 %3:_(s128) = COPY $xmm1913 %1:_(s64) = G_TRUNC %3(s128)914 %4:_(s1) = G_FCMP floatpred(uno), %0(s64), %1915 %5:_(s8) = G_ANYEXT %4(s1)916 $al = COPY %5(s8)917 RET 0, implicit $al918 919...920---921name: fcmp_double_ueq922alignment: 16923tracksRegLiveness: true924registers:925 - { id: 0, class: _ }926 - { id: 1, class: _ }927 - { id: 2, class: _ }928 - { id: 3, class: _ }929 - { id: 4, class: _ }930 - { id: 5, class: _ }931body: |932 bb.1 (%ir-block.0):933 liveins: $xmm0, $xmm1934 935 ; CHECK-LABEL: name: fcmp_double_ueq936 ; CHECK: liveins: $xmm0, $xmm1937 ; CHECK-NEXT: {{ $}}938 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s128) = COPY $xmm0939 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s64) = G_TRUNC [[COPY]](s128)940 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s128) = COPY $xmm1941 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s64) = G_TRUNC [[COPY1]](s128)942 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s8) = G_FCMP floatpred(ueq), [[TRUNC]](s64), [[TRUNC1]]943 ; CHECK-NEXT: $al = COPY [[FCMP]](s8)944 ; CHECK-NEXT: RET 0, implicit $al945 %2:_(s128) = COPY $xmm0946 %0:_(s64) = G_TRUNC %2(s128)947 %3:_(s128) = COPY $xmm1948 %1:_(s64) = G_TRUNC %3(s128)949 %4:_(s1) = G_FCMP floatpred(ueq), %0(s64), %1950 %5:_(s8) = G_ANYEXT %4(s1)951 $al = COPY %5(s8)952 RET 0, implicit $al953 954...955---956name: fcmp_double_ugt957alignment: 16958tracksRegLiveness: true959registers:960 - { id: 0, class: _ }961 - { id: 1, class: _ }962 - { id: 2, class: _ }963 - { id: 3, class: _ }964 - { id: 4, class: _ }965 - { id: 5, class: _ }966body: |967 bb.1 (%ir-block.0):968 liveins: $xmm0, $xmm1969 970 ; CHECK-LABEL: name: fcmp_double_ugt971 ; CHECK: liveins: $xmm0, $xmm1972 ; CHECK-NEXT: {{ $}}973 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s128) = COPY $xmm0974 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s64) = G_TRUNC [[COPY]](s128)975 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s128) = COPY $xmm1976 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s64) = G_TRUNC [[COPY1]](s128)977 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s8) = G_FCMP floatpred(ugt), [[TRUNC]](s64), [[TRUNC1]]978 ; CHECK-NEXT: $al = COPY [[FCMP]](s8)979 ; CHECK-NEXT: RET 0, implicit $al980 %2:_(s128) = COPY $xmm0981 %0:_(s64) = G_TRUNC %2(s128)982 %3:_(s128) = COPY $xmm1983 %1:_(s64) = G_TRUNC %3(s128)984 %4:_(s1) = G_FCMP floatpred(ugt), %0(s64), %1985 %5:_(s8) = G_ANYEXT %4(s1)986 $al = COPY %5(s8)987 RET 0, implicit $al988 989...990---991name: fcmp_double_uge992alignment: 16993tracksRegLiveness: true994registers:995 - { id: 0, class: _ }996 - { id: 1, class: _ }997 - { id: 2, class: _ }998 - { id: 3, class: _ }999 - { id: 4, class: _ }1000 - { id: 5, class: _ }1001body: |1002 bb.1 (%ir-block.0):1003 liveins: $xmm0, $xmm11004 1005 ; CHECK-LABEL: name: fcmp_double_uge1006 ; CHECK: liveins: $xmm0, $xmm11007 ; CHECK-NEXT: {{ $}}1008 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s128) = COPY $xmm01009 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s64) = G_TRUNC [[COPY]](s128)1010 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s128) = COPY $xmm11011 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s64) = G_TRUNC [[COPY1]](s128)1012 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s8) = G_FCMP floatpred(uge), [[TRUNC]](s64), [[TRUNC1]]1013 ; CHECK-NEXT: $al = COPY [[FCMP]](s8)1014 ; CHECK-NEXT: RET 0, implicit $al1015 %2:_(s128) = COPY $xmm01016 %0:_(s64) = G_TRUNC %2(s128)1017 %3:_(s128) = COPY $xmm11018 %1:_(s64) = G_TRUNC %3(s128)1019 %4:_(s1) = G_FCMP floatpred(uge), %0(s64), %11020 %5:_(s8) = G_ANYEXT %4(s1)1021 $al = COPY %5(s8)1022 RET 0, implicit $al1023 1024...1025---1026name: fcmp_double_ult1027alignment: 161028tracksRegLiveness: true1029registers:1030 - { id: 0, class: _ }1031 - { id: 1, class: _ }1032 - { id: 2, class: _ }1033 - { id: 3, class: _ }1034 - { id: 4, class: _ }1035 - { id: 5, class: _ }1036body: |1037 bb.1 (%ir-block.0):1038 liveins: $xmm0, $xmm11039 1040 ; CHECK-LABEL: name: fcmp_double_ult1041 ; CHECK: liveins: $xmm0, $xmm11042 ; CHECK-NEXT: {{ $}}1043 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s128) = COPY $xmm01044 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s64) = G_TRUNC [[COPY]](s128)1045 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s128) = COPY $xmm11046 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s64) = G_TRUNC [[COPY1]](s128)1047 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s8) = G_FCMP floatpred(ult), [[TRUNC]](s64), [[TRUNC1]]1048 ; CHECK-NEXT: $al = COPY [[FCMP]](s8)1049 ; CHECK-NEXT: RET 0, implicit $al1050 %2:_(s128) = COPY $xmm01051 %0:_(s64) = G_TRUNC %2(s128)1052 %3:_(s128) = COPY $xmm11053 %1:_(s64) = G_TRUNC %3(s128)1054 %4:_(s1) = G_FCMP floatpred(ult), %0(s64), %11055 %5:_(s8) = G_ANYEXT %4(s1)1056 $al = COPY %5(s8)1057 RET 0, implicit $al1058 1059...1060---1061name: fcmp_double_ule1062alignment: 161063tracksRegLiveness: true1064registers:1065 - { id: 0, class: _ }1066 - { id: 1, class: _ }1067 - { id: 2, class: _ }1068 - { id: 3, class: _ }1069 - { id: 4, class: _ }1070 - { id: 5, class: _ }1071body: |1072 bb.1 (%ir-block.0):1073 liveins: $xmm0, $xmm11074 1075 ; CHECK-LABEL: name: fcmp_double_ule1076 ; CHECK: liveins: $xmm0, $xmm11077 ; CHECK-NEXT: {{ $}}1078 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s128) = COPY $xmm01079 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s64) = G_TRUNC [[COPY]](s128)1080 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s128) = COPY $xmm11081 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s64) = G_TRUNC [[COPY1]](s128)1082 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s8) = G_FCMP floatpred(ule), [[TRUNC]](s64), [[TRUNC1]]1083 ; CHECK-NEXT: $al = COPY [[FCMP]](s8)1084 ; CHECK-NEXT: RET 0, implicit $al1085 %2:_(s128) = COPY $xmm01086 %0:_(s64) = G_TRUNC %2(s128)1087 %3:_(s128) = COPY $xmm11088 %1:_(s64) = G_TRUNC %3(s128)1089 %4:_(s1) = G_FCMP floatpred(ule), %0(s64), %11090 %5:_(s8) = G_ANYEXT %4(s1)1091 $al = COPY %5(s8)1092 RET 0, implicit $al1093 1094...1095---1096name: fcmp_double_une1097alignment: 161098tracksRegLiveness: true1099registers:1100 - { id: 0, class: _ }1101 - { id: 1, class: _ }1102 - { id: 2, class: _ }1103 - { id: 3, class: _ }1104 - { id: 4, class: _ }1105 - { id: 5, class: _ }1106body: |1107 bb.1 (%ir-block.0):1108 liveins: $xmm0, $xmm11109 1110 ; CHECK-LABEL: name: fcmp_double_une1111 ; CHECK: liveins: $xmm0, $xmm11112 ; CHECK-NEXT: {{ $}}1113 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s128) = COPY $xmm01114 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s64) = G_TRUNC [[COPY]](s128)1115 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s128) = COPY $xmm11116 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s64) = G_TRUNC [[COPY1]](s128)1117 ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s8) = G_FCMP floatpred(une), [[TRUNC]](s64), [[TRUNC1]]1118 ; CHECK-NEXT: $al = COPY [[FCMP]](s8)1119 ; CHECK-NEXT: RET 0, implicit $al1120 %2:_(s128) = COPY $xmm01121 %0:_(s64) = G_TRUNC %2(s128)1122 %3:_(s128) = COPY $xmm11123 %1:_(s64) = G_TRUNC %3(s128)1124 %4:_(s1) = G_FCMP floatpred(une), %0(s64), %11125 %5:_(s8) = G_ANYEXT %4(s1)1126 $al = COPY %5(s8)1127 RET 0, implicit $al1128 1129...1130