brintos

brintos / llvm-project-archived public Read only

0
0
Text · 26.6 KiB · 359152e Raw
380 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -mcpu=gfx900 -run-pass=greedy -o - -verify-machineinstrs %s | FileCheck -check-prefix=RA %s3# RUN: llc -mtriple=amdgcn -mcpu=gfx900 -run-pass=greedy,virtregrewriter,post-RA-sched -o - -verify-machineinstrs %s | FileCheck -check-prefix=VR %s4 5---6name:            splitkit_copy_bundle7tracksRegLiveness: true8machineFunctionInfo:9  scratchRSrcReg:  '$sgpr0_sgpr1_sgpr2_sgpr3'10  stackPtrOffsetReg: '$sgpr32'11body:             |12  ; RA-LABEL: name: splitkit_copy_bundle13  ; RA: bb.0:14  ; RA-NEXT:   successors: %bb.1(0x80000000)15  ; RA-NEXT: {{  $}}16  ; RA-NEXT:   [[DEF:%[0-9]+]]:sreg_64 = IMPLICIT_DEF17  ; RA-NEXT:   [[DEF1:%[0-9]+]]:sreg_64 = IMPLICIT_DEF18  ; RA-NEXT:   undef [[S_MOV_B32_:%[0-9]+]].sub1:sgpr_1024 = S_MOV_B32 -119  ; RA-NEXT:   [[S_MOV_B32_:%[0-9]+]].sub0:sgpr_1024 = S_MOV_B32 -120  ; RA-NEXT:   SI_SPILL_S1024_SAVE [[S_MOV_B32_]], %stack.0, implicit $exec, implicit $sgpr32 :: (store (s1024) into %stack.0, align 4, addrspace 5)21  ; RA-NEXT:   undef [[S_MOV_B32_1:%[0-9]+]].sub0:sgpr_1024 = S_MOV_B32 022  ; RA-NEXT:   SI_SPILL_S1024_SAVE [[S_MOV_B32_1]], %stack.1, implicit $exec, implicit $sgpr32 :: (store (s1024) into %stack.1, align 4, addrspace 5)23  ; RA-NEXT: {{  $}}24  ; RA-NEXT: bb.1:25  ; RA-NEXT:   successors: %bb.2(0x80000000)26  ; RA-NEXT: {{  $}}27  ; RA-NEXT:   [[SI_SPILL_S1024_RESTORE:%[0-9]+]]:sgpr_1024 = SI_SPILL_S1024_RESTORE %stack.0, implicit $exec, implicit $sgpr32 :: (load (s1024) from %stack.0, align 4, addrspace 5)28  ; RA-NEXT:   undef [[COPY:%[0-9]+]].sub0_sub1:sgpr_1024 = COPY [[SI_SPILL_S1024_RESTORE]].sub0_sub129  ; RA-NEXT:   [[COPY:%[0-9]+]].sub2:sgpr_1024 = COPY [[COPY]].sub030  ; RA-NEXT:   [[COPY:%[0-9]+]].sub3:sgpr_1024 = COPY [[COPY]].sub131  ; RA-NEXT:   [[COPY:%[0-9]+]].sub4:sgpr_1024 = COPY [[COPY]].sub032  ; RA-NEXT:   [[COPY:%[0-9]+]].sub5:sgpr_1024 = COPY [[COPY]].sub133  ; RA-NEXT:   [[COPY:%[0-9]+]].sub6:sgpr_1024 = COPY [[COPY]].sub034  ; RA-NEXT:   [[COPY:%[0-9]+]].sub7:sgpr_1024 = COPY [[COPY]].sub135  ; RA-NEXT:   [[COPY:%[0-9]+]].sub8:sgpr_1024 = COPY [[COPY]].sub036  ; RA-NEXT:   [[COPY:%[0-9]+]].sub9:sgpr_1024 = COPY [[COPY]].sub137  ; RA-NEXT:   [[COPY:%[0-9]+]].sub10:sgpr_1024 = COPY [[COPY]].sub038  ; RA-NEXT:   [[COPY:%[0-9]+]].sub11:sgpr_1024 = COPY [[COPY]].sub139  ; RA-NEXT:   [[COPY:%[0-9]+]].sub12:sgpr_1024 = COPY [[COPY]].sub040  ; RA-NEXT:   [[COPY:%[0-9]+]].sub13:sgpr_1024 = COPY [[COPY]].sub141  ; RA-NEXT:   [[COPY:%[0-9]+]].sub14:sgpr_1024 = COPY [[COPY]].sub042  ; RA-NEXT:   [[COPY:%[0-9]+]].sub15:sgpr_1024 = COPY [[COPY]].sub143  ; RA-NEXT:   [[COPY:%[0-9]+]].sub16:sgpr_1024 = COPY [[COPY]].sub044  ; RA-NEXT:   [[COPY:%[0-9]+]].sub17:sgpr_1024 = COPY [[COPY]].sub145  ; RA-NEXT:   [[COPY:%[0-9]+]].sub18:sgpr_1024 = COPY [[COPY]].sub046  ; RA-NEXT:   [[COPY:%[0-9]+]].sub19:sgpr_1024 = COPY [[COPY]].sub147  ; RA-NEXT:   [[COPY:%[0-9]+]].sub20:sgpr_1024 = COPY [[COPY]].sub048  ; RA-NEXT:   [[COPY:%[0-9]+]].sub21:sgpr_1024 = COPY [[COPY]].sub149  ; RA-NEXT:   [[COPY:%[0-9]+]].sub22:sgpr_1024 = COPY [[COPY]].sub050  ; RA-NEXT:   [[COPY:%[0-9]+]].sub23:sgpr_1024 = COPY [[COPY]].sub151  ; RA-NEXT:   [[COPY:%[0-9]+]].sub24:sgpr_1024 = COPY [[COPY]].sub052  ; RA-NEXT:   [[COPY:%[0-9]+]].sub25:sgpr_1024 = COPY [[COPY]].sub153  ; RA-NEXT:   [[COPY:%[0-9]+]].sub26:sgpr_1024 = COPY [[COPY]].sub054  ; RA-NEXT:   [[COPY:%[0-9]+]].sub27:sgpr_1024 = COPY [[COPY]].sub155  ; RA-NEXT:   [[COPY:%[0-9]+]].sub28:sgpr_1024 = COPY [[COPY]].sub056  ; RA-NEXT:   [[COPY:%[0-9]+]].sub29:sgpr_1024 = COPY [[COPY]].sub157  ; RA-NEXT:   SI_SPILL_S1024_SAVE [[COPY]], %stack.0, implicit $exec, implicit $sgpr32 :: (store (s1024) into %stack.0, align 4, addrspace 5)58  ; RA-NEXT:   [[SI_SPILL_S1024_RESTORE1:%[0-9]+]]:sgpr_1024 = SI_SPILL_S1024_RESTORE %stack.1, implicit $exec, implicit $sgpr32 :: (load (s1024) from %stack.1, align 4, addrspace 5)59  ; RA-NEXT:   undef [[COPY1:%[0-9]+]].sub0:sgpr_1024 = COPY [[SI_SPILL_S1024_RESTORE1]].sub060  ; RA-NEXT:   [[COPY1:%[0-9]+]].sub1:sgpr_1024 = COPY [[COPY1]].sub061  ; RA-NEXT:   [[COPY1:%[0-9]+]].sub2:sgpr_1024 = COPY [[COPY1]].sub062  ; RA-NEXT:   [[COPY1:%[0-9]+]].sub3:sgpr_1024 = COPY [[COPY1]].sub063  ; RA-NEXT:   [[COPY1:%[0-9]+]].sub4:sgpr_1024 = COPY [[COPY1]].sub064  ; RA-NEXT:   [[COPY1:%[0-9]+]].sub5:sgpr_1024 = COPY [[COPY1]].sub065  ; RA-NEXT:   [[COPY1:%[0-9]+]].sub6:sgpr_1024 = COPY [[COPY1]].sub066  ; RA-NEXT:   [[COPY1:%[0-9]+]].sub7:sgpr_1024 = COPY [[COPY1]].sub067  ; RA-NEXT:   [[COPY1:%[0-9]+]].sub8:sgpr_1024 = COPY [[COPY1]].sub068  ; RA-NEXT:   [[COPY1:%[0-9]+]].sub9:sgpr_1024 = COPY [[COPY1]].sub069  ; RA-NEXT:   [[COPY1:%[0-9]+]].sub10:sgpr_1024 = COPY [[COPY1]].sub070  ; RA-NEXT:   [[COPY1:%[0-9]+]].sub11:sgpr_1024 = COPY [[COPY1]].sub071  ; RA-NEXT:   [[COPY1:%[0-9]+]].sub12:sgpr_1024 = COPY [[COPY1]].sub072  ; RA-NEXT:   [[COPY1:%[0-9]+]].sub13:sgpr_1024 = COPY [[COPY1]].sub073  ; RA-NEXT:   [[COPY1:%[0-9]+]].sub14:sgpr_1024 = COPY [[COPY1]].sub074  ; RA-NEXT:   [[COPY1:%[0-9]+]].sub15:sgpr_1024 = COPY [[COPY1]].sub075  ; RA-NEXT:   [[COPY1:%[0-9]+]].sub16:sgpr_1024 = COPY [[COPY1]].sub076  ; RA-NEXT:   [[COPY1:%[0-9]+]].sub17:sgpr_1024 = COPY [[COPY1]].sub077  ; RA-NEXT:   [[COPY1:%[0-9]+]].sub18:sgpr_1024 = COPY [[COPY1]].sub078  ; RA-NEXT:   [[COPY1:%[0-9]+]].sub19:sgpr_1024 = COPY [[COPY1]].sub079  ; RA-NEXT:   [[COPY1:%[0-9]+]].sub20:sgpr_1024 = COPY [[COPY1]].sub080  ; RA-NEXT:   [[COPY1:%[0-9]+]].sub21:sgpr_1024 = COPY [[COPY1]].sub081  ; RA-NEXT:   [[COPY1:%[0-9]+]].sub22:sgpr_1024 = COPY [[COPY1]].sub082  ; RA-NEXT:   [[COPY1:%[0-9]+]].sub23:sgpr_1024 = COPY [[COPY1]].sub083  ; RA-NEXT:   [[COPY1:%[0-9]+]].sub24:sgpr_1024 = COPY [[COPY1]].sub084  ; RA-NEXT:   [[COPY1:%[0-9]+]].sub25:sgpr_1024 = COPY [[COPY1]].sub085  ; RA-NEXT:   [[COPY1:%[0-9]+]].sub26:sgpr_1024 = COPY [[COPY1]].sub086  ; RA-NEXT:   [[COPY1:%[0-9]+]].sub27:sgpr_1024 = COPY [[COPY1]].sub087  ; RA-NEXT:   [[COPY1:%[0-9]+]].sub28:sgpr_1024 = COPY [[COPY1]].sub088  ; RA-NEXT:   [[COPY1:%[0-9]+]].sub29:sgpr_1024 = COPY [[COPY1]].sub089  ; RA-NEXT:   [[COPY1:%[0-9]+]].sub30:sgpr_1024 = COPY [[COPY1]].sub090  ; RA-NEXT:   [[COPY1:%[0-9]+]].sub31:sgpr_1024 = COPY [[COPY1]].sub091  ; RA-NEXT:   SI_SPILL_S1024_SAVE [[COPY1]], %stack.1, implicit $exec, implicit $sgpr32 :: (store (s1024) into %stack.1, align 4, addrspace 5)92  ; RA-NEXT: {{  $}}93  ; RA-NEXT: bb.2:94  ; RA-NEXT:   successors: %bb.1(0x40000000), %bb.2(0x40000000)95  ; RA-NEXT: {{  $}}96  ; RA-NEXT:   S_NOP 0, csr_amdgpu, implicit [[DEF]], implicit [[DEF1]]97  ; RA-NEXT:   S_CBRANCH_VCCNZ %bb.1, implicit undef $vcc98  ; RA-NEXT:   S_BRANCH %bb.299  ;100  ; VR-LABEL: name: splitkit_copy_bundle101  ; VR: bb.0:102  ; VR-NEXT:   successors: %bb.1(0x80000000)103  ; VR-NEXT: {{  $}}104  ; VR-NEXT:   renamable $sgpr37 = S_MOV_B32 -1105  ; VR-NEXT:   renamable $sgpr36 = S_MOV_B32 -1106  ; VR-NEXT:   SI_SPILL_S1024_SAVE renamable $sgpr36_sgpr37_sgpr38_sgpr39_sgpr40_sgpr41_sgpr42_sgpr43_sgpr44_sgpr45_sgpr46_sgpr47_sgpr48_sgpr49_sgpr50_sgpr51_sgpr52_sgpr53_sgpr54_sgpr55_sgpr56_sgpr57_sgpr58_sgpr59_sgpr60_sgpr61_sgpr62_sgpr63_sgpr64_sgpr65_sgpr66_sgpr67, %stack.0, implicit $exec, implicit $sgpr32 :: (store (s1024) into %stack.0, align 4, addrspace 5)107  ; VR-NEXT:   renamable $sgpr36 = S_MOV_B32 0108  ; VR-NEXT:   renamable $sgpr30_sgpr31 = IMPLICIT_DEF109  ; VR-NEXT:   renamable $sgpr34_sgpr35 = IMPLICIT_DEF110  ; VR-NEXT:   SI_SPILL_S1024_SAVE killed renamable $sgpr36_sgpr37_sgpr38_sgpr39_sgpr40_sgpr41_sgpr42_sgpr43_sgpr44_sgpr45_sgpr46_sgpr47_sgpr48_sgpr49_sgpr50_sgpr51_sgpr52_sgpr53_sgpr54_sgpr55_sgpr56_sgpr57_sgpr58_sgpr59_sgpr60_sgpr61_sgpr62_sgpr63_sgpr64_sgpr65_sgpr66_sgpr67, %stack.1, implicit $exec, implicit $sgpr32 :: (store (s1024) into %stack.1, align 4, addrspace 5)111  ; VR-NEXT: {{  $}}112  ; VR-NEXT: bb.1:113  ; VR-NEXT:   successors: %bb.2(0x80000000)114  ; VR-NEXT:   liveins: $sgpr30_sgpr31, $sgpr34_sgpr35115  ; VR-NEXT: {{  $}}116  ; VR-NEXT:   renamable $sgpr36_sgpr37_sgpr38_sgpr39_sgpr40_sgpr41_sgpr42_sgpr43_sgpr44_sgpr45_sgpr46_sgpr47_sgpr48_sgpr49_sgpr50_sgpr51_sgpr52_sgpr53_sgpr54_sgpr55_sgpr56_sgpr57_sgpr58_sgpr59_sgpr60_sgpr61_sgpr62_sgpr63_sgpr64_sgpr65_sgpr66_sgpr67 = SI_SPILL_S1024_RESTORE %stack.0, implicit $exec, implicit $sgpr32 :: (load (s1024) from %stack.0, align 4, addrspace 5)117  ; VR-NEXT:   renamable $sgpr38 = COPY renamable $sgpr36118  ; VR-NEXT:   renamable $sgpr39 = COPY renamable $sgpr37119  ; VR-NEXT:   renamable $sgpr40 = COPY renamable $sgpr36120  ; VR-NEXT:   renamable $sgpr41 = COPY renamable $sgpr37121  ; VR-NEXT:   renamable $sgpr42 = COPY renamable $sgpr36122  ; VR-NEXT:   renamable $sgpr43 = COPY renamable $sgpr37123  ; VR-NEXT:   renamable $sgpr44 = COPY renamable $sgpr36124  ; VR-NEXT:   renamable $sgpr45 = COPY renamable $sgpr37125  ; VR-NEXT:   renamable $sgpr46 = COPY renamable $sgpr36126  ; VR-NEXT:   renamable $sgpr47 = COPY renamable $sgpr37127  ; VR-NEXT:   renamable $sgpr48 = COPY renamable $sgpr36128  ; VR-NEXT:   renamable $sgpr49 = COPY renamable $sgpr37129  ; VR-NEXT:   renamable $sgpr50 = COPY renamable $sgpr36130  ; VR-NEXT:   renamable $sgpr51 = COPY renamable $sgpr37131  ; VR-NEXT:   renamable $sgpr52 = COPY renamable $sgpr36132  ; VR-NEXT:   renamable $sgpr53 = COPY renamable $sgpr37133  ; VR-NEXT:   renamable $sgpr54 = COPY renamable $sgpr36134  ; VR-NEXT:   renamable $sgpr55 = COPY renamable $sgpr37135  ; VR-NEXT:   renamable $sgpr56 = COPY renamable $sgpr36136  ; VR-NEXT:   renamable $sgpr57 = COPY renamable $sgpr37137  ; VR-NEXT:   renamable $sgpr58 = COPY renamable $sgpr36138  ; VR-NEXT:   renamable $sgpr59 = COPY renamable $sgpr37139  ; VR-NEXT:   renamable $sgpr60 = COPY renamable $sgpr36140  ; VR-NEXT:   renamable $sgpr61 = COPY renamable $sgpr37141  ; VR-NEXT:   renamable $sgpr62 = COPY renamable $sgpr36142  ; VR-NEXT:   renamable $sgpr63 = COPY renamable $sgpr37143  ; VR-NEXT:   renamable $sgpr64 = COPY renamable $sgpr36144  ; VR-NEXT:   renamable $sgpr65 = COPY renamable $sgpr37145  ; VR-NEXT:   SI_SPILL_S1024_SAVE killed renamable $sgpr36_sgpr37_sgpr38_sgpr39_sgpr40_sgpr41_sgpr42_sgpr43_sgpr44_sgpr45_sgpr46_sgpr47_sgpr48_sgpr49_sgpr50_sgpr51_sgpr52_sgpr53_sgpr54_sgpr55_sgpr56_sgpr57_sgpr58_sgpr59_sgpr60_sgpr61_sgpr62_sgpr63_sgpr64_sgpr65_sgpr66_sgpr67, %stack.0, implicit $exec, implicit $sgpr32 :: (store (s1024) into %stack.0, align 4, addrspace 5)146  ; VR-NEXT:   renamable $sgpr36_sgpr37_sgpr38_sgpr39_sgpr40_sgpr41_sgpr42_sgpr43_sgpr44_sgpr45_sgpr46_sgpr47_sgpr48_sgpr49_sgpr50_sgpr51_sgpr52_sgpr53_sgpr54_sgpr55_sgpr56_sgpr57_sgpr58_sgpr59_sgpr60_sgpr61_sgpr62_sgpr63_sgpr64_sgpr65_sgpr66_sgpr67 = SI_SPILL_S1024_RESTORE %stack.1, implicit $exec, implicit $sgpr32 :: (load (s1024) from %stack.1, align 4, addrspace 5)147  ; VR-NEXT:   renamable $sgpr37 = COPY renamable $sgpr36148  ; VR-NEXT:   renamable $sgpr38 = COPY renamable $sgpr36149  ; VR-NEXT:   renamable $sgpr39 = COPY renamable $sgpr36150  ; VR-NEXT:   renamable $sgpr40 = COPY renamable $sgpr36151  ; VR-NEXT:   renamable $sgpr41 = COPY renamable $sgpr36152  ; VR-NEXT:   renamable $sgpr42 = COPY renamable $sgpr36153  ; VR-NEXT:   renamable $sgpr43 = COPY renamable $sgpr36154  ; VR-NEXT:   renamable $sgpr44 = COPY renamable $sgpr36155  ; VR-NEXT:   renamable $sgpr45 = COPY renamable $sgpr36156  ; VR-NEXT:   renamable $sgpr46 = COPY renamable $sgpr36157  ; VR-NEXT:   renamable $sgpr47 = COPY renamable $sgpr36158  ; VR-NEXT:   renamable $sgpr48 = COPY renamable $sgpr36159  ; VR-NEXT:   renamable $sgpr49 = COPY renamable $sgpr36160  ; VR-NEXT:   renamable $sgpr50 = COPY renamable $sgpr36161  ; VR-NEXT:   renamable $sgpr51 = COPY renamable $sgpr36162  ; VR-NEXT:   renamable $sgpr52 = COPY renamable $sgpr36163  ; VR-NEXT:   renamable $sgpr53 = COPY renamable $sgpr36164  ; VR-NEXT:   renamable $sgpr54 = COPY renamable $sgpr36165  ; VR-NEXT:   renamable $sgpr55 = COPY renamable $sgpr36166  ; VR-NEXT:   renamable $sgpr56 = COPY renamable $sgpr36167  ; VR-NEXT:   renamable $sgpr57 = COPY renamable $sgpr36168  ; VR-NEXT:   renamable $sgpr58 = COPY renamable $sgpr36169  ; VR-NEXT:   renamable $sgpr59 = COPY renamable $sgpr36170  ; VR-NEXT:   renamable $sgpr60 = COPY renamable $sgpr36171  ; VR-NEXT:   renamable $sgpr61 = COPY renamable $sgpr36172  ; VR-NEXT:   renamable $sgpr62 = COPY renamable $sgpr36173  ; VR-NEXT:   renamable $sgpr63 = COPY renamable $sgpr36174  ; VR-NEXT:   renamable $sgpr64 = COPY renamable $sgpr36175  ; VR-NEXT:   renamable $sgpr65 = COPY renamable $sgpr36176  ; VR-NEXT:   renamable $sgpr66 = COPY renamable $sgpr36177  ; VR-NEXT:   renamable $sgpr67 = COPY renamable $sgpr36178  ; VR-NEXT:   SI_SPILL_S1024_SAVE killed renamable $sgpr36_sgpr37_sgpr38_sgpr39_sgpr40_sgpr41_sgpr42_sgpr43_sgpr44_sgpr45_sgpr46_sgpr47_sgpr48_sgpr49_sgpr50_sgpr51_sgpr52_sgpr53_sgpr54_sgpr55_sgpr56_sgpr57_sgpr58_sgpr59_sgpr60_sgpr61_sgpr62_sgpr63_sgpr64_sgpr65_sgpr66_sgpr67, %stack.1, implicit $exec, implicit $sgpr32 :: (store (s1024) into %stack.1, align 4, addrspace 5)179  ; VR-NEXT: {{  $}}180  ; VR-NEXT: bb.2:181  ; VR-NEXT:   successors: %bb.1(0x40000000), %bb.2(0x40000000)182  ; VR-NEXT:   liveins: $sgpr30_sgpr31, $sgpr34_sgpr35183  ; VR-NEXT: {{  $}}184  ; VR-NEXT:   S_NOP 0, csr_amdgpu, implicit renamable $sgpr30_sgpr31, implicit renamable $sgpr34_sgpr35185  ; VR-NEXT:   S_CBRANCH_VCCNZ %bb.1, implicit undef $vcc186  ; VR-NEXT:   S_BRANCH %bb.2187  bb.0:188    %0:sreg_64 = IMPLICIT_DEF189    %1:sreg_64 = IMPLICIT_DEF190    undef %2.sub1:sgpr_1024 = S_MOV_B32 -1191    %2.sub0:sgpr_1024 = S_MOV_B32 -1192    undef %3.sub0:sgpr_1024 = S_MOV_B32 0193 194  bb.1:195    %2.sub2:sgpr_1024 = COPY %2.sub0196    %2.sub3:sgpr_1024 = COPY %2.sub1197    %2.sub4:sgpr_1024 = COPY %2.sub0198    %2.sub5:sgpr_1024 = COPY %2.sub1199    %2.sub6:sgpr_1024 = COPY %2.sub0200    %2.sub7:sgpr_1024 = COPY %2.sub1201    %2.sub8:sgpr_1024 = COPY %2.sub0202    %2.sub9:sgpr_1024 = COPY %2.sub1203    %2.sub10:sgpr_1024 = COPY %2.sub0204    %2.sub11:sgpr_1024 = COPY %2.sub1205    %2.sub12:sgpr_1024 = COPY %2.sub0206    %2.sub13:sgpr_1024 = COPY %2.sub1207    %2.sub14:sgpr_1024 = COPY %2.sub0208    %2.sub15:sgpr_1024 = COPY %2.sub1209    %2.sub16:sgpr_1024 = COPY %2.sub0210    %2.sub17:sgpr_1024 = COPY %2.sub1211    %2.sub18:sgpr_1024 = COPY %2.sub0212    %2.sub19:sgpr_1024 = COPY %2.sub1213    %2.sub20:sgpr_1024 = COPY %2.sub0214    %2.sub21:sgpr_1024 = COPY %2.sub1215    %2.sub22:sgpr_1024 = COPY %2.sub0216    %2.sub23:sgpr_1024 = COPY %2.sub1217    %2.sub24:sgpr_1024 = COPY %2.sub0218    %2.sub25:sgpr_1024 = COPY %2.sub1219    %2.sub26:sgpr_1024 = COPY %2.sub0220    %2.sub27:sgpr_1024 = COPY %2.sub1221    %2.sub28:sgpr_1024 = COPY %2.sub0222    %2.sub29:sgpr_1024 = COPY %2.sub1223    %3.sub1:sgpr_1024 = COPY %3.sub0224    %3.sub2:sgpr_1024 = COPY %3.sub0225    %3.sub3:sgpr_1024 = COPY %3.sub0226    %3.sub4:sgpr_1024 = COPY %3.sub0227    %3.sub5:sgpr_1024 = COPY %3.sub0228    %3.sub6:sgpr_1024 = COPY %3.sub0229    %3.sub7:sgpr_1024 = COPY %3.sub0230    %3.sub8:sgpr_1024 = COPY %3.sub0231    %3.sub9:sgpr_1024 = COPY %3.sub0232    %3.sub10:sgpr_1024 = COPY %3.sub0233    %3.sub11:sgpr_1024 = COPY %3.sub0234    %3.sub12:sgpr_1024 = COPY %3.sub0235    %3.sub13:sgpr_1024 = COPY %3.sub0236    %3.sub14:sgpr_1024 = COPY %3.sub0237    %3.sub15:sgpr_1024 = COPY %3.sub0238    %3.sub16:sgpr_1024 = COPY %3.sub0239    %3.sub17:sgpr_1024 = COPY %3.sub0240    %3.sub18:sgpr_1024 = COPY %3.sub0241    %3.sub19:sgpr_1024 = COPY %3.sub0242    %3.sub20:sgpr_1024 = COPY %3.sub0243    %3.sub21:sgpr_1024 = COPY %3.sub0244    %3.sub22:sgpr_1024 = COPY %3.sub0245    %3.sub23:sgpr_1024 = COPY %3.sub0246    %3.sub24:sgpr_1024 = COPY %3.sub0247    %3.sub25:sgpr_1024 = COPY %3.sub0248    %3.sub26:sgpr_1024 = COPY %3.sub0249    %3.sub27:sgpr_1024 = COPY %3.sub0250    %3.sub28:sgpr_1024 = COPY %3.sub0251    %3.sub29:sgpr_1024 = COPY %3.sub0252    %3.sub30:sgpr_1024 = COPY %3.sub0253    %3.sub31:sgpr_1024 = COPY %3.sub0254 255  bb.2:256    S_NOP 0, implicit %0, implicit %1, csr_amdgpu257    S_CBRANCH_VCCNZ %bb.1, implicit undef $vcc258    S_BRANCH %bb.2259 260...261 262---263name:            splitkit_copy_unbundle_reorder264tracksRegLiveness: true265machineFunctionInfo:266  scratchRSrcReg:  '$sgpr0_sgpr1_sgpr2_sgpr3'267  stackPtrOffsetReg: '$sgpr32'268body:             |269  bb.0:270    ; RA-LABEL: name: splitkit_copy_unbundle_reorder271    ; RA: [[DEF:%[0-9]+]]:sgpr_128 = IMPLICIT_DEF272    ; RA-NEXT: [[DEF1:%[0-9]+]]:sreg_64 = IMPLICIT_DEF273    ; RA-NEXT: [[DEF2:%[0-9]+]]:sgpr_512 = IMPLICIT_DEF274    ; RA-NEXT: [[DEF2:%[0-9]+]].sub4:sgpr_512 = S_MOV_B32 -1275    ; RA-NEXT: [[DEF2:%[0-9]+]].sub5:sgpr_512 = S_MOV_B32 -1276    ; RA-NEXT: [[DEF2:%[0-9]+]].sub10:sgpr_512 = S_MOV_B32 -1277    ; RA-NEXT: [[DEF2:%[0-9]+]].sub11:sgpr_512 = S_MOV_B32 -1278    ; RA-NEXT: [[DEF2:%[0-9]+]].sub7:sgpr_512 = S_MOV_B32 -1279    ; RA-NEXT: [[DEF2:%[0-9]+]].sub8:sgpr_512 = S_MOV_B32 -1280    ; RA-NEXT: [[DEF2:%[0-9]+]].sub13:sgpr_512 = S_MOV_B32 -1281    ; RA-NEXT: [[DEF2:%[0-9]+]].sub14:sgpr_512 = S_MOV_B32 -1282    ; RA-NEXT: undef [[COPY:%[0-9]+]].sub4_sub5:sgpr_512 = COPY [[DEF2]].sub4_sub5 {283    ; RA-NEXT:   internal [[COPY]].sub10_sub11:sgpr_512 = COPY [[DEF2]].sub10_sub11284    ; RA-NEXT:   internal [[COPY]].sub7:sgpr_512 = COPY [[DEF2]].sub7285    ; RA-NEXT:   internal [[COPY]].sub8:sgpr_512 = COPY [[DEF2]].sub8286    ; RA-NEXT:   internal [[COPY]].sub13:sgpr_512 = COPY [[DEF2]].sub13287    ; RA-NEXT:   internal [[COPY]].sub14:sgpr_512 = COPY [[DEF2]].sub14288    ; RA-NEXT: }289    ; RA-NEXT: undef [[COPY1:%[0-9]+]].sub4_sub5:sgpr_512 = COPY [[COPY]].sub4_sub5 {290    ; RA-NEXT:   internal [[COPY1]].sub10_sub11:sgpr_512 = COPY [[COPY]].sub10_sub11291    ; RA-NEXT:   internal [[COPY1]].sub7:sgpr_512 = COPY [[COPY]].sub7292    ; RA-NEXT:   internal [[COPY1]].sub8:sgpr_512 = COPY [[COPY]].sub8293    ; RA-NEXT:   internal [[COPY1]].sub13:sgpr_512 = COPY [[COPY]].sub13294    ; RA-NEXT:   internal [[COPY1]].sub14:sgpr_512 = COPY [[COPY]].sub14295    ; RA-NEXT: }296    ; RA-NEXT: SI_SPILL_S512_SAVE [[COPY1]], %stack.0, implicit $exec, implicit $sgpr32 :: (store (s512) into %stack.0, align 4, addrspace 5)297    ; RA-NEXT: S_NOP 0, implicit-def $sgpr8, implicit-def $sgpr12, implicit-def $sgpr16, implicit-def $sgpr20, implicit-def $sgpr24, implicit-def $sgpr28, implicit-def $sgpr32, implicit-def $sgpr36, implicit-def $sgpr40, implicit-def $sgpr44, implicit-def $sgpr48, implicit-def $sgpr52, implicit-def $sgpr56, implicit-def $sgpr60, implicit-def $sgpr64, implicit-def $sgpr68, implicit-def $sgpr72, implicit-def $sgpr74, implicit-def $sgpr78, implicit-def $sgpr82, implicit-def $sgpr86, implicit-def $sgpr90, implicit-def $sgpr94, implicit-def $sgpr98298    ; RA-NEXT: [[SI_SPILL_S512_RESTORE:%[0-9]+]]:sgpr_512 = SI_SPILL_S512_RESTORE %stack.0, implicit $exec, implicit $sgpr32 :: (load (s512) from %stack.0, align 4, addrspace 5)299    ; RA-NEXT: undef [[COPY2:%[0-9]+]].sub4_sub5:sgpr_512 = COPY [[SI_SPILL_S512_RESTORE]].sub4_sub5 {300    ; RA-NEXT:   internal [[COPY2]].sub10_sub11:sgpr_512 = COPY [[SI_SPILL_S512_RESTORE]].sub10_sub11301    ; RA-NEXT:   internal [[COPY2]].sub7:sgpr_512 = COPY [[SI_SPILL_S512_RESTORE]].sub7302    ; RA-NEXT:   internal [[COPY2]].sub8:sgpr_512 = COPY [[SI_SPILL_S512_RESTORE]].sub8303    ; RA-NEXT:   internal [[COPY2]].sub13:sgpr_512 = COPY [[SI_SPILL_S512_RESTORE]].sub13304    ; RA-NEXT:   internal [[COPY2]].sub14:sgpr_512 = COPY [[SI_SPILL_S512_RESTORE]].sub14305    ; RA-NEXT: }306    ; RA-NEXT: undef [[COPY3:%[0-9]+]].sub4_sub5:sgpr_512 = COPY [[COPY2]].sub4_sub5 {307    ; RA-NEXT:   internal [[COPY3]].sub10_sub11:sgpr_512 = COPY [[COPY2]].sub10_sub11308    ; RA-NEXT:   internal [[COPY3]].sub7:sgpr_512 = COPY [[COPY2]].sub7309    ; RA-NEXT:   internal [[COPY3]].sub8:sgpr_512 = COPY [[COPY2]].sub8310    ; RA-NEXT:   internal [[COPY3]].sub13:sgpr_512 = COPY [[COPY2]].sub13311    ; RA-NEXT:   internal [[COPY3]].sub14:sgpr_512 = COPY [[COPY2]].sub14312    ; RA-NEXT: }313    ; RA-NEXT: [[S_BUFFER_LOAD_DWORD_SGPR:%[0-9]+]]:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR [[DEF]], [[COPY3]].sub4, 0 :: (dereferenceable invariant load (s32))314    ; RA-NEXT: [[S_BUFFER_LOAD_DWORD_SGPR1:%[0-9]+]]:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR [[DEF]], [[COPY3]].sub5, 0 :: (dereferenceable invariant load (s32))315    ; RA-NEXT: [[S_BUFFER_LOAD_DWORD_SGPR2:%[0-9]+]]:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR [[DEF]], [[COPY3]].sub10, 0 :: (dereferenceable invariant load (s32))316    ; RA-NEXT: [[S_BUFFER_LOAD_DWORD_SGPR3:%[0-9]+]]:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR [[DEF]], [[COPY3]].sub11, 0 :: (dereferenceable invariant load (s32))317    ; RA-NEXT: [[S_BUFFER_LOAD_DWORD_SGPR4:%[0-9]+]]:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR [[DEF]], [[COPY3]].sub7, 0 :: (dereferenceable invariant load (s32))318    ; RA-NEXT: [[S_BUFFER_LOAD_DWORD_SGPR5:%[0-9]+]]:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR [[DEF]], [[COPY3]].sub8, 0 :: (dereferenceable invariant load (s32))319    ; RA-NEXT: [[S_BUFFER_LOAD_DWORD_SGPR6:%[0-9]+]]:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR [[DEF]], [[COPY3]].sub13, 0 :: (dereferenceable invariant load (s32))320    ; RA-NEXT: [[S_BUFFER_LOAD_DWORD_SGPR7:%[0-9]+]]:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR [[DEF]], [[COPY3]].sub14, 0 :: (dereferenceable invariant load (s32))321    ; RA-NEXT: S_NOP 0, implicit [[DEF]], implicit [[DEF1]], implicit [[S_BUFFER_LOAD_DWORD_SGPR]], implicit [[S_BUFFER_LOAD_DWORD_SGPR1]], implicit [[S_BUFFER_LOAD_DWORD_SGPR2]], implicit [[S_BUFFER_LOAD_DWORD_SGPR3]], implicit [[S_BUFFER_LOAD_DWORD_SGPR4]], implicit [[S_BUFFER_LOAD_DWORD_SGPR5]], implicit [[S_BUFFER_LOAD_DWORD_SGPR6]], implicit [[S_BUFFER_LOAD_DWORD_SGPR7]]322    ;323    ; VR-LABEL: name: splitkit_copy_unbundle_reorder324    ; VR: renamable $sgpr12_sgpr13_sgpr14_sgpr15_sgpr16_sgpr17_sgpr18_sgpr19_sgpr20_sgpr21_sgpr22_sgpr23_sgpr24_sgpr25_sgpr26_sgpr27 = IMPLICIT_DEF325    ; VR-NEXT: renamable $sgpr16 = S_MOV_B32 -1326    ; VR-NEXT: renamable $sgpr17 = S_MOV_B32 -1327    ; VR-NEXT: renamable $sgpr22 = S_MOV_B32 -1328    ; VR-NEXT: renamable $sgpr23 = S_MOV_B32 -1329    ; VR-NEXT: renamable $sgpr19 = S_MOV_B32 -1330    ; VR-NEXT: renamable $sgpr20 = S_MOV_B32 -1331    ; VR-NEXT: renamable $sgpr25 = S_MOV_B32 -1332    ; VR-NEXT: renamable $sgpr26 = S_MOV_B32 -1333    ; VR-NEXT: SI_SPILL_S512_SAVE killed renamable $sgpr12_sgpr13_sgpr14_sgpr15_sgpr16_sgpr17_sgpr18_sgpr19_sgpr20_sgpr21_sgpr22_sgpr23_sgpr24_sgpr25_sgpr26_sgpr27, %stack.0, implicit $exec, implicit $sgpr32 :: (store (s512) into %stack.0, align 4, addrspace 5)334    ; VR-NEXT: S_NOP 0, implicit-def $sgpr8, implicit-def $sgpr12, implicit-def $sgpr16, implicit-def $sgpr20, implicit-def $sgpr24, implicit-def $sgpr28, implicit-def $sgpr32, implicit-def $sgpr36, implicit-def $sgpr40, implicit-def $sgpr44, implicit-def $sgpr48, implicit-def $sgpr52, implicit-def $sgpr56, implicit-def $sgpr60, implicit-def $sgpr64, implicit-def $sgpr68, implicit-def $sgpr72, implicit-def $sgpr74, implicit-def $sgpr78, implicit-def $sgpr82, implicit-def $sgpr86, implicit-def $sgpr90, implicit-def $sgpr94, implicit-def $sgpr98335    ; VR-NEXT: renamable $sgpr12_sgpr13_sgpr14_sgpr15_sgpr16_sgpr17_sgpr18_sgpr19_sgpr20_sgpr21_sgpr22_sgpr23_sgpr24_sgpr25_sgpr26_sgpr27 = SI_SPILL_S512_RESTORE %stack.0, implicit $exec, implicit $sgpr32 :: (load (s512) from %stack.0, align 4, addrspace 5)336    ; VR-NEXT: renamable $sgpr12_sgpr13 = COPY killed renamable $sgpr16_sgpr17337    ; VR-NEXT: renamable $sgpr15 = COPY killed renamable $sgpr19338    ; VR-NEXT: renamable $sgpr18_sgpr19 = COPY killed renamable $sgpr22_sgpr23339    ; VR-NEXT: renamable $sgpr16 = COPY killed renamable $sgpr20340    ; VR-NEXT: renamable $sgpr21 = COPY killed renamable $sgpr25341    ; VR-NEXT: renamable $sgpr22 = COPY killed renamable $sgpr26342    ; VR-NEXT: renamable $sgpr4_sgpr5_sgpr6_sgpr7 = IMPLICIT_DEF343    ; VR-NEXT: renamable $sgpr8 = S_BUFFER_LOAD_DWORD_SGPR renamable $sgpr4_sgpr5_sgpr6_sgpr7, killed renamable $sgpr12, 0 :: (dereferenceable invariant load (s32))344    ; VR-NEXT: renamable $sgpr9 = S_BUFFER_LOAD_DWORD_SGPR renamable $sgpr4_sgpr5_sgpr6_sgpr7, killed renamable $sgpr13, 0 :: (dereferenceable invariant load (s32))345    ; VR-NEXT: renamable $sgpr14 = S_BUFFER_LOAD_DWORD_SGPR renamable $sgpr4_sgpr5_sgpr6_sgpr7, killed renamable $sgpr15, 0 :: (dereferenceable invariant load (s32))346    ; VR-NEXT: renamable $sgpr10_sgpr11 = IMPLICIT_DEF347    ; VR-NEXT: renamable $sgpr17 = S_BUFFER_LOAD_DWORD_SGPR renamable $sgpr4_sgpr5_sgpr6_sgpr7, killed renamable $sgpr22, 0 :: (dereferenceable invariant load (s32))348    ; VR-NEXT: renamable $sgpr15 = S_BUFFER_LOAD_DWORD_SGPR renamable $sgpr4_sgpr5_sgpr6_sgpr7, killed renamable $sgpr16, 0 :: (dereferenceable invariant load (s32))349    ; VR-NEXT: renamable $sgpr12 = S_BUFFER_LOAD_DWORD_SGPR renamable $sgpr4_sgpr5_sgpr6_sgpr7, killed renamable $sgpr18, 0 :: (dereferenceable invariant load (s32))350    ; VR-NEXT: renamable $sgpr13 = S_BUFFER_LOAD_DWORD_SGPR renamable $sgpr4_sgpr5_sgpr6_sgpr7, killed renamable $sgpr19, 0 :: (dereferenceable invariant load (s32))351    ; VR-NEXT: renamable $sgpr16 = S_BUFFER_LOAD_DWORD_SGPR renamable $sgpr4_sgpr5_sgpr6_sgpr7, killed renamable $sgpr21, 0 :: (dereferenceable invariant load (s32))352    ; VR-NEXT: S_NOP 0, implicit killed renamable $sgpr4_sgpr5_sgpr6_sgpr7, implicit killed renamable $sgpr10_sgpr11, implicit killed renamable $sgpr8, implicit killed renamable $sgpr9, implicit killed renamable $sgpr12, implicit killed renamable $sgpr13, implicit killed renamable $sgpr14, implicit killed renamable $sgpr15, implicit killed renamable $sgpr16, implicit killed renamable $sgpr17353    %0:sgpr_128 = IMPLICIT_DEF354    %1:sreg_64 = IMPLICIT_DEF355    %2:sgpr_512 = IMPLICIT_DEF356 357    %2.sub4:sgpr_512 = S_MOV_B32 -1358    %2.sub5:sgpr_512 = S_MOV_B32 -1359    %2.sub10:sgpr_512 = S_MOV_B32 -1360    %2.sub11:sgpr_512 = S_MOV_B32 -1361    %2.sub7:sgpr_512 = S_MOV_B32 -1362    %2.sub8:sgpr_512 = S_MOV_B32 -1363    %2.sub13:sgpr_512 = S_MOV_B32 -1364    %2.sub14:sgpr_512 = S_MOV_B32 -1365 366    S_NOP 0, implicit-def $sgpr8, implicit-def $sgpr12, implicit-def $sgpr16, implicit-def $sgpr20, implicit-def $sgpr24, implicit-def $sgpr28, implicit-def $sgpr32, implicit-def $sgpr36, implicit-def $sgpr40, implicit-def $sgpr44, implicit-def $sgpr48, implicit-def $sgpr52, implicit-def $sgpr56, implicit-def $sgpr60, implicit-def $sgpr64, implicit-def $sgpr68, implicit-def $sgpr72, implicit-def $sgpr74, implicit-def $sgpr78, implicit-def $sgpr82, implicit-def $sgpr86, implicit-def $sgpr90, implicit-def $sgpr94, implicit-def $sgpr98367 368    %5:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR %0:sgpr_128, %2.sub4:sgpr_512, 0 :: (dereferenceable invariant load (s32))369    %6:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR %0:sgpr_128, %2.sub5:sgpr_512, 0 :: (dereferenceable invariant load (s32))370    %7:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR %0:sgpr_128, %2.sub10:sgpr_512, 0 :: (dereferenceable invariant load (s32))371    %8:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR %0:sgpr_128, %2.sub11:sgpr_512, 0 :: (dereferenceable invariant load (s32))372    %9:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR %0:sgpr_128, %2.sub7:sgpr_512, 0 :: (dereferenceable invariant load (s32))373    %10:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR %0:sgpr_128, %2.sub8:sgpr_512, 0 :: (dereferenceable invariant load (s32))374    %11:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR %0:sgpr_128, %2.sub13:sgpr_512, 0 :: (dereferenceable invariant load (s32))375    %12:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR %0:sgpr_128, %2.sub14:sgpr_512, 0 :: (dereferenceable invariant load (s32))376 377    S_NOP 0, implicit %0, implicit %1, implicit %5, implicit %6, implicit %7, implicit %8, implicit %9, implicit %10, implicit %11, implicit %12378 379...380