1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py 2# RUN: llc -march=amdgcn -mcpu=gfx900 -run-pass=greedy -o - -verify-machineinstrs %s | FileCheck -check-prefix=RA %s 3# RUN: llc -march=amdgcn -mcpu=gfx900 -run-pass=greedy,virtregrewriter,post-RA-sched -o - -verify-machineinstrs %s | FileCheck -check-prefix=VR %s 4 5--- 6name: splitkit_copy_bundle 7tracksRegLiveness: true 8machineFunctionInfo: 9 scratchRSrcReg: '$sgpr0_sgpr1_sgpr2_sgpr3' 10 stackPtrOffsetReg: '$sgpr32' 11body: | 12 ; RA-LABEL: name: splitkit_copy_bundle 13 ; RA: bb.0: 14 ; RA: successors: %bb.1(0x80000000) 15 ; RA: [[DEF:%[0-9]+]]:sreg_64 = IMPLICIT_DEF 16 ; RA: [[DEF1:%[0-9]+]]:sreg_64 = IMPLICIT_DEF 17 ; RA: undef %2.sub1:sgpr_1024 = S_MOV_B32 -1 18 ; RA: %2.sub0:sgpr_1024 = S_MOV_B32 -1 19 ; RA: undef %3.sub0:sgpr_1024 = S_MOV_B32 0 20 ; RA: bb.1: 21 ; RA: successors: %bb.2(0x80000000) 22 ; RA: %2.sub2:sgpr_1024 = COPY %2.sub0 23 ; RA: %2.sub3:sgpr_1024 = COPY %2.sub1 24 ; RA: %2.sub4:sgpr_1024 = COPY %2.sub0 25 ; RA: %2.sub5:sgpr_1024 = COPY %2.sub1 26 ; RA: %2.sub6:sgpr_1024 = COPY %2.sub0 27 ; RA: %2.sub7:sgpr_1024 = COPY %2.sub1 28 ; RA: %2.sub8:sgpr_1024 = COPY %2.sub0 29 ; RA: %2.sub9:sgpr_1024 = COPY %2.sub1 30 ; RA: %2.sub10:sgpr_1024 = COPY %2.sub0 31 ; RA: %2.sub11:sgpr_1024 = COPY %2.sub1 32 ; RA: %2.sub12:sgpr_1024 = COPY %2.sub0 33 ; RA: %2.sub13:sgpr_1024 = COPY %2.sub1 34 ; RA: %2.sub14:sgpr_1024 = COPY %2.sub0 35 ; RA: %2.sub15:sgpr_1024 = COPY %2.sub1 36 ; RA: %2.sub16:sgpr_1024 = COPY %2.sub0 37 ; RA: %2.sub17:sgpr_1024 = COPY %2.sub1 38 ; RA: %2.sub18:sgpr_1024 = COPY %2.sub0 39 ; RA: %2.sub19:sgpr_1024 = COPY %2.sub1 40 ; RA: %2.sub20:sgpr_1024 = COPY %2.sub0 41 ; RA: %2.sub21:sgpr_1024 = COPY %2.sub1 42 ; RA: %2.sub22:sgpr_1024 = COPY %2.sub0 43 ; RA: %2.sub23:sgpr_1024 = COPY %2.sub1 44 ; RA: %2.sub24:sgpr_1024 = COPY %2.sub0 45 ; RA: %2.sub25:sgpr_1024 = COPY %2.sub1 46 ; RA: %2.sub26:sgpr_1024 = COPY %2.sub0 47 ; RA: %2.sub27:sgpr_1024 = COPY %2.sub1 48 ; RA: %2.sub28:sgpr_1024 = COPY %2.sub0 49 ; RA: %2.sub29:sgpr_1024 = COPY %2.sub1 50 ; RA: %3.sub1:sgpr_1024 = COPY %3.sub0 51 ; RA: %3.sub2:sgpr_1024 = COPY %3.sub0 52 ; RA: %3.sub3:sgpr_1024 = COPY %3.sub0 53 ; RA: %3.sub4:sgpr_1024 = COPY %3.sub0 54 ; RA: %3.sub5:sgpr_1024 = COPY %3.sub0 55 ; RA: %3.sub6:sgpr_1024 = COPY %3.sub0 56 ; RA: %3.sub7:sgpr_1024 = COPY %3.sub0 57 ; RA: %3.sub8:sgpr_1024 = COPY %3.sub0 58 ; RA: %3.sub9:sgpr_1024 = COPY %3.sub0 59 ; RA: %3.sub10:sgpr_1024 = COPY %3.sub0 60 ; RA: %3.sub11:sgpr_1024 = COPY %3.sub0 61 ; RA: %3.sub12:sgpr_1024 = COPY %3.sub0 62 ; RA: %3.sub13:sgpr_1024 = COPY %3.sub0 63 ; RA: %3.sub14:sgpr_1024 = COPY %3.sub0 64 ; RA: %3.sub15:sgpr_1024 = COPY %3.sub0 65 ; RA: %3.sub16:sgpr_1024 = COPY %3.sub0 66 ; RA: %3.sub17:sgpr_1024 = COPY %3.sub0 67 ; RA: %3.sub18:sgpr_1024 = COPY %3.sub0 68 ; RA: %3.sub19:sgpr_1024 = COPY %3.sub0 69 ; RA: %3.sub20:sgpr_1024 = COPY %3.sub0 70 ; RA: %3.sub21:sgpr_1024 = COPY %3.sub0 71 ; RA: %3.sub22:sgpr_1024 = COPY %3.sub0 72 ; RA: %3.sub23:sgpr_1024 = COPY %3.sub0 73 ; RA: %3.sub24:sgpr_1024 = COPY %3.sub0 74 ; RA: %3.sub25:sgpr_1024 = COPY %3.sub0 75 ; RA: %3.sub26:sgpr_1024 = COPY %3.sub0 76 ; RA: %3.sub27:sgpr_1024 = COPY %3.sub0 77 ; RA: %3.sub28:sgpr_1024 = COPY %3.sub0 78 ; RA: %3.sub29:sgpr_1024 = COPY %3.sub0 79 ; RA: %3.sub30:sgpr_1024 = COPY %3.sub0 80 ; RA: %3.sub31:sgpr_1024 = COPY %3.sub0 81 ; RA: bb.2: 82 ; RA: successors: %bb.1(0x40000000), %bb.2(0x40000000) 83 ; RA: S_NOP 0, csr_amdgpu, implicit [[DEF]], implicit [[DEF1]] 84 ; RA: S_CBRANCH_VCCNZ %bb.1, implicit undef $vcc 85 ; RA: S_BRANCH %bb.2 86 ; VR-LABEL: name: splitkit_copy_bundle 87 ; VR: bb.0: 88 ; VR: successors: %bb.1(0x80000000) 89 ; VR: renamable $sgpr37 = S_MOV_B32 -1 90 ; VR: renamable $sgpr36 = S_MOV_B32 -1 91 ; VR: renamable $sgpr68 = S_MOV_B32 0 92 ; VR: renamable $sgpr30_sgpr31 = IMPLICIT_DEF 93 ; VR: renamable $sgpr34_sgpr35 = IMPLICIT_DEF 94 ; VR: bb.1: 95 ; VR: successors: %bb.2(0x80000000) 96 ; VR: liveins: $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:0x000000000000000F, $sgpr68_sgpr69_sgpr70_sgpr71_sgpr72_sgpr73_sgpr74_sgpr75_sgpr76_sgpr77_sgpr78_sgpr79_sgpr80_sgpr81_sgpr82_sgpr83_sgpr84_sgpr85_sgpr86_sgpr87_sgpr88_sgpr89_sgpr90_sgpr91_sgpr92_sgpr93_sgpr94_sgpr95_sgpr96_sgpr97_sgpr98_sgpr99:0x0000000000000003, $sgpr30_sgpr31, $sgpr34_sgpr35 97 ; VR: renamable $sgpr38 = COPY renamable $sgpr36 98 ; VR: renamable $sgpr39 = COPY renamable $sgpr37 99 ; VR: renamable $sgpr40 = COPY renamable $sgpr36 100 ; VR: renamable $sgpr41 = COPY renamable $sgpr37 101 ; VR: renamable $sgpr42 = COPY renamable $sgpr36 102 ; VR: renamable $sgpr43 = COPY renamable $sgpr37 103 ; VR: renamable $sgpr44 = COPY renamable $sgpr36 104 ; VR: renamable $sgpr45 = COPY renamable $sgpr37 105 ; VR: renamable $sgpr46 = COPY renamable $sgpr36 106 ; VR: renamable $sgpr47 = COPY renamable $sgpr37 107 ; VR: renamable $sgpr48 = COPY renamable $sgpr36 108 ; VR: renamable $sgpr49 = COPY renamable $sgpr37 109 ; VR: renamable $sgpr50 = COPY renamable $sgpr36 110 ; VR: renamable $sgpr51 = COPY renamable $sgpr37 111 ; VR: renamable $sgpr52 = COPY renamable $sgpr36 112 ; VR: renamable $sgpr53 = COPY renamable $sgpr37 113 ; VR: renamable $sgpr54 = COPY renamable $sgpr36 114 ; VR: renamable $sgpr55 = COPY renamable $sgpr37 115 ; VR: renamable $sgpr56 = COPY renamable $sgpr36 116 ; VR: renamable $sgpr57 = COPY renamable $sgpr37 117 ; VR: renamable $sgpr58 = COPY renamable $sgpr36 118 ; VR: renamable $sgpr59 = COPY renamable $sgpr37 119 ; VR: renamable $sgpr60 = COPY renamable $sgpr36 120 ; VR: renamable $sgpr61 = COPY renamable $sgpr37 121 ; VR: renamable $sgpr62 = COPY renamable $sgpr36 122 ; VR: renamable $sgpr63 = COPY renamable $sgpr37 123 ; VR: renamable $sgpr64 = COPY renamable $sgpr36 124 ; VR: renamable $sgpr65 = COPY renamable $sgpr37 125 ; VR: renamable $sgpr69 = COPY renamable $sgpr68 126 ; VR: renamable $sgpr70 = COPY renamable $sgpr68 127 ; VR: renamable $sgpr71 = COPY renamable $sgpr68 128 ; VR: renamable $sgpr72 = COPY renamable $sgpr68 129 ; VR: renamable $sgpr73 = COPY renamable $sgpr68 130 ; VR: renamable $sgpr74 = COPY renamable $sgpr68 131 ; VR: renamable $sgpr75 = COPY renamable $sgpr68 132 ; VR: renamable $sgpr76 = COPY renamable $sgpr68 133 ; VR: renamable $sgpr77 = COPY renamable $sgpr68 134 ; VR: renamable $sgpr78 = COPY renamable $sgpr68 135 ; VR: renamable $sgpr79 = COPY renamable $sgpr68 136 ; VR: renamable $sgpr80 = COPY renamable $sgpr68 137 ; VR: renamable $sgpr81 = COPY renamable $sgpr68 138 ; VR: renamable $sgpr82 = COPY renamable $sgpr68 139 ; VR: renamable $sgpr83 = COPY renamable $sgpr68 140 ; VR: renamable $sgpr84 = COPY renamable $sgpr68 141 ; VR: renamable $sgpr85 = COPY renamable $sgpr68 142 ; VR: renamable $sgpr86 = COPY renamable $sgpr68 143 ; VR: renamable $sgpr87 = COPY renamable $sgpr68 144 ; VR: renamable $sgpr88 = COPY renamable $sgpr68 145 ; VR: renamable $sgpr89 = COPY renamable $sgpr68 146 ; VR: renamable $sgpr90 = COPY renamable $sgpr68 147 ; VR: renamable $sgpr91 = COPY renamable $sgpr68 148 ; VR: renamable $sgpr92 = COPY renamable $sgpr68 149 ; VR: renamable $sgpr93 = COPY renamable $sgpr68 150 ; VR: renamable $sgpr94 = COPY renamable $sgpr68 151 ; VR: renamable $sgpr95 = COPY renamable $sgpr68 152 ; VR: renamable $sgpr96 = COPY renamable $sgpr68 153 ; VR: renamable $sgpr97 = COPY renamable $sgpr68 154 ; VR: renamable $sgpr98 = COPY renamable $sgpr68 155 ; VR: renamable $sgpr99 = COPY renamable $sgpr68 156 ; VR: bb.2: 157 ; VR: successors: %bb.1(0x40000000), %bb.2(0x40000000) 158 ; VR: liveins: $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:0x000000000000000F, $sgpr68_sgpr69_sgpr70_sgpr71_sgpr72_sgpr73_sgpr74_sgpr75_sgpr76_sgpr77_sgpr78_sgpr79_sgpr80_sgpr81_sgpr82_sgpr83_sgpr84_sgpr85_sgpr86_sgpr87_sgpr88_sgpr89_sgpr90_sgpr91_sgpr92_sgpr93_sgpr94_sgpr95_sgpr96_sgpr97_sgpr98_sgpr99:0x0000000000000003, $sgpr30_sgpr31, $sgpr34_sgpr35 159 ; VR: S_NOP 0, csr_amdgpu, implicit renamable $sgpr30_sgpr31, implicit renamable $sgpr34_sgpr35 160 ; VR: S_CBRANCH_VCCNZ %bb.1, implicit undef $vcc 161 ; VR: S_BRANCH %bb.2 162 bb.0: 163 %0:sreg_64 = IMPLICIT_DEF 164 %1:sreg_64 = IMPLICIT_DEF 165 undef %2.sub1:sgpr_1024 = S_MOV_B32 -1 166 %2.sub0:sgpr_1024 = S_MOV_B32 -1 167 undef %3.sub0:sgpr_1024 = S_MOV_B32 0 168 169 bb.1: 170 %2.sub2:sgpr_1024 = COPY %2.sub0 171 %2.sub3:sgpr_1024 = COPY %2.sub1 172 %2.sub4:sgpr_1024 = COPY %2.sub0 173 %2.sub5:sgpr_1024 = COPY %2.sub1 174 %2.sub6:sgpr_1024 = COPY %2.sub0 175 %2.sub7:sgpr_1024 = COPY %2.sub1 176 %2.sub8:sgpr_1024 = COPY %2.sub0 177 %2.sub9:sgpr_1024 = COPY %2.sub1 178 %2.sub10:sgpr_1024 = COPY %2.sub0 179 %2.sub11:sgpr_1024 = COPY %2.sub1 180 %2.sub12:sgpr_1024 = COPY %2.sub0 181 %2.sub13:sgpr_1024 = COPY %2.sub1 182 %2.sub14:sgpr_1024 = COPY %2.sub0 183 %2.sub15:sgpr_1024 = COPY %2.sub1 184 %2.sub16:sgpr_1024 = COPY %2.sub0 185 %2.sub17:sgpr_1024 = COPY %2.sub1 186 %2.sub18:sgpr_1024 = COPY %2.sub0 187 %2.sub19:sgpr_1024 = COPY %2.sub1 188 %2.sub20:sgpr_1024 = COPY %2.sub0 189 %2.sub21:sgpr_1024 = COPY %2.sub1 190 %2.sub22:sgpr_1024 = COPY %2.sub0 191 %2.sub23:sgpr_1024 = COPY %2.sub1 192 %2.sub24:sgpr_1024 = COPY %2.sub0 193 %2.sub25:sgpr_1024 = COPY %2.sub1 194 %2.sub26:sgpr_1024 = COPY %2.sub0 195 %2.sub27:sgpr_1024 = COPY %2.sub1 196 %2.sub28:sgpr_1024 = COPY %2.sub0 197 %2.sub29:sgpr_1024 = COPY %2.sub1 198 %3.sub1:sgpr_1024 = COPY %3.sub0 199 %3.sub2:sgpr_1024 = COPY %3.sub0 200 %3.sub3:sgpr_1024 = COPY %3.sub0 201 %3.sub4:sgpr_1024 = COPY %3.sub0 202 %3.sub5:sgpr_1024 = COPY %3.sub0 203 %3.sub6:sgpr_1024 = COPY %3.sub0 204 %3.sub7:sgpr_1024 = COPY %3.sub0 205 %3.sub8:sgpr_1024 = COPY %3.sub0 206 %3.sub9:sgpr_1024 = COPY %3.sub0 207 %3.sub10:sgpr_1024 = COPY %3.sub0 208 %3.sub11:sgpr_1024 = COPY %3.sub0 209 %3.sub12:sgpr_1024 = COPY %3.sub0 210 %3.sub13:sgpr_1024 = COPY %3.sub0 211 %3.sub14:sgpr_1024 = COPY %3.sub0 212 %3.sub15:sgpr_1024 = COPY %3.sub0 213 %3.sub16:sgpr_1024 = COPY %3.sub0 214 %3.sub17:sgpr_1024 = COPY %3.sub0 215 %3.sub18:sgpr_1024 = COPY %3.sub0 216 %3.sub19:sgpr_1024 = COPY %3.sub0 217 %3.sub20:sgpr_1024 = COPY %3.sub0 218 %3.sub21:sgpr_1024 = COPY %3.sub0 219 %3.sub22:sgpr_1024 = COPY %3.sub0 220 %3.sub23:sgpr_1024 = COPY %3.sub0 221 %3.sub24:sgpr_1024 = COPY %3.sub0 222 %3.sub25:sgpr_1024 = COPY %3.sub0 223 %3.sub26:sgpr_1024 = COPY %3.sub0 224 %3.sub27:sgpr_1024 = COPY %3.sub0 225 %3.sub28:sgpr_1024 = COPY %3.sub0 226 %3.sub29:sgpr_1024 = COPY %3.sub0 227 %3.sub30:sgpr_1024 = COPY %3.sub0 228 %3.sub31:sgpr_1024 = COPY %3.sub0 229 230 bb.2: 231 S_NOP 0, implicit %0, implicit %1, csr_amdgpu 232 S_CBRANCH_VCCNZ %bb.1, implicit undef $vcc 233 S_BRANCH %bb.2 234 235... 236 237--- 238name: splitkit_copy_unbundle_reorder 239tracksRegLiveness: true 240machineFunctionInfo: 241 scratchRSrcReg: '$sgpr0_sgpr1_sgpr2_sgpr3' 242 stackPtrOffsetReg: '$sgpr32' 243body: | 244 bb.0: 245 ; RA-LABEL: name: splitkit_copy_unbundle_reorder 246 ; RA: [[DEF:%[0-9]+]]:sgpr_128 = IMPLICIT_DEF 247 ; RA: [[DEF1:%[0-9]+]]:sreg_64 = IMPLICIT_DEF 248 ; RA: [[DEF2:%[0-9]+]]:sgpr_512 = IMPLICIT_DEF 249 ; RA: [[DEF2]].sub4:sgpr_512 = S_MOV_B32 -1 250 ; RA: [[DEF2]].sub5:sgpr_512 = S_MOV_B32 -1 251 ; RA: [[DEF2]].sub10:sgpr_512 = S_MOV_B32 -1 252 ; RA: [[DEF2]].sub11:sgpr_512 = S_MOV_B32 -1 253 ; RA: [[DEF2]].sub7:sgpr_512 = S_MOV_B32 -1 254 ; RA: [[DEF2]].sub8:sgpr_512 = S_MOV_B32 -1 255 ; RA: [[DEF2]].sub13:sgpr_512 = S_MOV_B32 -1 256 ; RA: [[DEF2]].sub14:sgpr_512 = S_MOV_B32 -1 257 ; RA: undef %15.sub4_sub5:sgpr_512 = COPY [[DEF2]].sub4_sub5 { 258 ; RA: internal %15.sub10_sub11:sgpr_512 = COPY [[DEF2]].sub10_sub11 259 ; RA: internal %15.sub7:sgpr_512 = COPY [[DEF2]].sub7 260 ; RA: internal %15.sub8:sgpr_512 = COPY [[DEF2]].sub8 261 ; RA: internal %15.sub13:sgpr_512 = COPY [[DEF2]].sub13 262 ; RA: internal %15.sub14:sgpr_512 = COPY [[DEF2]].sub14 263 ; RA: } 264 ; RA: SI_SPILL_S512_SAVE %15, %stack.0, implicit $exec, implicit $sgpr32 :: (store (s512) into %stack.0, align 4, addrspace 5) 265 ; RA: 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 $sgpr98 266 ; RA: [[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) 267 ; RA: undef %14.sub4_sub5:sgpr_512 = COPY [[SI_SPILL_S512_RESTORE]].sub4_sub5 { 268 ; RA: internal %14.sub10_sub11:sgpr_512 = COPY [[SI_SPILL_S512_RESTORE]].sub10_sub11 269 ; RA: internal %14.sub7:sgpr_512 = COPY [[SI_SPILL_S512_RESTORE]].sub7 270 ; RA: internal %14.sub8:sgpr_512 = COPY [[SI_SPILL_S512_RESTORE]].sub8 271 ; RA: internal %14.sub13:sgpr_512 = COPY [[SI_SPILL_S512_RESTORE]].sub13 272 ; RA: internal %14.sub14:sgpr_512 = COPY [[SI_SPILL_S512_RESTORE]].sub14 273 ; RA: } 274 ; RA: [[S_BUFFER_LOAD_DWORD_SGPR:%[0-9]+]]:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR [[DEF]], %14.sub4, 0 :: (dereferenceable invariant load (s32)) 275 ; RA: [[S_BUFFER_LOAD_DWORD_SGPR1:%[0-9]+]]:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR [[DEF]], %14.sub5, 0 :: (dereferenceable invariant load (s32)) 276 ; RA: [[S_BUFFER_LOAD_DWORD_SGPR2:%[0-9]+]]:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR [[DEF]], %14.sub10, 0 :: (dereferenceable invariant load (s32)) 277 ; RA: [[S_BUFFER_LOAD_DWORD_SGPR3:%[0-9]+]]:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR [[DEF]], %14.sub11, 0 :: (dereferenceable invariant load (s32)) 278 ; RA: [[S_BUFFER_LOAD_DWORD_SGPR4:%[0-9]+]]:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR [[DEF]], %14.sub7, 0 :: (dereferenceable invariant load (s32)) 279 ; RA: [[S_BUFFER_LOAD_DWORD_SGPR5:%[0-9]+]]:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR [[DEF]], %14.sub8, 0 :: (dereferenceable invariant load (s32)) 280 ; RA: [[S_BUFFER_LOAD_DWORD_SGPR6:%[0-9]+]]:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR [[DEF]], %14.sub13, 0 :: (dereferenceable invariant load (s32)) 281 ; RA: [[S_BUFFER_LOAD_DWORD_SGPR7:%[0-9]+]]:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR [[DEF]], %14.sub14, 0 :: (dereferenceable invariant load (s32)) 282 ; RA: 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]] 283 ; VR-LABEL: name: splitkit_copy_unbundle_reorder 284 ; VR: renamable $sgpr12_sgpr13_sgpr14_sgpr15_sgpr16_sgpr17_sgpr18_sgpr19_sgpr20_sgpr21_sgpr22_sgpr23_sgpr24_sgpr25_sgpr26_sgpr27 = IMPLICIT_DEF 285 ; VR: renamable $sgpr16 = S_MOV_B32 -1 286 ; VR: renamable $sgpr17 = S_MOV_B32 -1 287 ; VR: renamable $sgpr22 = S_MOV_B32 -1 288 ; VR: renamable $sgpr23 = S_MOV_B32 -1 289 ; VR: renamable $sgpr19 = S_MOV_B32 -1 290 ; VR: renamable $sgpr20 = S_MOV_B32 -1 291 ; VR: renamable $sgpr25 = S_MOV_B32 -1 292 ; VR: renamable $sgpr26 = S_MOV_B32 -1 293 ; VR: 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) 294 ; VR: 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 $sgpr98 295 ; VR: 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) 296 ; VR: renamable $sgpr12_sgpr13 = COPY killed renamable $sgpr16_sgpr17 297 ; VR: renamable $sgpr15 = COPY killed renamable $sgpr19 298 ; VR: renamable $sgpr18_sgpr19 = COPY killed renamable $sgpr22_sgpr23 299 ; VR: renamable $sgpr16 = COPY killed renamable $sgpr20 300 ; VR: renamable $sgpr21 = COPY killed renamable $sgpr25 301 ; VR: renamable $sgpr22 = COPY killed renamable $sgpr26 302 ; VR: renamable $sgpr4_sgpr5_sgpr6_sgpr7 = IMPLICIT_DEF 303 ; VR: renamable $sgpr8 = S_BUFFER_LOAD_DWORD_SGPR renamable $sgpr4_sgpr5_sgpr6_sgpr7, killed renamable $sgpr12, 0 :: (dereferenceable invariant load (s32)) 304 ; VR: renamable $sgpr9 = S_BUFFER_LOAD_DWORD_SGPR renamable $sgpr4_sgpr5_sgpr6_sgpr7, killed renamable $sgpr13, 0 :: (dereferenceable invariant load (s32)) 305 ; VR: renamable $sgpr14 = S_BUFFER_LOAD_DWORD_SGPR renamable $sgpr4_sgpr5_sgpr6_sgpr7, killed renamable $sgpr15, 0 :: (dereferenceable invariant load (s32)) 306 ; VR: renamable $sgpr10_sgpr11 = IMPLICIT_DEF 307 ; VR: renamable $sgpr17 = S_BUFFER_LOAD_DWORD_SGPR renamable $sgpr4_sgpr5_sgpr6_sgpr7, killed renamable $sgpr22, 0 :: (dereferenceable invariant load (s32)) 308 ; VR: renamable $sgpr15 = S_BUFFER_LOAD_DWORD_SGPR renamable $sgpr4_sgpr5_sgpr6_sgpr7, killed renamable $sgpr16, 0 :: (dereferenceable invariant load (s32)) 309 ; VR: renamable $sgpr12 = S_BUFFER_LOAD_DWORD_SGPR renamable $sgpr4_sgpr5_sgpr6_sgpr7, killed renamable $sgpr18, 0 :: (dereferenceable invariant load (s32)) 310 ; VR: renamable $sgpr13 = S_BUFFER_LOAD_DWORD_SGPR renamable $sgpr4_sgpr5_sgpr6_sgpr7, killed renamable $sgpr19, 0 :: (dereferenceable invariant load (s32)) 311 ; VR: renamable $sgpr16 = S_BUFFER_LOAD_DWORD_SGPR renamable $sgpr4_sgpr5_sgpr6_sgpr7, killed renamable $sgpr21, 0 :: (dereferenceable invariant load (s32)) 312 ; VR: 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 $sgpr17 313 %0:sgpr_128 = IMPLICIT_DEF 314 %1:sreg_64 = IMPLICIT_DEF 315 %2:sgpr_512 = IMPLICIT_DEF 316 317 %2.sub4:sgpr_512 = S_MOV_B32 -1 318 %2.sub5:sgpr_512 = S_MOV_B32 -1 319 %2.sub10:sgpr_512 = S_MOV_B32 -1 320 %2.sub11:sgpr_512 = S_MOV_B32 -1 321 %2.sub7:sgpr_512 = S_MOV_B32 -1 322 %2.sub8:sgpr_512 = S_MOV_B32 -1 323 %2.sub13:sgpr_512 = S_MOV_B32 -1 324 %2.sub14:sgpr_512 = S_MOV_B32 -1 325 326 ; Clobber registers 327 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 $sgpr98 328 329 %5:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR %0:sgpr_128, %2.sub4:sgpr_512, 0 :: (dereferenceable invariant load (s32)) 330 %6:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR %0:sgpr_128, %2.sub5:sgpr_512, 0 :: (dereferenceable invariant load (s32)) 331 %7:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR %0:sgpr_128, %2.sub10:sgpr_512, 0 :: (dereferenceable invariant load (s32)) 332 %8:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR %0:sgpr_128, %2.sub11:sgpr_512, 0 :: (dereferenceable invariant load (s32)) 333 %9:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR %0:sgpr_128, %2.sub7:sgpr_512, 0 :: (dereferenceable invariant load (s32)) 334 %10:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR %0:sgpr_128, %2.sub8:sgpr_512, 0 :: (dereferenceable invariant load (s32)) 335 %11:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR %0:sgpr_128, %2.sub13:sgpr_512, 0 :: (dereferenceable invariant load (s32)) 336 %12:sreg_32_xm0_xexec = S_BUFFER_LOAD_DWORD_SGPR %0:sgpr_128, %2.sub14:sgpr_512, 0 :: (dereferenceable invariant load (s32)) 337 338 S_NOP 0, implicit %0, implicit %1, implicit %5, implicit %6, implicit %7, implicit %8, implicit %9, implicit %10, implicit %11, implicit %12 339 340... 341