1053 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -mcpu=tahiti -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=0 -disable-gisel-legality-check -o - %s | FileCheck -check-prefix=GFX6 %s3# RUN: llc -mtriple=amdgcn -mcpu=hawaii -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=0 -disable-gisel-legality-check -o - %s | FileCheck -check-prefix=GFX7 %s4# RUN: llc -mtriple=amdgcn -mcpu=fiji -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=0 -disable-gisel-legality-check -o - %s | FileCheck -check-prefix=GFX7 %s5# RUN: llc -mtriple=amdgcn -mcpu=gfx900 -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=0 -o - %s | FileCheck -check-prefix=GFX9 %s6# RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -mattr=+cumode -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=0 -o - %s | FileCheck -check-prefix=GFX10 %s7# RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=0 -o - %s | FileCheck -check-prefix=GFX9 %s8 9---10 11name: load_local_s32_from_412legalized: true13regBankSelected: true14tracksRegLiveness: true15 16body: |17 bb.0:18 liveins: $vgpr019 20 ; GFX6-LABEL: name: load_local_s32_from_421 ; GFX6: liveins: $vgpr022 ; GFX6-NEXT: {{ $}}23 ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr024 ; GFX6-NEXT: $m0 = S_MOV_B32 -125 ; GFX6-NEXT: [[DS_READ_B32_:%[0-9]+]]:vgpr_32 = DS_READ_B32 [[COPY]], 0, 0, implicit $m0, implicit $exec :: (load (s32), addrspace 3)26 ; GFX6-NEXT: $vgpr0 = COPY [[DS_READ_B32_]]27 ;28 ; GFX7-LABEL: name: load_local_s32_from_429 ; GFX7: liveins: $vgpr030 ; GFX7-NEXT: {{ $}}31 ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr032 ; GFX7-NEXT: $m0 = S_MOV_B32 -133 ; GFX7-NEXT: [[DS_READ_B32_:%[0-9]+]]:vgpr_32 = DS_READ_B32 [[COPY]], 0, 0, implicit $m0, implicit $exec :: (load (s32), addrspace 3)34 ; GFX7-NEXT: $vgpr0 = COPY [[DS_READ_B32_]]35 ;36 ; GFX9-LABEL: name: load_local_s32_from_437 ; GFX9: liveins: $vgpr038 ; GFX9-NEXT: {{ $}}39 ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr040 ; GFX9-NEXT: [[DS_READ_B32_gfx9_:%[0-9]+]]:vgpr_32 = DS_READ_B32_gfx9 [[COPY]], 0, 0, implicit $exec :: (load (s32), addrspace 3)41 ; GFX9-NEXT: $vgpr0 = COPY [[DS_READ_B32_gfx9_]]42 ;43 ; GFX10-LABEL: name: load_local_s32_from_444 ; GFX10: liveins: $vgpr045 ; GFX10-NEXT: {{ $}}46 ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr047 ; GFX10-NEXT: [[DS_READ_B32_gfx9_:%[0-9]+]]:vgpr_32 = DS_READ_B32_gfx9 [[COPY]], 0, 0, implicit $exec :: (load (s32), addrspace 3)48 ; GFX10-NEXT: $vgpr0 = COPY [[DS_READ_B32_gfx9_]]49 %0:vgpr(p3) = COPY $vgpr050 %1:vgpr(s32) = G_LOAD %0 :: (load (s32), align 4, addrspace 3)51 $vgpr0 = COPY %152 53...54 55---56 57name: load_local_s32_from_258legalized: true59regBankSelected: true60tracksRegLiveness: true61 62body: |63 bb.0:64 liveins: $vgpr065 66 ; GFX6-LABEL: name: load_local_s32_from_267 ; GFX6: liveins: $vgpr068 ; GFX6-NEXT: {{ $}}69 ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr070 ; GFX6-NEXT: $m0 = S_MOV_B32 -171 ; GFX6-NEXT: [[DS_READ_U16_:%[0-9]+]]:vgpr_32 = DS_READ_U16 [[COPY]], 0, 0, implicit $m0, implicit $exec :: (load (s16), addrspace 3)72 ; GFX6-NEXT: $vgpr0 = COPY [[DS_READ_U16_]]73 ;74 ; GFX7-LABEL: name: load_local_s32_from_275 ; GFX7: liveins: $vgpr076 ; GFX7-NEXT: {{ $}}77 ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr078 ; GFX7-NEXT: $m0 = S_MOV_B32 -179 ; GFX7-NEXT: [[DS_READ_U16_:%[0-9]+]]:vgpr_32 = DS_READ_U16 [[COPY]], 0, 0, implicit $m0, implicit $exec :: (load (s16), addrspace 3)80 ; GFX7-NEXT: $vgpr0 = COPY [[DS_READ_U16_]]81 ;82 ; GFX9-LABEL: name: load_local_s32_from_283 ; GFX9: liveins: $vgpr084 ; GFX9-NEXT: {{ $}}85 ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr086 ; GFX9-NEXT: [[DS_READ_U16_gfx9_:%[0-9]+]]:vgpr_32 = DS_READ_U16_gfx9 [[COPY]], 0, 0, implicit $exec :: (load (s16), addrspace 3)87 ; GFX9-NEXT: $vgpr0 = COPY [[DS_READ_U16_gfx9_]]88 ;89 ; GFX10-LABEL: name: load_local_s32_from_290 ; GFX10: liveins: $vgpr091 ; GFX10-NEXT: {{ $}}92 ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr093 ; GFX10-NEXT: [[DS_READ_U16_gfx9_:%[0-9]+]]:vgpr_32 = DS_READ_U16_gfx9 [[COPY]], 0, 0, implicit $exec :: (load (s16), addrspace 3)94 ; GFX10-NEXT: $vgpr0 = COPY [[DS_READ_U16_gfx9_]]95 %0:vgpr(p3) = COPY $vgpr096 %1:vgpr(s32) = G_LOAD %0 :: (load (s16), align 2, addrspace 3)97 $vgpr0 = COPY %198 99...100 101---102 103name: load_local_s32_from_1104legalized: true105regBankSelected: true106tracksRegLiveness: true107machineFunctionInfo:108 scratchRSrcReg: $sgpr0_sgpr1_sgpr2_sgpr3109 stackPtrOffsetReg: $sgpr32110 111body: |112 bb.0:113 liveins: $vgpr0114 115 ; GFX6-LABEL: name: load_local_s32_from_1116 ; GFX6: liveins: $vgpr0117 ; GFX6-NEXT: {{ $}}118 ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0119 ; GFX6-NEXT: $m0 = S_MOV_B32 -1120 ; GFX6-NEXT: [[DS_READ_U8_:%[0-9]+]]:vgpr_32 = DS_READ_U8 [[COPY]], 0, 0, implicit $m0, implicit $exec :: (load (s8), addrspace 3)121 ; GFX6-NEXT: $vgpr0 = COPY [[DS_READ_U8_]]122 ;123 ; GFX7-LABEL: name: load_local_s32_from_1124 ; GFX7: liveins: $vgpr0125 ; GFX7-NEXT: {{ $}}126 ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0127 ; GFX7-NEXT: $m0 = S_MOV_B32 -1128 ; GFX7-NEXT: [[DS_READ_U8_:%[0-9]+]]:vgpr_32 = DS_READ_U8 [[COPY]], 0, 0, implicit $m0, implicit $exec :: (load (s8), addrspace 3)129 ; GFX7-NEXT: $vgpr0 = COPY [[DS_READ_U8_]]130 ;131 ; GFX9-LABEL: name: load_local_s32_from_1132 ; GFX9: liveins: $vgpr0133 ; GFX9-NEXT: {{ $}}134 ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0135 ; GFX9-NEXT: [[DS_READ_U8_gfx9_:%[0-9]+]]:vgpr_32 = DS_READ_U8_gfx9 [[COPY]], 0, 0, implicit $exec :: (load (s8), addrspace 3)136 ; GFX9-NEXT: $vgpr0 = COPY [[DS_READ_U8_gfx9_]]137 ;138 ; GFX10-LABEL: name: load_local_s32_from_1139 ; GFX10: liveins: $vgpr0140 ; GFX10-NEXT: {{ $}}141 ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0142 ; GFX10-NEXT: [[DS_READ_U8_gfx9_:%[0-9]+]]:vgpr_32 = DS_READ_U8_gfx9 [[COPY]], 0, 0, implicit $exec :: (load (s8), addrspace 3)143 ; GFX10-NEXT: $vgpr0 = COPY [[DS_READ_U8_gfx9_]]144 %0:vgpr(p3) = COPY $vgpr0145 %1:vgpr(s32) = G_LOAD %0 :: (load (s8), align 1, addrspace 3)146 $vgpr0 = COPY %1147 148...149 150---151 152name: load_local_v2s32153legalized: true154regBankSelected: true155tracksRegLiveness: true156 157body: |158 bb.0:159 liveins: $vgpr0160 161 ; GFX6-LABEL: name: load_local_v2s32162 ; GFX6: liveins: $vgpr0163 ; GFX6-NEXT: {{ $}}164 ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0165 ; GFX6-NEXT: $m0 = S_MOV_B32 -1166 ; GFX6-NEXT: [[DS_READ_B64_:%[0-9]+]]:vreg_64 = DS_READ_B64 [[COPY]], 0, 0, implicit $m0, implicit $exec :: (load (<2 x s32>), addrspace 3)167 ; GFX6-NEXT: $vgpr0_vgpr1 = COPY [[DS_READ_B64_]]168 ;169 ; GFX7-LABEL: name: load_local_v2s32170 ; GFX7: liveins: $vgpr0171 ; GFX7-NEXT: {{ $}}172 ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0173 ; GFX7-NEXT: $m0 = S_MOV_B32 -1174 ; GFX7-NEXT: [[DS_READ_B64_:%[0-9]+]]:vreg_64 = DS_READ_B64 [[COPY]], 0, 0, implicit $m0, implicit $exec :: (load (<2 x s32>), addrspace 3)175 ; GFX7-NEXT: $vgpr0_vgpr1 = COPY [[DS_READ_B64_]]176 ;177 ; GFX9-LABEL: name: load_local_v2s32178 ; GFX9: liveins: $vgpr0179 ; GFX9-NEXT: {{ $}}180 ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0181 ; GFX9-NEXT: [[DS_READ_B64_gfx9_:%[0-9]+]]:vreg_64 = DS_READ_B64_gfx9 [[COPY]], 0, 0, implicit $exec :: (load (<2 x s32>), addrspace 3)182 ; GFX9-NEXT: $vgpr0_vgpr1 = COPY [[DS_READ_B64_gfx9_]]183 ;184 ; GFX10-LABEL: name: load_local_v2s32185 ; GFX10: liveins: $vgpr0186 ; GFX10-NEXT: {{ $}}187 ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0188 ; GFX10-NEXT: [[DS_READ_B64_gfx9_:%[0-9]+]]:vreg_64 = DS_READ_B64_gfx9 [[COPY]], 0, 0, implicit $exec :: (load (<2 x s32>), addrspace 3)189 ; GFX10-NEXT: $vgpr0_vgpr1 = COPY [[DS_READ_B64_gfx9_]]190 %0:vgpr(p3) = COPY $vgpr0191 %1:vgpr(<2 x s32>) = G_LOAD %0 :: (load (<2 x s32>), align 8, addrspace 3)192 $vgpr0_vgpr1 = COPY %1193 194...195 196---197 198name: load_local_v2s32_align4199legalized: true200regBankSelected: true201tracksRegLiveness: true202 203body: |204 bb.0:205 liveins: $vgpr0206 207 ; GFX6-LABEL: name: load_local_v2s32_align4208 ; GFX6: liveins: $vgpr0209 ; GFX6-NEXT: {{ $}}210 ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr(p3) = COPY $vgpr0211 ; GFX6-NEXT: $m0 = S_MOV_B32 -1212 ; GFX6-NEXT: [[LOAD:%[0-9]+]]:vreg_64(<2 x s32>) = G_LOAD [[COPY]](p3) :: (load (<2 x s32>), align 4, addrspace 3)213 ; GFX6-NEXT: $vgpr0_vgpr1 = COPY [[LOAD]](<2 x s32>)214 ;215 ; GFX7-LABEL: name: load_local_v2s32_align4216 ; GFX7: liveins: $vgpr0217 ; GFX7-NEXT: {{ $}}218 ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0219 ; GFX7-NEXT: $m0 = S_MOV_B32 -1220 ; GFX7-NEXT: [[DS_READ2_B32_:%[0-9]+]]:vreg_64 = DS_READ2_B32 [[COPY]], 0, 1, 0, implicit $m0, implicit $exec :: (load (<2 x s32>), align 4, addrspace 3)221 ; GFX7-NEXT: $vgpr0_vgpr1 = COPY [[DS_READ2_B32_]]222 ;223 ; GFX9-LABEL: name: load_local_v2s32_align4224 ; GFX9: liveins: $vgpr0225 ; GFX9-NEXT: {{ $}}226 ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0227 ; GFX9-NEXT: [[DS_READ2_B32_gfx9_:%[0-9]+]]:vreg_64 = DS_READ2_B32_gfx9 [[COPY]], 0, 1, 0, implicit $exec :: (load (<2 x s32>), align 4, addrspace 3)228 ; GFX9-NEXT: $vgpr0_vgpr1 = COPY [[DS_READ2_B32_gfx9_]]229 ;230 ; GFX10-LABEL: name: load_local_v2s32_align4231 ; GFX10: liveins: $vgpr0232 ; GFX10-NEXT: {{ $}}233 ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0234 ; GFX10-NEXT: [[DS_READ2_B32_gfx9_:%[0-9]+]]:vreg_64 = DS_READ2_B32_gfx9 [[COPY]], 0, 1, 0, implicit $exec :: (load (<2 x s32>), align 4, addrspace 3)235 ; GFX10-NEXT: $vgpr0_vgpr1 = COPY [[DS_READ2_B32_gfx9_]]236 %0:vgpr(p3) = COPY $vgpr0237 %1:vgpr(<2 x s32>) = G_LOAD %0 :: (load (<2 x s32>), align 4, addrspace 3)238 $vgpr0_vgpr1 = COPY %1239 240...241 242---243 244name: load_local_s64245legalized: true246regBankSelected: true247tracksRegLiveness: true248 249body: |250 bb.0:251 liveins: $vgpr0252 253 ; GFX6-LABEL: name: load_local_s64254 ; GFX6: liveins: $vgpr0255 ; GFX6-NEXT: {{ $}}256 ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0257 ; GFX6-NEXT: $m0 = S_MOV_B32 -1258 ; GFX6-NEXT: [[DS_READ_B64_:%[0-9]+]]:vreg_64 = DS_READ_B64 [[COPY]], 0, 0, implicit $m0, implicit $exec :: (load (s64), addrspace 3)259 ; GFX6-NEXT: $vgpr0_vgpr1 = COPY [[DS_READ_B64_]]260 ;261 ; GFX7-LABEL: name: load_local_s64262 ; GFX7: liveins: $vgpr0263 ; GFX7-NEXT: {{ $}}264 ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0265 ; GFX7-NEXT: $m0 = S_MOV_B32 -1266 ; GFX7-NEXT: [[DS_READ_B64_:%[0-9]+]]:vreg_64 = DS_READ_B64 [[COPY]], 0, 0, implicit $m0, implicit $exec :: (load (s64), addrspace 3)267 ; GFX7-NEXT: $vgpr0_vgpr1 = COPY [[DS_READ_B64_]]268 ;269 ; GFX9-LABEL: name: load_local_s64270 ; GFX9: liveins: $vgpr0271 ; GFX9-NEXT: {{ $}}272 ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0273 ; GFX9-NEXT: [[DS_READ_B64_gfx9_:%[0-9]+]]:vreg_64 = DS_READ_B64_gfx9 [[COPY]], 0, 0, implicit $exec :: (load (s64), addrspace 3)274 ; GFX9-NEXT: $vgpr0_vgpr1 = COPY [[DS_READ_B64_gfx9_]]275 ;276 ; GFX10-LABEL: name: load_local_s64277 ; GFX10: liveins: $vgpr0278 ; GFX10-NEXT: {{ $}}279 ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0280 ; GFX10-NEXT: [[DS_READ_B64_gfx9_:%[0-9]+]]:vreg_64 = DS_READ_B64_gfx9 [[COPY]], 0, 0, implicit $exec :: (load (s64), addrspace 3)281 ; GFX10-NEXT: $vgpr0_vgpr1 = COPY [[DS_READ_B64_gfx9_]]282 %0:vgpr(p3) = COPY $vgpr0283 %1:vgpr(s64) = G_LOAD %0 :: (load (s64), align 8, addrspace 3)284 $vgpr0_vgpr1 = COPY %1285 286...287 288---289 290name: load_local_s64_align4291legalized: true292regBankSelected: true293tracksRegLiveness: true294 295body: |296 bb.0:297 liveins: $vgpr0298 299 ; GFX6-LABEL: name: load_local_s64_align4300 ; GFX6: liveins: $vgpr0301 ; GFX6-NEXT: {{ $}}302 ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr(p3) = COPY $vgpr0303 ; GFX6-NEXT: $m0 = S_MOV_B32 -1304 ; GFX6-NEXT: [[LOAD:%[0-9]+]]:vreg_64(s64) = G_LOAD [[COPY]](p3) :: (load (s64), align 4, addrspace 3)305 ; GFX6-NEXT: $vgpr0_vgpr1 = COPY [[LOAD]](s64)306 ;307 ; GFX7-LABEL: name: load_local_s64_align4308 ; GFX7: liveins: $vgpr0309 ; GFX7-NEXT: {{ $}}310 ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0311 ; GFX7-NEXT: $m0 = S_MOV_B32 -1312 ; GFX7-NEXT: [[DS_READ2_B32_:%[0-9]+]]:vreg_64 = DS_READ2_B32 [[COPY]], 0, 1, 0, implicit $m0, implicit $exec :: (load (s64), align 4, addrspace 3)313 ; GFX7-NEXT: $vgpr0_vgpr1 = COPY [[DS_READ2_B32_]]314 ;315 ; GFX9-LABEL: name: load_local_s64_align4316 ; GFX9: liveins: $vgpr0317 ; GFX9-NEXT: {{ $}}318 ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0319 ; GFX9-NEXT: [[DS_READ2_B32_gfx9_:%[0-9]+]]:vreg_64 = DS_READ2_B32_gfx9 [[COPY]], 0, 1, 0, implicit $exec :: (load (s64), align 4, addrspace 3)320 ; GFX9-NEXT: $vgpr0_vgpr1 = COPY [[DS_READ2_B32_gfx9_]]321 ;322 ; GFX10-LABEL: name: load_local_s64_align4323 ; GFX10: liveins: $vgpr0324 ; GFX10-NEXT: {{ $}}325 ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0326 ; GFX10-NEXT: [[DS_READ2_B32_gfx9_:%[0-9]+]]:vreg_64 = DS_READ2_B32_gfx9 [[COPY]], 0, 1, 0, implicit $exec :: (load (s64), align 4, addrspace 3)327 ; GFX10-NEXT: $vgpr0_vgpr1 = COPY [[DS_READ2_B32_gfx9_]]328 %0:vgpr(p3) = COPY $vgpr0329 %1:vgpr(s64) = G_LOAD %0 :: (load (s64), align 4, addrspace 3)330 $vgpr0_vgpr1 = COPY %1331 332...333 334---335 336name: load_local_p3_from_4337legalized: true338regBankSelected: true339tracksRegLiveness: true340 341body: |342 bb.0:343 liveins: $vgpr0344 345 ; GFX6-LABEL: name: load_local_p3_from_4346 ; GFX6: liveins: $vgpr0347 ; GFX6-NEXT: {{ $}}348 ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0349 ; GFX6-NEXT: $m0 = S_MOV_B32 -1350 ; GFX6-NEXT: [[DS_READ_B32_:%[0-9]+]]:vgpr_32 = DS_READ_B32 [[COPY]], 0, 0, implicit $m0, implicit $exec :: (load (p3), addrspace 3)351 ; GFX6-NEXT: $vgpr0 = COPY [[DS_READ_B32_]]352 ;353 ; GFX7-LABEL: name: load_local_p3_from_4354 ; GFX7: liveins: $vgpr0355 ; GFX7-NEXT: {{ $}}356 ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0357 ; GFX7-NEXT: $m0 = S_MOV_B32 -1358 ; GFX7-NEXT: [[DS_READ_B32_:%[0-9]+]]:vgpr_32 = DS_READ_B32 [[COPY]], 0, 0, implicit $m0, implicit $exec :: (load (p3), addrspace 3)359 ; GFX7-NEXT: $vgpr0 = COPY [[DS_READ_B32_]]360 ;361 ; GFX9-LABEL: name: load_local_p3_from_4362 ; GFX9: liveins: $vgpr0363 ; GFX9-NEXT: {{ $}}364 ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0365 ; GFX9-NEXT: [[DS_READ_B32_gfx9_:%[0-9]+]]:vgpr_32 = DS_READ_B32_gfx9 [[COPY]], 0, 0, implicit $exec :: (load (p3), addrspace 3)366 ; GFX9-NEXT: $vgpr0 = COPY [[DS_READ_B32_gfx9_]]367 ;368 ; GFX10-LABEL: name: load_local_p3_from_4369 ; GFX10: liveins: $vgpr0370 ; GFX10-NEXT: {{ $}}371 ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0372 ; GFX10-NEXT: [[DS_READ_B32_gfx9_:%[0-9]+]]:vgpr_32 = DS_READ_B32_gfx9 [[COPY]], 0, 0, implicit $exec :: (load (p3), addrspace 3)373 ; GFX10-NEXT: $vgpr0 = COPY [[DS_READ_B32_gfx9_]]374 %0:vgpr(p3) = COPY $vgpr0375 %1:vgpr(p3) = G_LOAD %0 :: (load (p3), align 4, addrspace 3)376 $vgpr0 = COPY %1377 378...379 380---381 382name: load_local_p5_from_4383legalized: true384regBankSelected: true385tracksRegLiveness: true386 387body: |388 bb.0:389 liveins: $vgpr0390 391 ; GFX6-LABEL: name: load_local_p5_from_4392 ; GFX6: liveins: $vgpr0393 ; GFX6-NEXT: {{ $}}394 ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0395 ; GFX6-NEXT: $m0 = S_MOV_B32 -1396 ; GFX6-NEXT: [[DS_READ_B32_:%[0-9]+]]:vgpr_32 = DS_READ_B32 [[COPY]], 0, 0, implicit $m0, implicit $exec :: (load (p5), addrspace 3)397 ; GFX6-NEXT: $vgpr0 = COPY [[DS_READ_B32_]]398 ;399 ; GFX7-LABEL: name: load_local_p5_from_4400 ; GFX7: liveins: $vgpr0401 ; GFX7-NEXT: {{ $}}402 ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0403 ; GFX7-NEXT: $m0 = S_MOV_B32 -1404 ; GFX7-NEXT: [[DS_READ_B32_:%[0-9]+]]:vgpr_32 = DS_READ_B32 [[COPY]], 0, 0, implicit $m0, implicit $exec :: (load (p5), addrspace 3)405 ; GFX7-NEXT: $vgpr0 = COPY [[DS_READ_B32_]]406 ;407 ; GFX9-LABEL: name: load_local_p5_from_4408 ; GFX9: liveins: $vgpr0409 ; GFX9-NEXT: {{ $}}410 ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0411 ; GFX9-NEXT: [[DS_READ_B32_gfx9_:%[0-9]+]]:vgpr_32 = DS_READ_B32_gfx9 [[COPY]], 0, 0, implicit $exec :: (load (p5), addrspace 3)412 ; GFX9-NEXT: $vgpr0 = COPY [[DS_READ_B32_gfx9_]]413 ;414 ; GFX10-LABEL: name: load_local_p5_from_4415 ; GFX10: liveins: $vgpr0416 ; GFX10-NEXT: {{ $}}417 ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0418 ; GFX10-NEXT: [[DS_READ_B32_gfx9_:%[0-9]+]]:vgpr_32 = DS_READ_B32_gfx9 [[COPY]], 0, 0, implicit $exec :: (load (p5), addrspace 3)419 ; GFX10-NEXT: $vgpr0 = COPY [[DS_READ_B32_gfx9_]]420 %0:vgpr(p3) = COPY $vgpr0421 %1:vgpr(p5) = G_LOAD %0 :: (load (p5), align 4, addrspace 3)422 $vgpr0 = COPY %1423 424...425 426---427 428name: load_local_p1_align8429legalized: true430regBankSelected: true431tracksRegLiveness: true432 433body: |434 bb.0:435 liveins: $vgpr0436 437 ; GFX6-LABEL: name: load_local_p1_align8438 ; GFX6: liveins: $vgpr0439 ; GFX6-NEXT: {{ $}}440 ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0441 ; GFX6-NEXT: $m0 = S_MOV_B32 -1442 ; GFX6-NEXT: [[DS_READ_B64_:%[0-9]+]]:vreg_64 = DS_READ_B64 [[COPY]], 0, 0, implicit $m0, implicit $exec :: (load (p1), addrspace 3)443 ; GFX6-NEXT: $vgpr0_vgpr1 = COPY [[DS_READ_B64_]]444 ;445 ; GFX7-LABEL: name: load_local_p1_align8446 ; GFX7: liveins: $vgpr0447 ; GFX7-NEXT: {{ $}}448 ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0449 ; GFX7-NEXT: $m0 = S_MOV_B32 -1450 ; GFX7-NEXT: [[DS_READ_B64_:%[0-9]+]]:vreg_64 = DS_READ_B64 [[COPY]], 0, 0, implicit $m0, implicit $exec :: (load (p1), addrspace 3)451 ; GFX7-NEXT: $vgpr0_vgpr1 = COPY [[DS_READ_B64_]]452 ;453 ; GFX9-LABEL: name: load_local_p1_align8454 ; GFX9: liveins: $vgpr0455 ; GFX9-NEXT: {{ $}}456 ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0457 ; GFX9-NEXT: [[DS_READ_B64_gfx9_:%[0-9]+]]:vreg_64 = DS_READ_B64_gfx9 [[COPY]], 0, 0, implicit $exec :: (load (p1), addrspace 3)458 ; GFX9-NEXT: $vgpr0_vgpr1 = COPY [[DS_READ_B64_gfx9_]]459 ;460 ; GFX10-LABEL: name: load_local_p1_align8461 ; GFX10: liveins: $vgpr0462 ; GFX10-NEXT: {{ $}}463 ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0464 ; GFX10-NEXT: [[DS_READ_B64_gfx9_:%[0-9]+]]:vreg_64 = DS_READ_B64_gfx9 [[COPY]], 0, 0, implicit $exec :: (load (p1), addrspace 3)465 ; GFX10-NEXT: $vgpr0_vgpr1 = COPY [[DS_READ_B64_gfx9_]]466 %0:vgpr(p3) = COPY $vgpr0467 %1:vgpr(p1) = G_LOAD %0 :: (load (p1), align 8, addrspace 3)468 $vgpr0_vgpr1 = COPY %1469 470...471 472---473 474name: load_local_p1_align4475legalized: true476regBankSelected: true477tracksRegLiveness: true478 479body: |480 bb.0:481 liveins: $vgpr0482 483 ; GFX6-LABEL: name: load_local_p1_align4484 ; GFX6: liveins: $vgpr0485 ; GFX6-NEXT: {{ $}}486 ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr(p3) = COPY $vgpr0487 ; GFX6-NEXT: $m0 = S_MOV_B32 -1488 ; GFX6-NEXT: [[LOAD:%[0-9]+]]:vreg_64(p1) = G_LOAD [[COPY]](p3) :: (load (p1), align 4, addrspace 3)489 ; GFX6-NEXT: $vgpr0_vgpr1 = COPY [[LOAD]](p1)490 ;491 ; GFX7-LABEL: name: load_local_p1_align4492 ; GFX7: liveins: $vgpr0493 ; GFX7-NEXT: {{ $}}494 ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0495 ; GFX7-NEXT: $m0 = S_MOV_B32 -1496 ; GFX7-NEXT: [[DS_READ2_B32_:%[0-9]+]]:vreg_64 = DS_READ2_B32 [[COPY]], 0, 1, 0, implicit $m0, implicit $exec :: (load (p1), align 4, addrspace 3)497 ; GFX7-NEXT: $vgpr0_vgpr1 = COPY [[DS_READ2_B32_]]498 ;499 ; GFX9-LABEL: name: load_local_p1_align4500 ; GFX9: liveins: $vgpr0501 ; GFX9-NEXT: {{ $}}502 ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0503 ; GFX9-NEXT: [[DS_READ2_B32_gfx9_:%[0-9]+]]:vreg_64 = DS_READ2_B32_gfx9 [[COPY]], 0, 1, 0, implicit $exec :: (load (p1), align 4, addrspace 3)504 ; GFX9-NEXT: $vgpr0_vgpr1 = COPY [[DS_READ2_B32_gfx9_]]505 ;506 ; GFX10-LABEL: name: load_local_p1_align4507 ; GFX10: liveins: $vgpr0508 ; GFX10-NEXT: {{ $}}509 ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0510 ; GFX10-NEXT: [[DS_READ2_B32_gfx9_:%[0-9]+]]:vreg_64 = DS_READ2_B32_gfx9 [[COPY]], 0, 1, 0, implicit $exec :: (load (p1), align 4, addrspace 3)511 ; GFX10-NEXT: $vgpr0_vgpr1 = COPY [[DS_READ2_B32_gfx9_]]512 %0:vgpr(p3) = COPY $vgpr0513 %1:vgpr(p1) = G_LOAD %0 :: (load (p1), align 4, addrspace 3)514 $vgpr0_vgpr1 = COPY %1515 516...517 518---519 520name: load_local_p999_from_8521legalized: true522regBankSelected: true523tracksRegLiveness: true524 525body: |526 bb.0:527 liveins: $vgpr0528 529 ; GFX6-LABEL: name: load_local_p999_from_8530 ; GFX6: liveins: $vgpr0531 ; GFX6-NEXT: {{ $}}532 ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr(p3) = COPY $vgpr0533 ; GFX6-NEXT: $m0 = S_MOV_B32 -1534 ; GFX6-NEXT: [[LOAD:%[0-9]+]]:vreg_64(p999) = G_LOAD [[COPY]](p3) :: (load (p999), addrspace 3)535 ; GFX6-NEXT: $vgpr0_vgpr1 = COPY [[LOAD]](p999)536 ;537 ; GFX7-LABEL: name: load_local_p999_from_8538 ; GFX7: liveins: $vgpr0539 ; GFX7-NEXT: {{ $}}540 ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr(p3) = COPY $vgpr0541 ; GFX7-NEXT: $m0 = S_MOV_B32 -1542 ; GFX7-NEXT: [[LOAD:%[0-9]+]]:vreg_64(p999) = G_LOAD [[COPY]](p3) :: (load (p999), addrspace 3)543 ; GFX7-NEXT: $vgpr0_vgpr1 = COPY [[LOAD]](p999)544 ;545 ; GFX9-LABEL: name: load_local_p999_from_8546 ; GFX9: liveins: $vgpr0547 ; GFX9-NEXT: {{ $}}548 ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr(p3) = COPY $vgpr0549 ; GFX9-NEXT: [[LOAD:%[0-9]+]]:vreg_64(p999) = G_LOAD [[COPY]](p3) :: (load (p999), addrspace 3)550 ; GFX9-NEXT: $vgpr0_vgpr1 = COPY [[LOAD]](p999)551 ;552 ; GFX10-LABEL: name: load_local_p999_from_8553 ; GFX10: liveins: $vgpr0554 ; GFX10-NEXT: {{ $}}555 ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr(p3) = COPY $vgpr0556 ; GFX10-NEXT: [[LOAD:%[0-9]+]]:vreg_64(p999) = G_LOAD [[COPY]](p3) :: (load (p999), addrspace 3)557 ; GFX10-NEXT: $vgpr0_vgpr1 = COPY [[LOAD]](p999)558 %0:vgpr(p3) = COPY $vgpr0559 %1:vgpr(p999) = G_LOAD %0 :: (load (p999), align 8, addrspace 3)560 $vgpr0_vgpr1 = COPY %1561 562...563 564---565 566name: load_local_v2p3567legalized: true568regBankSelected: true569tracksRegLiveness: true570 571body: |572 bb.0:573 liveins: $vgpr0574 575 ; GFX6-LABEL: name: load_local_v2p3576 ; GFX6: liveins: $vgpr0577 ; GFX6-NEXT: {{ $}}578 ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0579 ; GFX6-NEXT: $m0 = S_MOV_B32 -1580 ; GFX6-NEXT: [[DS_READ_B64_:%[0-9]+]]:vreg_64 = DS_READ_B64 [[COPY]], 0, 0, implicit $m0, implicit $exec :: (load (<2 x s32>), addrspace 3)581 ; GFX6-NEXT: $vgpr0_vgpr1 = COPY [[DS_READ_B64_]]582 ;583 ; GFX7-LABEL: name: load_local_v2p3584 ; GFX7: liveins: $vgpr0585 ; GFX7-NEXT: {{ $}}586 ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0587 ; GFX7-NEXT: $m0 = S_MOV_B32 -1588 ; GFX7-NEXT: [[DS_READ_B64_:%[0-9]+]]:vreg_64 = DS_READ_B64 [[COPY]], 0, 0, implicit $m0, implicit $exec :: (load (<2 x s32>), addrspace 3)589 ; GFX7-NEXT: $vgpr0_vgpr1 = COPY [[DS_READ_B64_]]590 ;591 ; GFX9-LABEL: name: load_local_v2p3592 ; GFX9: liveins: $vgpr0593 ; GFX9-NEXT: {{ $}}594 ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0595 ; GFX9-NEXT: [[DS_READ_B64_gfx9_:%[0-9]+]]:vreg_64 = DS_READ_B64_gfx9 [[COPY]], 0, 0, implicit $exec :: (load (<2 x s32>), addrspace 3)596 ; GFX9-NEXT: $vgpr0_vgpr1 = COPY [[DS_READ_B64_gfx9_]]597 ;598 ; GFX10-LABEL: name: load_local_v2p3599 ; GFX10: liveins: $vgpr0600 ; GFX10-NEXT: {{ $}}601 ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0602 ; GFX10-NEXT: [[DS_READ_B64_gfx9_:%[0-9]+]]:vreg_64 = DS_READ_B64_gfx9 [[COPY]], 0, 0, implicit $exec :: (load (<2 x s32>), addrspace 3)603 ; GFX10-NEXT: $vgpr0_vgpr1 = COPY [[DS_READ_B64_gfx9_]]604 %0:vgpr(p3) = COPY $vgpr0605 %1:vgpr(<2 x s32>) = G_LOAD %0 :: (load (<2 x s32>), align 8, addrspace 3)606 %2:vgpr(<2 x p3>) = G_BITCAST %1(<2 x s32>)607 $vgpr0_vgpr1 = COPY %2608 609...610 611---612 613name: load_local_v2s16614legalized: true615regBankSelected: true616tracksRegLiveness: true617 618body: |619 bb.0:620 liveins: $vgpr0621 622 ; GFX6-LABEL: name: load_local_v2s16623 ; GFX6: liveins: $vgpr0624 ; GFX6-NEXT: {{ $}}625 ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0626 ; GFX6-NEXT: $m0 = S_MOV_B32 -1627 ; GFX6-NEXT: [[DS_READ_B32_:%[0-9]+]]:vgpr_32 = DS_READ_B32 [[COPY]], 0, 0, implicit $m0, implicit $exec :: (load (<2 x s16>), addrspace 3)628 ; GFX6-NEXT: $vgpr0 = COPY [[DS_READ_B32_]]629 ;630 ; GFX7-LABEL: name: load_local_v2s16631 ; GFX7: liveins: $vgpr0632 ; GFX7-NEXT: {{ $}}633 ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0634 ; GFX7-NEXT: $m0 = S_MOV_B32 -1635 ; GFX7-NEXT: [[DS_READ_B32_:%[0-9]+]]:vgpr_32 = DS_READ_B32 [[COPY]], 0, 0, implicit $m0, implicit $exec :: (load (<2 x s16>), addrspace 3)636 ; GFX7-NEXT: $vgpr0 = COPY [[DS_READ_B32_]]637 ;638 ; GFX9-LABEL: name: load_local_v2s16639 ; GFX9: liveins: $vgpr0640 ; GFX9-NEXT: {{ $}}641 ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0642 ; GFX9-NEXT: [[DS_READ_B32_gfx9_:%[0-9]+]]:vgpr_32 = DS_READ_B32_gfx9 [[COPY]], 0, 0, implicit $exec :: (load (<2 x s16>), addrspace 3)643 ; GFX9-NEXT: $vgpr0 = COPY [[DS_READ_B32_gfx9_]]644 ;645 ; GFX10-LABEL: name: load_local_v2s16646 ; GFX10: liveins: $vgpr0647 ; GFX10-NEXT: {{ $}}648 ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0649 ; GFX10-NEXT: [[DS_READ_B32_gfx9_:%[0-9]+]]:vgpr_32 = DS_READ_B32_gfx9 [[COPY]], 0, 0, implicit $exec :: (load (<2 x s16>), addrspace 3)650 ; GFX10-NEXT: $vgpr0 = COPY [[DS_READ_B32_gfx9_]]651 %0:vgpr(p3) = COPY $vgpr0652 %1:vgpr(<2 x s16>) = G_LOAD %0 :: (load (<2 x s16>), align 4, addrspace 3)653 $vgpr0 = COPY %1654 655...656 657---658 659name: load_local_v4s16660legalized: true661regBankSelected: true662tracksRegLiveness: true663 664body: |665 bb.0:666 liveins: $vgpr0667 668 ; GFX6-LABEL: name: load_local_v4s16669 ; GFX6: liveins: $vgpr0670 ; GFX6-NEXT: {{ $}}671 ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0672 ; GFX6-NEXT: $m0 = S_MOV_B32 -1673 ; GFX6-NEXT: [[DS_READ_B64_:%[0-9]+]]:vreg_64 = DS_READ_B64 [[COPY]], 0, 0, implicit $m0, implicit $exec :: (load (<4 x s16>), addrspace 3)674 ; GFX6-NEXT: $vgpr0_vgpr1 = COPY [[DS_READ_B64_]]675 ;676 ; GFX7-LABEL: name: load_local_v4s16677 ; GFX7: liveins: $vgpr0678 ; GFX7-NEXT: {{ $}}679 ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0680 ; GFX7-NEXT: $m0 = S_MOV_B32 -1681 ; GFX7-NEXT: [[DS_READ_B64_:%[0-9]+]]:vreg_64 = DS_READ_B64 [[COPY]], 0, 0, implicit $m0, implicit $exec :: (load (<4 x s16>), addrspace 3)682 ; GFX7-NEXT: $vgpr0_vgpr1 = COPY [[DS_READ_B64_]]683 ;684 ; GFX9-LABEL: name: load_local_v4s16685 ; GFX9: liveins: $vgpr0686 ; GFX9-NEXT: {{ $}}687 ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0688 ; GFX9-NEXT: [[DS_READ_B64_gfx9_:%[0-9]+]]:vreg_64 = DS_READ_B64_gfx9 [[COPY]], 0, 0, implicit $exec :: (load (<4 x s16>), addrspace 3)689 ; GFX9-NEXT: $vgpr0_vgpr1 = COPY [[DS_READ_B64_gfx9_]]690 ;691 ; GFX10-LABEL: name: load_local_v4s16692 ; GFX10: liveins: $vgpr0693 ; GFX10-NEXT: {{ $}}694 ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0695 ; GFX10-NEXT: [[DS_READ_B64_gfx9_:%[0-9]+]]:vreg_64 = DS_READ_B64_gfx9 [[COPY]], 0, 0, implicit $exec :: (load (<4 x s16>), addrspace 3)696 ; GFX10-NEXT: $vgpr0_vgpr1 = COPY [[DS_READ_B64_gfx9_]]697 %0:vgpr(p3) = COPY $vgpr0698 %1:vgpr(<4 x s16>) = G_LOAD %0 :: (load (<4 x s16>), align 8, addrspace 3)699 $vgpr0_vgpr1 = COPY %1700 701...702 703# ---704 705# name: load_local_v6s16706# legalized: true707# regBankSelected: true708# tracksRegLiveness: true709# machineFunctionInfo:710# scratchRSrcReg: $sgpr0_sgpr1_sgpr2_sgpr3711# stackPtrOffsetReg: $sgpr32712 713# body: |714# bb.0:715# liveins: $vgpr0716 717# %0:vgpr(p3) = COPY $vgpr0718# %1:vgpr(<6 x s16>) = G_LOAD %0 :: (load (<6 x s16>), align 4, addrspace 3)719# $vgpr0_vgpr1_vgpr2 = COPY %1720 721# ...722 723################################################################################724### Stress addressing modes725################################################################################726 727---728 729name: load_local_s32_from_1_gep_65535730legalized: true731regBankSelected: true732tracksRegLiveness: true733 734body: |735 bb.0:736 liveins: $vgpr0737 738 ; GFX6-LABEL: name: load_local_s32_from_1_gep_65535739 ; GFX6: liveins: $vgpr0740 ; GFX6-NEXT: {{ $}}741 ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0742 ; GFX6-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 65535, implicit $exec743 ; GFX6-NEXT: [[V_ADD_CO_U32_e64_:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_1:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 [[COPY]], [[V_MOV_B32_e32_]], 0, implicit $exec744 ; GFX6-NEXT: $m0 = S_MOV_B32 -1745 ; GFX6-NEXT: [[DS_READ_U8_:%[0-9]+]]:vgpr_32 = DS_READ_U8 [[V_ADD_CO_U32_e64_]], 0, 0, implicit $m0, implicit $exec :: (load (s8), addrspace 3)746 ; GFX6-NEXT: $vgpr0 = COPY [[DS_READ_U8_]]747 ;748 ; GFX7-LABEL: name: load_local_s32_from_1_gep_65535749 ; GFX7: liveins: $vgpr0750 ; GFX7-NEXT: {{ $}}751 ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0752 ; GFX7-NEXT: $m0 = S_MOV_B32 -1753 ; GFX7-NEXT: [[DS_READ_U8_:%[0-9]+]]:vgpr_32 = DS_READ_U8 [[COPY]], 65535, 0, implicit $m0, implicit $exec :: (load (s8), addrspace 3)754 ; GFX7-NEXT: $vgpr0 = COPY [[DS_READ_U8_]]755 ;756 ; GFX9-LABEL: name: load_local_s32_from_1_gep_65535757 ; GFX9: liveins: $vgpr0758 ; GFX9-NEXT: {{ $}}759 ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0760 ; GFX9-NEXT: [[DS_READ_U8_gfx9_:%[0-9]+]]:vgpr_32 = DS_READ_U8_gfx9 [[COPY]], 65535, 0, implicit $exec :: (load (s8), addrspace 3)761 ; GFX9-NEXT: $vgpr0 = COPY [[DS_READ_U8_gfx9_]]762 ;763 ; GFX10-LABEL: name: load_local_s32_from_1_gep_65535764 ; GFX10: liveins: $vgpr0765 ; GFX10-NEXT: {{ $}}766 ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0767 ; GFX10-NEXT: [[DS_READ_U8_gfx9_:%[0-9]+]]:vgpr_32 = DS_READ_U8_gfx9 [[COPY]], 65535, 0, implicit $exec :: (load (s8), addrspace 3)768 ; GFX10-NEXT: $vgpr0 = COPY [[DS_READ_U8_gfx9_]]769 %0:vgpr(p3) = COPY $vgpr0770 %1:vgpr(s32) = G_CONSTANT i32 65535771 %2:vgpr(p3) = G_PTR_ADD %0, %1772 %3:vgpr(s32) = G_LOAD %2 :: (load (s8), align 1, addrspace 3)773 $vgpr0 = COPY %3774 775...776 777---778 779name: load_local_s32_from_1_gep_65535_known_bits_base_address780legalized: true781regBankSelected: true782tracksRegLiveness: true783 784body: |785 bb.0:786 liveins: $vgpr0787 788 ; GFX6-LABEL: name: load_local_s32_from_1_gep_65535_known_bits_base_address789 ; GFX6: liveins: $vgpr0790 ; GFX6-NEXT: {{ $}}791 ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0792 ; GFX6-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 2147483647, implicit $exec793 ; GFX6-NEXT: [[V_AND_B32_e64_:%[0-9]+]]:vgpr_32 = V_AND_B32_e64 [[COPY]], [[V_MOV_B32_e32_]], implicit $exec794 ; GFX6-NEXT: $m0 = S_MOV_B32 -1795 ; GFX6-NEXT: [[DS_READ_U8_:%[0-9]+]]:vgpr_32 = DS_READ_U8 [[V_AND_B32_e64_]], 65535, 0, implicit $m0, implicit $exec :: (load (s8), addrspace 3)796 ; GFX6-NEXT: $vgpr0 = COPY [[DS_READ_U8_]]797 ;798 ; GFX7-LABEL: name: load_local_s32_from_1_gep_65535_known_bits_base_address799 ; GFX7: liveins: $vgpr0800 ; GFX7-NEXT: {{ $}}801 ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0802 ; GFX7-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 2147483647, implicit $exec803 ; GFX7-NEXT: [[V_AND_B32_e64_:%[0-9]+]]:vgpr_32 = V_AND_B32_e64 [[COPY]], [[V_MOV_B32_e32_]], implicit $exec804 ; GFX7-NEXT: $m0 = S_MOV_B32 -1805 ; GFX7-NEXT: [[DS_READ_U8_:%[0-9]+]]:vgpr_32 = DS_READ_U8 [[V_AND_B32_e64_]], 65535, 0, implicit $m0, implicit $exec :: (load (s8), addrspace 3)806 ; GFX7-NEXT: $vgpr0 = COPY [[DS_READ_U8_]]807 ;808 ; GFX9-LABEL: name: load_local_s32_from_1_gep_65535_known_bits_base_address809 ; GFX9: liveins: $vgpr0810 ; GFX9-NEXT: {{ $}}811 ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0812 ; GFX9-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 2147483647, implicit $exec813 ; GFX9-NEXT: [[V_AND_B32_e64_:%[0-9]+]]:vgpr_32 = V_AND_B32_e64 [[COPY]], [[V_MOV_B32_e32_]], implicit $exec814 ; GFX9-NEXT: [[DS_READ_U8_gfx9_:%[0-9]+]]:vgpr_32 = DS_READ_U8_gfx9 [[V_AND_B32_e64_]], 65535, 0, implicit $exec :: (load (s8), addrspace 3)815 ; GFX9-NEXT: $vgpr0 = COPY [[DS_READ_U8_gfx9_]]816 ;817 ; GFX10-LABEL: name: load_local_s32_from_1_gep_65535_known_bits_base_address818 ; GFX10: liveins: $vgpr0819 ; GFX10-NEXT: {{ $}}820 ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0821 ; GFX10-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 2147483647, implicit $exec822 ; GFX10-NEXT: [[V_AND_B32_e64_:%[0-9]+]]:vgpr_32 = V_AND_B32_e64 [[COPY]], [[V_MOV_B32_e32_]], implicit $exec823 ; GFX10-NEXT: [[DS_READ_U8_gfx9_:%[0-9]+]]:vgpr_32 = DS_READ_U8_gfx9 [[V_AND_B32_e64_]], 65535, 0, implicit $exec :: (load (s8), addrspace 3)824 ; GFX10-NEXT: $vgpr0 = COPY [[DS_READ_U8_gfx9_]]825 %0:vgpr(s32) = COPY $vgpr0826 %1:vgpr(s32) = G_CONSTANT i32 2147483647827 %2:vgpr(s32) = G_AND %0, %1828 %3:vgpr(p3) = G_INTTOPTR %2829 %4:vgpr(s32) = G_CONSTANT i32 65535830 %5:vgpr(p3) = G_PTR_ADD %3, %4831 %6:vgpr(s32) = G_LOAD %5 :: (load (s8), align 1, addrspace 3)832 $vgpr0 = COPY %6833 834...835 836---837 838name: load_local_s32_from_1_gep_65536839legalized: true840regBankSelected: true841tracksRegLiveness: true842 843body: |844 bb.0:845 liveins: $vgpr0846 847 ; GFX6-LABEL: name: load_local_s32_from_1_gep_65536848 ; GFX6: liveins: $vgpr0849 ; GFX6-NEXT: {{ $}}850 ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0851 ; GFX6-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 65536, implicit $exec852 ; GFX6-NEXT: [[V_ADD_CO_U32_e64_:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_1:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 [[COPY]], [[V_MOV_B32_e32_]], 0, implicit $exec853 ; GFX6-NEXT: $m0 = S_MOV_B32 -1854 ; GFX6-NEXT: [[DS_READ_U8_:%[0-9]+]]:vgpr_32 = DS_READ_U8 [[V_ADD_CO_U32_e64_]], 0, 0, implicit $m0, implicit $exec :: (load (s8), addrspace 3)855 ; GFX6-NEXT: $vgpr0 = COPY [[DS_READ_U8_]]856 ;857 ; GFX7-LABEL: name: load_local_s32_from_1_gep_65536858 ; GFX7: liveins: $vgpr0859 ; GFX7-NEXT: {{ $}}860 ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0861 ; GFX7-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 65536, implicit $exec862 ; GFX7-NEXT: [[V_ADD_CO_U32_e64_:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_1:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 [[COPY]], [[V_MOV_B32_e32_]], 0, implicit $exec863 ; GFX7-NEXT: $m0 = S_MOV_B32 -1864 ; GFX7-NEXT: [[DS_READ_U8_:%[0-9]+]]:vgpr_32 = DS_READ_U8 [[V_ADD_CO_U32_e64_]], 0, 0, implicit $m0, implicit $exec :: (load (s8), addrspace 3)865 ; GFX7-NEXT: $vgpr0 = COPY [[DS_READ_U8_]]866 ;867 ; GFX9-LABEL: name: load_local_s32_from_1_gep_65536868 ; GFX9: liveins: $vgpr0869 ; GFX9-NEXT: {{ $}}870 ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0871 ; GFX9-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 65536, implicit $exec872 ; GFX9-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[V_MOV_B32_e32_]], 0, implicit $exec873 ; GFX9-NEXT: [[DS_READ_U8_gfx9_:%[0-9]+]]:vgpr_32 = DS_READ_U8_gfx9 [[V_ADD_U32_e64_]], 0, 0, implicit $exec :: (load (s8), addrspace 3)874 ; GFX9-NEXT: $vgpr0 = COPY [[DS_READ_U8_gfx9_]]875 ;876 ; GFX10-LABEL: name: load_local_s32_from_1_gep_65536877 ; GFX10: liveins: $vgpr0878 ; GFX10-NEXT: {{ $}}879 ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0880 ; GFX10-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 65536, implicit $exec881 ; GFX10-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[V_MOV_B32_e32_]], 0, implicit $exec882 ; GFX10-NEXT: [[DS_READ_U8_gfx9_:%[0-9]+]]:vgpr_32 = DS_READ_U8_gfx9 [[V_ADD_U32_e64_]], 0, 0, implicit $exec :: (load (s8), addrspace 3)883 ; GFX10-NEXT: $vgpr0 = COPY [[DS_READ_U8_gfx9_]]884 %0:vgpr(p3) = COPY $vgpr0885 %1:vgpr(s32) = G_CONSTANT i32 65536886 %2:vgpr(p3) = G_PTR_ADD %0, %1887 %3:vgpr(s32) = G_LOAD %2 :: (load (s8), align 1, addrspace 3)888 $vgpr0 = COPY %3889 890...891 892---893 894name: load_local_s32_from_1_gep_m1895legalized: true896regBankSelected: true897tracksRegLiveness: true898 899body: |900 bb.0:901 liveins: $vgpr0902 903 ; GFX6-LABEL: name: load_local_s32_from_1_gep_m1904 ; GFX6: liveins: $vgpr0905 ; GFX6-NEXT: {{ $}}906 ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0907 ; GFX6-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 -1, implicit $exec908 ; GFX6-NEXT: [[V_ADD_CO_U32_e64_:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_1:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 [[COPY]], [[V_MOV_B32_e32_]], 0, implicit $exec909 ; GFX6-NEXT: $m0 = S_MOV_B32 -1910 ; GFX6-NEXT: [[DS_READ_U8_:%[0-9]+]]:vgpr_32 = DS_READ_U8 [[V_ADD_CO_U32_e64_]], 0, 0, implicit $m0, implicit $exec :: (load (s8), addrspace 3)911 ; GFX6-NEXT: $vgpr0 = COPY [[DS_READ_U8_]]912 ;913 ; GFX7-LABEL: name: load_local_s32_from_1_gep_m1914 ; GFX7: liveins: $vgpr0915 ; GFX7-NEXT: {{ $}}916 ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0917 ; GFX7-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 -1, implicit $exec918 ; GFX7-NEXT: [[V_ADD_CO_U32_e64_:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_1:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 [[COPY]], [[V_MOV_B32_e32_]], 0, implicit $exec919 ; GFX7-NEXT: $m0 = S_MOV_B32 -1920 ; GFX7-NEXT: [[DS_READ_U8_:%[0-9]+]]:vgpr_32 = DS_READ_U8 [[V_ADD_CO_U32_e64_]], 0, 0, implicit $m0, implicit $exec :: (load (s8), addrspace 3)921 ; GFX7-NEXT: $vgpr0 = COPY [[DS_READ_U8_]]922 ;923 ; GFX9-LABEL: name: load_local_s32_from_1_gep_m1924 ; GFX9: liveins: $vgpr0925 ; GFX9-NEXT: {{ $}}926 ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0927 ; GFX9-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 -1, implicit $exec928 ; GFX9-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[V_MOV_B32_e32_]], 0, implicit $exec929 ; GFX9-NEXT: [[DS_READ_U8_gfx9_:%[0-9]+]]:vgpr_32 = DS_READ_U8_gfx9 [[V_ADD_U32_e64_]], 0, 0, implicit $exec :: (load (s8), addrspace 3)930 ; GFX9-NEXT: $vgpr0 = COPY [[DS_READ_U8_gfx9_]]931 ;932 ; GFX10-LABEL: name: load_local_s32_from_1_gep_m1933 ; GFX10: liveins: $vgpr0934 ; GFX10-NEXT: {{ $}}935 ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0936 ; GFX10-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 -1, implicit $exec937 ; GFX10-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[V_MOV_B32_e32_]], 0, implicit $exec938 ; GFX10-NEXT: [[DS_READ_U8_gfx9_:%[0-9]+]]:vgpr_32 = DS_READ_U8_gfx9 [[V_ADD_U32_e64_]], 0, 0, implicit $exec :: (load (s8), addrspace 3)939 ; GFX10-NEXT: $vgpr0 = COPY [[DS_READ_U8_gfx9_]]940 %0:vgpr(p3) = COPY $vgpr0941 %1:vgpr(s32) = G_CONSTANT i32 -1942 %2:vgpr(p3) = G_PTR_ADD %0, %1943 %3:vgpr(s32) = G_LOAD %2 :: (load (s8), align 1, addrspace 3)944 $vgpr0 = COPY %3945 946...947 948---949 950name: load_local_s64_align4_from_1_gep_1016951legalized: true952regBankSelected: true953tracksRegLiveness: true954 955body: |956 bb.0:957 liveins: $vgpr0_vgpr1958 959 ; GFX6-LABEL: name: load_local_s64_align4_from_1_gep_1016960 ; GFX6: liveins: $vgpr0_vgpr1961 ; GFX6-NEXT: {{ $}}962 ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr(p3) = COPY $vgpr0963 ; GFX6-NEXT: [[C:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 1016964 ; GFX6-NEXT: [[PTR_ADD:%[0-9]+]]:vgpr(p3) = G_PTR_ADD [[COPY]], [[C]](s32)965 ; GFX6-NEXT: $m0 = S_MOV_B32 -1966 ; GFX6-NEXT: [[LOAD:%[0-9]+]]:vreg_64(s64) = G_LOAD [[PTR_ADD]](p3) :: (load (s64), align 4, addrspace 3)967 ; GFX6-NEXT: $vgpr0_vgpr1 = COPY [[LOAD]](s64)968 ;969 ; GFX7-LABEL: name: load_local_s64_align4_from_1_gep_1016970 ; GFX7: liveins: $vgpr0_vgpr1971 ; GFX7-NEXT: {{ $}}972 ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0973 ; GFX7-NEXT: $m0 = S_MOV_B32 -1974 ; GFX7-NEXT: [[DS_READ2_B32_:%[0-9]+]]:vreg_64 = DS_READ2_B32 [[COPY]], 254, 255, 0, implicit $m0, implicit $exec :: (load (s64), align 4, addrspace 3)975 ; GFX7-NEXT: $vgpr0_vgpr1 = COPY [[DS_READ2_B32_]]976 ;977 ; GFX9-LABEL: name: load_local_s64_align4_from_1_gep_1016978 ; GFX9: liveins: $vgpr0_vgpr1979 ; GFX9-NEXT: {{ $}}980 ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0981 ; GFX9-NEXT: [[DS_READ2_B32_gfx9_:%[0-9]+]]:vreg_64 = DS_READ2_B32_gfx9 [[COPY]], 254, 255, 0, implicit $exec :: (load (s64), align 4, addrspace 3)982 ; GFX9-NEXT: $vgpr0_vgpr1 = COPY [[DS_READ2_B32_gfx9_]]983 ;984 ; GFX10-LABEL: name: load_local_s64_align4_from_1_gep_1016985 ; GFX10: liveins: $vgpr0_vgpr1986 ; GFX10-NEXT: {{ $}}987 ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0988 ; GFX10-NEXT: [[DS_READ2_B32_gfx9_:%[0-9]+]]:vreg_64 = DS_READ2_B32_gfx9 [[COPY]], 254, 255, 0, implicit $exec :: (load (s64), align 4, addrspace 3)989 ; GFX10-NEXT: $vgpr0_vgpr1 = COPY [[DS_READ2_B32_gfx9_]]990 %0:vgpr(p3) = COPY $vgpr0991 %1:vgpr(s32) = G_CONSTANT i32 1016992 %2:vgpr(p3) = G_PTR_ADD %0, %1993 %3:vgpr(s64) = G_LOAD %2 :: (load (s64), align 4, addrspace 3)994 $vgpr0_vgpr1 = COPY %3995 996...997 998---999 1000name: load_local_s64_align4_from_1_gep_10201001legalized: true1002regBankSelected: true1003tracksRegLiveness: true1004 1005body: |1006 bb.0:1007 liveins: $vgpr0_vgpr11008 1009 ; GFX6-LABEL: name: load_local_s64_align4_from_1_gep_10201010 ; GFX6: liveins: $vgpr0_vgpr11011 ; GFX6-NEXT: {{ $}}1012 ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr(p3) = COPY $vgpr01013 ; GFX6-NEXT: [[C:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 10201014 ; GFX6-NEXT: [[PTR_ADD:%[0-9]+]]:vgpr(p3) = G_PTR_ADD [[COPY]], [[C]](s32)1015 ; GFX6-NEXT: $m0 = S_MOV_B32 -11016 ; GFX6-NEXT: [[LOAD:%[0-9]+]]:vreg_64(s64) = G_LOAD [[PTR_ADD]](p3) :: (load (s64), align 4, addrspace 3)1017 ; GFX6-NEXT: $vgpr0_vgpr1 = COPY [[LOAD]](s64)1018 ;1019 ; GFX7-LABEL: name: load_local_s64_align4_from_1_gep_10201020 ; GFX7: liveins: $vgpr0_vgpr11021 ; GFX7-NEXT: {{ $}}1022 ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr01023 ; GFX7-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 1020, implicit $exec1024 ; GFX7-NEXT: [[V_ADD_CO_U32_e64_:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_1:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 [[COPY]], [[V_MOV_B32_e32_]], 0, implicit $exec1025 ; GFX7-NEXT: $m0 = S_MOV_B32 -11026 ; GFX7-NEXT: [[DS_READ2_B32_:%[0-9]+]]:vreg_64 = DS_READ2_B32 [[V_ADD_CO_U32_e64_]], 0, 1, 0, implicit $m0, implicit $exec :: (load (s64), align 4, addrspace 3)1027 ; GFX7-NEXT: $vgpr0_vgpr1 = COPY [[DS_READ2_B32_]]1028 ;1029 ; GFX9-LABEL: name: load_local_s64_align4_from_1_gep_10201030 ; GFX9: liveins: $vgpr0_vgpr11031 ; GFX9-NEXT: {{ $}}1032 ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr01033 ; GFX9-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 1020, implicit $exec1034 ; GFX9-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[V_MOV_B32_e32_]], 0, implicit $exec1035 ; GFX9-NEXT: [[DS_READ2_B32_gfx9_:%[0-9]+]]:vreg_64 = DS_READ2_B32_gfx9 [[V_ADD_U32_e64_]], 0, 1, 0, implicit $exec :: (load (s64), align 4, addrspace 3)1036 ; GFX9-NEXT: $vgpr0_vgpr1 = COPY [[DS_READ2_B32_gfx9_]]1037 ;1038 ; GFX10-LABEL: name: load_local_s64_align4_from_1_gep_10201039 ; GFX10: liveins: $vgpr0_vgpr11040 ; GFX10-NEXT: {{ $}}1041 ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr01042 ; GFX10-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 1020, implicit $exec1043 ; GFX10-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[COPY]], [[V_MOV_B32_e32_]], 0, implicit $exec1044 ; GFX10-NEXT: [[DS_READ2_B32_gfx9_:%[0-9]+]]:vreg_64 = DS_READ2_B32_gfx9 [[V_ADD_U32_e64_]], 0, 1, 0, implicit $exec :: (load (s64), align 4, addrspace 3)1045 ; GFX10-NEXT: $vgpr0_vgpr1 = COPY [[DS_READ2_B32_gfx9_]]1046 %0:vgpr(p3) = COPY $vgpr01047 %1:vgpr(s32) = G_CONSTANT i32 10201048 %2:vgpr(p3) = G_PTR_ADD %0, %11049 %3:vgpr(s64) = G_LOAD %2 :: (load (s64), align 4, addrspace 3)1050 $vgpr0_vgpr1 = COPY %31051 1052...1053