brintos

brintos / llvm-project-archived public Read only

0
0
Text · 35.5 KiB · 15f7a22 Raw
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