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