brintos

brintos / llvm-project-archived public Read only

0
0
Text · 12.5 KiB · 065e5dd Raw
442 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -run-pass=instruction-select -verify-machineinstrs  %s -o - | FileCheck %s -check-prefixes=GCN3 4---5 6name: trunc_sgpr_s32_to_s17legalized:       true8regBankSelected: true9 10body: |11  bb.0:12    liveins: $sgpr013    ; GCN-LABEL: name: trunc_sgpr_s32_to_s114    ; GCN: liveins: $sgpr015    ; GCN-NEXT: {{  $}}16    ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr017    ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]18    %0:sgpr(s32) = COPY $sgpr019    %1:sgpr(s1) = G_TRUNC %020    S_ENDPGM 0, implicit %121...22---23 24name: trunc_sgpr_s32_to_s1625legalized:       true26regBankSelected: true27 28body: |29  bb.0:30    liveins: $sgpr031    ; GCN-LABEL: name: trunc_sgpr_s32_to_s1632    ; GCN: liveins: $sgpr033    ; GCN-NEXT: {{  $}}34    ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr035    ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]36    %0:sgpr(s32) = COPY $sgpr037    %1:sgpr(s16) = G_TRUNC %038    S_ENDPGM 0, implicit %139...40---41 42name: trunc_sgpr_s64_to_s3243legalized:       true44regBankSelected: true45 46body: |47  bb.0:48    liveins: $sgpr0_sgpr149    ; GCN-LABEL: name: trunc_sgpr_s64_to_s3250    ; GCN: liveins: $sgpr0_sgpr151    ; GCN-NEXT: {{  $}}52    ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr153    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub054    ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY1]]55    %0:sgpr(s64) = COPY $sgpr0_sgpr156    %1:sgpr(s32) = G_TRUNC %057    S_ENDPGM 0, implicit %158...59---60 61name: trunc_sgpr_s64_to_s1662legalized:       true63regBankSelected: true64 65body: |66  bb.0:67    liveins: $sgpr0_sgpr168    ; GCN-LABEL: name: trunc_sgpr_s64_to_s1669    ; GCN: liveins: $sgpr0_sgpr170    ; GCN-NEXT: {{  $}}71    ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr172    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub073    ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY1]]74    %0:sgpr(s64) = COPY $sgpr0_sgpr175    %1:sgpr(s16) = G_TRUNC %076    S_ENDPGM 0, implicit %177...78---79 80name: trunc_sgpr_s64_to_s181legalized:       true82regBankSelected: true83 84body: |85  bb.0:86    liveins: $sgpr0_sgpr187    ; GCN-LABEL: name: trunc_sgpr_s64_to_s188    ; GCN: liveins: $sgpr0_sgpr189    ; GCN-NEXT: {{  $}}90    ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr191    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub092    ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY1]]93    %0:sgpr(s64) = COPY $sgpr0_sgpr194    %1:sgpr(s1) = G_TRUNC %095    S_ENDPGM 0, implicit %196...97---98 99name: trunc_sgpr_s96_to_s16100legalized:       true101regBankSelected: true102 103body: |104  bb.0:105    liveins: $sgpr0_sgpr1_sgpr2106    ; GCN-LABEL: name: trunc_sgpr_s96_to_s16107    ; GCN: liveins: $sgpr0_sgpr1_sgpr2108    ; GCN-NEXT: {{  $}}109    ; GCN-NEXT: [[COPY:%[0-9]+]]:sgpr_96 = COPY $sgpr0_sgpr1_sgpr2110    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub0111    ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY1]]112    %0:sgpr(s96) = COPY $sgpr0_sgpr1_sgpr2113    %1:sgpr(s16) = G_TRUNC %0114    S_ENDPGM 0, implicit %1115...116---117 118name: trunc_sgpr_s96_to_s64119legalized:       true120regBankSelected: true121 122body: |123  bb.0:124    liveins: $sgpr0_sgpr1_sgpr2125    ; GCN-LABEL: name: trunc_sgpr_s96_to_s64126    ; GCN: liveins: $sgpr0_sgpr1_sgpr2127    ; GCN-NEXT: {{  $}}128    ; GCN-NEXT: [[COPY:%[0-9]+]]:sgpr_96 = COPY $sgpr0_sgpr1_sgpr2129    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sreg_64 = COPY [[COPY]].sub0_sub1130    ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY1]]131    %0:sgpr(s96) = COPY $sgpr0_sgpr1_sgpr2132    %1:sgpr(s64) = G_TRUNC %0133    S_ENDPGM 0, implicit %1134...135---136 137name: trunc_sgpr_s128_to_s16138legalized:       true139regBankSelected: true140 141body: |142  bb.0:143    liveins: $sgpr0_sgpr1_sgpr2_sgpr3144    ; GCN-LABEL: name: trunc_sgpr_s128_to_s16145    ; GCN: liveins: $sgpr0_sgpr1_sgpr2_sgpr3146    ; GCN-NEXT: {{  $}}147    ; GCN-NEXT: [[COPY:%[0-9]+]]:sgpr_128 = COPY $sgpr0_sgpr1_sgpr2_sgpr3148    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub0149    ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY1]]150    %0:sgpr(s128) = COPY $sgpr0_sgpr1_sgpr2_sgpr3151    %1:sgpr(s16) = G_TRUNC %0152    S_ENDPGM 0, implicit %1153...154---155 156name: trunc_sgpr_s128_to_s96157legalized:       true158regBankSelected: true159 160body: |161  bb.0:162    liveins: $sgpr0_sgpr1_sgpr2_sgpr3163    ; GCN-LABEL: name: trunc_sgpr_s128_to_s96164    ; GCN: liveins: $sgpr0_sgpr1_sgpr2_sgpr3165    ; GCN-NEXT: {{  $}}166    ; GCN-NEXT: [[COPY:%[0-9]+]]:sgpr_128 = COPY $sgpr0_sgpr1_sgpr2_sgpr3167    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sgpr_96 = COPY [[COPY]].sub0_sub1_sub2168    ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY1]]169    %0:sgpr(s128) = COPY $sgpr0_sgpr1_sgpr2_sgpr3170    %1:sgpr(s96) = G_TRUNC %0171    S_ENDPGM 0, implicit %1172...173---174 175name: trunc_sgpr_s256_to_s128176legalized:       true177regBankSelected: true178 179body: |180  bb.0:181    liveins: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7182    ; GCN-LABEL: name: trunc_sgpr_s256_to_s128183    ; GCN: liveins: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7184    ; GCN-NEXT: {{  $}}185    ; GCN-NEXT: [[COPY:%[0-9]+]]:sgpr_256 = COPY $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7186    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sgpr_128 = COPY [[COPY]].sub0_sub1_sub2_sub3187    ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY1]]188    %0:sgpr(s256) = COPY $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7189    %1:sgpr(s128) = G_TRUNC %0190    S_ENDPGM 0, implicit %1191...192---193 194name: trunc_sgpr_s512_to_s256195legalized:       true196regBankSelected: true197 198body: |199  bb.0:200    liveins: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15201    ; GCN-LABEL: name: trunc_sgpr_s512_to_s256202    ; GCN: liveins: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15203    ; GCN-NEXT: {{  $}}204    ; GCN-NEXT: [[COPY:%[0-9]+]]:sgpr_512 = COPY $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15205    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sgpr_256 = COPY [[COPY]].sub0_sub1_sub2_sub3_sub4_sub5_sub6_sub7206    ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY1]]207    %0:sgpr(s512) = COPY $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15208    %1:sgpr(s256) = G_TRUNC %0209    S_ENDPGM 0, implicit %1210...211---212 213name: trunc_vgpr_s32_to_s1214legalized:       true215regBankSelected: true216 217body: |218  bb.0:219    liveins: $vgpr0220    ; GCN-LABEL: name: trunc_vgpr_s32_to_s1221    ; GCN: liveins: $vgpr0222    ; GCN-NEXT: {{  $}}223    ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0224    ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]225    %0:vgpr(s32) = COPY $vgpr0226    %1:vgpr(s1) = G_TRUNC %0227    S_ENDPGM 0, implicit %1228...229---230 231name: trunc_vgpr_s32_to_s16232legalized:       true233regBankSelected: true234 235body: |236  bb.0:237    liveins: $vgpr0238    ; GCN-LABEL: name: trunc_vgpr_s32_to_s16239    ; GCN: liveins: $vgpr0240    ; GCN-NEXT: {{  $}}241    ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0242    ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY]]243    %0:vgpr(s32) = COPY $vgpr0244    %1:vgpr(s16) = G_TRUNC %0245    S_ENDPGM 0, implicit %1246...247---248 249name: trunc_vgpr_s64_to_s32250legalized:       true251regBankSelected: true252 253body: |254  bb.0:255    liveins: $vgpr0_vgpr1256    ; GCN-LABEL: name: trunc_vgpr_s64_to_s32257    ; GCN: liveins: $vgpr0_vgpr1258    ; GCN-NEXT: {{  $}}259    ; GCN-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1260    ; GCN-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY [[COPY]].sub0261    ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY1]]262    %0:vgpr(s64) = COPY $vgpr0_vgpr1263    %1:vgpr(s32) = G_TRUNC %0264    S_ENDPGM 0, implicit %1265...266---267 268name: trunc_vgpr_s64_to_s16269legalized:       true270regBankSelected: true271 272body: |273  bb.0:274    liveins: $vgpr0_vgpr1275    ; GCN-LABEL: name: trunc_vgpr_s64_to_s16276    ; GCN: liveins: $vgpr0_vgpr1277    ; GCN-NEXT: {{  $}}278    ; GCN-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1279    ; GCN-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY [[COPY]].sub0280    ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY1]]281    %0:vgpr(s64) = COPY $vgpr0_vgpr1282    %1:vgpr(s16) = G_TRUNC %0283    S_ENDPGM 0, implicit %1284...285---286 287name: trunc_vgpr_s64_to_s1288legalized:       true289regBankSelected: true290 291body: |292  bb.0:293    liveins: $vgpr0_vgpr1294    ; GCN-LABEL: name: trunc_vgpr_s64_to_s1295    ; GCN: liveins: $vgpr0_vgpr1296    ; GCN-NEXT: {{  $}}297    ; GCN-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1298    ; GCN-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY [[COPY]].sub0299    ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY1]]300    %0:vgpr(s64) = COPY $vgpr0_vgpr1301    %1:vgpr(s1) = G_TRUNC %0302    S_ENDPGM 0, implicit %1303...304---305 306name: trunc_vgpr_s96_to_s16307legalized:       true308regBankSelected: true309 310body: |311  bb.0:312    liveins: $vgpr0_vgpr1_vgpr2313    ; GCN-LABEL: name: trunc_vgpr_s96_to_s16314    ; GCN: liveins: $vgpr0_vgpr1_vgpr2315    ; GCN-NEXT: {{  $}}316    ; GCN-NEXT: [[COPY:%[0-9]+]]:vreg_96 = COPY $vgpr0_vgpr1_vgpr2317    ; GCN-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY [[COPY]].sub0318    ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY1]]319    %0:vgpr(s96) = COPY $vgpr0_vgpr1_vgpr2320    %1:vgpr(s16) = G_TRUNC %0321    S_ENDPGM 0, implicit %1322...323---324 325name: trunc_vgpr_s96_to_s64326legalized:       true327regBankSelected: true328 329body: |330  bb.0:331    liveins: $vgpr0_vgpr1_vgpr2332    ; GCN-LABEL: name: trunc_vgpr_s96_to_s64333    ; GCN: liveins: $vgpr0_vgpr1_vgpr2334    ; GCN-NEXT: {{  $}}335    ; GCN-NEXT: [[COPY:%[0-9]+]]:vreg_96 = COPY $vgpr0_vgpr1_vgpr2336    ; GCN-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY [[COPY]].sub0_sub1337    ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY1]]338    %0:vgpr(s96) = COPY $vgpr0_vgpr1_vgpr2339    %1:vgpr(s64) = G_TRUNC %0340    S_ENDPGM 0, implicit %1341...342---343 344name: trunc_vgpr_s128_to_s16345legalized:       true346regBankSelected: true347 348body: |349  bb.0:350    liveins: $vgpr0_vgpr1_vgpr2_vgpr3351    ; GCN-LABEL: name: trunc_vgpr_s128_to_s16352    ; GCN: liveins: $vgpr0_vgpr1_vgpr2_vgpr3353    ; GCN-NEXT: {{  $}}354    ; GCN-NEXT: [[COPY:%[0-9]+]]:vreg_128 = COPY $vgpr0_vgpr1_vgpr2_vgpr3355    ; GCN-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY [[COPY]].sub0356    ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY1]]357    %0:vgpr(s128) = COPY $vgpr0_vgpr1_vgpr2_vgpr3358    %1:vgpr(s16) = G_TRUNC %0359    S_ENDPGM 0, implicit %1360...361---362 363name: trunc_vgpr_s128_to_s96364legalized:       true365regBankSelected: true366 367body: |368  bb.0:369    liveins: $vgpr0_vgpr1_vgpr2_vgpr3370    ; GCN-LABEL: name: trunc_vgpr_s128_to_s96371    ; GCN: liveins: $vgpr0_vgpr1_vgpr2_vgpr3372    ; GCN-NEXT: {{  $}}373    ; GCN-NEXT: [[COPY:%[0-9]+]]:vreg_128 = COPY $vgpr0_vgpr1_vgpr2_vgpr3374    ; GCN-NEXT: [[COPY1:%[0-9]+]]:vreg_96 = COPY [[COPY]].sub0_sub1_sub2375    ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY1]]376    %0:vgpr(s128) = COPY $vgpr0_vgpr1_vgpr2_vgpr3377    %1:vgpr(s96) = G_TRUNC %0378    S_ENDPGM 0, implicit %1379...380---381 382name: trunc_vgpr_s256_to_s128383legalized:       true384regBankSelected: true385 386body: |387  bb.0:388    liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7389    ; GCN-LABEL: name: trunc_vgpr_s256_to_s128390    ; GCN: liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7391    ; GCN-NEXT: {{  $}}392    ; GCN-NEXT: [[COPY:%[0-9]+]]:vreg_256 = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7393    ; GCN-NEXT: [[COPY1:%[0-9]+]]:vreg_128 = COPY [[COPY]].sub0_sub1_sub2_sub3394    ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY1]]395    %0:vgpr(s256) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7396    %1:vgpr(s128) = G_TRUNC %0397    S_ENDPGM 0, implicit %1398...399---400 401name: trunc_vgpr_s512_to_s256402legalized:       true403regBankSelected: true404 405body: |406  bb.0:407    liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15408    ; GCN-LABEL: name: trunc_vgpr_s512_to_s256409    ; GCN: liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15410    ; GCN-NEXT: {{  $}}411    ; GCN-NEXT: [[COPY:%[0-9]+]]:vreg_512 = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15412    ; GCN-NEXT: [[COPY1:%[0-9]+]]:vreg_256 = COPY [[COPY]].sub0_sub1_sub2_sub3_sub4_sub5_sub6_sub7413    ; GCN-NEXT: S_ENDPGM 0, implicit [[COPY1]]414    %0:vgpr(s512) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15415    %1:vgpr(s256) = G_TRUNC %0416    S_ENDPGM 0, implicit %1417...418 419---420 421name: trunc_sgpr_s32_to_s1_use422legalized:       true423regBankSelected: true424 425body: |426  bb.0:427    liveins: $sgpr0, $sgpr1428    ; GCN-LABEL: name: trunc_sgpr_s32_to_s1_use429    ; GCN: liveins: $sgpr0, $sgpr1430    ; GCN-NEXT: {{  $}}431    ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0432    ; GCN-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1433    ; GCN-NEXT: $scc = COPY [[COPY]]434    ; GCN-NEXT: [[S_CSELECT_B32_:%[0-9]+]]:sreg_32 = S_CSELECT_B32 [[COPY]], [[COPY1]], implicit $scc435    ; GCN-NEXT: S_ENDPGM 0, implicit [[S_CSELECT_B32_]]436    %0:sgpr(s32) = COPY $sgpr0437    %1:sgpr(s32) = COPY $sgpr1438    %2:sgpr(s1) = G_TRUNC %0439    %3:sgpr(s32) = G_SELECT %2, %0, %1440    S_ENDPGM 0, implicit %3441...442