brintos

brintos / llvm-project-archived public Read only

0
0
Text · 32.8 KiB · 2b861c7 Raw
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