1547 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -amdgpu-global-isel-new-legality -mtriple=amdgcn -mcpu=tahiti -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=0 -o - %s | FileCheck -check-prefix=GFX6 %s3# RUN: llc -amdgpu-global-isel-new-legality -mtriple=amdgcn -mcpu=hawaii -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=0 -o - %s | FileCheck -check-prefix=GFX7 %s4# RUN: llc -amdgpu-global-isel-new-legality -mtriple=amdgcn -mcpu=fiji -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=0 -o - %s | FileCheck -check-prefix=GFX8 %s5# RUN: llc -amdgpu-global-isel-new-legality -mtriple=amdgcn -mcpu=gfx1010 -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=0 -o - %s | FileCheck -check-prefix=GFX10 %s6# RUN: llc -amdgpu-global-isel-new-legality -mtriple=amdgcn -mcpu=gfx1100 -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=0 -o - %s | FileCheck -check-prefix=GFX11 %s7 8---9 10name: load_constant_s32_from_411legalized: true12regBankSelected: true13tracksRegLiveness: true14 15 16body: |17 bb.0:18 liveins: $sgpr0_sgpr119 20 ; GFX6-LABEL: name: load_constant_s32_from_421 ; GFX6: liveins: $sgpr0_sgpr122 ; GFX6-NEXT: {{ $}}23 ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr124 ; GFX6-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 0, 0 :: (load (s32), addrspace 4)25 ; GFX6-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]26 ;27 ; GFX7-LABEL: name: load_constant_s32_from_428 ; GFX7: liveins: $sgpr0_sgpr129 ; GFX7-NEXT: {{ $}}30 ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr131 ; GFX7-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 0, 0 :: (load (s32), addrspace 4)32 ; GFX7-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]33 ;34 ; GFX8-LABEL: name: load_constant_s32_from_435 ; GFX8: liveins: $sgpr0_sgpr136 ; GFX8-NEXT: {{ $}}37 ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr138 ; GFX8-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 0, 0 :: (load (s32), addrspace 4)39 ; GFX8-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]40 ;41 ; GFX10-LABEL: name: load_constant_s32_from_442 ; GFX10: liveins: $sgpr0_sgpr143 ; GFX10-NEXT: {{ $}}44 ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr145 ; GFX10-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 0, 0 :: (load (s32), addrspace 4)46 ; GFX10-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]47 ;48 ; GFX11-LABEL: name: load_constant_s32_from_449 ; GFX11: liveins: $sgpr0_sgpr150 ; GFX11-NEXT: {{ $}}51 ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr152 ; GFX11-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 0, 0 :: (load (s32), addrspace 4)53 ; GFX11-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]54 %0:sgpr(p4) = COPY $sgpr0_sgpr155 %1:sgpr(s32) = G_LOAD %0 :: (load (s32), align 4, addrspace 4)56 $sgpr0 = COPY %157 58...59 60---61 62name: load_constant_v2s16_from_463legalized: true64regBankSelected: true65tracksRegLiveness: true66 67 68body: |69 bb.0:70 liveins: $sgpr0_sgpr171 72 ; GFX6-LABEL: name: load_constant_v2s16_from_473 ; GFX6: liveins: $sgpr0_sgpr174 ; GFX6-NEXT: {{ $}}75 ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr176 ; GFX6-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 0, 0 :: (load (<2 x s16>), addrspace 4)77 ; GFX6-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]78 ;79 ; GFX7-LABEL: name: load_constant_v2s16_from_480 ; GFX7: liveins: $sgpr0_sgpr181 ; GFX7-NEXT: {{ $}}82 ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr183 ; GFX7-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 0, 0 :: (load (<2 x s16>), addrspace 4)84 ; GFX7-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]85 ;86 ; GFX8-LABEL: name: load_constant_v2s16_from_487 ; GFX8: liveins: $sgpr0_sgpr188 ; GFX8-NEXT: {{ $}}89 ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr190 ; GFX8-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 0, 0 :: (load (<2 x s16>), addrspace 4)91 ; GFX8-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]92 ;93 ; GFX10-LABEL: name: load_constant_v2s16_from_494 ; GFX10: liveins: $sgpr0_sgpr195 ; GFX10-NEXT: {{ $}}96 ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr197 ; GFX10-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 0, 0 :: (load (<2 x s16>), addrspace 4)98 ; GFX10-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]99 ;100 ; GFX11-LABEL: name: load_constant_v2s16_from_4101 ; GFX11: liveins: $sgpr0_sgpr1102 ; GFX11-NEXT: {{ $}}103 ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1104 ; GFX11-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 0, 0 :: (load (<2 x s16>), addrspace 4)105 ; GFX11-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]106 %0:sgpr(p4) = COPY $sgpr0_sgpr1107 %1:sgpr(<2 x s16>) = G_LOAD %0 :: (load (<2 x s16>), align 4, addrspace 4)108 $sgpr0 = COPY %1109 110...111 112 113---114name: load_constant_v2s32115legalized: true116regBankSelected: true117tracksRegLiveness: true118 119body: |120 bb.0:121 liveins: $sgpr0_sgpr1122 123 ; GFX6-LABEL: name: load_constant_v2s32124 ; GFX6: liveins: $sgpr0_sgpr1125 ; GFX6-NEXT: {{ $}}126 ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1127 ; GFX6-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (<2 x s32>), addrspace 4)128 ; GFX6-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]129 ;130 ; GFX7-LABEL: name: load_constant_v2s32131 ; GFX7: liveins: $sgpr0_sgpr1132 ; GFX7-NEXT: {{ $}}133 ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1134 ; GFX7-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (<2 x s32>), addrspace 4)135 ; GFX7-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]136 ;137 ; GFX8-LABEL: name: load_constant_v2s32138 ; GFX8: liveins: $sgpr0_sgpr1139 ; GFX8-NEXT: {{ $}}140 ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1141 ; GFX8-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (<2 x s32>), addrspace 4)142 ; GFX8-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]143 ;144 ; GFX10-LABEL: name: load_constant_v2s32145 ; GFX10: liveins: $sgpr0_sgpr1146 ; GFX10-NEXT: {{ $}}147 ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1148 ; GFX10-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (<2 x s32>), addrspace 4)149 ; GFX10-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]150 ;151 ; GFX11-LABEL: name: load_constant_v2s32152 ; GFX11: liveins: $sgpr0_sgpr1153 ; GFX11-NEXT: {{ $}}154 ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1155 ; GFX11-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (<2 x s32>), addrspace 4)156 ; GFX11-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]157 %0:sgpr(p4) = COPY $sgpr0_sgpr1158 %1:sgpr(<2 x s32>) = G_LOAD %0 :: (load (<2 x s32>), align 8, addrspace 4)159 $sgpr0_sgpr1 = COPY %1160 161...162 163---164name: load_constant_v2s32_align4165legalized: true166regBankSelected: true167tracksRegLiveness: true168 169body: |170 bb.0:171 liveins: $sgpr0_sgpr1172 173 ; GFX6-LABEL: name: load_constant_v2s32_align4174 ; GFX6: liveins: $sgpr0_sgpr1175 ; GFX6-NEXT: {{ $}}176 ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1177 ; GFX6-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (<2 x s32>), align 4, addrspace 4)178 ; GFX6-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]179 ;180 ; GFX7-LABEL: name: load_constant_v2s32_align4181 ; GFX7: liveins: $sgpr0_sgpr1182 ; GFX7-NEXT: {{ $}}183 ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1184 ; GFX7-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (<2 x s32>), align 4, addrspace 4)185 ; GFX7-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]186 ;187 ; GFX8-LABEL: name: load_constant_v2s32_align4188 ; GFX8: liveins: $sgpr0_sgpr1189 ; GFX8-NEXT: {{ $}}190 ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1191 ; GFX8-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (<2 x s32>), align 4, addrspace 4)192 ; GFX8-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]193 ;194 ; GFX10-LABEL: name: load_constant_v2s32_align4195 ; GFX10: liveins: $sgpr0_sgpr1196 ; GFX10-NEXT: {{ $}}197 ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1198 ; GFX10-NEXT: early-clobber %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM_ec [[COPY]], 0, 0 :: (load (<2 x s32>), align 4, addrspace 4)199 ; GFX10-NEXT: $sgpr0_sgpr1 = COPY %1200 ;201 ; GFX11-LABEL: name: load_constant_v2s32_align4202 ; GFX11: liveins: $sgpr0_sgpr1203 ; GFX11-NEXT: {{ $}}204 ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1205 ; GFX11-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (<2 x s32>), align 4, addrspace 4)206 ; GFX11-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]207 %0:sgpr(p4) = COPY $sgpr0_sgpr1208 %1:sgpr(<2 x s32>) = G_LOAD %0 :: (load (<2 x s32>), align 4, addrspace 4)209 $sgpr0_sgpr1 = COPY %1210 211...212 213---214name: load_constant_v4s16_align4215legalized: true216regBankSelected: true217tracksRegLiveness: true218 219body: |220 bb.0:221 liveins: $sgpr0_sgpr1222 223 ; GFX6-LABEL: name: load_constant_v4s16_align4224 ; GFX6: liveins: $sgpr0_sgpr1225 ; GFX6-NEXT: {{ $}}226 ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1227 ; GFX6-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (<4 x s16>), align 4, addrspace 4)228 ; GFX6-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]229 ;230 ; GFX7-LABEL: name: load_constant_v4s16_align4231 ; GFX7: liveins: $sgpr0_sgpr1232 ; GFX7-NEXT: {{ $}}233 ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1234 ; GFX7-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (<4 x s16>), align 4, addrspace 4)235 ; GFX7-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]236 ;237 ; GFX8-LABEL: name: load_constant_v4s16_align4238 ; GFX8: liveins: $sgpr0_sgpr1239 ; GFX8-NEXT: {{ $}}240 ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1241 ; GFX8-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (<4 x s16>), align 4, addrspace 4)242 ; GFX8-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]243 ;244 ; GFX10-LABEL: name: load_constant_v4s16_align4245 ; GFX10: liveins: $sgpr0_sgpr1246 ; GFX10-NEXT: {{ $}}247 ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1248 ; GFX10-NEXT: early-clobber %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM_ec [[COPY]], 0, 0 :: (load (<4 x s16>), align 4, addrspace 4)249 ; GFX10-NEXT: $sgpr0_sgpr1 = COPY %1250 ;251 ; GFX11-LABEL: name: load_constant_v4s16_align4252 ; GFX11: liveins: $sgpr0_sgpr1253 ; GFX11-NEXT: {{ $}}254 ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1255 ; GFX11-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (<4 x s16>), align 4, addrspace 4)256 ; GFX11-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]257 %0:sgpr(p4) = COPY $sgpr0_sgpr1258 %1:sgpr(<4 x s16>) = G_LOAD %0 :: (load (<4 x s16>), align 4, addrspace 4)259 $sgpr0_sgpr1 = COPY %1260 261...262 263---264 265name: load_constant_v4s32_align4266legalized: true267regBankSelected: true268tracksRegLiveness: true269 270body: |271 bb.0:272 liveins: $sgpr0_sgpr1273 274 ; GFX6-LABEL: name: load_constant_v4s32_align4275 ; GFX6: liveins: $sgpr0_sgpr1276 ; GFX6-NEXT: {{ $}}277 ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1278 ; GFX6-NEXT: [[S_LOAD_DWORDX4_IMM:%[0-9]+]]:sgpr_128 = S_LOAD_DWORDX4_IMM [[COPY]], 0, 0 :: (load (<4 x s32>), align 4, addrspace 4)279 ; GFX6-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[S_LOAD_DWORDX4_IMM]]280 ;281 ; GFX7-LABEL: name: load_constant_v4s32_align4282 ; GFX7: liveins: $sgpr0_sgpr1283 ; GFX7-NEXT: {{ $}}284 ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1285 ; GFX7-NEXT: [[S_LOAD_DWORDX4_IMM:%[0-9]+]]:sgpr_128 = S_LOAD_DWORDX4_IMM [[COPY]], 0, 0 :: (load (<4 x s32>), align 4, addrspace 4)286 ; GFX7-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[S_LOAD_DWORDX4_IMM]]287 ;288 ; GFX8-LABEL: name: load_constant_v4s32_align4289 ; GFX8: liveins: $sgpr0_sgpr1290 ; GFX8-NEXT: {{ $}}291 ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1292 ; GFX8-NEXT: [[S_LOAD_DWORDX4_IMM:%[0-9]+]]:sgpr_128 = S_LOAD_DWORDX4_IMM [[COPY]], 0, 0 :: (load (<4 x s32>), align 4, addrspace 4)293 ; GFX8-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[S_LOAD_DWORDX4_IMM]]294 ;295 ; GFX10-LABEL: name: load_constant_v4s32_align4296 ; GFX10: liveins: $sgpr0_sgpr1297 ; GFX10-NEXT: {{ $}}298 ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1299 ; GFX10-NEXT: early-clobber %1:sgpr_128 = S_LOAD_DWORDX4_IMM_ec [[COPY]], 0, 0 :: (load (<4 x s32>), align 4, addrspace 4)300 ; GFX10-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY %1301 ;302 ; GFX11-LABEL: name: load_constant_v4s32_align4303 ; GFX11: liveins: $sgpr0_sgpr1304 ; GFX11-NEXT: {{ $}}305 ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1306 ; GFX11-NEXT: [[S_LOAD_DWORDX4_IMM:%[0-9]+]]:sgpr_128 = S_LOAD_DWORDX4_IMM [[COPY]], 0, 0 :: (load (<4 x s32>), align 4, addrspace 4)307 ; GFX11-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[S_LOAD_DWORDX4_IMM]]308 %0:sgpr(p4) = COPY $sgpr0_sgpr1309 %1:sgpr(<4 x s32>) = G_LOAD %0 :: (load (<4 x s32>), align 4, addrspace 4)310 $sgpr0_sgpr1_sgpr2_sgpr3 = COPY %1311 312...313 314---315 316name: load_constant_s64317legalized: true318regBankSelected: true319tracksRegLiveness: true320 321body: |322 bb.0:323 liveins: $sgpr0_sgpr1324 325 ; GFX6-LABEL: name: load_constant_s64326 ; GFX6: liveins: $sgpr0_sgpr1327 ; GFX6-NEXT: {{ $}}328 ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1329 ; GFX6-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (s64), addrspace 4)330 ; GFX6-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]331 ;332 ; GFX7-LABEL: name: load_constant_s64333 ; GFX7: liveins: $sgpr0_sgpr1334 ; GFX7-NEXT: {{ $}}335 ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1336 ; GFX7-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (s64), addrspace 4)337 ; GFX7-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]338 ;339 ; GFX8-LABEL: name: load_constant_s64340 ; GFX8: liveins: $sgpr0_sgpr1341 ; GFX8-NEXT: {{ $}}342 ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1343 ; GFX8-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (s64), addrspace 4)344 ; GFX8-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]345 ;346 ; GFX10-LABEL: name: load_constant_s64347 ; GFX10: liveins: $sgpr0_sgpr1348 ; GFX10-NEXT: {{ $}}349 ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1350 ; GFX10-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (s64), addrspace 4)351 ; GFX10-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]352 ;353 ; GFX11-LABEL: name: load_constant_s64354 ; GFX11: liveins: $sgpr0_sgpr1355 ; GFX11-NEXT: {{ $}}356 ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1357 ; GFX11-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (s64), addrspace 4)358 ; GFX11-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]359 %0:sgpr(p4) = COPY $sgpr0_sgpr1360 %1:sgpr(s64) = G_LOAD %0 :: (load (s64), align 8, addrspace 4)361 $sgpr0_sgpr1 = COPY %1362 363...364 365---366 367name: load_constant_s64_align4368legalized: true369regBankSelected: true370tracksRegLiveness: true371 372body: |373 bb.0:374 liveins: $sgpr0_sgpr1375 376 ; GFX6-LABEL: name: load_constant_s64_align4377 ; GFX6: liveins: $sgpr0_sgpr1378 ; GFX6-NEXT: {{ $}}379 ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1380 ; GFX6-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (s64), align 4, addrspace 4)381 ; GFX6-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]382 ;383 ; GFX7-LABEL: name: load_constant_s64_align4384 ; GFX7: liveins: $sgpr0_sgpr1385 ; GFX7-NEXT: {{ $}}386 ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1387 ; GFX7-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (s64), align 4, addrspace 4)388 ; GFX7-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]389 ;390 ; GFX8-LABEL: name: load_constant_s64_align4391 ; GFX8: liveins: $sgpr0_sgpr1392 ; GFX8-NEXT: {{ $}}393 ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1394 ; GFX8-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (s64), align 4, addrspace 4)395 ; GFX8-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]396 ;397 ; GFX10-LABEL: name: load_constant_s64_align4398 ; GFX10: liveins: $sgpr0_sgpr1399 ; GFX10-NEXT: {{ $}}400 ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1401 ; GFX10-NEXT: early-clobber %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM_ec [[COPY]], 0, 0 :: (load (s64), align 4, addrspace 4)402 ; GFX10-NEXT: $sgpr0_sgpr1 = COPY %1403 ;404 ; GFX11-LABEL: name: load_constant_s64_align4405 ; GFX11: liveins: $sgpr0_sgpr1406 ; GFX11-NEXT: {{ $}}407 ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1408 ; GFX11-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (s64), align 4, addrspace 4)409 ; GFX11-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]410 %0:sgpr(p4) = COPY $sgpr0_sgpr1411 %1:sgpr(s64) = G_LOAD %0 :: (load (s64), align 4, addrspace 4)412 $sgpr0_sgpr1 = COPY %1413 414...415 416---417 418name: load_constant_v2s64419legalized: true420regBankSelected: true421tracksRegLiveness: true422 423body: |424 bb.0:425 liveins: $sgpr0_sgpr1426 427 ; GFX6-LABEL: name: load_constant_v2s64428 ; GFX6: liveins: $sgpr0_sgpr1429 ; GFX6-NEXT: {{ $}}430 ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1431 ; GFX6-NEXT: [[S_LOAD_DWORDX4_IMM:%[0-9]+]]:sgpr_128 = S_LOAD_DWORDX4_IMM [[COPY]], 0, 0 :: (load (<2 x s64>), align 4, addrspace 4)432 ; GFX6-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[S_LOAD_DWORDX4_IMM]]433 ;434 ; GFX7-LABEL: name: load_constant_v2s64435 ; GFX7: liveins: $sgpr0_sgpr1436 ; GFX7-NEXT: {{ $}}437 ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1438 ; GFX7-NEXT: [[S_LOAD_DWORDX4_IMM:%[0-9]+]]:sgpr_128 = S_LOAD_DWORDX4_IMM [[COPY]], 0, 0 :: (load (<2 x s64>), align 4, addrspace 4)439 ; GFX7-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[S_LOAD_DWORDX4_IMM]]440 ;441 ; GFX8-LABEL: name: load_constant_v2s64442 ; GFX8: liveins: $sgpr0_sgpr1443 ; GFX8-NEXT: {{ $}}444 ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1445 ; GFX8-NEXT: [[S_LOAD_DWORDX4_IMM:%[0-9]+]]:sgpr_128 = S_LOAD_DWORDX4_IMM [[COPY]], 0, 0 :: (load (<2 x s64>), align 4, addrspace 4)446 ; GFX8-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[S_LOAD_DWORDX4_IMM]]447 ;448 ; GFX10-LABEL: name: load_constant_v2s64449 ; GFX10: liveins: $sgpr0_sgpr1450 ; GFX10-NEXT: {{ $}}451 ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1452 ; GFX10-NEXT: early-clobber %1:sgpr_128 = S_LOAD_DWORDX4_IMM_ec [[COPY]], 0, 0 :: (load (<2 x s64>), align 4, addrspace 4)453 ; GFX10-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY %1454 ;455 ; GFX11-LABEL: name: load_constant_v2s64456 ; GFX11: liveins: $sgpr0_sgpr1457 ; GFX11-NEXT: {{ $}}458 ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1459 ; GFX11-NEXT: [[S_LOAD_DWORDX4_IMM:%[0-9]+]]:sgpr_128 = S_LOAD_DWORDX4_IMM [[COPY]], 0, 0 :: (load (<2 x s64>), align 4, addrspace 4)460 ; GFX11-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[S_LOAD_DWORDX4_IMM]]461 %0:sgpr(p4) = COPY $sgpr0_sgpr1462 %1:sgpr(<2 x s64>) = G_LOAD %0 :: (load (<2 x s64>), align 4, addrspace 4)463 $sgpr0_sgpr1_sgpr2_sgpr3 = COPY %1464 465...466 467---468 469name: load_constant_v2p1470legalized: true471regBankSelected: true472tracksRegLiveness: true473 474body: |475 bb.0:476 liveins: $sgpr0_sgpr1477 478 ; GFX6-LABEL: name: load_constant_v2p1479 ; GFX6: liveins: $sgpr0_sgpr1480 ; GFX6-NEXT: {{ $}}481 ; GFX6-NEXT: [[COPY:%[0-9]+]]:sgpr(p4) = COPY $sgpr0_sgpr1482 ; GFX6-NEXT: [[LOAD:%[0-9]+]]:sgpr_128(<2 x p1>) = G_LOAD [[COPY]](p4) :: (load (<2 x p1>), align 4, addrspace 4)483 ; GFX6-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[LOAD]](<2 x p1>)484 ;485 ; GFX7-LABEL: name: load_constant_v2p1486 ; GFX7: liveins: $sgpr0_sgpr1487 ; GFX7-NEXT: {{ $}}488 ; GFX7-NEXT: [[COPY:%[0-9]+]]:sgpr(p4) = COPY $sgpr0_sgpr1489 ; GFX7-NEXT: [[LOAD:%[0-9]+]]:sgpr_128(<2 x p1>) = G_LOAD [[COPY]](p4) :: (load (<2 x p1>), align 4, addrspace 4)490 ; GFX7-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[LOAD]](<2 x p1>)491 ;492 ; GFX8-LABEL: name: load_constant_v2p1493 ; GFX8: liveins: $sgpr0_sgpr1494 ; GFX8-NEXT: {{ $}}495 ; GFX8-NEXT: [[COPY:%[0-9]+]]:sgpr(p4) = COPY $sgpr0_sgpr1496 ; GFX8-NEXT: [[LOAD:%[0-9]+]]:sgpr_128(<2 x p1>) = G_LOAD [[COPY]](p4) :: (load (<2 x p1>), align 4, addrspace 4)497 ; GFX8-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[LOAD]](<2 x p1>)498 ;499 ; GFX10-LABEL: name: load_constant_v2p1500 ; GFX10: liveins: $sgpr0_sgpr1501 ; GFX10-NEXT: {{ $}}502 ; GFX10-NEXT: [[COPY:%[0-9]+]]:sgpr(p4) = COPY $sgpr0_sgpr1503 ; GFX10-NEXT: [[LOAD:%[0-9]+]]:sgpr_128(<2 x p1>) = G_LOAD [[COPY]](p4) :: (load (<2 x p1>), align 4, addrspace 4)504 ; GFX10-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[LOAD]](<2 x p1>)505 ;506 ; GFX11-LABEL: name: load_constant_v2p1507 ; GFX11: liveins: $sgpr0_sgpr1508 ; GFX11-NEXT: {{ $}}509 ; GFX11-NEXT: [[COPY:%[0-9]+]]:sgpr(p4) = COPY $sgpr0_sgpr1510 ; GFX11-NEXT: [[LOAD:%[0-9]+]]:sgpr_128(<2 x p1>) = G_LOAD [[COPY]](p4) :: (load (<2 x p1>), align 4, addrspace 4)511 ; GFX11-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[LOAD]](<2 x p1>)512 %0:sgpr(p4) = COPY $sgpr0_sgpr1513 %1:sgpr(<2 x p1>) = G_LOAD %0 :: (load (<2 x p1>), align 4, addrspace 4)514 $sgpr0_sgpr1_sgpr2_sgpr3 = COPY %1515 516...517 518---519 520name: load_constant_s128_align4521legalized: true522regBankSelected: true523tracksRegLiveness: true524 525body: |526 bb.0:527 liveins: $sgpr0_sgpr1528 529 ; GFX6-LABEL: name: load_constant_s128_align4530 ; GFX6: liveins: $sgpr0_sgpr1531 ; GFX6-NEXT: {{ $}}532 ; GFX6-NEXT: [[COPY:%[0-9]+]]:sgpr(p4) = COPY $sgpr0_sgpr1533 ; GFX6-NEXT: [[LOAD:%[0-9]+]]:sgpr_128(s128) = G_LOAD [[COPY]](p4) :: (load (s128), align 4, addrspace 4)534 ; GFX6-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[LOAD]](s128)535 ;536 ; GFX7-LABEL: name: load_constant_s128_align4537 ; GFX7: liveins: $sgpr0_sgpr1538 ; GFX7-NEXT: {{ $}}539 ; GFX7-NEXT: [[COPY:%[0-9]+]]:sgpr(p4) = COPY $sgpr0_sgpr1540 ; GFX7-NEXT: [[LOAD:%[0-9]+]]:sgpr_128(s128) = G_LOAD [[COPY]](p4) :: (load (s128), align 4, addrspace 4)541 ; GFX7-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[LOAD]](s128)542 ;543 ; GFX8-LABEL: name: load_constant_s128_align4544 ; GFX8: liveins: $sgpr0_sgpr1545 ; GFX8-NEXT: {{ $}}546 ; GFX8-NEXT: [[COPY:%[0-9]+]]:sgpr(p4) = COPY $sgpr0_sgpr1547 ; GFX8-NEXT: [[LOAD:%[0-9]+]]:sgpr_128(s128) = G_LOAD [[COPY]](p4) :: (load (s128), align 4, addrspace 4)548 ; GFX8-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[LOAD]](s128)549 ;550 ; GFX10-LABEL: name: load_constant_s128_align4551 ; GFX10: liveins: $sgpr0_sgpr1552 ; GFX10-NEXT: {{ $}}553 ; GFX10-NEXT: [[COPY:%[0-9]+]]:sgpr(p4) = COPY $sgpr0_sgpr1554 ; GFX10-NEXT: [[LOAD:%[0-9]+]]:sgpr_128(s128) = G_LOAD [[COPY]](p4) :: (load (s128), align 4, addrspace 4)555 ; GFX10-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[LOAD]](s128)556 ;557 ; GFX11-LABEL: name: load_constant_s128_align4558 ; GFX11: liveins: $sgpr0_sgpr1559 ; GFX11-NEXT: {{ $}}560 ; GFX11-NEXT: [[COPY:%[0-9]+]]:sgpr(p4) = COPY $sgpr0_sgpr1561 ; GFX11-NEXT: [[LOAD:%[0-9]+]]:sgpr_128(s128) = G_LOAD [[COPY]](p4) :: (load (s128), align 4, addrspace 4)562 ; GFX11-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[LOAD]](s128)563 %0:sgpr(p4) = COPY $sgpr0_sgpr1564 %1:sgpr(s128) = G_LOAD %0 :: (load (s128), align 4, addrspace 4)565 $sgpr0_sgpr1_sgpr2_sgpr3 = COPY %1566 567...568 569---570 571name: load_constant_p3_from_4572legalized: true573regBankSelected: true574tracksRegLiveness: true575 576body: |577 bb.0:578 liveins: $sgpr0_sgpr1579 580 ; GFX6-LABEL: name: load_constant_p3_from_4581 ; GFX6: liveins: $sgpr0_sgpr1582 ; GFX6-NEXT: {{ $}}583 ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1584 ; GFX6-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 0, 0 :: (load (p3), addrspace 4)585 ; GFX6-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]586 ;587 ; GFX7-LABEL: name: load_constant_p3_from_4588 ; GFX7: liveins: $sgpr0_sgpr1589 ; GFX7-NEXT: {{ $}}590 ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1591 ; GFX7-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 0, 0 :: (load (p3), addrspace 4)592 ; GFX7-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]593 ;594 ; GFX8-LABEL: name: load_constant_p3_from_4595 ; GFX8: liveins: $sgpr0_sgpr1596 ; GFX8-NEXT: {{ $}}597 ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1598 ; GFX8-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 0, 0 :: (load (p3), addrspace 4)599 ; GFX8-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]600 ;601 ; GFX10-LABEL: name: load_constant_p3_from_4602 ; GFX10: liveins: $sgpr0_sgpr1603 ; GFX10-NEXT: {{ $}}604 ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1605 ; GFX10-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 0, 0 :: (load (p3), addrspace 4)606 ; GFX10-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]607 ;608 ; GFX11-LABEL: name: load_constant_p3_from_4609 ; GFX11: liveins: $sgpr0_sgpr1610 ; GFX11-NEXT: {{ $}}611 ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1612 ; GFX11-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 0, 0 :: (load (p3), addrspace 4)613 ; GFX11-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]614 %0:sgpr(p4) = COPY $sgpr0_sgpr1615 %1:sgpr(p3) = G_LOAD %0 :: (load (p3), align 4, addrspace 4)616 $sgpr0 = COPY %1617 618...619 620---621 622name: load_constant_p4_from_8623legalized: true624regBankSelected: true625tracksRegLiveness: true626 627body: |628 bb.0:629 liveins: $sgpr0_sgpr1630 631 ; GFX6-LABEL: name: load_constant_p4_from_8632 ; GFX6: liveins: $sgpr0_sgpr1633 ; GFX6-NEXT: {{ $}}634 ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1635 ; GFX6-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (p4), addrspace 4)636 ; GFX6-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]637 ;638 ; GFX7-LABEL: name: load_constant_p4_from_8639 ; GFX7: liveins: $sgpr0_sgpr1640 ; GFX7-NEXT: {{ $}}641 ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1642 ; GFX7-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (p4), addrspace 4)643 ; GFX7-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]644 ;645 ; GFX8-LABEL: name: load_constant_p4_from_8646 ; GFX8: liveins: $sgpr0_sgpr1647 ; GFX8-NEXT: {{ $}}648 ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1649 ; GFX8-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (p4), addrspace 4)650 ; GFX8-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]651 ;652 ; GFX10-LABEL: name: load_constant_p4_from_8653 ; GFX10: liveins: $sgpr0_sgpr1654 ; GFX10-NEXT: {{ $}}655 ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1656 ; GFX10-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (p4), addrspace 4)657 ; GFX10-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]658 ;659 ; GFX11-LABEL: name: load_constant_p4_from_8660 ; GFX11: liveins: $sgpr0_sgpr1661 ; GFX11-NEXT: {{ $}}662 ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1663 ; GFX11-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (p4), addrspace 4)664 ; GFX11-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]665 %0:sgpr(p4) = COPY $sgpr0_sgpr1666 %1:sgpr(p4) = G_LOAD %0 :: (load (p4), align 8, addrspace 4)667 $sgpr0_sgpr1 = COPY %1668 669...670 671---672 673name: load_constant_p999_from_8674legalized: true675regBankSelected: true676tracksRegLiveness: true677 678body: |679 bb.0:680 liveins: $sgpr0_sgpr1681 682 ; GFX6-LABEL: name: load_constant_p999_from_8683 ; GFX6: liveins: $sgpr0_sgpr1684 ; GFX6-NEXT: {{ $}}685 ; GFX6-NEXT: [[COPY:%[0-9]+]]:sgpr(p4) = COPY $sgpr0_sgpr1686 ; GFX6-NEXT: [[LOAD:%[0-9]+]]:sreg_64(p999) = G_LOAD [[COPY]](p4) :: (load (p999), addrspace 4)687 ; GFX6-NEXT: $sgpr0_sgpr1 = COPY [[LOAD]](p999)688 ;689 ; GFX7-LABEL: name: load_constant_p999_from_8690 ; GFX7: liveins: $sgpr0_sgpr1691 ; GFX7-NEXT: {{ $}}692 ; GFX7-NEXT: [[COPY:%[0-9]+]]:sgpr(p4) = COPY $sgpr0_sgpr1693 ; GFX7-NEXT: [[LOAD:%[0-9]+]]:sreg_64(p999) = G_LOAD [[COPY]](p4) :: (load (p999), addrspace 4)694 ; GFX7-NEXT: $sgpr0_sgpr1 = COPY [[LOAD]](p999)695 ;696 ; GFX8-LABEL: name: load_constant_p999_from_8697 ; GFX8: liveins: $sgpr0_sgpr1698 ; GFX8-NEXT: {{ $}}699 ; GFX8-NEXT: [[COPY:%[0-9]+]]:sgpr(p4) = COPY $sgpr0_sgpr1700 ; GFX8-NEXT: [[LOAD:%[0-9]+]]:sreg_64(p999) = G_LOAD [[COPY]](p4) :: (load (p999), addrspace 4)701 ; GFX8-NEXT: $sgpr0_sgpr1 = COPY [[LOAD]](p999)702 ;703 ; GFX10-LABEL: name: load_constant_p999_from_8704 ; GFX10: liveins: $sgpr0_sgpr1705 ; GFX10-NEXT: {{ $}}706 ; GFX10-NEXT: [[COPY:%[0-9]+]]:sgpr(p4) = COPY $sgpr0_sgpr1707 ; GFX10-NEXT: [[LOAD:%[0-9]+]]:sreg_64(p999) = G_LOAD [[COPY]](p4) :: (load (p999), addrspace 4)708 ; GFX10-NEXT: $sgpr0_sgpr1 = COPY [[LOAD]](p999)709 ;710 ; GFX11-LABEL: name: load_constant_p999_from_8711 ; GFX11: liveins: $sgpr0_sgpr1712 ; GFX11-NEXT: {{ $}}713 ; GFX11-NEXT: [[COPY:%[0-9]+]]:sgpr(p4) = COPY $sgpr0_sgpr1714 ; GFX11-NEXT: [[LOAD:%[0-9]+]]:sreg_64(p999) = G_LOAD [[COPY]](p4) :: (load (p999), addrspace 4)715 ; GFX11-NEXT: $sgpr0_sgpr1 = COPY [[LOAD]](p999)716 %0:sgpr(p4) = COPY $sgpr0_sgpr1717 %1:sgpr(p999) = G_LOAD %0 :: (load (p999), align 8, addrspace 4)718 $sgpr0_sgpr1 = COPY %1719 720...721 722---723 724name: load_constant_v2p3725legalized: true726regBankSelected: true727tracksRegLiveness: true728 729body: |730 bb.0:731 liveins: $sgpr0_sgpr1732 733 ; GFX6-LABEL: name: load_constant_v2p3734 ; GFX6: liveins: $sgpr0_sgpr1735 ; GFX6-NEXT: {{ $}}736 ; GFX6-NEXT: [[COPY:%[0-9]+]]:sgpr(p4) = COPY $sgpr0_sgpr1737 ; GFX6-NEXT: [[LOAD:%[0-9]+]]:sreg_64(<2 x p3>) = G_LOAD [[COPY]](p4) :: (load (<2 x p3>), addrspace 4)738 ; GFX6-NEXT: $sgpr0_sgpr1 = COPY [[LOAD]](<2 x p3>)739 ;740 ; GFX7-LABEL: name: load_constant_v2p3741 ; GFX7: liveins: $sgpr0_sgpr1742 ; GFX7-NEXT: {{ $}}743 ; GFX7-NEXT: [[COPY:%[0-9]+]]:sgpr(p4) = COPY $sgpr0_sgpr1744 ; GFX7-NEXT: [[LOAD:%[0-9]+]]:sreg_64(<2 x p3>) = G_LOAD [[COPY]](p4) :: (load (<2 x p3>), addrspace 4)745 ; GFX7-NEXT: $sgpr0_sgpr1 = COPY [[LOAD]](<2 x p3>)746 ;747 ; GFX8-LABEL: name: load_constant_v2p3748 ; GFX8: liveins: $sgpr0_sgpr1749 ; GFX8-NEXT: {{ $}}750 ; GFX8-NEXT: [[COPY:%[0-9]+]]:sgpr(p4) = COPY $sgpr0_sgpr1751 ; GFX8-NEXT: [[LOAD:%[0-9]+]]:sreg_64(<2 x p3>) = G_LOAD [[COPY]](p4) :: (load (<2 x p3>), addrspace 4)752 ; GFX8-NEXT: $sgpr0_sgpr1 = COPY [[LOAD]](<2 x p3>)753 ;754 ; GFX10-LABEL: name: load_constant_v2p3755 ; GFX10: liveins: $sgpr0_sgpr1756 ; GFX10-NEXT: {{ $}}757 ; GFX10-NEXT: [[COPY:%[0-9]+]]:sgpr(p4) = COPY $sgpr0_sgpr1758 ; GFX10-NEXT: [[LOAD:%[0-9]+]]:sreg_64(<2 x p3>) = G_LOAD [[COPY]](p4) :: (load (<2 x p3>), addrspace 4)759 ; GFX10-NEXT: $sgpr0_sgpr1 = COPY [[LOAD]](<2 x p3>)760 ;761 ; GFX11-LABEL: name: load_constant_v2p3762 ; GFX11: liveins: $sgpr0_sgpr1763 ; GFX11-NEXT: {{ $}}764 ; GFX11-NEXT: [[COPY:%[0-9]+]]:sgpr(p4) = COPY $sgpr0_sgpr1765 ; GFX11-NEXT: [[LOAD:%[0-9]+]]:sreg_64(<2 x p3>) = G_LOAD [[COPY]](p4) :: (load (<2 x p3>), addrspace 4)766 ; GFX11-NEXT: $sgpr0_sgpr1 = COPY [[LOAD]](<2 x p3>)767 %0:sgpr(p4) = COPY $sgpr0_sgpr1768 %1:sgpr(<2 x p3>) = G_LOAD %0 :: (load (<2 x p3>), align 8, addrspace 4)769 $sgpr0_sgpr1 = COPY %1770 771...772 773---774 775name: load_constant_v2s16776legalized: true777regBankSelected: true778tracksRegLiveness: true779 780body: |781 bb.0:782 liveins: $sgpr0_sgpr1783 784 ; GFX6-LABEL: name: load_constant_v2s16785 ; GFX6: liveins: $sgpr0_sgpr1786 ; GFX6-NEXT: {{ $}}787 ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1788 ; GFX6-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 0, 0 :: (load (<2 x s16>), addrspace 4)789 ; GFX6-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]790 ;791 ; GFX7-LABEL: name: load_constant_v2s16792 ; GFX7: liveins: $sgpr0_sgpr1793 ; GFX7-NEXT: {{ $}}794 ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1795 ; GFX7-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 0, 0 :: (load (<2 x s16>), addrspace 4)796 ; GFX7-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]797 ;798 ; GFX8-LABEL: name: load_constant_v2s16799 ; GFX8: liveins: $sgpr0_sgpr1800 ; GFX8-NEXT: {{ $}}801 ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1802 ; GFX8-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 0, 0 :: (load (<2 x s16>), addrspace 4)803 ; GFX8-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]804 ;805 ; GFX10-LABEL: name: load_constant_v2s16806 ; GFX10: liveins: $sgpr0_sgpr1807 ; GFX10-NEXT: {{ $}}808 ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1809 ; GFX10-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 0, 0 :: (load (<2 x s16>), addrspace 4)810 ; GFX10-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]811 ;812 ; GFX11-LABEL: name: load_constant_v2s16813 ; GFX11: liveins: $sgpr0_sgpr1814 ; GFX11-NEXT: {{ $}}815 ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1816 ; GFX11-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 0, 0 :: (load (<2 x s16>), addrspace 4)817 ; GFX11-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]818 %0:sgpr(p4) = COPY $sgpr0_sgpr1819 %1:sgpr(<2 x s16>) = G_LOAD %0 :: (load (<2 x s16>), align 4, addrspace 4)820 $sgpr0 = COPY %1821 822...823 824---825 826name: load_constant_v4s16827legalized: true828regBankSelected: true829tracksRegLiveness: true830 831body: |832 bb.0:833 liveins: $sgpr0_sgpr1834 835 ; GFX6-LABEL: name: load_constant_v4s16836 ; GFX6: liveins: $sgpr0_sgpr1837 ; GFX6-NEXT: {{ $}}838 ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1839 ; GFX6-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (<4 x s16>), addrspace 4)840 ; GFX6-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]841 ;842 ; GFX7-LABEL: name: load_constant_v4s16843 ; GFX7: liveins: $sgpr0_sgpr1844 ; GFX7-NEXT: {{ $}}845 ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1846 ; GFX7-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (<4 x s16>), addrspace 4)847 ; GFX7-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]848 ;849 ; GFX8-LABEL: name: load_constant_v4s16850 ; GFX8: liveins: $sgpr0_sgpr1851 ; GFX8-NEXT: {{ $}}852 ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1853 ; GFX8-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (<4 x s16>), addrspace 4)854 ; GFX8-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]855 ;856 ; GFX10-LABEL: name: load_constant_v4s16857 ; GFX10: liveins: $sgpr0_sgpr1858 ; GFX10-NEXT: {{ $}}859 ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1860 ; GFX10-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (<4 x s16>), addrspace 4)861 ; GFX10-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]862 ;863 ; GFX11-LABEL: name: load_constant_v4s16864 ; GFX11: liveins: $sgpr0_sgpr1865 ; GFX11-NEXT: {{ $}}866 ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1867 ; GFX11-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]], 0, 0 :: (load (<4 x s16>), addrspace 4)868 ; GFX11-NEXT: $sgpr0_sgpr1 = COPY [[S_LOAD_DWORDX2_IMM]]869 %0:sgpr(p4) = COPY $sgpr0_sgpr1870 %1:sgpr(<4 x s16>) = G_LOAD %0 :: (load (<4 x s16>), align 8, addrspace 4)871 $sgpr0_sgpr1 = COPY %1872 873...874 875---876 877name: load_constant_v8s16878legalized: true879regBankSelected: true880tracksRegLiveness: true881 882body: |883 bb.0:884 liveins: $sgpr0_sgpr1885 886 ; GFX6-LABEL: name: load_constant_v8s16887 ; GFX6: liveins: $sgpr0_sgpr1888 ; GFX6-NEXT: {{ $}}889 ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1890 ; GFX6-NEXT: [[S_LOAD_DWORDX4_IMM:%[0-9]+]]:sgpr_128 = S_LOAD_DWORDX4_IMM [[COPY]], 0, 0 :: (load (<8 x s16>), align 4, addrspace 4)891 ; GFX6-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[S_LOAD_DWORDX4_IMM]]892 ;893 ; GFX7-LABEL: name: load_constant_v8s16894 ; GFX7: liveins: $sgpr0_sgpr1895 ; GFX7-NEXT: {{ $}}896 ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1897 ; GFX7-NEXT: [[S_LOAD_DWORDX4_IMM:%[0-9]+]]:sgpr_128 = S_LOAD_DWORDX4_IMM [[COPY]], 0, 0 :: (load (<8 x s16>), align 4, addrspace 4)898 ; GFX7-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[S_LOAD_DWORDX4_IMM]]899 ;900 ; GFX8-LABEL: name: load_constant_v8s16901 ; GFX8: liveins: $sgpr0_sgpr1902 ; GFX8-NEXT: {{ $}}903 ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1904 ; GFX8-NEXT: [[S_LOAD_DWORDX4_IMM:%[0-9]+]]:sgpr_128 = S_LOAD_DWORDX4_IMM [[COPY]], 0, 0 :: (load (<8 x s16>), align 4, addrspace 4)905 ; GFX8-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[S_LOAD_DWORDX4_IMM]]906 ;907 ; GFX10-LABEL: name: load_constant_v8s16908 ; GFX10: liveins: $sgpr0_sgpr1909 ; GFX10-NEXT: {{ $}}910 ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1911 ; GFX10-NEXT: early-clobber %1:sgpr_128 = S_LOAD_DWORDX4_IMM_ec [[COPY]], 0, 0 :: (load (<8 x s16>), align 4, addrspace 4)912 ; GFX10-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY %1913 ;914 ; GFX11-LABEL: name: load_constant_v8s16915 ; GFX11: liveins: $sgpr0_sgpr1916 ; GFX11-NEXT: {{ $}}917 ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1918 ; GFX11-NEXT: [[S_LOAD_DWORDX4_IMM:%[0-9]+]]:sgpr_128 = S_LOAD_DWORDX4_IMM [[COPY]], 0, 0 :: (load (<8 x s16>), align 4, addrspace 4)919 ; GFX11-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3 = COPY [[S_LOAD_DWORDX4_IMM]]920 %0:sgpr(p4) = COPY $sgpr0_sgpr1921 %1:sgpr(<8 x s16>) = G_LOAD %0 :: (load (<8 x s16>), align 4, addrspace 4)922 $sgpr0_sgpr1_sgpr2_sgpr3 = COPY %1923 924...925 926---927 928name: load_constant_v8s32929legalized: true930regBankSelected: true931tracksRegLiveness: true932 933body: |934 bb.0:935 liveins: $sgpr0_sgpr1936 937 ; GFX6-LABEL: name: load_constant_v8s32938 ; GFX6: liveins: $sgpr0_sgpr1939 ; GFX6-NEXT: {{ $}}940 ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1941 ; GFX6-NEXT: [[S_LOAD_DWORDX8_IMM:%[0-9]+]]:sgpr_256 = S_LOAD_DWORDX8_IMM [[COPY]], 0, 0 :: (load (<8 x s32>), align 4, addrspace 4)942 ; GFX6-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7 = COPY [[S_LOAD_DWORDX8_IMM]]943 ;944 ; GFX7-LABEL: name: load_constant_v8s32945 ; GFX7: liveins: $sgpr0_sgpr1946 ; GFX7-NEXT: {{ $}}947 ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1948 ; GFX7-NEXT: [[S_LOAD_DWORDX8_IMM:%[0-9]+]]:sgpr_256 = S_LOAD_DWORDX8_IMM [[COPY]], 0, 0 :: (load (<8 x s32>), align 4, addrspace 4)949 ; GFX7-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7 = COPY [[S_LOAD_DWORDX8_IMM]]950 ;951 ; GFX8-LABEL: name: load_constant_v8s32952 ; GFX8: liveins: $sgpr0_sgpr1953 ; GFX8-NEXT: {{ $}}954 ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1955 ; GFX8-NEXT: [[S_LOAD_DWORDX8_IMM:%[0-9]+]]:sgpr_256 = S_LOAD_DWORDX8_IMM [[COPY]], 0, 0 :: (load (<8 x s32>), align 4, addrspace 4)956 ; GFX8-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7 = COPY [[S_LOAD_DWORDX8_IMM]]957 ;958 ; GFX10-LABEL: name: load_constant_v8s32959 ; GFX10: liveins: $sgpr0_sgpr1960 ; GFX10-NEXT: {{ $}}961 ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1962 ; GFX10-NEXT: early-clobber %1:sgpr_256 = S_LOAD_DWORDX8_IMM_ec [[COPY]], 0, 0 :: (load (<8 x s32>), align 4, addrspace 4)963 ; GFX10-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7 = COPY %1964 ;965 ; GFX11-LABEL: name: load_constant_v8s32966 ; GFX11: liveins: $sgpr0_sgpr1967 ; GFX11-NEXT: {{ $}}968 ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1969 ; GFX11-NEXT: [[S_LOAD_DWORDX8_IMM:%[0-9]+]]:sgpr_256 = S_LOAD_DWORDX8_IMM [[COPY]], 0, 0 :: (load (<8 x s32>), align 4, addrspace 4)970 ; GFX11-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7 = COPY [[S_LOAD_DWORDX8_IMM]]971 %0:sgpr(p4) = COPY $sgpr0_sgpr1972 %1:sgpr(<8 x s32>) = G_LOAD %0 :: (load (<8 x s32>), align 4, addrspace 4)973 $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7 = COPY %1974 975...976 977---978 979name: load_constant_v16s32980legalized: true981regBankSelected: true982tracksRegLiveness: true983 984body: |985 bb.0:986 liveins: $sgpr0_sgpr1987 988 ; GFX6-LABEL: name: load_constant_v16s32989 ; GFX6: liveins: $sgpr0_sgpr1990 ; GFX6-NEXT: {{ $}}991 ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1992 ; GFX6-NEXT: [[S_LOAD_DWORDX16_IMM:%[0-9]+]]:sgpr_512 = S_LOAD_DWORDX16_IMM [[COPY]], 0, 0 :: (load (<16 x s32>), align 4, addrspace 4)993 ; GFX6-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15 = COPY [[S_LOAD_DWORDX16_IMM]]994 ;995 ; GFX7-LABEL: name: load_constant_v16s32996 ; GFX7: liveins: $sgpr0_sgpr1997 ; GFX7-NEXT: {{ $}}998 ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1999 ; GFX7-NEXT: [[S_LOAD_DWORDX16_IMM:%[0-9]+]]:sgpr_512 = S_LOAD_DWORDX16_IMM [[COPY]], 0, 0 :: (load (<16 x s32>), align 4, addrspace 4)1000 ; GFX7-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15 = COPY [[S_LOAD_DWORDX16_IMM]]1001 ;1002 ; GFX8-LABEL: name: load_constant_v16s321003 ; GFX8: liveins: $sgpr0_sgpr11004 ; GFX8-NEXT: {{ $}}1005 ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11006 ; GFX8-NEXT: [[S_LOAD_DWORDX16_IMM:%[0-9]+]]:sgpr_512 = S_LOAD_DWORDX16_IMM [[COPY]], 0, 0 :: (load (<16 x s32>), align 4, addrspace 4)1007 ; GFX8-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15 = COPY [[S_LOAD_DWORDX16_IMM]]1008 ;1009 ; GFX10-LABEL: name: load_constant_v16s321010 ; GFX10: liveins: $sgpr0_sgpr11011 ; GFX10-NEXT: {{ $}}1012 ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11013 ; GFX10-NEXT: early-clobber %1:sgpr_512 = S_LOAD_DWORDX16_IMM_ec [[COPY]], 0, 0 :: (load (<16 x s32>), align 4, addrspace 4)1014 ; GFX10-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15 = COPY %11015 ;1016 ; GFX11-LABEL: name: load_constant_v16s321017 ; GFX11: liveins: $sgpr0_sgpr11018 ; GFX11-NEXT: {{ $}}1019 ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11020 ; GFX11-NEXT: [[S_LOAD_DWORDX16_IMM:%[0-9]+]]:sgpr_512 = S_LOAD_DWORDX16_IMM [[COPY]], 0, 0 :: (load (<16 x s32>), align 4, addrspace 4)1021 ; GFX11-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15 = COPY [[S_LOAD_DWORDX16_IMM]]1022 %0:sgpr(p4) = COPY $sgpr0_sgpr11023 %1:sgpr(<16 x s32>) = G_LOAD %0 :: (load (<16 x s32>), align 4, addrspace 4)1024 $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15 = COPY %11025 1026...1027 1028---1029 1030name: load_constant_v8s641031legalized: true1032regBankSelected: true1033tracksRegLiveness: true1034 1035body: |1036 bb.0:1037 liveins: $sgpr0_sgpr11038 1039 ; GFX6-LABEL: name: load_constant_v8s641040 ; GFX6: liveins: $sgpr0_sgpr11041 ; GFX6-NEXT: {{ $}}1042 ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11043 ; GFX6-NEXT: [[S_LOAD_DWORDX16_IMM:%[0-9]+]]:sgpr_512 = S_LOAD_DWORDX16_IMM [[COPY]], 0, 0 :: (load (<8 x s64>), align 4, addrspace 4)1044 ; GFX6-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15 = COPY [[S_LOAD_DWORDX16_IMM]]1045 ;1046 ; GFX7-LABEL: name: load_constant_v8s641047 ; GFX7: liveins: $sgpr0_sgpr11048 ; GFX7-NEXT: {{ $}}1049 ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11050 ; GFX7-NEXT: [[S_LOAD_DWORDX16_IMM:%[0-9]+]]:sgpr_512 = S_LOAD_DWORDX16_IMM [[COPY]], 0, 0 :: (load (<8 x s64>), align 4, addrspace 4)1051 ; GFX7-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15 = COPY [[S_LOAD_DWORDX16_IMM]]1052 ;1053 ; GFX8-LABEL: name: load_constant_v8s641054 ; GFX8: liveins: $sgpr0_sgpr11055 ; GFX8-NEXT: {{ $}}1056 ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11057 ; GFX8-NEXT: [[S_LOAD_DWORDX16_IMM:%[0-9]+]]:sgpr_512 = S_LOAD_DWORDX16_IMM [[COPY]], 0, 0 :: (load (<8 x s64>), align 4, addrspace 4)1058 ; GFX8-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15 = COPY [[S_LOAD_DWORDX16_IMM]]1059 ;1060 ; GFX10-LABEL: name: load_constant_v8s641061 ; GFX10: liveins: $sgpr0_sgpr11062 ; GFX10-NEXT: {{ $}}1063 ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11064 ; GFX10-NEXT: early-clobber %1:sgpr_512 = S_LOAD_DWORDX16_IMM_ec [[COPY]], 0, 0 :: (load (<8 x s64>), align 4, addrspace 4)1065 ; GFX10-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15 = COPY %11066 ;1067 ; GFX11-LABEL: name: load_constant_v8s641068 ; GFX11: liveins: $sgpr0_sgpr11069 ; GFX11-NEXT: {{ $}}1070 ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11071 ; GFX11-NEXT: [[S_LOAD_DWORDX16_IMM:%[0-9]+]]:sgpr_512 = S_LOAD_DWORDX16_IMM [[COPY]], 0, 0 :: (load (<8 x s64>), align 4, addrspace 4)1072 ; GFX11-NEXT: $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15 = COPY [[S_LOAD_DWORDX16_IMM]]1073 %0:sgpr(p4) = COPY $sgpr0_sgpr11074 %1:sgpr(<8 x s64>) = G_LOAD %0 :: (load (<8 x s64>), align 4, addrspace 4)1075 $sgpr0_sgpr1_sgpr2_sgpr3_sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15 = COPY %11076 1077...1078 1079################################################################################1080### Stress addressing modes1081################################################################################1082 1083---1084 1085name: load_constant_s32_from_4_gep_10201086legalized: true1087regBankSelected: true1088tracksRegLiveness: true1089 1090body: |1091 bb.0:1092 liveins: $sgpr0_sgpr11093 1094 ; GFX6-LABEL: name: load_constant_s32_from_4_gep_10201095 ; GFX6: liveins: $sgpr0_sgpr11096 ; GFX6-NEXT: {{ $}}1097 ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11098 ; GFX6-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 255, 0 :: (load (s32), addrspace 4)1099 ; GFX6-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]1100 ;1101 ; GFX7-LABEL: name: load_constant_s32_from_4_gep_10201102 ; GFX7: liveins: $sgpr0_sgpr11103 ; GFX7-NEXT: {{ $}}1104 ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11105 ; GFX7-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 255, 0 :: (load (s32), addrspace 4)1106 ; GFX7-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]1107 ;1108 ; GFX8-LABEL: name: load_constant_s32_from_4_gep_10201109 ; GFX8: liveins: $sgpr0_sgpr11110 ; GFX8-NEXT: {{ $}}1111 ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11112 ; GFX8-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 1020, 0 :: (load (s32), addrspace 4)1113 ; GFX8-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]1114 ;1115 ; GFX10-LABEL: name: load_constant_s32_from_4_gep_10201116 ; GFX10: liveins: $sgpr0_sgpr11117 ; GFX10-NEXT: {{ $}}1118 ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11119 ; GFX10-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 1020, 0 :: (load (s32), addrspace 4)1120 ; GFX10-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]1121 ;1122 ; GFX11-LABEL: name: load_constant_s32_from_4_gep_10201123 ; GFX11: liveins: $sgpr0_sgpr11124 ; GFX11-NEXT: {{ $}}1125 ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11126 ; GFX11-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 1020, 0 :: (load (s32), addrspace 4)1127 ; GFX11-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]1128 %0:sgpr(p4) = COPY $sgpr0_sgpr11129 %1:sgpr(s64) = G_CONSTANT i64 10201130 %2:sgpr(p4) = G_PTR_ADD %0, %11131 %3:sgpr(s32) = G_LOAD %2 :: (load (s32), align 4, addrspace 4)1132 $sgpr0 = COPY %31133 1134...1135 1136---1137 1138name: load_constant_s32_from_4_gep_10241139legalized: true1140regBankSelected: true1141tracksRegLiveness: true1142 1143body: |1144 bb.0:1145 liveins: $sgpr0_sgpr11146 1147 ; GFX6-LABEL: name: load_constant_s32_from_4_gep_10241148 ; GFX6: liveins: $sgpr0_sgpr11149 ; GFX6-NEXT: {{ $}}1150 ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11151 ; GFX6-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 10241152 ; GFX6-NEXT: [[S_LOAD_DWORD_SGPR:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_SGPR [[COPY]], [[S_MOV_B32_]], 0 :: (load (s32), addrspace 4)1153 ; GFX6-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_SGPR]]1154 ;1155 ; GFX7-LABEL: name: load_constant_s32_from_4_gep_10241156 ; GFX7: liveins: $sgpr0_sgpr11157 ; GFX7-NEXT: {{ $}}1158 ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11159 ; GFX7-NEXT: [[S_LOAD_DWORD_IMM_ci:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM_ci [[COPY]], 256, 0 :: (load (s32), addrspace 4)1160 ; GFX7-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM_ci]]1161 ;1162 ; GFX8-LABEL: name: load_constant_s32_from_4_gep_10241163 ; GFX8: liveins: $sgpr0_sgpr11164 ; GFX8-NEXT: {{ $}}1165 ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11166 ; GFX8-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 1024, 0 :: (load (s32), addrspace 4)1167 ; GFX8-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]1168 ;1169 ; GFX10-LABEL: name: load_constant_s32_from_4_gep_10241170 ; GFX10: liveins: $sgpr0_sgpr11171 ; GFX10-NEXT: {{ $}}1172 ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11173 ; GFX10-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 1024, 0 :: (load (s32), addrspace 4)1174 ; GFX10-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]1175 ;1176 ; GFX11-LABEL: name: load_constant_s32_from_4_gep_10241177 ; GFX11: liveins: $sgpr0_sgpr11178 ; GFX11-NEXT: {{ $}}1179 ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11180 ; GFX11-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 1024, 0 :: (load (s32), addrspace 4)1181 ; GFX11-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]1182 %0:sgpr(p4) = COPY $sgpr0_sgpr11183 %1:sgpr(s64) = G_CONSTANT i64 10241184 %2:sgpr(p4) = G_PTR_ADD %0, %11185 %3:sgpr(s32) = G_LOAD %2 :: (load (s32), align 4, addrspace 4)1186 $sgpr0 = COPY %31187 1188...1189 1190---1191 1192name: load_constant_s32_from_4_gep_10485751193legalized: true1194regBankSelected: true1195tracksRegLiveness: true1196 1197body: |1198 bb.0:1199 liveins: $sgpr0_sgpr11200 1201 ; GFX6-LABEL: name: load_constant_s32_from_4_gep_10485751202 ; GFX6: liveins: $sgpr0_sgpr11203 ; GFX6-NEXT: {{ $}}1204 ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11205 ; GFX6-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 10485751206 ; GFX6-NEXT: [[S_LOAD_DWORD_SGPR:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_SGPR [[COPY]], [[S_MOV_B32_]], 0 :: (load (s32), addrspace 4)1207 ; GFX6-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_SGPR]]1208 ;1209 ; GFX7-LABEL: name: load_constant_s32_from_4_gep_10485751210 ; GFX7: liveins: $sgpr0_sgpr11211 ; GFX7-NEXT: {{ $}}1212 ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11213 ; GFX7-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 10485751214 ; GFX7-NEXT: [[S_LOAD_DWORD_SGPR:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_SGPR [[COPY]], [[S_MOV_B32_]], 0 :: (load (s32), addrspace 4)1215 ; GFX7-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_SGPR]]1216 ;1217 ; GFX8-LABEL: name: load_constant_s32_from_4_gep_10485751218 ; GFX8: liveins: $sgpr0_sgpr11219 ; GFX8-NEXT: {{ $}}1220 ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11221 ; GFX8-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[COPY]], 1048575, 0 :: (load (s32), addrspace 4)1222 ; GFX8-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]1223 ;1224 ; GFX10-LABEL: name: load_constant_s32_from_4_gep_10485751225 ; GFX10: liveins: $sgpr0_sgpr11226 ; GFX10-NEXT: {{ $}}1227 ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11228 ; GFX10-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 10485751229 ; GFX10-NEXT: [[S_LOAD_DWORD_SGPR_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_SGPR_IMM [[COPY]], [[S_MOV_B32_]], 0, 0 :: (load (s32), addrspace 4)1230 ; GFX10-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_SGPR_IMM]]1231 ;1232 ; GFX11-LABEL: name: load_constant_s32_from_4_gep_10485751233 ; GFX11: liveins: $sgpr0_sgpr11234 ; GFX11-NEXT: {{ $}}1235 ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11236 ; GFX11-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 10485751237 ; GFX11-NEXT: [[S_LOAD_DWORD_SGPR_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_SGPR_IMM [[COPY]], [[S_MOV_B32_]], 0, 0 :: (load (s32), addrspace 4)1238 ; GFX11-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_SGPR_IMM]]1239 %0:sgpr(p4) = COPY $sgpr0_sgpr11240 %1:sgpr(s64) = G_CONSTANT i64 10485751241 %2:sgpr(p4) = G_PTR_ADD %0, %11242 %3:sgpr(s32) = G_LOAD %2 :: (load (s32), align 4, addrspace 4)1243 $sgpr0 = COPY %31244 1245...1246 1247---1248 1249name: load_constant_s32_from_4_gep_10485761250legalized: true1251regBankSelected: true1252tracksRegLiveness: true1253 1254body: |1255 bb.0:1256 liveins: $sgpr0_sgpr11257 1258 ; GFX6-LABEL: name: load_constant_s32_from_4_gep_10485761259 ; GFX6: liveins: $sgpr0_sgpr11260 ; GFX6-NEXT: {{ $}}1261 ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11262 ; GFX6-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 10485761263 ; GFX6-NEXT: [[S_LOAD_DWORD_SGPR:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_SGPR [[COPY]], [[S_MOV_B32_]], 0 :: (load (s32), addrspace 4)1264 ; GFX6-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_SGPR]]1265 ;1266 ; GFX7-LABEL: name: load_constant_s32_from_4_gep_10485761267 ; GFX7: liveins: $sgpr0_sgpr11268 ; GFX7-NEXT: {{ $}}1269 ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11270 ; GFX7-NEXT: [[S_LOAD_DWORD_IMM_ci:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM_ci [[COPY]], 262144, 0 :: (load (s32), addrspace 4)1271 ; GFX7-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM_ci]]1272 ;1273 ; GFX8-LABEL: name: load_constant_s32_from_4_gep_10485761274 ; GFX8: liveins: $sgpr0_sgpr11275 ; GFX8-NEXT: {{ $}}1276 ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11277 ; GFX8-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 10485761278 ; GFX8-NEXT: [[S_LOAD_DWORD_SGPR:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_SGPR [[COPY]], [[S_MOV_B32_]], 0 :: (load (s32), addrspace 4)1279 ; GFX8-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_SGPR]]1280 ;1281 ; GFX10-LABEL: name: load_constant_s32_from_4_gep_10485761282 ; GFX10: liveins: $sgpr0_sgpr11283 ; GFX10-NEXT: {{ $}}1284 ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11285 ; GFX10-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 10485761286 ; GFX10-NEXT: [[S_LOAD_DWORD_SGPR_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_SGPR_IMM [[COPY]], [[S_MOV_B32_]], 0, 0 :: (load (s32), addrspace 4)1287 ; GFX10-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_SGPR_IMM]]1288 ;1289 ; GFX11-LABEL: name: load_constant_s32_from_4_gep_10485761290 ; GFX11: liveins: $sgpr0_sgpr11291 ; GFX11-NEXT: {{ $}}1292 ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11293 ; GFX11-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 10485761294 ; GFX11-NEXT: [[S_LOAD_DWORD_SGPR_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_SGPR_IMM [[COPY]], [[S_MOV_B32_]], 0, 0 :: (load (s32), addrspace 4)1295 ; GFX11-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_SGPR_IMM]]1296 %0:sgpr(p4) = COPY $sgpr0_sgpr11297 %1:sgpr(s64) = G_CONSTANT i64 10485761298 %2:sgpr(p4) = G_PTR_ADD %0, %11299 %3:sgpr(s32) = G_LOAD %2 :: (load (s32), align 4, addrspace 4)1300 $sgpr0 = COPY %31301 1302...1303 1304---1305 1306name: load_constant_s32_from_4_gep_10737418231307legalized: true1308regBankSelected: true1309tracksRegLiveness: true1310 1311body: |1312 bb.0:1313 liveins: $sgpr0_sgpr11314 1315 ; GFX6-LABEL: name: load_constant_s32_from_4_gep_10737418231316 ; GFX6: liveins: $sgpr0_sgpr11317 ; GFX6-NEXT: {{ $}}1318 ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11319 ; GFX6-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 10737418231320 ; GFX6-NEXT: [[S_LOAD_DWORD_SGPR:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_SGPR [[COPY]], [[S_MOV_B32_]], 0 :: (load (s32), addrspace 4)1321 ; GFX6-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_SGPR]]1322 ;1323 ; GFX7-LABEL: name: load_constant_s32_from_4_gep_10737418231324 ; GFX7: liveins: $sgpr0_sgpr11325 ; GFX7-NEXT: {{ $}}1326 ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11327 ; GFX7-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 10737418231328 ; GFX7-NEXT: [[S_LOAD_DWORD_SGPR:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_SGPR [[COPY]], [[S_MOV_B32_]], 0 :: (load (s32), addrspace 4)1329 ; GFX7-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_SGPR]]1330 ;1331 ; GFX8-LABEL: name: load_constant_s32_from_4_gep_10737418231332 ; GFX8: liveins: $sgpr0_sgpr11333 ; GFX8-NEXT: {{ $}}1334 ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11335 ; GFX8-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 10737418231336 ; GFX8-NEXT: [[S_LOAD_DWORD_SGPR:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_SGPR [[COPY]], [[S_MOV_B32_]], 0 :: (load (s32), addrspace 4)1337 ; GFX8-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_SGPR]]1338 ;1339 ; GFX10-LABEL: name: load_constant_s32_from_4_gep_10737418231340 ; GFX10: liveins: $sgpr0_sgpr11341 ; GFX10-NEXT: {{ $}}1342 ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11343 ; GFX10-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 10737418231344 ; GFX10-NEXT: [[S_LOAD_DWORD_SGPR_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_SGPR_IMM [[COPY]], [[S_MOV_B32_]], 0, 0 :: (load (s32), addrspace 4)1345 ; GFX10-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_SGPR_IMM]]1346 ;1347 ; GFX11-LABEL: name: load_constant_s32_from_4_gep_10737418231348 ; GFX11: liveins: $sgpr0_sgpr11349 ; GFX11-NEXT: {{ $}}1350 ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11351 ; GFX11-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 10737418231352 ; GFX11-NEXT: [[S_LOAD_DWORD_SGPR_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_SGPR_IMM [[COPY]], [[S_MOV_B32_]], 0, 0 :: (load (s32), addrspace 4)1353 ; GFX11-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_SGPR_IMM]]1354 %0:sgpr(p4) = COPY $sgpr0_sgpr11355 %1:sgpr(s64) = G_CONSTANT i64 10737418231356 %2:sgpr(p4) = G_PTR_ADD %0, %11357 %3:sgpr(s32) = G_LOAD %2 :: (load (s32), align 4, addrspace 4)1358 $sgpr0 = COPY %31359 1360...1361 1362---1363 1364name: load_constant_s32_from_4_gep_negative_11365legalized: true1366regBankSelected: true1367tracksRegLiveness: true1368 1369body: |1370 bb.0:1371 liveins: $sgpr0_sgpr11372 1373 ; GFX6-LABEL: name: load_constant_s32_from_4_gep_negative_11374 ; GFX6: liveins: $sgpr0_sgpr11375 ; GFX6-NEXT: {{ $}}1376 ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11377 ; GFX6-NEXT: [[S_MOV_B64_:%[0-9]+]]:sreg_64 = S_MOV_B64 -11378 ; GFX6-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub01379 ; GFX6-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY [[S_MOV_B64_]].sub01380 ; GFX6-NEXT: [[COPY3:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub11381 ; GFX6-NEXT: [[COPY4:%[0-9]+]]:sreg_32 = COPY [[S_MOV_B64_]].sub11382 ; GFX6-NEXT: [[S_ADD_U32_:%[0-9]+]]:sreg_32 = S_ADD_U32 [[COPY1]], [[COPY2]], implicit-def $scc1383 ; GFX6-NEXT: [[S_ADDC_U32_:%[0-9]+]]:sreg_32 = S_ADDC_U32 [[COPY3]], [[COPY4]], implicit-def dead $scc, implicit $scc1384 ; GFX6-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sreg_64_xexec = REG_SEQUENCE [[S_ADD_U32_]], %subreg.sub0, [[S_ADDC_U32_]], %subreg.sub11385 ; GFX6-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[REG_SEQUENCE]], 0, 0 :: (load (s32), addrspace 4)1386 ; GFX6-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]1387 ;1388 ; GFX7-LABEL: name: load_constant_s32_from_4_gep_negative_11389 ; GFX7: liveins: $sgpr0_sgpr11390 ; GFX7-NEXT: {{ $}}1391 ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11392 ; GFX7-NEXT: [[S_MOV_B64_:%[0-9]+]]:sreg_64 = S_MOV_B64 -11393 ; GFX7-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub01394 ; GFX7-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY [[S_MOV_B64_]].sub01395 ; GFX7-NEXT: [[COPY3:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub11396 ; GFX7-NEXT: [[COPY4:%[0-9]+]]:sreg_32 = COPY [[S_MOV_B64_]].sub11397 ; GFX7-NEXT: [[S_ADD_U32_:%[0-9]+]]:sreg_32 = S_ADD_U32 [[COPY1]], [[COPY2]], implicit-def $scc1398 ; GFX7-NEXT: [[S_ADDC_U32_:%[0-9]+]]:sreg_32 = S_ADDC_U32 [[COPY3]], [[COPY4]], implicit-def dead $scc, implicit $scc1399 ; GFX7-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sreg_64_xexec = REG_SEQUENCE [[S_ADD_U32_]], %subreg.sub0, [[S_ADDC_U32_]], %subreg.sub11400 ; GFX7-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[REG_SEQUENCE]], 0, 0 :: (load (s32), addrspace 4)1401 ; GFX7-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]1402 ;1403 ; GFX8-LABEL: name: load_constant_s32_from_4_gep_negative_11404 ; GFX8: liveins: $sgpr0_sgpr11405 ; GFX8-NEXT: {{ $}}1406 ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11407 ; GFX8-NEXT: [[S_MOV_B64_:%[0-9]+]]:sreg_64 = S_MOV_B64 -11408 ; GFX8-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub01409 ; GFX8-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY [[S_MOV_B64_]].sub01410 ; GFX8-NEXT: [[COPY3:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub11411 ; GFX8-NEXT: [[COPY4:%[0-9]+]]:sreg_32 = COPY [[S_MOV_B64_]].sub11412 ; GFX8-NEXT: [[S_ADD_U32_:%[0-9]+]]:sreg_32 = S_ADD_U32 [[COPY1]], [[COPY2]], implicit-def $scc1413 ; GFX8-NEXT: [[S_ADDC_U32_:%[0-9]+]]:sreg_32 = S_ADDC_U32 [[COPY3]], [[COPY4]], implicit-def dead $scc, implicit $scc1414 ; GFX8-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sreg_64_xexec = REG_SEQUENCE [[S_ADD_U32_]], %subreg.sub0, [[S_ADDC_U32_]], %subreg.sub11415 ; GFX8-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[REG_SEQUENCE]], 0, 0 :: (load (s32), addrspace 4)1416 ; GFX8-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]1417 ;1418 ; GFX10-LABEL: name: load_constant_s32_from_4_gep_negative_11419 ; GFX10: liveins: $sgpr0_sgpr11420 ; GFX10-NEXT: {{ $}}1421 ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11422 ; GFX10-NEXT: [[S_MOV_B64_:%[0-9]+]]:sreg_64 = S_MOV_B64 -11423 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub01424 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY [[S_MOV_B64_]].sub01425 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub11426 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:sreg_32 = COPY [[S_MOV_B64_]].sub11427 ; GFX10-NEXT: [[S_ADD_U32_:%[0-9]+]]:sreg_32 = S_ADD_U32 [[COPY1]], [[COPY2]], implicit-def $scc1428 ; GFX10-NEXT: [[S_ADDC_U32_:%[0-9]+]]:sreg_32 = S_ADDC_U32 [[COPY3]], [[COPY4]], implicit-def dead $scc, implicit $scc1429 ; GFX10-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sreg_64_xexec = REG_SEQUENCE [[S_ADD_U32_]], %subreg.sub0, [[S_ADDC_U32_]], %subreg.sub11430 ; GFX10-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[REG_SEQUENCE]], 0, 0 :: (load (s32), addrspace 4)1431 ; GFX10-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]1432 ;1433 ; GFX11-LABEL: name: load_constant_s32_from_4_gep_negative_11434 ; GFX11: liveins: $sgpr0_sgpr11435 ; GFX11-NEXT: {{ $}}1436 ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11437 ; GFX11-NEXT: [[S_MOV_B64_:%[0-9]+]]:sreg_64 = S_MOV_B64 -11438 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub01439 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY [[S_MOV_B64_]].sub01440 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub11441 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:sreg_32 = COPY [[S_MOV_B64_]].sub11442 ; GFX11-NEXT: [[S_ADD_U32_:%[0-9]+]]:sreg_32 = S_ADD_U32 [[COPY1]], [[COPY2]], implicit-def $scc1443 ; GFX11-NEXT: [[S_ADDC_U32_:%[0-9]+]]:sreg_32 = S_ADDC_U32 [[COPY3]], [[COPY4]], implicit-def dead $scc, implicit $scc1444 ; GFX11-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sreg_64_xexec = REG_SEQUENCE [[S_ADD_U32_]], %subreg.sub0, [[S_ADDC_U32_]], %subreg.sub11445 ; GFX11-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[REG_SEQUENCE]], 0, 0 :: (load (s32), addrspace 4)1446 ; GFX11-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]1447 %0:sgpr(p4) = COPY $sgpr0_sgpr11448 %1:sgpr(s64) = G_CONSTANT i64 -11449 %2:sgpr(p4) = G_PTR_ADD %0, %11450 %3:sgpr(s32) = G_LOAD %2 :: (load (s32), align 4, addrspace 4)1451 $sgpr0 = COPY %31452 1453...1454 1455---1456 1457name: load_constant_s32_from_4_gep_negative_5242881458legalized: true1459regBankSelected: true1460tracksRegLiveness: true1461 1462body: |1463 bb.0:1464 liveins: $sgpr0_sgpr11465 1466 ; GFX6-LABEL: name: load_constant_s32_from_4_gep_negative_5242881467 ; GFX6: liveins: $sgpr0_sgpr11468 ; GFX6-NEXT: {{ $}}1469 ; GFX6-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11470 ; GFX6-NEXT: [[S_MOV_B:%[0-9]+]]:sreg_64 = S_MOV_B64_IMM_PSEUDO -5242881471 ; GFX6-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub01472 ; GFX6-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY [[S_MOV_B]].sub01473 ; GFX6-NEXT: [[COPY3:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub11474 ; GFX6-NEXT: [[COPY4:%[0-9]+]]:sreg_32 = COPY [[S_MOV_B]].sub11475 ; GFX6-NEXT: [[S_ADD_U32_:%[0-9]+]]:sreg_32 = S_ADD_U32 [[COPY1]], [[COPY2]], implicit-def $scc1476 ; GFX6-NEXT: [[S_ADDC_U32_:%[0-9]+]]:sreg_32 = S_ADDC_U32 [[COPY3]], [[COPY4]], implicit-def dead $scc, implicit $scc1477 ; GFX6-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sreg_64_xexec = REG_SEQUENCE [[S_ADD_U32_]], %subreg.sub0, [[S_ADDC_U32_]], %subreg.sub11478 ; GFX6-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[REG_SEQUENCE]], 0, 0 :: (load (s32), addrspace 4)1479 ; GFX6-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]1480 ;1481 ; GFX7-LABEL: name: load_constant_s32_from_4_gep_negative_5242881482 ; GFX7: liveins: $sgpr0_sgpr11483 ; GFX7-NEXT: {{ $}}1484 ; GFX7-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11485 ; GFX7-NEXT: [[S_MOV_B:%[0-9]+]]:sreg_64 = S_MOV_B64_IMM_PSEUDO -5242881486 ; GFX7-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub01487 ; GFX7-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY [[S_MOV_B]].sub01488 ; GFX7-NEXT: [[COPY3:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub11489 ; GFX7-NEXT: [[COPY4:%[0-9]+]]:sreg_32 = COPY [[S_MOV_B]].sub11490 ; GFX7-NEXT: [[S_ADD_U32_:%[0-9]+]]:sreg_32 = S_ADD_U32 [[COPY1]], [[COPY2]], implicit-def $scc1491 ; GFX7-NEXT: [[S_ADDC_U32_:%[0-9]+]]:sreg_32 = S_ADDC_U32 [[COPY3]], [[COPY4]], implicit-def dead $scc, implicit $scc1492 ; GFX7-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sreg_64_xexec = REG_SEQUENCE [[S_ADD_U32_]], %subreg.sub0, [[S_ADDC_U32_]], %subreg.sub11493 ; GFX7-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[REG_SEQUENCE]], 0, 0 :: (load (s32), addrspace 4)1494 ; GFX7-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]1495 ;1496 ; GFX8-LABEL: name: load_constant_s32_from_4_gep_negative_5242881497 ; GFX8: liveins: $sgpr0_sgpr11498 ; GFX8-NEXT: {{ $}}1499 ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11500 ; GFX8-NEXT: [[S_MOV_B:%[0-9]+]]:sreg_64 = S_MOV_B64_IMM_PSEUDO -5242881501 ; GFX8-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub01502 ; GFX8-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY [[S_MOV_B]].sub01503 ; GFX8-NEXT: [[COPY3:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub11504 ; GFX8-NEXT: [[COPY4:%[0-9]+]]:sreg_32 = COPY [[S_MOV_B]].sub11505 ; GFX8-NEXT: [[S_ADD_U32_:%[0-9]+]]:sreg_32 = S_ADD_U32 [[COPY1]], [[COPY2]], implicit-def $scc1506 ; GFX8-NEXT: [[S_ADDC_U32_:%[0-9]+]]:sreg_32 = S_ADDC_U32 [[COPY3]], [[COPY4]], implicit-def dead $scc, implicit $scc1507 ; GFX8-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sreg_64_xexec = REG_SEQUENCE [[S_ADD_U32_]], %subreg.sub0, [[S_ADDC_U32_]], %subreg.sub11508 ; GFX8-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[REG_SEQUENCE]], 0, 0 :: (load (s32), addrspace 4)1509 ; GFX8-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]1510 ;1511 ; GFX10-LABEL: name: load_constant_s32_from_4_gep_negative_5242881512 ; GFX10: liveins: $sgpr0_sgpr11513 ; GFX10-NEXT: {{ $}}1514 ; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11515 ; GFX10-NEXT: [[S_MOV_B:%[0-9]+]]:sreg_64 = S_MOV_B64_IMM_PSEUDO -5242881516 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub01517 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY [[S_MOV_B]].sub01518 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub11519 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:sreg_32 = COPY [[S_MOV_B]].sub11520 ; GFX10-NEXT: [[S_ADD_U32_:%[0-9]+]]:sreg_32 = S_ADD_U32 [[COPY1]], [[COPY2]], implicit-def $scc1521 ; GFX10-NEXT: [[S_ADDC_U32_:%[0-9]+]]:sreg_32 = S_ADDC_U32 [[COPY3]], [[COPY4]], implicit-def dead $scc, implicit $scc1522 ; GFX10-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sreg_64_xexec = REG_SEQUENCE [[S_ADD_U32_]], %subreg.sub0, [[S_ADDC_U32_]], %subreg.sub11523 ; GFX10-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[REG_SEQUENCE]], 0, 0 :: (load (s32), addrspace 4)1524 ; GFX10-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]1525 ;1526 ; GFX11-LABEL: name: load_constant_s32_from_4_gep_negative_5242881527 ; GFX11: liveins: $sgpr0_sgpr11528 ; GFX11-NEXT: {{ $}}1529 ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr11530 ; GFX11-NEXT: [[S_MOV_B:%[0-9]+]]:sreg_64 = S_MOV_B64_IMM_PSEUDO -5242881531 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub01532 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY [[S_MOV_B]].sub01533 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:sreg_32 = COPY [[COPY]].sub11534 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:sreg_32 = COPY [[S_MOV_B]].sub11535 ; GFX11-NEXT: [[S_ADD_U32_:%[0-9]+]]:sreg_32 = S_ADD_U32 [[COPY1]], [[COPY2]], implicit-def $scc1536 ; GFX11-NEXT: [[S_ADDC_U32_:%[0-9]+]]:sreg_32 = S_ADDC_U32 [[COPY3]], [[COPY4]], implicit-def dead $scc, implicit $scc1537 ; GFX11-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sreg_64_xexec = REG_SEQUENCE [[S_ADD_U32_]], %subreg.sub0, [[S_ADDC_U32_]], %subreg.sub11538 ; GFX11-NEXT: [[S_LOAD_DWORD_IMM:%[0-9]+]]:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM [[REG_SEQUENCE]], 0, 0 :: (load (s32), addrspace 4)1539 ; GFX11-NEXT: $sgpr0 = COPY [[S_LOAD_DWORD_IMM]]1540 %0:sgpr(p4) = COPY $sgpr0_sgpr11541 %1:sgpr(s64) = G_CONSTANT i64 -5242881542 %2:sgpr(p4) = G_PTR_ADD %0, %11543 %3:sgpr(s32) = G_LOAD %2 :: (load (s32), align 4, addrspace 4)1544 $sgpr0 = COPY %31545 1546...1547