1# RUN: llc -march=amdgcn -mcpu=gfx900 -run-pass=greedy -o - -verify-machineinstrs %s | FileCheck -check-prefixes=MIR,RA %s 2# RUN: llc -march=amdgcn -mcpu=gfx900 -run-pass=greedy,virtregrewriter,post-RA-sched -o - -verify-machineinstrs %s | FileCheck -check-prefixes=MIR,VR %s 3# RUN: llc -march=amdgcn -mcpu=gfx900 -start-before=greedy -o - -verify-machineinstrs %s | FileCheck -check-prefix=ASM %s 4 5--- 6# MIR-LABEL: name: splitkit_copy_bundle 7 8# RA: undef %4.sub0_sub1_sub2_sub3_sub4_sub5_sub6_sub7_sub8_sub9_sub10_sub11_sub12_sub13_sub14_sub15:sgpr_1024 = COPY %5.sub0_sub1_sub2_sub3_sub4_sub5_sub6_sub7_sub8_sub9_sub10_sub11_sub12_sub13_sub14_sub15 { 9# RA-NEXT: internal %4.sub12_sub13_sub14_sub15_sub16_sub17_sub18_sub19_sub20_sub21_sub22_sub23_sub24_sub25_sub26_sub27:sgpr_1024 = COPY %5.sub12_sub13_sub14_sub15_sub16_sub17_sub18_sub19_sub20_sub21_sub22_sub23_sub24_sub25_sub26_sub27 10# RA-NEXT: internal %4.sub28_sub29:sgpr_1024 = COPY %5.sub28_sub29 11# RA-NEXT: } 12 13# RA: undef %6.sub0_sub1_sub2_sub3_sub4_sub5_sub6_sub7_sub8_sub9_sub10_sub11_sub12_sub13_sub14_sub15:sgpr_1024 = COPY %4.sub0_sub1_sub2_sub3_sub4_sub5_sub6_sub7_sub8_sub9_sub10_sub11_sub12_sub13_sub14_sub15 { 14# RA-NEXT: internal %6.sub12_sub13_sub14_sub15_sub16_sub17_sub18_sub19_sub20_sub21_sub22_sub23_sub24_sub25_sub26_sub27:sgpr_1024 = COPY %4.sub12_sub13_sub14_sub15_sub16_sub17_sub18_sub19_sub20_sub21_sub22_sub23_sub24_sub25_sub26_sub27 15# RA-NEXT: internal %6.sub28_sub29:sgpr_1024 = COPY %4.sub28_sub29 16# RA-NEXT: } 17 18 19# RA: undef %4.sub0_sub1_sub2_sub3_sub4_sub5_sub6_sub7_sub8_sub9_sub10_sub11_sub12_sub13_sub14_sub15:sgpr_1024 = COPY %6.sub0_sub1_sub2_sub3_sub4_sub5_sub6_sub7_sub8_sub9_sub10_sub11_sub12_sub13_sub14_sub15 { 20# RA-NEXT: internal %4.sub12_sub13_sub14_sub15_sub16_sub17_sub18_sub19_sub20_sub21_sub22_sub23_sub24_sub25_sub26_sub27:sgpr_1024 = COPY %6.sub12_sub13_sub14_sub15_sub16_sub17_sub18_sub19_sub20_sub21_sub22_sub23_sub24_sub25_sub26_sub27 21# RA-NEXT: internal %4.sub28_sub29:sgpr_1024 = COPY %6.sub28_sub29 22# RA-NEXT: } 23 24 25# VR: renamable $sgpr80_sgpr81_sgpr82_sgpr83_sgpr84_sgpr85_sgpr86_sgpr87_sgpr88_sgpr89_sgpr90_sgpr91_sgpr92_sgpr93_sgpr94_sgpr95 = KILL undef renamable $sgpr80_sgpr81_sgpr82_sgpr83_sgpr84_sgpr85_sgpr86_sgpr87_sgpr88_sgpr89_sgpr90_sgpr91_sgpr92_sgpr93_sgpr94_sgpr95 26# VR-NEXT: renamable $sgpr96_sgpr97 = KILL undef renamable $sgpr96_sgpr97 27 28# ASM-LABEL: {{^}}splitkit_copy_bundle: 29# ASM: ; implicit-def: $sgpr34_sgpr35 30# ASM-NEXT: ; implicit-def: $sgpr98_sgpr99 31# ASM-NEXT: ; kill: def $sgpr80_sgpr81_sgpr82_sgpr83_sgpr84_sgpr85_sgpr86_sgpr87_sgpr88_sgpr89_sgpr90_sgpr91_sgpr92_sgpr93_sgpr94_sgpr95 killed $sgpr80_sgpr81_sgpr82_sgpr83_sgpr84_sgpr85_sgpr86_sgpr87_sgpr88_sgpr89_sgpr90_sgpr91_sgpr92_sgpr93_sgpr94_sgpr95 32# ASM-NEXT: ; kill: def $sgpr96_sgpr97 killed $sgpr96_sgpr97 33 34name: splitkit_copy_bundle 35tracksRegLiveness: true 36machineFunctionInfo: 37 scratchRSrcReg: '$sgpr0_sgpr1_sgpr2_sgpr3' 38 stackPtrOffsetReg: '$sgpr32' 39body: | 40 bb.0: 41 %0:sreg_64 = IMPLICIT_DEF 42 %1:sreg_64 = IMPLICIT_DEF 43 undef %2.sub1:sgpr_1024 = S_MOV_B32 -1 44 %2.sub0:sgpr_1024 = S_MOV_B32 -1 45 undef %3.sub0:sgpr_1024 = S_MOV_B32 0 46 47 bb.1: 48 %2.sub2:sgpr_1024 = COPY %2.sub0 49 %2.sub3:sgpr_1024 = COPY %2.sub1 50 %2.sub4:sgpr_1024 = COPY %2.sub0 51 %2.sub5:sgpr_1024 = COPY %2.sub1 52 %2.sub6:sgpr_1024 = COPY %2.sub0 53 %2.sub7:sgpr_1024 = COPY %2.sub1 54 %2.sub8:sgpr_1024 = COPY %2.sub0 55 %2.sub9:sgpr_1024 = COPY %2.sub1 56 %2.sub10:sgpr_1024 = COPY %2.sub0 57 %2.sub11:sgpr_1024 = COPY %2.sub1 58 %2.sub12:sgpr_1024 = COPY %2.sub0 59 %2.sub13:sgpr_1024 = COPY %2.sub1 60 %2.sub14:sgpr_1024 = COPY %2.sub0 61 %2.sub15:sgpr_1024 = COPY %2.sub1 62 %2.sub16:sgpr_1024 = COPY %2.sub0 63 %2.sub17:sgpr_1024 = COPY %2.sub1 64 %2.sub18:sgpr_1024 = COPY %2.sub0 65 %2.sub19:sgpr_1024 = COPY %2.sub1 66 %2.sub20:sgpr_1024 = COPY %2.sub0 67 %2.sub21:sgpr_1024 = COPY %2.sub1 68 %2.sub22:sgpr_1024 = COPY %2.sub0 69 %2.sub23:sgpr_1024 = COPY %2.sub1 70 %2.sub24:sgpr_1024 = COPY %2.sub0 71 %2.sub25:sgpr_1024 = COPY %2.sub1 72 %2.sub26:sgpr_1024 = COPY %2.sub0 73 %2.sub27:sgpr_1024 = COPY %2.sub1 74 %2.sub28:sgpr_1024 = COPY %2.sub0 75 %2.sub29:sgpr_1024 = COPY %2.sub1 76 %3.sub1:sgpr_1024 = COPY %3.sub0 77 %3.sub2:sgpr_1024 = COPY %3.sub0 78 %3.sub3:sgpr_1024 = COPY %3.sub0 79 %3.sub4:sgpr_1024 = COPY %3.sub0 80 %3.sub5:sgpr_1024 = COPY %3.sub0 81 %3.sub6:sgpr_1024 = COPY %3.sub0 82 %3.sub7:sgpr_1024 = COPY %3.sub0 83 %3.sub8:sgpr_1024 = COPY %3.sub0 84 %3.sub9:sgpr_1024 = COPY %3.sub0 85 %3.sub10:sgpr_1024 = COPY %3.sub0 86 %3.sub11:sgpr_1024 = COPY %3.sub0 87 %3.sub12:sgpr_1024 = COPY %3.sub0 88 %3.sub13:sgpr_1024 = COPY %3.sub0 89 %3.sub14:sgpr_1024 = COPY %3.sub0 90 %3.sub15:sgpr_1024 = COPY %3.sub0 91 %3.sub16:sgpr_1024 = COPY %3.sub0 92 %3.sub17:sgpr_1024 = COPY %3.sub0 93 %3.sub18:sgpr_1024 = COPY %3.sub0 94 %3.sub19:sgpr_1024 = COPY %3.sub0 95 %3.sub20:sgpr_1024 = COPY %3.sub0 96 %3.sub21:sgpr_1024 = COPY %3.sub0 97 %3.sub22:sgpr_1024 = COPY %3.sub0 98 %3.sub23:sgpr_1024 = COPY %3.sub0 99 %3.sub24:sgpr_1024 = COPY %3.sub0 100 %3.sub25:sgpr_1024 = COPY %3.sub0 101 %3.sub26:sgpr_1024 = COPY %3.sub0 102 %3.sub27:sgpr_1024 = COPY %3.sub0 103 %3.sub28:sgpr_1024 = COPY %3.sub0 104 %3.sub29:sgpr_1024 = COPY %3.sub0 105 %3.sub30:sgpr_1024 = COPY %3.sub0 106 %3.sub31:sgpr_1024 = COPY %3.sub0 107 108 bb.2: 109 S_NOP 0, implicit %0, implicit %1, csr_amdgpu_highregs 110 S_CBRANCH_VCCNZ %bb.1, implicit undef $vcc 111 S_BRANCH %bb.2 112 113... 114