932 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -mcpu=tahiti -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# RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=0 -o - %s | FileCheck -check-prefix=WAVE32 %s5 6---7name: fcmp_false_s32_vv8legalized: true9regBankSelected: true10 11body: |12 bb.0:13 liveins: $vgpr0, $vgpr114 ; WAVE64-LABEL: name: fcmp_false_s32_vv15 ; WAVE64: liveins: $vgpr0, $vgpr116 ; WAVE64-NEXT: {{ $}}17 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr018 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr119 ; WAVE64-NEXT: [[FCMP:%[0-9]+]]:vcc(s1) = G_FCMP floatpred(false), [[COPY]](s32), [[COPY1]]20 ; WAVE64-NEXT: S_ENDPGM 0, implicit [[FCMP]](s1)21 ; WAVE32-LABEL: name: fcmp_false_s32_vv22 ; WAVE32: liveins: $vgpr0, $vgpr123 ; WAVE32-NEXT: {{ $}}24 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr025 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr126 ; WAVE32-NEXT: [[FCMP:%[0-9]+]]:vcc(s1) = G_FCMP floatpred(false), [[COPY]](s32), [[COPY1]]27 ; WAVE32-NEXT: S_ENDPGM 0, implicit [[FCMP]](s1)28 %0:vgpr(s32) = COPY $vgpr029 %1:vgpr(s32) = COPY $vgpr130 %2:vcc(s1) = G_FCMP floatpred(false), %0, %131 S_ENDPGM 0, implicit %232...33 34---35name: fcmp_oeq_s32_vv36legalized: true37regBankSelected: true38 39body: |40 bb.0:41 liveins: $vgpr0, $vgpr142 ; WAVE64-LABEL: name: fcmp_oeq_s32_vv43 ; WAVE64: liveins: $vgpr0, $vgpr144 ; WAVE64-NEXT: {{ $}}45 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr046 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr147 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_EQ_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec48 ; WAVE64-NEXT: S_ENDPGM 0, implicit %249 ; WAVE32-LABEL: name: fcmp_oeq_s32_vv50 ; WAVE32: liveins: $vgpr0, $vgpr151 ; WAVE32-NEXT: {{ $}}52 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr053 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr154 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_EQ_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec55 ; WAVE32-NEXT: S_ENDPGM 0, implicit %256 %0:vgpr(s32) = COPY $vgpr057 %1:vgpr(s32) = COPY $vgpr158 %2:vcc(s1) = G_FCMP floatpred(oeq), %0, %159 S_ENDPGM 0, implicit %260...61 62---63name: fcmp_ogt_s32_vv64legalized: true65regBankSelected: true66 67body: |68 bb.0:69 liveins: $vgpr0, $vgpr170 ; WAVE64-LABEL: name: fcmp_ogt_s32_vv71 ; WAVE64: liveins: $vgpr0, $vgpr172 ; WAVE64-NEXT: {{ $}}73 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr074 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr175 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_GT_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec76 ; WAVE64-NEXT: S_ENDPGM 0, implicit %277 ; WAVE32-LABEL: name: fcmp_ogt_s32_vv78 ; WAVE32: liveins: $vgpr0, $vgpr179 ; WAVE32-NEXT: {{ $}}80 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr081 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr182 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_GT_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec83 ; WAVE32-NEXT: S_ENDPGM 0, implicit %284 %0:vgpr(s32) = COPY $vgpr085 %1:vgpr(s32) = COPY $vgpr186 %2:vcc(s1) = G_FCMP floatpred(ogt), %0, %187 S_ENDPGM 0, implicit %288...89 90---91name: fcmp_oge_s32_vv92legalized: true93regBankSelected: true94 95body: |96 bb.0:97 liveins: $vgpr0, $vgpr198 ; WAVE64-LABEL: name: fcmp_oge_s32_vv99 ; WAVE64: liveins: $vgpr0, $vgpr1100 ; WAVE64-NEXT: {{ $}}101 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0102 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1103 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_GE_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec104 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2105 ; WAVE32-LABEL: name: fcmp_oge_s32_vv106 ; WAVE32: liveins: $vgpr0, $vgpr1107 ; WAVE32-NEXT: {{ $}}108 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0109 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1110 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_GE_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec111 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2112 %0:vgpr(s32) = COPY $vgpr0113 %1:vgpr(s32) = COPY $vgpr1114 %2:vcc(s1) = G_FCMP floatpred(oge), %0, %1115 S_ENDPGM 0, implicit %2116...117 118---119name: fcmp_olt_s32_vv120legalized: true121regBankSelected: true122 123body: |124 bb.0:125 liveins: $vgpr0, $vgpr1126 ; WAVE64-LABEL: name: fcmp_olt_s32_vv127 ; WAVE64: liveins: $vgpr0, $vgpr1128 ; WAVE64-NEXT: {{ $}}129 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0130 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1131 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_LT_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec132 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2133 ; WAVE32-LABEL: name: fcmp_olt_s32_vv134 ; WAVE32: liveins: $vgpr0, $vgpr1135 ; WAVE32-NEXT: {{ $}}136 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0137 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1138 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_LT_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec139 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2140 %0:vgpr(s32) = COPY $vgpr0141 %1:vgpr(s32) = COPY $vgpr1142 %2:vcc(s1) = G_FCMP floatpred(olt), %0, %1143 S_ENDPGM 0, implicit %2144...145 146---147name: fcmp_ole_s32_vv148legalized: true149regBankSelected: true150 151body: |152 bb.0:153 liveins: $vgpr0, $vgpr1154 ; WAVE64-LABEL: name: fcmp_ole_s32_vv155 ; WAVE64: liveins: $vgpr0, $vgpr1156 ; WAVE64-NEXT: {{ $}}157 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0158 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1159 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_LE_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec160 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2161 ; WAVE32-LABEL: name: fcmp_ole_s32_vv162 ; WAVE32: liveins: $vgpr0, $vgpr1163 ; WAVE32-NEXT: {{ $}}164 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0165 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1166 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_LE_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec167 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2168 %0:vgpr(s32) = COPY $vgpr0169 %1:vgpr(s32) = COPY $vgpr1170 %2:vcc(s1) = G_FCMP floatpred(ole), %0, %1171 S_ENDPGM 0, implicit %2172...173 174---175name: fcmp_one_s32_vv176legalized: true177regBankSelected: true178 179body: |180 bb.0:181 liveins: $vgpr0, $vgpr1182 ; WAVE64-LABEL: name: fcmp_one_s32_vv183 ; WAVE64: liveins: $vgpr0, $vgpr1184 ; WAVE64-NEXT: {{ $}}185 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0186 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1187 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_LG_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec188 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2189 ; WAVE32-LABEL: name: fcmp_one_s32_vv190 ; WAVE32: liveins: $vgpr0, $vgpr1191 ; WAVE32-NEXT: {{ $}}192 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0193 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1194 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_LG_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec195 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2196 %0:vgpr(s32) = COPY $vgpr0197 %1:vgpr(s32) = COPY $vgpr1198 %2:vcc(s1) = G_FCMP floatpred(one), %0, %1199 S_ENDPGM 0, implicit %2200...201 202---203name: fcmp_ord_s32_vv204legalized: true205regBankSelected: true206 207body: |208 bb.0:209 liveins: $vgpr0, $vgpr1210 ; WAVE64-LABEL: name: fcmp_ord_s32_vv211 ; WAVE64: liveins: $vgpr0, $vgpr1212 ; WAVE64-NEXT: {{ $}}213 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0214 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1215 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_O_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec216 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2217 ; WAVE32-LABEL: name: fcmp_ord_s32_vv218 ; WAVE32: liveins: $vgpr0, $vgpr1219 ; WAVE32-NEXT: {{ $}}220 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0221 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1222 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_O_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec223 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2224 %0:vgpr(s32) = COPY $vgpr0225 %1:vgpr(s32) = COPY $vgpr1226 %2:vcc(s1) = G_FCMP floatpred(ord), %0, %1227 S_ENDPGM 0, implicit %2228...229 230---231name: fcmp_uno_s32_vv232legalized: true233regBankSelected: true234 235body: |236 bb.0:237 liveins: $vgpr0, $vgpr1238 ; WAVE64-LABEL: name: fcmp_uno_s32_vv239 ; WAVE64: liveins: $vgpr0, $vgpr1240 ; WAVE64-NEXT: {{ $}}241 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0242 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1243 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_U_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec244 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2245 ; WAVE32-LABEL: name: fcmp_uno_s32_vv246 ; WAVE32: liveins: $vgpr0, $vgpr1247 ; WAVE32-NEXT: {{ $}}248 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0249 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1250 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_U_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec251 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2252 %0:vgpr(s32) = COPY $vgpr0253 %1:vgpr(s32) = COPY $vgpr1254 %2:vcc(s1) = G_FCMP floatpred(uno), %0, %1255 S_ENDPGM 0, implicit %2256...257 258---259name: fcmp_ueq_s32_vv260legalized: true261regBankSelected: true262 263body: |264 bb.0:265 liveins: $vgpr0, $vgpr1266 ; WAVE64-LABEL: name: fcmp_ueq_s32_vv267 ; WAVE64: liveins: $vgpr0, $vgpr1268 ; WAVE64-NEXT: {{ $}}269 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0270 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1271 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_NLG_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec272 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2273 ; WAVE32-LABEL: name: fcmp_ueq_s32_vv274 ; WAVE32: liveins: $vgpr0, $vgpr1275 ; WAVE32-NEXT: {{ $}}276 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0277 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1278 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_NLG_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec279 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2280 %0:vgpr(s32) = COPY $vgpr0281 %1:vgpr(s32) = COPY $vgpr1282 %2:vcc(s1) = G_FCMP floatpred(ueq), %0, %1283 S_ENDPGM 0, implicit %2284...285 286---287name: fcmp_ugt_s32_vv288legalized: true289regBankSelected: true290 291body: |292 bb.0:293 liveins: $vgpr0, $vgpr1294 ; WAVE64-LABEL: name: fcmp_ugt_s32_vv295 ; WAVE64: liveins: $vgpr0, $vgpr1296 ; WAVE64-NEXT: {{ $}}297 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0298 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1299 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_NLE_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec300 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2301 ; WAVE32-LABEL: name: fcmp_ugt_s32_vv302 ; WAVE32: liveins: $vgpr0, $vgpr1303 ; WAVE32-NEXT: {{ $}}304 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0305 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1306 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_NLE_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec307 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2308 %0:vgpr(s32) = COPY $vgpr0309 %1:vgpr(s32) = COPY $vgpr1310 %2:vcc(s1) = G_FCMP floatpred(ugt), %0, %1311 S_ENDPGM 0, implicit %2312...313 314---315name: fcmp_uge_s32_vv316legalized: true317regBankSelected: true318 319body: |320 bb.0:321 liveins: $vgpr0, $vgpr1322 ; WAVE64-LABEL: name: fcmp_uge_s32_vv323 ; WAVE64: liveins: $vgpr0, $vgpr1324 ; WAVE64-NEXT: {{ $}}325 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0326 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1327 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_NLT_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec328 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2329 ; WAVE32-LABEL: name: fcmp_uge_s32_vv330 ; WAVE32: liveins: $vgpr0, $vgpr1331 ; WAVE32-NEXT: {{ $}}332 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0333 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1334 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_NLT_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec335 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2336 %0:vgpr(s32) = COPY $vgpr0337 %1:vgpr(s32) = COPY $vgpr1338 %2:vcc(s1) = G_FCMP floatpred(uge), %0, %1339 S_ENDPGM 0, implicit %2340...341 342---343name: fcmp_ult_s32_vv344legalized: true345regBankSelected: true346 347body: |348 bb.0:349 liveins: $vgpr0, $vgpr1350 ; WAVE64-LABEL: name: fcmp_ult_s32_vv351 ; WAVE64: liveins: $vgpr0, $vgpr1352 ; WAVE64-NEXT: {{ $}}353 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0354 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1355 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_NGE_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec356 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2357 ; WAVE32-LABEL: name: fcmp_ult_s32_vv358 ; WAVE32: liveins: $vgpr0, $vgpr1359 ; WAVE32-NEXT: {{ $}}360 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0361 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1362 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_NGE_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec363 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2364 %0:vgpr(s32) = COPY $vgpr0365 %1:vgpr(s32) = COPY $vgpr1366 %2:vcc(s1) = G_FCMP floatpred(ult), %0, %1367 S_ENDPGM 0, implicit %2368...369 370---371name: fcmp_ule_s32_vv372legalized: true373regBankSelected: true374 375body: |376 bb.0:377 liveins: $vgpr0, $vgpr1378 ; WAVE64-LABEL: name: fcmp_ule_s32_vv379 ; WAVE64: liveins: $vgpr0, $vgpr1380 ; WAVE64-NEXT: {{ $}}381 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0382 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1383 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_NGT_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec384 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2385 ; WAVE32-LABEL: name: fcmp_ule_s32_vv386 ; WAVE32: liveins: $vgpr0, $vgpr1387 ; WAVE32-NEXT: {{ $}}388 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0389 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1390 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_NGT_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec391 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2392 %0:vgpr(s32) = COPY $vgpr0393 %1:vgpr(s32) = COPY $vgpr1394 %2:vcc(s1) = G_FCMP floatpred(ule), %0, %1395 S_ENDPGM 0, implicit %2396...397 398---399name: fcmp_une_s32_vv400legalized: true401regBankSelected: true402 403body: |404 bb.0:405 liveins: $vgpr0, $vgpr1406 ; WAVE64-LABEL: name: fcmp_une_s32_vv407 ; WAVE64: liveins: $vgpr0, $vgpr1408 ; WAVE64-NEXT: {{ $}}409 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0410 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1411 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_NEQ_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec412 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2413 ; WAVE32-LABEL: name: fcmp_une_s32_vv414 ; WAVE32: liveins: $vgpr0, $vgpr1415 ; WAVE32-NEXT: {{ $}}416 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0417 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1418 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_NEQ_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec419 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2420 %0:vgpr(s32) = COPY $vgpr0421 %1:vgpr(s32) = COPY $vgpr1422 %2:vcc(s1) = G_FCMP floatpred(une), %0, %1423 S_ENDPGM 0, implicit %2424...425 426---427name: fcmp_true_s32_vv428legalized: true429regBankSelected: true430 431body: |432 bb.0:433 liveins: $vgpr0, $vgpr1434 ; WAVE64-LABEL: name: fcmp_true_s32_vv435 ; WAVE64: liveins: $vgpr0, $vgpr1436 ; WAVE64-NEXT: {{ $}}437 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0438 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1439 ; WAVE64-NEXT: [[FCMP:%[0-9]+]]:vcc(s1) = G_FCMP floatpred(true), [[COPY]](s32), [[COPY1]]440 ; WAVE64-NEXT: S_ENDPGM 0, implicit [[FCMP]](s1)441 ; WAVE32-LABEL: name: fcmp_true_s32_vv442 ; WAVE32: liveins: $vgpr0, $vgpr1443 ; WAVE32-NEXT: {{ $}}444 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0445 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1446 ; WAVE32-NEXT: [[FCMP:%[0-9]+]]:vcc(s1) = G_FCMP floatpred(true), [[COPY]](s32), [[COPY1]]447 ; WAVE32-NEXT: S_ENDPGM 0, implicit [[FCMP]](s1)448 %0:vgpr(s32) = COPY $vgpr0449 %1:vgpr(s32) = COPY $vgpr1450 %2:vcc(s1) = G_FCMP floatpred(true), %0, %1451 S_ENDPGM 0, implicit %2452...453 454---455name: fcmp_false_s64_vv456legalized: true457regBankSelected: true458 459body: |460 bb.0:461 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3462 ; WAVE64-LABEL: name: fcmp_false_s64_vv463 ; WAVE64: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3464 ; WAVE64-NEXT: {{ $}}465 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr1466 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr(s64) = COPY $vgpr2_vgpr3467 ; WAVE64-NEXT: [[FCMP:%[0-9]+]]:vcc(s1) = G_FCMP floatpred(false), [[COPY]](s64), [[COPY1]]468 ; WAVE64-NEXT: S_ENDPGM 0, implicit [[FCMP]](s1)469 ; WAVE32-LABEL: name: fcmp_false_s64_vv470 ; WAVE32: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3471 ; WAVE32-NEXT: {{ $}}472 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr1473 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr(s64) = COPY $vgpr2_vgpr3474 ; WAVE32-NEXT: [[FCMP:%[0-9]+]]:vcc(s1) = G_FCMP floatpred(false), [[COPY]](s64), [[COPY1]]475 ; WAVE32-NEXT: S_ENDPGM 0, implicit [[FCMP]](s1)476 %0:vgpr(s64) = COPY $vgpr0_vgpr1477 %1:vgpr(s64) = COPY $vgpr2_vgpr3478 %2:vcc(s1) = G_FCMP floatpred(false), %0, %1479 S_ENDPGM 0, implicit %2480...481 482---483name: fcmp_oeq_s64_vv484legalized: true485regBankSelected: true486 487body: |488 bb.0:489 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3490 ; WAVE64-LABEL: name: fcmp_oeq_s64_vv491 ; WAVE64: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3492 ; WAVE64-NEXT: {{ $}}493 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1494 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3495 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_EQ_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec496 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2497 ; WAVE32-LABEL: name: fcmp_oeq_s64_vv498 ; WAVE32: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3499 ; WAVE32-NEXT: {{ $}}500 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1501 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3502 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_EQ_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec503 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2504 %0:vgpr(s64) = COPY $vgpr0_vgpr1505 %1:vgpr(s64) = COPY $vgpr2_vgpr3506 %2:vcc(s1) = G_FCMP floatpred(oeq), %0, %1507 S_ENDPGM 0, implicit %2508...509 510---511name: fcmp_ogt_s64_vv512legalized: true513regBankSelected: true514 515body: |516 bb.0:517 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3518 ; WAVE64-LABEL: name: fcmp_ogt_s64_vv519 ; WAVE64: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3520 ; WAVE64-NEXT: {{ $}}521 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1522 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3523 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_GT_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec524 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2525 ; WAVE32-LABEL: name: fcmp_ogt_s64_vv526 ; WAVE32: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3527 ; WAVE32-NEXT: {{ $}}528 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1529 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3530 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_GT_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec531 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2532 %0:vgpr(s64) = COPY $vgpr0_vgpr1533 %1:vgpr(s64) = COPY $vgpr2_vgpr3534 %2:vcc(s1) = G_FCMP floatpred(ogt), %0, %1535 S_ENDPGM 0, implicit %2536...537 538---539name: fcmp_oge_s64_vv540legalized: true541regBankSelected: true542 543body: |544 bb.0:545 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3546 ; WAVE64-LABEL: name: fcmp_oge_s64_vv547 ; WAVE64: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3548 ; WAVE64-NEXT: {{ $}}549 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1550 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3551 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_GE_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec552 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2553 ; WAVE32-LABEL: name: fcmp_oge_s64_vv554 ; WAVE32: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3555 ; WAVE32-NEXT: {{ $}}556 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1557 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3558 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_GE_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec559 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2560 %0:vgpr(s64) = COPY $vgpr0_vgpr1561 %1:vgpr(s64) = COPY $vgpr2_vgpr3562 %2:vcc(s1) = G_FCMP floatpred(oge), %0, %1563 S_ENDPGM 0, implicit %2564...565 566---567name: fcmp_olt_s64_vv568legalized: true569regBankSelected: true570 571body: |572 bb.0:573 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3574 ; WAVE64-LABEL: name: fcmp_olt_s64_vv575 ; WAVE64: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3576 ; WAVE64-NEXT: {{ $}}577 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1578 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3579 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_LT_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec580 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2581 ; WAVE32-LABEL: name: fcmp_olt_s64_vv582 ; WAVE32: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3583 ; WAVE32-NEXT: {{ $}}584 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1585 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3586 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_LT_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec587 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2588 %0:vgpr(s64) = COPY $vgpr0_vgpr1589 %1:vgpr(s64) = COPY $vgpr2_vgpr3590 %2:vcc(s1) = G_FCMP floatpred(olt), %0, %1591 S_ENDPGM 0, implicit %2592...593 594---595name: fcmp_ole_s64_vv596legalized: true597regBankSelected: true598 599body: |600 bb.0:601 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3602 ; WAVE64-LABEL: name: fcmp_ole_s64_vv603 ; WAVE64: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3604 ; WAVE64-NEXT: {{ $}}605 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1606 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3607 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_LE_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec608 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2609 ; WAVE32-LABEL: name: fcmp_ole_s64_vv610 ; WAVE32: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3611 ; WAVE32-NEXT: {{ $}}612 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1613 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3614 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_LE_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec615 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2616 %0:vgpr(s64) = COPY $vgpr0_vgpr1617 %1:vgpr(s64) = COPY $vgpr2_vgpr3618 %2:vcc(s1) = G_FCMP floatpred(ole), %0, %1619 S_ENDPGM 0, implicit %2620...621 622---623name: fcmp_one_s64_vv624legalized: true625regBankSelected: true626 627body: |628 bb.0:629 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3630 ; WAVE64-LABEL: name: fcmp_one_s64_vv631 ; WAVE64: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3632 ; WAVE64-NEXT: {{ $}}633 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1634 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3635 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_LG_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec636 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2637 ; WAVE32-LABEL: name: fcmp_one_s64_vv638 ; WAVE32: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3639 ; WAVE32-NEXT: {{ $}}640 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1641 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3642 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_LG_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec643 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2644 %0:vgpr(s64) = COPY $vgpr0_vgpr1645 %1:vgpr(s64) = COPY $vgpr2_vgpr3646 %2:vcc(s1) = G_FCMP floatpred(one), %0, %1647 S_ENDPGM 0, implicit %2648...649 650---651name: fcmp_ord_s64_vv652legalized: true653regBankSelected: true654 655body: |656 bb.0:657 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3658 ; WAVE64-LABEL: name: fcmp_ord_s64_vv659 ; WAVE64: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3660 ; WAVE64-NEXT: {{ $}}661 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1662 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3663 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_O_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec664 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2665 ; WAVE32-LABEL: name: fcmp_ord_s64_vv666 ; WAVE32: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3667 ; WAVE32-NEXT: {{ $}}668 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1669 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3670 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_O_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec671 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2672 %0:vgpr(s64) = COPY $vgpr0_vgpr1673 %1:vgpr(s64) = COPY $vgpr2_vgpr3674 %2:vcc(s1) = G_FCMP floatpred(ord), %0, %1675 S_ENDPGM 0, implicit %2676...677 678---679name: fcmp_uno_s64_vv680legalized: true681regBankSelected: true682 683body: |684 bb.0:685 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3686 ; WAVE64-LABEL: name: fcmp_uno_s64_vv687 ; WAVE64: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3688 ; WAVE64-NEXT: {{ $}}689 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1690 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3691 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_U_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec692 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2693 ; WAVE32-LABEL: name: fcmp_uno_s64_vv694 ; WAVE32: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3695 ; WAVE32-NEXT: {{ $}}696 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1697 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3698 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_U_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec699 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2700 %0:vgpr(s64) = COPY $vgpr0_vgpr1701 %1:vgpr(s64) = COPY $vgpr2_vgpr3702 %2:vcc(s1) = G_FCMP floatpred(uno), %0, %1703 S_ENDPGM 0, implicit %2704...705 706---707name: fcmp_ueq_s64_vv708legalized: true709regBankSelected: true710 711body: |712 bb.0:713 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3714 ; WAVE64-LABEL: name: fcmp_ueq_s64_vv715 ; WAVE64: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3716 ; WAVE64-NEXT: {{ $}}717 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1718 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3719 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_NLG_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec720 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2721 ; WAVE32-LABEL: name: fcmp_ueq_s64_vv722 ; WAVE32: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3723 ; WAVE32-NEXT: {{ $}}724 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1725 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3726 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_NLG_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec727 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2728 %0:vgpr(s64) = COPY $vgpr0_vgpr1729 %1:vgpr(s64) = COPY $vgpr2_vgpr3730 %2:vcc(s1) = G_FCMP floatpred(ueq), %0, %1731 S_ENDPGM 0, implicit %2732...733 734---735name: fcmp_ugt_s64_vv736legalized: true737regBankSelected: true738 739body: |740 bb.0:741 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3742 ; WAVE64-LABEL: name: fcmp_ugt_s64_vv743 ; WAVE64: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3744 ; WAVE64-NEXT: {{ $}}745 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1746 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3747 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_NLE_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec748 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2749 ; WAVE32-LABEL: name: fcmp_ugt_s64_vv750 ; WAVE32: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3751 ; WAVE32-NEXT: {{ $}}752 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1753 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3754 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_NLE_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec755 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2756 %0:vgpr(s64) = COPY $vgpr0_vgpr1757 %1:vgpr(s64) = COPY $vgpr2_vgpr3758 %2:vcc(s1) = G_FCMP floatpred(ugt), %0, %1759 S_ENDPGM 0, implicit %2760...761 762---763name: fcmp_uge_s64_vv764legalized: true765regBankSelected: true766 767body: |768 bb.0:769 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3770 ; WAVE64-LABEL: name: fcmp_uge_s64_vv771 ; WAVE64: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3772 ; WAVE64-NEXT: {{ $}}773 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1774 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3775 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_NLT_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec776 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2777 ; WAVE32-LABEL: name: fcmp_uge_s64_vv778 ; WAVE32: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3779 ; WAVE32-NEXT: {{ $}}780 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1781 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3782 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_NLT_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec783 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2784 %0:vgpr(s64) = COPY $vgpr0_vgpr1785 %1:vgpr(s64) = COPY $vgpr2_vgpr3786 %2:vcc(s1) = G_FCMP floatpred(uge), %0, %1787 S_ENDPGM 0, implicit %2788...789 790---791name: fcmp_ult_s64_vv792legalized: true793regBankSelected: true794 795body: |796 bb.0:797 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3798 ; WAVE64-LABEL: name: fcmp_ult_s64_vv799 ; WAVE64: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3800 ; WAVE64-NEXT: {{ $}}801 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1802 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3803 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_NGE_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec804 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2805 ; WAVE32-LABEL: name: fcmp_ult_s64_vv806 ; WAVE32: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3807 ; WAVE32-NEXT: {{ $}}808 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1809 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3810 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_NGE_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec811 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2812 %0:vgpr(s64) = COPY $vgpr0_vgpr1813 %1:vgpr(s64) = COPY $vgpr2_vgpr3814 %2:vcc(s1) = G_FCMP floatpred(ult), %0, %1815 S_ENDPGM 0, implicit %2816...817 818---819name: fcmp_ule_s64_vv820legalized: true821regBankSelected: true822 823body: |824 bb.0:825 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3826 ; WAVE64-LABEL: name: fcmp_ule_s64_vv827 ; WAVE64: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3828 ; WAVE64-NEXT: {{ $}}829 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1830 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3831 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_NGT_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec832 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2833 ; WAVE32-LABEL: name: fcmp_ule_s64_vv834 ; WAVE32: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3835 ; WAVE32-NEXT: {{ $}}836 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1837 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3838 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_NGT_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec839 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2840 %0:vgpr(s64) = COPY $vgpr0_vgpr1841 %1:vgpr(s64) = COPY $vgpr2_vgpr3842 %2:vcc(s1) = G_FCMP floatpred(ule), %0, %1843 S_ENDPGM 0, implicit %2844...845 846---847name: fcmp_une_s64_vv848legalized: true849regBankSelected: true850 851body: |852 bb.0:853 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3854 ; WAVE64-LABEL: name: fcmp_une_s64_vv855 ; WAVE64: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3856 ; WAVE64-NEXT: {{ $}}857 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1858 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3859 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_NEQ_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec860 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2861 ; WAVE32-LABEL: name: fcmp_une_s64_vv862 ; WAVE32: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3863 ; WAVE32-NEXT: {{ $}}864 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1865 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3866 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_NEQ_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec867 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2868 %0:vgpr(s64) = COPY $vgpr0_vgpr1869 %1:vgpr(s64) = COPY $vgpr2_vgpr3870 %2:vcc(s1) = G_FCMP floatpred(une), %0, %1871 S_ENDPGM 0, implicit %2872...873 874---875name: fcmp_true_s64_vv876legalized: true877regBankSelected: true878 879body: |880 bb.0:881 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3882 ; WAVE64-LABEL: name: fcmp_true_s64_vv883 ; WAVE64: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3884 ; WAVE64-NEXT: {{ $}}885 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr1886 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr(s64) = COPY $vgpr2_vgpr3887 ; WAVE64-NEXT: [[FCMP:%[0-9]+]]:vcc(s1) = G_FCMP floatpred(true), [[COPY]](s64), [[COPY1]]888 ; WAVE64-NEXT: S_ENDPGM 0, implicit [[FCMP]](s1)889 ; WAVE32-LABEL: name: fcmp_true_s64_vv890 ; WAVE32: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3891 ; WAVE32-NEXT: {{ $}}892 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr1893 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr(s64) = COPY $vgpr2_vgpr3894 ; WAVE32-NEXT: [[FCMP:%[0-9]+]]:vcc(s1) = G_FCMP floatpred(true), [[COPY]](s64), [[COPY1]]895 ; WAVE32-NEXT: S_ENDPGM 0, implicit [[FCMP]](s1)896 %0:vgpr(s64) = COPY $vgpr0_vgpr1897 %1:vgpr(s64) = COPY $vgpr2_vgpr3898 %2:vcc(s1) = G_FCMP floatpred(true), %0, %1899 S_ENDPGM 0, implicit %2900...901 902---903name: fcmp_oeq_s32_vv_select_user904legalized: true905regBankSelected: true906 907body: |908 bb.0:909 liveins: $vgpr0, $vgpr1910 ; WAVE64-LABEL: name: fcmp_oeq_s32_vv_select_user911 ; WAVE64: liveins: $vgpr0, $vgpr1912 ; WAVE64-NEXT: {{ $}}913 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0914 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1915 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_EQ_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec916 ; WAVE64-NEXT: [[V_CNDMASK_B32_e64_:%[0-9]+]]:vgpr_32 = V_CNDMASK_B32_e64 0, [[COPY1]], 0, [[COPY]], %2, implicit $exec917 ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CNDMASK_B32_e64_]]918 ; WAVE32-LABEL: name: fcmp_oeq_s32_vv_select_user919 ; WAVE32: liveins: $vgpr0, $vgpr1920 ; WAVE32-NEXT: {{ $}}921 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0922 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1923 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_EQ_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec924 ; WAVE32-NEXT: [[V_CNDMASK_B32_e64_:%[0-9]+]]:vgpr_32 = V_CNDMASK_B32_e64 0, [[COPY1]], 0, [[COPY]], %2, implicit $exec925 ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CNDMASK_B32_e64_]]926 %0:vgpr(s32) = COPY $vgpr0927 %1:vgpr(s32) = COPY $vgpr1928 %2:vcc(s1) = G_FCMP floatpred(oeq), %0, %1929 %3:vgpr(s32) = G_SELECT %2, %0, %1930 S_ENDPGM 0, implicit %3931...932