brintos

brintos / llvm-project-archived public Read only

0
0
Text · 12.4 KiB · 23da26d Raw
375 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -run-pass=instruction-select -mattr=-real-true16 -verify-machineinstrs -global-isel-abort=0 -o - %s  | FileCheck -check-prefix=GFX11 %s3 4---5name: fcmp_false_s16_vv6legalized: true7regBankSelected: true8 9body: |10  bb.0:11    liveins: $vgpr0, $vgpr112    ; GFX11-LABEL: name: fcmp_false_s16_vv13    ; GFX11: liveins: $vgpr0, $vgpr114    ; GFX11-NEXT: {{  $}}15    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr016    ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr117    ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s16) = G_TRUNC [[COPY]](s32)18    ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:vgpr(s16) = G_TRUNC [[COPY1]](s32)19    ; GFX11-NEXT: [[FCMP:%[0-9]+]]:vcc(s1) = G_FCMP floatpred(false), [[TRUNC]](s16), [[TRUNC1]]20    ; GFX11-NEXT: S_ENDPGM 0, implicit [[FCMP]](s1)21    %0:vgpr(s32) = COPY $vgpr022    %1:vgpr(s32) = COPY $vgpr123    %2:vgpr(s16) = G_TRUNC %024    %3:vgpr(s16) = G_TRUNC %125    %4:vcc(s1) = G_FCMP floatpred(false), %2, %326    S_ENDPGM 0, implicit %427...28 29---30name: fcmp_oeq_s16_vv31legalized: true32regBankSelected: true33 34body: |35  bb.0:36    liveins: $vgpr0, $vgpr137    ; GFX11-LABEL: name: fcmp_oeq_s16_vv38    ; GFX11: liveins: $vgpr0, $vgpr139    ; GFX11-NEXT: {{  $}}40    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr041    ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr142    ; GFX11-NEXT: [[V_CMP_EQ_F16_fake16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_EQ_F16_fake16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec43    ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CMP_EQ_F16_fake16_e64_]]44    %0:vgpr(s32) = COPY $vgpr045    %1:vgpr(s32) = COPY $vgpr146    %2:vgpr(s16) = G_TRUNC %047    %3:vgpr(s16) = G_TRUNC %148    %4:vcc(s1) = G_FCMP floatpred(oeq), %2, %349    S_ENDPGM 0, implicit %450...51 52---53name: fcmp_ogt_s16_vv54legalized: true55regBankSelected: true56 57body: |58  bb.0:59    liveins: $vgpr0, $vgpr160    ; GFX11-LABEL: name: fcmp_ogt_s16_vv61    ; GFX11: liveins: $vgpr0, $vgpr162    ; GFX11-NEXT: {{  $}}63    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr064    ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr165    ; GFX11-NEXT: [[V_CMP_GT_F16_fake16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_GT_F16_fake16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec66    ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CMP_GT_F16_fake16_e64_]]67    %0:vgpr(s32) = COPY $vgpr068    %1:vgpr(s32) = COPY $vgpr169    %2:vgpr(s16) = G_TRUNC %070    %3:vgpr(s16) = G_TRUNC %171    %4:vcc(s1) = G_FCMP floatpred(ogt), %2, %372    S_ENDPGM 0, implicit %473...74 75---76name: fcmp_oge_s16_vv77legalized: true78regBankSelected: true79 80body: |81  bb.0:82    liveins: $vgpr0, $vgpr183    ; GFX11-LABEL: name: fcmp_oge_s16_vv84    ; GFX11: liveins: $vgpr0, $vgpr185    ; GFX11-NEXT: {{  $}}86    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr087    ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr188    ; GFX11-NEXT: [[V_CMP_GE_F16_fake16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_GE_F16_fake16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec89    ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CMP_GE_F16_fake16_e64_]]90    %0:vgpr(s32) = COPY $vgpr091    %1:vgpr(s32) = COPY $vgpr192    %2:vgpr(s16) = G_TRUNC %093    %3:vgpr(s16) = G_TRUNC %194    %4:vcc(s1) = G_FCMP floatpred(oge), %2, %395    S_ENDPGM 0, implicit %496...97 98---99name: fcmp_olt_s16_vv100legalized: true101regBankSelected: true102 103body: |104  bb.0:105    liveins: $vgpr0, $vgpr1106    ; GFX11-LABEL: name: fcmp_olt_s16_vv107    ; GFX11: liveins: $vgpr0, $vgpr1108    ; GFX11-NEXT: {{  $}}109    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0110    ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1111    ; GFX11-NEXT: [[V_CMP_LT_F16_fake16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_LT_F16_fake16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec112    ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CMP_LT_F16_fake16_e64_]]113    %0:vgpr(s32) = COPY $vgpr0114    %1:vgpr(s32) = COPY $vgpr1115    %2:vgpr(s16) = G_TRUNC %0116    %3:vgpr(s16) = G_TRUNC %1117    %4:vcc(s1) = G_FCMP floatpred(olt), %2, %3118    S_ENDPGM 0, implicit %4119...120 121---122name: fcmp_ole_s16_vv123legalized: true124regBankSelected: true125 126body: |127  bb.0:128    liveins: $vgpr0, $vgpr1129    ; GFX11-LABEL: name: fcmp_ole_s16_vv130    ; GFX11: liveins: $vgpr0, $vgpr1131    ; GFX11-NEXT: {{  $}}132    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0133    ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1134    ; GFX11-NEXT: [[V_CMP_LE_F16_fake16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_LE_F16_fake16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec135    ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CMP_LE_F16_fake16_e64_]]136    %0:vgpr(s32) = COPY $vgpr0137    %1:vgpr(s32) = COPY $vgpr1138    %2:vgpr(s16) = G_TRUNC %0139    %3:vgpr(s16) = G_TRUNC %1140    %4:vcc(s1) = G_FCMP floatpred(ole), %2, %3141    S_ENDPGM 0, implicit %4142...143---144name: fcmp_one_s16_vv145legalized: true146regBankSelected: true147 148body: |149  bb.0:150    liveins: $vgpr0, $vgpr1151    ; GFX11-LABEL: name: fcmp_one_s16_vv152    ; GFX11: liveins: $vgpr0, $vgpr1153    ; GFX11-NEXT: {{  $}}154    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0155    ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1156    ; GFX11-NEXT: [[V_CMP_LG_F16_fake16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_LG_F16_fake16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec157    ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CMP_LG_F16_fake16_e64_]]158    %0:vgpr(s32) = COPY $vgpr0159    %1:vgpr(s32) = COPY $vgpr1160    %2:vgpr(s16) = G_TRUNC %0161    %3:vgpr(s16) = G_TRUNC %1162    %4:vcc(s1) = G_FCMP floatpred(one), %2, %3163    S_ENDPGM 0, implicit %4164...165 166---167name: fcmp_ord_s16_vv168legalized: true169regBankSelected: true170 171body: |172  bb.0:173    liveins: $vgpr0, $vgpr1174    ; GFX11-LABEL: name: fcmp_ord_s16_vv175    ; GFX11: liveins: $vgpr0, $vgpr1176    ; GFX11-NEXT: {{  $}}177    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0178    ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1179    ; GFX11-NEXT: [[V_CMP_LG_F16_fake16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_LG_F16_fake16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec180    ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CMP_LG_F16_fake16_e64_]]181    %0:vgpr(s32) = COPY $vgpr0182    %1:vgpr(s32) = COPY $vgpr1183    %2:vgpr(s16) = G_TRUNC %0184    %3:vgpr(s16) = G_TRUNC %1185    %4:vcc(s1) = G_FCMP floatpred(one), %2, %3186    S_ENDPGM 0, implicit %4187...188 189---190name: fcmp_uno_s16_vv191legalized: true192regBankSelected: true193 194body: |195  bb.0:196    liveins: $vgpr0, $vgpr1197    ; GFX11-LABEL: name: fcmp_uno_s16_vv198    ; GFX11: liveins: $vgpr0, $vgpr1199    ; GFX11-NEXT: {{  $}}200    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0201    ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1202    ; GFX11-NEXT: [[V_CMP_U_F16_fake16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_U_F16_fake16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec203    ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CMP_U_F16_fake16_e64_]]204    %0:vgpr(s32) = COPY $vgpr0205    %1:vgpr(s32) = COPY $vgpr1206    %2:vgpr(s16) = G_TRUNC %0207    %3:vgpr(s16) = G_TRUNC %1208    %4:vcc(s1) = G_FCMP floatpred(uno), %2, %3209    S_ENDPGM 0, implicit %4210...211 212---213name: fcmp_ueq_s16_vv214legalized: true215regBankSelected: true216 217body: |218  bb.0:219    liveins: $vgpr0, $vgpr1220    ; GFX11-LABEL: name: fcmp_ueq_s16_vv221    ; GFX11: liveins: $vgpr0, $vgpr1222    ; GFX11-NEXT: {{  $}}223    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0224    ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1225    ; GFX11-NEXT: [[V_CMP_NLG_F16_fake16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_NLG_F16_fake16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec226    ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CMP_NLG_F16_fake16_e64_]]227    %0:vgpr(s32) = COPY $vgpr0228    %1:vgpr(s32) = COPY $vgpr1229    %2:vgpr(s16) = G_TRUNC %0230    %3:vgpr(s16) = G_TRUNC %1231    %4:vcc(s1) = G_FCMP floatpred(ueq), %2, %3232    S_ENDPGM 0, implicit %4233...234 235---236name: fcmp_ugt_s16_vv237legalized: true238regBankSelected: true239 240body: |241  bb.0:242    liveins: $vgpr0, $vgpr1243    ; GFX11-LABEL: name: fcmp_ugt_s16_vv244    ; GFX11: liveins: $vgpr0, $vgpr1245    ; GFX11-NEXT: {{  $}}246    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0247    ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1248    ; GFX11-NEXT: [[V_CMP_NLE_F16_fake16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_NLE_F16_fake16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec249    ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CMP_NLE_F16_fake16_e64_]]250    %0:vgpr(s32) = COPY $vgpr0251    %1:vgpr(s32) = COPY $vgpr1252    %2:vgpr(s16) = G_TRUNC %0253    %3:vgpr(s16) = G_TRUNC %1254    %4:vcc(s1) = G_FCMP floatpred(ugt), %2, %3255    S_ENDPGM 0, implicit %4256...257 258---259name: fcmp_uge_s16_vv260legalized: true261regBankSelected: true262 263body: |264  bb.0:265    liveins: $vgpr0, $vgpr1266    ; GFX11-LABEL: name: fcmp_uge_s16_vv267    ; GFX11: liveins: $vgpr0, $vgpr1268    ; GFX11-NEXT: {{  $}}269    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0270    ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1271    ; GFX11-NEXT: [[V_CMP_NLT_F16_fake16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_NLT_F16_fake16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec272    ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CMP_NLT_F16_fake16_e64_]]273    %0:vgpr(s32) = COPY $vgpr0274    %1:vgpr(s32) = COPY $vgpr1275    %2:vgpr(s16) = G_TRUNC %0276    %3:vgpr(s16) = G_TRUNC %1277    %4:vcc(s1) = G_FCMP floatpred(uge), %2, %3278    S_ENDPGM 0, implicit %4279...280 281---282name: fcmp_ult_s16_vv283legalized: true284regBankSelected: true285 286body: |287  bb.0:288    liveins: $vgpr0, $vgpr1289    ; GFX11-LABEL: name: fcmp_ult_s16_vv290    ; GFX11: liveins: $vgpr0, $vgpr1291    ; GFX11-NEXT: {{  $}}292    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0293    ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1294    ; GFX11-NEXT: [[V_CMP_NGE_F16_fake16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_NGE_F16_fake16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec295    ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CMP_NGE_F16_fake16_e64_]]296    %0:vgpr(s32) = COPY $vgpr0297    %1:vgpr(s32) = COPY $vgpr1298    %2:vgpr(s16) = G_TRUNC %0299    %3:vgpr(s16) = G_TRUNC %1300    %4:vcc(s1) = G_FCMP floatpred(ult), %2, %3301    S_ENDPGM 0, implicit %4302...303 304---305name: fcmp_ule_s16_vv306legalized: true307regBankSelected: true308 309body: |310  bb.0:311    liveins: $vgpr0, $vgpr1312    ; GFX11-LABEL: name: fcmp_ule_s16_vv313    ; GFX11: liveins: $vgpr0, $vgpr1314    ; GFX11-NEXT: {{  $}}315    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0316    ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1317    ; GFX11-NEXT: [[V_CMP_NGT_F16_fake16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_NGT_F16_fake16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec318    ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CMP_NGT_F16_fake16_e64_]]319    %0:vgpr(s32) = COPY $vgpr0320    %1:vgpr(s32) = COPY $vgpr1321    %2:vgpr(s16) = G_TRUNC %0322    %3:vgpr(s16) = G_TRUNC %1323    %4:vcc(s1) = G_FCMP floatpred(ule), %2, %3324    S_ENDPGM 0, implicit %4325...326 327---328name: fcmp_une_s16_vv329legalized: true330regBankSelected: true331 332body: |333  bb.0:334    liveins: $vgpr0, $vgpr1335    ; GFX11-LABEL: name: fcmp_une_s16_vv336    ; GFX11: liveins: $vgpr0, $vgpr1337    ; GFX11-NEXT: {{  $}}338    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0339    ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1340    ; GFX11-NEXT: [[V_CMP_NEQ_F16_fake16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_NEQ_F16_fake16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec341    ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CMP_NEQ_F16_fake16_e64_]]342    %0:vgpr(s32) = COPY $vgpr0343    %1:vgpr(s32) = COPY $vgpr1344    %2:vgpr(s16) = G_TRUNC %0345    %3:vgpr(s16) = G_TRUNC %1346    %4:vcc(s1) = G_FCMP floatpred(une), %2, %3347    S_ENDPGM 0, implicit %4348...349 350---351name: fcmp_true_s16_vv352legalized: true353regBankSelected: true354 355body: |356  bb.0:357    liveins: $vgpr0, $vgpr1358    ; GFX11-LABEL: name: fcmp_true_s16_vv359    ; GFX11: liveins: $vgpr0, $vgpr1360    ; GFX11-NEXT: {{  $}}361    ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0362    ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1363    ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s16) = G_TRUNC [[COPY]](s32)364    ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:vgpr(s16) = G_TRUNC [[COPY1]](s32)365    ; GFX11-NEXT: [[FCMP:%[0-9]+]]:vcc(s1) = G_FCMP floatpred(true), [[TRUNC]](s16), [[TRUNC1]]366    ; GFX11-NEXT: S_ENDPGM 0, implicit [[FCMP]](s1)367    %0:vgpr(s32) = COPY $vgpr0368    %1:vgpr(s32) = COPY $vgpr1369    %2:vgpr(s16) = G_TRUNC %0370    %3:vgpr(s16) = G_TRUNC %1371    %4:vcc(s1) = G_FCMP floatpred(true), %2, %3372    S_ENDPGM 0, implicit %4373...374 375