brintos

brintos / llvm-project-archived public Read only

0
0
Text · 19.6 KiB · 85b1d40 Raw
524 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -mcpu=fiji -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=0 -o - %s  | FileCheck -check-prefix=WAVE64 %s3# RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=0 -o - %s  | FileCheck -check-prefix=WAVE32 %s4 5---6name: fcmp_false_s16_vv7legalized: true8regBankSelected: true9 10body: |11  bb.0:12    liveins: $vgpr0, $vgpr113    ; WAVE64-LABEL: name: fcmp_false_s16_vv14    ; WAVE64: liveins: $vgpr0, $vgpr115    ; WAVE64-NEXT: {{  $}}16    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr017    ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr118    ; WAVE64-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s16) = G_TRUNC [[COPY]](s32)19    ; WAVE64-NEXT: [[TRUNC1:%[0-9]+]]:vgpr(s16) = G_TRUNC [[COPY1]](s32)20    ; WAVE64-NEXT: [[FCMP:%[0-9]+]]:vcc(s1) = G_FCMP floatpred(false), [[TRUNC]](s16), [[TRUNC1]]21    ; WAVE64-NEXT: S_ENDPGM 0, implicit [[FCMP]](s1)22    ;23    ; WAVE32-LABEL: name: fcmp_false_s16_vv24    ; WAVE32: liveins: $vgpr0, $vgpr125    ; WAVE32-NEXT: {{  $}}26    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr027    ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr128    ; WAVE32-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s16) = G_TRUNC [[COPY]](s32)29    ; WAVE32-NEXT: [[TRUNC1:%[0-9]+]]:vgpr(s16) = G_TRUNC [[COPY1]](s32)30    ; WAVE32-NEXT: [[FCMP:%[0-9]+]]:vcc(s1) = G_FCMP floatpred(false), [[TRUNC]](s16), [[TRUNC1]]31    ; WAVE32-NEXT: S_ENDPGM 0, implicit [[FCMP]](s1)32    ;33    %0:vgpr(s32) = COPY $vgpr034    %1:vgpr(s32) = COPY $vgpr135    %2:vgpr(s16) = G_TRUNC %036    %3:vgpr(s16) = G_TRUNC %137    %4:vcc(s1) = G_FCMP floatpred(false), %2, %338    S_ENDPGM 0, implicit %439...40 41---42name: fcmp_oeq_s16_vv43legalized: true44regBankSelected: true45 46body: |47  bb.0:48    liveins: $vgpr0, $vgpr149    ; WAVE64-LABEL: name: fcmp_oeq_s16_vv50    ; WAVE64: liveins: $vgpr0, $vgpr151    ; WAVE64-NEXT: {{  $}}52    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr053    ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr154    ; WAVE64-NEXT: [[V_CMP_EQ_F16_e64_:%[0-9]+]]:sreg_64_xexec = nofpexcept V_CMP_EQ_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec55    ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_EQ_F16_e64_]]56    ;57    ; WAVE32-LABEL: name: fcmp_oeq_s16_vv58    ; WAVE32: liveins: $vgpr0, $vgpr159    ; WAVE32-NEXT: {{  $}}60    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr061    ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr162    ; WAVE32-NEXT: [[V_CMP_EQ_F16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_EQ_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec63    ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_EQ_F16_e64_]]64    ;65    %0:vgpr(s32) = COPY $vgpr066    %1:vgpr(s32) = COPY $vgpr167    %2:vgpr(s16) = G_TRUNC %068    %3:vgpr(s16) = G_TRUNC %169    %4:vcc(s1) = G_FCMP floatpred(oeq), %2, %370    S_ENDPGM 0, implicit %471...72 73---74name: fcmp_ogt_s16_vv75legalized: true76regBankSelected: true77 78body: |79  bb.0:80    liveins: $vgpr0, $vgpr181    ; WAVE64-LABEL: name: fcmp_ogt_s16_vv82    ; WAVE64: liveins: $vgpr0, $vgpr183    ; WAVE64-NEXT: {{  $}}84    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr085    ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr186    ; WAVE64-NEXT: [[V_CMP_GT_F16_e64_:%[0-9]+]]:sreg_64_xexec = nofpexcept V_CMP_GT_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec87    ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_GT_F16_e64_]]88    ;89    ; WAVE32-LABEL: name: fcmp_ogt_s16_vv90    ; WAVE32: liveins: $vgpr0, $vgpr191    ; WAVE32-NEXT: {{  $}}92    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr093    ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr194    ; WAVE32-NEXT: [[V_CMP_GT_F16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_GT_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec95    ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_GT_F16_e64_]]96    ;97    %0:vgpr(s32) = COPY $vgpr098    %1:vgpr(s32) = COPY $vgpr199    %2:vgpr(s16) = G_TRUNC %0100    %3:vgpr(s16) = G_TRUNC %1101    %4:vcc(s1) = G_FCMP floatpred(ogt), %2, %3102    S_ENDPGM 0, implicit %4103...104 105---106name: fcmp_oge_s16_vv107legalized: true108regBankSelected: true109 110body: |111  bb.0:112    liveins: $vgpr0, $vgpr1113    ; WAVE64-LABEL: name: fcmp_oge_s16_vv114    ; WAVE64: liveins: $vgpr0, $vgpr1115    ; WAVE64-NEXT: {{  $}}116    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0117    ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1118    ; WAVE64-NEXT: [[V_CMP_GE_F16_e64_:%[0-9]+]]:sreg_64_xexec = nofpexcept V_CMP_GE_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec119    ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_GE_F16_e64_]]120    ;121    ; WAVE32-LABEL: name: fcmp_oge_s16_vv122    ; WAVE32: liveins: $vgpr0, $vgpr1123    ; WAVE32-NEXT: {{  $}}124    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0125    ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1126    ; WAVE32-NEXT: [[V_CMP_GE_F16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_GE_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec127    ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_GE_F16_e64_]]128    ;129    %0:vgpr(s32) = COPY $vgpr0130    %1:vgpr(s32) = COPY $vgpr1131    %2:vgpr(s16) = G_TRUNC %0132    %3:vgpr(s16) = G_TRUNC %1133    %4:vcc(s1) = G_FCMP floatpred(oge), %2, %3134    S_ENDPGM 0, implicit %4135...136 137---138name: fcmp_olt_s16_vv139legalized: true140regBankSelected: true141 142body: |143  bb.0:144    liveins: $vgpr0, $vgpr1145    ; WAVE64-LABEL: name: fcmp_olt_s16_vv146    ; WAVE64: liveins: $vgpr0, $vgpr1147    ; WAVE64-NEXT: {{  $}}148    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0149    ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1150    ; WAVE64-NEXT: [[V_CMP_LT_F16_e64_:%[0-9]+]]:sreg_64_xexec = nofpexcept V_CMP_LT_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec151    ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_LT_F16_e64_]]152    ;153    ; WAVE32-LABEL: name: fcmp_olt_s16_vv154    ; WAVE32: liveins: $vgpr0, $vgpr1155    ; WAVE32-NEXT: {{  $}}156    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0157    ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1158    ; WAVE32-NEXT: [[V_CMP_LT_F16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_LT_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec159    ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_LT_F16_e64_]]160    ;161    %0:vgpr(s32) = COPY $vgpr0162    %1:vgpr(s32) = COPY $vgpr1163    %2:vgpr(s16) = G_TRUNC %0164    %3:vgpr(s16) = G_TRUNC %1165    %4:vcc(s1) = G_FCMP floatpred(olt), %2, %3166    S_ENDPGM 0, implicit %4167...168 169---170name: fcmp_ole_s16_vv171legalized: true172regBankSelected: true173 174body: |175  bb.0:176    liveins: $vgpr0, $vgpr1177    ; WAVE64-LABEL: name: fcmp_ole_s16_vv178    ; WAVE64: liveins: $vgpr0, $vgpr1179    ; WAVE64-NEXT: {{  $}}180    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0181    ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1182    ; WAVE64-NEXT: [[V_CMP_LE_F16_e64_:%[0-9]+]]:sreg_64_xexec = nofpexcept V_CMP_LE_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec183    ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_LE_F16_e64_]]184    ;185    ; WAVE32-LABEL: name: fcmp_ole_s16_vv186    ; WAVE32: liveins: $vgpr0, $vgpr1187    ; WAVE32-NEXT: {{  $}}188    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0189    ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1190    ; WAVE32-NEXT: [[V_CMP_LE_F16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_LE_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec191    ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_LE_F16_e64_]]192    ;193    %0:vgpr(s32) = COPY $vgpr0194    %1:vgpr(s32) = COPY $vgpr1195    %2:vgpr(s16) = G_TRUNC %0196    %3:vgpr(s16) = G_TRUNC %1197    %4:vcc(s1) = G_FCMP floatpred(ole), %2, %3198    S_ENDPGM 0, implicit %4199...200---201name: fcmp_one_s16_vv202legalized: true203regBankSelected: true204 205body: |206  bb.0:207    liveins: $vgpr0, $vgpr1208    ; WAVE64-LABEL: name: fcmp_one_s16_vv209    ; WAVE64: liveins: $vgpr0, $vgpr1210    ; WAVE64-NEXT: {{  $}}211    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0212    ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1213    ; WAVE64-NEXT: [[V_CMP_LG_F16_e64_:%[0-9]+]]:sreg_64_xexec = nofpexcept V_CMP_LG_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec214    ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_LG_F16_e64_]]215    ;216    ; WAVE32-LABEL: name: fcmp_one_s16_vv217    ; WAVE32: liveins: $vgpr0, $vgpr1218    ; WAVE32-NEXT: {{  $}}219    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0220    ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1221    ; WAVE32-NEXT: [[V_CMP_LG_F16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_LG_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec222    ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_LG_F16_e64_]]223    ;224    %0:vgpr(s32) = COPY $vgpr0225    %1:vgpr(s32) = COPY $vgpr1226    %2:vgpr(s16) = G_TRUNC %0227    %3:vgpr(s16) = G_TRUNC %1228    %4:vcc(s1) = G_FCMP floatpred(one), %2, %3229    S_ENDPGM 0, implicit %4230...231 232---233name: fcmp_ord_s16_vv234legalized: true235regBankSelected: true236 237body: |238  bb.0:239    liveins: $vgpr0, $vgpr1240    ; WAVE64-LABEL: name: fcmp_ord_s16_vv241    ; WAVE64: liveins: $vgpr0, $vgpr1242    ; WAVE64-NEXT: {{  $}}243    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0244    ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1245    ; WAVE64-NEXT: [[V_CMP_LG_F16_e64_:%[0-9]+]]:sreg_64_xexec = nofpexcept V_CMP_LG_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec246    ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_LG_F16_e64_]]247    ;248    ; WAVE32-LABEL: name: fcmp_ord_s16_vv249    ; WAVE32: liveins: $vgpr0, $vgpr1250    ; WAVE32-NEXT: {{  $}}251    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0252    ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1253    ; WAVE32-NEXT: [[V_CMP_LG_F16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_LG_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec254    ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_LG_F16_e64_]]255    ;256    %0:vgpr(s32) = COPY $vgpr0257    %1:vgpr(s32) = COPY $vgpr1258    %2:vgpr(s16) = G_TRUNC %0259    %3:vgpr(s16) = G_TRUNC %1260    %4:vcc(s1) = G_FCMP floatpred(one), %2, %3261    S_ENDPGM 0, implicit %4262...263 264---265name: fcmp_uno_s16_vv266legalized: true267regBankSelected: true268 269body: |270  bb.0:271    liveins: $vgpr0, $vgpr1272    ; WAVE64-LABEL: name: fcmp_uno_s16_vv273    ; WAVE64: liveins: $vgpr0, $vgpr1274    ; WAVE64-NEXT: {{  $}}275    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0276    ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1277    ; WAVE64-NEXT: [[V_CMP_U_F16_e64_:%[0-9]+]]:sreg_64_xexec = nofpexcept V_CMP_U_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec278    ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_U_F16_e64_]]279    ;280    ; WAVE32-LABEL: name: fcmp_uno_s16_vv281    ; WAVE32: liveins: $vgpr0, $vgpr1282    ; WAVE32-NEXT: {{  $}}283    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0284    ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1285    ; WAVE32-NEXT: [[V_CMP_U_F16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_U_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec286    ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_U_F16_e64_]]287    ;288    %0:vgpr(s32) = COPY $vgpr0289    %1:vgpr(s32) = COPY $vgpr1290    %2:vgpr(s16) = G_TRUNC %0291    %3:vgpr(s16) = G_TRUNC %1292    %4:vcc(s1) = G_FCMP floatpred(uno), %2, %3293    S_ENDPGM 0, implicit %4294...295 296---297name: fcmp_ueq_s16_vv298legalized: true299regBankSelected: true300 301body: |302  bb.0:303    liveins: $vgpr0, $vgpr1304    ; WAVE64-LABEL: name: fcmp_ueq_s16_vv305    ; WAVE64: liveins: $vgpr0, $vgpr1306    ; WAVE64-NEXT: {{  $}}307    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0308    ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1309    ; WAVE64-NEXT: [[V_CMP_NLG_F16_e64_:%[0-9]+]]:sreg_64_xexec = nofpexcept V_CMP_NLG_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec310    ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_NLG_F16_e64_]]311    ;312    ; WAVE32-LABEL: name: fcmp_ueq_s16_vv313    ; WAVE32: liveins: $vgpr0, $vgpr1314    ; WAVE32-NEXT: {{  $}}315    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0316    ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1317    ; WAVE32-NEXT: [[V_CMP_NLG_F16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_NLG_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec318    ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_NLG_F16_e64_]]319    ;320    %0:vgpr(s32) = COPY $vgpr0321    %1:vgpr(s32) = COPY $vgpr1322    %2:vgpr(s16) = G_TRUNC %0323    %3:vgpr(s16) = G_TRUNC %1324    %4:vcc(s1) = G_FCMP floatpred(ueq), %2, %3325    S_ENDPGM 0, implicit %4326...327 328---329name: fcmp_ugt_s16_vv330legalized: true331regBankSelected: true332 333body: |334  bb.0:335    liveins: $vgpr0, $vgpr1336    ; WAVE64-LABEL: name: fcmp_ugt_s16_vv337    ; WAVE64: liveins: $vgpr0, $vgpr1338    ; WAVE64-NEXT: {{  $}}339    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0340    ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1341    ; WAVE64-NEXT: [[V_CMP_NLE_F16_e64_:%[0-9]+]]:sreg_64_xexec = nofpexcept V_CMP_NLE_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec342    ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_NLE_F16_e64_]]343    ;344    ; WAVE32-LABEL: name: fcmp_ugt_s16_vv345    ; WAVE32: liveins: $vgpr0, $vgpr1346    ; WAVE32-NEXT: {{  $}}347    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0348    ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1349    ; WAVE32-NEXT: [[V_CMP_NLE_F16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_NLE_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec350    ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_NLE_F16_e64_]]351    ;352    %0:vgpr(s32) = COPY $vgpr0353    %1:vgpr(s32) = COPY $vgpr1354    %2:vgpr(s16) = G_TRUNC %0355    %3:vgpr(s16) = G_TRUNC %1356    %4:vcc(s1) = G_FCMP floatpred(ugt), %2, %3357    S_ENDPGM 0, implicit %4358...359 360---361name: fcmp_uge_s16_vv362legalized: true363regBankSelected: true364 365body: |366  bb.0:367    liveins: $vgpr0, $vgpr1368    ; WAVE64-LABEL: name: fcmp_uge_s16_vv369    ; WAVE64: liveins: $vgpr0, $vgpr1370    ; WAVE64-NEXT: {{  $}}371    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0372    ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1373    ; WAVE64-NEXT: [[V_CMP_NLT_F16_e64_:%[0-9]+]]:sreg_64_xexec = nofpexcept V_CMP_NLT_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec374    ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_NLT_F16_e64_]]375    ;376    ; WAVE32-LABEL: name: fcmp_uge_s16_vv377    ; WAVE32: liveins: $vgpr0, $vgpr1378    ; WAVE32-NEXT: {{  $}}379    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0380    ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1381    ; WAVE32-NEXT: [[V_CMP_NLT_F16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_NLT_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec382    ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_NLT_F16_e64_]]383    ;384    %0:vgpr(s32) = COPY $vgpr0385    %1:vgpr(s32) = COPY $vgpr1386    %2:vgpr(s16) = G_TRUNC %0387    %3:vgpr(s16) = G_TRUNC %1388    %4:vcc(s1) = G_FCMP floatpred(uge), %2, %3389    S_ENDPGM 0, implicit %4390...391 392---393name: fcmp_ult_s16_vv394legalized: true395regBankSelected: true396 397body: |398  bb.0:399    liveins: $vgpr0, $vgpr1400    ; WAVE64-LABEL: name: fcmp_ult_s16_vv401    ; WAVE64: liveins: $vgpr0, $vgpr1402    ; WAVE64-NEXT: {{  $}}403    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0404    ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1405    ; WAVE64-NEXT: [[V_CMP_NGE_F16_e64_:%[0-9]+]]:sreg_64_xexec = nofpexcept V_CMP_NGE_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec406    ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_NGE_F16_e64_]]407    ;408    ; WAVE32-LABEL: name: fcmp_ult_s16_vv409    ; WAVE32: liveins: $vgpr0, $vgpr1410    ; WAVE32-NEXT: {{  $}}411    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0412    ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1413    ; WAVE32-NEXT: [[V_CMP_NGE_F16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_NGE_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec414    ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_NGE_F16_e64_]]415    ;416    %0:vgpr(s32) = COPY $vgpr0417    %1:vgpr(s32) = COPY $vgpr1418    %2:vgpr(s16) = G_TRUNC %0419    %3:vgpr(s16) = G_TRUNC %1420    %4:vcc(s1) = G_FCMP floatpred(ult), %2, %3421    S_ENDPGM 0, implicit %4422...423 424---425name: fcmp_ule_s16_vv426legalized: true427regBankSelected: true428 429body: |430  bb.0:431    liveins: $vgpr0, $vgpr1432    ; WAVE64-LABEL: name: fcmp_ule_s16_vv433    ; WAVE64: liveins: $vgpr0, $vgpr1434    ; WAVE64-NEXT: {{  $}}435    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0436    ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1437    ; WAVE64-NEXT: [[V_CMP_NGT_F16_e64_:%[0-9]+]]:sreg_64_xexec = nofpexcept V_CMP_NGT_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec438    ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_NGT_F16_e64_]]439    ;440    ; WAVE32-LABEL: name: fcmp_ule_s16_vv441    ; WAVE32: liveins: $vgpr0, $vgpr1442    ; WAVE32-NEXT: {{  $}}443    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0444    ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1445    ; WAVE32-NEXT: [[V_CMP_NGT_F16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_NGT_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec446    ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_NGT_F16_e64_]]447    ;448    %0:vgpr(s32) = COPY $vgpr0449    %1:vgpr(s32) = COPY $vgpr1450    %2:vgpr(s16) = G_TRUNC %0451    %3:vgpr(s16) = G_TRUNC %1452    %4:vcc(s1) = G_FCMP floatpred(ule), %2, %3453    S_ENDPGM 0, implicit %4454...455 456---457name: fcmp_une_s16_vv458legalized: true459regBankSelected: true460 461body: |462  bb.0:463    liveins: $vgpr0, $vgpr1464    ; WAVE64-LABEL: name: fcmp_une_s16_vv465    ; WAVE64: liveins: $vgpr0, $vgpr1466    ; WAVE64-NEXT: {{  $}}467    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0468    ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1469    ; WAVE64-NEXT: [[V_CMP_NEQ_F16_e64_:%[0-9]+]]:sreg_64_xexec = nofpexcept V_CMP_NEQ_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec470    ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_NEQ_F16_e64_]]471    ;472    ; WAVE32-LABEL: name: fcmp_une_s16_vv473    ; WAVE32: liveins: $vgpr0, $vgpr1474    ; WAVE32-NEXT: {{  $}}475    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0476    ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1477    ; WAVE32-NEXT: [[V_CMP_NEQ_F16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_NEQ_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec478    ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_NEQ_F16_e64_]]479    ;480    %0:vgpr(s32) = COPY $vgpr0481    %1:vgpr(s32) = COPY $vgpr1482    %2:vgpr(s16) = G_TRUNC %0483    %3:vgpr(s16) = G_TRUNC %1484    %4:vcc(s1) = G_FCMP floatpred(une), %2, %3485    S_ENDPGM 0, implicit %4486...487 488---489name: fcmp_true_s16_vv490legalized: true491regBankSelected: true492 493body: |494  bb.0:495    liveins: $vgpr0, $vgpr1496    ; WAVE64-LABEL: name: fcmp_true_s16_vv497    ; WAVE64: liveins: $vgpr0, $vgpr1498    ; WAVE64-NEXT: {{  $}}499    ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0500    ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1501    ; WAVE64-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s16) = G_TRUNC [[COPY]](s32)502    ; WAVE64-NEXT: [[TRUNC1:%[0-9]+]]:vgpr(s16) = G_TRUNC [[COPY1]](s32)503    ; WAVE64-NEXT: [[FCMP:%[0-9]+]]:vcc(s1) = G_FCMP floatpred(true), [[TRUNC]](s16), [[TRUNC1]]504    ; WAVE64-NEXT: S_ENDPGM 0, implicit [[FCMP]](s1)505    ;506    ; WAVE32-LABEL: name: fcmp_true_s16_vv507    ; WAVE32: liveins: $vgpr0, $vgpr1508    ; WAVE32-NEXT: {{  $}}509    ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0510    ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1511    ; WAVE32-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s16) = G_TRUNC [[COPY]](s32)512    ; WAVE32-NEXT: [[TRUNC1:%[0-9]+]]:vgpr(s16) = G_TRUNC [[COPY1]](s32)513    ; WAVE32-NEXT: [[FCMP:%[0-9]+]]:vcc(s1) = G_FCMP floatpred(true), [[TRUNC]](s16), [[TRUNC1]]514    ; WAVE32-NEXT: S_ENDPGM 0, implicit [[FCMP]](s1)515    ;516    %0:vgpr(s32) = COPY $vgpr0517    %1:vgpr(s32) = COPY $vgpr1518    %2:vgpr(s16) = G_TRUNC %0519    %3:vgpr(s16) = G_TRUNC %1520    %4:vcc(s1) = G_FCMP floatpred(true), %2, %3521    S_ENDPGM 0, implicit %4522...523 524