1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=tahiti -O0 -run-pass=legalizer -global-isel-abort=0 %s -o - | FileCheck -check-prefix=SI %s
3 # RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=bonaire -O0 -run-pass=legalizer -global-isel-abort=0 %s -o - | FileCheck -check-prefix=CI %s
4 # RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=fiji -O0 -run-pass=legalizer -global-isel-abort=0 %s -o - | FileCheck -check-prefix=VI %s
5 # RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=gfx900 -O0 -run-pass=legalizer -global-isel-abort=0 %s -o - | FileCheck -check-prefix=GFX9 %s
8 name: test_load_private_s1_align1
13 ; SI-LABEL: name: test_load_private_s1_align1
14 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
15 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
16 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
17 ; SI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
18 ; SI: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]
19 ; SI: $vgpr0 = COPY [[AND]](s32)
20 ; CI-LABEL: name: test_load_private_s1_align1
21 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
22 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
23 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
24 ; CI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
25 ; CI: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]
26 ; CI: $vgpr0 = COPY [[AND]](s32)
27 ; VI-LABEL: name: test_load_private_s1_align1
28 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
29 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
30 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
31 ; VI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
32 ; VI: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]
33 ; VI: $vgpr0 = COPY [[AND]](s32)
34 ; GFX9-LABEL: name: test_load_private_s1_align1
35 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
36 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
37 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
38 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
39 ; GFX9: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]
40 ; GFX9: $vgpr0 = COPY [[AND]](s32)
41 %0:_(p5) = COPY $vgpr0
42 %1:_(s1) = G_LOAD %0 :: (load 1, align 1, addrspace 5)
48 name: test_load_private_s2_align1
53 ; SI-LABEL: name: test_load_private_s2_align1
54 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
55 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
56 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
57 ; SI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
58 ; SI: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]
59 ; SI: $vgpr0 = COPY [[AND]](s32)
60 ; CI-LABEL: name: test_load_private_s2_align1
61 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
62 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
63 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
64 ; CI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
65 ; CI: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]
66 ; CI: $vgpr0 = COPY [[AND]](s32)
67 ; VI-LABEL: name: test_load_private_s2_align1
68 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
69 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
70 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
71 ; VI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
72 ; VI: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]
73 ; VI: $vgpr0 = COPY [[AND]](s32)
74 ; GFX9-LABEL: name: test_load_private_s2_align1
75 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
76 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
77 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
78 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
79 ; GFX9: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]
80 ; GFX9: $vgpr0 = COPY [[AND]](s32)
81 %0:_(p5) = COPY $vgpr0
82 %1:_(s2) = G_LOAD %0 :: (load 1, align 1, addrspace 5)
88 name: test_load_private_s8_align4
93 ; SI-LABEL: name: test_load_private_s8_align4
94 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
95 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, align 4, addrspace 5)
96 ; SI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
97 ; SI: $vgpr0 = COPY [[COPY1]](s32)
98 ; CI-LABEL: name: test_load_private_s8_align4
99 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
100 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, align 4, addrspace 5)
101 ; CI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
102 ; CI: $vgpr0 = COPY [[COPY1]](s32)
103 ; VI-LABEL: name: test_load_private_s8_align4
104 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
105 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, align 4, addrspace 5)
106 ; VI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
107 ; VI: $vgpr0 = COPY [[COPY1]](s32)
108 ; GFX9-LABEL: name: test_load_private_s8_align4
109 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
110 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, align 4, addrspace 5)
111 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
112 ; GFX9: $vgpr0 = COPY [[COPY1]](s32)
113 %0:_(p5) = COPY $vgpr0
114 %1:_(s8) = G_LOAD %0 :: (load 1, align 4, addrspace 5)
115 %2:_(s32) = G_ANYEXT %1
120 name: test_load_private_s8_align1
125 ; SI-LABEL: name: test_load_private_s8_align1
126 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
127 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
128 ; SI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
129 ; SI: $vgpr0 = COPY [[COPY1]](s32)
130 ; CI-LABEL: name: test_load_private_s8_align1
131 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
132 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
133 ; CI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
134 ; CI: $vgpr0 = COPY [[COPY1]](s32)
135 ; VI-LABEL: name: test_load_private_s8_align1
136 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
137 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
138 ; VI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
139 ; VI: $vgpr0 = COPY [[COPY1]](s32)
140 ; GFX9-LABEL: name: test_load_private_s8_align1
141 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
142 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
143 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
144 ; GFX9: $vgpr0 = COPY [[COPY1]](s32)
145 %0:_(p5) = COPY $vgpr0
146 %1:_(s8) = G_LOAD %0 :: (load 1, align 1, addrspace 5)
147 %2:_(s32) = G_ANYEXT %1
152 name: test_load_private_s16_align4
157 ; SI-LABEL: name: test_load_private_s16_align4
158 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
159 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, align 4, addrspace 5)
160 ; SI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
161 ; SI: $vgpr0 = COPY [[COPY1]](s32)
162 ; CI-LABEL: name: test_load_private_s16_align4
163 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
164 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, align 4, addrspace 5)
165 ; CI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
166 ; CI: $vgpr0 = COPY [[COPY1]](s32)
167 ; VI-LABEL: name: test_load_private_s16_align4
168 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
169 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, align 4, addrspace 5)
170 ; VI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
171 ; VI: $vgpr0 = COPY [[COPY1]](s32)
172 ; GFX9-LABEL: name: test_load_private_s16_align4
173 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
174 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, align 4, addrspace 5)
175 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
176 ; GFX9: $vgpr0 = COPY [[COPY1]](s32)
177 %0:_(p5) = COPY $vgpr0
178 %1:_(s16) = G_LOAD %0 :: (load 2, align 4, addrspace 5)
179 %2:_(s32) = G_ANYEXT %1
184 name: test_load_private_s16_align2
189 ; SI-LABEL: name: test_load_private_s16_align2
190 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
191 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
192 ; SI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
193 ; SI: $vgpr0 = COPY [[COPY1]](s32)
194 ; CI-LABEL: name: test_load_private_s16_align2
195 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
196 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
197 ; CI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
198 ; CI: $vgpr0 = COPY [[COPY1]](s32)
199 ; VI-LABEL: name: test_load_private_s16_align2
200 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
201 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
202 ; VI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
203 ; VI: $vgpr0 = COPY [[COPY1]](s32)
204 ; GFX9-LABEL: name: test_load_private_s16_align2
205 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
206 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
207 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
208 ; GFX9: $vgpr0 = COPY [[COPY1]](s32)
209 %0:_(p5) = COPY $vgpr0
210 %1:_(s16) = G_LOAD %0 :: (load 2, align 2, addrspace 5)
211 %2:_(s32) = G_ANYEXT %1
216 name: test_load_private_s16_align1
221 ; SI-LABEL: name: test_load_private_s16_align1
222 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
223 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
224 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
225 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
226 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
227 ; SI: [[C1:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
228 ; SI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
229 ; SI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C1]]
230 ; SI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
231 ; SI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
232 ; SI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
233 ; SI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C3]]
234 ; SI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
235 ; SI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[SHL]](s32)
236 ; SI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[TRUNC1]]
237 ; SI: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[OR]](s16)
238 ; SI: $vgpr0 = COPY [[ANYEXT]](s32)
239 ; CI-LABEL: name: test_load_private_s16_align1
240 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
241 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
242 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
243 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
244 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
245 ; CI: [[C1:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
246 ; CI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
247 ; CI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C1]]
248 ; CI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
249 ; CI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
250 ; CI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
251 ; CI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C3]]
252 ; CI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
253 ; CI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[SHL]](s32)
254 ; CI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[TRUNC1]]
255 ; CI: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[OR]](s16)
256 ; CI: $vgpr0 = COPY [[ANYEXT]](s32)
257 ; VI-LABEL: name: test_load_private_s16_align1
258 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
259 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
260 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
261 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
262 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
263 ; VI: [[C1:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
264 ; VI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
265 ; VI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C1]]
266 ; VI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
267 ; VI: [[AND1:%[0-9]+]]:_(s16) = G_AND [[TRUNC1]], [[C1]]
268 ; VI: [[C2:%[0-9]+]]:_(s16) = G_CONSTANT i16 8
269 ; VI: [[SHL:%[0-9]+]]:_(s16) = G_SHL [[AND1]], [[C2]](s16)
270 ; VI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[SHL]]
271 ; VI: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[OR]](s16)
272 ; VI: $vgpr0 = COPY [[ANYEXT]](s32)
273 ; GFX9-LABEL: name: test_load_private_s16_align1
274 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
275 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
276 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
277 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
278 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
279 ; GFX9: [[C1:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
280 ; GFX9: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
281 ; GFX9: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C1]]
282 ; GFX9: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
283 ; GFX9: [[AND1:%[0-9]+]]:_(s16) = G_AND [[TRUNC1]], [[C1]]
284 ; GFX9: [[C2:%[0-9]+]]:_(s16) = G_CONSTANT i16 8
285 ; GFX9: [[SHL:%[0-9]+]]:_(s16) = G_SHL [[AND1]], [[C2]](s16)
286 ; GFX9: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[SHL]]
287 ; GFX9: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[OR]](s16)
288 ; GFX9: $vgpr0 = COPY [[ANYEXT]](s32)
289 %0:_(p5) = COPY $vgpr0
290 %1:_(s16) = G_LOAD %0 :: (load 2, align 1, addrspace 5)
291 %2:_(s32) = G_ANYEXT %1
296 name: test_load_private_s32_align4
301 ; SI-LABEL: name: test_load_private_s32_align4
302 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
303 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
304 ; SI: $vgpr0 = COPY [[LOAD]](s32)
305 ; CI-LABEL: name: test_load_private_s32_align4
306 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
307 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
308 ; CI: $vgpr0 = COPY [[LOAD]](s32)
309 ; VI-LABEL: name: test_load_private_s32_align4
310 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
311 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
312 ; VI: $vgpr0 = COPY [[LOAD]](s32)
313 ; GFX9-LABEL: name: test_load_private_s32_align4
314 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
315 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
316 ; GFX9: $vgpr0 = COPY [[LOAD]](s32)
317 %0:_(p5) = COPY $vgpr0
318 %1:_(s32) = G_LOAD %0 :: (load 4, align 4, addrspace 5)
323 name: test_load_private_s32_align2
328 ; SI-LABEL: name: test_load_private_s32_align2
329 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
330 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
331 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
332 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
333 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
334 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
335 ; SI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
336 ; SI: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C1]]
337 ; SI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
338 ; SI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C1]]
339 ; SI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
340 ; SI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
341 ; SI: [[OR:%[0-9]+]]:_(s32) = G_OR [[AND]], [[SHL]]
342 ; SI: $vgpr0 = COPY [[OR]](s32)
343 ; CI-LABEL: name: test_load_private_s32_align2
344 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
345 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
346 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
347 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
348 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
349 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
350 ; CI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
351 ; CI: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C1]]
352 ; CI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
353 ; CI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C1]]
354 ; CI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
355 ; CI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
356 ; CI: [[OR:%[0-9]+]]:_(s32) = G_OR [[AND]], [[SHL]]
357 ; CI: $vgpr0 = COPY [[OR]](s32)
358 ; VI-LABEL: name: test_load_private_s32_align2
359 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
360 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
361 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
362 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
363 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
364 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
365 ; VI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
366 ; VI: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C1]]
367 ; VI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
368 ; VI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C1]]
369 ; VI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
370 ; VI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
371 ; VI: [[OR:%[0-9]+]]:_(s32) = G_OR [[AND]], [[SHL]]
372 ; VI: $vgpr0 = COPY [[OR]](s32)
373 ; GFX9-LABEL: name: test_load_private_s32_align2
374 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
375 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
376 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
377 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
378 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
379 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
380 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
381 ; GFX9: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C1]]
382 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
383 ; GFX9: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C1]]
384 ; GFX9: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
385 ; GFX9: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
386 ; GFX9: [[OR:%[0-9]+]]:_(s32) = G_OR [[AND]], [[SHL]]
387 ; GFX9: $vgpr0 = COPY [[OR]](s32)
388 %0:_(p5) = COPY $vgpr0
389 %1:_(s32) = G_LOAD %0 :: (load 4, align 2, addrspace 5)
394 name: test_load_private_s32_align1
399 ; SI-LABEL: name: test_load_private_s32_align1
400 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
401 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
402 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
403 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
404 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
405 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
406 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
407 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
408 ; SI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
409 ; SI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
410 ; SI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
411 ; SI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
412 ; SI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
413 ; SI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
414 ; SI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
415 ; SI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
416 ; SI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
417 ; SI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
418 ; SI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C5]]
419 ; SI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[COPY1]](s32)
420 ; SI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[SHL]](s32)
421 ; SI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[TRUNC1]]
422 ; SI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
423 ; SI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
424 ; SI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
425 ; SI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C5]]
426 ; SI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[C4]](s32)
427 ; SI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[SHL1]](s32)
428 ; SI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[TRUNC3]]
429 ; SI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
430 ; SI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
431 ; SI: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
432 ; SI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C6]](s32)
433 ; SI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
434 ; SI: $vgpr0 = COPY [[OR2]](s32)
435 ; CI-LABEL: name: test_load_private_s32_align1
436 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
437 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
438 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
439 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
440 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
441 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
442 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
443 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
444 ; CI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
445 ; CI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
446 ; CI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
447 ; CI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
448 ; CI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
449 ; CI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
450 ; CI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
451 ; CI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
452 ; CI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
453 ; CI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
454 ; CI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C5]]
455 ; CI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[COPY1]](s32)
456 ; CI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[SHL]](s32)
457 ; CI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[TRUNC1]]
458 ; CI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
459 ; CI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
460 ; CI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
461 ; CI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C5]]
462 ; CI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[C4]](s32)
463 ; CI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[SHL1]](s32)
464 ; CI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[TRUNC3]]
465 ; CI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
466 ; CI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
467 ; CI: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
468 ; CI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C6]](s32)
469 ; CI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
470 ; CI: $vgpr0 = COPY [[OR2]](s32)
471 ; VI-LABEL: name: test_load_private_s32_align1
472 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
473 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
474 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
475 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
476 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
477 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
478 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
479 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
480 ; VI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
481 ; VI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
482 ; VI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
483 ; VI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
484 ; VI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
485 ; VI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
486 ; VI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
487 ; VI: [[AND1:%[0-9]+]]:_(s16) = G_AND [[TRUNC1]], [[C3]]
488 ; VI: [[C4:%[0-9]+]]:_(s16) = G_CONSTANT i16 8
489 ; VI: [[SHL:%[0-9]+]]:_(s16) = G_SHL [[AND1]], [[C4]](s16)
490 ; VI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[SHL]]
491 ; VI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
492 ; VI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
493 ; VI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD3]](s32)
494 ; VI: [[AND3:%[0-9]+]]:_(s16) = G_AND [[TRUNC3]], [[C3]]
495 ; VI: [[SHL1:%[0-9]+]]:_(s16) = G_SHL [[AND3]], [[C4]](s16)
496 ; VI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[SHL1]]
497 ; VI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
498 ; VI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
499 ; VI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
500 ; VI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C5]](s32)
501 ; VI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
502 ; VI: $vgpr0 = COPY [[OR2]](s32)
503 ; GFX9-LABEL: name: test_load_private_s32_align1
504 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
505 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
506 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
507 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
508 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
509 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
510 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
511 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
512 ; GFX9: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
513 ; GFX9: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
514 ; GFX9: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
515 ; GFX9: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
516 ; GFX9: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
517 ; GFX9: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
518 ; GFX9: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
519 ; GFX9: [[AND1:%[0-9]+]]:_(s16) = G_AND [[TRUNC1]], [[C3]]
520 ; GFX9: [[C4:%[0-9]+]]:_(s16) = G_CONSTANT i16 8
521 ; GFX9: [[SHL:%[0-9]+]]:_(s16) = G_SHL [[AND1]], [[C4]](s16)
522 ; GFX9: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[SHL]]
523 ; GFX9: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
524 ; GFX9: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
525 ; GFX9: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD3]](s32)
526 ; GFX9: [[AND3:%[0-9]+]]:_(s16) = G_AND [[TRUNC3]], [[C3]]
527 ; GFX9: [[SHL1:%[0-9]+]]:_(s16) = G_SHL [[AND3]], [[C4]](s16)
528 ; GFX9: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[SHL1]]
529 ; GFX9: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
530 ; GFX9: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
531 ; GFX9: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
532 ; GFX9: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C5]](s32)
533 ; GFX9: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
534 ; GFX9: $vgpr0 = COPY [[OR2]](s32)
535 %0:_(p5) = COPY $vgpr0
536 %1:_(s32) = G_LOAD %0 :: (load 4, align 1, addrspace 5)
541 name: test_load_private_s48_align8
546 ; SI-LABEL: name: test_load_private_s48_align8
547 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
548 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 8, addrspace 5)
549 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
550 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
551 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, align 4, addrspace 5)
552 ; SI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
553 ; SI: [[DEF:%[0-9]+]]:_(s64) = G_IMPLICIT_DEF
554 ; SI: [[COPY1:%[0-9]+]]:_(s64) = COPY [[DEF]](s64)
555 ; SI: [[INSERT:%[0-9]+]]:_(s64) = G_INSERT [[COPY1]], [[LOAD]](s32), 0
556 ; SI: [[COPY2:%[0-9]+]]:_(s64) = COPY [[INSERT]](s64)
557 ; SI: [[INSERT1:%[0-9]+]]:_(s64) = G_INSERT [[COPY2]], [[TRUNC]](s16), 32
558 ; SI: [[COPY3:%[0-9]+]]:_(s64) = COPY [[INSERT1]](s64)
559 ; SI: $vgpr0_vgpr1 = COPY [[COPY3]](s64)
560 ; CI-LABEL: name: test_load_private_s48_align8
561 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
562 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 8, addrspace 5)
563 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
564 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
565 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, align 4, addrspace 5)
566 ; CI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
567 ; CI: [[DEF:%[0-9]+]]:_(s64) = G_IMPLICIT_DEF
568 ; CI: [[COPY1:%[0-9]+]]:_(s64) = COPY [[DEF]](s64)
569 ; CI: [[INSERT:%[0-9]+]]:_(s64) = G_INSERT [[COPY1]], [[LOAD]](s32), 0
570 ; CI: [[COPY2:%[0-9]+]]:_(s64) = COPY [[INSERT]](s64)
571 ; CI: [[INSERT1:%[0-9]+]]:_(s64) = G_INSERT [[COPY2]], [[TRUNC]](s16), 32
572 ; CI: [[COPY3:%[0-9]+]]:_(s64) = COPY [[INSERT1]](s64)
573 ; CI: $vgpr0_vgpr1 = COPY [[COPY3]](s64)
574 ; VI-LABEL: name: test_load_private_s48_align8
575 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
576 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 8, addrspace 5)
577 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
578 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
579 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, align 4, addrspace 5)
580 ; VI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
581 ; VI: [[DEF:%[0-9]+]]:_(s64) = G_IMPLICIT_DEF
582 ; VI: [[COPY1:%[0-9]+]]:_(s64) = COPY [[DEF]](s64)
583 ; VI: [[INSERT:%[0-9]+]]:_(s64) = G_INSERT [[COPY1]], [[LOAD]](s32), 0
584 ; VI: [[COPY2:%[0-9]+]]:_(s64) = COPY [[INSERT]](s64)
585 ; VI: [[INSERT1:%[0-9]+]]:_(s64) = G_INSERT [[COPY2]], [[TRUNC]](s16), 32
586 ; VI: [[COPY3:%[0-9]+]]:_(s64) = COPY [[INSERT1]](s64)
587 ; VI: $vgpr0_vgpr1 = COPY [[COPY3]](s64)
588 ; GFX9-LABEL: name: test_load_private_s48_align8
589 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
590 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 8, addrspace 5)
591 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
592 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
593 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, align 4, addrspace 5)
594 ; GFX9: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
595 ; GFX9: [[DEF:%[0-9]+]]:_(s64) = G_IMPLICIT_DEF
596 ; GFX9: [[COPY1:%[0-9]+]]:_(s64) = COPY [[DEF]](s64)
597 ; GFX9: [[INSERT:%[0-9]+]]:_(s64) = G_INSERT [[COPY1]], [[LOAD]](s32), 0
598 ; GFX9: [[COPY2:%[0-9]+]]:_(s64) = COPY [[INSERT]](s64)
599 ; GFX9: [[INSERT1:%[0-9]+]]:_(s64) = G_INSERT [[COPY2]], [[TRUNC]](s16), 32
600 ; GFX9: [[COPY3:%[0-9]+]]:_(s64) = COPY [[INSERT1]](s64)
601 ; GFX9: $vgpr0_vgpr1 = COPY [[COPY3]](s64)
602 %0:_(p5) = COPY $vgpr0
603 %1:_(s48) = G_LOAD %0 :: (load 6, align 8, addrspace 5)
604 %2:_(s64) = G_ANYEXT %1
605 $vgpr0_vgpr1 = COPY %2
609 name: test_load_private_s64_align8
614 ; SI-LABEL: name: test_load_private_s64_align8
615 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
616 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 8, addrspace 5)
617 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
618 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
619 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
620 ; SI: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32)
621 ; SI: $vgpr0_vgpr1 = COPY [[MV]](s64)
622 ; CI-LABEL: name: test_load_private_s64_align8
623 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
624 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 8, addrspace 5)
625 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
626 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
627 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
628 ; CI: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32)
629 ; CI: $vgpr0_vgpr1 = COPY [[MV]](s64)
630 ; VI-LABEL: name: test_load_private_s64_align8
631 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
632 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 8, addrspace 5)
633 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
634 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
635 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
636 ; VI: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32)
637 ; VI: $vgpr0_vgpr1 = COPY [[MV]](s64)
638 ; GFX9-LABEL: name: test_load_private_s64_align8
639 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
640 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 8, addrspace 5)
641 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
642 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
643 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
644 ; GFX9: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32)
645 ; GFX9: $vgpr0_vgpr1 = COPY [[MV]](s64)
646 %0:_(p5) = COPY $vgpr0
647 %1:_(s64) = G_LOAD %0 :: (load 8, align 8, addrspace 5)
648 $vgpr0_vgpr1 = COPY %1
652 name: test_load_private_s64_align4
657 ; SI-LABEL: name: test_load_private_s64_align4
658 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
659 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
660 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
661 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
662 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
663 ; SI: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32)
664 ; SI: $vgpr0_vgpr1 = COPY [[MV]](s64)
665 ; CI-LABEL: name: test_load_private_s64_align4
666 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
667 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
668 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
669 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
670 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
671 ; CI: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32)
672 ; CI: $vgpr0_vgpr1 = COPY [[MV]](s64)
673 ; VI-LABEL: name: test_load_private_s64_align4
674 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
675 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
676 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
677 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
678 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
679 ; VI: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32)
680 ; VI: $vgpr0_vgpr1 = COPY [[MV]](s64)
681 ; GFX9-LABEL: name: test_load_private_s64_align4
682 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
683 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
684 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
685 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
686 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
687 ; GFX9: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32)
688 ; GFX9: $vgpr0_vgpr1 = COPY [[MV]](s64)
689 %0:_(p5) = COPY $vgpr0
690 %1:_(s64) = G_LOAD %0 :: (load 8, align 4, addrspace 5)
691 $vgpr0_vgpr1 = COPY %1
695 name: test_load_private_s64_align2
700 ; SI-LABEL: name: test_load_private_s64_align2
701 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
702 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
703 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
704 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
705 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
706 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
707 ; SI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
708 ; SI: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C1]]
709 ; SI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
710 ; SI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C1]]
711 ; SI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
712 ; SI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
713 ; SI: [[OR:%[0-9]+]]:_(s32) = G_OR [[AND]], [[SHL]]
714 ; SI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
715 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
716 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 2, addrspace 5)
717 ; SI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
718 ; SI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 2, addrspace 5)
719 ; SI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD2]](s32)
720 ; SI: [[AND2:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C1]]
721 ; SI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
722 ; SI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C1]]
723 ; SI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[C2]](s32)
724 ; SI: [[OR1:%[0-9]+]]:_(s32) = G_OR [[AND2]], [[SHL1]]
725 ; SI: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[OR]](s32), [[OR1]](s32)
726 ; SI: $vgpr0_vgpr1 = COPY [[MV]](s64)
727 ; CI-LABEL: name: test_load_private_s64_align2
728 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
729 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
730 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
731 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
732 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
733 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
734 ; CI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
735 ; CI: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C1]]
736 ; CI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
737 ; CI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C1]]
738 ; CI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
739 ; CI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
740 ; CI: [[OR:%[0-9]+]]:_(s32) = G_OR [[AND]], [[SHL]]
741 ; CI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
742 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
743 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 2, addrspace 5)
744 ; CI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
745 ; CI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 2, addrspace 5)
746 ; CI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD2]](s32)
747 ; CI: [[AND2:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C1]]
748 ; CI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
749 ; CI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C1]]
750 ; CI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[C2]](s32)
751 ; CI: [[OR1:%[0-9]+]]:_(s32) = G_OR [[AND2]], [[SHL1]]
752 ; CI: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[OR]](s32), [[OR1]](s32)
753 ; CI: $vgpr0_vgpr1 = COPY [[MV]](s64)
754 ; VI-LABEL: name: test_load_private_s64_align2
755 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
756 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
757 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
758 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
759 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
760 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
761 ; VI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
762 ; VI: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C1]]
763 ; VI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
764 ; VI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C1]]
765 ; VI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
766 ; VI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
767 ; VI: [[OR:%[0-9]+]]:_(s32) = G_OR [[AND]], [[SHL]]
768 ; VI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
769 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
770 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 2, addrspace 5)
771 ; VI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
772 ; VI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 2, addrspace 5)
773 ; VI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD2]](s32)
774 ; VI: [[AND2:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C1]]
775 ; VI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
776 ; VI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C1]]
777 ; VI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[C2]](s32)
778 ; VI: [[OR1:%[0-9]+]]:_(s32) = G_OR [[AND2]], [[SHL1]]
779 ; VI: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[OR]](s32), [[OR1]](s32)
780 ; VI: $vgpr0_vgpr1 = COPY [[MV]](s64)
781 ; GFX9-LABEL: name: test_load_private_s64_align2
782 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
783 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
784 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
785 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
786 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
787 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
788 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
789 ; GFX9: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C1]]
790 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
791 ; GFX9: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C1]]
792 ; GFX9: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
793 ; GFX9: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
794 ; GFX9: [[OR:%[0-9]+]]:_(s32) = G_OR [[AND]], [[SHL]]
795 ; GFX9: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
796 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
797 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 2, addrspace 5)
798 ; GFX9: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
799 ; GFX9: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 2, addrspace 5)
800 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD2]](s32)
801 ; GFX9: [[AND2:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C1]]
802 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
803 ; GFX9: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C1]]
804 ; GFX9: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[C2]](s32)
805 ; GFX9: [[OR1:%[0-9]+]]:_(s32) = G_OR [[AND2]], [[SHL1]]
806 ; GFX9: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[OR]](s32), [[OR1]](s32)
807 ; GFX9: $vgpr0_vgpr1 = COPY [[MV]](s64)
808 %0:_(p5) = COPY $vgpr0
809 %1:_(s64) = G_LOAD %0 :: (load 8, align 2, addrspace 5)
810 $vgpr0_vgpr1 = COPY %1
814 name: test_load_private_s64_align1
819 ; SI-LABEL: name: test_load_private_s64_align1
820 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
821 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
822 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
823 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
824 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
825 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
826 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
827 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
828 ; SI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
829 ; SI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
830 ; SI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
831 ; SI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
832 ; SI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
833 ; SI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
834 ; SI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
835 ; SI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
836 ; SI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
837 ; SI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
838 ; SI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C5]]
839 ; SI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[COPY1]](s32)
840 ; SI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[SHL]](s32)
841 ; SI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[TRUNC1]]
842 ; SI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
843 ; SI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
844 ; SI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
845 ; SI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C5]]
846 ; SI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[C4]](s32)
847 ; SI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[SHL1]](s32)
848 ; SI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[TRUNC3]]
849 ; SI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
850 ; SI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
851 ; SI: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
852 ; SI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C6]](s32)
853 ; SI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
854 ; SI: [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
855 ; SI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C7]](s32)
856 ; SI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 5)
857 ; SI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
858 ; SI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 5)
859 ; SI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
860 ; SI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 5)
861 ; SI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
862 ; SI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 5)
863 ; SI: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
864 ; SI: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
865 ; SI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
866 ; SI: [[COPY5:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
867 ; SI: [[AND5:%[0-9]+]]:_(s32) = G_AND [[COPY5]], [[C5]]
868 ; SI: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[AND5]], [[COPY4]](s32)
869 ; SI: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[SHL3]](s32)
870 ; SI: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[TRUNC5]]
871 ; SI: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
872 ; SI: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
873 ; SI: [[COPY6:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
874 ; SI: [[COPY7:%[0-9]+]]:_(s32) = COPY [[LOAD7]](s32)
875 ; SI: [[AND7:%[0-9]+]]:_(s32) = G_AND [[COPY7]], [[C5]]
876 ; SI: [[SHL4:%[0-9]+]]:_(s32) = G_SHL [[AND7]], [[COPY6]](s32)
877 ; SI: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[SHL4]](s32)
878 ; SI: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[TRUNC7]]
879 ; SI: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
880 ; SI: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
881 ; SI: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C6]](s32)
882 ; SI: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
883 ; SI: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[OR2]](s32), [[OR5]](s32)
884 ; SI: $vgpr0_vgpr1 = COPY [[MV]](s64)
885 ; CI-LABEL: name: test_load_private_s64_align1
886 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
887 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
888 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
889 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
890 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
891 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
892 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
893 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
894 ; CI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
895 ; CI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
896 ; CI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
897 ; CI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
898 ; CI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
899 ; CI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
900 ; CI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
901 ; CI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
902 ; CI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
903 ; CI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
904 ; CI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C5]]
905 ; CI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[COPY1]](s32)
906 ; CI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[SHL]](s32)
907 ; CI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[TRUNC1]]
908 ; CI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
909 ; CI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
910 ; CI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
911 ; CI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C5]]
912 ; CI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[C4]](s32)
913 ; CI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[SHL1]](s32)
914 ; CI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[TRUNC3]]
915 ; CI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
916 ; CI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
917 ; CI: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
918 ; CI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C6]](s32)
919 ; CI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
920 ; CI: [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
921 ; CI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C7]](s32)
922 ; CI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 5)
923 ; CI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
924 ; CI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 5)
925 ; CI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
926 ; CI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 5)
927 ; CI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
928 ; CI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 5)
929 ; CI: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
930 ; CI: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
931 ; CI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
932 ; CI: [[COPY5:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
933 ; CI: [[AND5:%[0-9]+]]:_(s32) = G_AND [[COPY5]], [[C5]]
934 ; CI: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[AND5]], [[COPY4]](s32)
935 ; CI: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[SHL3]](s32)
936 ; CI: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[TRUNC5]]
937 ; CI: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
938 ; CI: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
939 ; CI: [[COPY6:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
940 ; CI: [[COPY7:%[0-9]+]]:_(s32) = COPY [[LOAD7]](s32)
941 ; CI: [[AND7:%[0-9]+]]:_(s32) = G_AND [[COPY7]], [[C5]]
942 ; CI: [[SHL4:%[0-9]+]]:_(s32) = G_SHL [[AND7]], [[COPY6]](s32)
943 ; CI: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[SHL4]](s32)
944 ; CI: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[TRUNC7]]
945 ; CI: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
946 ; CI: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
947 ; CI: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C6]](s32)
948 ; CI: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
949 ; CI: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[OR2]](s32), [[OR5]](s32)
950 ; CI: $vgpr0_vgpr1 = COPY [[MV]](s64)
951 ; VI-LABEL: name: test_load_private_s64_align1
952 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
953 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
954 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
955 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
956 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
957 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
958 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
959 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
960 ; VI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
961 ; VI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
962 ; VI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
963 ; VI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
964 ; VI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
965 ; VI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
966 ; VI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
967 ; VI: [[AND1:%[0-9]+]]:_(s16) = G_AND [[TRUNC1]], [[C3]]
968 ; VI: [[C4:%[0-9]+]]:_(s16) = G_CONSTANT i16 8
969 ; VI: [[SHL:%[0-9]+]]:_(s16) = G_SHL [[AND1]], [[C4]](s16)
970 ; VI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[SHL]]
971 ; VI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
972 ; VI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
973 ; VI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD3]](s32)
974 ; VI: [[AND3:%[0-9]+]]:_(s16) = G_AND [[TRUNC3]], [[C3]]
975 ; VI: [[SHL1:%[0-9]+]]:_(s16) = G_SHL [[AND3]], [[C4]](s16)
976 ; VI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[SHL1]]
977 ; VI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
978 ; VI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
979 ; VI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
980 ; VI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C5]](s32)
981 ; VI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
982 ; VI: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
983 ; VI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C6]](s32)
984 ; VI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 5)
985 ; VI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
986 ; VI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 5)
987 ; VI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
988 ; VI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 5)
989 ; VI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
990 ; VI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 5)
991 ; VI: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
992 ; VI: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
993 ; VI: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD5]](s32)
994 ; VI: [[AND5:%[0-9]+]]:_(s16) = G_AND [[TRUNC5]], [[C3]]
995 ; VI: [[SHL3:%[0-9]+]]:_(s16) = G_SHL [[AND5]], [[C4]](s16)
996 ; VI: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[SHL3]]
997 ; VI: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
998 ; VI: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
999 ; VI: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD7]](s32)
1000 ; VI: [[AND7:%[0-9]+]]:_(s16) = G_AND [[TRUNC7]], [[C3]]
1001 ; VI: [[SHL4:%[0-9]+]]:_(s16) = G_SHL [[AND7]], [[C4]](s16)
1002 ; VI: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[SHL4]]
1003 ; VI: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
1004 ; VI: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
1005 ; VI: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C5]](s32)
1006 ; VI: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
1007 ; VI: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[OR2]](s32), [[OR5]](s32)
1008 ; VI: $vgpr0_vgpr1 = COPY [[MV]](s64)
1009 ; GFX9-LABEL: name: test_load_private_s64_align1
1010 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
1011 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
1012 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
1013 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
1014 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
1015 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
1016 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
1017 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
1018 ; GFX9: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
1019 ; GFX9: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
1020 ; GFX9: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
1021 ; GFX9: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
1022 ; GFX9: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
1023 ; GFX9: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
1024 ; GFX9: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
1025 ; GFX9: [[AND1:%[0-9]+]]:_(s16) = G_AND [[TRUNC1]], [[C3]]
1026 ; GFX9: [[C4:%[0-9]+]]:_(s16) = G_CONSTANT i16 8
1027 ; GFX9: [[SHL:%[0-9]+]]:_(s16) = G_SHL [[AND1]], [[C4]](s16)
1028 ; GFX9: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[SHL]]
1029 ; GFX9: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
1030 ; GFX9: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
1031 ; GFX9: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD3]](s32)
1032 ; GFX9: [[AND3:%[0-9]+]]:_(s16) = G_AND [[TRUNC3]], [[C3]]
1033 ; GFX9: [[SHL1:%[0-9]+]]:_(s16) = G_SHL [[AND3]], [[C4]](s16)
1034 ; GFX9: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[SHL1]]
1035 ; GFX9: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
1036 ; GFX9: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
1037 ; GFX9: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
1038 ; GFX9: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C5]](s32)
1039 ; GFX9: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
1040 ; GFX9: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
1041 ; GFX9: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C6]](s32)
1042 ; GFX9: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 5)
1043 ; GFX9: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
1044 ; GFX9: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 5)
1045 ; GFX9: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
1046 ; GFX9: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 5)
1047 ; GFX9: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
1048 ; GFX9: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 5)
1049 ; GFX9: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
1050 ; GFX9: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
1051 ; GFX9: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD5]](s32)
1052 ; GFX9: [[AND5:%[0-9]+]]:_(s16) = G_AND [[TRUNC5]], [[C3]]
1053 ; GFX9: [[SHL3:%[0-9]+]]:_(s16) = G_SHL [[AND5]], [[C4]](s16)
1054 ; GFX9: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[SHL3]]
1055 ; GFX9: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
1056 ; GFX9: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
1057 ; GFX9: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD7]](s32)
1058 ; GFX9: [[AND7:%[0-9]+]]:_(s16) = G_AND [[TRUNC7]], [[C3]]
1059 ; GFX9: [[SHL4:%[0-9]+]]:_(s16) = G_SHL [[AND7]], [[C4]](s16)
1060 ; GFX9: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[SHL4]]
1061 ; GFX9: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
1062 ; GFX9: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
1063 ; GFX9: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C5]](s32)
1064 ; GFX9: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
1065 ; GFX9: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[OR2]](s32), [[OR5]](s32)
1066 ; GFX9: $vgpr0_vgpr1 = COPY [[MV]](s64)
1067 %0:_(p5) = COPY $vgpr0
1068 %1:_(s64) = G_LOAD %0 :: (load 8, align 1, addrspace 5)
1069 $vgpr0_vgpr1 = COPY %1
1073 name: test_load_private_s96_align16
1078 ; SI-LABEL: name: test_load_private_s96_align16
1079 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
1080 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 56)
1081 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
1082 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
1083 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 56)
1084 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
1085 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
1086 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 56)
1087 ; SI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
1088 ; SI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
1089 ; SI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 56)
1090 ; SI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
1091 ; SI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
1092 ; SI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
1093 ; SI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
1094 ; SI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
1095 ; SI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
1096 ; SI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
1097 ; SI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C5]]
1098 ; SI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[COPY1]](s32)
1099 ; SI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[SHL]](s32)
1100 ; SI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[TRUNC1]]
1101 ; SI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
1102 ; SI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
1103 ; SI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
1104 ; SI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
1105 ; SI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C5]]
1106 ; SI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[COPY3]](s32)
1107 ; SI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[SHL1]](s32)
1108 ; SI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[TRUNC3]]
1109 ; SI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
1110 ; SI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
1111 ; SI: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
1112 ; SI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C6]](s32)
1113 ; SI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
1114 ; SI: [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
1115 ; SI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C7]](s32)
1116 ; SI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 56)
1117 ; SI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
1118 ; SI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 56)
1119 ; SI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
1120 ; SI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 56)
1121 ; SI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
1122 ; SI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 56)
1123 ; SI: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
1124 ; SI: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
1125 ; SI: [[COPY5:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
1126 ; SI: [[COPY6:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
1127 ; SI: [[AND5:%[0-9]+]]:_(s32) = G_AND [[COPY6]], [[C5]]
1128 ; SI: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[AND5]], [[COPY5]](s32)
1129 ; SI: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[SHL3]](s32)
1130 ; SI: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[TRUNC5]]
1131 ; SI: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
1132 ; SI: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
1133 ; SI: [[COPY7:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
1134 ; SI: [[COPY8:%[0-9]+]]:_(s32) = COPY [[LOAD7]](s32)
1135 ; SI: [[AND7:%[0-9]+]]:_(s32) = G_AND [[COPY8]], [[C5]]
1136 ; SI: [[SHL4:%[0-9]+]]:_(s32) = G_SHL [[AND7]], [[COPY7]](s32)
1137 ; SI: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[SHL4]](s32)
1138 ; SI: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[TRUNC7]]
1139 ; SI: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
1140 ; SI: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
1141 ; SI: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C6]](s32)
1142 ; SI: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
1143 ; SI: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
1144 ; SI: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 1, addrspace 56)
1145 ; SI: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
1146 ; SI: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 1, addrspace 56)
1147 ; SI: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C1]](s32)
1148 ; SI: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 1, addrspace 56)
1149 ; SI: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C2]](s32)
1150 ; SI: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 1, addrspace 56)
1151 ; SI: [[TRUNC8:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD8]](s32)
1152 ; SI: [[AND8:%[0-9]+]]:_(s16) = G_AND [[TRUNC8]], [[C3]]
1153 ; SI: [[COPY9:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
1154 ; SI: [[COPY10:%[0-9]+]]:_(s32) = COPY [[LOAD9]](s32)
1155 ; SI: [[AND9:%[0-9]+]]:_(s32) = G_AND [[COPY10]], [[C5]]
1156 ; SI: [[SHL6:%[0-9]+]]:_(s32) = G_SHL [[AND9]], [[COPY9]](s32)
1157 ; SI: [[TRUNC9:%[0-9]+]]:_(s16) = G_TRUNC [[SHL6]](s32)
1158 ; SI: [[OR6:%[0-9]+]]:_(s16) = G_OR [[AND8]], [[TRUNC9]]
1159 ; SI: [[TRUNC10:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD10]](s32)
1160 ; SI: [[AND10:%[0-9]+]]:_(s16) = G_AND [[TRUNC10]], [[C3]]
1161 ; SI: [[COPY11:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
1162 ; SI: [[COPY12:%[0-9]+]]:_(s32) = COPY [[LOAD11]](s32)
1163 ; SI: [[AND11:%[0-9]+]]:_(s32) = G_AND [[COPY12]], [[C5]]
1164 ; SI: [[SHL7:%[0-9]+]]:_(s32) = G_SHL [[AND11]], [[COPY11]](s32)
1165 ; SI: [[TRUNC11:%[0-9]+]]:_(s16) = G_TRUNC [[SHL7]](s32)
1166 ; SI: [[OR7:%[0-9]+]]:_(s16) = G_OR [[AND10]], [[TRUNC11]]
1167 ; SI: [[ZEXT4:%[0-9]+]]:_(s32) = G_ZEXT [[OR6]](s16)
1168 ; SI: [[ZEXT5:%[0-9]+]]:_(s32) = G_ZEXT [[OR7]](s16)
1169 ; SI: [[SHL8:%[0-9]+]]:_(s32) = G_SHL [[ZEXT5]], [[C6]](s32)
1170 ; SI: [[OR8:%[0-9]+]]:_(s32) = G_OR [[ZEXT4]], [[SHL8]]
1171 ; SI: [[MV:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[OR2]](s32), [[OR5]](s32), [[OR8]](s32)
1172 ; SI: $vgpr0_vgpr1_vgpr2 = COPY [[MV]](s96)
1173 ; CI-LABEL: name: test_load_private_s96_align16
1174 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
1175 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 56)
1176 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
1177 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
1178 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 56)
1179 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
1180 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
1181 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 56)
1182 ; CI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
1183 ; CI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
1184 ; CI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 56)
1185 ; CI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
1186 ; CI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
1187 ; CI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
1188 ; CI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
1189 ; CI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
1190 ; CI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
1191 ; CI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
1192 ; CI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C5]]
1193 ; CI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[COPY1]](s32)
1194 ; CI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[SHL]](s32)
1195 ; CI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[TRUNC1]]
1196 ; CI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
1197 ; CI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
1198 ; CI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
1199 ; CI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
1200 ; CI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C5]]
1201 ; CI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[COPY3]](s32)
1202 ; CI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[SHL1]](s32)
1203 ; CI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[TRUNC3]]
1204 ; CI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
1205 ; CI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
1206 ; CI: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
1207 ; CI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C6]](s32)
1208 ; CI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
1209 ; CI: [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
1210 ; CI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C7]](s32)
1211 ; CI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 56)
1212 ; CI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
1213 ; CI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 56)
1214 ; CI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
1215 ; CI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 56)
1216 ; CI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
1217 ; CI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 56)
1218 ; CI: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
1219 ; CI: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
1220 ; CI: [[COPY5:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
1221 ; CI: [[COPY6:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
1222 ; CI: [[AND5:%[0-9]+]]:_(s32) = G_AND [[COPY6]], [[C5]]
1223 ; CI: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[AND5]], [[COPY5]](s32)
1224 ; CI: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[SHL3]](s32)
1225 ; CI: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[TRUNC5]]
1226 ; CI: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
1227 ; CI: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
1228 ; CI: [[COPY7:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
1229 ; CI: [[COPY8:%[0-9]+]]:_(s32) = COPY [[LOAD7]](s32)
1230 ; CI: [[AND7:%[0-9]+]]:_(s32) = G_AND [[COPY8]], [[C5]]
1231 ; CI: [[SHL4:%[0-9]+]]:_(s32) = G_SHL [[AND7]], [[COPY7]](s32)
1232 ; CI: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[SHL4]](s32)
1233 ; CI: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[TRUNC7]]
1234 ; CI: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
1235 ; CI: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
1236 ; CI: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C6]](s32)
1237 ; CI: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
1238 ; CI: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
1239 ; CI: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 1, addrspace 56)
1240 ; CI: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
1241 ; CI: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 1, addrspace 56)
1242 ; CI: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C1]](s32)
1243 ; CI: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 1, addrspace 56)
1244 ; CI: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C2]](s32)
1245 ; CI: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 1, addrspace 56)
1246 ; CI: [[TRUNC8:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD8]](s32)
1247 ; CI: [[AND8:%[0-9]+]]:_(s16) = G_AND [[TRUNC8]], [[C3]]
1248 ; CI: [[COPY9:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
1249 ; CI: [[COPY10:%[0-9]+]]:_(s32) = COPY [[LOAD9]](s32)
1250 ; CI: [[AND9:%[0-9]+]]:_(s32) = G_AND [[COPY10]], [[C5]]
1251 ; CI: [[SHL6:%[0-9]+]]:_(s32) = G_SHL [[AND9]], [[COPY9]](s32)
1252 ; CI: [[TRUNC9:%[0-9]+]]:_(s16) = G_TRUNC [[SHL6]](s32)
1253 ; CI: [[OR6:%[0-9]+]]:_(s16) = G_OR [[AND8]], [[TRUNC9]]
1254 ; CI: [[TRUNC10:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD10]](s32)
1255 ; CI: [[AND10:%[0-9]+]]:_(s16) = G_AND [[TRUNC10]], [[C3]]
1256 ; CI: [[COPY11:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
1257 ; CI: [[COPY12:%[0-9]+]]:_(s32) = COPY [[LOAD11]](s32)
1258 ; CI: [[AND11:%[0-9]+]]:_(s32) = G_AND [[COPY12]], [[C5]]
1259 ; CI: [[SHL7:%[0-9]+]]:_(s32) = G_SHL [[AND11]], [[COPY11]](s32)
1260 ; CI: [[TRUNC11:%[0-9]+]]:_(s16) = G_TRUNC [[SHL7]](s32)
1261 ; CI: [[OR7:%[0-9]+]]:_(s16) = G_OR [[AND10]], [[TRUNC11]]
1262 ; CI: [[ZEXT4:%[0-9]+]]:_(s32) = G_ZEXT [[OR6]](s16)
1263 ; CI: [[ZEXT5:%[0-9]+]]:_(s32) = G_ZEXT [[OR7]](s16)
1264 ; CI: [[SHL8:%[0-9]+]]:_(s32) = G_SHL [[ZEXT5]], [[C6]](s32)
1265 ; CI: [[OR8:%[0-9]+]]:_(s32) = G_OR [[ZEXT4]], [[SHL8]]
1266 ; CI: [[MV:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[OR2]](s32), [[OR5]](s32), [[OR8]](s32)
1267 ; CI: $vgpr0_vgpr1_vgpr2 = COPY [[MV]](s96)
1268 ; VI-LABEL: name: test_load_private_s96_align16
1269 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
1270 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 56)
1271 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
1272 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
1273 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 56)
1274 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
1275 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
1276 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 56)
1277 ; VI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
1278 ; VI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
1279 ; VI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 56)
1280 ; VI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
1281 ; VI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
1282 ; VI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
1283 ; VI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
1284 ; VI: [[AND1:%[0-9]+]]:_(s16) = G_AND [[TRUNC1]], [[C3]]
1285 ; VI: [[C4:%[0-9]+]]:_(s16) = G_CONSTANT i16 8
1286 ; VI: [[SHL:%[0-9]+]]:_(s16) = G_SHL [[AND1]], [[C4]](s16)
1287 ; VI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[SHL]]
1288 ; VI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
1289 ; VI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
1290 ; VI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD3]](s32)
1291 ; VI: [[AND3:%[0-9]+]]:_(s16) = G_AND [[TRUNC3]], [[C3]]
1292 ; VI: [[SHL1:%[0-9]+]]:_(s16) = G_SHL [[AND3]], [[C4]](s16)
1293 ; VI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[SHL1]]
1294 ; VI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
1295 ; VI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
1296 ; VI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
1297 ; VI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C5]](s32)
1298 ; VI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
1299 ; VI: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
1300 ; VI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C6]](s32)
1301 ; VI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 56)
1302 ; VI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
1303 ; VI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 56)
1304 ; VI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
1305 ; VI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 56)
1306 ; VI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
1307 ; VI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 56)
1308 ; VI: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
1309 ; VI: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
1310 ; VI: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD5]](s32)
1311 ; VI: [[AND5:%[0-9]+]]:_(s16) = G_AND [[TRUNC5]], [[C3]]
1312 ; VI: [[SHL3:%[0-9]+]]:_(s16) = G_SHL [[AND5]], [[C4]](s16)
1313 ; VI: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[SHL3]]
1314 ; VI: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
1315 ; VI: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
1316 ; VI: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD7]](s32)
1317 ; VI: [[AND7:%[0-9]+]]:_(s16) = G_AND [[TRUNC7]], [[C3]]
1318 ; VI: [[SHL4:%[0-9]+]]:_(s16) = G_SHL [[AND7]], [[C4]](s16)
1319 ; VI: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[SHL4]]
1320 ; VI: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
1321 ; VI: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
1322 ; VI: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C5]](s32)
1323 ; VI: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
1324 ; VI: [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
1325 ; VI: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C7]](s32)
1326 ; VI: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 1, addrspace 56)
1327 ; VI: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
1328 ; VI: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 1, addrspace 56)
1329 ; VI: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C1]](s32)
1330 ; VI: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 1, addrspace 56)
1331 ; VI: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C2]](s32)
1332 ; VI: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 1, addrspace 56)
1333 ; VI: [[TRUNC8:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD8]](s32)
1334 ; VI: [[AND8:%[0-9]+]]:_(s16) = G_AND [[TRUNC8]], [[C3]]
1335 ; VI: [[TRUNC9:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD9]](s32)
1336 ; VI: [[AND9:%[0-9]+]]:_(s16) = G_AND [[TRUNC9]], [[C3]]
1337 ; VI: [[SHL6:%[0-9]+]]:_(s16) = G_SHL [[AND9]], [[C4]](s16)
1338 ; VI: [[OR6:%[0-9]+]]:_(s16) = G_OR [[AND8]], [[SHL6]]
1339 ; VI: [[TRUNC10:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD10]](s32)
1340 ; VI: [[AND10:%[0-9]+]]:_(s16) = G_AND [[TRUNC10]], [[C3]]
1341 ; VI: [[TRUNC11:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD11]](s32)
1342 ; VI: [[AND11:%[0-9]+]]:_(s16) = G_AND [[TRUNC11]], [[C3]]
1343 ; VI: [[SHL7:%[0-9]+]]:_(s16) = G_SHL [[AND11]], [[C4]](s16)
1344 ; VI: [[OR7:%[0-9]+]]:_(s16) = G_OR [[AND10]], [[SHL7]]
1345 ; VI: [[ZEXT4:%[0-9]+]]:_(s32) = G_ZEXT [[OR6]](s16)
1346 ; VI: [[ZEXT5:%[0-9]+]]:_(s32) = G_ZEXT [[OR7]](s16)
1347 ; VI: [[SHL8:%[0-9]+]]:_(s32) = G_SHL [[ZEXT5]], [[C5]](s32)
1348 ; VI: [[OR8:%[0-9]+]]:_(s32) = G_OR [[ZEXT4]], [[SHL8]]
1349 ; VI: [[MV:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[OR2]](s32), [[OR5]](s32), [[OR8]](s32)
1350 ; VI: $vgpr0_vgpr1_vgpr2 = COPY [[MV]](s96)
1351 ; GFX9-LABEL: name: test_load_private_s96_align16
1352 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
1353 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 56)
1354 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
1355 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
1356 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 56)
1357 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
1358 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
1359 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 56)
1360 ; GFX9: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
1361 ; GFX9: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
1362 ; GFX9: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 56)
1363 ; GFX9: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
1364 ; GFX9: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
1365 ; GFX9: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
1366 ; GFX9: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
1367 ; GFX9: [[AND1:%[0-9]+]]:_(s16) = G_AND [[TRUNC1]], [[C3]]
1368 ; GFX9: [[C4:%[0-9]+]]:_(s16) = G_CONSTANT i16 8
1369 ; GFX9: [[SHL:%[0-9]+]]:_(s16) = G_SHL [[AND1]], [[C4]](s16)
1370 ; GFX9: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[SHL]]
1371 ; GFX9: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
1372 ; GFX9: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
1373 ; GFX9: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD3]](s32)
1374 ; GFX9: [[AND3:%[0-9]+]]:_(s16) = G_AND [[TRUNC3]], [[C3]]
1375 ; GFX9: [[SHL1:%[0-9]+]]:_(s16) = G_SHL [[AND3]], [[C4]](s16)
1376 ; GFX9: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[SHL1]]
1377 ; GFX9: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
1378 ; GFX9: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
1379 ; GFX9: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
1380 ; GFX9: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C5]](s32)
1381 ; GFX9: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
1382 ; GFX9: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
1383 ; GFX9: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C6]](s32)
1384 ; GFX9: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 56)
1385 ; GFX9: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
1386 ; GFX9: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 56)
1387 ; GFX9: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
1388 ; GFX9: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 56)
1389 ; GFX9: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
1390 ; GFX9: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 56)
1391 ; GFX9: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
1392 ; GFX9: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
1393 ; GFX9: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD5]](s32)
1394 ; GFX9: [[AND5:%[0-9]+]]:_(s16) = G_AND [[TRUNC5]], [[C3]]
1395 ; GFX9: [[SHL3:%[0-9]+]]:_(s16) = G_SHL [[AND5]], [[C4]](s16)
1396 ; GFX9: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[SHL3]]
1397 ; GFX9: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
1398 ; GFX9: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
1399 ; GFX9: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD7]](s32)
1400 ; GFX9: [[AND7:%[0-9]+]]:_(s16) = G_AND [[TRUNC7]], [[C3]]
1401 ; GFX9: [[SHL4:%[0-9]+]]:_(s16) = G_SHL [[AND7]], [[C4]](s16)
1402 ; GFX9: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[SHL4]]
1403 ; GFX9: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
1404 ; GFX9: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
1405 ; GFX9: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C5]](s32)
1406 ; GFX9: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
1407 ; GFX9: [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
1408 ; GFX9: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C7]](s32)
1409 ; GFX9: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 1, addrspace 56)
1410 ; GFX9: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
1411 ; GFX9: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 1, addrspace 56)
1412 ; GFX9: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C1]](s32)
1413 ; GFX9: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 1, addrspace 56)
1414 ; GFX9: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C2]](s32)
1415 ; GFX9: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 1, addrspace 56)
1416 ; GFX9: [[TRUNC8:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD8]](s32)
1417 ; GFX9: [[AND8:%[0-9]+]]:_(s16) = G_AND [[TRUNC8]], [[C3]]
1418 ; GFX9: [[TRUNC9:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD9]](s32)
1419 ; GFX9: [[AND9:%[0-9]+]]:_(s16) = G_AND [[TRUNC9]], [[C3]]
1420 ; GFX9: [[SHL6:%[0-9]+]]:_(s16) = G_SHL [[AND9]], [[C4]](s16)
1421 ; GFX9: [[OR6:%[0-9]+]]:_(s16) = G_OR [[AND8]], [[SHL6]]
1422 ; GFX9: [[TRUNC10:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD10]](s32)
1423 ; GFX9: [[AND10:%[0-9]+]]:_(s16) = G_AND [[TRUNC10]], [[C3]]
1424 ; GFX9: [[TRUNC11:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD11]](s32)
1425 ; GFX9: [[AND11:%[0-9]+]]:_(s16) = G_AND [[TRUNC11]], [[C3]]
1426 ; GFX9: [[SHL7:%[0-9]+]]:_(s16) = G_SHL [[AND11]], [[C4]](s16)
1427 ; GFX9: [[OR7:%[0-9]+]]:_(s16) = G_OR [[AND10]], [[SHL7]]
1428 ; GFX9: [[ZEXT4:%[0-9]+]]:_(s32) = G_ZEXT [[OR6]](s16)
1429 ; GFX9: [[ZEXT5:%[0-9]+]]:_(s32) = G_ZEXT [[OR7]](s16)
1430 ; GFX9: [[SHL8:%[0-9]+]]:_(s32) = G_SHL [[ZEXT5]], [[C5]](s32)
1431 ; GFX9: [[OR8:%[0-9]+]]:_(s32) = G_OR [[ZEXT4]], [[SHL8]]
1432 ; GFX9: [[MV:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[OR2]](s32), [[OR5]](s32), [[OR8]](s32)
1433 ; GFX9: $vgpr0_vgpr1_vgpr2 = COPY [[MV]](s96)
1434 %0:_(p5) = COPY $vgpr0
1435 %1:_(s96) = G_LOAD %0 :: (load 12, align 1, addrspace 56)
1436 $vgpr0_vgpr1_vgpr2 = COPY %1
1440 name: test_load_private_s96_align8
1445 ; SI-LABEL: name: test_load_private_s96_align8
1446 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
1447 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 8, addrspace 5)
1448 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
1449 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
1450 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
1451 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
1452 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
1453 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, align 8, addrspace 5)
1454 ; SI: [[MV:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32), [[LOAD2]](s32)
1455 ; SI: $vgpr0_vgpr1_vgpr2 = COPY [[MV]](s96)
1456 ; CI-LABEL: name: test_load_private_s96_align8
1457 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
1458 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 8, addrspace 5)
1459 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
1460 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
1461 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
1462 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
1463 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
1464 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, align 8, addrspace 5)
1465 ; CI: [[MV:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32), [[LOAD2]](s32)
1466 ; CI: $vgpr0_vgpr1_vgpr2 = COPY [[MV]](s96)
1467 ; VI-LABEL: name: test_load_private_s96_align8
1468 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
1469 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 8, addrspace 5)
1470 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
1471 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
1472 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
1473 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
1474 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
1475 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, align 8, addrspace 5)
1476 ; VI: [[MV:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32), [[LOAD2]](s32)
1477 ; VI: $vgpr0_vgpr1_vgpr2 = COPY [[MV]](s96)
1478 ; GFX9-LABEL: name: test_load_private_s96_align8
1479 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
1480 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 8, addrspace 5)
1481 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
1482 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
1483 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
1484 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
1485 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
1486 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, align 8, addrspace 5)
1487 ; GFX9: [[MV:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32), [[LOAD2]](s32)
1488 ; GFX9: $vgpr0_vgpr1_vgpr2 = COPY [[MV]](s96)
1489 %0:_(p5) = COPY $vgpr0
1490 %1:_(s96) = G_LOAD %0 :: (load 12, align 8, addrspace 5)
1491 $vgpr0_vgpr1_vgpr2 = COPY %1
1495 name: test_load_private_s96_align4
1500 ; SI-LABEL: name: test_load_private_s96_align4
1501 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
1502 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
1503 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
1504 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
1505 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
1506 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
1507 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
1508 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, addrspace 5)
1509 ; SI: [[MV:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32), [[LOAD2]](s32)
1510 ; SI: $vgpr0_vgpr1_vgpr2 = COPY [[MV]](s96)
1511 ; CI-LABEL: name: test_load_private_s96_align4
1512 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
1513 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
1514 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
1515 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
1516 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
1517 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
1518 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
1519 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, addrspace 5)
1520 ; CI: [[MV:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32), [[LOAD2]](s32)
1521 ; CI: $vgpr0_vgpr1_vgpr2 = COPY [[MV]](s96)
1522 ; VI-LABEL: name: test_load_private_s96_align4
1523 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
1524 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
1525 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
1526 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
1527 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
1528 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
1529 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
1530 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, addrspace 5)
1531 ; VI: [[MV:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32), [[LOAD2]](s32)
1532 ; VI: $vgpr0_vgpr1_vgpr2 = COPY [[MV]](s96)
1533 ; GFX9-LABEL: name: test_load_private_s96_align4
1534 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
1535 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
1536 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
1537 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
1538 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
1539 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
1540 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
1541 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, addrspace 5)
1542 ; GFX9: [[MV:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32), [[LOAD2]](s32)
1543 ; GFX9: $vgpr0_vgpr1_vgpr2 = COPY [[MV]](s96)
1544 %0:_(p5) = COPY $vgpr0
1545 %1:_(s96) = G_LOAD %0 :: (load 12, align 4, addrspace 5)
1546 $vgpr0_vgpr1_vgpr2 = COPY %1
1550 name: test_load_private_s96_align2
1555 ; SI-LABEL: name: test_load_private_s96_align2
1556 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
1557 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
1558 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
1559 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
1560 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
1561 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
1562 ; SI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
1563 ; SI: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C1]]
1564 ; SI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
1565 ; SI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C1]]
1566 ; SI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
1567 ; SI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
1568 ; SI: [[OR:%[0-9]+]]:_(s32) = G_OR [[AND]], [[SHL]]
1569 ; SI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
1570 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
1571 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 2, addrspace 5)
1572 ; SI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
1573 ; SI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 2, addrspace 5)
1574 ; SI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD2]](s32)
1575 ; SI: [[AND2:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C1]]
1576 ; SI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
1577 ; SI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C1]]
1578 ; SI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[C2]](s32)
1579 ; SI: [[OR1:%[0-9]+]]:_(s32) = G_OR [[AND2]], [[SHL1]]
1580 ; SI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
1581 ; SI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
1582 ; SI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 2, addrspace 5)
1583 ; SI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
1584 ; SI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 2, addrspace 5)
1585 ; SI: [[COPY5:%[0-9]+]]:_(s32) = COPY [[LOAD4]](s32)
1586 ; SI: [[AND4:%[0-9]+]]:_(s32) = G_AND [[COPY5]], [[C1]]
1587 ; SI: [[COPY6:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
1588 ; SI: [[AND5:%[0-9]+]]:_(s32) = G_AND [[COPY6]], [[C1]]
1589 ; SI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[AND5]], [[C2]](s32)
1590 ; SI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[AND4]], [[SHL2]]
1591 ; SI: [[MV:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[OR]](s32), [[OR1]](s32), [[OR2]](s32)
1592 ; SI: $vgpr0_vgpr1_vgpr2 = COPY [[MV]](s96)
1593 ; CI-LABEL: name: test_load_private_s96_align2
1594 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
1595 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
1596 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
1597 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
1598 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
1599 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
1600 ; CI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
1601 ; CI: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C1]]
1602 ; CI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
1603 ; CI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C1]]
1604 ; CI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
1605 ; CI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
1606 ; CI: [[OR:%[0-9]+]]:_(s32) = G_OR [[AND]], [[SHL]]
1607 ; CI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
1608 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
1609 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 2, addrspace 5)
1610 ; CI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
1611 ; CI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 2, addrspace 5)
1612 ; CI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD2]](s32)
1613 ; CI: [[AND2:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C1]]
1614 ; CI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
1615 ; CI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C1]]
1616 ; CI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[C2]](s32)
1617 ; CI: [[OR1:%[0-9]+]]:_(s32) = G_OR [[AND2]], [[SHL1]]
1618 ; CI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
1619 ; CI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
1620 ; CI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 2, addrspace 5)
1621 ; CI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
1622 ; CI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 2, addrspace 5)
1623 ; CI: [[COPY5:%[0-9]+]]:_(s32) = COPY [[LOAD4]](s32)
1624 ; CI: [[AND4:%[0-9]+]]:_(s32) = G_AND [[COPY5]], [[C1]]
1625 ; CI: [[COPY6:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
1626 ; CI: [[AND5:%[0-9]+]]:_(s32) = G_AND [[COPY6]], [[C1]]
1627 ; CI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[AND5]], [[C2]](s32)
1628 ; CI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[AND4]], [[SHL2]]
1629 ; CI: [[MV:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[OR]](s32), [[OR1]](s32), [[OR2]](s32)
1630 ; CI: $vgpr0_vgpr1_vgpr2 = COPY [[MV]](s96)
1631 ; VI-LABEL: name: test_load_private_s96_align2
1632 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
1633 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
1634 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
1635 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
1636 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
1637 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
1638 ; VI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
1639 ; VI: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C1]]
1640 ; VI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
1641 ; VI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C1]]
1642 ; VI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
1643 ; VI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
1644 ; VI: [[OR:%[0-9]+]]:_(s32) = G_OR [[AND]], [[SHL]]
1645 ; VI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
1646 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
1647 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 2, addrspace 5)
1648 ; VI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
1649 ; VI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 2, addrspace 5)
1650 ; VI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD2]](s32)
1651 ; VI: [[AND2:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C1]]
1652 ; VI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
1653 ; VI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C1]]
1654 ; VI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[C2]](s32)
1655 ; VI: [[OR1:%[0-9]+]]:_(s32) = G_OR [[AND2]], [[SHL1]]
1656 ; VI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
1657 ; VI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
1658 ; VI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 2, addrspace 5)
1659 ; VI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
1660 ; VI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 2, addrspace 5)
1661 ; VI: [[COPY5:%[0-9]+]]:_(s32) = COPY [[LOAD4]](s32)
1662 ; VI: [[AND4:%[0-9]+]]:_(s32) = G_AND [[COPY5]], [[C1]]
1663 ; VI: [[COPY6:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
1664 ; VI: [[AND5:%[0-9]+]]:_(s32) = G_AND [[COPY6]], [[C1]]
1665 ; VI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[AND5]], [[C2]](s32)
1666 ; VI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[AND4]], [[SHL2]]
1667 ; VI: [[MV:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[OR]](s32), [[OR1]](s32), [[OR2]](s32)
1668 ; VI: $vgpr0_vgpr1_vgpr2 = COPY [[MV]](s96)
1669 ; GFX9-LABEL: name: test_load_private_s96_align2
1670 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
1671 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
1672 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
1673 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
1674 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
1675 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
1676 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
1677 ; GFX9: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C1]]
1678 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
1679 ; GFX9: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C1]]
1680 ; GFX9: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
1681 ; GFX9: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
1682 ; GFX9: [[OR:%[0-9]+]]:_(s32) = G_OR [[AND]], [[SHL]]
1683 ; GFX9: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
1684 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
1685 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 2, addrspace 5)
1686 ; GFX9: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
1687 ; GFX9: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 2, addrspace 5)
1688 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD2]](s32)
1689 ; GFX9: [[AND2:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C1]]
1690 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
1691 ; GFX9: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C1]]
1692 ; GFX9: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[C2]](s32)
1693 ; GFX9: [[OR1:%[0-9]+]]:_(s32) = G_OR [[AND2]], [[SHL1]]
1694 ; GFX9: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
1695 ; GFX9: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
1696 ; GFX9: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 2, addrspace 5)
1697 ; GFX9: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
1698 ; GFX9: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 2, addrspace 5)
1699 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY [[LOAD4]](s32)
1700 ; GFX9: [[AND4:%[0-9]+]]:_(s32) = G_AND [[COPY5]], [[C1]]
1701 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
1702 ; GFX9: [[AND5:%[0-9]+]]:_(s32) = G_AND [[COPY6]], [[C1]]
1703 ; GFX9: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[AND5]], [[C2]](s32)
1704 ; GFX9: [[OR2:%[0-9]+]]:_(s32) = G_OR [[AND4]], [[SHL2]]
1705 ; GFX9: [[MV:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[OR]](s32), [[OR1]](s32), [[OR2]](s32)
1706 ; GFX9: $vgpr0_vgpr1_vgpr2 = COPY [[MV]](s96)
1707 %0:_(p5) = COPY $vgpr0
1708 %1:_(s96) = G_LOAD %0 :: (load 12, align 2, addrspace 5)
1709 $vgpr0_vgpr1_vgpr2 = COPY %1
1713 name: test_load_private_s96_align1
1718 ; SI-LABEL: name: test_load_private_s96_align1
1719 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
1720 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
1721 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
1722 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
1723 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
1724 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
1725 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
1726 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
1727 ; SI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
1728 ; SI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
1729 ; SI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
1730 ; SI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
1731 ; SI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
1732 ; SI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
1733 ; SI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
1734 ; SI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
1735 ; SI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
1736 ; SI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
1737 ; SI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C5]]
1738 ; SI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[COPY1]](s32)
1739 ; SI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[SHL]](s32)
1740 ; SI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[TRUNC1]]
1741 ; SI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
1742 ; SI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
1743 ; SI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
1744 ; SI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
1745 ; SI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C5]]
1746 ; SI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[COPY3]](s32)
1747 ; SI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[SHL1]](s32)
1748 ; SI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[TRUNC3]]
1749 ; SI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
1750 ; SI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
1751 ; SI: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
1752 ; SI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C6]](s32)
1753 ; SI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
1754 ; SI: [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
1755 ; SI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C7]](s32)
1756 ; SI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 5)
1757 ; SI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
1758 ; SI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 5)
1759 ; SI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
1760 ; SI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 5)
1761 ; SI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
1762 ; SI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 5)
1763 ; SI: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
1764 ; SI: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
1765 ; SI: [[COPY5:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
1766 ; SI: [[COPY6:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
1767 ; SI: [[AND5:%[0-9]+]]:_(s32) = G_AND [[COPY6]], [[C5]]
1768 ; SI: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[AND5]], [[COPY5]](s32)
1769 ; SI: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[SHL3]](s32)
1770 ; SI: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[TRUNC5]]
1771 ; SI: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
1772 ; SI: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
1773 ; SI: [[COPY7:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
1774 ; SI: [[COPY8:%[0-9]+]]:_(s32) = COPY [[LOAD7]](s32)
1775 ; SI: [[AND7:%[0-9]+]]:_(s32) = G_AND [[COPY8]], [[C5]]
1776 ; SI: [[SHL4:%[0-9]+]]:_(s32) = G_SHL [[AND7]], [[COPY7]](s32)
1777 ; SI: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[SHL4]](s32)
1778 ; SI: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[TRUNC7]]
1779 ; SI: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
1780 ; SI: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
1781 ; SI: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C6]](s32)
1782 ; SI: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
1783 ; SI: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
1784 ; SI: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 1, addrspace 5)
1785 ; SI: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
1786 ; SI: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 1, addrspace 5)
1787 ; SI: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C1]](s32)
1788 ; SI: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 1, addrspace 5)
1789 ; SI: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C2]](s32)
1790 ; SI: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 1, addrspace 5)
1791 ; SI: [[TRUNC8:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD8]](s32)
1792 ; SI: [[AND8:%[0-9]+]]:_(s16) = G_AND [[TRUNC8]], [[C3]]
1793 ; SI: [[COPY9:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
1794 ; SI: [[COPY10:%[0-9]+]]:_(s32) = COPY [[LOAD9]](s32)
1795 ; SI: [[AND9:%[0-9]+]]:_(s32) = G_AND [[COPY10]], [[C5]]
1796 ; SI: [[SHL6:%[0-9]+]]:_(s32) = G_SHL [[AND9]], [[COPY9]](s32)
1797 ; SI: [[TRUNC9:%[0-9]+]]:_(s16) = G_TRUNC [[SHL6]](s32)
1798 ; SI: [[OR6:%[0-9]+]]:_(s16) = G_OR [[AND8]], [[TRUNC9]]
1799 ; SI: [[TRUNC10:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD10]](s32)
1800 ; SI: [[AND10:%[0-9]+]]:_(s16) = G_AND [[TRUNC10]], [[C3]]
1801 ; SI: [[COPY11:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
1802 ; SI: [[COPY12:%[0-9]+]]:_(s32) = COPY [[LOAD11]](s32)
1803 ; SI: [[AND11:%[0-9]+]]:_(s32) = G_AND [[COPY12]], [[C5]]
1804 ; SI: [[SHL7:%[0-9]+]]:_(s32) = G_SHL [[AND11]], [[COPY11]](s32)
1805 ; SI: [[TRUNC11:%[0-9]+]]:_(s16) = G_TRUNC [[SHL7]](s32)
1806 ; SI: [[OR7:%[0-9]+]]:_(s16) = G_OR [[AND10]], [[TRUNC11]]
1807 ; SI: [[ZEXT4:%[0-9]+]]:_(s32) = G_ZEXT [[OR6]](s16)
1808 ; SI: [[ZEXT5:%[0-9]+]]:_(s32) = G_ZEXT [[OR7]](s16)
1809 ; SI: [[SHL8:%[0-9]+]]:_(s32) = G_SHL [[ZEXT5]], [[C6]](s32)
1810 ; SI: [[OR8:%[0-9]+]]:_(s32) = G_OR [[ZEXT4]], [[SHL8]]
1811 ; SI: [[MV:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[OR2]](s32), [[OR5]](s32), [[OR8]](s32)
1812 ; SI: $vgpr0_vgpr1_vgpr2 = COPY [[MV]](s96)
1813 ; CI-LABEL: name: test_load_private_s96_align1
1814 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
1815 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
1816 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
1817 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
1818 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
1819 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
1820 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
1821 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
1822 ; CI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
1823 ; CI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
1824 ; CI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
1825 ; CI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
1826 ; CI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
1827 ; CI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
1828 ; CI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
1829 ; CI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
1830 ; CI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
1831 ; CI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
1832 ; CI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C5]]
1833 ; CI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[COPY1]](s32)
1834 ; CI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[SHL]](s32)
1835 ; CI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[TRUNC1]]
1836 ; CI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
1837 ; CI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
1838 ; CI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
1839 ; CI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
1840 ; CI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C5]]
1841 ; CI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[COPY3]](s32)
1842 ; CI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[SHL1]](s32)
1843 ; CI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[TRUNC3]]
1844 ; CI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
1845 ; CI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
1846 ; CI: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
1847 ; CI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C6]](s32)
1848 ; CI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
1849 ; CI: [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
1850 ; CI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C7]](s32)
1851 ; CI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 5)
1852 ; CI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
1853 ; CI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 5)
1854 ; CI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
1855 ; CI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 5)
1856 ; CI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
1857 ; CI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 5)
1858 ; CI: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
1859 ; CI: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
1860 ; CI: [[COPY5:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
1861 ; CI: [[COPY6:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
1862 ; CI: [[AND5:%[0-9]+]]:_(s32) = G_AND [[COPY6]], [[C5]]
1863 ; CI: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[AND5]], [[COPY5]](s32)
1864 ; CI: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[SHL3]](s32)
1865 ; CI: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[TRUNC5]]
1866 ; CI: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
1867 ; CI: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
1868 ; CI: [[COPY7:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
1869 ; CI: [[COPY8:%[0-9]+]]:_(s32) = COPY [[LOAD7]](s32)
1870 ; CI: [[AND7:%[0-9]+]]:_(s32) = G_AND [[COPY8]], [[C5]]
1871 ; CI: [[SHL4:%[0-9]+]]:_(s32) = G_SHL [[AND7]], [[COPY7]](s32)
1872 ; CI: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[SHL4]](s32)
1873 ; CI: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[TRUNC7]]
1874 ; CI: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
1875 ; CI: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
1876 ; CI: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C6]](s32)
1877 ; CI: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
1878 ; CI: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
1879 ; CI: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 1, addrspace 5)
1880 ; CI: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
1881 ; CI: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 1, addrspace 5)
1882 ; CI: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C1]](s32)
1883 ; CI: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 1, addrspace 5)
1884 ; CI: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C2]](s32)
1885 ; CI: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 1, addrspace 5)
1886 ; CI: [[TRUNC8:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD8]](s32)
1887 ; CI: [[AND8:%[0-9]+]]:_(s16) = G_AND [[TRUNC8]], [[C3]]
1888 ; CI: [[COPY9:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
1889 ; CI: [[COPY10:%[0-9]+]]:_(s32) = COPY [[LOAD9]](s32)
1890 ; CI: [[AND9:%[0-9]+]]:_(s32) = G_AND [[COPY10]], [[C5]]
1891 ; CI: [[SHL6:%[0-9]+]]:_(s32) = G_SHL [[AND9]], [[COPY9]](s32)
1892 ; CI: [[TRUNC9:%[0-9]+]]:_(s16) = G_TRUNC [[SHL6]](s32)
1893 ; CI: [[OR6:%[0-9]+]]:_(s16) = G_OR [[AND8]], [[TRUNC9]]
1894 ; CI: [[TRUNC10:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD10]](s32)
1895 ; CI: [[AND10:%[0-9]+]]:_(s16) = G_AND [[TRUNC10]], [[C3]]
1896 ; CI: [[COPY11:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
1897 ; CI: [[COPY12:%[0-9]+]]:_(s32) = COPY [[LOAD11]](s32)
1898 ; CI: [[AND11:%[0-9]+]]:_(s32) = G_AND [[COPY12]], [[C5]]
1899 ; CI: [[SHL7:%[0-9]+]]:_(s32) = G_SHL [[AND11]], [[COPY11]](s32)
1900 ; CI: [[TRUNC11:%[0-9]+]]:_(s16) = G_TRUNC [[SHL7]](s32)
1901 ; CI: [[OR7:%[0-9]+]]:_(s16) = G_OR [[AND10]], [[TRUNC11]]
1902 ; CI: [[ZEXT4:%[0-9]+]]:_(s32) = G_ZEXT [[OR6]](s16)
1903 ; CI: [[ZEXT5:%[0-9]+]]:_(s32) = G_ZEXT [[OR7]](s16)
1904 ; CI: [[SHL8:%[0-9]+]]:_(s32) = G_SHL [[ZEXT5]], [[C6]](s32)
1905 ; CI: [[OR8:%[0-9]+]]:_(s32) = G_OR [[ZEXT4]], [[SHL8]]
1906 ; CI: [[MV:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[OR2]](s32), [[OR5]](s32), [[OR8]](s32)
1907 ; CI: $vgpr0_vgpr1_vgpr2 = COPY [[MV]](s96)
1908 ; VI-LABEL: name: test_load_private_s96_align1
1909 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
1910 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
1911 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
1912 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
1913 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
1914 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
1915 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
1916 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
1917 ; VI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
1918 ; VI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
1919 ; VI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
1920 ; VI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
1921 ; VI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
1922 ; VI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
1923 ; VI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
1924 ; VI: [[AND1:%[0-9]+]]:_(s16) = G_AND [[TRUNC1]], [[C3]]
1925 ; VI: [[C4:%[0-9]+]]:_(s16) = G_CONSTANT i16 8
1926 ; VI: [[SHL:%[0-9]+]]:_(s16) = G_SHL [[AND1]], [[C4]](s16)
1927 ; VI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[SHL]]
1928 ; VI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
1929 ; VI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
1930 ; VI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD3]](s32)
1931 ; VI: [[AND3:%[0-9]+]]:_(s16) = G_AND [[TRUNC3]], [[C3]]
1932 ; VI: [[SHL1:%[0-9]+]]:_(s16) = G_SHL [[AND3]], [[C4]](s16)
1933 ; VI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[SHL1]]
1934 ; VI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
1935 ; VI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
1936 ; VI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
1937 ; VI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C5]](s32)
1938 ; VI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
1939 ; VI: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
1940 ; VI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C6]](s32)
1941 ; VI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 5)
1942 ; VI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
1943 ; VI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 5)
1944 ; VI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
1945 ; VI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 5)
1946 ; VI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
1947 ; VI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 5)
1948 ; VI: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
1949 ; VI: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
1950 ; VI: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD5]](s32)
1951 ; VI: [[AND5:%[0-9]+]]:_(s16) = G_AND [[TRUNC5]], [[C3]]
1952 ; VI: [[SHL3:%[0-9]+]]:_(s16) = G_SHL [[AND5]], [[C4]](s16)
1953 ; VI: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[SHL3]]
1954 ; VI: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
1955 ; VI: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
1956 ; VI: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD7]](s32)
1957 ; VI: [[AND7:%[0-9]+]]:_(s16) = G_AND [[TRUNC7]], [[C3]]
1958 ; VI: [[SHL4:%[0-9]+]]:_(s16) = G_SHL [[AND7]], [[C4]](s16)
1959 ; VI: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[SHL4]]
1960 ; VI: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
1961 ; VI: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
1962 ; VI: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C5]](s32)
1963 ; VI: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
1964 ; VI: [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
1965 ; VI: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C7]](s32)
1966 ; VI: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 1, addrspace 5)
1967 ; VI: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
1968 ; VI: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 1, addrspace 5)
1969 ; VI: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C1]](s32)
1970 ; VI: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 1, addrspace 5)
1971 ; VI: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C2]](s32)
1972 ; VI: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 1, addrspace 5)
1973 ; VI: [[TRUNC8:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD8]](s32)
1974 ; VI: [[AND8:%[0-9]+]]:_(s16) = G_AND [[TRUNC8]], [[C3]]
1975 ; VI: [[TRUNC9:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD9]](s32)
1976 ; VI: [[AND9:%[0-9]+]]:_(s16) = G_AND [[TRUNC9]], [[C3]]
1977 ; VI: [[SHL6:%[0-9]+]]:_(s16) = G_SHL [[AND9]], [[C4]](s16)
1978 ; VI: [[OR6:%[0-9]+]]:_(s16) = G_OR [[AND8]], [[SHL6]]
1979 ; VI: [[TRUNC10:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD10]](s32)
1980 ; VI: [[AND10:%[0-9]+]]:_(s16) = G_AND [[TRUNC10]], [[C3]]
1981 ; VI: [[TRUNC11:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD11]](s32)
1982 ; VI: [[AND11:%[0-9]+]]:_(s16) = G_AND [[TRUNC11]], [[C3]]
1983 ; VI: [[SHL7:%[0-9]+]]:_(s16) = G_SHL [[AND11]], [[C4]](s16)
1984 ; VI: [[OR7:%[0-9]+]]:_(s16) = G_OR [[AND10]], [[SHL7]]
1985 ; VI: [[ZEXT4:%[0-9]+]]:_(s32) = G_ZEXT [[OR6]](s16)
1986 ; VI: [[ZEXT5:%[0-9]+]]:_(s32) = G_ZEXT [[OR7]](s16)
1987 ; VI: [[SHL8:%[0-9]+]]:_(s32) = G_SHL [[ZEXT5]], [[C5]](s32)
1988 ; VI: [[OR8:%[0-9]+]]:_(s32) = G_OR [[ZEXT4]], [[SHL8]]
1989 ; VI: [[MV:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[OR2]](s32), [[OR5]](s32), [[OR8]](s32)
1990 ; VI: $vgpr0_vgpr1_vgpr2 = COPY [[MV]](s96)
1991 ; GFX9-LABEL: name: test_load_private_s96_align1
1992 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
1993 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
1994 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
1995 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
1996 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
1997 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
1998 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
1999 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
2000 ; GFX9: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
2001 ; GFX9: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
2002 ; GFX9: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
2003 ; GFX9: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
2004 ; GFX9: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
2005 ; GFX9: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
2006 ; GFX9: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
2007 ; GFX9: [[AND1:%[0-9]+]]:_(s16) = G_AND [[TRUNC1]], [[C3]]
2008 ; GFX9: [[C4:%[0-9]+]]:_(s16) = G_CONSTANT i16 8
2009 ; GFX9: [[SHL:%[0-9]+]]:_(s16) = G_SHL [[AND1]], [[C4]](s16)
2010 ; GFX9: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[SHL]]
2011 ; GFX9: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
2012 ; GFX9: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
2013 ; GFX9: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD3]](s32)
2014 ; GFX9: [[AND3:%[0-9]+]]:_(s16) = G_AND [[TRUNC3]], [[C3]]
2015 ; GFX9: [[SHL1:%[0-9]+]]:_(s16) = G_SHL [[AND3]], [[C4]](s16)
2016 ; GFX9: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[SHL1]]
2017 ; GFX9: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
2018 ; GFX9: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
2019 ; GFX9: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
2020 ; GFX9: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C5]](s32)
2021 ; GFX9: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
2022 ; GFX9: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
2023 ; GFX9: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C6]](s32)
2024 ; GFX9: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 5)
2025 ; GFX9: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
2026 ; GFX9: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 5)
2027 ; GFX9: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
2028 ; GFX9: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 5)
2029 ; GFX9: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
2030 ; GFX9: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 5)
2031 ; GFX9: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
2032 ; GFX9: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
2033 ; GFX9: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD5]](s32)
2034 ; GFX9: [[AND5:%[0-9]+]]:_(s16) = G_AND [[TRUNC5]], [[C3]]
2035 ; GFX9: [[SHL3:%[0-9]+]]:_(s16) = G_SHL [[AND5]], [[C4]](s16)
2036 ; GFX9: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[SHL3]]
2037 ; GFX9: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
2038 ; GFX9: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
2039 ; GFX9: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD7]](s32)
2040 ; GFX9: [[AND7:%[0-9]+]]:_(s16) = G_AND [[TRUNC7]], [[C3]]
2041 ; GFX9: [[SHL4:%[0-9]+]]:_(s16) = G_SHL [[AND7]], [[C4]](s16)
2042 ; GFX9: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[SHL4]]
2043 ; GFX9: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
2044 ; GFX9: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
2045 ; GFX9: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C5]](s32)
2046 ; GFX9: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
2047 ; GFX9: [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
2048 ; GFX9: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C7]](s32)
2049 ; GFX9: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 1, addrspace 5)
2050 ; GFX9: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
2051 ; GFX9: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 1, addrspace 5)
2052 ; GFX9: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C1]](s32)
2053 ; GFX9: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 1, addrspace 5)
2054 ; GFX9: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C2]](s32)
2055 ; GFX9: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 1, addrspace 5)
2056 ; GFX9: [[TRUNC8:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD8]](s32)
2057 ; GFX9: [[AND8:%[0-9]+]]:_(s16) = G_AND [[TRUNC8]], [[C3]]
2058 ; GFX9: [[TRUNC9:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD9]](s32)
2059 ; GFX9: [[AND9:%[0-9]+]]:_(s16) = G_AND [[TRUNC9]], [[C3]]
2060 ; GFX9: [[SHL6:%[0-9]+]]:_(s16) = G_SHL [[AND9]], [[C4]](s16)
2061 ; GFX9: [[OR6:%[0-9]+]]:_(s16) = G_OR [[AND8]], [[SHL6]]
2062 ; GFX9: [[TRUNC10:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD10]](s32)
2063 ; GFX9: [[AND10:%[0-9]+]]:_(s16) = G_AND [[TRUNC10]], [[C3]]
2064 ; GFX9: [[TRUNC11:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD11]](s32)
2065 ; GFX9: [[AND11:%[0-9]+]]:_(s16) = G_AND [[TRUNC11]], [[C3]]
2066 ; GFX9: [[SHL7:%[0-9]+]]:_(s16) = G_SHL [[AND11]], [[C4]](s16)
2067 ; GFX9: [[OR7:%[0-9]+]]:_(s16) = G_OR [[AND10]], [[SHL7]]
2068 ; GFX9: [[ZEXT4:%[0-9]+]]:_(s32) = G_ZEXT [[OR6]](s16)
2069 ; GFX9: [[ZEXT5:%[0-9]+]]:_(s32) = G_ZEXT [[OR7]](s16)
2070 ; GFX9: [[SHL8:%[0-9]+]]:_(s32) = G_SHL [[ZEXT5]], [[C5]](s32)
2071 ; GFX9: [[OR8:%[0-9]+]]:_(s32) = G_OR [[ZEXT4]], [[SHL8]]
2072 ; GFX9: [[MV:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[OR2]](s32), [[OR5]](s32), [[OR8]](s32)
2073 ; GFX9: $vgpr0_vgpr1_vgpr2 = COPY [[MV]](s96)
2074 %0:_(p5) = COPY $vgpr0
2075 %1:_(s96) = G_LOAD %0 :: (load 12, align 1, addrspace 5)
2076 $vgpr0_vgpr1_vgpr2 = COPY %1
2080 name: test_load_private_s128_align16
2085 ; SI-LABEL: name: test_load_private_s128_align16
2086 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
2087 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 56)
2088 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
2089 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
2090 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 56)
2091 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
2092 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
2093 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 56)
2094 ; SI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
2095 ; SI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
2096 ; SI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 56)
2097 ; SI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
2098 ; SI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
2099 ; SI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
2100 ; SI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
2101 ; SI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
2102 ; SI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
2103 ; SI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
2104 ; SI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C5]]
2105 ; SI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[COPY1]](s32)
2106 ; SI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[SHL]](s32)
2107 ; SI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[TRUNC1]]
2108 ; SI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
2109 ; SI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
2110 ; SI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
2111 ; SI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
2112 ; SI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C5]]
2113 ; SI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[COPY3]](s32)
2114 ; SI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[SHL1]](s32)
2115 ; SI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[TRUNC3]]
2116 ; SI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
2117 ; SI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
2118 ; SI: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
2119 ; SI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C6]](s32)
2120 ; SI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
2121 ; SI: [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
2122 ; SI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C7]](s32)
2123 ; SI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 56)
2124 ; SI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
2125 ; SI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 56)
2126 ; SI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
2127 ; SI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 56)
2128 ; SI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
2129 ; SI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 56)
2130 ; SI: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
2131 ; SI: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
2132 ; SI: [[COPY5:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
2133 ; SI: [[COPY6:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
2134 ; SI: [[AND5:%[0-9]+]]:_(s32) = G_AND [[COPY6]], [[C5]]
2135 ; SI: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[AND5]], [[COPY5]](s32)
2136 ; SI: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[SHL3]](s32)
2137 ; SI: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[TRUNC5]]
2138 ; SI: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
2139 ; SI: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
2140 ; SI: [[COPY7:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
2141 ; SI: [[COPY8:%[0-9]+]]:_(s32) = COPY [[LOAD7]](s32)
2142 ; SI: [[AND7:%[0-9]+]]:_(s32) = G_AND [[COPY8]], [[C5]]
2143 ; SI: [[SHL4:%[0-9]+]]:_(s32) = G_SHL [[AND7]], [[COPY7]](s32)
2144 ; SI: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[SHL4]](s32)
2145 ; SI: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[TRUNC7]]
2146 ; SI: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
2147 ; SI: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
2148 ; SI: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C6]](s32)
2149 ; SI: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
2150 ; SI: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
2151 ; SI: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 1, addrspace 56)
2152 ; SI: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
2153 ; SI: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 1, addrspace 56)
2154 ; SI: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C1]](s32)
2155 ; SI: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 1, addrspace 56)
2156 ; SI: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C2]](s32)
2157 ; SI: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 1, addrspace 56)
2158 ; SI: [[TRUNC8:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD8]](s32)
2159 ; SI: [[AND8:%[0-9]+]]:_(s16) = G_AND [[TRUNC8]], [[C3]]
2160 ; SI: [[COPY9:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
2161 ; SI: [[COPY10:%[0-9]+]]:_(s32) = COPY [[LOAD9]](s32)
2162 ; SI: [[AND9:%[0-9]+]]:_(s32) = G_AND [[COPY10]], [[C5]]
2163 ; SI: [[SHL6:%[0-9]+]]:_(s32) = G_SHL [[AND9]], [[COPY9]](s32)
2164 ; SI: [[TRUNC9:%[0-9]+]]:_(s16) = G_TRUNC [[SHL6]](s32)
2165 ; SI: [[OR6:%[0-9]+]]:_(s16) = G_OR [[AND8]], [[TRUNC9]]
2166 ; SI: [[TRUNC10:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD10]](s32)
2167 ; SI: [[AND10:%[0-9]+]]:_(s16) = G_AND [[TRUNC10]], [[C3]]
2168 ; SI: [[COPY11:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
2169 ; SI: [[COPY12:%[0-9]+]]:_(s32) = COPY [[LOAD11]](s32)
2170 ; SI: [[AND11:%[0-9]+]]:_(s32) = G_AND [[COPY12]], [[C5]]
2171 ; SI: [[SHL7:%[0-9]+]]:_(s32) = G_SHL [[AND11]], [[COPY11]](s32)
2172 ; SI: [[TRUNC11:%[0-9]+]]:_(s16) = G_TRUNC [[SHL7]](s32)
2173 ; SI: [[OR7:%[0-9]+]]:_(s16) = G_OR [[AND10]], [[TRUNC11]]
2174 ; SI: [[ZEXT4:%[0-9]+]]:_(s32) = G_ZEXT [[OR6]](s16)
2175 ; SI: [[ZEXT5:%[0-9]+]]:_(s32) = G_ZEXT [[OR7]](s16)
2176 ; SI: [[SHL8:%[0-9]+]]:_(s32) = G_SHL [[ZEXT5]], [[C6]](s32)
2177 ; SI: [[OR8:%[0-9]+]]:_(s32) = G_OR [[ZEXT4]], [[SHL8]]
2178 ; SI: [[C8:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
2179 ; SI: [[GEP11:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C8]](s32)
2180 ; SI: [[LOAD12:%[0-9]+]]:_(s32) = G_LOAD [[GEP11]](p5) :: (load 1, addrspace 56)
2181 ; SI: [[GEP12:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C]](s32)
2182 ; SI: [[LOAD13:%[0-9]+]]:_(s32) = G_LOAD [[GEP12]](p5) :: (load 1, addrspace 56)
2183 ; SI: [[GEP13:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C1]](s32)
2184 ; SI: [[LOAD14:%[0-9]+]]:_(s32) = G_LOAD [[GEP13]](p5) :: (load 1, addrspace 56)
2185 ; SI: [[GEP14:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C2]](s32)
2186 ; SI: [[LOAD15:%[0-9]+]]:_(s32) = G_LOAD [[GEP14]](p5) :: (load 1, addrspace 56)
2187 ; SI: [[TRUNC12:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD12]](s32)
2188 ; SI: [[AND12:%[0-9]+]]:_(s16) = G_AND [[TRUNC12]], [[C3]]
2189 ; SI: [[COPY13:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
2190 ; SI: [[COPY14:%[0-9]+]]:_(s32) = COPY [[LOAD13]](s32)
2191 ; SI: [[AND13:%[0-9]+]]:_(s32) = G_AND [[COPY14]], [[C5]]
2192 ; SI: [[SHL9:%[0-9]+]]:_(s32) = G_SHL [[AND13]], [[COPY13]](s32)
2193 ; SI: [[TRUNC13:%[0-9]+]]:_(s16) = G_TRUNC [[SHL9]](s32)
2194 ; SI: [[OR9:%[0-9]+]]:_(s16) = G_OR [[AND12]], [[TRUNC13]]
2195 ; SI: [[TRUNC14:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD14]](s32)
2196 ; SI: [[AND14:%[0-9]+]]:_(s16) = G_AND [[TRUNC14]], [[C3]]
2197 ; SI: [[COPY15:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
2198 ; SI: [[COPY16:%[0-9]+]]:_(s32) = COPY [[LOAD15]](s32)
2199 ; SI: [[AND15:%[0-9]+]]:_(s32) = G_AND [[COPY16]], [[C5]]
2200 ; SI: [[SHL10:%[0-9]+]]:_(s32) = G_SHL [[AND15]], [[COPY15]](s32)
2201 ; SI: [[TRUNC15:%[0-9]+]]:_(s16) = G_TRUNC [[SHL10]](s32)
2202 ; SI: [[OR10:%[0-9]+]]:_(s16) = G_OR [[AND14]], [[TRUNC15]]
2203 ; SI: [[ZEXT6:%[0-9]+]]:_(s32) = G_ZEXT [[OR9]](s16)
2204 ; SI: [[ZEXT7:%[0-9]+]]:_(s32) = G_ZEXT [[OR10]](s16)
2205 ; SI: [[SHL11:%[0-9]+]]:_(s32) = G_SHL [[ZEXT7]], [[C6]](s32)
2206 ; SI: [[OR11:%[0-9]+]]:_(s32) = G_OR [[ZEXT6]], [[SHL11]]
2207 ; SI: [[MV:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[OR2]](s32), [[OR5]](s32), [[OR8]](s32), [[OR11]](s32)
2208 ; SI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[MV]](s128)
2209 ; CI-LABEL: name: test_load_private_s128_align16
2210 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
2211 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 56)
2212 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
2213 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
2214 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 56)
2215 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
2216 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
2217 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 56)
2218 ; CI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
2219 ; CI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
2220 ; CI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 56)
2221 ; CI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
2222 ; CI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
2223 ; CI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
2224 ; CI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
2225 ; CI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
2226 ; CI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
2227 ; CI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
2228 ; CI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C5]]
2229 ; CI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[COPY1]](s32)
2230 ; CI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[SHL]](s32)
2231 ; CI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[TRUNC1]]
2232 ; CI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
2233 ; CI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
2234 ; CI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
2235 ; CI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
2236 ; CI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C5]]
2237 ; CI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[COPY3]](s32)
2238 ; CI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[SHL1]](s32)
2239 ; CI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[TRUNC3]]
2240 ; CI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
2241 ; CI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
2242 ; CI: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
2243 ; CI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C6]](s32)
2244 ; CI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
2245 ; CI: [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
2246 ; CI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C7]](s32)
2247 ; CI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 56)
2248 ; CI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
2249 ; CI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 56)
2250 ; CI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
2251 ; CI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 56)
2252 ; CI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
2253 ; CI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 56)
2254 ; CI: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
2255 ; CI: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
2256 ; CI: [[COPY5:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
2257 ; CI: [[COPY6:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
2258 ; CI: [[AND5:%[0-9]+]]:_(s32) = G_AND [[COPY6]], [[C5]]
2259 ; CI: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[AND5]], [[COPY5]](s32)
2260 ; CI: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[SHL3]](s32)
2261 ; CI: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[TRUNC5]]
2262 ; CI: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
2263 ; CI: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
2264 ; CI: [[COPY7:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
2265 ; CI: [[COPY8:%[0-9]+]]:_(s32) = COPY [[LOAD7]](s32)
2266 ; CI: [[AND7:%[0-9]+]]:_(s32) = G_AND [[COPY8]], [[C5]]
2267 ; CI: [[SHL4:%[0-9]+]]:_(s32) = G_SHL [[AND7]], [[COPY7]](s32)
2268 ; CI: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[SHL4]](s32)
2269 ; CI: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[TRUNC7]]
2270 ; CI: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
2271 ; CI: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
2272 ; CI: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C6]](s32)
2273 ; CI: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
2274 ; CI: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
2275 ; CI: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 1, addrspace 56)
2276 ; CI: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
2277 ; CI: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 1, addrspace 56)
2278 ; CI: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C1]](s32)
2279 ; CI: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 1, addrspace 56)
2280 ; CI: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C2]](s32)
2281 ; CI: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 1, addrspace 56)
2282 ; CI: [[TRUNC8:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD8]](s32)
2283 ; CI: [[AND8:%[0-9]+]]:_(s16) = G_AND [[TRUNC8]], [[C3]]
2284 ; CI: [[COPY9:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
2285 ; CI: [[COPY10:%[0-9]+]]:_(s32) = COPY [[LOAD9]](s32)
2286 ; CI: [[AND9:%[0-9]+]]:_(s32) = G_AND [[COPY10]], [[C5]]
2287 ; CI: [[SHL6:%[0-9]+]]:_(s32) = G_SHL [[AND9]], [[COPY9]](s32)
2288 ; CI: [[TRUNC9:%[0-9]+]]:_(s16) = G_TRUNC [[SHL6]](s32)
2289 ; CI: [[OR6:%[0-9]+]]:_(s16) = G_OR [[AND8]], [[TRUNC9]]
2290 ; CI: [[TRUNC10:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD10]](s32)
2291 ; CI: [[AND10:%[0-9]+]]:_(s16) = G_AND [[TRUNC10]], [[C3]]
2292 ; CI: [[COPY11:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
2293 ; CI: [[COPY12:%[0-9]+]]:_(s32) = COPY [[LOAD11]](s32)
2294 ; CI: [[AND11:%[0-9]+]]:_(s32) = G_AND [[COPY12]], [[C5]]
2295 ; CI: [[SHL7:%[0-9]+]]:_(s32) = G_SHL [[AND11]], [[COPY11]](s32)
2296 ; CI: [[TRUNC11:%[0-9]+]]:_(s16) = G_TRUNC [[SHL7]](s32)
2297 ; CI: [[OR7:%[0-9]+]]:_(s16) = G_OR [[AND10]], [[TRUNC11]]
2298 ; CI: [[ZEXT4:%[0-9]+]]:_(s32) = G_ZEXT [[OR6]](s16)
2299 ; CI: [[ZEXT5:%[0-9]+]]:_(s32) = G_ZEXT [[OR7]](s16)
2300 ; CI: [[SHL8:%[0-9]+]]:_(s32) = G_SHL [[ZEXT5]], [[C6]](s32)
2301 ; CI: [[OR8:%[0-9]+]]:_(s32) = G_OR [[ZEXT4]], [[SHL8]]
2302 ; CI: [[C8:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
2303 ; CI: [[GEP11:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C8]](s32)
2304 ; CI: [[LOAD12:%[0-9]+]]:_(s32) = G_LOAD [[GEP11]](p5) :: (load 1, addrspace 56)
2305 ; CI: [[GEP12:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C]](s32)
2306 ; CI: [[LOAD13:%[0-9]+]]:_(s32) = G_LOAD [[GEP12]](p5) :: (load 1, addrspace 56)
2307 ; CI: [[GEP13:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C1]](s32)
2308 ; CI: [[LOAD14:%[0-9]+]]:_(s32) = G_LOAD [[GEP13]](p5) :: (load 1, addrspace 56)
2309 ; CI: [[GEP14:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C2]](s32)
2310 ; CI: [[LOAD15:%[0-9]+]]:_(s32) = G_LOAD [[GEP14]](p5) :: (load 1, addrspace 56)
2311 ; CI: [[TRUNC12:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD12]](s32)
2312 ; CI: [[AND12:%[0-9]+]]:_(s16) = G_AND [[TRUNC12]], [[C3]]
2313 ; CI: [[COPY13:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
2314 ; CI: [[COPY14:%[0-9]+]]:_(s32) = COPY [[LOAD13]](s32)
2315 ; CI: [[AND13:%[0-9]+]]:_(s32) = G_AND [[COPY14]], [[C5]]
2316 ; CI: [[SHL9:%[0-9]+]]:_(s32) = G_SHL [[AND13]], [[COPY13]](s32)
2317 ; CI: [[TRUNC13:%[0-9]+]]:_(s16) = G_TRUNC [[SHL9]](s32)
2318 ; CI: [[OR9:%[0-9]+]]:_(s16) = G_OR [[AND12]], [[TRUNC13]]
2319 ; CI: [[TRUNC14:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD14]](s32)
2320 ; CI: [[AND14:%[0-9]+]]:_(s16) = G_AND [[TRUNC14]], [[C3]]
2321 ; CI: [[COPY15:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
2322 ; CI: [[COPY16:%[0-9]+]]:_(s32) = COPY [[LOAD15]](s32)
2323 ; CI: [[AND15:%[0-9]+]]:_(s32) = G_AND [[COPY16]], [[C5]]
2324 ; CI: [[SHL10:%[0-9]+]]:_(s32) = G_SHL [[AND15]], [[COPY15]](s32)
2325 ; CI: [[TRUNC15:%[0-9]+]]:_(s16) = G_TRUNC [[SHL10]](s32)
2326 ; CI: [[OR10:%[0-9]+]]:_(s16) = G_OR [[AND14]], [[TRUNC15]]
2327 ; CI: [[ZEXT6:%[0-9]+]]:_(s32) = G_ZEXT [[OR9]](s16)
2328 ; CI: [[ZEXT7:%[0-9]+]]:_(s32) = G_ZEXT [[OR10]](s16)
2329 ; CI: [[SHL11:%[0-9]+]]:_(s32) = G_SHL [[ZEXT7]], [[C6]](s32)
2330 ; CI: [[OR11:%[0-9]+]]:_(s32) = G_OR [[ZEXT6]], [[SHL11]]
2331 ; CI: [[MV:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[OR2]](s32), [[OR5]](s32), [[OR8]](s32), [[OR11]](s32)
2332 ; CI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[MV]](s128)
2333 ; VI-LABEL: name: test_load_private_s128_align16
2334 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
2335 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 56)
2336 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
2337 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
2338 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 56)
2339 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
2340 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
2341 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 56)
2342 ; VI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
2343 ; VI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
2344 ; VI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 56)
2345 ; VI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
2346 ; VI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
2347 ; VI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
2348 ; VI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
2349 ; VI: [[AND1:%[0-9]+]]:_(s16) = G_AND [[TRUNC1]], [[C3]]
2350 ; VI: [[C4:%[0-9]+]]:_(s16) = G_CONSTANT i16 8
2351 ; VI: [[SHL:%[0-9]+]]:_(s16) = G_SHL [[AND1]], [[C4]](s16)
2352 ; VI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[SHL]]
2353 ; VI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
2354 ; VI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
2355 ; VI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD3]](s32)
2356 ; VI: [[AND3:%[0-9]+]]:_(s16) = G_AND [[TRUNC3]], [[C3]]
2357 ; VI: [[SHL1:%[0-9]+]]:_(s16) = G_SHL [[AND3]], [[C4]](s16)
2358 ; VI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[SHL1]]
2359 ; VI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
2360 ; VI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
2361 ; VI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
2362 ; VI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C5]](s32)
2363 ; VI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
2364 ; VI: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
2365 ; VI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C6]](s32)
2366 ; VI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 56)
2367 ; VI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
2368 ; VI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 56)
2369 ; VI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
2370 ; VI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 56)
2371 ; VI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
2372 ; VI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 56)
2373 ; VI: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
2374 ; VI: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
2375 ; VI: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD5]](s32)
2376 ; VI: [[AND5:%[0-9]+]]:_(s16) = G_AND [[TRUNC5]], [[C3]]
2377 ; VI: [[SHL3:%[0-9]+]]:_(s16) = G_SHL [[AND5]], [[C4]](s16)
2378 ; VI: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[SHL3]]
2379 ; VI: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
2380 ; VI: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
2381 ; VI: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD7]](s32)
2382 ; VI: [[AND7:%[0-9]+]]:_(s16) = G_AND [[TRUNC7]], [[C3]]
2383 ; VI: [[SHL4:%[0-9]+]]:_(s16) = G_SHL [[AND7]], [[C4]](s16)
2384 ; VI: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[SHL4]]
2385 ; VI: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
2386 ; VI: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
2387 ; VI: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C5]](s32)
2388 ; VI: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
2389 ; VI: [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
2390 ; VI: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C7]](s32)
2391 ; VI: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 1, addrspace 56)
2392 ; VI: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
2393 ; VI: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 1, addrspace 56)
2394 ; VI: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C1]](s32)
2395 ; VI: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 1, addrspace 56)
2396 ; VI: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C2]](s32)
2397 ; VI: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 1, addrspace 56)
2398 ; VI: [[TRUNC8:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD8]](s32)
2399 ; VI: [[AND8:%[0-9]+]]:_(s16) = G_AND [[TRUNC8]], [[C3]]
2400 ; VI: [[TRUNC9:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD9]](s32)
2401 ; VI: [[AND9:%[0-9]+]]:_(s16) = G_AND [[TRUNC9]], [[C3]]
2402 ; VI: [[SHL6:%[0-9]+]]:_(s16) = G_SHL [[AND9]], [[C4]](s16)
2403 ; VI: [[OR6:%[0-9]+]]:_(s16) = G_OR [[AND8]], [[SHL6]]
2404 ; VI: [[TRUNC10:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD10]](s32)
2405 ; VI: [[AND10:%[0-9]+]]:_(s16) = G_AND [[TRUNC10]], [[C3]]
2406 ; VI: [[TRUNC11:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD11]](s32)
2407 ; VI: [[AND11:%[0-9]+]]:_(s16) = G_AND [[TRUNC11]], [[C3]]
2408 ; VI: [[SHL7:%[0-9]+]]:_(s16) = G_SHL [[AND11]], [[C4]](s16)
2409 ; VI: [[OR7:%[0-9]+]]:_(s16) = G_OR [[AND10]], [[SHL7]]
2410 ; VI: [[ZEXT4:%[0-9]+]]:_(s32) = G_ZEXT [[OR6]](s16)
2411 ; VI: [[ZEXT5:%[0-9]+]]:_(s32) = G_ZEXT [[OR7]](s16)
2412 ; VI: [[SHL8:%[0-9]+]]:_(s32) = G_SHL [[ZEXT5]], [[C5]](s32)
2413 ; VI: [[OR8:%[0-9]+]]:_(s32) = G_OR [[ZEXT4]], [[SHL8]]
2414 ; VI: [[C8:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
2415 ; VI: [[GEP11:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C8]](s32)
2416 ; VI: [[LOAD12:%[0-9]+]]:_(s32) = G_LOAD [[GEP11]](p5) :: (load 1, addrspace 56)
2417 ; VI: [[GEP12:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C]](s32)
2418 ; VI: [[LOAD13:%[0-9]+]]:_(s32) = G_LOAD [[GEP12]](p5) :: (load 1, addrspace 56)
2419 ; VI: [[GEP13:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C1]](s32)
2420 ; VI: [[LOAD14:%[0-9]+]]:_(s32) = G_LOAD [[GEP13]](p5) :: (load 1, addrspace 56)
2421 ; VI: [[GEP14:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C2]](s32)
2422 ; VI: [[LOAD15:%[0-9]+]]:_(s32) = G_LOAD [[GEP14]](p5) :: (load 1, addrspace 56)
2423 ; VI: [[TRUNC12:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD12]](s32)
2424 ; VI: [[AND12:%[0-9]+]]:_(s16) = G_AND [[TRUNC12]], [[C3]]
2425 ; VI: [[TRUNC13:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD13]](s32)
2426 ; VI: [[AND13:%[0-9]+]]:_(s16) = G_AND [[TRUNC13]], [[C3]]
2427 ; VI: [[SHL9:%[0-9]+]]:_(s16) = G_SHL [[AND13]], [[C4]](s16)
2428 ; VI: [[OR9:%[0-9]+]]:_(s16) = G_OR [[AND12]], [[SHL9]]
2429 ; VI: [[TRUNC14:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD14]](s32)
2430 ; VI: [[AND14:%[0-9]+]]:_(s16) = G_AND [[TRUNC14]], [[C3]]
2431 ; VI: [[TRUNC15:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD15]](s32)
2432 ; VI: [[AND15:%[0-9]+]]:_(s16) = G_AND [[TRUNC15]], [[C3]]
2433 ; VI: [[SHL10:%[0-9]+]]:_(s16) = G_SHL [[AND15]], [[C4]](s16)
2434 ; VI: [[OR10:%[0-9]+]]:_(s16) = G_OR [[AND14]], [[SHL10]]
2435 ; VI: [[ZEXT6:%[0-9]+]]:_(s32) = G_ZEXT [[OR9]](s16)
2436 ; VI: [[ZEXT7:%[0-9]+]]:_(s32) = G_ZEXT [[OR10]](s16)
2437 ; VI: [[SHL11:%[0-9]+]]:_(s32) = G_SHL [[ZEXT7]], [[C5]](s32)
2438 ; VI: [[OR11:%[0-9]+]]:_(s32) = G_OR [[ZEXT6]], [[SHL11]]
2439 ; VI: [[MV:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[OR2]](s32), [[OR5]](s32), [[OR8]](s32), [[OR11]](s32)
2440 ; VI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[MV]](s128)
2441 ; GFX9-LABEL: name: test_load_private_s128_align16
2442 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
2443 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 56)
2444 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
2445 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
2446 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 56)
2447 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
2448 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
2449 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 56)
2450 ; GFX9: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
2451 ; GFX9: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
2452 ; GFX9: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 56)
2453 ; GFX9: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
2454 ; GFX9: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
2455 ; GFX9: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
2456 ; GFX9: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
2457 ; GFX9: [[AND1:%[0-9]+]]:_(s16) = G_AND [[TRUNC1]], [[C3]]
2458 ; GFX9: [[C4:%[0-9]+]]:_(s16) = G_CONSTANT i16 8
2459 ; GFX9: [[SHL:%[0-9]+]]:_(s16) = G_SHL [[AND1]], [[C4]](s16)
2460 ; GFX9: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[SHL]]
2461 ; GFX9: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
2462 ; GFX9: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
2463 ; GFX9: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD3]](s32)
2464 ; GFX9: [[AND3:%[0-9]+]]:_(s16) = G_AND [[TRUNC3]], [[C3]]
2465 ; GFX9: [[SHL1:%[0-9]+]]:_(s16) = G_SHL [[AND3]], [[C4]](s16)
2466 ; GFX9: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[SHL1]]
2467 ; GFX9: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
2468 ; GFX9: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
2469 ; GFX9: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
2470 ; GFX9: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C5]](s32)
2471 ; GFX9: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
2472 ; GFX9: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
2473 ; GFX9: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C6]](s32)
2474 ; GFX9: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 56)
2475 ; GFX9: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
2476 ; GFX9: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 56)
2477 ; GFX9: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
2478 ; GFX9: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 56)
2479 ; GFX9: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
2480 ; GFX9: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 56)
2481 ; GFX9: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
2482 ; GFX9: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
2483 ; GFX9: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD5]](s32)
2484 ; GFX9: [[AND5:%[0-9]+]]:_(s16) = G_AND [[TRUNC5]], [[C3]]
2485 ; GFX9: [[SHL3:%[0-9]+]]:_(s16) = G_SHL [[AND5]], [[C4]](s16)
2486 ; GFX9: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[SHL3]]
2487 ; GFX9: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
2488 ; GFX9: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
2489 ; GFX9: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD7]](s32)
2490 ; GFX9: [[AND7:%[0-9]+]]:_(s16) = G_AND [[TRUNC7]], [[C3]]
2491 ; GFX9: [[SHL4:%[0-9]+]]:_(s16) = G_SHL [[AND7]], [[C4]](s16)
2492 ; GFX9: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[SHL4]]
2493 ; GFX9: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
2494 ; GFX9: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
2495 ; GFX9: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C5]](s32)
2496 ; GFX9: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
2497 ; GFX9: [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
2498 ; GFX9: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C7]](s32)
2499 ; GFX9: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 1, addrspace 56)
2500 ; GFX9: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
2501 ; GFX9: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 1, addrspace 56)
2502 ; GFX9: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C1]](s32)
2503 ; GFX9: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 1, addrspace 56)
2504 ; GFX9: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C2]](s32)
2505 ; GFX9: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 1, addrspace 56)
2506 ; GFX9: [[TRUNC8:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD8]](s32)
2507 ; GFX9: [[AND8:%[0-9]+]]:_(s16) = G_AND [[TRUNC8]], [[C3]]
2508 ; GFX9: [[TRUNC9:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD9]](s32)
2509 ; GFX9: [[AND9:%[0-9]+]]:_(s16) = G_AND [[TRUNC9]], [[C3]]
2510 ; GFX9: [[SHL6:%[0-9]+]]:_(s16) = G_SHL [[AND9]], [[C4]](s16)
2511 ; GFX9: [[OR6:%[0-9]+]]:_(s16) = G_OR [[AND8]], [[SHL6]]
2512 ; GFX9: [[TRUNC10:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD10]](s32)
2513 ; GFX9: [[AND10:%[0-9]+]]:_(s16) = G_AND [[TRUNC10]], [[C3]]
2514 ; GFX9: [[TRUNC11:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD11]](s32)
2515 ; GFX9: [[AND11:%[0-9]+]]:_(s16) = G_AND [[TRUNC11]], [[C3]]
2516 ; GFX9: [[SHL7:%[0-9]+]]:_(s16) = G_SHL [[AND11]], [[C4]](s16)
2517 ; GFX9: [[OR7:%[0-9]+]]:_(s16) = G_OR [[AND10]], [[SHL7]]
2518 ; GFX9: [[ZEXT4:%[0-9]+]]:_(s32) = G_ZEXT [[OR6]](s16)
2519 ; GFX9: [[ZEXT5:%[0-9]+]]:_(s32) = G_ZEXT [[OR7]](s16)
2520 ; GFX9: [[SHL8:%[0-9]+]]:_(s32) = G_SHL [[ZEXT5]], [[C5]](s32)
2521 ; GFX9: [[OR8:%[0-9]+]]:_(s32) = G_OR [[ZEXT4]], [[SHL8]]
2522 ; GFX9: [[C8:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
2523 ; GFX9: [[GEP11:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C8]](s32)
2524 ; GFX9: [[LOAD12:%[0-9]+]]:_(s32) = G_LOAD [[GEP11]](p5) :: (load 1, addrspace 56)
2525 ; GFX9: [[GEP12:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C]](s32)
2526 ; GFX9: [[LOAD13:%[0-9]+]]:_(s32) = G_LOAD [[GEP12]](p5) :: (load 1, addrspace 56)
2527 ; GFX9: [[GEP13:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C1]](s32)
2528 ; GFX9: [[LOAD14:%[0-9]+]]:_(s32) = G_LOAD [[GEP13]](p5) :: (load 1, addrspace 56)
2529 ; GFX9: [[GEP14:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C2]](s32)
2530 ; GFX9: [[LOAD15:%[0-9]+]]:_(s32) = G_LOAD [[GEP14]](p5) :: (load 1, addrspace 56)
2531 ; GFX9: [[TRUNC12:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD12]](s32)
2532 ; GFX9: [[AND12:%[0-9]+]]:_(s16) = G_AND [[TRUNC12]], [[C3]]
2533 ; GFX9: [[TRUNC13:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD13]](s32)
2534 ; GFX9: [[AND13:%[0-9]+]]:_(s16) = G_AND [[TRUNC13]], [[C3]]
2535 ; GFX9: [[SHL9:%[0-9]+]]:_(s16) = G_SHL [[AND13]], [[C4]](s16)
2536 ; GFX9: [[OR9:%[0-9]+]]:_(s16) = G_OR [[AND12]], [[SHL9]]
2537 ; GFX9: [[TRUNC14:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD14]](s32)
2538 ; GFX9: [[AND14:%[0-9]+]]:_(s16) = G_AND [[TRUNC14]], [[C3]]
2539 ; GFX9: [[TRUNC15:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD15]](s32)
2540 ; GFX9: [[AND15:%[0-9]+]]:_(s16) = G_AND [[TRUNC15]], [[C3]]
2541 ; GFX9: [[SHL10:%[0-9]+]]:_(s16) = G_SHL [[AND15]], [[C4]](s16)
2542 ; GFX9: [[OR10:%[0-9]+]]:_(s16) = G_OR [[AND14]], [[SHL10]]
2543 ; GFX9: [[ZEXT6:%[0-9]+]]:_(s32) = G_ZEXT [[OR9]](s16)
2544 ; GFX9: [[ZEXT7:%[0-9]+]]:_(s32) = G_ZEXT [[OR10]](s16)
2545 ; GFX9: [[SHL11:%[0-9]+]]:_(s32) = G_SHL [[ZEXT7]], [[C5]](s32)
2546 ; GFX9: [[OR11:%[0-9]+]]:_(s32) = G_OR [[ZEXT6]], [[SHL11]]
2547 ; GFX9: [[MV:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[OR2]](s32), [[OR5]](s32), [[OR8]](s32), [[OR11]](s32)
2548 ; GFX9: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[MV]](s128)
2549 %0:_(p5) = COPY $vgpr0
2550 %1:_(s128) = G_LOAD %0 :: (load 16, align 1, addrspace 56)
2551 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1
2555 name: test_load_private_s128_align8
2560 ; SI-LABEL: name: test_load_private_s128_align8
2561 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
2562 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 8, addrspace 5)
2563 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
2564 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
2565 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
2566 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
2567 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
2568 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, align 8, addrspace 5)
2569 ; SI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
2570 ; SI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
2571 ; SI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
2572 ; SI: [[MV:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32), [[LOAD2]](s32), [[LOAD3]](s32)
2573 ; SI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[MV]](s128)
2574 ; CI-LABEL: name: test_load_private_s128_align8
2575 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
2576 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 8, addrspace 5)
2577 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
2578 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
2579 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
2580 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
2581 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
2582 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, align 8, addrspace 5)
2583 ; CI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
2584 ; CI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
2585 ; CI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
2586 ; CI: [[MV:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32), [[LOAD2]](s32), [[LOAD3]](s32)
2587 ; CI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[MV]](s128)
2588 ; VI-LABEL: name: test_load_private_s128_align8
2589 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
2590 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 8, addrspace 5)
2591 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
2592 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
2593 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
2594 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
2595 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
2596 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, align 8, addrspace 5)
2597 ; VI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
2598 ; VI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
2599 ; VI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
2600 ; VI: [[MV:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32), [[LOAD2]](s32), [[LOAD3]](s32)
2601 ; VI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[MV]](s128)
2602 ; GFX9-LABEL: name: test_load_private_s128_align8
2603 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
2604 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 8, addrspace 5)
2605 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
2606 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
2607 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
2608 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
2609 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
2610 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, align 8, addrspace 5)
2611 ; GFX9: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
2612 ; GFX9: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
2613 ; GFX9: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
2614 ; GFX9: [[MV:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32), [[LOAD2]](s32), [[LOAD3]](s32)
2615 ; GFX9: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[MV]](s128)
2616 %0:_(p5) = COPY $vgpr0
2617 %1:_(s128) = G_LOAD %0 :: (load 16, align 8, addrspace 5)
2618 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1
2622 name: test_load_private_s128_align4
2627 ; SI-LABEL: name: test_load_private_s128_align4
2628 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
2629 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
2630 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
2631 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
2632 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
2633 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
2634 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
2635 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, addrspace 5)
2636 ; SI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
2637 ; SI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
2638 ; SI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
2639 ; SI: [[MV:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32), [[LOAD2]](s32), [[LOAD3]](s32)
2640 ; SI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[MV]](s128)
2641 ; CI-LABEL: name: test_load_private_s128_align4
2642 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
2643 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
2644 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
2645 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
2646 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
2647 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
2648 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
2649 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, addrspace 5)
2650 ; CI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
2651 ; CI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
2652 ; CI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
2653 ; CI: [[MV:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32), [[LOAD2]](s32), [[LOAD3]](s32)
2654 ; CI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[MV]](s128)
2655 ; VI-LABEL: name: test_load_private_s128_align4
2656 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
2657 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
2658 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
2659 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
2660 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
2661 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
2662 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
2663 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, addrspace 5)
2664 ; VI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
2665 ; VI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
2666 ; VI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
2667 ; VI: [[MV:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32), [[LOAD2]](s32), [[LOAD3]](s32)
2668 ; VI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[MV]](s128)
2669 ; GFX9-LABEL: name: test_load_private_s128_align4
2670 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
2671 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
2672 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
2673 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
2674 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
2675 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
2676 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
2677 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, addrspace 5)
2678 ; GFX9: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
2679 ; GFX9: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
2680 ; GFX9: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
2681 ; GFX9: [[MV:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32), [[LOAD2]](s32), [[LOAD3]](s32)
2682 ; GFX9: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[MV]](s128)
2683 %0:_(p5) = COPY $vgpr0
2684 %1:_(s128) = G_LOAD %0 :: (load 16, align 4, addrspace 5)
2685 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1
2689 name: test_load_private_s128_align2
2694 ; SI-LABEL: name: test_load_private_s128_align2
2695 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
2696 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
2697 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
2698 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
2699 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
2700 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
2701 ; SI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
2702 ; SI: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C1]]
2703 ; SI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
2704 ; SI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C1]]
2705 ; SI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
2706 ; SI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
2707 ; SI: [[OR:%[0-9]+]]:_(s32) = G_OR [[AND]], [[SHL]]
2708 ; SI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
2709 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
2710 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 2, addrspace 5)
2711 ; SI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
2712 ; SI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 2, addrspace 5)
2713 ; SI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD2]](s32)
2714 ; SI: [[AND2:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C1]]
2715 ; SI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
2716 ; SI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C1]]
2717 ; SI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[C2]](s32)
2718 ; SI: [[OR1:%[0-9]+]]:_(s32) = G_OR [[AND2]], [[SHL1]]
2719 ; SI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
2720 ; SI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
2721 ; SI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 2, addrspace 5)
2722 ; SI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
2723 ; SI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 2, addrspace 5)
2724 ; SI: [[COPY5:%[0-9]+]]:_(s32) = COPY [[LOAD4]](s32)
2725 ; SI: [[AND4:%[0-9]+]]:_(s32) = G_AND [[COPY5]], [[C1]]
2726 ; SI: [[COPY6:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
2727 ; SI: [[AND5:%[0-9]+]]:_(s32) = G_AND [[COPY6]], [[C1]]
2728 ; SI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[AND5]], [[C2]](s32)
2729 ; SI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[AND4]], [[SHL2]]
2730 ; SI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
2731 ; SI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C5]](s32)
2732 ; SI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 2, addrspace 5)
2733 ; SI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP5]], [[C]](s32)
2734 ; SI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 2, addrspace 5)
2735 ; SI: [[COPY7:%[0-9]+]]:_(s32) = COPY [[LOAD6]](s32)
2736 ; SI: [[AND6:%[0-9]+]]:_(s32) = G_AND [[COPY7]], [[C1]]
2737 ; SI: [[COPY8:%[0-9]+]]:_(s32) = COPY [[LOAD7]](s32)
2738 ; SI: [[AND7:%[0-9]+]]:_(s32) = G_AND [[COPY8]], [[C1]]
2739 ; SI: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[AND7]], [[C2]](s32)
2740 ; SI: [[OR3:%[0-9]+]]:_(s32) = G_OR [[AND6]], [[SHL3]]
2741 ; SI: [[MV:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[OR]](s32), [[OR1]](s32), [[OR2]](s32), [[OR3]](s32)
2742 ; SI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[MV]](s128)
2743 ; CI-LABEL: name: test_load_private_s128_align2
2744 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
2745 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
2746 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
2747 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
2748 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
2749 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
2750 ; CI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
2751 ; CI: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C1]]
2752 ; CI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
2753 ; CI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C1]]
2754 ; CI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
2755 ; CI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
2756 ; CI: [[OR:%[0-9]+]]:_(s32) = G_OR [[AND]], [[SHL]]
2757 ; CI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
2758 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
2759 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 2, addrspace 5)
2760 ; CI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
2761 ; CI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 2, addrspace 5)
2762 ; CI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD2]](s32)
2763 ; CI: [[AND2:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C1]]
2764 ; CI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
2765 ; CI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C1]]
2766 ; CI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[C2]](s32)
2767 ; CI: [[OR1:%[0-9]+]]:_(s32) = G_OR [[AND2]], [[SHL1]]
2768 ; CI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
2769 ; CI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
2770 ; CI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 2, addrspace 5)
2771 ; CI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
2772 ; CI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 2, addrspace 5)
2773 ; CI: [[COPY5:%[0-9]+]]:_(s32) = COPY [[LOAD4]](s32)
2774 ; CI: [[AND4:%[0-9]+]]:_(s32) = G_AND [[COPY5]], [[C1]]
2775 ; CI: [[COPY6:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
2776 ; CI: [[AND5:%[0-9]+]]:_(s32) = G_AND [[COPY6]], [[C1]]
2777 ; CI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[AND5]], [[C2]](s32)
2778 ; CI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[AND4]], [[SHL2]]
2779 ; CI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
2780 ; CI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C5]](s32)
2781 ; CI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 2, addrspace 5)
2782 ; CI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP5]], [[C]](s32)
2783 ; CI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 2, addrspace 5)
2784 ; CI: [[COPY7:%[0-9]+]]:_(s32) = COPY [[LOAD6]](s32)
2785 ; CI: [[AND6:%[0-9]+]]:_(s32) = G_AND [[COPY7]], [[C1]]
2786 ; CI: [[COPY8:%[0-9]+]]:_(s32) = COPY [[LOAD7]](s32)
2787 ; CI: [[AND7:%[0-9]+]]:_(s32) = G_AND [[COPY8]], [[C1]]
2788 ; CI: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[AND7]], [[C2]](s32)
2789 ; CI: [[OR3:%[0-9]+]]:_(s32) = G_OR [[AND6]], [[SHL3]]
2790 ; CI: [[MV:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[OR]](s32), [[OR1]](s32), [[OR2]](s32), [[OR3]](s32)
2791 ; CI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[MV]](s128)
2792 ; VI-LABEL: name: test_load_private_s128_align2
2793 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
2794 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
2795 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
2796 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
2797 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
2798 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
2799 ; VI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
2800 ; VI: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C1]]
2801 ; VI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
2802 ; VI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C1]]
2803 ; VI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
2804 ; VI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
2805 ; VI: [[OR:%[0-9]+]]:_(s32) = G_OR [[AND]], [[SHL]]
2806 ; VI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
2807 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
2808 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 2, addrspace 5)
2809 ; VI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
2810 ; VI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 2, addrspace 5)
2811 ; VI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD2]](s32)
2812 ; VI: [[AND2:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C1]]
2813 ; VI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
2814 ; VI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C1]]
2815 ; VI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[C2]](s32)
2816 ; VI: [[OR1:%[0-9]+]]:_(s32) = G_OR [[AND2]], [[SHL1]]
2817 ; VI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
2818 ; VI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
2819 ; VI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 2, addrspace 5)
2820 ; VI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
2821 ; VI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 2, addrspace 5)
2822 ; VI: [[COPY5:%[0-9]+]]:_(s32) = COPY [[LOAD4]](s32)
2823 ; VI: [[AND4:%[0-9]+]]:_(s32) = G_AND [[COPY5]], [[C1]]
2824 ; VI: [[COPY6:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
2825 ; VI: [[AND5:%[0-9]+]]:_(s32) = G_AND [[COPY6]], [[C1]]
2826 ; VI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[AND5]], [[C2]](s32)
2827 ; VI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[AND4]], [[SHL2]]
2828 ; VI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
2829 ; VI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C5]](s32)
2830 ; VI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 2, addrspace 5)
2831 ; VI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP5]], [[C]](s32)
2832 ; VI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 2, addrspace 5)
2833 ; VI: [[COPY7:%[0-9]+]]:_(s32) = COPY [[LOAD6]](s32)
2834 ; VI: [[AND6:%[0-9]+]]:_(s32) = G_AND [[COPY7]], [[C1]]
2835 ; VI: [[COPY8:%[0-9]+]]:_(s32) = COPY [[LOAD7]](s32)
2836 ; VI: [[AND7:%[0-9]+]]:_(s32) = G_AND [[COPY8]], [[C1]]
2837 ; VI: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[AND7]], [[C2]](s32)
2838 ; VI: [[OR3:%[0-9]+]]:_(s32) = G_OR [[AND6]], [[SHL3]]
2839 ; VI: [[MV:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[OR]](s32), [[OR1]](s32), [[OR2]](s32), [[OR3]](s32)
2840 ; VI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[MV]](s128)
2841 ; GFX9-LABEL: name: test_load_private_s128_align2
2842 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
2843 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
2844 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
2845 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
2846 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
2847 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
2848 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
2849 ; GFX9: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C1]]
2850 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
2851 ; GFX9: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C1]]
2852 ; GFX9: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
2853 ; GFX9: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
2854 ; GFX9: [[OR:%[0-9]+]]:_(s32) = G_OR [[AND]], [[SHL]]
2855 ; GFX9: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
2856 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
2857 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 2, addrspace 5)
2858 ; GFX9: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
2859 ; GFX9: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 2, addrspace 5)
2860 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD2]](s32)
2861 ; GFX9: [[AND2:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C1]]
2862 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
2863 ; GFX9: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C1]]
2864 ; GFX9: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[C2]](s32)
2865 ; GFX9: [[OR1:%[0-9]+]]:_(s32) = G_OR [[AND2]], [[SHL1]]
2866 ; GFX9: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
2867 ; GFX9: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
2868 ; GFX9: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 2, addrspace 5)
2869 ; GFX9: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
2870 ; GFX9: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 2, addrspace 5)
2871 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY [[LOAD4]](s32)
2872 ; GFX9: [[AND4:%[0-9]+]]:_(s32) = G_AND [[COPY5]], [[C1]]
2873 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
2874 ; GFX9: [[AND5:%[0-9]+]]:_(s32) = G_AND [[COPY6]], [[C1]]
2875 ; GFX9: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[AND5]], [[C2]](s32)
2876 ; GFX9: [[OR2:%[0-9]+]]:_(s32) = G_OR [[AND4]], [[SHL2]]
2877 ; GFX9: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
2878 ; GFX9: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C5]](s32)
2879 ; GFX9: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 2, addrspace 5)
2880 ; GFX9: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP5]], [[C]](s32)
2881 ; GFX9: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 2, addrspace 5)
2882 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY [[LOAD6]](s32)
2883 ; GFX9: [[AND6:%[0-9]+]]:_(s32) = G_AND [[COPY7]], [[C1]]
2884 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY [[LOAD7]](s32)
2885 ; GFX9: [[AND7:%[0-9]+]]:_(s32) = G_AND [[COPY8]], [[C1]]
2886 ; GFX9: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[AND7]], [[C2]](s32)
2887 ; GFX9: [[OR3:%[0-9]+]]:_(s32) = G_OR [[AND6]], [[SHL3]]
2888 ; GFX9: [[MV:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[OR]](s32), [[OR1]](s32), [[OR2]](s32), [[OR3]](s32)
2889 ; GFX9: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[MV]](s128)
2890 %0:_(p5) = COPY $vgpr0
2891 %1:_(s128) = G_LOAD %0 :: (load 16, align 2, addrspace 5)
2892 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1
2896 name: test_load_private_s128_align1
2901 ; SI-LABEL: name: test_load_private_s128_align1
2902 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
2903 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
2904 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
2905 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
2906 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
2907 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
2908 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
2909 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
2910 ; SI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
2911 ; SI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
2912 ; SI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
2913 ; SI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
2914 ; SI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
2915 ; SI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
2916 ; SI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
2917 ; SI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
2918 ; SI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
2919 ; SI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
2920 ; SI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C5]]
2921 ; SI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[COPY1]](s32)
2922 ; SI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[SHL]](s32)
2923 ; SI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[TRUNC1]]
2924 ; SI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
2925 ; SI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
2926 ; SI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
2927 ; SI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
2928 ; SI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C5]]
2929 ; SI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[COPY3]](s32)
2930 ; SI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[SHL1]](s32)
2931 ; SI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[TRUNC3]]
2932 ; SI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
2933 ; SI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
2934 ; SI: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
2935 ; SI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C6]](s32)
2936 ; SI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
2937 ; SI: [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
2938 ; SI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C7]](s32)
2939 ; SI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 5)
2940 ; SI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
2941 ; SI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 5)
2942 ; SI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
2943 ; SI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 5)
2944 ; SI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
2945 ; SI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 5)
2946 ; SI: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
2947 ; SI: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
2948 ; SI: [[COPY5:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
2949 ; SI: [[COPY6:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
2950 ; SI: [[AND5:%[0-9]+]]:_(s32) = G_AND [[COPY6]], [[C5]]
2951 ; SI: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[AND5]], [[COPY5]](s32)
2952 ; SI: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[SHL3]](s32)
2953 ; SI: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[TRUNC5]]
2954 ; SI: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
2955 ; SI: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
2956 ; SI: [[COPY7:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
2957 ; SI: [[COPY8:%[0-9]+]]:_(s32) = COPY [[LOAD7]](s32)
2958 ; SI: [[AND7:%[0-9]+]]:_(s32) = G_AND [[COPY8]], [[C5]]
2959 ; SI: [[SHL4:%[0-9]+]]:_(s32) = G_SHL [[AND7]], [[COPY7]](s32)
2960 ; SI: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[SHL4]](s32)
2961 ; SI: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[TRUNC7]]
2962 ; SI: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
2963 ; SI: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
2964 ; SI: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C6]](s32)
2965 ; SI: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
2966 ; SI: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
2967 ; SI: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 1, addrspace 5)
2968 ; SI: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
2969 ; SI: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 1, addrspace 5)
2970 ; SI: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C1]](s32)
2971 ; SI: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 1, addrspace 5)
2972 ; SI: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C2]](s32)
2973 ; SI: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 1, addrspace 5)
2974 ; SI: [[TRUNC8:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD8]](s32)
2975 ; SI: [[AND8:%[0-9]+]]:_(s16) = G_AND [[TRUNC8]], [[C3]]
2976 ; SI: [[COPY9:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
2977 ; SI: [[COPY10:%[0-9]+]]:_(s32) = COPY [[LOAD9]](s32)
2978 ; SI: [[AND9:%[0-9]+]]:_(s32) = G_AND [[COPY10]], [[C5]]
2979 ; SI: [[SHL6:%[0-9]+]]:_(s32) = G_SHL [[AND9]], [[COPY9]](s32)
2980 ; SI: [[TRUNC9:%[0-9]+]]:_(s16) = G_TRUNC [[SHL6]](s32)
2981 ; SI: [[OR6:%[0-9]+]]:_(s16) = G_OR [[AND8]], [[TRUNC9]]
2982 ; SI: [[TRUNC10:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD10]](s32)
2983 ; SI: [[AND10:%[0-9]+]]:_(s16) = G_AND [[TRUNC10]], [[C3]]
2984 ; SI: [[COPY11:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
2985 ; SI: [[COPY12:%[0-9]+]]:_(s32) = COPY [[LOAD11]](s32)
2986 ; SI: [[AND11:%[0-9]+]]:_(s32) = G_AND [[COPY12]], [[C5]]
2987 ; SI: [[SHL7:%[0-9]+]]:_(s32) = G_SHL [[AND11]], [[COPY11]](s32)
2988 ; SI: [[TRUNC11:%[0-9]+]]:_(s16) = G_TRUNC [[SHL7]](s32)
2989 ; SI: [[OR7:%[0-9]+]]:_(s16) = G_OR [[AND10]], [[TRUNC11]]
2990 ; SI: [[ZEXT4:%[0-9]+]]:_(s32) = G_ZEXT [[OR6]](s16)
2991 ; SI: [[ZEXT5:%[0-9]+]]:_(s32) = G_ZEXT [[OR7]](s16)
2992 ; SI: [[SHL8:%[0-9]+]]:_(s32) = G_SHL [[ZEXT5]], [[C6]](s32)
2993 ; SI: [[OR8:%[0-9]+]]:_(s32) = G_OR [[ZEXT4]], [[SHL8]]
2994 ; SI: [[C8:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
2995 ; SI: [[GEP11:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C8]](s32)
2996 ; SI: [[LOAD12:%[0-9]+]]:_(s32) = G_LOAD [[GEP11]](p5) :: (load 1, addrspace 5)
2997 ; SI: [[GEP12:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C]](s32)
2998 ; SI: [[LOAD13:%[0-9]+]]:_(s32) = G_LOAD [[GEP12]](p5) :: (load 1, addrspace 5)
2999 ; SI: [[GEP13:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C1]](s32)
3000 ; SI: [[LOAD14:%[0-9]+]]:_(s32) = G_LOAD [[GEP13]](p5) :: (load 1, addrspace 5)
3001 ; SI: [[GEP14:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C2]](s32)
3002 ; SI: [[LOAD15:%[0-9]+]]:_(s32) = G_LOAD [[GEP14]](p5) :: (load 1, addrspace 5)
3003 ; SI: [[TRUNC12:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD12]](s32)
3004 ; SI: [[AND12:%[0-9]+]]:_(s16) = G_AND [[TRUNC12]], [[C3]]
3005 ; SI: [[COPY13:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
3006 ; SI: [[COPY14:%[0-9]+]]:_(s32) = COPY [[LOAD13]](s32)
3007 ; SI: [[AND13:%[0-9]+]]:_(s32) = G_AND [[COPY14]], [[C5]]
3008 ; SI: [[SHL9:%[0-9]+]]:_(s32) = G_SHL [[AND13]], [[COPY13]](s32)
3009 ; SI: [[TRUNC13:%[0-9]+]]:_(s16) = G_TRUNC [[SHL9]](s32)
3010 ; SI: [[OR9:%[0-9]+]]:_(s16) = G_OR [[AND12]], [[TRUNC13]]
3011 ; SI: [[TRUNC14:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD14]](s32)
3012 ; SI: [[AND14:%[0-9]+]]:_(s16) = G_AND [[TRUNC14]], [[C3]]
3013 ; SI: [[COPY15:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
3014 ; SI: [[COPY16:%[0-9]+]]:_(s32) = COPY [[LOAD15]](s32)
3015 ; SI: [[AND15:%[0-9]+]]:_(s32) = G_AND [[COPY16]], [[C5]]
3016 ; SI: [[SHL10:%[0-9]+]]:_(s32) = G_SHL [[AND15]], [[COPY15]](s32)
3017 ; SI: [[TRUNC15:%[0-9]+]]:_(s16) = G_TRUNC [[SHL10]](s32)
3018 ; SI: [[OR10:%[0-9]+]]:_(s16) = G_OR [[AND14]], [[TRUNC15]]
3019 ; SI: [[ZEXT6:%[0-9]+]]:_(s32) = G_ZEXT [[OR9]](s16)
3020 ; SI: [[ZEXT7:%[0-9]+]]:_(s32) = G_ZEXT [[OR10]](s16)
3021 ; SI: [[SHL11:%[0-9]+]]:_(s32) = G_SHL [[ZEXT7]], [[C6]](s32)
3022 ; SI: [[OR11:%[0-9]+]]:_(s32) = G_OR [[ZEXT6]], [[SHL11]]
3023 ; SI: [[MV:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[OR2]](s32), [[OR5]](s32), [[OR8]](s32), [[OR11]](s32)
3024 ; SI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[MV]](s128)
3025 ; CI-LABEL: name: test_load_private_s128_align1
3026 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
3027 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
3028 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
3029 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
3030 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
3031 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
3032 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
3033 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
3034 ; CI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
3035 ; CI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
3036 ; CI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
3037 ; CI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
3038 ; CI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
3039 ; CI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
3040 ; CI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
3041 ; CI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
3042 ; CI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
3043 ; CI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
3044 ; CI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C5]]
3045 ; CI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[COPY1]](s32)
3046 ; CI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[SHL]](s32)
3047 ; CI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[TRUNC1]]
3048 ; CI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
3049 ; CI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
3050 ; CI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
3051 ; CI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
3052 ; CI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C5]]
3053 ; CI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[COPY3]](s32)
3054 ; CI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[SHL1]](s32)
3055 ; CI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[TRUNC3]]
3056 ; CI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
3057 ; CI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
3058 ; CI: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
3059 ; CI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C6]](s32)
3060 ; CI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
3061 ; CI: [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
3062 ; CI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C7]](s32)
3063 ; CI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 5)
3064 ; CI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
3065 ; CI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 5)
3066 ; CI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
3067 ; CI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 5)
3068 ; CI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
3069 ; CI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 5)
3070 ; CI: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
3071 ; CI: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
3072 ; CI: [[COPY5:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
3073 ; CI: [[COPY6:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
3074 ; CI: [[AND5:%[0-9]+]]:_(s32) = G_AND [[COPY6]], [[C5]]
3075 ; CI: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[AND5]], [[COPY5]](s32)
3076 ; CI: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[SHL3]](s32)
3077 ; CI: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[TRUNC5]]
3078 ; CI: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
3079 ; CI: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
3080 ; CI: [[COPY7:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
3081 ; CI: [[COPY8:%[0-9]+]]:_(s32) = COPY [[LOAD7]](s32)
3082 ; CI: [[AND7:%[0-9]+]]:_(s32) = G_AND [[COPY8]], [[C5]]
3083 ; CI: [[SHL4:%[0-9]+]]:_(s32) = G_SHL [[AND7]], [[COPY7]](s32)
3084 ; CI: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[SHL4]](s32)
3085 ; CI: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[TRUNC7]]
3086 ; CI: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
3087 ; CI: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
3088 ; CI: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C6]](s32)
3089 ; CI: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
3090 ; CI: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
3091 ; CI: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 1, addrspace 5)
3092 ; CI: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
3093 ; CI: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 1, addrspace 5)
3094 ; CI: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C1]](s32)
3095 ; CI: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 1, addrspace 5)
3096 ; CI: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C2]](s32)
3097 ; CI: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 1, addrspace 5)
3098 ; CI: [[TRUNC8:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD8]](s32)
3099 ; CI: [[AND8:%[0-9]+]]:_(s16) = G_AND [[TRUNC8]], [[C3]]
3100 ; CI: [[COPY9:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
3101 ; CI: [[COPY10:%[0-9]+]]:_(s32) = COPY [[LOAD9]](s32)
3102 ; CI: [[AND9:%[0-9]+]]:_(s32) = G_AND [[COPY10]], [[C5]]
3103 ; CI: [[SHL6:%[0-9]+]]:_(s32) = G_SHL [[AND9]], [[COPY9]](s32)
3104 ; CI: [[TRUNC9:%[0-9]+]]:_(s16) = G_TRUNC [[SHL6]](s32)
3105 ; CI: [[OR6:%[0-9]+]]:_(s16) = G_OR [[AND8]], [[TRUNC9]]
3106 ; CI: [[TRUNC10:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD10]](s32)
3107 ; CI: [[AND10:%[0-9]+]]:_(s16) = G_AND [[TRUNC10]], [[C3]]
3108 ; CI: [[COPY11:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
3109 ; CI: [[COPY12:%[0-9]+]]:_(s32) = COPY [[LOAD11]](s32)
3110 ; CI: [[AND11:%[0-9]+]]:_(s32) = G_AND [[COPY12]], [[C5]]
3111 ; CI: [[SHL7:%[0-9]+]]:_(s32) = G_SHL [[AND11]], [[COPY11]](s32)
3112 ; CI: [[TRUNC11:%[0-9]+]]:_(s16) = G_TRUNC [[SHL7]](s32)
3113 ; CI: [[OR7:%[0-9]+]]:_(s16) = G_OR [[AND10]], [[TRUNC11]]
3114 ; CI: [[ZEXT4:%[0-9]+]]:_(s32) = G_ZEXT [[OR6]](s16)
3115 ; CI: [[ZEXT5:%[0-9]+]]:_(s32) = G_ZEXT [[OR7]](s16)
3116 ; CI: [[SHL8:%[0-9]+]]:_(s32) = G_SHL [[ZEXT5]], [[C6]](s32)
3117 ; CI: [[OR8:%[0-9]+]]:_(s32) = G_OR [[ZEXT4]], [[SHL8]]
3118 ; CI: [[C8:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
3119 ; CI: [[GEP11:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C8]](s32)
3120 ; CI: [[LOAD12:%[0-9]+]]:_(s32) = G_LOAD [[GEP11]](p5) :: (load 1, addrspace 5)
3121 ; CI: [[GEP12:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C]](s32)
3122 ; CI: [[LOAD13:%[0-9]+]]:_(s32) = G_LOAD [[GEP12]](p5) :: (load 1, addrspace 5)
3123 ; CI: [[GEP13:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C1]](s32)
3124 ; CI: [[LOAD14:%[0-9]+]]:_(s32) = G_LOAD [[GEP13]](p5) :: (load 1, addrspace 5)
3125 ; CI: [[GEP14:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C2]](s32)
3126 ; CI: [[LOAD15:%[0-9]+]]:_(s32) = G_LOAD [[GEP14]](p5) :: (load 1, addrspace 5)
3127 ; CI: [[TRUNC12:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD12]](s32)
3128 ; CI: [[AND12:%[0-9]+]]:_(s16) = G_AND [[TRUNC12]], [[C3]]
3129 ; CI: [[COPY13:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
3130 ; CI: [[COPY14:%[0-9]+]]:_(s32) = COPY [[LOAD13]](s32)
3131 ; CI: [[AND13:%[0-9]+]]:_(s32) = G_AND [[COPY14]], [[C5]]
3132 ; CI: [[SHL9:%[0-9]+]]:_(s32) = G_SHL [[AND13]], [[COPY13]](s32)
3133 ; CI: [[TRUNC13:%[0-9]+]]:_(s16) = G_TRUNC [[SHL9]](s32)
3134 ; CI: [[OR9:%[0-9]+]]:_(s16) = G_OR [[AND12]], [[TRUNC13]]
3135 ; CI: [[TRUNC14:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD14]](s32)
3136 ; CI: [[AND14:%[0-9]+]]:_(s16) = G_AND [[TRUNC14]], [[C3]]
3137 ; CI: [[COPY15:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
3138 ; CI: [[COPY16:%[0-9]+]]:_(s32) = COPY [[LOAD15]](s32)
3139 ; CI: [[AND15:%[0-9]+]]:_(s32) = G_AND [[COPY16]], [[C5]]
3140 ; CI: [[SHL10:%[0-9]+]]:_(s32) = G_SHL [[AND15]], [[COPY15]](s32)
3141 ; CI: [[TRUNC15:%[0-9]+]]:_(s16) = G_TRUNC [[SHL10]](s32)
3142 ; CI: [[OR10:%[0-9]+]]:_(s16) = G_OR [[AND14]], [[TRUNC15]]
3143 ; CI: [[ZEXT6:%[0-9]+]]:_(s32) = G_ZEXT [[OR9]](s16)
3144 ; CI: [[ZEXT7:%[0-9]+]]:_(s32) = G_ZEXT [[OR10]](s16)
3145 ; CI: [[SHL11:%[0-9]+]]:_(s32) = G_SHL [[ZEXT7]], [[C6]](s32)
3146 ; CI: [[OR11:%[0-9]+]]:_(s32) = G_OR [[ZEXT6]], [[SHL11]]
3147 ; CI: [[MV:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[OR2]](s32), [[OR5]](s32), [[OR8]](s32), [[OR11]](s32)
3148 ; CI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[MV]](s128)
3149 ; VI-LABEL: name: test_load_private_s128_align1
3150 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
3151 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
3152 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
3153 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
3154 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
3155 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
3156 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
3157 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
3158 ; VI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
3159 ; VI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
3160 ; VI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
3161 ; VI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
3162 ; VI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
3163 ; VI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
3164 ; VI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
3165 ; VI: [[AND1:%[0-9]+]]:_(s16) = G_AND [[TRUNC1]], [[C3]]
3166 ; VI: [[C4:%[0-9]+]]:_(s16) = G_CONSTANT i16 8
3167 ; VI: [[SHL:%[0-9]+]]:_(s16) = G_SHL [[AND1]], [[C4]](s16)
3168 ; VI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[SHL]]
3169 ; VI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
3170 ; VI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
3171 ; VI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD3]](s32)
3172 ; VI: [[AND3:%[0-9]+]]:_(s16) = G_AND [[TRUNC3]], [[C3]]
3173 ; VI: [[SHL1:%[0-9]+]]:_(s16) = G_SHL [[AND3]], [[C4]](s16)
3174 ; VI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[SHL1]]
3175 ; VI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
3176 ; VI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
3177 ; VI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
3178 ; VI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C5]](s32)
3179 ; VI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
3180 ; VI: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
3181 ; VI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C6]](s32)
3182 ; VI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 5)
3183 ; VI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
3184 ; VI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 5)
3185 ; VI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
3186 ; VI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 5)
3187 ; VI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
3188 ; VI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 5)
3189 ; VI: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
3190 ; VI: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
3191 ; VI: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD5]](s32)
3192 ; VI: [[AND5:%[0-9]+]]:_(s16) = G_AND [[TRUNC5]], [[C3]]
3193 ; VI: [[SHL3:%[0-9]+]]:_(s16) = G_SHL [[AND5]], [[C4]](s16)
3194 ; VI: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[SHL3]]
3195 ; VI: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
3196 ; VI: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
3197 ; VI: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD7]](s32)
3198 ; VI: [[AND7:%[0-9]+]]:_(s16) = G_AND [[TRUNC7]], [[C3]]
3199 ; VI: [[SHL4:%[0-9]+]]:_(s16) = G_SHL [[AND7]], [[C4]](s16)
3200 ; VI: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[SHL4]]
3201 ; VI: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
3202 ; VI: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
3203 ; VI: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C5]](s32)
3204 ; VI: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
3205 ; VI: [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
3206 ; VI: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C7]](s32)
3207 ; VI: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 1, addrspace 5)
3208 ; VI: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
3209 ; VI: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 1, addrspace 5)
3210 ; VI: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C1]](s32)
3211 ; VI: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 1, addrspace 5)
3212 ; VI: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C2]](s32)
3213 ; VI: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 1, addrspace 5)
3214 ; VI: [[TRUNC8:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD8]](s32)
3215 ; VI: [[AND8:%[0-9]+]]:_(s16) = G_AND [[TRUNC8]], [[C3]]
3216 ; VI: [[TRUNC9:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD9]](s32)
3217 ; VI: [[AND9:%[0-9]+]]:_(s16) = G_AND [[TRUNC9]], [[C3]]
3218 ; VI: [[SHL6:%[0-9]+]]:_(s16) = G_SHL [[AND9]], [[C4]](s16)
3219 ; VI: [[OR6:%[0-9]+]]:_(s16) = G_OR [[AND8]], [[SHL6]]
3220 ; VI: [[TRUNC10:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD10]](s32)
3221 ; VI: [[AND10:%[0-9]+]]:_(s16) = G_AND [[TRUNC10]], [[C3]]
3222 ; VI: [[TRUNC11:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD11]](s32)
3223 ; VI: [[AND11:%[0-9]+]]:_(s16) = G_AND [[TRUNC11]], [[C3]]
3224 ; VI: [[SHL7:%[0-9]+]]:_(s16) = G_SHL [[AND11]], [[C4]](s16)
3225 ; VI: [[OR7:%[0-9]+]]:_(s16) = G_OR [[AND10]], [[SHL7]]
3226 ; VI: [[ZEXT4:%[0-9]+]]:_(s32) = G_ZEXT [[OR6]](s16)
3227 ; VI: [[ZEXT5:%[0-9]+]]:_(s32) = G_ZEXT [[OR7]](s16)
3228 ; VI: [[SHL8:%[0-9]+]]:_(s32) = G_SHL [[ZEXT5]], [[C5]](s32)
3229 ; VI: [[OR8:%[0-9]+]]:_(s32) = G_OR [[ZEXT4]], [[SHL8]]
3230 ; VI: [[C8:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
3231 ; VI: [[GEP11:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C8]](s32)
3232 ; VI: [[LOAD12:%[0-9]+]]:_(s32) = G_LOAD [[GEP11]](p5) :: (load 1, addrspace 5)
3233 ; VI: [[GEP12:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C]](s32)
3234 ; VI: [[LOAD13:%[0-9]+]]:_(s32) = G_LOAD [[GEP12]](p5) :: (load 1, addrspace 5)
3235 ; VI: [[GEP13:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C1]](s32)
3236 ; VI: [[LOAD14:%[0-9]+]]:_(s32) = G_LOAD [[GEP13]](p5) :: (load 1, addrspace 5)
3237 ; VI: [[GEP14:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C2]](s32)
3238 ; VI: [[LOAD15:%[0-9]+]]:_(s32) = G_LOAD [[GEP14]](p5) :: (load 1, addrspace 5)
3239 ; VI: [[TRUNC12:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD12]](s32)
3240 ; VI: [[AND12:%[0-9]+]]:_(s16) = G_AND [[TRUNC12]], [[C3]]
3241 ; VI: [[TRUNC13:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD13]](s32)
3242 ; VI: [[AND13:%[0-9]+]]:_(s16) = G_AND [[TRUNC13]], [[C3]]
3243 ; VI: [[SHL9:%[0-9]+]]:_(s16) = G_SHL [[AND13]], [[C4]](s16)
3244 ; VI: [[OR9:%[0-9]+]]:_(s16) = G_OR [[AND12]], [[SHL9]]
3245 ; VI: [[TRUNC14:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD14]](s32)
3246 ; VI: [[AND14:%[0-9]+]]:_(s16) = G_AND [[TRUNC14]], [[C3]]
3247 ; VI: [[TRUNC15:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD15]](s32)
3248 ; VI: [[AND15:%[0-9]+]]:_(s16) = G_AND [[TRUNC15]], [[C3]]
3249 ; VI: [[SHL10:%[0-9]+]]:_(s16) = G_SHL [[AND15]], [[C4]](s16)
3250 ; VI: [[OR10:%[0-9]+]]:_(s16) = G_OR [[AND14]], [[SHL10]]
3251 ; VI: [[ZEXT6:%[0-9]+]]:_(s32) = G_ZEXT [[OR9]](s16)
3252 ; VI: [[ZEXT7:%[0-9]+]]:_(s32) = G_ZEXT [[OR10]](s16)
3253 ; VI: [[SHL11:%[0-9]+]]:_(s32) = G_SHL [[ZEXT7]], [[C5]](s32)
3254 ; VI: [[OR11:%[0-9]+]]:_(s32) = G_OR [[ZEXT6]], [[SHL11]]
3255 ; VI: [[MV:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[OR2]](s32), [[OR5]](s32), [[OR8]](s32), [[OR11]](s32)
3256 ; VI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[MV]](s128)
3257 ; GFX9-LABEL: name: test_load_private_s128_align1
3258 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
3259 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
3260 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
3261 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
3262 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
3263 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
3264 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
3265 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
3266 ; GFX9: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
3267 ; GFX9: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
3268 ; GFX9: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
3269 ; GFX9: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
3270 ; GFX9: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
3271 ; GFX9: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
3272 ; GFX9: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
3273 ; GFX9: [[AND1:%[0-9]+]]:_(s16) = G_AND [[TRUNC1]], [[C3]]
3274 ; GFX9: [[C4:%[0-9]+]]:_(s16) = G_CONSTANT i16 8
3275 ; GFX9: [[SHL:%[0-9]+]]:_(s16) = G_SHL [[AND1]], [[C4]](s16)
3276 ; GFX9: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[SHL]]
3277 ; GFX9: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
3278 ; GFX9: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
3279 ; GFX9: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD3]](s32)
3280 ; GFX9: [[AND3:%[0-9]+]]:_(s16) = G_AND [[TRUNC3]], [[C3]]
3281 ; GFX9: [[SHL1:%[0-9]+]]:_(s16) = G_SHL [[AND3]], [[C4]](s16)
3282 ; GFX9: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[SHL1]]
3283 ; GFX9: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
3284 ; GFX9: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
3285 ; GFX9: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
3286 ; GFX9: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C5]](s32)
3287 ; GFX9: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
3288 ; GFX9: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
3289 ; GFX9: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C6]](s32)
3290 ; GFX9: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 5)
3291 ; GFX9: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
3292 ; GFX9: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 5)
3293 ; GFX9: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
3294 ; GFX9: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 5)
3295 ; GFX9: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
3296 ; GFX9: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 5)
3297 ; GFX9: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
3298 ; GFX9: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
3299 ; GFX9: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD5]](s32)
3300 ; GFX9: [[AND5:%[0-9]+]]:_(s16) = G_AND [[TRUNC5]], [[C3]]
3301 ; GFX9: [[SHL3:%[0-9]+]]:_(s16) = G_SHL [[AND5]], [[C4]](s16)
3302 ; GFX9: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[SHL3]]
3303 ; GFX9: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
3304 ; GFX9: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
3305 ; GFX9: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD7]](s32)
3306 ; GFX9: [[AND7:%[0-9]+]]:_(s16) = G_AND [[TRUNC7]], [[C3]]
3307 ; GFX9: [[SHL4:%[0-9]+]]:_(s16) = G_SHL [[AND7]], [[C4]](s16)
3308 ; GFX9: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[SHL4]]
3309 ; GFX9: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
3310 ; GFX9: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
3311 ; GFX9: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C5]](s32)
3312 ; GFX9: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
3313 ; GFX9: [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
3314 ; GFX9: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C7]](s32)
3315 ; GFX9: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 1, addrspace 5)
3316 ; GFX9: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
3317 ; GFX9: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 1, addrspace 5)
3318 ; GFX9: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C1]](s32)
3319 ; GFX9: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 1, addrspace 5)
3320 ; GFX9: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C2]](s32)
3321 ; GFX9: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 1, addrspace 5)
3322 ; GFX9: [[TRUNC8:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD8]](s32)
3323 ; GFX9: [[AND8:%[0-9]+]]:_(s16) = G_AND [[TRUNC8]], [[C3]]
3324 ; GFX9: [[TRUNC9:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD9]](s32)
3325 ; GFX9: [[AND9:%[0-9]+]]:_(s16) = G_AND [[TRUNC9]], [[C3]]
3326 ; GFX9: [[SHL6:%[0-9]+]]:_(s16) = G_SHL [[AND9]], [[C4]](s16)
3327 ; GFX9: [[OR6:%[0-9]+]]:_(s16) = G_OR [[AND8]], [[SHL6]]
3328 ; GFX9: [[TRUNC10:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD10]](s32)
3329 ; GFX9: [[AND10:%[0-9]+]]:_(s16) = G_AND [[TRUNC10]], [[C3]]
3330 ; GFX9: [[TRUNC11:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD11]](s32)
3331 ; GFX9: [[AND11:%[0-9]+]]:_(s16) = G_AND [[TRUNC11]], [[C3]]
3332 ; GFX9: [[SHL7:%[0-9]+]]:_(s16) = G_SHL [[AND11]], [[C4]](s16)
3333 ; GFX9: [[OR7:%[0-9]+]]:_(s16) = G_OR [[AND10]], [[SHL7]]
3334 ; GFX9: [[ZEXT4:%[0-9]+]]:_(s32) = G_ZEXT [[OR6]](s16)
3335 ; GFX9: [[ZEXT5:%[0-9]+]]:_(s32) = G_ZEXT [[OR7]](s16)
3336 ; GFX9: [[SHL8:%[0-9]+]]:_(s32) = G_SHL [[ZEXT5]], [[C5]](s32)
3337 ; GFX9: [[OR8:%[0-9]+]]:_(s32) = G_OR [[ZEXT4]], [[SHL8]]
3338 ; GFX9: [[C8:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
3339 ; GFX9: [[GEP11:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C8]](s32)
3340 ; GFX9: [[LOAD12:%[0-9]+]]:_(s32) = G_LOAD [[GEP11]](p5) :: (load 1, addrspace 5)
3341 ; GFX9: [[GEP12:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C]](s32)
3342 ; GFX9: [[LOAD13:%[0-9]+]]:_(s32) = G_LOAD [[GEP12]](p5) :: (load 1, addrspace 5)
3343 ; GFX9: [[GEP13:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C1]](s32)
3344 ; GFX9: [[LOAD14:%[0-9]+]]:_(s32) = G_LOAD [[GEP13]](p5) :: (load 1, addrspace 5)
3345 ; GFX9: [[GEP14:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C2]](s32)
3346 ; GFX9: [[LOAD15:%[0-9]+]]:_(s32) = G_LOAD [[GEP14]](p5) :: (load 1, addrspace 5)
3347 ; GFX9: [[TRUNC12:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD12]](s32)
3348 ; GFX9: [[AND12:%[0-9]+]]:_(s16) = G_AND [[TRUNC12]], [[C3]]
3349 ; GFX9: [[TRUNC13:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD13]](s32)
3350 ; GFX9: [[AND13:%[0-9]+]]:_(s16) = G_AND [[TRUNC13]], [[C3]]
3351 ; GFX9: [[SHL9:%[0-9]+]]:_(s16) = G_SHL [[AND13]], [[C4]](s16)
3352 ; GFX9: [[OR9:%[0-9]+]]:_(s16) = G_OR [[AND12]], [[SHL9]]
3353 ; GFX9: [[TRUNC14:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD14]](s32)
3354 ; GFX9: [[AND14:%[0-9]+]]:_(s16) = G_AND [[TRUNC14]], [[C3]]
3355 ; GFX9: [[TRUNC15:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD15]](s32)
3356 ; GFX9: [[AND15:%[0-9]+]]:_(s16) = G_AND [[TRUNC15]], [[C3]]
3357 ; GFX9: [[SHL10:%[0-9]+]]:_(s16) = G_SHL [[AND15]], [[C4]](s16)
3358 ; GFX9: [[OR10:%[0-9]+]]:_(s16) = G_OR [[AND14]], [[SHL10]]
3359 ; GFX9: [[ZEXT6:%[0-9]+]]:_(s32) = G_ZEXT [[OR9]](s16)
3360 ; GFX9: [[ZEXT7:%[0-9]+]]:_(s32) = G_ZEXT [[OR10]](s16)
3361 ; GFX9: [[SHL11:%[0-9]+]]:_(s32) = G_SHL [[ZEXT7]], [[C5]](s32)
3362 ; GFX9: [[OR11:%[0-9]+]]:_(s32) = G_OR [[ZEXT6]], [[SHL11]]
3363 ; GFX9: [[MV:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[OR2]](s32), [[OR5]](s32), [[OR8]](s32), [[OR11]](s32)
3364 ; GFX9: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[MV]](s128)
3365 %0:_(p5) = COPY $vgpr0
3366 %1:_(s128) = G_LOAD %0 :: (load 16, align 1, addrspace 5)
3367 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1
3371 name: test_load_private_p1_align8
3376 ; SI-LABEL: name: test_load_private_p1_align8
3377 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
3378 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 8, addrspace 5)
3379 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
3380 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
3381 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
3382 ; SI: [[MV:%[0-9]+]]:_(p1) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32)
3383 ; SI: $vgpr0_vgpr1 = COPY [[MV]](p1)
3384 ; CI-LABEL: name: test_load_private_p1_align8
3385 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
3386 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 8, addrspace 5)
3387 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
3388 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
3389 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
3390 ; CI: [[MV:%[0-9]+]]:_(p1) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32)
3391 ; CI: $vgpr0_vgpr1 = COPY [[MV]](p1)
3392 ; VI-LABEL: name: test_load_private_p1_align8
3393 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
3394 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 8, addrspace 5)
3395 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
3396 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
3397 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
3398 ; VI: [[MV:%[0-9]+]]:_(p1) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32)
3399 ; VI: $vgpr0_vgpr1 = COPY [[MV]](p1)
3400 ; GFX9-LABEL: name: test_load_private_p1_align8
3401 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
3402 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 8, addrspace 5)
3403 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
3404 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
3405 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
3406 ; GFX9: [[MV:%[0-9]+]]:_(p1) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32)
3407 ; GFX9: $vgpr0_vgpr1 = COPY [[MV]](p1)
3408 %0:_(p5) = COPY $vgpr0
3409 %1:_(p1) = G_LOAD %0 :: (load 8, align 8, addrspace 5)
3410 $vgpr0_vgpr1 = COPY %1
3414 name: test_load_private_p1_align4
3419 ; SI-LABEL: name: test_load_private_p1_align4
3420 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
3421 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
3422 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
3423 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
3424 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
3425 ; SI: [[MV:%[0-9]+]]:_(p1) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32)
3426 ; SI: $vgpr0_vgpr1 = COPY [[MV]](p1)
3427 ; CI-LABEL: name: test_load_private_p1_align4
3428 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
3429 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
3430 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
3431 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
3432 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
3433 ; CI: [[MV:%[0-9]+]]:_(p1) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32)
3434 ; CI: $vgpr0_vgpr1 = COPY [[MV]](p1)
3435 ; VI-LABEL: name: test_load_private_p1_align4
3436 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
3437 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
3438 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
3439 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
3440 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
3441 ; VI: [[MV:%[0-9]+]]:_(p1) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32)
3442 ; VI: $vgpr0_vgpr1 = COPY [[MV]](p1)
3443 ; GFX9-LABEL: name: test_load_private_p1_align4
3444 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
3445 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
3446 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
3447 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
3448 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
3449 ; GFX9: [[MV:%[0-9]+]]:_(p1) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32)
3450 ; GFX9: $vgpr0_vgpr1 = COPY [[MV]](p1)
3451 %0:_(p5) = COPY $vgpr0
3452 %1:_(p1) = G_LOAD %0 :: (load 8, align 4, addrspace 5)
3453 $vgpr0_vgpr1 = COPY %1
3457 name: test_load_private_p1_align2
3462 ; SI-LABEL: name: test_load_private_p1_align2
3463 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
3464 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
3465 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
3466 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
3467 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
3468 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
3469 ; SI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
3470 ; SI: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C1]]
3471 ; SI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
3472 ; SI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C1]]
3473 ; SI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
3474 ; SI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
3475 ; SI: [[OR:%[0-9]+]]:_(s32) = G_OR [[AND]], [[SHL]]
3476 ; SI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
3477 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
3478 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 2, addrspace 5)
3479 ; SI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
3480 ; SI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 2, addrspace 5)
3481 ; SI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD2]](s32)
3482 ; SI: [[AND2:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C1]]
3483 ; SI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
3484 ; SI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C1]]
3485 ; SI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[C2]](s32)
3486 ; SI: [[OR1:%[0-9]+]]:_(s32) = G_OR [[AND2]], [[SHL1]]
3487 ; SI: [[MV:%[0-9]+]]:_(p1) = G_MERGE_VALUES [[OR]](s32), [[OR1]](s32)
3488 ; SI: $vgpr0_vgpr1 = COPY [[MV]](p1)
3489 ; CI-LABEL: name: test_load_private_p1_align2
3490 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
3491 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
3492 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
3493 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
3494 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
3495 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
3496 ; CI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
3497 ; CI: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C1]]
3498 ; CI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
3499 ; CI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C1]]
3500 ; CI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
3501 ; CI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
3502 ; CI: [[OR:%[0-9]+]]:_(s32) = G_OR [[AND]], [[SHL]]
3503 ; CI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
3504 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
3505 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 2, addrspace 5)
3506 ; CI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
3507 ; CI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 2, addrspace 5)
3508 ; CI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD2]](s32)
3509 ; CI: [[AND2:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C1]]
3510 ; CI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
3511 ; CI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C1]]
3512 ; CI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[C2]](s32)
3513 ; CI: [[OR1:%[0-9]+]]:_(s32) = G_OR [[AND2]], [[SHL1]]
3514 ; CI: [[MV:%[0-9]+]]:_(p1) = G_MERGE_VALUES [[OR]](s32), [[OR1]](s32)
3515 ; CI: $vgpr0_vgpr1 = COPY [[MV]](p1)
3516 ; VI-LABEL: name: test_load_private_p1_align2
3517 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
3518 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
3519 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
3520 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
3521 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
3522 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
3523 ; VI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
3524 ; VI: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C1]]
3525 ; VI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
3526 ; VI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C1]]
3527 ; VI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
3528 ; VI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
3529 ; VI: [[OR:%[0-9]+]]:_(s32) = G_OR [[AND]], [[SHL]]
3530 ; VI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
3531 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
3532 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 2, addrspace 5)
3533 ; VI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
3534 ; VI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 2, addrspace 5)
3535 ; VI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD2]](s32)
3536 ; VI: [[AND2:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C1]]
3537 ; VI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
3538 ; VI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C1]]
3539 ; VI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[C2]](s32)
3540 ; VI: [[OR1:%[0-9]+]]:_(s32) = G_OR [[AND2]], [[SHL1]]
3541 ; VI: [[MV:%[0-9]+]]:_(p1) = G_MERGE_VALUES [[OR]](s32), [[OR1]](s32)
3542 ; VI: $vgpr0_vgpr1 = COPY [[MV]](p1)
3543 ; GFX9-LABEL: name: test_load_private_p1_align2
3544 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
3545 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
3546 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
3547 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
3548 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
3549 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
3550 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
3551 ; GFX9: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C1]]
3552 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
3553 ; GFX9: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C1]]
3554 ; GFX9: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
3555 ; GFX9: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
3556 ; GFX9: [[OR:%[0-9]+]]:_(s32) = G_OR [[AND]], [[SHL]]
3557 ; GFX9: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
3558 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
3559 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 2, addrspace 5)
3560 ; GFX9: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
3561 ; GFX9: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 2, addrspace 5)
3562 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD2]](s32)
3563 ; GFX9: [[AND2:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C1]]
3564 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
3565 ; GFX9: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C1]]
3566 ; GFX9: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[C2]](s32)
3567 ; GFX9: [[OR1:%[0-9]+]]:_(s32) = G_OR [[AND2]], [[SHL1]]
3568 ; GFX9: [[MV:%[0-9]+]]:_(p1) = G_MERGE_VALUES [[OR]](s32), [[OR1]](s32)
3569 ; GFX9: $vgpr0_vgpr1 = COPY [[MV]](p1)
3570 %0:_(p5) = COPY $vgpr0
3571 %1:_(p1) = G_LOAD %0 :: (load 8, align 2, addrspace 5)
3572 $vgpr0_vgpr1 = COPY %1
3576 name: test_load_private_p1_align1
3581 ; SI-LABEL: name: test_load_private_p1_align1
3582 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
3583 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
3584 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
3585 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
3586 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
3587 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
3588 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
3589 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
3590 ; SI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
3591 ; SI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
3592 ; SI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
3593 ; SI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
3594 ; SI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
3595 ; SI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
3596 ; SI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
3597 ; SI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
3598 ; SI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
3599 ; SI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
3600 ; SI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C5]]
3601 ; SI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[COPY1]](s32)
3602 ; SI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[SHL]](s32)
3603 ; SI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[TRUNC1]]
3604 ; SI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
3605 ; SI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
3606 ; SI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
3607 ; SI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C5]]
3608 ; SI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[C4]](s32)
3609 ; SI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[SHL1]](s32)
3610 ; SI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[TRUNC3]]
3611 ; SI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
3612 ; SI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
3613 ; SI: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
3614 ; SI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C6]](s32)
3615 ; SI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
3616 ; SI: [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
3617 ; SI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C7]](s32)
3618 ; SI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 5)
3619 ; SI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
3620 ; SI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 5)
3621 ; SI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
3622 ; SI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 5)
3623 ; SI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
3624 ; SI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 5)
3625 ; SI: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
3626 ; SI: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
3627 ; SI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
3628 ; SI: [[COPY5:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
3629 ; SI: [[AND5:%[0-9]+]]:_(s32) = G_AND [[COPY5]], [[C5]]
3630 ; SI: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[AND5]], [[COPY4]](s32)
3631 ; SI: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[SHL3]](s32)
3632 ; SI: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[TRUNC5]]
3633 ; SI: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
3634 ; SI: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
3635 ; SI: [[COPY6:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
3636 ; SI: [[COPY7:%[0-9]+]]:_(s32) = COPY [[LOAD7]](s32)
3637 ; SI: [[AND7:%[0-9]+]]:_(s32) = G_AND [[COPY7]], [[C5]]
3638 ; SI: [[SHL4:%[0-9]+]]:_(s32) = G_SHL [[AND7]], [[COPY6]](s32)
3639 ; SI: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[SHL4]](s32)
3640 ; SI: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[TRUNC7]]
3641 ; SI: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
3642 ; SI: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
3643 ; SI: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C6]](s32)
3644 ; SI: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
3645 ; SI: [[MV:%[0-9]+]]:_(p1) = G_MERGE_VALUES [[OR2]](s32), [[OR5]](s32)
3646 ; SI: $vgpr0_vgpr1 = COPY [[MV]](p1)
3647 ; CI-LABEL: name: test_load_private_p1_align1
3648 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
3649 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
3650 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
3651 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
3652 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
3653 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
3654 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
3655 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
3656 ; CI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
3657 ; CI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
3658 ; CI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
3659 ; CI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
3660 ; CI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
3661 ; CI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
3662 ; CI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
3663 ; CI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
3664 ; CI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
3665 ; CI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
3666 ; CI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C5]]
3667 ; CI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[COPY1]](s32)
3668 ; CI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[SHL]](s32)
3669 ; CI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[TRUNC1]]
3670 ; CI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
3671 ; CI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
3672 ; CI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
3673 ; CI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C5]]
3674 ; CI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[C4]](s32)
3675 ; CI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[SHL1]](s32)
3676 ; CI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[TRUNC3]]
3677 ; CI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
3678 ; CI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
3679 ; CI: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
3680 ; CI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C6]](s32)
3681 ; CI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
3682 ; CI: [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
3683 ; CI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C7]](s32)
3684 ; CI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 5)
3685 ; CI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
3686 ; CI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 5)
3687 ; CI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
3688 ; CI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 5)
3689 ; CI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
3690 ; CI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 5)
3691 ; CI: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
3692 ; CI: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
3693 ; CI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
3694 ; CI: [[COPY5:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
3695 ; CI: [[AND5:%[0-9]+]]:_(s32) = G_AND [[COPY5]], [[C5]]
3696 ; CI: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[AND5]], [[COPY4]](s32)
3697 ; CI: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[SHL3]](s32)
3698 ; CI: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[TRUNC5]]
3699 ; CI: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
3700 ; CI: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
3701 ; CI: [[COPY6:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
3702 ; CI: [[COPY7:%[0-9]+]]:_(s32) = COPY [[LOAD7]](s32)
3703 ; CI: [[AND7:%[0-9]+]]:_(s32) = G_AND [[COPY7]], [[C5]]
3704 ; CI: [[SHL4:%[0-9]+]]:_(s32) = G_SHL [[AND7]], [[COPY6]](s32)
3705 ; CI: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[SHL4]](s32)
3706 ; CI: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[TRUNC7]]
3707 ; CI: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
3708 ; CI: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
3709 ; CI: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C6]](s32)
3710 ; CI: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
3711 ; CI: [[MV:%[0-9]+]]:_(p1) = G_MERGE_VALUES [[OR2]](s32), [[OR5]](s32)
3712 ; CI: $vgpr0_vgpr1 = COPY [[MV]](p1)
3713 ; VI-LABEL: name: test_load_private_p1_align1
3714 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
3715 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
3716 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
3717 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
3718 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
3719 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
3720 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
3721 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
3722 ; VI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
3723 ; VI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
3724 ; VI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
3725 ; VI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
3726 ; VI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
3727 ; VI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
3728 ; VI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
3729 ; VI: [[AND1:%[0-9]+]]:_(s16) = G_AND [[TRUNC1]], [[C3]]
3730 ; VI: [[C4:%[0-9]+]]:_(s16) = G_CONSTANT i16 8
3731 ; VI: [[SHL:%[0-9]+]]:_(s16) = G_SHL [[AND1]], [[C4]](s16)
3732 ; VI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[SHL]]
3733 ; VI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
3734 ; VI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
3735 ; VI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD3]](s32)
3736 ; VI: [[AND3:%[0-9]+]]:_(s16) = G_AND [[TRUNC3]], [[C3]]
3737 ; VI: [[SHL1:%[0-9]+]]:_(s16) = G_SHL [[AND3]], [[C4]](s16)
3738 ; VI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[SHL1]]
3739 ; VI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
3740 ; VI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
3741 ; VI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
3742 ; VI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C5]](s32)
3743 ; VI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
3744 ; VI: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
3745 ; VI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C6]](s32)
3746 ; VI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 5)
3747 ; VI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
3748 ; VI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 5)
3749 ; VI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
3750 ; VI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 5)
3751 ; VI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
3752 ; VI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 5)
3753 ; VI: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
3754 ; VI: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
3755 ; VI: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD5]](s32)
3756 ; VI: [[AND5:%[0-9]+]]:_(s16) = G_AND [[TRUNC5]], [[C3]]
3757 ; VI: [[SHL3:%[0-9]+]]:_(s16) = G_SHL [[AND5]], [[C4]](s16)
3758 ; VI: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[SHL3]]
3759 ; VI: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
3760 ; VI: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
3761 ; VI: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD7]](s32)
3762 ; VI: [[AND7:%[0-9]+]]:_(s16) = G_AND [[TRUNC7]], [[C3]]
3763 ; VI: [[SHL4:%[0-9]+]]:_(s16) = G_SHL [[AND7]], [[C4]](s16)
3764 ; VI: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[SHL4]]
3765 ; VI: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
3766 ; VI: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
3767 ; VI: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C5]](s32)
3768 ; VI: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
3769 ; VI: [[MV:%[0-9]+]]:_(p1) = G_MERGE_VALUES [[OR2]](s32), [[OR5]](s32)
3770 ; VI: $vgpr0_vgpr1 = COPY [[MV]](p1)
3771 ; GFX9-LABEL: name: test_load_private_p1_align1
3772 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
3773 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
3774 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
3775 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
3776 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
3777 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
3778 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
3779 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
3780 ; GFX9: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
3781 ; GFX9: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
3782 ; GFX9: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
3783 ; GFX9: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
3784 ; GFX9: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
3785 ; GFX9: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
3786 ; GFX9: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
3787 ; GFX9: [[AND1:%[0-9]+]]:_(s16) = G_AND [[TRUNC1]], [[C3]]
3788 ; GFX9: [[C4:%[0-9]+]]:_(s16) = G_CONSTANT i16 8
3789 ; GFX9: [[SHL:%[0-9]+]]:_(s16) = G_SHL [[AND1]], [[C4]](s16)
3790 ; GFX9: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[SHL]]
3791 ; GFX9: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
3792 ; GFX9: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
3793 ; GFX9: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD3]](s32)
3794 ; GFX9: [[AND3:%[0-9]+]]:_(s16) = G_AND [[TRUNC3]], [[C3]]
3795 ; GFX9: [[SHL1:%[0-9]+]]:_(s16) = G_SHL [[AND3]], [[C4]](s16)
3796 ; GFX9: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[SHL1]]
3797 ; GFX9: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
3798 ; GFX9: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
3799 ; GFX9: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
3800 ; GFX9: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C5]](s32)
3801 ; GFX9: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
3802 ; GFX9: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
3803 ; GFX9: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C6]](s32)
3804 ; GFX9: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 5)
3805 ; GFX9: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
3806 ; GFX9: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 5)
3807 ; GFX9: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
3808 ; GFX9: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 5)
3809 ; GFX9: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
3810 ; GFX9: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 5)
3811 ; GFX9: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
3812 ; GFX9: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
3813 ; GFX9: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD5]](s32)
3814 ; GFX9: [[AND5:%[0-9]+]]:_(s16) = G_AND [[TRUNC5]], [[C3]]
3815 ; GFX9: [[SHL3:%[0-9]+]]:_(s16) = G_SHL [[AND5]], [[C4]](s16)
3816 ; GFX9: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[SHL3]]
3817 ; GFX9: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
3818 ; GFX9: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
3819 ; GFX9: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD7]](s32)
3820 ; GFX9: [[AND7:%[0-9]+]]:_(s16) = G_AND [[TRUNC7]], [[C3]]
3821 ; GFX9: [[SHL4:%[0-9]+]]:_(s16) = G_SHL [[AND7]], [[C4]](s16)
3822 ; GFX9: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[SHL4]]
3823 ; GFX9: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
3824 ; GFX9: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
3825 ; GFX9: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C5]](s32)
3826 ; GFX9: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
3827 ; GFX9: [[MV:%[0-9]+]]:_(p1) = G_MERGE_VALUES [[OR2]](s32), [[OR5]](s32)
3828 ; GFX9: $vgpr0_vgpr1 = COPY [[MV]](p1)
3829 %0:_(p5) = COPY $vgpr0
3830 %1:_(p1) = G_LOAD %0 :: (load 8, align 1, addrspace 5)
3831 $vgpr0_vgpr1 = COPY %1
3835 name: test_load_private_p3_align4
3840 ; SI-LABEL: name: test_load_private_p3_align4
3841 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
3842 ; SI: [[LOAD:%[0-9]+]]:_(p3) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
3843 ; SI: $vgpr0 = COPY [[LOAD]](p3)
3844 ; CI-LABEL: name: test_load_private_p3_align4
3845 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
3846 ; CI: [[LOAD:%[0-9]+]]:_(p3) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
3847 ; CI: $vgpr0 = COPY [[LOAD]](p3)
3848 ; VI-LABEL: name: test_load_private_p3_align4
3849 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
3850 ; VI: [[LOAD:%[0-9]+]]:_(p3) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
3851 ; VI: $vgpr0 = COPY [[LOAD]](p3)
3852 ; GFX9-LABEL: name: test_load_private_p3_align4
3853 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
3854 ; GFX9: [[LOAD:%[0-9]+]]:_(p3) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
3855 ; GFX9: $vgpr0 = COPY [[LOAD]](p3)
3856 %0:_(p5) = COPY $vgpr0
3857 %1:_(p3) = G_LOAD %0 :: (load 4, align 4, addrspace 5)
3862 name: test_load_private_p3_align2
3867 ; SI-LABEL: name: test_load_private_p3_align2
3868 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
3869 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
3870 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
3871 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
3872 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
3873 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
3874 ; SI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
3875 ; SI: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C1]]
3876 ; SI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
3877 ; SI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C1]]
3878 ; SI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
3879 ; SI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
3880 ; SI: [[OR:%[0-9]+]]:_(s32) = G_OR [[AND]], [[SHL]]
3881 ; SI: [[INTTOPTR:%[0-9]+]]:_(p3) = G_INTTOPTR [[OR]](s32)
3882 ; SI: $vgpr0 = COPY [[INTTOPTR]](p3)
3883 ; CI-LABEL: name: test_load_private_p3_align2
3884 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
3885 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
3886 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
3887 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
3888 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
3889 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
3890 ; CI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
3891 ; CI: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C1]]
3892 ; CI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
3893 ; CI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C1]]
3894 ; CI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
3895 ; CI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
3896 ; CI: [[OR:%[0-9]+]]:_(s32) = G_OR [[AND]], [[SHL]]
3897 ; CI: [[INTTOPTR:%[0-9]+]]:_(p3) = G_INTTOPTR [[OR]](s32)
3898 ; CI: $vgpr0 = COPY [[INTTOPTR]](p3)
3899 ; VI-LABEL: name: test_load_private_p3_align2
3900 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
3901 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
3902 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
3903 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
3904 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
3905 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
3906 ; VI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
3907 ; VI: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C1]]
3908 ; VI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
3909 ; VI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C1]]
3910 ; VI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
3911 ; VI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
3912 ; VI: [[OR:%[0-9]+]]:_(s32) = G_OR [[AND]], [[SHL]]
3913 ; VI: [[INTTOPTR:%[0-9]+]]:_(p3) = G_INTTOPTR [[OR]](s32)
3914 ; VI: $vgpr0 = COPY [[INTTOPTR]](p3)
3915 ; GFX9-LABEL: name: test_load_private_p3_align2
3916 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
3917 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
3918 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
3919 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
3920 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
3921 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
3922 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
3923 ; GFX9: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C1]]
3924 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
3925 ; GFX9: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C1]]
3926 ; GFX9: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
3927 ; GFX9: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
3928 ; GFX9: [[OR:%[0-9]+]]:_(s32) = G_OR [[AND]], [[SHL]]
3929 ; GFX9: [[INTTOPTR:%[0-9]+]]:_(p3) = G_INTTOPTR [[OR]](s32)
3930 ; GFX9: $vgpr0 = COPY [[INTTOPTR]](p3)
3931 %0:_(p5) = COPY $vgpr0
3932 %1:_(p3) = G_LOAD %0 :: (load 4, align 2, addrspace 5)
3937 name: test_load_private_p3_align1
3942 ; SI-LABEL: name: test_load_private_p3_align1
3943 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
3944 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
3945 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
3946 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
3947 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
3948 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
3949 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
3950 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
3951 ; SI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
3952 ; SI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
3953 ; SI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
3954 ; SI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
3955 ; SI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
3956 ; SI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
3957 ; SI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
3958 ; SI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
3959 ; SI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
3960 ; SI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
3961 ; SI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C5]]
3962 ; SI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[COPY1]](s32)
3963 ; SI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[SHL]](s32)
3964 ; SI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[TRUNC1]]
3965 ; SI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
3966 ; SI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
3967 ; SI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
3968 ; SI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C5]]
3969 ; SI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[C4]](s32)
3970 ; SI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[SHL1]](s32)
3971 ; SI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[TRUNC3]]
3972 ; SI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
3973 ; SI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
3974 ; SI: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
3975 ; SI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C6]](s32)
3976 ; SI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
3977 ; SI: [[INTTOPTR:%[0-9]+]]:_(p3) = G_INTTOPTR [[OR2]](s32)
3978 ; SI: $vgpr0 = COPY [[INTTOPTR]](p3)
3979 ; CI-LABEL: name: test_load_private_p3_align1
3980 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
3981 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
3982 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
3983 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
3984 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
3985 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
3986 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
3987 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
3988 ; CI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
3989 ; CI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
3990 ; CI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
3991 ; CI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
3992 ; CI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
3993 ; CI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
3994 ; CI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
3995 ; CI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
3996 ; CI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
3997 ; CI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
3998 ; CI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C5]]
3999 ; CI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[COPY1]](s32)
4000 ; CI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[SHL]](s32)
4001 ; CI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[TRUNC1]]
4002 ; CI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
4003 ; CI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
4004 ; CI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
4005 ; CI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C5]]
4006 ; CI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[C4]](s32)
4007 ; CI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[SHL1]](s32)
4008 ; CI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[TRUNC3]]
4009 ; CI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
4010 ; CI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
4011 ; CI: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
4012 ; CI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C6]](s32)
4013 ; CI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
4014 ; CI: [[INTTOPTR:%[0-9]+]]:_(p3) = G_INTTOPTR [[OR2]](s32)
4015 ; CI: $vgpr0 = COPY [[INTTOPTR]](p3)
4016 ; VI-LABEL: name: test_load_private_p3_align1
4017 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4018 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
4019 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
4020 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
4021 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
4022 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
4023 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
4024 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
4025 ; VI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
4026 ; VI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
4027 ; VI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
4028 ; VI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
4029 ; VI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
4030 ; VI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
4031 ; VI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
4032 ; VI: [[AND1:%[0-9]+]]:_(s16) = G_AND [[TRUNC1]], [[C3]]
4033 ; VI: [[C4:%[0-9]+]]:_(s16) = G_CONSTANT i16 8
4034 ; VI: [[SHL:%[0-9]+]]:_(s16) = G_SHL [[AND1]], [[C4]](s16)
4035 ; VI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[SHL]]
4036 ; VI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
4037 ; VI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
4038 ; VI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD3]](s32)
4039 ; VI: [[AND3:%[0-9]+]]:_(s16) = G_AND [[TRUNC3]], [[C3]]
4040 ; VI: [[SHL1:%[0-9]+]]:_(s16) = G_SHL [[AND3]], [[C4]](s16)
4041 ; VI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[SHL1]]
4042 ; VI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
4043 ; VI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
4044 ; VI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
4045 ; VI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C5]](s32)
4046 ; VI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
4047 ; VI: [[INTTOPTR:%[0-9]+]]:_(p3) = G_INTTOPTR [[OR2]](s32)
4048 ; VI: $vgpr0 = COPY [[INTTOPTR]](p3)
4049 ; GFX9-LABEL: name: test_load_private_p3_align1
4050 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4051 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
4052 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
4053 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
4054 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
4055 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
4056 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
4057 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
4058 ; GFX9: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
4059 ; GFX9: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
4060 ; GFX9: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
4061 ; GFX9: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
4062 ; GFX9: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
4063 ; GFX9: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
4064 ; GFX9: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
4065 ; GFX9: [[AND1:%[0-9]+]]:_(s16) = G_AND [[TRUNC1]], [[C3]]
4066 ; GFX9: [[C4:%[0-9]+]]:_(s16) = G_CONSTANT i16 8
4067 ; GFX9: [[SHL:%[0-9]+]]:_(s16) = G_SHL [[AND1]], [[C4]](s16)
4068 ; GFX9: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[SHL]]
4069 ; GFX9: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
4070 ; GFX9: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
4071 ; GFX9: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD3]](s32)
4072 ; GFX9: [[AND3:%[0-9]+]]:_(s16) = G_AND [[TRUNC3]], [[C3]]
4073 ; GFX9: [[SHL1:%[0-9]+]]:_(s16) = G_SHL [[AND3]], [[C4]](s16)
4074 ; GFX9: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[SHL1]]
4075 ; GFX9: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
4076 ; GFX9: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
4077 ; GFX9: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
4078 ; GFX9: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C5]](s32)
4079 ; GFX9: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
4080 ; GFX9: [[INTTOPTR:%[0-9]+]]:_(p3) = G_INTTOPTR [[OR2]](s32)
4081 ; GFX9: $vgpr0 = COPY [[INTTOPTR]](p3)
4082 %0:_(p5) = COPY $vgpr0
4083 %1:_(p3) = G_LOAD %0 :: (load 4, align 1, addrspace 5)
4088 name: test_load_private_p5_align4
4093 ; SI-LABEL: name: test_load_private_p5_align4
4094 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4095 ; SI: [[LOAD:%[0-9]+]]:_(p5) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
4096 ; SI: $vgpr0 = COPY [[LOAD]](p5)
4097 ; CI-LABEL: name: test_load_private_p5_align4
4098 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4099 ; CI: [[LOAD:%[0-9]+]]:_(p5) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
4100 ; CI: $vgpr0 = COPY [[LOAD]](p5)
4101 ; VI-LABEL: name: test_load_private_p5_align4
4102 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4103 ; VI: [[LOAD:%[0-9]+]]:_(p5) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
4104 ; VI: $vgpr0 = COPY [[LOAD]](p5)
4105 ; GFX9-LABEL: name: test_load_private_p5_align4
4106 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4107 ; GFX9: [[LOAD:%[0-9]+]]:_(p5) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
4108 ; GFX9: $vgpr0 = COPY [[LOAD]](p5)
4109 %0:_(p5) = COPY $vgpr0
4110 %1:_(p5) = G_LOAD %0 :: (load 4, align 4, addrspace 5)
4115 name: test_load_private_p5_align2
4120 ; SI-LABEL: name: test_load_private_p5_align2
4121 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4122 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
4123 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
4124 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
4125 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
4126 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
4127 ; SI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
4128 ; SI: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C1]]
4129 ; SI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
4130 ; SI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C1]]
4131 ; SI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
4132 ; SI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
4133 ; SI: [[OR:%[0-9]+]]:_(s32) = G_OR [[AND]], [[SHL]]
4134 ; SI: [[INTTOPTR:%[0-9]+]]:_(p5) = G_INTTOPTR [[OR]](s32)
4135 ; SI: $vgpr0 = COPY [[INTTOPTR]](p5)
4136 ; CI-LABEL: name: test_load_private_p5_align2
4137 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4138 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
4139 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
4140 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
4141 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
4142 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
4143 ; CI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
4144 ; CI: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C1]]
4145 ; CI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
4146 ; CI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C1]]
4147 ; CI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
4148 ; CI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
4149 ; CI: [[OR:%[0-9]+]]:_(s32) = G_OR [[AND]], [[SHL]]
4150 ; CI: [[INTTOPTR:%[0-9]+]]:_(p5) = G_INTTOPTR [[OR]](s32)
4151 ; CI: $vgpr0 = COPY [[INTTOPTR]](p5)
4152 ; VI-LABEL: name: test_load_private_p5_align2
4153 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4154 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
4155 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
4156 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
4157 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
4158 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
4159 ; VI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
4160 ; VI: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C1]]
4161 ; VI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
4162 ; VI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C1]]
4163 ; VI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
4164 ; VI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
4165 ; VI: [[OR:%[0-9]+]]:_(s32) = G_OR [[AND]], [[SHL]]
4166 ; VI: [[INTTOPTR:%[0-9]+]]:_(p5) = G_INTTOPTR [[OR]](s32)
4167 ; VI: $vgpr0 = COPY [[INTTOPTR]](p5)
4168 ; GFX9-LABEL: name: test_load_private_p5_align2
4169 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4170 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
4171 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
4172 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
4173 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
4174 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
4175 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
4176 ; GFX9: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C1]]
4177 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
4178 ; GFX9: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C1]]
4179 ; GFX9: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
4180 ; GFX9: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
4181 ; GFX9: [[OR:%[0-9]+]]:_(s32) = G_OR [[AND]], [[SHL]]
4182 ; GFX9: [[INTTOPTR:%[0-9]+]]:_(p5) = G_INTTOPTR [[OR]](s32)
4183 ; GFX9: $vgpr0 = COPY [[INTTOPTR]](p5)
4184 %0:_(p5) = COPY $vgpr0
4185 %1:_(p5) = G_LOAD %0 :: (load 4, align 2, addrspace 5)
4190 name: test_load_private_p5_align1
4195 ; SI-LABEL: name: test_load_private_p5_align1
4196 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4197 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
4198 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
4199 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
4200 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
4201 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
4202 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
4203 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
4204 ; SI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
4205 ; SI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
4206 ; SI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
4207 ; SI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
4208 ; SI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
4209 ; SI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
4210 ; SI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
4211 ; SI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
4212 ; SI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
4213 ; SI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
4214 ; SI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C5]]
4215 ; SI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[COPY1]](s32)
4216 ; SI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[SHL]](s32)
4217 ; SI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[TRUNC1]]
4218 ; SI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
4219 ; SI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
4220 ; SI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
4221 ; SI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C5]]
4222 ; SI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[C4]](s32)
4223 ; SI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[SHL1]](s32)
4224 ; SI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[TRUNC3]]
4225 ; SI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
4226 ; SI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
4227 ; SI: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
4228 ; SI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C6]](s32)
4229 ; SI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
4230 ; SI: [[INTTOPTR:%[0-9]+]]:_(p5) = G_INTTOPTR [[OR2]](s32)
4231 ; SI: $vgpr0 = COPY [[INTTOPTR]](p5)
4232 ; CI-LABEL: name: test_load_private_p5_align1
4233 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4234 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
4235 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
4236 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
4237 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
4238 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
4239 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
4240 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
4241 ; CI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
4242 ; CI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
4243 ; CI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
4244 ; CI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
4245 ; CI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
4246 ; CI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
4247 ; CI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
4248 ; CI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
4249 ; CI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
4250 ; CI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
4251 ; CI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C5]]
4252 ; CI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[COPY1]](s32)
4253 ; CI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[SHL]](s32)
4254 ; CI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[TRUNC1]]
4255 ; CI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
4256 ; CI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
4257 ; CI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
4258 ; CI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C5]]
4259 ; CI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[C4]](s32)
4260 ; CI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[SHL1]](s32)
4261 ; CI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[TRUNC3]]
4262 ; CI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
4263 ; CI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
4264 ; CI: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
4265 ; CI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C6]](s32)
4266 ; CI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
4267 ; CI: [[INTTOPTR:%[0-9]+]]:_(p5) = G_INTTOPTR [[OR2]](s32)
4268 ; CI: $vgpr0 = COPY [[INTTOPTR]](p5)
4269 ; VI-LABEL: name: test_load_private_p5_align1
4270 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4271 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
4272 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
4273 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
4274 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
4275 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
4276 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
4277 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
4278 ; VI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
4279 ; VI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
4280 ; VI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
4281 ; VI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
4282 ; VI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
4283 ; VI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
4284 ; VI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
4285 ; VI: [[AND1:%[0-9]+]]:_(s16) = G_AND [[TRUNC1]], [[C3]]
4286 ; VI: [[C4:%[0-9]+]]:_(s16) = G_CONSTANT i16 8
4287 ; VI: [[SHL:%[0-9]+]]:_(s16) = G_SHL [[AND1]], [[C4]](s16)
4288 ; VI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[SHL]]
4289 ; VI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
4290 ; VI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
4291 ; VI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD3]](s32)
4292 ; VI: [[AND3:%[0-9]+]]:_(s16) = G_AND [[TRUNC3]], [[C3]]
4293 ; VI: [[SHL1:%[0-9]+]]:_(s16) = G_SHL [[AND3]], [[C4]](s16)
4294 ; VI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[SHL1]]
4295 ; VI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
4296 ; VI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
4297 ; VI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
4298 ; VI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C5]](s32)
4299 ; VI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
4300 ; VI: [[INTTOPTR:%[0-9]+]]:_(p5) = G_INTTOPTR [[OR2]](s32)
4301 ; VI: $vgpr0 = COPY [[INTTOPTR]](p5)
4302 ; GFX9-LABEL: name: test_load_private_p5_align1
4303 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4304 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
4305 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
4306 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
4307 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
4308 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
4309 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
4310 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
4311 ; GFX9: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
4312 ; GFX9: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
4313 ; GFX9: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
4314 ; GFX9: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
4315 ; GFX9: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
4316 ; GFX9: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
4317 ; GFX9: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
4318 ; GFX9: [[AND1:%[0-9]+]]:_(s16) = G_AND [[TRUNC1]], [[C3]]
4319 ; GFX9: [[C4:%[0-9]+]]:_(s16) = G_CONSTANT i16 8
4320 ; GFX9: [[SHL:%[0-9]+]]:_(s16) = G_SHL [[AND1]], [[C4]](s16)
4321 ; GFX9: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[SHL]]
4322 ; GFX9: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
4323 ; GFX9: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
4324 ; GFX9: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD3]](s32)
4325 ; GFX9: [[AND3:%[0-9]+]]:_(s16) = G_AND [[TRUNC3]], [[C3]]
4326 ; GFX9: [[SHL1:%[0-9]+]]:_(s16) = G_SHL [[AND3]], [[C4]](s16)
4327 ; GFX9: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[SHL1]]
4328 ; GFX9: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
4329 ; GFX9: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
4330 ; GFX9: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
4331 ; GFX9: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C5]](s32)
4332 ; GFX9: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
4333 ; GFX9: [[INTTOPTR:%[0-9]+]]:_(p5) = G_INTTOPTR [[OR2]](s32)
4334 ; GFX9: $vgpr0 = COPY [[INTTOPTR]](p5)
4335 %0:_(p5) = COPY $vgpr0
4336 %1:_(p5) = G_LOAD %0 :: (load 4, align 1, addrspace 5)
4341 name: test_load_private_v2s8_align2
4346 ; SI-LABEL: name: test_load_private_v2s8_align2
4347 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4348 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, align 2, addrspace 5)
4349 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
4350 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
4351 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
4352 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
4353 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
4354 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, align 2, addrspace 5)
4355 ; SI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
4356 ; SI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
4357 ; SI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
4358 ; SI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
4359 ; SI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
4360 ; SI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD2]](s32)
4361 ; SI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
4362 ; SI: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32)
4363 ; SI: [[TRUNC:%[0-9]+]]:_(<4 x s8>) = G_TRUNC [[BUILD_VECTOR]](<4 x s32>)
4364 ; SI: [[EXTRACT:%[0-9]+]]:_(<2 x s8>) = G_EXTRACT [[TRUNC]](<4 x s8>), 0
4365 ; SI: [[BITCAST:%[0-9]+]]:_(s16) = G_BITCAST [[EXTRACT]](<2 x s8>)
4366 ; SI: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[BITCAST]](s16)
4367 ; SI: $vgpr0 = COPY [[ANYEXT]](s32)
4368 ; CI-LABEL: name: test_load_private_v2s8_align2
4369 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4370 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, align 2, addrspace 5)
4371 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
4372 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
4373 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
4374 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
4375 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
4376 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, align 2, addrspace 5)
4377 ; CI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
4378 ; CI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
4379 ; CI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
4380 ; CI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
4381 ; CI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
4382 ; CI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD2]](s32)
4383 ; CI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
4384 ; CI: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32)
4385 ; CI: [[TRUNC:%[0-9]+]]:_(<4 x s8>) = G_TRUNC [[BUILD_VECTOR]](<4 x s32>)
4386 ; CI: [[EXTRACT:%[0-9]+]]:_(<2 x s8>) = G_EXTRACT [[TRUNC]](<4 x s8>), 0
4387 ; CI: [[BITCAST:%[0-9]+]]:_(s16) = G_BITCAST [[EXTRACT]](<2 x s8>)
4388 ; CI: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[BITCAST]](s16)
4389 ; CI: $vgpr0 = COPY [[ANYEXT]](s32)
4390 ; VI-LABEL: name: test_load_private_v2s8_align2
4391 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4392 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, align 2, addrspace 5)
4393 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
4394 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
4395 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
4396 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
4397 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
4398 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, align 2, addrspace 5)
4399 ; VI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
4400 ; VI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
4401 ; VI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
4402 ; VI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
4403 ; VI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
4404 ; VI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD2]](s32)
4405 ; VI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
4406 ; VI: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32)
4407 ; VI: [[TRUNC:%[0-9]+]]:_(<4 x s8>) = G_TRUNC [[BUILD_VECTOR]](<4 x s32>)
4408 ; VI: [[EXTRACT:%[0-9]+]]:_(<2 x s8>) = G_EXTRACT [[TRUNC]](<4 x s8>), 0
4409 ; VI: [[BITCAST:%[0-9]+]]:_(s16) = G_BITCAST [[EXTRACT]](<2 x s8>)
4410 ; VI: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[BITCAST]](s16)
4411 ; VI: $vgpr0 = COPY [[ANYEXT]](s32)
4412 ; GFX9-LABEL: name: test_load_private_v2s8_align2
4413 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4414 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, align 2, addrspace 5)
4415 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
4416 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
4417 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
4418 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
4419 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
4420 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, align 2, addrspace 5)
4421 ; GFX9: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
4422 ; GFX9: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
4423 ; GFX9: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
4424 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
4425 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
4426 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD2]](s32)
4427 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
4428 ; GFX9: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32)
4429 ; GFX9: [[TRUNC:%[0-9]+]]:_(<4 x s8>) = G_TRUNC [[BUILD_VECTOR]](<4 x s32>)
4430 ; GFX9: [[EXTRACT:%[0-9]+]]:_(<2 x s8>) = G_EXTRACT [[TRUNC]](<4 x s8>), 0
4431 ; GFX9: [[BITCAST:%[0-9]+]]:_(s16) = G_BITCAST [[EXTRACT]](<2 x s8>)
4432 ; GFX9: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[BITCAST]](s16)
4433 ; GFX9: $vgpr0 = COPY [[ANYEXT]](s32)
4434 %0:_(p5) = COPY $vgpr0
4435 %1:_(<2 x s8>) = G_LOAD %0 :: (load 2, align 2, addrspace 5)
4436 %2:_(s16) = G_BITCAST %1
4437 %3:_(s32) = G_ANYEXT %2
4442 name: test_load_private_v2s8_align1
4447 ; SI-LABEL: name: test_load_private_v2s8_align1
4448 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4449 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
4450 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
4451 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
4452 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
4453 ; SI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
4454 ; SI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
4455 ; SI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[COPY1]](s32)
4456 ; SI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[COPY2]](s32)
4457 ; SI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[COPY3]](s32), [[COPY4]](s32)
4458 ; SI: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)
4459 ; CI-LABEL: name: test_load_private_v2s8_align1
4460 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4461 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
4462 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
4463 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
4464 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
4465 ; CI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
4466 ; CI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
4467 ; CI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[COPY1]](s32)
4468 ; CI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[COPY2]](s32)
4469 ; CI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[COPY3]](s32), [[COPY4]](s32)
4470 ; CI: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)
4471 ; VI-LABEL: name: test_load_private_v2s8_align1
4472 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4473 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
4474 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
4475 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
4476 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
4477 ; VI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
4478 ; VI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
4479 ; VI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[COPY1]](s32)
4480 ; VI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[COPY2]](s32)
4481 ; VI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[COPY3]](s32), [[COPY4]](s32)
4482 ; VI: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)
4483 ; GFX9-LABEL: name: test_load_private_v2s8_align1
4484 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4485 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
4486 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
4487 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
4488 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
4489 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
4490 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
4491 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY [[COPY1]](s32)
4492 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY [[COPY2]](s32)
4493 ; GFX9: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[COPY3]](s32), [[COPY4]](s32)
4494 ; GFX9: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)
4495 %0:_(p5) = COPY $vgpr0
4496 %1:_(<2 x s8>) = G_LOAD %0 :: (load 2, align 1, addrspace 5)
4497 %2:_(<2 x s32>) = G_ANYEXT %1
4498 $vgpr0_vgpr1 = COPY %2
4502 name: test_load_private_v3s8_align4
4507 ; SI-LABEL: name: test_load_private_v3s8_align4
4508 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4509 ; SI: [[LOAD:%[0-9]+]]:_(<3 x s8>) = G_LOAD [[COPY]](p5) :: (load 3, align 4, addrspace 1)
4510 ; SI: [[DEF:%[0-9]+]]:_(<4 x s8>) = G_IMPLICIT_DEF
4511 ; SI: [[ANYEXT:%[0-9]+]]:_(<4 x s16>) = G_ANYEXT [[DEF]](<4 x s8>)
4512 ; SI: [[INSERT:%[0-9]+]]:_(<4 x s16>) = G_INSERT [[ANYEXT]], [[LOAD]](<3 x s8>), 0
4513 ; SI: [[TRUNC:%[0-9]+]]:_(<4 x s8>) = G_TRUNC [[INSERT]](<4 x s16>)
4514 ; SI: $vgpr0 = COPY [[TRUNC]](<4 x s8>)
4515 ; CI-LABEL: name: test_load_private_v3s8_align4
4516 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4517 ; CI: [[LOAD:%[0-9]+]]:_(<3 x s8>) = G_LOAD [[COPY]](p5) :: (load 3, align 4, addrspace 1)
4518 ; CI: [[DEF:%[0-9]+]]:_(<4 x s8>) = G_IMPLICIT_DEF
4519 ; CI: [[ANYEXT:%[0-9]+]]:_(<4 x s16>) = G_ANYEXT [[DEF]](<4 x s8>)
4520 ; CI: [[INSERT:%[0-9]+]]:_(<4 x s16>) = G_INSERT [[ANYEXT]], [[LOAD]](<3 x s8>), 0
4521 ; CI: [[TRUNC:%[0-9]+]]:_(<4 x s8>) = G_TRUNC [[INSERT]](<4 x s16>)
4522 ; CI: $vgpr0 = COPY [[TRUNC]](<4 x s8>)
4523 ; VI-LABEL: name: test_load_private_v3s8_align4
4524 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4525 ; VI: [[LOAD:%[0-9]+]]:_(<3 x s8>) = G_LOAD [[COPY]](p5) :: (load 3, align 4, addrspace 1)
4526 ; VI: [[DEF:%[0-9]+]]:_(<4 x s8>) = G_IMPLICIT_DEF
4527 ; VI: [[ANYEXT:%[0-9]+]]:_(<4 x s16>) = G_ANYEXT [[DEF]](<4 x s8>)
4528 ; VI: [[INSERT:%[0-9]+]]:_(<4 x s16>) = G_INSERT [[ANYEXT]], [[LOAD]](<3 x s8>), 0
4529 ; VI: [[TRUNC:%[0-9]+]]:_(<4 x s8>) = G_TRUNC [[INSERT]](<4 x s16>)
4530 ; VI: $vgpr0 = COPY [[TRUNC]](<4 x s8>)
4531 ; GFX9-LABEL: name: test_load_private_v3s8_align4
4532 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4533 ; GFX9: [[LOAD:%[0-9]+]]:_(<3 x s8>) = G_LOAD [[COPY]](p5) :: (load 3, align 4, addrspace 1)
4534 ; GFX9: [[DEF:%[0-9]+]]:_(<4 x s8>) = G_IMPLICIT_DEF
4535 ; GFX9: [[ANYEXT:%[0-9]+]]:_(<4 x s16>) = G_ANYEXT [[DEF]](<4 x s8>)
4536 ; GFX9: [[INSERT:%[0-9]+]]:_(<4 x s16>) = G_INSERT [[ANYEXT]], [[LOAD]](<3 x s8>), 0
4537 ; GFX9: [[TRUNC:%[0-9]+]]:_(<4 x s8>) = G_TRUNC [[INSERT]](<4 x s16>)
4538 ; GFX9: $vgpr0 = COPY [[TRUNC]](<4 x s8>)
4539 %0:_(p5) = COPY $vgpr0
4540 %1:_(<3 x s8>) = G_LOAD %0 :: (load 3, addrspace 1, align 4)
4541 %2:_(<4 x s8>) = G_IMPLICIT_DEF
4542 %3:_(<4 x s8>) = G_INSERT %2, %1, 0
4547 name: test_load_private_v3s8_align1
4552 ; SI-LABEL: name: test_load_private_v3s8_align1
4553 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4554 ; SI: [[LOAD:%[0-9]+]]:_(<3 x s8>) = G_LOAD [[COPY]](p5) :: (load 3, align 1, addrspace 5)
4555 ; SI: [[DEF:%[0-9]+]]:_(<4 x s8>) = G_IMPLICIT_DEF
4556 ; SI: [[ANYEXT:%[0-9]+]]:_(<4 x s16>) = G_ANYEXT [[DEF]](<4 x s8>)
4557 ; SI: [[INSERT:%[0-9]+]]:_(<4 x s16>) = G_INSERT [[ANYEXT]], [[LOAD]](<3 x s8>), 0
4558 ; SI: [[TRUNC:%[0-9]+]]:_(<4 x s8>) = G_TRUNC [[INSERT]](<4 x s16>)
4559 ; SI: $vgpr0 = COPY [[TRUNC]](<4 x s8>)
4560 ; CI-LABEL: name: test_load_private_v3s8_align1
4561 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4562 ; CI: [[LOAD:%[0-9]+]]:_(<3 x s8>) = G_LOAD [[COPY]](p5) :: (load 3, align 1, addrspace 5)
4563 ; CI: [[DEF:%[0-9]+]]:_(<4 x s8>) = G_IMPLICIT_DEF
4564 ; CI: [[ANYEXT:%[0-9]+]]:_(<4 x s16>) = G_ANYEXT [[DEF]](<4 x s8>)
4565 ; CI: [[INSERT:%[0-9]+]]:_(<4 x s16>) = G_INSERT [[ANYEXT]], [[LOAD]](<3 x s8>), 0
4566 ; CI: [[TRUNC:%[0-9]+]]:_(<4 x s8>) = G_TRUNC [[INSERT]](<4 x s16>)
4567 ; CI: $vgpr0 = COPY [[TRUNC]](<4 x s8>)
4568 ; VI-LABEL: name: test_load_private_v3s8_align1
4569 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4570 ; VI: [[LOAD:%[0-9]+]]:_(<3 x s8>) = G_LOAD [[COPY]](p5) :: (load 3, align 1, addrspace 5)
4571 ; VI: [[DEF:%[0-9]+]]:_(<4 x s8>) = G_IMPLICIT_DEF
4572 ; VI: [[ANYEXT:%[0-9]+]]:_(<4 x s16>) = G_ANYEXT [[DEF]](<4 x s8>)
4573 ; VI: [[INSERT:%[0-9]+]]:_(<4 x s16>) = G_INSERT [[ANYEXT]], [[LOAD]](<3 x s8>), 0
4574 ; VI: [[TRUNC:%[0-9]+]]:_(<4 x s8>) = G_TRUNC [[INSERT]](<4 x s16>)
4575 ; VI: $vgpr0 = COPY [[TRUNC]](<4 x s8>)
4576 ; GFX9-LABEL: name: test_load_private_v3s8_align1
4577 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4578 ; GFX9: [[LOAD:%[0-9]+]]:_(<3 x s8>) = G_LOAD [[COPY]](p5) :: (load 3, align 1, addrspace 5)
4579 ; GFX9: [[DEF:%[0-9]+]]:_(<4 x s8>) = G_IMPLICIT_DEF
4580 ; GFX9: [[ANYEXT:%[0-9]+]]:_(<4 x s16>) = G_ANYEXT [[DEF]](<4 x s8>)
4581 ; GFX9: [[INSERT:%[0-9]+]]:_(<4 x s16>) = G_INSERT [[ANYEXT]], [[LOAD]](<3 x s8>), 0
4582 ; GFX9: [[TRUNC:%[0-9]+]]:_(<4 x s8>) = G_TRUNC [[INSERT]](<4 x s16>)
4583 ; GFX9: $vgpr0 = COPY [[TRUNC]](<4 x s8>)
4584 %0:_(p5) = COPY $vgpr0
4585 %1:_(<3 x s8>) = G_LOAD %0 :: (load 3, align 1, addrspace 5)
4586 %2:_(<4 x s8>) = G_IMPLICIT_DEF
4587 %3:_(<4 x s8>) = G_INSERT %2, %1, 0
4592 name: test_load_private_v4s8_align4
4597 ; SI-LABEL: name: test_load_private_v4s8_align4
4598 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4599 ; SI: [[LOAD:%[0-9]+]]:_(<4 x s8>) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
4600 ; SI: $vgpr0 = COPY [[LOAD]](<4 x s8>)
4601 ; CI-LABEL: name: test_load_private_v4s8_align4
4602 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4603 ; CI: [[LOAD:%[0-9]+]]:_(<4 x s8>) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
4604 ; CI: $vgpr0 = COPY [[LOAD]](<4 x s8>)
4605 ; VI-LABEL: name: test_load_private_v4s8_align4
4606 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4607 ; VI: [[LOAD:%[0-9]+]]:_(<4 x s8>) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
4608 ; VI: $vgpr0 = COPY [[LOAD]](<4 x s8>)
4609 ; GFX9-LABEL: name: test_load_private_v4s8_align4
4610 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4611 ; GFX9: [[LOAD:%[0-9]+]]:_(<4 x s8>) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
4612 ; GFX9: $vgpr0 = COPY [[LOAD]](<4 x s8>)
4613 %0:_(p5) = COPY $vgpr0
4614 %1:_(<4 x s8>) = G_LOAD %0 :: (load 4, align 4, addrspace 5)
4619 name: test_load_private_v8s8_align8
4624 ; SI-LABEL: name: test_load_private_v8s8_align8
4625 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4626 ; SI: [[LOAD:%[0-9]+]]:_(<4 x s8>) = G_LOAD [[COPY]](p5) :: (load 4, align 8, addrspace 5)
4627 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
4628 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
4629 ; SI: [[LOAD1:%[0-9]+]]:_(<4 x s8>) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
4630 ; SI: [[CONCAT_VECTORS:%[0-9]+]]:_(<8 x s8>) = G_CONCAT_VECTORS [[LOAD]](<4 x s8>), [[LOAD1]](<4 x s8>)
4631 ; SI: $vgpr0_vgpr1 = COPY [[CONCAT_VECTORS]](<8 x s8>)
4632 ; CI-LABEL: name: test_load_private_v8s8_align8
4633 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4634 ; CI: [[LOAD:%[0-9]+]]:_(<4 x s8>) = G_LOAD [[COPY]](p5) :: (load 4, align 8, addrspace 5)
4635 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
4636 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
4637 ; CI: [[LOAD1:%[0-9]+]]:_(<4 x s8>) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
4638 ; CI: [[CONCAT_VECTORS:%[0-9]+]]:_(<8 x s8>) = G_CONCAT_VECTORS [[LOAD]](<4 x s8>), [[LOAD1]](<4 x s8>)
4639 ; CI: $vgpr0_vgpr1 = COPY [[CONCAT_VECTORS]](<8 x s8>)
4640 ; VI-LABEL: name: test_load_private_v8s8_align8
4641 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4642 ; VI: [[LOAD:%[0-9]+]]:_(<4 x s8>) = G_LOAD [[COPY]](p5) :: (load 4, align 8, addrspace 5)
4643 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
4644 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
4645 ; VI: [[LOAD1:%[0-9]+]]:_(<4 x s8>) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
4646 ; VI: [[CONCAT_VECTORS:%[0-9]+]]:_(<8 x s8>) = G_CONCAT_VECTORS [[LOAD]](<4 x s8>), [[LOAD1]](<4 x s8>)
4647 ; VI: $vgpr0_vgpr1 = COPY [[CONCAT_VECTORS]](<8 x s8>)
4648 ; GFX9-LABEL: name: test_load_private_v8s8_align8
4649 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4650 ; GFX9: [[LOAD:%[0-9]+]]:_(<4 x s8>) = G_LOAD [[COPY]](p5) :: (load 4, align 8, addrspace 5)
4651 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
4652 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
4653 ; GFX9: [[LOAD1:%[0-9]+]]:_(<4 x s8>) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
4654 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<8 x s8>) = G_CONCAT_VECTORS [[LOAD]](<4 x s8>), [[LOAD1]](<4 x s8>)
4655 ; GFX9: $vgpr0_vgpr1 = COPY [[CONCAT_VECTORS]](<8 x s8>)
4656 %0:_(p5) = COPY $vgpr0
4657 %1:_(<8 x s8>) = G_LOAD %0 :: (load 8, align 8, addrspace 5)
4658 $vgpr0_vgpr1 = COPY %1
4662 name: test_load_private_v16s8_align16
4667 ; SI-LABEL: name: test_load_private_v16s8_align16
4668 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4669 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 56)
4670 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
4671 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
4672 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 56)
4673 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
4674 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
4675 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 56)
4676 ; SI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
4677 ; SI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
4678 ; SI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 56)
4679 ; SI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
4680 ; SI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
4681 ; SI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD2]](s32)
4682 ; SI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
4683 ; SI: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32)
4684 ; SI: [[TRUNC:%[0-9]+]]:_(<4 x s8>) = G_TRUNC [[BUILD_VECTOR]](<4 x s32>)
4685 ; SI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
4686 ; SI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
4687 ; SI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 56)
4688 ; SI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
4689 ; SI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 56)
4690 ; SI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
4691 ; SI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 56)
4692 ; SI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
4693 ; SI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 56)
4694 ; SI: [[COPY5:%[0-9]+]]:_(s32) = COPY [[LOAD4]](s32)
4695 ; SI: [[COPY6:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
4696 ; SI: [[COPY7:%[0-9]+]]:_(s32) = COPY [[LOAD6]](s32)
4697 ; SI: [[COPY8:%[0-9]+]]:_(s32) = COPY [[LOAD7]](s32)
4698 ; SI: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32), [[COPY8]](s32)
4699 ; SI: [[TRUNC1:%[0-9]+]]:_(<4 x s8>) = G_TRUNC [[BUILD_VECTOR1]](<4 x s32>)
4700 ; SI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
4701 ; SI: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
4702 ; SI: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 1, addrspace 56)
4703 ; SI: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
4704 ; SI: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 1, addrspace 56)
4705 ; SI: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C1]](s32)
4706 ; SI: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 1, addrspace 56)
4707 ; SI: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C2]](s32)
4708 ; SI: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 1, addrspace 56)
4709 ; SI: [[COPY9:%[0-9]+]]:_(s32) = COPY [[LOAD8]](s32)
4710 ; SI: [[COPY10:%[0-9]+]]:_(s32) = COPY [[LOAD9]](s32)
4711 ; SI: [[COPY11:%[0-9]+]]:_(s32) = COPY [[LOAD10]](s32)
4712 ; SI: [[COPY12:%[0-9]+]]:_(s32) = COPY [[LOAD11]](s32)
4713 ; SI: [[BUILD_VECTOR2:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32), [[COPY12]](s32)
4714 ; SI: [[TRUNC2:%[0-9]+]]:_(<4 x s8>) = G_TRUNC [[BUILD_VECTOR2]](<4 x s32>)
4715 ; SI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
4716 ; SI: [[GEP11:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C5]](s32)
4717 ; SI: [[LOAD12:%[0-9]+]]:_(s32) = G_LOAD [[GEP11]](p5) :: (load 1, addrspace 56)
4718 ; SI: [[GEP12:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C]](s32)
4719 ; SI: [[LOAD13:%[0-9]+]]:_(s32) = G_LOAD [[GEP12]](p5) :: (load 1, addrspace 56)
4720 ; SI: [[GEP13:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C1]](s32)
4721 ; SI: [[LOAD14:%[0-9]+]]:_(s32) = G_LOAD [[GEP13]](p5) :: (load 1, addrspace 56)
4722 ; SI: [[GEP14:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C2]](s32)
4723 ; SI: [[LOAD15:%[0-9]+]]:_(s32) = G_LOAD [[GEP14]](p5) :: (load 1, addrspace 56)
4724 ; SI: [[COPY13:%[0-9]+]]:_(s32) = COPY [[LOAD12]](s32)
4725 ; SI: [[COPY14:%[0-9]+]]:_(s32) = COPY [[LOAD13]](s32)
4726 ; SI: [[COPY15:%[0-9]+]]:_(s32) = COPY [[LOAD14]](s32)
4727 ; SI: [[COPY16:%[0-9]+]]:_(s32) = COPY [[LOAD15]](s32)
4728 ; SI: [[BUILD_VECTOR3:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY13]](s32), [[COPY14]](s32), [[COPY15]](s32), [[COPY16]](s32)
4729 ; SI: [[TRUNC3:%[0-9]+]]:_(<4 x s8>) = G_TRUNC [[BUILD_VECTOR3]](<4 x s32>)
4730 ; SI: [[CONCAT_VECTORS:%[0-9]+]]:_(<16 x s8>) = G_CONCAT_VECTORS [[TRUNC]](<4 x s8>), [[TRUNC1]](<4 x s8>), [[TRUNC2]](<4 x s8>), [[TRUNC3]](<4 x s8>)
4731 ; SI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[CONCAT_VECTORS]](<16 x s8>)
4732 ; CI-LABEL: name: test_load_private_v16s8_align16
4733 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4734 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 56)
4735 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
4736 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
4737 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 56)
4738 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
4739 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
4740 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 56)
4741 ; CI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
4742 ; CI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
4743 ; CI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 56)
4744 ; CI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
4745 ; CI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
4746 ; CI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD2]](s32)
4747 ; CI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
4748 ; CI: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32)
4749 ; CI: [[TRUNC:%[0-9]+]]:_(<4 x s8>) = G_TRUNC [[BUILD_VECTOR]](<4 x s32>)
4750 ; CI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
4751 ; CI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
4752 ; CI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 56)
4753 ; CI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
4754 ; CI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 56)
4755 ; CI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
4756 ; CI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 56)
4757 ; CI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
4758 ; CI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 56)
4759 ; CI: [[COPY5:%[0-9]+]]:_(s32) = COPY [[LOAD4]](s32)
4760 ; CI: [[COPY6:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
4761 ; CI: [[COPY7:%[0-9]+]]:_(s32) = COPY [[LOAD6]](s32)
4762 ; CI: [[COPY8:%[0-9]+]]:_(s32) = COPY [[LOAD7]](s32)
4763 ; CI: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32), [[COPY8]](s32)
4764 ; CI: [[TRUNC1:%[0-9]+]]:_(<4 x s8>) = G_TRUNC [[BUILD_VECTOR1]](<4 x s32>)
4765 ; CI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
4766 ; CI: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
4767 ; CI: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 1, addrspace 56)
4768 ; CI: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
4769 ; CI: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 1, addrspace 56)
4770 ; CI: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C1]](s32)
4771 ; CI: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 1, addrspace 56)
4772 ; CI: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C2]](s32)
4773 ; CI: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 1, addrspace 56)
4774 ; CI: [[COPY9:%[0-9]+]]:_(s32) = COPY [[LOAD8]](s32)
4775 ; CI: [[COPY10:%[0-9]+]]:_(s32) = COPY [[LOAD9]](s32)
4776 ; CI: [[COPY11:%[0-9]+]]:_(s32) = COPY [[LOAD10]](s32)
4777 ; CI: [[COPY12:%[0-9]+]]:_(s32) = COPY [[LOAD11]](s32)
4778 ; CI: [[BUILD_VECTOR2:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32), [[COPY12]](s32)
4779 ; CI: [[TRUNC2:%[0-9]+]]:_(<4 x s8>) = G_TRUNC [[BUILD_VECTOR2]](<4 x s32>)
4780 ; CI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
4781 ; CI: [[GEP11:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C5]](s32)
4782 ; CI: [[LOAD12:%[0-9]+]]:_(s32) = G_LOAD [[GEP11]](p5) :: (load 1, addrspace 56)
4783 ; CI: [[GEP12:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C]](s32)
4784 ; CI: [[LOAD13:%[0-9]+]]:_(s32) = G_LOAD [[GEP12]](p5) :: (load 1, addrspace 56)
4785 ; CI: [[GEP13:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C1]](s32)
4786 ; CI: [[LOAD14:%[0-9]+]]:_(s32) = G_LOAD [[GEP13]](p5) :: (load 1, addrspace 56)
4787 ; CI: [[GEP14:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C2]](s32)
4788 ; CI: [[LOAD15:%[0-9]+]]:_(s32) = G_LOAD [[GEP14]](p5) :: (load 1, addrspace 56)
4789 ; CI: [[COPY13:%[0-9]+]]:_(s32) = COPY [[LOAD12]](s32)
4790 ; CI: [[COPY14:%[0-9]+]]:_(s32) = COPY [[LOAD13]](s32)
4791 ; CI: [[COPY15:%[0-9]+]]:_(s32) = COPY [[LOAD14]](s32)
4792 ; CI: [[COPY16:%[0-9]+]]:_(s32) = COPY [[LOAD15]](s32)
4793 ; CI: [[BUILD_VECTOR3:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY13]](s32), [[COPY14]](s32), [[COPY15]](s32), [[COPY16]](s32)
4794 ; CI: [[TRUNC3:%[0-9]+]]:_(<4 x s8>) = G_TRUNC [[BUILD_VECTOR3]](<4 x s32>)
4795 ; CI: [[CONCAT_VECTORS:%[0-9]+]]:_(<16 x s8>) = G_CONCAT_VECTORS [[TRUNC]](<4 x s8>), [[TRUNC1]](<4 x s8>), [[TRUNC2]](<4 x s8>), [[TRUNC3]](<4 x s8>)
4796 ; CI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[CONCAT_VECTORS]](<16 x s8>)
4797 ; VI-LABEL: name: test_load_private_v16s8_align16
4798 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4799 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 56)
4800 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
4801 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
4802 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 56)
4803 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
4804 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
4805 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 56)
4806 ; VI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
4807 ; VI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
4808 ; VI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 56)
4809 ; VI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
4810 ; VI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
4811 ; VI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD2]](s32)
4812 ; VI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
4813 ; VI: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32)
4814 ; VI: [[TRUNC:%[0-9]+]]:_(<4 x s8>) = G_TRUNC [[BUILD_VECTOR]](<4 x s32>)
4815 ; VI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
4816 ; VI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
4817 ; VI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 56)
4818 ; VI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
4819 ; VI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 56)
4820 ; VI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
4821 ; VI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 56)
4822 ; VI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
4823 ; VI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 56)
4824 ; VI: [[COPY5:%[0-9]+]]:_(s32) = COPY [[LOAD4]](s32)
4825 ; VI: [[COPY6:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
4826 ; VI: [[COPY7:%[0-9]+]]:_(s32) = COPY [[LOAD6]](s32)
4827 ; VI: [[COPY8:%[0-9]+]]:_(s32) = COPY [[LOAD7]](s32)
4828 ; VI: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32), [[COPY8]](s32)
4829 ; VI: [[TRUNC1:%[0-9]+]]:_(<4 x s8>) = G_TRUNC [[BUILD_VECTOR1]](<4 x s32>)
4830 ; VI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
4831 ; VI: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
4832 ; VI: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 1, addrspace 56)
4833 ; VI: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
4834 ; VI: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 1, addrspace 56)
4835 ; VI: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C1]](s32)
4836 ; VI: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 1, addrspace 56)
4837 ; VI: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C2]](s32)
4838 ; VI: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 1, addrspace 56)
4839 ; VI: [[COPY9:%[0-9]+]]:_(s32) = COPY [[LOAD8]](s32)
4840 ; VI: [[COPY10:%[0-9]+]]:_(s32) = COPY [[LOAD9]](s32)
4841 ; VI: [[COPY11:%[0-9]+]]:_(s32) = COPY [[LOAD10]](s32)
4842 ; VI: [[COPY12:%[0-9]+]]:_(s32) = COPY [[LOAD11]](s32)
4843 ; VI: [[BUILD_VECTOR2:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32), [[COPY12]](s32)
4844 ; VI: [[TRUNC2:%[0-9]+]]:_(<4 x s8>) = G_TRUNC [[BUILD_VECTOR2]](<4 x s32>)
4845 ; VI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
4846 ; VI: [[GEP11:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C5]](s32)
4847 ; VI: [[LOAD12:%[0-9]+]]:_(s32) = G_LOAD [[GEP11]](p5) :: (load 1, addrspace 56)
4848 ; VI: [[GEP12:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C]](s32)
4849 ; VI: [[LOAD13:%[0-9]+]]:_(s32) = G_LOAD [[GEP12]](p5) :: (load 1, addrspace 56)
4850 ; VI: [[GEP13:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C1]](s32)
4851 ; VI: [[LOAD14:%[0-9]+]]:_(s32) = G_LOAD [[GEP13]](p5) :: (load 1, addrspace 56)
4852 ; VI: [[GEP14:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C2]](s32)
4853 ; VI: [[LOAD15:%[0-9]+]]:_(s32) = G_LOAD [[GEP14]](p5) :: (load 1, addrspace 56)
4854 ; VI: [[COPY13:%[0-9]+]]:_(s32) = COPY [[LOAD12]](s32)
4855 ; VI: [[COPY14:%[0-9]+]]:_(s32) = COPY [[LOAD13]](s32)
4856 ; VI: [[COPY15:%[0-9]+]]:_(s32) = COPY [[LOAD14]](s32)
4857 ; VI: [[COPY16:%[0-9]+]]:_(s32) = COPY [[LOAD15]](s32)
4858 ; VI: [[BUILD_VECTOR3:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY13]](s32), [[COPY14]](s32), [[COPY15]](s32), [[COPY16]](s32)
4859 ; VI: [[TRUNC3:%[0-9]+]]:_(<4 x s8>) = G_TRUNC [[BUILD_VECTOR3]](<4 x s32>)
4860 ; VI: [[CONCAT_VECTORS:%[0-9]+]]:_(<16 x s8>) = G_CONCAT_VECTORS [[TRUNC]](<4 x s8>), [[TRUNC1]](<4 x s8>), [[TRUNC2]](<4 x s8>), [[TRUNC3]](<4 x s8>)
4861 ; VI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[CONCAT_VECTORS]](<16 x s8>)
4862 ; GFX9-LABEL: name: test_load_private_v16s8_align16
4863 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4864 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 56)
4865 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
4866 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
4867 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 56)
4868 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
4869 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
4870 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 56)
4871 ; GFX9: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
4872 ; GFX9: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
4873 ; GFX9: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 56)
4874 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
4875 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
4876 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD2]](s32)
4877 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
4878 ; GFX9: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32)
4879 ; GFX9: [[TRUNC:%[0-9]+]]:_(<4 x s8>) = G_TRUNC [[BUILD_VECTOR]](<4 x s32>)
4880 ; GFX9: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
4881 ; GFX9: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
4882 ; GFX9: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 56)
4883 ; GFX9: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
4884 ; GFX9: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 56)
4885 ; GFX9: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
4886 ; GFX9: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 56)
4887 ; GFX9: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
4888 ; GFX9: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 56)
4889 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY [[LOAD4]](s32)
4890 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
4891 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY [[LOAD6]](s32)
4892 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY [[LOAD7]](s32)
4893 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32), [[COPY8]](s32)
4894 ; GFX9: [[TRUNC1:%[0-9]+]]:_(<4 x s8>) = G_TRUNC [[BUILD_VECTOR1]](<4 x s32>)
4895 ; GFX9: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
4896 ; GFX9: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
4897 ; GFX9: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 1, addrspace 56)
4898 ; GFX9: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
4899 ; GFX9: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 1, addrspace 56)
4900 ; GFX9: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C1]](s32)
4901 ; GFX9: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 1, addrspace 56)
4902 ; GFX9: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C2]](s32)
4903 ; GFX9: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 1, addrspace 56)
4904 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY [[LOAD8]](s32)
4905 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY [[LOAD9]](s32)
4906 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY [[LOAD10]](s32)
4907 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY [[LOAD11]](s32)
4908 ; GFX9: [[BUILD_VECTOR2:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32), [[COPY12]](s32)
4909 ; GFX9: [[TRUNC2:%[0-9]+]]:_(<4 x s8>) = G_TRUNC [[BUILD_VECTOR2]](<4 x s32>)
4910 ; GFX9: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
4911 ; GFX9: [[GEP11:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C5]](s32)
4912 ; GFX9: [[LOAD12:%[0-9]+]]:_(s32) = G_LOAD [[GEP11]](p5) :: (load 1, addrspace 56)
4913 ; GFX9: [[GEP12:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C]](s32)
4914 ; GFX9: [[LOAD13:%[0-9]+]]:_(s32) = G_LOAD [[GEP12]](p5) :: (load 1, addrspace 56)
4915 ; GFX9: [[GEP13:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C1]](s32)
4916 ; GFX9: [[LOAD14:%[0-9]+]]:_(s32) = G_LOAD [[GEP13]](p5) :: (load 1, addrspace 56)
4917 ; GFX9: [[GEP14:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C2]](s32)
4918 ; GFX9: [[LOAD15:%[0-9]+]]:_(s32) = G_LOAD [[GEP14]](p5) :: (load 1, addrspace 56)
4919 ; GFX9: [[COPY13:%[0-9]+]]:_(s32) = COPY [[LOAD12]](s32)
4920 ; GFX9: [[COPY14:%[0-9]+]]:_(s32) = COPY [[LOAD13]](s32)
4921 ; GFX9: [[COPY15:%[0-9]+]]:_(s32) = COPY [[LOAD14]](s32)
4922 ; GFX9: [[COPY16:%[0-9]+]]:_(s32) = COPY [[LOAD15]](s32)
4923 ; GFX9: [[BUILD_VECTOR3:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY13]](s32), [[COPY14]](s32), [[COPY15]](s32), [[COPY16]](s32)
4924 ; GFX9: [[TRUNC3:%[0-9]+]]:_(<4 x s8>) = G_TRUNC [[BUILD_VECTOR3]](<4 x s32>)
4925 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<16 x s8>) = G_CONCAT_VECTORS [[TRUNC]](<4 x s8>), [[TRUNC1]](<4 x s8>), [[TRUNC2]](<4 x s8>), [[TRUNC3]](<4 x s8>)
4926 ; GFX9: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[CONCAT_VECTORS]](<16 x s8>)
4927 %0:_(p5) = COPY $vgpr0
4928 %1:_(<16 x s8>) = G_LOAD %0 :: (load 16, align 1, addrspace 56)
4929 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1
4933 name: test_load_private_v2s16_align4
4938 ; SI-LABEL: name: test_load_private_v2s16_align4
4939 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4940 ; SI: [[LOAD:%[0-9]+]]:_(<2 x s16>) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
4941 ; SI: $vgpr0 = COPY [[LOAD]](<2 x s16>)
4942 ; CI-LABEL: name: test_load_private_v2s16_align4
4943 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4944 ; CI: [[LOAD:%[0-9]+]]:_(<2 x s16>) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
4945 ; CI: $vgpr0 = COPY [[LOAD]](<2 x s16>)
4946 ; VI-LABEL: name: test_load_private_v2s16_align4
4947 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4948 ; VI: [[LOAD:%[0-9]+]]:_(<2 x s16>) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
4949 ; VI: $vgpr0 = COPY [[LOAD]](<2 x s16>)
4950 ; GFX9-LABEL: name: test_load_private_v2s16_align4
4951 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4952 ; GFX9: [[LOAD:%[0-9]+]]:_(<2 x s16>) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
4953 ; GFX9: $vgpr0 = COPY [[LOAD]](<2 x s16>)
4954 %0:_(p5) = COPY $vgpr0
4955 %1:_(<2 x s16>) = G_LOAD %0 :: (load 4, align 4, addrspace 5)
4960 name: test_load_private_v2s16_align2
4965 ; SI-LABEL: name: test_load_private_v2s16_align2
4966 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4967 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
4968 ; SI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
4969 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
4970 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
4971 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
4972 ; SI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
4973 ; SI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)
4974 ; SI: $vgpr0 = COPY [[BUILD_VECTOR]](<2 x s16>)
4975 ; CI-LABEL: name: test_load_private_v2s16_align2
4976 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4977 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
4978 ; CI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
4979 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
4980 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
4981 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
4982 ; CI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
4983 ; CI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)
4984 ; CI: $vgpr0 = COPY [[BUILD_VECTOR]](<2 x s16>)
4985 ; VI-LABEL: name: test_load_private_v2s16_align2
4986 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4987 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
4988 ; VI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
4989 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
4990 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
4991 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
4992 ; VI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
4993 ; VI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)
4994 ; VI: $vgpr0 = COPY [[BUILD_VECTOR]](<2 x s16>)
4995 ; GFX9-LABEL: name: test_load_private_v2s16_align2
4996 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
4997 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
4998 ; GFX9: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
4999 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
5000 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
5001 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
5002 ; GFX9: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
5003 ; GFX9: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)
5004 ; GFX9: $vgpr0 = COPY [[BUILD_VECTOR]](<2 x s16>)
5005 %0:_(p5) = COPY $vgpr0
5006 %1:_(<2 x s16>) = G_LOAD %0 :: (load 4, align 2, addrspace 5)
5011 name: test_load_private_v2s16_align1
5016 ; SI-LABEL: name: test_load_private_v2s16_align1
5017 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
5018 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
5019 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
5020 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
5021 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
5022 ; SI: [[C1:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
5023 ; SI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
5024 ; SI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C1]]
5025 ; SI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
5026 ; SI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
5027 ; SI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
5028 ; SI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C3]]
5029 ; SI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
5030 ; SI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[SHL]](s32)
5031 ; SI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[TRUNC1]]
5032 ; SI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
5033 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
5034 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
5035 ; SI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
5036 ; SI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
5037 ; SI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
5038 ; SI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C1]]
5039 ; SI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[C2]](s32)
5040 ; SI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
5041 ; SI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C3]]
5042 ; SI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[COPY2]](s32)
5043 ; SI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[SHL1]](s32)
5044 ; SI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[TRUNC3]]
5045 ; SI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[OR]](s16), [[OR1]](s16)
5046 ; SI: $vgpr0 = COPY [[BUILD_VECTOR]](<2 x s16>)
5047 ; CI-LABEL: name: test_load_private_v2s16_align1
5048 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
5049 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
5050 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
5051 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
5052 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
5053 ; CI: [[C1:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
5054 ; CI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
5055 ; CI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C1]]
5056 ; CI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
5057 ; CI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
5058 ; CI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
5059 ; CI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C3]]
5060 ; CI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
5061 ; CI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[SHL]](s32)
5062 ; CI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[TRUNC1]]
5063 ; CI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
5064 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
5065 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
5066 ; CI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
5067 ; CI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
5068 ; CI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
5069 ; CI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C1]]
5070 ; CI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[C2]](s32)
5071 ; CI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
5072 ; CI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C3]]
5073 ; CI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[COPY2]](s32)
5074 ; CI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[SHL1]](s32)
5075 ; CI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[TRUNC3]]
5076 ; CI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[OR]](s16), [[OR1]](s16)
5077 ; CI: $vgpr0 = COPY [[BUILD_VECTOR]](<2 x s16>)
5078 ; VI-LABEL: name: test_load_private_v2s16_align1
5079 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
5080 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
5081 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
5082 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
5083 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
5084 ; VI: [[C1:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
5085 ; VI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
5086 ; VI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C1]]
5087 ; VI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
5088 ; VI: [[AND1:%[0-9]+]]:_(s16) = G_AND [[TRUNC1]], [[C1]]
5089 ; VI: [[C2:%[0-9]+]]:_(s16) = G_CONSTANT i16 8
5090 ; VI: [[SHL:%[0-9]+]]:_(s16) = G_SHL [[AND1]], [[C2]](s16)
5091 ; VI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[SHL]]
5092 ; VI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
5093 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
5094 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
5095 ; VI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
5096 ; VI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
5097 ; VI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
5098 ; VI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C1]]
5099 ; VI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD3]](s32)
5100 ; VI: [[AND3:%[0-9]+]]:_(s16) = G_AND [[TRUNC3]], [[C1]]
5101 ; VI: [[SHL1:%[0-9]+]]:_(s16) = G_SHL [[AND3]], [[C2]](s16)
5102 ; VI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[SHL1]]
5103 ; VI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[OR]](s16), [[OR1]](s16)
5104 ; VI: $vgpr0 = COPY [[BUILD_VECTOR]](<2 x s16>)
5105 ; GFX9-LABEL: name: test_load_private_v2s16_align1
5106 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
5107 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
5108 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
5109 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
5110 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
5111 ; GFX9: [[C1:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
5112 ; GFX9: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
5113 ; GFX9: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C1]]
5114 ; GFX9: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
5115 ; GFX9: [[AND1:%[0-9]+]]:_(s16) = G_AND [[TRUNC1]], [[C1]]
5116 ; GFX9: [[C2:%[0-9]+]]:_(s16) = G_CONSTANT i16 8
5117 ; GFX9: [[SHL:%[0-9]+]]:_(s16) = G_SHL [[AND1]], [[C2]](s16)
5118 ; GFX9: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[SHL]]
5119 ; GFX9: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
5120 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
5121 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
5122 ; GFX9: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
5123 ; GFX9: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
5124 ; GFX9: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
5125 ; GFX9: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C1]]
5126 ; GFX9: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD3]](s32)
5127 ; GFX9: [[AND3:%[0-9]+]]:_(s16) = G_AND [[TRUNC3]], [[C1]]
5128 ; GFX9: [[SHL1:%[0-9]+]]:_(s16) = G_SHL [[AND3]], [[C2]](s16)
5129 ; GFX9: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[SHL1]]
5130 ; GFX9: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[OR]](s16), [[OR1]](s16)
5131 ; GFX9: $vgpr0 = COPY [[BUILD_VECTOR]](<2 x s16>)
5132 %0:_(p5) = COPY $vgpr0
5133 %1:_(<2 x s16>) = G_LOAD %0 :: (load 4, align 1, addrspace 5)
5138 name: test_load_private_v3s16_align8
5143 ; SI-LABEL: name: test_load_private_v3s16_align8
5144 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
5145 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, align 8, addrspace 5)
5146 ; SI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
5147 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
5148 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
5149 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
5150 ; SI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
5151 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
5152 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
5153 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 2, align 4, addrspace 5)
5154 ; SI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
5155 ; SI: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF
5156 ; SI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)
5157 ; SI: [[BUILD_VECTOR1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)
5158 ; SI: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR]](<2 x s16>), [[BUILD_VECTOR1]](<2 x s16>)
5159 ; SI: [[EXTRACT:%[0-9]+]]:_(<3 x s16>) = G_EXTRACT [[CONCAT_VECTORS]](<4 x s16>), 0
5160 ; SI: [[DEF1:%[0-9]+]]:_(<4 x s16>) = G_IMPLICIT_DEF
5161 ; SI: [[INSERT:%[0-9]+]]:_(<4 x s16>) = G_INSERT [[DEF1]], [[EXTRACT]](<3 x s16>), 0
5162 ; SI: $vgpr0_vgpr1 = COPY [[INSERT]](<4 x s16>)
5163 ; CI-LABEL: name: test_load_private_v3s16_align8
5164 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
5165 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, align 8, addrspace 5)
5166 ; CI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
5167 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
5168 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
5169 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
5170 ; CI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
5171 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
5172 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
5173 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 2, align 4, addrspace 5)
5174 ; CI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
5175 ; CI: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF
5176 ; CI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)
5177 ; CI: [[BUILD_VECTOR1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)
5178 ; CI: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR]](<2 x s16>), [[BUILD_VECTOR1]](<2 x s16>)
5179 ; CI: [[EXTRACT:%[0-9]+]]:_(<3 x s16>) = G_EXTRACT [[CONCAT_VECTORS]](<4 x s16>), 0
5180 ; CI: [[DEF1:%[0-9]+]]:_(<4 x s16>) = G_IMPLICIT_DEF
5181 ; CI: [[INSERT:%[0-9]+]]:_(<4 x s16>) = G_INSERT [[DEF1]], [[EXTRACT]](<3 x s16>), 0
5182 ; CI: $vgpr0_vgpr1 = COPY [[INSERT]](<4 x s16>)
5183 ; VI-LABEL: name: test_load_private_v3s16_align8
5184 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
5185 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, align 8, addrspace 5)
5186 ; VI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
5187 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
5188 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
5189 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
5190 ; VI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
5191 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
5192 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
5193 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 2, align 4, addrspace 5)
5194 ; VI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
5195 ; VI: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF
5196 ; VI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)
5197 ; VI: [[BUILD_VECTOR1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)
5198 ; VI: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR]](<2 x s16>), [[BUILD_VECTOR1]](<2 x s16>)
5199 ; VI: [[EXTRACT:%[0-9]+]]:_(<3 x s16>) = G_EXTRACT [[CONCAT_VECTORS]](<4 x s16>), 0
5200 ; VI: [[DEF1:%[0-9]+]]:_(<4 x s16>) = G_IMPLICIT_DEF
5201 ; VI: [[INSERT:%[0-9]+]]:_(<4 x s16>) = G_INSERT [[DEF1]], [[EXTRACT]](<3 x s16>), 0
5202 ; VI: $vgpr0_vgpr1 = COPY [[INSERT]](<4 x s16>)
5203 ; GFX9-LABEL: name: test_load_private_v3s16_align8
5204 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
5205 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, align 8, addrspace 5)
5206 ; GFX9: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
5207 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
5208 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
5209 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
5210 ; GFX9: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
5211 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
5212 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
5213 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 2, align 4, addrspace 5)
5214 ; GFX9: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
5215 ; GFX9: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF
5216 ; GFX9: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)
5217 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)
5218 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR]](<2 x s16>), [[BUILD_VECTOR1]](<2 x s16>)
5219 ; GFX9: [[EXTRACT:%[0-9]+]]:_(<3 x s16>) = G_EXTRACT [[CONCAT_VECTORS]](<4 x s16>), 0
5220 ; GFX9: [[DEF1:%[0-9]+]]:_(<4 x s16>) = G_IMPLICIT_DEF
5221 ; GFX9: [[INSERT:%[0-9]+]]:_(<4 x s16>) = G_INSERT [[DEF1]], [[EXTRACT]](<3 x s16>), 0
5222 ; GFX9: $vgpr0_vgpr1 = COPY [[INSERT]](<4 x s16>)
5223 %0:_(p5) = COPY $vgpr0
5224 %1:_(<3 x s16>) = G_LOAD %0 :: (load 6, align 8, addrspace 5)
5225 %2:_(<4 x s16>) = G_IMPLICIT_DEF
5226 %3:_(<4 x s16>) = G_INSERT %2, %1, 0
5227 $vgpr0_vgpr1 = COPY %3
5231 name: test_load_private_v3s16_align2
5236 ; SI-LABEL: name: test_load_private_v3s16_align2
5237 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
5238 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
5239 ; SI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
5240 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
5241 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
5242 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
5243 ; SI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
5244 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
5245 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
5246 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 2, addrspace 5)
5247 ; SI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
5248 ; SI: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF
5249 ; SI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)
5250 ; SI: [[BUILD_VECTOR1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)
5251 ; SI: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR]](<2 x s16>), [[BUILD_VECTOR1]](<2 x s16>)
5252 ; SI: [[EXTRACT:%[0-9]+]]:_(<3 x s16>) = G_EXTRACT [[CONCAT_VECTORS]](<4 x s16>), 0
5253 ; SI: [[DEF1:%[0-9]+]]:_(<4 x s16>) = G_IMPLICIT_DEF
5254 ; SI: [[INSERT:%[0-9]+]]:_(<4 x s16>) = G_INSERT [[DEF1]], [[EXTRACT]](<3 x s16>), 0
5255 ; SI: $vgpr0_vgpr1 = COPY [[INSERT]](<4 x s16>)
5256 ; CI-LABEL: name: test_load_private_v3s16_align2
5257 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
5258 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
5259 ; CI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
5260 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
5261 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
5262 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
5263 ; CI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
5264 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
5265 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
5266 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 2, addrspace 5)
5267 ; CI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
5268 ; CI: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF
5269 ; CI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)
5270 ; CI: [[BUILD_VECTOR1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)
5271 ; CI: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR]](<2 x s16>), [[BUILD_VECTOR1]](<2 x s16>)
5272 ; CI: [[EXTRACT:%[0-9]+]]:_(<3 x s16>) = G_EXTRACT [[CONCAT_VECTORS]](<4 x s16>), 0
5273 ; CI: [[DEF1:%[0-9]+]]:_(<4 x s16>) = G_IMPLICIT_DEF
5274 ; CI: [[INSERT:%[0-9]+]]:_(<4 x s16>) = G_INSERT [[DEF1]], [[EXTRACT]](<3 x s16>), 0
5275 ; CI: $vgpr0_vgpr1 = COPY [[INSERT]](<4 x s16>)
5276 ; VI-LABEL: name: test_load_private_v3s16_align2
5277 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
5278 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
5279 ; VI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
5280 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
5281 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
5282 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
5283 ; VI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
5284 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
5285 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
5286 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 2, addrspace 5)
5287 ; VI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
5288 ; VI: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF
5289 ; VI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)
5290 ; VI: [[BUILD_VECTOR1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)
5291 ; VI: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR]](<2 x s16>), [[BUILD_VECTOR1]](<2 x s16>)
5292 ; VI: [[EXTRACT:%[0-9]+]]:_(<3 x s16>) = G_EXTRACT [[CONCAT_VECTORS]](<4 x s16>), 0
5293 ; VI: [[DEF1:%[0-9]+]]:_(<4 x s16>) = G_IMPLICIT_DEF
5294 ; VI: [[INSERT:%[0-9]+]]:_(<4 x s16>) = G_INSERT [[DEF1]], [[EXTRACT]](<3 x s16>), 0
5295 ; VI: $vgpr0_vgpr1 = COPY [[INSERT]](<4 x s16>)
5296 ; GFX9-LABEL: name: test_load_private_v3s16_align2
5297 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
5298 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
5299 ; GFX9: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
5300 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
5301 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
5302 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
5303 ; GFX9: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
5304 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
5305 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
5306 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 2, addrspace 5)
5307 ; GFX9: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
5308 ; GFX9: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF
5309 ; GFX9: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)
5310 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)
5311 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR]](<2 x s16>), [[BUILD_VECTOR1]](<2 x s16>)
5312 ; GFX9: [[EXTRACT:%[0-9]+]]:_(<3 x s16>) = G_EXTRACT [[CONCAT_VECTORS]](<4 x s16>), 0
5313 ; GFX9: [[DEF1:%[0-9]+]]:_(<4 x s16>) = G_IMPLICIT_DEF
5314 ; GFX9: [[INSERT:%[0-9]+]]:_(<4 x s16>) = G_INSERT [[DEF1]], [[EXTRACT]](<3 x s16>), 0
5315 ; GFX9: $vgpr0_vgpr1 = COPY [[INSERT]](<4 x s16>)
5316 %0:_(p5) = COPY $vgpr0
5317 %1:_(<3 x s16>) = G_LOAD %0 :: (load 6, align 2, addrspace 5)
5318 %2:_(<4 x s16>) = G_IMPLICIT_DEF
5319 %3:_(<4 x s16>) = G_INSERT %2, %1, 0
5320 $vgpr0_vgpr1 = COPY %3
5324 name: test_load_private_v3s16_align1
5329 ; SI-LABEL: name: test_load_private_v3s16_align1
5330 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
5331 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
5332 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
5333 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
5334 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
5335 ; SI: [[C1:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
5336 ; SI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
5337 ; SI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C1]]
5338 ; SI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
5339 ; SI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
5340 ; SI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
5341 ; SI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C3]]
5342 ; SI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
5343 ; SI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[SHL]](s32)
5344 ; SI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[TRUNC1]]
5345 ; SI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
5346 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
5347 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
5348 ; SI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
5349 ; SI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
5350 ; SI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
5351 ; SI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C1]]
5352 ; SI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[C2]](s32)
5353 ; SI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
5354 ; SI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C3]]
5355 ; SI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[COPY2]](s32)
5356 ; SI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[SHL1]](s32)
5357 ; SI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[TRUNC3]]
5358 ; SI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
5359 ; SI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C5]](s32)
5360 ; SI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 5)
5361 ; SI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
5362 ; SI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 5)
5363 ; SI: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
5364 ; SI: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C1]]
5365 ; SI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[C2]](s32)
5366 ; SI: [[COPY5:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
5367 ; SI: [[AND5:%[0-9]+]]:_(s32) = G_AND [[COPY5]], [[C3]]
5368 ; SI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[AND5]], [[COPY4]](s32)
5369 ; SI: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[SHL2]](s32)
5370 ; SI: [[OR2:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[TRUNC5]]
5371 ; SI: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF
5372 ; SI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[OR]](s16), [[OR1]](s16)
5373 ; SI: [[BUILD_VECTOR1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[OR2]](s16), [[DEF]](s16)
5374 ; SI: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR]](<2 x s16>), [[BUILD_VECTOR1]](<2 x s16>)
5375 ; SI: [[EXTRACT:%[0-9]+]]:_(<3 x s16>) = G_EXTRACT [[CONCAT_VECTORS]](<4 x s16>), 0
5376 ; SI: [[DEF1:%[0-9]+]]:_(<4 x s16>) = G_IMPLICIT_DEF
5377 ; SI: [[INSERT:%[0-9]+]]:_(<4 x s16>) = G_INSERT [[DEF1]], [[EXTRACT]](<3 x s16>), 0
5378 ; SI: $vgpr0_vgpr1 = COPY [[INSERT]](<4 x s16>)
5379 ; CI-LABEL: name: test_load_private_v3s16_align1
5380 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
5381 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
5382 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
5383 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
5384 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
5385 ; CI: [[C1:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
5386 ; CI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
5387 ; CI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C1]]
5388 ; CI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
5389 ; CI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
5390 ; CI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
5391 ; CI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C3]]
5392 ; CI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
5393 ; CI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[SHL]](s32)
5394 ; CI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[TRUNC1]]
5395 ; CI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
5396 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
5397 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
5398 ; CI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
5399 ; CI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
5400 ; CI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
5401 ; CI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C1]]
5402 ; CI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[C2]](s32)
5403 ; CI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
5404 ; CI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C3]]
5405 ; CI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[COPY2]](s32)
5406 ; CI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[SHL1]](s32)
5407 ; CI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[TRUNC3]]
5408 ; CI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
5409 ; CI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C5]](s32)
5410 ; CI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 5)
5411 ; CI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
5412 ; CI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 5)
5413 ; CI: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
5414 ; CI: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C1]]
5415 ; CI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[C2]](s32)
5416 ; CI: [[COPY5:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
5417 ; CI: [[AND5:%[0-9]+]]:_(s32) = G_AND [[COPY5]], [[C3]]
5418 ; CI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[AND5]], [[COPY4]](s32)
5419 ; CI: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[SHL2]](s32)
5420 ; CI: [[OR2:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[TRUNC5]]
5421 ; CI: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF
5422 ; CI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[OR]](s16), [[OR1]](s16)
5423 ; CI: [[BUILD_VECTOR1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[OR2]](s16), [[DEF]](s16)
5424 ; CI: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR]](<2 x s16>), [[BUILD_VECTOR1]](<2 x s16>)
5425 ; CI: [[EXTRACT:%[0-9]+]]:_(<3 x s16>) = G_EXTRACT [[CONCAT_VECTORS]](<4 x s16>), 0
5426 ; CI: [[DEF1:%[0-9]+]]:_(<4 x s16>) = G_IMPLICIT_DEF
5427 ; CI: [[INSERT:%[0-9]+]]:_(<4 x s16>) = G_INSERT [[DEF1]], [[EXTRACT]](<3 x s16>), 0
5428 ; CI: $vgpr0_vgpr1 = COPY [[INSERT]](<4 x s16>)
5429 ; VI-LABEL: name: test_load_private_v3s16_align1
5430 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
5431 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
5432 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
5433 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
5434 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
5435 ; VI: [[C1:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
5436 ; VI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
5437 ; VI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C1]]
5438 ; VI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
5439 ; VI: [[AND1:%[0-9]+]]:_(s16) = G_AND [[TRUNC1]], [[C1]]
5440 ; VI: [[C2:%[0-9]+]]:_(s16) = G_CONSTANT i16 8
5441 ; VI: [[SHL:%[0-9]+]]:_(s16) = G_SHL [[AND1]], [[C2]](s16)
5442 ; VI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[SHL]]
5443 ; VI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
5444 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
5445 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
5446 ; VI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
5447 ; VI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
5448 ; VI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
5449 ; VI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C1]]
5450 ; VI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD3]](s32)
5451 ; VI: [[AND3:%[0-9]+]]:_(s16) = G_AND [[TRUNC3]], [[C1]]
5452 ; VI: [[SHL1:%[0-9]+]]:_(s16) = G_SHL [[AND3]], [[C2]](s16)
5453 ; VI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[SHL1]]
5454 ; VI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
5455 ; VI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
5456 ; VI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 5)
5457 ; VI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
5458 ; VI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 5)
5459 ; VI: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
5460 ; VI: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C1]]
5461 ; VI: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD5]](s32)
5462 ; VI: [[AND5:%[0-9]+]]:_(s16) = G_AND [[TRUNC5]], [[C1]]
5463 ; VI: [[SHL2:%[0-9]+]]:_(s16) = G_SHL [[AND5]], [[C2]](s16)
5464 ; VI: [[OR2:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[SHL2]]
5465 ; VI: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF
5466 ; VI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[OR]](s16), [[OR1]](s16)
5467 ; VI: [[BUILD_VECTOR1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[OR2]](s16), [[DEF]](s16)
5468 ; VI: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR]](<2 x s16>), [[BUILD_VECTOR1]](<2 x s16>)
5469 ; VI: [[EXTRACT:%[0-9]+]]:_(<3 x s16>) = G_EXTRACT [[CONCAT_VECTORS]](<4 x s16>), 0
5470 ; VI: [[DEF1:%[0-9]+]]:_(<4 x s16>) = G_IMPLICIT_DEF
5471 ; VI: [[INSERT:%[0-9]+]]:_(<4 x s16>) = G_INSERT [[DEF1]], [[EXTRACT]](<3 x s16>), 0
5472 ; VI: $vgpr0_vgpr1 = COPY [[INSERT]](<4 x s16>)
5473 ; GFX9-LABEL: name: test_load_private_v3s16_align1
5474 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
5475 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
5476 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
5477 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
5478 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
5479 ; GFX9: [[C1:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
5480 ; GFX9: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
5481 ; GFX9: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C1]]
5482 ; GFX9: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
5483 ; GFX9: [[AND1:%[0-9]+]]:_(s16) = G_AND [[TRUNC1]], [[C1]]
5484 ; GFX9: [[C2:%[0-9]+]]:_(s16) = G_CONSTANT i16 8
5485 ; GFX9: [[SHL:%[0-9]+]]:_(s16) = G_SHL [[AND1]], [[C2]](s16)
5486 ; GFX9: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[SHL]]
5487 ; GFX9: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
5488 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
5489 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
5490 ; GFX9: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
5491 ; GFX9: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
5492 ; GFX9: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
5493 ; GFX9: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C1]]
5494 ; GFX9: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD3]](s32)
5495 ; GFX9: [[AND3:%[0-9]+]]:_(s16) = G_AND [[TRUNC3]], [[C1]]
5496 ; GFX9: [[SHL1:%[0-9]+]]:_(s16) = G_SHL [[AND3]], [[C2]](s16)
5497 ; GFX9: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[SHL1]]
5498 ; GFX9: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
5499 ; GFX9: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
5500 ; GFX9: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 5)
5501 ; GFX9: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
5502 ; GFX9: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 5)
5503 ; GFX9: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
5504 ; GFX9: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C1]]
5505 ; GFX9: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD5]](s32)
5506 ; GFX9: [[AND5:%[0-9]+]]:_(s16) = G_AND [[TRUNC5]], [[C1]]
5507 ; GFX9: [[SHL2:%[0-9]+]]:_(s16) = G_SHL [[AND5]], [[C2]](s16)
5508 ; GFX9: [[OR2:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[SHL2]]
5509 ; GFX9: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF
5510 ; GFX9: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[OR]](s16), [[OR1]](s16)
5511 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[OR2]](s16), [[DEF]](s16)
5512 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR]](<2 x s16>), [[BUILD_VECTOR1]](<2 x s16>)
5513 ; GFX9: [[EXTRACT:%[0-9]+]]:_(<3 x s16>) = G_EXTRACT [[CONCAT_VECTORS]](<4 x s16>), 0
5514 ; GFX9: [[DEF1:%[0-9]+]]:_(<4 x s16>) = G_IMPLICIT_DEF
5515 ; GFX9: [[INSERT:%[0-9]+]]:_(<4 x s16>) = G_INSERT [[DEF1]], [[EXTRACT]](<3 x s16>), 0
5516 ; GFX9: $vgpr0_vgpr1 = COPY [[INSERT]](<4 x s16>)
5517 %0:_(p5) = COPY $vgpr0
5518 %1:_(<3 x s16>) = G_LOAD %0 :: (load 6, align 1, addrspace 5)
5519 %2:_(<4 x s16>) = G_IMPLICIT_DEF
5520 %3:_(<4 x s16>) = G_INSERT %2, %1, 0
5521 $vgpr0_vgpr1 = COPY %3
5525 name: test_load_private_v4s16_align8
5529 ; SI-LABEL: name: test_load_private_v4s16_align8
5530 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
5531 ; SI: [[LOAD:%[0-9]+]]:_(<2 x s16>) = G_LOAD [[COPY]](p5) :: (load 4, align 8, addrspace 5)
5532 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
5533 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
5534 ; SI: [[LOAD1:%[0-9]+]]:_(<2 x s16>) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
5535 ; SI: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[LOAD]](<2 x s16>), [[LOAD1]](<2 x s16>)
5536 ; SI: $vgpr0_vgpr1 = COPY [[CONCAT_VECTORS]](<4 x s16>)
5537 ; CI-LABEL: name: test_load_private_v4s16_align8
5538 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
5539 ; CI: [[LOAD:%[0-9]+]]:_(<2 x s16>) = G_LOAD [[COPY]](p5) :: (load 4, align 8, addrspace 5)
5540 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
5541 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
5542 ; CI: [[LOAD1:%[0-9]+]]:_(<2 x s16>) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
5543 ; CI: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[LOAD]](<2 x s16>), [[LOAD1]](<2 x s16>)
5544 ; CI: $vgpr0_vgpr1 = COPY [[CONCAT_VECTORS]](<4 x s16>)
5545 ; VI-LABEL: name: test_load_private_v4s16_align8
5546 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
5547 ; VI: [[LOAD:%[0-9]+]]:_(<2 x s16>) = G_LOAD [[COPY]](p5) :: (load 4, align 8, addrspace 5)
5548 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
5549 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
5550 ; VI: [[LOAD1:%[0-9]+]]:_(<2 x s16>) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
5551 ; VI: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[LOAD]](<2 x s16>), [[LOAD1]](<2 x s16>)
5552 ; VI: $vgpr0_vgpr1 = COPY [[CONCAT_VECTORS]](<4 x s16>)
5553 ; GFX9-LABEL: name: test_load_private_v4s16_align8
5554 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
5555 ; GFX9: [[LOAD:%[0-9]+]]:_(<2 x s16>) = G_LOAD [[COPY]](p5) :: (load 4, align 8, addrspace 5)
5556 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
5557 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
5558 ; GFX9: [[LOAD1:%[0-9]+]]:_(<2 x s16>) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
5559 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[LOAD]](<2 x s16>), [[LOAD1]](<2 x s16>)
5560 ; GFX9: $vgpr0_vgpr1 = COPY [[CONCAT_VECTORS]](<4 x s16>)
5561 %0:_(p5) = COPY $vgpr0
5562 %1:_(<4 x s16>) = G_LOAD %0 :: (load 8, align 8, addrspace 5)
5563 $vgpr0_vgpr1 = COPY %1
5567 name: test_load_private_v4s16_align4
5572 ; SI-LABEL: name: test_load_private_v4s16_align4
5573 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
5574 ; SI: [[LOAD:%[0-9]+]]:_(<2 x s16>) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
5575 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
5576 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
5577 ; SI: [[LOAD1:%[0-9]+]]:_(<2 x s16>) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
5578 ; SI: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[LOAD]](<2 x s16>), [[LOAD1]](<2 x s16>)
5579 ; SI: $vgpr0_vgpr1 = COPY [[CONCAT_VECTORS]](<4 x s16>)
5580 ; CI-LABEL: name: test_load_private_v4s16_align4
5581 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
5582 ; CI: [[LOAD:%[0-9]+]]:_(<2 x s16>) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
5583 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
5584 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
5585 ; CI: [[LOAD1:%[0-9]+]]:_(<2 x s16>) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
5586 ; CI: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[LOAD]](<2 x s16>), [[LOAD1]](<2 x s16>)
5587 ; CI: $vgpr0_vgpr1 = COPY [[CONCAT_VECTORS]](<4 x s16>)
5588 ; VI-LABEL: name: test_load_private_v4s16_align4
5589 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
5590 ; VI: [[LOAD:%[0-9]+]]:_(<2 x s16>) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
5591 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
5592 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
5593 ; VI: [[LOAD1:%[0-9]+]]:_(<2 x s16>) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
5594 ; VI: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[LOAD]](<2 x s16>), [[LOAD1]](<2 x s16>)
5595 ; VI: $vgpr0_vgpr1 = COPY [[CONCAT_VECTORS]](<4 x s16>)
5596 ; GFX9-LABEL: name: test_load_private_v4s16_align4
5597 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
5598 ; GFX9: [[LOAD:%[0-9]+]]:_(<2 x s16>) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
5599 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
5600 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
5601 ; GFX9: [[LOAD1:%[0-9]+]]:_(<2 x s16>) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
5602 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[LOAD]](<2 x s16>), [[LOAD1]](<2 x s16>)
5603 ; GFX9: $vgpr0_vgpr1 = COPY [[CONCAT_VECTORS]](<4 x s16>)
5604 %0:_(p5) = COPY $vgpr0
5605 %1:_(<4 x s16>) = G_LOAD %0 :: (load 8, align 4, addrspace 5)
5606 $vgpr0_vgpr1 = COPY %1
5610 name: test_load_private_v4s16_align2
5614 ; SI-LABEL: name: test_load_private_v4s16_align2
5615 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
5616 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
5617 ; SI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
5618 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
5619 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
5620 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
5621 ; SI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
5622 ; SI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)
5623 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
5624 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
5625 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 2, addrspace 5)
5626 ; SI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
5627 ; SI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
5628 ; SI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 2, addrspace 5)
5629 ; SI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD3]](s32)
5630 ; SI: [[BUILD_VECTOR1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)
5631 ; SI: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR]](<2 x s16>), [[BUILD_VECTOR1]](<2 x s16>)
5632 ; SI: $vgpr0_vgpr1 = COPY [[CONCAT_VECTORS]](<4 x s16>)
5633 ; CI-LABEL: name: test_load_private_v4s16_align2
5634 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
5635 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
5636 ; CI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
5637 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
5638 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
5639 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
5640 ; CI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
5641 ; CI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)
5642 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
5643 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
5644 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 2, addrspace 5)
5645 ; CI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
5646 ; CI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
5647 ; CI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 2, addrspace 5)
5648 ; CI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD3]](s32)
5649 ; CI: [[BUILD_VECTOR1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)
5650 ; CI: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR]](<2 x s16>), [[BUILD_VECTOR1]](<2 x s16>)
5651 ; CI: $vgpr0_vgpr1 = COPY [[CONCAT_VECTORS]](<4 x s16>)
5652 ; VI-LABEL: name: test_load_private_v4s16_align2
5653 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
5654 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
5655 ; VI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
5656 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
5657 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
5658 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
5659 ; VI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
5660 ; VI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)
5661 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
5662 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
5663 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 2, addrspace 5)
5664 ; VI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
5665 ; VI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
5666 ; VI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 2, addrspace 5)
5667 ; VI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD3]](s32)
5668 ; VI: [[BUILD_VECTOR1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)
5669 ; VI: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR]](<2 x s16>), [[BUILD_VECTOR1]](<2 x s16>)
5670 ; VI: $vgpr0_vgpr1 = COPY [[CONCAT_VECTORS]](<4 x s16>)
5671 ; GFX9-LABEL: name: test_load_private_v4s16_align2
5672 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
5673 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
5674 ; GFX9: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
5675 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
5676 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
5677 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
5678 ; GFX9: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
5679 ; GFX9: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)
5680 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
5681 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
5682 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 2, addrspace 5)
5683 ; GFX9: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
5684 ; GFX9: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
5685 ; GFX9: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 2, addrspace 5)
5686 ; GFX9: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD3]](s32)
5687 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)
5688 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR]](<2 x s16>), [[BUILD_VECTOR1]](<2 x s16>)
5689 ; GFX9: $vgpr0_vgpr1 = COPY [[CONCAT_VECTORS]](<4 x s16>)
5690 %0:_(p5) = COPY $vgpr0
5691 %1:_(<4 x s16>) = G_LOAD %0 :: (load 8, align 2, addrspace 5)
5692 $vgpr0_vgpr1 = COPY %1
5696 name: test_load_private_v4s16_align1
5701 ; SI-LABEL: name: test_load_private_v4s16_align1
5702 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
5703 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
5704 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
5705 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
5706 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
5707 ; SI: [[C1:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
5708 ; SI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
5709 ; SI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C1]]
5710 ; SI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
5711 ; SI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
5712 ; SI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
5713 ; SI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C3]]
5714 ; SI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
5715 ; SI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[SHL]](s32)
5716 ; SI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[TRUNC1]]
5717 ; SI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
5718 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
5719 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
5720 ; SI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
5721 ; SI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
5722 ; SI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
5723 ; SI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C1]]
5724 ; SI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[C2]](s32)
5725 ; SI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
5726 ; SI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C3]]
5727 ; SI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[COPY2]](s32)
5728 ; SI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[SHL1]](s32)
5729 ; SI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[TRUNC3]]
5730 ; SI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[OR]](s16), [[OR1]](s16)
5731 ; SI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
5732 ; SI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C5]](s32)
5733 ; SI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 5)
5734 ; SI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
5735 ; SI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 5)
5736 ; SI: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
5737 ; SI: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C1]]
5738 ; SI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[C2]](s32)
5739 ; SI: [[COPY5:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
5740 ; SI: [[AND5:%[0-9]+]]:_(s32) = G_AND [[COPY5]], [[C3]]
5741 ; SI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[AND5]], [[COPY4]](s32)
5742 ; SI: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[SHL2]](s32)
5743 ; SI: [[OR2:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[TRUNC5]]
5744 ; SI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C4]](s32)
5745 ; SI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 5)
5746 ; SI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP5]], [[C]](s32)
5747 ; SI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 5)
5748 ; SI: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
5749 ; SI: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C1]]
5750 ; SI: [[COPY6:%[0-9]+]]:_(s32) = COPY [[C2]](s32)
5751 ; SI: [[COPY7:%[0-9]+]]:_(s32) = COPY [[LOAD7]](s32)
5752 ; SI: [[AND7:%[0-9]+]]:_(s32) = G_AND [[COPY7]], [[C3]]
5753 ; SI: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[AND7]], [[COPY6]](s32)
5754 ; SI: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[SHL3]](s32)
5755 ; SI: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[TRUNC7]]
5756 ; SI: [[BUILD_VECTOR1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[OR2]](s16), [[OR3]](s16)
5757 ; SI: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR]](<2 x s16>), [[BUILD_VECTOR1]](<2 x s16>)
5758 ; SI: $vgpr0_vgpr1 = COPY [[CONCAT_VECTORS]](<4 x s16>)
5759 ; CI-LABEL: name: test_load_private_v4s16_align1
5760 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
5761 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
5762 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
5763 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
5764 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
5765 ; CI: [[C1:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
5766 ; CI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
5767 ; CI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C1]]
5768 ; CI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
5769 ; CI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
5770 ; CI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
5771 ; CI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C3]]
5772 ; CI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
5773 ; CI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[SHL]](s32)
5774 ; CI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[TRUNC1]]
5775 ; CI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
5776 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
5777 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
5778 ; CI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
5779 ; CI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
5780 ; CI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
5781 ; CI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C1]]
5782 ; CI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[C2]](s32)
5783 ; CI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
5784 ; CI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C3]]
5785 ; CI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[COPY2]](s32)
5786 ; CI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[SHL1]](s32)
5787 ; CI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[TRUNC3]]
5788 ; CI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[OR]](s16), [[OR1]](s16)
5789 ; CI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
5790 ; CI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C5]](s32)
5791 ; CI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 5)
5792 ; CI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
5793 ; CI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 5)
5794 ; CI: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
5795 ; CI: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C1]]
5796 ; CI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[C2]](s32)
5797 ; CI: [[COPY5:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
5798 ; CI: [[AND5:%[0-9]+]]:_(s32) = G_AND [[COPY5]], [[C3]]
5799 ; CI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[AND5]], [[COPY4]](s32)
5800 ; CI: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[SHL2]](s32)
5801 ; CI: [[OR2:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[TRUNC5]]
5802 ; CI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C4]](s32)
5803 ; CI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 5)
5804 ; CI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP5]], [[C]](s32)
5805 ; CI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 5)
5806 ; CI: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
5807 ; CI: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C1]]
5808 ; CI: [[COPY6:%[0-9]+]]:_(s32) = COPY [[C2]](s32)
5809 ; CI: [[COPY7:%[0-9]+]]:_(s32) = COPY [[LOAD7]](s32)
5810 ; CI: [[AND7:%[0-9]+]]:_(s32) = G_AND [[COPY7]], [[C3]]
5811 ; CI: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[AND7]], [[COPY6]](s32)
5812 ; CI: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[SHL3]](s32)
5813 ; CI: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[TRUNC7]]
5814 ; CI: [[BUILD_VECTOR1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[OR2]](s16), [[OR3]](s16)
5815 ; CI: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR]](<2 x s16>), [[BUILD_VECTOR1]](<2 x s16>)
5816 ; CI: $vgpr0_vgpr1 = COPY [[CONCAT_VECTORS]](<4 x s16>)
5817 ; VI-LABEL: name: test_load_private_v4s16_align1
5818 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
5819 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
5820 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
5821 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
5822 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
5823 ; VI: [[C1:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
5824 ; VI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
5825 ; VI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C1]]
5826 ; VI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
5827 ; VI: [[AND1:%[0-9]+]]:_(s16) = G_AND [[TRUNC1]], [[C1]]
5828 ; VI: [[C2:%[0-9]+]]:_(s16) = G_CONSTANT i16 8
5829 ; VI: [[SHL:%[0-9]+]]:_(s16) = G_SHL [[AND1]], [[C2]](s16)
5830 ; VI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[SHL]]
5831 ; VI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
5832 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
5833 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
5834 ; VI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
5835 ; VI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
5836 ; VI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
5837 ; VI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C1]]
5838 ; VI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD3]](s32)
5839 ; VI: [[AND3:%[0-9]+]]:_(s16) = G_AND [[TRUNC3]], [[C1]]
5840 ; VI: [[SHL1:%[0-9]+]]:_(s16) = G_SHL [[AND3]], [[C2]](s16)
5841 ; VI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[SHL1]]
5842 ; VI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[OR]](s16), [[OR1]](s16)
5843 ; VI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
5844 ; VI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
5845 ; VI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 5)
5846 ; VI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
5847 ; VI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 5)
5848 ; VI: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
5849 ; VI: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C1]]
5850 ; VI: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD5]](s32)
5851 ; VI: [[AND5:%[0-9]+]]:_(s16) = G_AND [[TRUNC5]], [[C1]]
5852 ; VI: [[SHL2:%[0-9]+]]:_(s16) = G_SHL [[AND5]], [[C2]](s16)
5853 ; VI: [[OR2:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[SHL2]]
5854 ; VI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C3]](s32)
5855 ; VI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 5)
5856 ; VI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP5]], [[C]](s32)
5857 ; VI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 5)
5858 ; VI: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
5859 ; VI: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C1]]
5860 ; VI: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD7]](s32)
5861 ; VI: [[AND7:%[0-9]+]]:_(s16) = G_AND [[TRUNC7]], [[C1]]
5862 ; VI: [[SHL3:%[0-9]+]]:_(s16) = G_SHL [[AND7]], [[C2]](s16)
5863 ; VI: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[SHL3]]
5864 ; VI: [[BUILD_VECTOR1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[OR2]](s16), [[OR3]](s16)
5865 ; VI: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR]](<2 x s16>), [[BUILD_VECTOR1]](<2 x s16>)
5866 ; VI: $vgpr0_vgpr1 = COPY [[CONCAT_VECTORS]](<4 x s16>)
5867 ; GFX9-LABEL: name: test_load_private_v4s16_align1
5868 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
5869 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
5870 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
5871 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
5872 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
5873 ; GFX9: [[C1:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
5874 ; GFX9: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
5875 ; GFX9: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C1]]
5876 ; GFX9: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
5877 ; GFX9: [[AND1:%[0-9]+]]:_(s16) = G_AND [[TRUNC1]], [[C1]]
5878 ; GFX9: [[C2:%[0-9]+]]:_(s16) = G_CONSTANT i16 8
5879 ; GFX9: [[SHL:%[0-9]+]]:_(s16) = G_SHL [[AND1]], [[C2]](s16)
5880 ; GFX9: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[SHL]]
5881 ; GFX9: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
5882 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
5883 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
5884 ; GFX9: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
5885 ; GFX9: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
5886 ; GFX9: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
5887 ; GFX9: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C1]]
5888 ; GFX9: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD3]](s32)
5889 ; GFX9: [[AND3:%[0-9]+]]:_(s16) = G_AND [[TRUNC3]], [[C1]]
5890 ; GFX9: [[SHL1:%[0-9]+]]:_(s16) = G_SHL [[AND3]], [[C2]](s16)
5891 ; GFX9: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[SHL1]]
5892 ; GFX9: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[OR]](s16), [[OR1]](s16)
5893 ; GFX9: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
5894 ; GFX9: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
5895 ; GFX9: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 5)
5896 ; GFX9: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
5897 ; GFX9: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 5)
5898 ; GFX9: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
5899 ; GFX9: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C1]]
5900 ; GFX9: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD5]](s32)
5901 ; GFX9: [[AND5:%[0-9]+]]:_(s16) = G_AND [[TRUNC5]], [[C1]]
5902 ; GFX9: [[SHL2:%[0-9]+]]:_(s16) = G_SHL [[AND5]], [[C2]](s16)
5903 ; GFX9: [[OR2:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[SHL2]]
5904 ; GFX9: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C3]](s32)
5905 ; GFX9: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 5)
5906 ; GFX9: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP5]], [[C]](s32)
5907 ; GFX9: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 5)
5908 ; GFX9: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
5909 ; GFX9: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C1]]
5910 ; GFX9: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD7]](s32)
5911 ; GFX9: [[AND7:%[0-9]+]]:_(s16) = G_AND [[TRUNC7]], [[C1]]
5912 ; GFX9: [[SHL3:%[0-9]+]]:_(s16) = G_SHL [[AND7]], [[C2]](s16)
5913 ; GFX9: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[SHL3]]
5914 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[OR2]](s16), [[OR3]](s16)
5915 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR]](<2 x s16>), [[BUILD_VECTOR1]](<2 x s16>)
5916 ; GFX9: $vgpr0_vgpr1 = COPY [[CONCAT_VECTORS]](<4 x s16>)
5917 %0:_(p5) = COPY $vgpr0
5918 %1:_(<4 x s16>) = G_LOAD %0 :: (load 8, align 1, addrspace 5)
5919 $vgpr0_vgpr1 = COPY %1
5923 name: test_load_private_v2s32_align8
5928 ; SI-LABEL: name: test_load_private_v2s32_align8
5929 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
5930 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 8, addrspace 5)
5931 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
5932 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
5933 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
5934 ; SI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[LOAD]](s32), [[LOAD1]](s32)
5935 ; SI: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)
5936 ; CI-LABEL: name: test_load_private_v2s32_align8
5937 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
5938 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 8, addrspace 5)
5939 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
5940 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
5941 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
5942 ; CI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[LOAD]](s32), [[LOAD1]](s32)
5943 ; CI: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)
5944 ; VI-LABEL: name: test_load_private_v2s32_align8
5945 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
5946 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 8, addrspace 5)
5947 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
5948 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
5949 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
5950 ; VI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[LOAD]](s32), [[LOAD1]](s32)
5951 ; VI: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)
5952 ; GFX9-LABEL: name: test_load_private_v2s32_align8
5953 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
5954 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 8, addrspace 5)
5955 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
5956 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
5957 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
5958 ; GFX9: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[LOAD]](s32), [[LOAD1]](s32)
5959 ; GFX9: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)
5960 %0:_(p5) = COPY $vgpr0
5961 %1:_(<2 x s32>) = G_LOAD %0 :: (load 8, align 8, addrspace 5)
5962 $vgpr0_vgpr1 = COPY %1
5966 name: test_load_private_v2s32_align4
5971 ; SI-LABEL: name: test_load_private_v2s32_align4
5972 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
5973 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
5974 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
5975 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
5976 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
5977 ; SI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[LOAD]](s32), [[LOAD1]](s32)
5978 ; SI: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)
5979 ; CI-LABEL: name: test_load_private_v2s32_align4
5980 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
5981 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
5982 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
5983 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
5984 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
5985 ; CI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[LOAD]](s32), [[LOAD1]](s32)
5986 ; CI: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)
5987 ; VI-LABEL: name: test_load_private_v2s32_align4
5988 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
5989 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
5990 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
5991 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
5992 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
5993 ; VI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[LOAD]](s32), [[LOAD1]](s32)
5994 ; VI: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)
5995 ; GFX9-LABEL: name: test_load_private_v2s32_align4
5996 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
5997 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
5998 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
5999 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
6000 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
6001 ; GFX9: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[LOAD]](s32), [[LOAD1]](s32)
6002 ; GFX9: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)
6003 %0:_(p5) = COPY $vgpr0
6004 %1:_(<2 x s32>) = G_LOAD %0 :: (load 8, align 4, addrspace 5)
6005 $vgpr0_vgpr1 = COPY %1
6009 name: test_load_private_v2s32_align1
6014 ; SI-LABEL: name: test_load_private_v2s32_align1
6015 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
6016 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
6017 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
6018 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
6019 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
6020 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
6021 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
6022 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
6023 ; SI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
6024 ; SI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
6025 ; SI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
6026 ; SI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
6027 ; SI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
6028 ; SI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
6029 ; SI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
6030 ; SI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
6031 ; SI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
6032 ; SI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
6033 ; SI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C5]]
6034 ; SI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[COPY1]](s32)
6035 ; SI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[SHL]](s32)
6036 ; SI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[TRUNC1]]
6037 ; SI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
6038 ; SI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
6039 ; SI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
6040 ; SI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C5]]
6041 ; SI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[C4]](s32)
6042 ; SI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[SHL1]](s32)
6043 ; SI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[TRUNC3]]
6044 ; SI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
6045 ; SI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
6046 ; SI: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
6047 ; SI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C6]](s32)
6048 ; SI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
6049 ; SI: [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
6050 ; SI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C7]](s32)
6051 ; SI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 5)
6052 ; SI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
6053 ; SI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 5)
6054 ; SI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
6055 ; SI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 5)
6056 ; SI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
6057 ; SI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 5)
6058 ; SI: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
6059 ; SI: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
6060 ; SI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
6061 ; SI: [[COPY5:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
6062 ; SI: [[AND5:%[0-9]+]]:_(s32) = G_AND [[COPY5]], [[C5]]
6063 ; SI: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[AND5]], [[COPY4]](s32)
6064 ; SI: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[SHL3]](s32)
6065 ; SI: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[TRUNC5]]
6066 ; SI: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
6067 ; SI: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
6068 ; SI: [[COPY6:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
6069 ; SI: [[COPY7:%[0-9]+]]:_(s32) = COPY [[LOAD7]](s32)
6070 ; SI: [[AND7:%[0-9]+]]:_(s32) = G_AND [[COPY7]], [[C5]]
6071 ; SI: [[SHL4:%[0-9]+]]:_(s32) = G_SHL [[AND7]], [[COPY6]](s32)
6072 ; SI: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[SHL4]](s32)
6073 ; SI: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[TRUNC7]]
6074 ; SI: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
6075 ; SI: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
6076 ; SI: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C6]](s32)
6077 ; SI: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
6078 ; SI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[OR2]](s32), [[OR5]](s32)
6079 ; SI: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)
6080 ; CI-LABEL: name: test_load_private_v2s32_align1
6081 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
6082 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
6083 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
6084 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
6085 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
6086 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
6087 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
6088 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
6089 ; CI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
6090 ; CI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
6091 ; CI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
6092 ; CI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
6093 ; CI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
6094 ; CI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
6095 ; CI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
6096 ; CI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
6097 ; CI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
6098 ; CI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
6099 ; CI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C5]]
6100 ; CI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[COPY1]](s32)
6101 ; CI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[SHL]](s32)
6102 ; CI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[TRUNC1]]
6103 ; CI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
6104 ; CI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
6105 ; CI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
6106 ; CI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C5]]
6107 ; CI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[C4]](s32)
6108 ; CI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[SHL1]](s32)
6109 ; CI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[TRUNC3]]
6110 ; CI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
6111 ; CI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
6112 ; CI: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
6113 ; CI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C6]](s32)
6114 ; CI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
6115 ; CI: [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
6116 ; CI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C7]](s32)
6117 ; CI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 5)
6118 ; CI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
6119 ; CI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 5)
6120 ; CI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
6121 ; CI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 5)
6122 ; CI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
6123 ; CI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 5)
6124 ; CI: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
6125 ; CI: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
6126 ; CI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
6127 ; CI: [[COPY5:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
6128 ; CI: [[AND5:%[0-9]+]]:_(s32) = G_AND [[COPY5]], [[C5]]
6129 ; CI: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[AND5]], [[COPY4]](s32)
6130 ; CI: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[SHL3]](s32)
6131 ; CI: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[TRUNC5]]
6132 ; CI: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
6133 ; CI: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
6134 ; CI: [[COPY6:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
6135 ; CI: [[COPY7:%[0-9]+]]:_(s32) = COPY [[LOAD7]](s32)
6136 ; CI: [[AND7:%[0-9]+]]:_(s32) = G_AND [[COPY7]], [[C5]]
6137 ; CI: [[SHL4:%[0-9]+]]:_(s32) = G_SHL [[AND7]], [[COPY6]](s32)
6138 ; CI: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[SHL4]](s32)
6139 ; CI: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[TRUNC7]]
6140 ; CI: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
6141 ; CI: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
6142 ; CI: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C6]](s32)
6143 ; CI: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
6144 ; CI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[OR2]](s32), [[OR5]](s32)
6145 ; CI: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)
6146 ; VI-LABEL: name: test_load_private_v2s32_align1
6147 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
6148 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
6149 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
6150 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
6151 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
6152 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
6153 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
6154 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
6155 ; VI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
6156 ; VI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
6157 ; VI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
6158 ; VI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
6159 ; VI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
6160 ; VI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
6161 ; VI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
6162 ; VI: [[AND1:%[0-9]+]]:_(s16) = G_AND [[TRUNC1]], [[C3]]
6163 ; VI: [[C4:%[0-9]+]]:_(s16) = G_CONSTANT i16 8
6164 ; VI: [[SHL:%[0-9]+]]:_(s16) = G_SHL [[AND1]], [[C4]](s16)
6165 ; VI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[SHL]]
6166 ; VI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
6167 ; VI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
6168 ; VI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD3]](s32)
6169 ; VI: [[AND3:%[0-9]+]]:_(s16) = G_AND [[TRUNC3]], [[C3]]
6170 ; VI: [[SHL1:%[0-9]+]]:_(s16) = G_SHL [[AND3]], [[C4]](s16)
6171 ; VI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[SHL1]]
6172 ; VI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
6173 ; VI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
6174 ; VI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
6175 ; VI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C5]](s32)
6176 ; VI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
6177 ; VI: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
6178 ; VI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C6]](s32)
6179 ; VI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 5)
6180 ; VI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
6181 ; VI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 5)
6182 ; VI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
6183 ; VI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 5)
6184 ; VI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
6185 ; VI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 5)
6186 ; VI: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
6187 ; VI: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
6188 ; VI: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD5]](s32)
6189 ; VI: [[AND5:%[0-9]+]]:_(s16) = G_AND [[TRUNC5]], [[C3]]
6190 ; VI: [[SHL3:%[0-9]+]]:_(s16) = G_SHL [[AND5]], [[C4]](s16)
6191 ; VI: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[SHL3]]
6192 ; VI: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
6193 ; VI: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
6194 ; VI: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD7]](s32)
6195 ; VI: [[AND7:%[0-9]+]]:_(s16) = G_AND [[TRUNC7]], [[C3]]
6196 ; VI: [[SHL4:%[0-9]+]]:_(s16) = G_SHL [[AND7]], [[C4]](s16)
6197 ; VI: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[SHL4]]
6198 ; VI: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
6199 ; VI: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
6200 ; VI: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C5]](s32)
6201 ; VI: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
6202 ; VI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[OR2]](s32), [[OR5]](s32)
6203 ; VI: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)
6204 ; GFX9-LABEL: name: test_load_private_v2s32_align1
6205 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
6206 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
6207 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
6208 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
6209 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
6210 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
6211 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
6212 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
6213 ; GFX9: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
6214 ; GFX9: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
6215 ; GFX9: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
6216 ; GFX9: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
6217 ; GFX9: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
6218 ; GFX9: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
6219 ; GFX9: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
6220 ; GFX9: [[AND1:%[0-9]+]]:_(s16) = G_AND [[TRUNC1]], [[C3]]
6221 ; GFX9: [[C4:%[0-9]+]]:_(s16) = G_CONSTANT i16 8
6222 ; GFX9: [[SHL:%[0-9]+]]:_(s16) = G_SHL [[AND1]], [[C4]](s16)
6223 ; GFX9: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[SHL]]
6224 ; GFX9: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
6225 ; GFX9: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
6226 ; GFX9: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD3]](s32)
6227 ; GFX9: [[AND3:%[0-9]+]]:_(s16) = G_AND [[TRUNC3]], [[C3]]
6228 ; GFX9: [[SHL1:%[0-9]+]]:_(s16) = G_SHL [[AND3]], [[C4]](s16)
6229 ; GFX9: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[SHL1]]
6230 ; GFX9: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
6231 ; GFX9: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
6232 ; GFX9: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
6233 ; GFX9: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C5]](s32)
6234 ; GFX9: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
6235 ; GFX9: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
6236 ; GFX9: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C6]](s32)
6237 ; GFX9: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 5)
6238 ; GFX9: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
6239 ; GFX9: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 5)
6240 ; GFX9: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
6241 ; GFX9: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 5)
6242 ; GFX9: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
6243 ; GFX9: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 5)
6244 ; GFX9: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
6245 ; GFX9: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
6246 ; GFX9: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD5]](s32)
6247 ; GFX9: [[AND5:%[0-9]+]]:_(s16) = G_AND [[TRUNC5]], [[C3]]
6248 ; GFX9: [[SHL3:%[0-9]+]]:_(s16) = G_SHL [[AND5]], [[C4]](s16)
6249 ; GFX9: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[SHL3]]
6250 ; GFX9: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
6251 ; GFX9: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
6252 ; GFX9: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD7]](s32)
6253 ; GFX9: [[AND7:%[0-9]+]]:_(s16) = G_AND [[TRUNC7]], [[C3]]
6254 ; GFX9: [[SHL4:%[0-9]+]]:_(s16) = G_SHL [[AND7]], [[C4]](s16)
6255 ; GFX9: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[SHL4]]
6256 ; GFX9: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
6257 ; GFX9: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
6258 ; GFX9: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C5]](s32)
6259 ; GFX9: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
6260 ; GFX9: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[OR2]](s32), [[OR5]](s32)
6261 ; GFX9: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)
6262 %0:_(p5) = COPY $vgpr0
6263 %1:_(<2 x s32>) = G_LOAD %0 :: (load 8, align 1, addrspace 5)
6264 $vgpr0_vgpr1 = COPY %1
6268 name: test_load_private_v3s32_align16
6273 ; SI-LABEL: name: test_load_private_v3s32_align16
6274 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
6275 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 56)
6276 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
6277 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
6278 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 56)
6279 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
6280 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
6281 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 56)
6282 ; SI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
6283 ; SI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
6284 ; SI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 56)
6285 ; SI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
6286 ; SI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
6287 ; SI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
6288 ; SI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
6289 ; SI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
6290 ; SI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
6291 ; SI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
6292 ; SI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C5]]
6293 ; SI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[COPY1]](s32)
6294 ; SI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[SHL]](s32)
6295 ; SI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[TRUNC1]]
6296 ; SI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
6297 ; SI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
6298 ; SI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
6299 ; SI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
6300 ; SI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C5]]
6301 ; SI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[COPY3]](s32)
6302 ; SI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[SHL1]](s32)
6303 ; SI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[TRUNC3]]
6304 ; SI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
6305 ; SI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
6306 ; SI: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
6307 ; SI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C6]](s32)
6308 ; SI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
6309 ; SI: [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
6310 ; SI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C7]](s32)
6311 ; SI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 56)
6312 ; SI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
6313 ; SI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 56)
6314 ; SI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
6315 ; SI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 56)
6316 ; SI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
6317 ; SI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 56)
6318 ; SI: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
6319 ; SI: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
6320 ; SI: [[COPY5:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
6321 ; SI: [[COPY6:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
6322 ; SI: [[AND5:%[0-9]+]]:_(s32) = G_AND [[COPY6]], [[C5]]
6323 ; SI: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[AND5]], [[COPY5]](s32)
6324 ; SI: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[SHL3]](s32)
6325 ; SI: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[TRUNC5]]
6326 ; SI: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
6327 ; SI: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
6328 ; SI: [[COPY7:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
6329 ; SI: [[COPY8:%[0-9]+]]:_(s32) = COPY [[LOAD7]](s32)
6330 ; SI: [[AND7:%[0-9]+]]:_(s32) = G_AND [[COPY8]], [[C5]]
6331 ; SI: [[SHL4:%[0-9]+]]:_(s32) = G_SHL [[AND7]], [[COPY7]](s32)
6332 ; SI: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[SHL4]](s32)
6333 ; SI: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[TRUNC7]]
6334 ; SI: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
6335 ; SI: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
6336 ; SI: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C6]](s32)
6337 ; SI: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
6338 ; SI: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
6339 ; SI: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 1, addrspace 56)
6340 ; SI: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
6341 ; SI: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 1, addrspace 56)
6342 ; SI: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C1]](s32)
6343 ; SI: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 1, addrspace 56)
6344 ; SI: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C2]](s32)
6345 ; SI: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 1, addrspace 56)
6346 ; SI: [[TRUNC8:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD8]](s32)
6347 ; SI: [[AND8:%[0-9]+]]:_(s16) = G_AND [[TRUNC8]], [[C3]]
6348 ; SI: [[COPY9:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
6349 ; SI: [[COPY10:%[0-9]+]]:_(s32) = COPY [[LOAD9]](s32)
6350 ; SI: [[AND9:%[0-9]+]]:_(s32) = G_AND [[COPY10]], [[C5]]
6351 ; SI: [[SHL6:%[0-9]+]]:_(s32) = G_SHL [[AND9]], [[COPY9]](s32)
6352 ; SI: [[TRUNC9:%[0-9]+]]:_(s16) = G_TRUNC [[SHL6]](s32)
6353 ; SI: [[OR6:%[0-9]+]]:_(s16) = G_OR [[AND8]], [[TRUNC9]]
6354 ; SI: [[TRUNC10:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD10]](s32)
6355 ; SI: [[AND10:%[0-9]+]]:_(s16) = G_AND [[TRUNC10]], [[C3]]
6356 ; SI: [[COPY11:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
6357 ; SI: [[COPY12:%[0-9]+]]:_(s32) = COPY [[LOAD11]](s32)
6358 ; SI: [[AND11:%[0-9]+]]:_(s32) = G_AND [[COPY12]], [[C5]]
6359 ; SI: [[SHL7:%[0-9]+]]:_(s32) = G_SHL [[AND11]], [[COPY11]](s32)
6360 ; SI: [[TRUNC11:%[0-9]+]]:_(s16) = G_TRUNC [[SHL7]](s32)
6361 ; SI: [[OR7:%[0-9]+]]:_(s16) = G_OR [[AND10]], [[TRUNC11]]
6362 ; SI: [[ZEXT4:%[0-9]+]]:_(s32) = G_ZEXT [[OR6]](s16)
6363 ; SI: [[ZEXT5:%[0-9]+]]:_(s32) = G_ZEXT [[OR7]](s16)
6364 ; SI: [[SHL8:%[0-9]+]]:_(s32) = G_SHL [[ZEXT5]], [[C6]](s32)
6365 ; SI: [[OR8:%[0-9]+]]:_(s32) = G_OR [[ZEXT4]], [[SHL8]]
6366 ; SI: [[BUILD_VECTOR:%[0-9]+]]:_(<3 x s32>) = G_BUILD_VECTOR [[OR2]](s32), [[OR5]](s32), [[OR8]](s32)
6367 ; SI: $vgpr0_vgpr1_vgpr2 = COPY [[BUILD_VECTOR]](<3 x s32>)
6368 ; CI-LABEL: name: test_load_private_v3s32_align16
6369 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
6370 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 56)
6371 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
6372 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
6373 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 56)
6374 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
6375 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
6376 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 56)
6377 ; CI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
6378 ; CI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
6379 ; CI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 56)
6380 ; CI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
6381 ; CI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
6382 ; CI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
6383 ; CI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
6384 ; CI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
6385 ; CI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
6386 ; CI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
6387 ; CI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C5]]
6388 ; CI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[COPY1]](s32)
6389 ; CI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[SHL]](s32)
6390 ; CI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[TRUNC1]]
6391 ; CI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
6392 ; CI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
6393 ; CI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
6394 ; CI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
6395 ; CI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C5]]
6396 ; CI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[COPY3]](s32)
6397 ; CI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[SHL1]](s32)
6398 ; CI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[TRUNC3]]
6399 ; CI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
6400 ; CI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
6401 ; CI: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
6402 ; CI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C6]](s32)
6403 ; CI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
6404 ; CI: [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
6405 ; CI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C7]](s32)
6406 ; CI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 56)
6407 ; CI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
6408 ; CI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 56)
6409 ; CI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
6410 ; CI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 56)
6411 ; CI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
6412 ; CI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 56)
6413 ; CI: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
6414 ; CI: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
6415 ; CI: [[COPY5:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
6416 ; CI: [[COPY6:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
6417 ; CI: [[AND5:%[0-9]+]]:_(s32) = G_AND [[COPY6]], [[C5]]
6418 ; CI: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[AND5]], [[COPY5]](s32)
6419 ; CI: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[SHL3]](s32)
6420 ; CI: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[TRUNC5]]
6421 ; CI: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
6422 ; CI: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
6423 ; CI: [[COPY7:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
6424 ; CI: [[COPY8:%[0-9]+]]:_(s32) = COPY [[LOAD7]](s32)
6425 ; CI: [[AND7:%[0-9]+]]:_(s32) = G_AND [[COPY8]], [[C5]]
6426 ; CI: [[SHL4:%[0-9]+]]:_(s32) = G_SHL [[AND7]], [[COPY7]](s32)
6427 ; CI: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[SHL4]](s32)
6428 ; CI: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[TRUNC7]]
6429 ; CI: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
6430 ; CI: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
6431 ; CI: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C6]](s32)
6432 ; CI: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
6433 ; CI: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
6434 ; CI: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 1, addrspace 56)
6435 ; CI: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
6436 ; CI: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 1, addrspace 56)
6437 ; CI: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C1]](s32)
6438 ; CI: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 1, addrspace 56)
6439 ; CI: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C2]](s32)
6440 ; CI: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 1, addrspace 56)
6441 ; CI: [[TRUNC8:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD8]](s32)
6442 ; CI: [[AND8:%[0-9]+]]:_(s16) = G_AND [[TRUNC8]], [[C3]]
6443 ; CI: [[COPY9:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
6444 ; CI: [[COPY10:%[0-9]+]]:_(s32) = COPY [[LOAD9]](s32)
6445 ; CI: [[AND9:%[0-9]+]]:_(s32) = G_AND [[COPY10]], [[C5]]
6446 ; CI: [[SHL6:%[0-9]+]]:_(s32) = G_SHL [[AND9]], [[COPY9]](s32)
6447 ; CI: [[TRUNC9:%[0-9]+]]:_(s16) = G_TRUNC [[SHL6]](s32)
6448 ; CI: [[OR6:%[0-9]+]]:_(s16) = G_OR [[AND8]], [[TRUNC9]]
6449 ; CI: [[TRUNC10:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD10]](s32)
6450 ; CI: [[AND10:%[0-9]+]]:_(s16) = G_AND [[TRUNC10]], [[C3]]
6451 ; CI: [[COPY11:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
6452 ; CI: [[COPY12:%[0-9]+]]:_(s32) = COPY [[LOAD11]](s32)
6453 ; CI: [[AND11:%[0-9]+]]:_(s32) = G_AND [[COPY12]], [[C5]]
6454 ; CI: [[SHL7:%[0-9]+]]:_(s32) = G_SHL [[AND11]], [[COPY11]](s32)
6455 ; CI: [[TRUNC11:%[0-9]+]]:_(s16) = G_TRUNC [[SHL7]](s32)
6456 ; CI: [[OR7:%[0-9]+]]:_(s16) = G_OR [[AND10]], [[TRUNC11]]
6457 ; CI: [[ZEXT4:%[0-9]+]]:_(s32) = G_ZEXT [[OR6]](s16)
6458 ; CI: [[ZEXT5:%[0-9]+]]:_(s32) = G_ZEXT [[OR7]](s16)
6459 ; CI: [[SHL8:%[0-9]+]]:_(s32) = G_SHL [[ZEXT5]], [[C6]](s32)
6460 ; CI: [[OR8:%[0-9]+]]:_(s32) = G_OR [[ZEXT4]], [[SHL8]]
6461 ; CI: [[BUILD_VECTOR:%[0-9]+]]:_(<3 x s32>) = G_BUILD_VECTOR [[OR2]](s32), [[OR5]](s32), [[OR8]](s32)
6462 ; CI: $vgpr0_vgpr1_vgpr2 = COPY [[BUILD_VECTOR]](<3 x s32>)
6463 ; VI-LABEL: name: test_load_private_v3s32_align16
6464 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
6465 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 56)
6466 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
6467 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
6468 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 56)
6469 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
6470 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
6471 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 56)
6472 ; VI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
6473 ; VI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
6474 ; VI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 56)
6475 ; VI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
6476 ; VI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
6477 ; VI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
6478 ; VI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
6479 ; VI: [[AND1:%[0-9]+]]:_(s16) = G_AND [[TRUNC1]], [[C3]]
6480 ; VI: [[C4:%[0-9]+]]:_(s16) = G_CONSTANT i16 8
6481 ; VI: [[SHL:%[0-9]+]]:_(s16) = G_SHL [[AND1]], [[C4]](s16)
6482 ; VI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[SHL]]
6483 ; VI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
6484 ; VI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
6485 ; VI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD3]](s32)
6486 ; VI: [[AND3:%[0-9]+]]:_(s16) = G_AND [[TRUNC3]], [[C3]]
6487 ; VI: [[SHL1:%[0-9]+]]:_(s16) = G_SHL [[AND3]], [[C4]](s16)
6488 ; VI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[SHL1]]
6489 ; VI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
6490 ; VI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
6491 ; VI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
6492 ; VI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C5]](s32)
6493 ; VI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
6494 ; VI: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
6495 ; VI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C6]](s32)
6496 ; VI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 56)
6497 ; VI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
6498 ; VI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 56)
6499 ; VI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
6500 ; VI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 56)
6501 ; VI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
6502 ; VI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 56)
6503 ; VI: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
6504 ; VI: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
6505 ; VI: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD5]](s32)
6506 ; VI: [[AND5:%[0-9]+]]:_(s16) = G_AND [[TRUNC5]], [[C3]]
6507 ; VI: [[SHL3:%[0-9]+]]:_(s16) = G_SHL [[AND5]], [[C4]](s16)
6508 ; VI: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[SHL3]]
6509 ; VI: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
6510 ; VI: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
6511 ; VI: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD7]](s32)
6512 ; VI: [[AND7:%[0-9]+]]:_(s16) = G_AND [[TRUNC7]], [[C3]]
6513 ; VI: [[SHL4:%[0-9]+]]:_(s16) = G_SHL [[AND7]], [[C4]](s16)
6514 ; VI: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[SHL4]]
6515 ; VI: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
6516 ; VI: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
6517 ; VI: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C5]](s32)
6518 ; VI: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
6519 ; VI: [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
6520 ; VI: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C7]](s32)
6521 ; VI: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 1, addrspace 56)
6522 ; VI: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
6523 ; VI: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 1, addrspace 56)
6524 ; VI: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C1]](s32)
6525 ; VI: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 1, addrspace 56)
6526 ; VI: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C2]](s32)
6527 ; VI: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 1, addrspace 56)
6528 ; VI: [[TRUNC8:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD8]](s32)
6529 ; VI: [[AND8:%[0-9]+]]:_(s16) = G_AND [[TRUNC8]], [[C3]]
6530 ; VI: [[TRUNC9:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD9]](s32)
6531 ; VI: [[AND9:%[0-9]+]]:_(s16) = G_AND [[TRUNC9]], [[C3]]
6532 ; VI: [[SHL6:%[0-9]+]]:_(s16) = G_SHL [[AND9]], [[C4]](s16)
6533 ; VI: [[OR6:%[0-9]+]]:_(s16) = G_OR [[AND8]], [[SHL6]]
6534 ; VI: [[TRUNC10:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD10]](s32)
6535 ; VI: [[AND10:%[0-9]+]]:_(s16) = G_AND [[TRUNC10]], [[C3]]
6536 ; VI: [[TRUNC11:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD11]](s32)
6537 ; VI: [[AND11:%[0-9]+]]:_(s16) = G_AND [[TRUNC11]], [[C3]]
6538 ; VI: [[SHL7:%[0-9]+]]:_(s16) = G_SHL [[AND11]], [[C4]](s16)
6539 ; VI: [[OR7:%[0-9]+]]:_(s16) = G_OR [[AND10]], [[SHL7]]
6540 ; VI: [[ZEXT4:%[0-9]+]]:_(s32) = G_ZEXT [[OR6]](s16)
6541 ; VI: [[ZEXT5:%[0-9]+]]:_(s32) = G_ZEXT [[OR7]](s16)
6542 ; VI: [[SHL8:%[0-9]+]]:_(s32) = G_SHL [[ZEXT5]], [[C5]](s32)
6543 ; VI: [[OR8:%[0-9]+]]:_(s32) = G_OR [[ZEXT4]], [[SHL8]]
6544 ; VI: [[BUILD_VECTOR:%[0-9]+]]:_(<3 x s32>) = G_BUILD_VECTOR [[OR2]](s32), [[OR5]](s32), [[OR8]](s32)
6545 ; VI: $vgpr0_vgpr1_vgpr2 = COPY [[BUILD_VECTOR]](<3 x s32>)
6546 ; GFX9-LABEL: name: test_load_private_v3s32_align16
6547 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
6548 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 56)
6549 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
6550 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
6551 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 56)
6552 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
6553 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
6554 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 56)
6555 ; GFX9: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
6556 ; GFX9: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
6557 ; GFX9: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 56)
6558 ; GFX9: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
6559 ; GFX9: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
6560 ; GFX9: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
6561 ; GFX9: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
6562 ; GFX9: [[AND1:%[0-9]+]]:_(s16) = G_AND [[TRUNC1]], [[C3]]
6563 ; GFX9: [[C4:%[0-9]+]]:_(s16) = G_CONSTANT i16 8
6564 ; GFX9: [[SHL:%[0-9]+]]:_(s16) = G_SHL [[AND1]], [[C4]](s16)
6565 ; GFX9: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[SHL]]
6566 ; GFX9: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
6567 ; GFX9: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
6568 ; GFX9: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD3]](s32)
6569 ; GFX9: [[AND3:%[0-9]+]]:_(s16) = G_AND [[TRUNC3]], [[C3]]
6570 ; GFX9: [[SHL1:%[0-9]+]]:_(s16) = G_SHL [[AND3]], [[C4]](s16)
6571 ; GFX9: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[SHL1]]
6572 ; GFX9: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
6573 ; GFX9: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
6574 ; GFX9: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
6575 ; GFX9: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C5]](s32)
6576 ; GFX9: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
6577 ; GFX9: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
6578 ; GFX9: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C6]](s32)
6579 ; GFX9: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 56)
6580 ; GFX9: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
6581 ; GFX9: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 56)
6582 ; GFX9: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
6583 ; GFX9: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 56)
6584 ; GFX9: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
6585 ; GFX9: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 56)
6586 ; GFX9: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
6587 ; GFX9: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
6588 ; GFX9: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD5]](s32)
6589 ; GFX9: [[AND5:%[0-9]+]]:_(s16) = G_AND [[TRUNC5]], [[C3]]
6590 ; GFX9: [[SHL3:%[0-9]+]]:_(s16) = G_SHL [[AND5]], [[C4]](s16)
6591 ; GFX9: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[SHL3]]
6592 ; GFX9: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
6593 ; GFX9: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
6594 ; GFX9: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD7]](s32)
6595 ; GFX9: [[AND7:%[0-9]+]]:_(s16) = G_AND [[TRUNC7]], [[C3]]
6596 ; GFX9: [[SHL4:%[0-9]+]]:_(s16) = G_SHL [[AND7]], [[C4]](s16)
6597 ; GFX9: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[SHL4]]
6598 ; GFX9: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
6599 ; GFX9: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
6600 ; GFX9: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C5]](s32)
6601 ; GFX9: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
6602 ; GFX9: [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
6603 ; GFX9: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C7]](s32)
6604 ; GFX9: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 1, addrspace 56)
6605 ; GFX9: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
6606 ; GFX9: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 1, addrspace 56)
6607 ; GFX9: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C1]](s32)
6608 ; GFX9: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 1, addrspace 56)
6609 ; GFX9: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C2]](s32)
6610 ; GFX9: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 1, addrspace 56)
6611 ; GFX9: [[TRUNC8:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD8]](s32)
6612 ; GFX9: [[AND8:%[0-9]+]]:_(s16) = G_AND [[TRUNC8]], [[C3]]
6613 ; GFX9: [[TRUNC9:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD9]](s32)
6614 ; GFX9: [[AND9:%[0-9]+]]:_(s16) = G_AND [[TRUNC9]], [[C3]]
6615 ; GFX9: [[SHL6:%[0-9]+]]:_(s16) = G_SHL [[AND9]], [[C4]](s16)
6616 ; GFX9: [[OR6:%[0-9]+]]:_(s16) = G_OR [[AND8]], [[SHL6]]
6617 ; GFX9: [[TRUNC10:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD10]](s32)
6618 ; GFX9: [[AND10:%[0-9]+]]:_(s16) = G_AND [[TRUNC10]], [[C3]]
6619 ; GFX9: [[TRUNC11:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD11]](s32)
6620 ; GFX9: [[AND11:%[0-9]+]]:_(s16) = G_AND [[TRUNC11]], [[C3]]
6621 ; GFX9: [[SHL7:%[0-9]+]]:_(s16) = G_SHL [[AND11]], [[C4]](s16)
6622 ; GFX9: [[OR7:%[0-9]+]]:_(s16) = G_OR [[AND10]], [[SHL7]]
6623 ; GFX9: [[ZEXT4:%[0-9]+]]:_(s32) = G_ZEXT [[OR6]](s16)
6624 ; GFX9: [[ZEXT5:%[0-9]+]]:_(s32) = G_ZEXT [[OR7]](s16)
6625 ; GFX9: [[SHL8:%[0-9]+]]:_(s32) = G_SHL [[ZEXT5]], [[C5]](s32)
6626 ; GFX9: [[OR8:%[0-9]+]]:_(s32) = G_OR [[ZEXT4]], [[SHL8]]
6627 ; GFX9: [[BUILD_VECTOR:%[0-9]+]]:_(<3 x s32>) = G_BUILD_VECTOR [[OR2]](s32), [[OR5]](s32), [[OR8]](s32)
6628 ; GFX9: $vgpr0_vgpr1_vgpr2 = COPY [[BUILD_VECTOR]](<3 x s32>)
6629 %0:_(p5) = COPY $vgpr0
6630 %1:_(<3 x s32>) = G_LOAD %0 :: (load 12, align 1, addrspace 56)
6631 $vgpr0_vgpr1_vgpr2 = COPY %1
6635 name: test_load_private_v3s32_align4
6640 ; SI-LABEL: name: test_load_private_v3s32_align4
6641 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
6642 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
6643 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
6644 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
6645 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
6646 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
6647 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
6648 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, addrspace 5)
6649 ; SI: [[BUILD_VECTOR:%[0-9]+]]:_(<3 x s32>) = G_BUILD_VECTOR [[LOAD]](s32), [[LOAD1]](s32), [[LOAD2]](s32)
6650 ; SI: $vgpr0_vgpr1_vgpr2 = COPY [[BUILD_VECTOR]](<3 x s32>)
6651 ; CI-LABEL: name: test_load_private_v3s32_align4
6652 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
6653 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
6654 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
6655 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
6656 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
6657 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
6658 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
6659 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, addrspace 5)
6660 ; CI: [[BUILD_VECTOR:%[0-9]+]]:_(<3 x s32>) = G_BUILD_VECTOR [[LOAD]](s32), [[LOAD1]](s32), [[LOAD2]](s32)
6661 ; CI: $vgpr0_vgpr1_vgpr2 = COPY [[BUILD_VECTOR]](<3 x s32>)
6662 ; VI-LABEL: name: test_load_private_v3s32_align4
6663 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
6664 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
6665 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
6666 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
6667 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
6668 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
6669 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
6670 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, addrspace 5)
6671 ; VI: [[BUILD_VECTOR:%[0-9]+]]:_(<3 x s32>) = G_BUILD_VECTOR [[LOAD]](s32), [[LOAD1]](s32), [[LOAD2]](s32)
6672 ; VI: $vgpr0_vgpr1_vgpr2 = COPY [[BUILD_VECTOR]](<3 x s32>)
6673 ; GFX9-LABEL: name: test_load_private_v3s32_align4
6674 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
6675 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
6676 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
6677 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
6678 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
6679 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
6680 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
6681 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, addrspace 5)
6682 ; GFX9: [[BUILD_VECTOR:%[0-9]+]]:_(<3 x s32>) = G_BUILD_VECTOR [[LOAD]](s32), [[LOAD1]](s32), [[LOAD2]](s32)
6683 ; GFX9: $vgpr0_vgpr1_vgpr2 = COPY [[BUILD_VECTOR]](<3 x s32>)
6684 %0:_(p5) = COPY $vgpr0
6685 %1:_(<3 x s32>) = G_LOAD %0 :: (load 12, align 4, addrspace 5)
6686 $vgpr0_vgpr1_vgpr2 = COPY %1
6690 name: test_load_private_v4s32_align16
6695 ; SI-LABEL: name: test_load_private_v4s32_align16
6696 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
6697 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 56)
6698 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
6699 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
6700 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 56)
6701 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
6702 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
6703 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 56)
6704 ; SI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
6705 ; SI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
6706 ; SI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 56)
6707 ; SI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
6708 ; SI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
6709 ; SI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
6710 ; SI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
6711 ; SI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
6712 ; SI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
6713 ; SI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
6714 ; SI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C5]]
6715 ; SI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[COPY1]](s32)
6716 ; SI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[SHL]](s32)
6717 ; SI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[TRUNC1]]
6718 ; SI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
6719 ; SI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
6720 ; SI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
6721 ; SI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
6722 ; SI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C5]]
6723 ; SI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[COPY3]](s32)
6724 ; SI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[SHL1]](s32)
6725 ; SI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[TRUNC3]]
6726 ; SI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
6727 ; SI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
6728 ; SI: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
6729 ; SI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C6]](s32)
6730 ; SI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
6731 ; SI: [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
6732 ; SI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C7]](s32)
6733 ; SI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 56)
6734 ; SI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
6735 ; SI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 56)
6736 ; SI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
6737 ; SI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 56)
6738 ; SI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
6739 ; SI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 56)
6740 ; SI: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
6741 ; SI: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
6742 ; SI: [[COPY5:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
6743 ; SI: [[COPY6:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
6744 ; SI: [[AND5:%[0-9]+]]:_(s32) = G_AND [[COPY6]], [[C5]]
6745 ; SI: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[AND5]], [[COPY5]](s32)
6746 ; SI: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[SHL3]](s32)
6747 ; SI: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[TRUNC5]]
6748 ; SI: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
6749 ; SI: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
6750 ; SI: [[COPY7:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
6751 ; SI: [[COPY8:%[0-9]+]]:_(s32) = COPY [[LOAD7]](s32)
6752 ; SI: [[AND7:%[0-9]+]]:_(s32) = G_AND [[COPY8]], [[C5]]
6753 ; SI: [[SHL4:%[0-9]+]]:_(s32) = G_SHL [[AND7]], [[COPY7]](s32)
6754 ; SI: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[SHL4]](s32)
6755 ; SI: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[TRUNC7]]
6756 ; SI: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
6757 ; SI: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
6758 ; SI: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C6]](s32)
6759 ; SI: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
6760 ; SI: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
6761 ; SI: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 1, addrspace 56)
6762 ; SI: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
6763 ; SI: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 1, addrspace 56)
6764 ; SI: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C1]](s32)
6765 ; SI: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 1, addrspace 56)
6766 ; SI: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C2]](s32)
6767 ; SI: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 1, addrspace 56)
6768 ; SI: [[TRUNC8:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD8]](s32)
6769 ; SI: [[AND8:%[0-9]+]]:_(s16) = G_AND [[TRUNC8]], [[C3]]
6770 ; SI: [[COPY9:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
6771 ; SI: [[COPY10:%[0-9]+]]:_(s32) = COPY [[LOAD9]](s32)
6772 ; SI: [[AND9:%[0-9]+]]:_(s32) = G_AND [[COPY10]], [[C5]]
6773 ; SI: [[SHL6:%[0-9]+]]:_(s32) = G_SHL [[AND9]], [[COPY9]](s32)
6774 ; SI: [[TRUNC9:%[0-9]+]]:_(s16) = G_TRUNC [[SHL6]](s32)
6775 ; SI: [[OR6:%[0-9]+]]:_(s16) = G_OR [[AND8]], [[TRUNC9]]
6776 ; SI: [[TRUNC10:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD10]](s32)
6777 ; SI: [[AND10:%[0-9]+]]:_(s16) = G_AND [[TRUNC10]], [[C3]]
6778 ; SI: [[COPY11:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
6779 ; SI: [[COPY12:%[0-9]+]]:_(s32) = COPY [[LOAD11]](s32)
6780 ; SI: [[AND11:%[0-9]+]]:_(s32) = G_AND [[COPY12]], [[C5]]
6781 ; SI: [[SHL7:%[0-9]+]]:_(s32) = G_SHL [[AND11]], [[COPY11]](s32)
6782 ; SI: [[TRUNC11:%[0-9]+]]:_(s16) = G_TRUNC [[SHL7]](s32)
6783 ; SI: [[OR7:%[0-9]+]]:_(s16) = G_OR [[AND10]], [[TRUNC11]]
6784 ; SI: [[ZEXT4:%[0-9]+]]:_(s32) = G_ZEXT [[OR6]](s16)
6785 ; SI: [[ZEXT5:%[0-9]+]]:_(s32) = G_ZEXT [[OR7]](s16)
6786 ; SI: [[SHL8:%[0-9]+]]:_(s32) = G_SHL [[ZEXT5]], [[C6]](s32)
6787 ; SI: [[OR8:%[0-9]+]]:_(s32) = G_OR [[ZEXT4]], [[SHL8]]
6788 ; SI: [[C8:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
6789 ; SI: [[GEP11:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C8]](s32)
6790 ; SI: [[LOAD12:%[0-9]+]]:_(s32) = G_LOAD [[GEP11]](p5) :: (load 1, addrspace 56)
6791 ; SI: [[GEP12:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C]](s32)
6792 ; SI: [[LOAD13:%[0-9]+]]:_(s32) = G_LOAD [[GEP12]](p5) :: (load 1, addrspace 56)
6793 ; SI: [[GEP13:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C1]](s32)
6794 ; SI: [[LOAD14:%[0-9]+]]:_(s32) = G_LOAD [[GEP13]](p5) :: (load 1, addrspace 56)
6795 ; SI: [[GEP14:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C2]](s32)
6796 ; SI: [[LOAD15:%[0-9]+]]:_(s32) = G_LOAD [[GEP14]](p5) :: (load 1, addrspace 56)
6797 ; SI: [[TRUNC12:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD12]](s32)
6798 ; SI: [[AND12:%[0-9]+]]:_(s16) = G_AND [[TRUNC12]], [[C3]]
6799 ; SI: [[COPY13:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
6800 ; SI: [[COPY14:%[0-9]+]]:_(s32) = COPY [[LOAD13]](s32)
6801 ; SI: [[AND13:%[0-9]+]]:_(s32) = G_AND [[COPY14]], [[C5]]
6802 ; SI: [[SHL9:%[0-9]+]]:_(s32) = G_SHL [[AND13]], [[COPY13]](s32)
6803 ; SI: [[TRUNC13:%[0-9]+]]:_(s16) = G_TRUNC [[SHL9]](s32)
6804 ; SI: [[OR9:%[0-9]+]]:_(s16) = G_OR [[AND12]], [[TRUNC13]]
6805 ; SI: [[TRUNC14:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD14]](s32)
6806 ; SI: [[AND14:%[0-9]+]]:_(s16) = G_AND [[TRUNC14]], [[C3]]
6807 ; SI: [[COPY15:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
6808 ; SI: [[COPY16:%[0-9]+]]:_(s32) = COPY [[LOAD15]](s32)
6809 ; SI: [[AND15:%[0-9]+]]:_(s32) = G_AND [[COPY16]], [[C5]]
6810 ; SI: [[SHL10:%[0-9]+]]:_(s32) = G_SHL [[AND15]], [[COPY15]](s32)
6811 ; SI: [[TRUNC15:%[0-9]+]]:_(s16) = G_TRUNC [[SHL10]](s32)
6812 ; SI: [[OR10:%[0-9]+]]:_(s16) = G_OR [[AND14]], [[TRUNC15]]
6813 ; SI: [[ZEXT6:%[0-9]+]]:_(s32) = G_ZEXT [[OR9]](s16)
6814 ; SI: [[ZEXT7:%[0-9]+]]:_(s32) = G_ZEXT [[OR10]](s16)
6815 ; SI: [[SHL11:%[0-9]+]]:_(s32) = G_SHL [[ZEXT7]], [[C6]](s32)
6816 ; SI: [[OR11:%[0-9]+]]:_(s32) = G_OR [[ZEXT6]], [[SHL11]]
6817 ; SI: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[OR2]](s32), [[OR5]](s32), [[OR8]](s32), [[OR11]](s32)
6818 ; SI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<4 x s32>)
6819 ; CI-LABEL: name: test_load_private_v4s32_align16
6820 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
6821 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 56)
6822 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
6823 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
6824 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 56)
6825 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
6826 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
6827 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 56)
6828 ; CI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
6829 ; CI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
6830 ; CI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 56)
6831 ; CI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
6832 ; CI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
6833 ; CI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
6834 ; CI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
6835 ; CI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
6836 ; CI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
6837 ; CI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
6838 ; CI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C5]]
6839 ; CI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[COPY1]](s32)
6840 ; CI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[SHL]](s32)
6841 ; CI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[TRUNC1]]
6842 ; CI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
6843 ; CI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
6844 ; CI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
6845 ; CI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
6846 ; CI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C5]]
6847 ; CI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[COPY3]](s32)
6848 ; CI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[SHL1]](s32)
6849 ; CI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[TRUNC3]]
6850 ; CI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
6851 ; CI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
6852 ; CI: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
6853 ; CI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C6]](s32)
6854 ; CI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
6855 ; CI: [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
6856 ; CI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C7]](s32)
6857 ; CI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 56)
6858 ; CI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
6859 ; CI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 56)
6860 ; CI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
6861 ; CI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 56)
6862 ; CI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
6863 ; CI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 56)
6864 ; CI: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
6865 ; CI: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
6866 ; CI: [[COPY5:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
6867 ; CI: [[COPY6:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
6868 ; CI: [[AND5:%[0-9]+]]:_(s32) = G_AND [[COPY6]], [[C5]]
6869 ; CI: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[AND5]], [[COPY5]](s32)
6870 ; CI: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[SHL3]](s32)
6871 ; CI: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[TRUNC5]]
6872 ; CI: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
6873 ; CI: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
6874 ; CI: [[COPY7:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
6875 ; CI: [[COPY8:%[0-9]+]]:_(s32) = COPY [[LOAD7]](s32)
6876 ; CI: [[AND7:%[0-9]+]]:_(s32) = G_AND [[COPY8]], [[C5]]
6877 ; CI: [[SHL4:%[0-9]+]]:_(s32) = G_SHL [[AND7]], [[COPY7]](s32)
6878 ; CI: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[SHL4]](s32)
6879 ; CI: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[TRUNC7]]
6880 ; CI: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
6881 ; CI: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
6882 ; CI: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C6]](s32)
6883 ; CI: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
6884 ; CI: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
6885 ; CI: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 1, addrspace 56)
6886 ; CI: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
6887 ; CI: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 1, addrspace 56)
6888 ; CI: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C1]](s32)
6889 ; CI: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 1, addrspace 56)
6890 ; CI: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C2]](s32)
6891 ; CI: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 1, addrspace 56)
6892 ; CI: [[TRUNC8:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD8]](s32)
6893 ; CI: [[AND8:%[0-9]+]]:_(s16) = G_AND [[TRUNC8]], [[C3]]
6894 ; CI: [[COPY9:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
6895 ; CI: [[COPY10:%[0-9]+]]:_(s32) = COPY [[LOAD9]](s32)
6896 ; CI: [[AND9:%[0-9]+]]:_(s32) = G_AND [[COPY10]], [[C5]]
6897 ; CI: [[SHL6:%[0-9]+]]:_(s32) = G_SHL [[AND9]], [[COPY9]](s32)
6898 ; CI: [[TRUNC9:%[0-9]+]]:_(s16) = G_TRUNC [[SHL6]](s32)
6899 ; CI: [[OR6:%[0-9]+]]:_(s16) = G_OR [[AND8]], [[TRUNC9]]
6900 ; CI: [[TRUNC10:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD10]](s32)
6901 ; CI: [[AND10:%[0-9]+]]:_(s16) = G_AND [[TRUNC10]], [[C3]]
6902 ; CI: [[COPY11:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
6903 ; CI: [[COPY12:%[0-9]+]]:_(s32) = COPY [[LOAD11]](s32)
6904 ; CI: [[AND11:%[0-9]+]]:_(s32) = G_AND [[COPY12]], [[C5]]
6905 ; CI: [[SHL7:%[0-9]+]]:_(s32) = G_SHL [[AND11]], [[COPY11]](s32)
6906 ; CI: [[TRUNC11:%[0-9]+]]:_(s16) = G_TRUNC [[SHL7]](s32)
6907 ; CI: [[OR7:%[0-9]+]]:_(s16) = G_OR [[AND10]], [[TRUNC11]]
6908 ; CI: [[ZEXT4:%[0-9]+]]:_(s32) = G_ZEXT [[OR6]](s16)
6909 ; CI: [[ZEXT5:%[0-9]+]]:_(s32) = G_ZEXT [[OR7]](s16)
6910 ; CI: [[SHL8:%[0-9]+]]:_(s32) = G_SHL [[ZEXT5]], [[C6]](s32)
6911 ; CI: [[OR8:%[0-9]+]]:_(s32) = G_OR [[ZEXT4]], [[SHL8]]
6912 ; CI: [[C8:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
6913 ; CI: [[GEP11:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C8]](s32)
6914 ; CI: [[LOAD12:%[0-9]+]]:_(s32) = G_LOAD [[GEP11]](p5) :: (load 1, addrspace 56)
6915 ; CI: [[GEP12:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C]](s32)
6916 ; CI: [[LOAD13:%[0-9]+]]:_(s32) = G_LOAD [[GEP12]](p5) :: (load 1, addrspace 56)
6917 ; CI: [[GEP13:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C1]](s32)
6918 ; CI: [[LOAD14:%[0-9]+]]:_(s32) = G_LOAD [[GEP13]](p5) :: (load 1, addrspace 56)
6919 ; CI: [[GEP14:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C2]](s32)
6920 ; CI: [[LOAD15:%[0-9]+]]:_(s32) = G_LOAD [[GEP14]](p5) :: (load 1, addrspace 56)
6921 ; CI: [[TRUNC12:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD12]](s32)
6922 ; CI: [[AND12:%[0-9]+]]:_(s16) = G_AND [[TRUNC12]], [[C3]]
6923 ; CI: [[COPY13:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
6924 ; CI: [[COPY14:%[0-9]+]]:_(s32) = COPY [[LOAD13]](s32)
6925 ; CI: [[AND13:%[0-9]+]]:_(s32) = G_AND [[COPY14]], [[C5]]
6926 ; CI: [[SHL9:%[0-9]+]]:_(s32) = G_SHL [[AND13]], [[COPY13]](s32)
6927 ; CI: [[TRUNC13:%[0-9]+]]:_(s16) = G_TRUNC [[SHL9]](s32)
6928 ; CI: [[OR9:%[0-9]+]]:_(s16) = G_OR [[AND12]], [[TRUNC13]]
6929 ; CI: [[TRUNC14:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD14]](s32)
6930 ; CI: [[AND14:%[0-9]+]]:_(s16) = G_AND [[TRUNC14]], [[C3]]
6931 ; CI: [[COPY15:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
6932 ; CI: [[COPY16:%[0-9]+]]:_(s32) = COPY [[LOAD15]](s32)
6933 ; CI: [[AND15:%[0-9]+]]:_(s32) = G_AND [[COPY16]], [[C5]]
6934 ; CI: [[SHL10:%[0-9]+]]:_(s32) = G_SHL [[AND15]], [[COPY15]](s32)
6935 ; CI: [[TRUNC15:%[0-9]+]]:_(s16) = G_TRUNC [[SHL10]](s32)
6936 ; CI: [[OR10:%[0-9]+]]:_(s16) = G_OR [[AND14]], [[TRUNC15]]
6937 ; CI: [[ZEXT6:%[0-9]+]]:_(s32) = G_ZEXT [[OR9]](s16)
6938 ; CI: [[ZEXT7:%[0-9]+]]:_(s32) = G_ZEXT [[OR10]](s16)
6939 ; CI: [[SHL11:%[0-9]+]]:_(s32) = G_SHL [[ZEXT7]], [[C6]](s32)
6940 ; CI: [[OR11:%[0-9]+]]:_(s32) = G_OR [[ZEXT6]], [[SHL11]]
6941 ; CI: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[OR2]](s32), [[OR5]](s32), [[OR8]](s32), [[OR11]](s32)
6942 ; CI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<4 x s32>)
6943 ; VI-LABEL: name: test_load_private_v4s32_align16
6944 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
6945 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 56)
6946 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
6947 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
6948 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 56)
6949 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
6950 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
6951 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 56)
6952 ; VI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
6953 ; VI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
6954 ; VI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 56)
6955 ; VI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
6956 ; VI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
6957 ; VI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
6958 ; VI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
6959 ; VI: [[AND1:%[0-9]+]]:_(s16) = G_AND [[TRUNC1]], [[C3]]
6960 ; VI: [[C4:%[0-9]+]]:_(s16) = G_CONSTANT i16 8
6961 ; VI: [[SHL:%[0-9]+]]:_(s16) = G_SHL [[AND1]], [[C4]](s16)
6962 ; VI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[SHL]]
6963 ; VI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
6964 ; VI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
6965 ; VI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD3]](s32)
6966 ; VI: [[AND3:%[0-9]+]]:_(s16) = G_AND [[TRUNC3]], [[C3]]
6967 ; VI: [[SHL1:%[0-9]+]]:_(s16) = G_SHL [[AND3]], [[C4]](s16)
6968 ; VI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[SHL1]]
6969 ; VI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
6970 ; VI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
6971 ; VI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
6972 ; VI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C5]](s32)
6973 ; VI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
6974 ; VI: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
6975 ; VI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C6]](s32)
6976 ; VI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 56)
6977 ; VI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
6978 ; VI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 56)
6979 ; VI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
6980 ; VI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 56)
6981 ; VI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
6982 ; VI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 56)
6983 ; VI: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
6984 ; VI: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
6985 ; VI: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD5]](s32)
6986 ; VI: [[AND5:%[0-9]+]]:_(s16) = G_AND [[TRUNC5]], [[C3]]
6987 ; VI: [[SHL3:%[0-9]+]]:_(s16) = G_SHL [[AND5]], [[C4]](s16)
6988 ; VI: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[SHL3]]
6989 ; VI: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
6990 ; VI: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
6991 ; VI: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD7]](s32)
6992 ; VI: [[AND7:%[0-9]+]]:_(s16) = G_AND [[TRUNC7]], [[C3]]
6993 ; VI: [[SHL4:%[0-9]+]]:_(s16) = G_SHL [[AND7]], [[C4]](s16)
6994 ; VI: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[SHL4]]
6995 ; VI: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
6996 ; VI: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
6997 ; VI: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C5]](s32)
6998 ; VI: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
6999 ; VI: [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
7000 ; VI: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C7]](s32)
7001 ; VI: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 1, addrspace 56)
7002 ; VI: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
7003 ; VI: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 1, addrspace 56)
7004 ; VI: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C1]](s32)
7005 ; VI: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 1, addrspace 56)
7006 ; VI: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C2]](s32)
7007 ; VI: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 1, addrspace 56)
7008 ; VI: [[TRUNC8:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD8]](s32)
7009 ; VI: [[AND8:%[0-9]+]]:_(s16) = G_AND [[TRUNC8]], [[C3]]
7010 ; VI: [[TRUNC9:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD9]](s32)
7011 ; VI: [[AND9:%[0-9]+]]:_(s16) = G_AND [[TRUNC9]], [[C3]]
7012 ; VI: [[SHL6:%[0-9]+]]:_(s16) = G_SHL [[AND9]], [[C4]](s16)
7013 ; VI: [[OR6:%[0-9]+]]:_(s16) = G_OR [[AND8]], [[SHL6]]
7014 ; VI: [[TRUNC10:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD10]](s32)
7015 ; VI: [[AND10:%[0-9]+]]:_(s16) = G_AND [[TRUNC10]], [[C3]]
7016 ; VI: [[TRUNC11:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD11]](s32)
7017 ; VI: [[AND11:%[0-9]+]]:_(s16) = G_AND [[TRUNC11]], [[C3]]
7018 ; VI: [[SHL7:%[0-9]+]]:_(s16) = G_SHL [[AND11]], [[C4]](s16)
7019 ; VI: [[OR7:%[0-9]+]]:_(s16) = G_OR [[AND10]], [[SHL7]]
7020 ; VI: [[ZEXT4:%[0-9]+]]:_(s32) = G_ZEXT [[OR6]](s16)
7021 ; VI: [[ZEXT5:%[0-9]+]]:_(s32) = G_ZEXT [[OR7]](s16)
7022 ; VI: [[SHL8:%[0-9]+]]:_(s32) = G_SHL [[ZEXT5]], [[C5]](s32)
7023 ; VI: [[OR8:%[0-9]+]]:_(s32) = G_OR [[ZEXT4]], [[SHL8]]
7024 ; VI: [[C8:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
7025 ; VI: [[GEP11:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C8]](s32)
7026 ; VI: [[LOAD12:%[0-9]+]]:_(s32) = G_LOAD [[GEP11]](p5) :: (load 1, addrspace 56)
7027 ; VI: [[GEP12:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C]](s32)
7028 ; VI: [[LOAD13:%[0-9]+]]:_(s32) = G_LOAD [[GEP12]](p5) :: (load 1, addrspace 56)
7029 ; VI: [[GEP13:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C1]](s32)
7030 ; VI: [[LOAD14:%[0-9]+]]:_(s32) = G_LOAD [[GEP13]](p5) :: (load 1, addrspace 56)
7031 ; VI: [[GEP14:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C2]](s32)
7032 ; VI: [[LOAD15:%[0-9]+]]:_(s32) = G_LOAD [[GEP14]](p5) :: (load 1, addrspace 56)
7033 ; VI: [[TRUNC12:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD12]](s32)
7034 ; VI: [[AND12:%[0-9]+]]:_(s16) = G_AND [[TRUNC12]], [[C3]]
7035 ; VI: [[TRUNC13:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD13]](s32)
7036 ; VI: [[AND13:%[0-9]+]]:_(s16) = G_AND [[TRUNC13]], [[C3]]
7037 ; VI: [[SHL9:%[0-9]+]]:_(s16) = G_SHL [[AND13]], [[C4]](s16)
7038 ; VI: [[OR9:%[0-9]+]]:_(s16) = G_OR [[AND12]], [[SHL9]]
7039 ; VI: [[TRUNC14:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD14]](s32)
7040 ; VI: [[AND14:%[0-9]+]]:_(s16) = G_AND [[TRUNC14]], [[C3]]
7041 ; VI: [[TRUNC15:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD15]](s32)
7042 ; VI: [[AND15:%[0-9]+]]:_(s16) = G_AND [[TRUNC15]], [[C3]]
7043 ; VI: [[SHL10:%[0-9]+]]:_(s16) = G_SHL [[AND15]], [[C4]](s16)
7044 ; VI: [[OR10:%[0-9]+]]:_(s16) = G_OR [[AND14]], [[SHL10]]
7045 ; VI: [[ZEXT6:%[0-9]+]]:_(s32) = G_ZEXT [[OR9]](s16)
7046 ; VI: [[ZEXT7:%[0-9]+]]:_(s32) = G_ZEXT [[OR10]](s16)
7047 ; VI: [[SHL11:%[0-9]+]]:_(s32) = G_SHL [[ZEXT7]], [[C5]](s32)
7048 ; VI: [[OR11:%[0-9]+]]:_(s32) = G_OR [[ZEXT6]], [[SHL11]]
7049 ; VI: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[OR2]](s32), [[OR5]](s32), [[OR8]](s32), [[OR11]](s32)
7050 ; VI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<4 x s32>)
7051 ; GFX9-LABEL: name: test_load_private_v4s32_align16
7052 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
7053 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 56)
7054 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
7055 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
7056 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 56)
7057 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
7058 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
7059 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 56)
7060 ; GFX9: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
7061 ; GFX9: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
7062 ; GFX9: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 56)
7063 ; GFX9: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
7064 ; GFX9: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
7065 ; GFX9: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
7066 ; GFX9: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
7067 ; GFX9: [[AND1:%[0-9]+]]:_(s16) = G_AND [[TRUNC1]], [[C3]]
7068 ; GFX9: [[C4:%[0-9]+]]:_(s16) = G_CONSTANT i16 8
7069 ; GFX9: [[SHL:%[0-9]+]]:_(s16) = G_SHL [[AND1]], [[C4]](s16)
7070 ; GFX9: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[SHL]]
7071 ; GFX9: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
7072 ; GFX9: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
7073 ; GFX9: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD3]](s32)
7074 ; GFX9: [[AND3:%[0-9]+]]:_(s16) = G_AND [[TRUNC3]], [[C3]]
7075 ; GFX9: [[SHL1:%[0-9]+]]:_(s16) = G_SHL [[AND3]], [[C4]](s16)
7076 ; GFX9: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[SHL1]]
7077 ; GFX9: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
7078 ; GFX9: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
7079 ; GFX9: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
7080 ; GFX9: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C5]](s32)
7081 ; GFX9: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
7082 ; GFX9: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
7083 ; GFX9: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C6]](s32)
7084 ; GFX9: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 56)
7085 ; GFX9: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
7086 ; GFX9: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 56)
7087 ; GFX9: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
7088 ; GFX9: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 56)
7089 ; GFX9: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
7090 ; GFX9: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 56)
7091 ; GFX9: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
7092 ; GFX9: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
7093 ; GFX9: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD5]](s32)
7094 ; GFX9: [[AND5:%[0-9]+]]:_(s16) = G_AND [[TRUNC5]], [[C3]]
7095 ; GFX9: [[SHL3:%[0-9]+]]:_(s16) = G_SHL [[AND5]], [[C4]](s16)
7096 ; GFX9: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[SHL3]]
7097 ; GFX9: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
7098 ; GFX9: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
7099 ; GFX9: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD7]](s32)
7100 ; GFX9: [[AND7:%[0-9]+]]:_(s16) = G_AND [[TRUNC7]], [[C3]]
7101 ; GFX9: [[SHL4:%[0-9]+]]:_(s16) = G_SHL [[AND7]], [[C4]](s16)
7102 ; GFX9: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[SHL4]]
7103 ; GFX9: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
7104 ; GFX9: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
7105 ; GFX9: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C5]](s32)
7106 ; GFX9: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
7107 ; GFX9: [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
7108 ; GFX9: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C7]](s32)
7109 ; GFX9: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 1, addrspace 56)
7110 ; GFX9: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
7111 ; GFX9: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 1, addrspace 56)
7112 ; GFX9: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C1]](s32)
7113 ; GFX9: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 1, addrspace 56)
7114 ; GFX9: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C2]](s32)
7115 ; GFX9: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 1, addrspace 56)
7116 ; GFX9: [[TRUNC8:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD8]](s32)
7117 ; GFX9: [[AND8:%[0-9]+]]:_(s16) = G_AND [[TRUNC8]], [[C3]]
7118 ; GFX9: [[TRUNC9:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD9]](s32)
7119 ; GFX9: [[AND9:%[0-9]+]]:_(s16) = G_AND [[TRUNC9]], [[C3]]
7120 ; GFX9: [[SHL6:%[0-9]+]]:_(s16) = G_SHL [[AND9]], [[C4]](s16)
7121 ; GFX9: [[OR6:%[0-9]+]]:_(s16) = G_OR [[AND8]], [[SHL6]]
7122 ; GFX9: [[TRUNC10:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD10]](s32)
7123 ; GFX9: [[AND10:%[0-9]+]]:_(s16) = G_AND [[TRUNC10]], [[C3]]
7124 ; GFX9: [[TRUNC11:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD11]](s32)
7125 ; GFX9: [[AND11:%[0-9]+]]:_(s16) = G_AND [[TRUNC11]], [[C3]]
7126 ; GFX9: [[SHL7:%[0-9]+]]:_(s16) = G_SHL [[AND11]], [[C4]](s16)
7127 ; GFX9: [[OR7:%[0-9]+]]:_(s16) = G_OR [[AND10]], [[SHL7]]
7128 ; GFX9: [[ZEXT4:%[0-9]+]]:_(s32) = G_ZEXT [[OR6]](s16)
7129 ; GFX9: [[ZEXT5:%[0-9]+]]:_(s32) = G_ZEXT [[OR7]](s16)
7130 ; GFX9: [[SHL8:%[0-9]+]]:_(s32) = G_SHL [[ZEXT5]], [[C5]](s32)
7131 ; GFX9: [[OR8:%[0-9]+]]:_(s32) = G_OR [[ZEXT4]], [[SHL8]]
7132 ; GFX9: [[C8:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
7133 ; GFX9: [[GEP11:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C8]](s32)
7134 ; GFX9: [[LOAD12:%[0-9]+]]:_(s32) = G_LOAD [[GEP11]](p5) :: (load 1, addrspace 56)
7135 ; GFX9: [[GEP12:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C]](s32)
7136 ; GFX9: [[LOAD13:%[0-9]+]]:_(s32) = G_LOAD [[GEP12]](p5) :: (load 1, addrspace 56)
7137 ; GFX9: [[GEP13:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C1]](s32)
7138 ; GFX9: [[LOAD14:%[0-9]+]]:_(s32) = G_LOAD [[GEP13]](p5) :: (load 1, addrspace 56)
7139 ; GFX9: [[GEP14:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C2]](s32)
7140 ; GFX9: [[LOAD15:%[0-9]+]]:_(s32) = G_LOAD [[GEP14]](p5) :: (load 1, addrspace 56)
7141 ; GFX9: [[TRUNC12:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD12]](s32)
7142 ; GFX9: [[AND12:%[0-9]+]]:_(s16) = G_AND [[TRUNC12]], [[C3]]
7143 ; GFX9: [[TRUNC13:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD13]](s32)
7144 ; GFX9: [[AND13:%[0-9]+]]:_(s16) = G_AND [[TRUNC13]], [[C3]]
7145 ; GFX9: [[SHL9:%[0-9]+]]:_(s16) = G_SHL [[AND13]], [[C4]](s16)
7146 ; GFX9: [[OR9:%[0-9]+]]:_(s16) = G_OR [[AND12]], [[SHL9]]
7147 ; GFX9: [[TRUNC14:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD14]](s32)
7148 ; GFX9: [[AND14:%[0-9]+]]:_(s16) = G_AND [[TRUNC14]], [[C3]]
7149 ; GFX9: [[TRUNC15:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD15]](s32)
7150 ; GFX9: [[AND15:%[0-9]+]]:_(s16) = G_AND [[TRUNC15]], [[C3]]
7151 ; GFX9: [[SHL10:%[0-9]+]]:_(s16) = G_SHL [[AND15]], [[C4]](s16)
7152 ; GFX9: [[OR10:%[0-9]+]]:_(s16) = G_OR [[AND14]], [[SHL10]]
7153 ; GFX9: [[ZEXT6:%[0-9]+]]:_(s32) = G_ZEXT [[OR9]](s16)
7154 ; GFX9: [[ZEXT7:%[0-9]+]]:_(s32) = G_ZEXT [[OR10]](s16)
7155 ; GFX9: [[SHL11:%[0-9]+]]:_(s32) = G_SHL [[ZEXT7]], [[C5]](s32)
7156 ; GFX9: [[OR11:%[0-9]+]]:_(s32) = G_OR [[ZEXT6]], [[SHL11]]
7157 ; GFX9: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[OR2]](s32), [[OR5]](s32), [[OR8]](s32), [[OR11]](s32)
7158 ; GFX9: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<4 x s32>)
7159 %0:_(p5) = COPY $vgpr0
7160 %1:_(<4 x s32>) = G_LOAD %0 :: (load 16, align 1, addrspace 56)
7161 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1
7165 name: test_load_private_v4s32_align8
7170 ; SI-LABEL: name: test_load_private_v4s32_align8
7171 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
7172 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 8, addrspace 5)
7173 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
7174 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
7175 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
7176 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
7177 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
7178 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, align 8, addrspace 5)
7179 ; SI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
7180 ; SI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
7181 ; SI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
7182 ; SI: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[LOAD]](s32), [[LOAD1]](s32), [[LOAD2]](s32), [[LOAD3]](s32)
7183 ; SI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<4 x s32>)
7184 ; CI-LABEL: name: test_load_private_v4s32_align8
7185 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
7186 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 8, addrspace 5)
7187 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
7188 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
7189 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
7190 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
7191 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
7192 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, align 8, addrspace 5)
7193 ; CI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
7194 ; CI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
7195 ; CI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
7196 ; CI: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[LOAD]](s32), [[LOAD1]](s32), [[LOAD2]](s32), [[LOAD3]](s32)
7197 ; CI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<4 x s32>)
7198 ; VI-LABEL: name: test_load_private_v4s32_align8
7199 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
7200 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 8, addrspace 5)
7201 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
7202 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
7203 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
7204 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
7205 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
7206 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, align 8, addrspace 5)
7207 ; VI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
7208 ; VI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
7209 ; VI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
7210 ; VI: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[LOAD]](s32), [[LOAD1]](s32), [[LOAD2]](s32), [[LOAD3]](s32)
7211 ; VI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<4 x s32>)
7212 ; GFX9-LABEL: name: test_load_private_v4s32_align8
7213 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
7214 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 8, addrspace 5)
7215 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
7216 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
7217 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
7218 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
7219 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
7220 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, align 8, addrspace 5)
7221 ; GFX9: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
7222 ; GFX9: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
7223 ; GFX9: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
7224 ; GFX9: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[LOAD]](s32), [[LOAD1]](s32), [[LOAD2]](s32), [[LOAD3]](s32)
7225 ; GFX9: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<4 x s32>)
7226 %0:_(p5) = COPY $vgpr0
7227 %1:_(<4 x s32>) = G_LOAD %0 :: (load 16, align 8, addrspace 5)
7228 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1
7232 name: test_load_private_v4s32_align4
7237 ; SI-LABEL: name: test_load_private_v4s32_align4
7238 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
7239 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
7240 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
7241 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
7242 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
7243 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
7244 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
7245 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, addrspace 5)
7246 ; SI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
7247 ; SI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
7248 ; SI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
7249 ; SI: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[LOAD]](s32), [[LOAD1]](s32), [[LOAD2]](s32), [[LOAD3]](s32)
7250 ; SI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<4 x s32>)
7251 ; CI-LABEL: name: test_load_private_v4s32_align4
7252 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
7253 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
7254 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
7255 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
7256 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
7257 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
7258 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
7259 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, addrspace 5)
7260 ; CI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
7261 ; CI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
7262 ; CI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
7263 ; CI: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[LOAD]](s32), [[LOAD1]](s32), [[LOAD2]](s32), [[LOAD3]](s32)
7264 ; CI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<4 x s32>)
7265 ; VI-LABEL: name: test_load_private_v4s32_align4
7266 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
7267 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
7268 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
7269 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
7270 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
7271 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
7272 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
7273 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, addrspace 5)
7274 ; VI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
7275 ; VI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
7276 ; VI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
7277 ; VI: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[LOAD]](s32), [[LOAD1]](s32), [[LOAD2]](s32), [[LOAD3]](s32)
7278 ; VI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<4 x s32>)
7279 ; GFX9-LABEL: name: test_load_private_v4s32_align4
7280 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
7281 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
7282 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
7283 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
7284 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
7285 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
7286 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
7287 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, addrspace 5)
7288 ; GFX9: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
7289 ; GFX9: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
7290 ; GFX9: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
7291 ; GFX9: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[LOAD]](s32), [[LOAD1]](s32), [[LOAD2]](s32), [[LOAD3]](s32)
7292 ; GFX9: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<4 x s32>)
7293 %0:_(p5) = COPY $vgpr0
7294 %1:_(<4 x s32>) = G_LOAD %0 :: (load 16, align 4, addrspace 5)
7295 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1
7299 name: test_load_private_v4s32_align2
7304 ; SI-LABEL: name: test_load_private_v4s32_align2
7305 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
7306 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
7307 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
7308 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
7309 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
7310 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
7311 ; SI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
7312 ; SI: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C1]]
7313 ; SI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
7314 ; SI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C1]]
7315 ; SI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
7316 ; SI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
7317 ; SI: [[OR:%[0-9]+]]:_(s32) = G_OR [[AND]], [[SHL]]
7318 ; SI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
7319 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
7320 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 2, addrspace 5)
7321 ; SI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
7322 ; SI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 2, addrspace 5)
7323 ; SI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD2]](s32)
7324 ; SI: [[AND2:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C1]]
7325 ; SI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
7326 ; SI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C1]]
7327 ; SI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[C2]](s32)
7328 ; SI: [[OR1:%[0-9]+]]:_(s32) = G_OR [[AND2]], [[SHL1]]
7329 ; SI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
7330 ; SI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
7331 ; SI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 2, addrspace 5)
7332 ; SI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
7333 ; SI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 2, addrspace 5)
7334 ; SI: [[COPY5:%[0-9]+]]:_(s32) = COPY [[LOAD4]](s32)
7335 ; SI: [[AND4:%[0-9]+]]:_(s32) = G_AND [[COPY5]], [[C1]]
7336 ; SI: [[COPY6:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
7337 ; SI: [[AND5:%[0-9]+]]:_(s32) = G_AND [[COPY6]], [[C1]]
7338 ; SI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[AND5]], [[C2]](s32)
7339 ; SI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[AND4]], [[SHL2]]
7340 ; SI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
7341 ; SI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C5]](s32)
7342 ; SI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 2, addrspace 5)
7343 ; SI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP5]], [[C]](s32)
7344 ; SI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 2, addrspace 5)
7345 ; SI: [[COPY7:%[0-9]+]]:_(s32) = COPY [[LOAD6]](s32)
7346 ; SI: [[AND6:%[0-9]+]]:_(s32) = G_AND [[COPY7]], [[C1]]
7347 ; SI: [[COPY8:%[0-9]+]]:_(s32) = COPY [[LOAD7]](s32)
7348 ; SI: [[AND7:%[0-9]+]]:_(s32) = G_AND [[COPY8]], [[C1]]
7349 ; SI: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[AND7]], [[C2]](s32)
7350 ; SI: [[OR3:%[0-9]+]]:_(s32) = G_OR [[AND6]], [[SHL3]]
7351 ; SI: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[OR]](s32), [[OR1]](s32), [[OR2]](s32), [[OR3]](s32)
7352 ; SI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<4 x s32>)
7353 ; CI-LABEL: name: test_load_private_v4s32_align2
7354 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
7355 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
7356 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
7357 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
7358 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
7359 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
7360 ; CI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
7361 ; CI: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C1]]
7362 ; CI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
7363 ; CI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C1]]
7364 ; CI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
7365 ; CI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
7366 ; CI: [[OR:%[0-9]+]]:_(s32) = G_OR [[AND]], [[SHL]]
7367 ; CI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
7368 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
7369 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 2, addrspace 5)
7370 ; CI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
7371 ; CI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 2, addrspace 5)
7372 ; CI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD2]](s32)
7373 ; CI: [[AND2:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C1]]
7374 ; CI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
7375 ; CI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C1]]
7376 ; CI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[C2]](s32)
7377 ; CI: [[OR1:%[0-9]+]]:_(s32) = G_OR [[AND2]], [[SHL1]]
7378 ; CI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
7379 ; CI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
7380 ; CI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 2, addrspace 5)
7381 ; CI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
7382 ; CI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 2, addrspace 5)
7383 ; CI: [[COPY5:%[0-9]+]]:_(s32) = COPY [[LOAD4]](s32)
7384 ; CI: [[AND4:%[0-9]+]]:_(s32) = G_AND [[COPY5]], [[C1]]
7385 ; CI: [[COPY6:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
7386 ; CI: [[AND5:%[0-9]+]]:_(s32) = G_AND [[COPY6]], [[C1]]
7387 ; CI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[AND5]], [[C2]](s32)
7388 ; CI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[AND4]], [[SHL2]]
7389 ; CI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
7390 ; CI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C5]](s32)
7391 ; CI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 2, addrspace 5)
7392 ; CI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP5]], [[C]](s32)
7393 ; CI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 2, addrspace 5)
7394 ; CI: [[COPY7:%[0-9]+]]:_(s32) = COPY [[LOAD6]](s32)
7395 ; CI: [[AND6:%[0-9]+]]:_(s32) = G_AND [[COPY7]], [[C1]]
7396 ; CI: [[COPY8:%[0-9]+]]:_(s32) = COPY [[LOAD7]](s32)
7397 ; CI: [[AND7:%[0-9]+]]:_(s32) = G_AND [[COPY8]], [[C1]]
7398 ; CI: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[AND7]], [[C2]](s32)
7399 ; CI: [[OR3:%[0-9]+]]:_(s32) = G_OR [[AND6]], [[SHL3]]
7400 ; CI: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[OR]](s32), [[OR1]](s32), [[OR2]](s32), [[OR3]](s32)
7401 ; CI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<4 x s32>)
7402 ; VI-LABEL: name: test_load_private_v4s32_align2
7403 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
7404 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
7405 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
7406 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
7407 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
7408 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
7409 ; VI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
7410 ; VI: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C1]]
7411 ; VI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
7412 ; VI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C1]]
7413 ; VI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
7414 ; VI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
7415 ; VI: [[OR:%[0-9]+]]:_(s32) = G_OR [[AND]], [[SHL]]
7416 ; VI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
7417 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
7418 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 2, addrspace 5)
7419 ; VI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
7420 ; VI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 2, addrspace 5)
7421 ; VI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD2]](s32)
7422 ; VI: [[AND2:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C1]]
7423 ; VI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
7424 ; VI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C1]]
7425 ; VI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[C2]](s32)
7426 ; VI: [[OR1:%[0-9]+]]:_(s32) = G_OR [[AND2]], [[SHL1]]
7427 ; VI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
7428 ; VI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
7429 ; VI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 2, addrspace 5)
7430 ; VI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
7431 ; VI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 2, addrspace 5)
7432 ; VI: [[COPY5:%[0-9]+]]:_(s32) = COPY [[LOAD4]](s32)
7433 ; VI: [[AND4:%[0-9]+]]:_(s32) = G_AND [[COPY5]], [[C1]]
7434 ; VI: [[COPY6:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
7435 ; VI: [[AND5:%[0-9]+]]:_(s32) = G_AND [[COPY6]], [[C1]]
7436 ; VI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[AND5]], [[C2]](s32)
7437 ; VI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[AND4]], [[SHL2]]
7438 ; VI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
7439 ; VI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C5]](s32)
7440 ; VI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 2, addrspace 5)
7441 ; VI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP5]], [[C]](s32)
7442 ; VI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 2, addrspace 5)
7443 ; VI: [[COPY7:%[0-9]+]]:_(s32) = COPY [[LOAD6]](s32)
7444 ; VI: [[AND6:%[0-9]+]]:_(s32) = G_AND [[COPY7]], [[C1]]
7445 ; VI: [[COPY8:%[0-9]+]]:_(s32) = COPY [[LOAD7]](s32)
7446 ; VI: [[AND7:%[0-9]+]]:_(s32) = G_AND [[COPY8]], [[C1]]
7447 ; VI: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[AND7]], [[C2]](s32)
7448 ; VI: [[OR3:%[0-9]+]]:_(s32) = G_OR [[AND6]], [[SHL3]]
7449 ; VI: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[OR]](s32), [[OR1]](s32), [[OR2]](s32), [[OR3]](s32)
7450 ; VI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<4 x s32>)
7451 ; GFX9-LABEL: name: test_load_private_v4s32_align2
7452 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
7453 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
7454 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
7455 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
7456 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
7457 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
7458 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
7459 ; GFX9: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C1]]
7460 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
7461 ; GFX9: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C1]]
7462 ; GFX9: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
7463 ; GFX9: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
7464 ; GFX9: [[OR:%[0-9]+]]:_(s32) = G_OR [[AND]], [[SHL]]
7465 ; GFX9: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
7466 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
7467 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 2, addrspace 5)
7468 ; GFX9: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
7469 ; GFX9: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 2, addrspace 5)
7470 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD2]](s32)
7471 ; GFX9: [[AND2:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C1]]
7472 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
7473 ; GFX9: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C1]]
7474 ; GFX9: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[C2]](s32)
7475 ; GFX9: [[OR1:%[0-9]+]]:_(s32) = G_OR [[AND2]], [[SHL1]]
7476 ; GFX9: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
7477 ; GFX9: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
7478 ; GFX9: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 2, addrspace 5)
7479 ; GFX9: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
7480 ; GFX9: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 2, addrspace 5)
7481 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY [[LOAD4]](s32)
7482 ; GFX9: [[AND4:%[0-9]+]]:_(s32) = G_AND [[COPY5]], [[C1]]
7483 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
7484 ; GFX9: [[AND5:%[0-9]+]]:_(s32) = G_AND [[COPY6]], [[C1]]
7485 ; GFX9: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[AND5]], [[C2]](s32)
7486 ; GFX9: [[OR2:%[0-9]+]]:_(s32) = G_OR [[AND4]], [[SHL2]]
7487 ; GFX9: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
7488 ; GFX9: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C5]](s32)
7489 ; GFX9: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 2, addrspace 5)
7490 ; GFX9: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP5]], [[C]](s32)
7491 ; GFX9: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 2, addrspace 5)
7492 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY [[LOAD6]](s32)
7493 ; GFX9: [[AND6:%[0-9]+]]:_(s32) = G_AND [[COPY7]], [[C1]]
7494 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY [[LOAD7]](s32)
7495 ; GFX9: [[AND7:%[0-9]+]]:_(s32) = G_AND [[COPY8]], [[C1]]
7496 ; GFX9: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[AND7]], [[C2]](s32)
7497 ; GFX9: [[OR3:%[0-9]+]]:_(s32) = G_OR [[AND6]], [[SHL3]]
7498 ; GFX9: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[OR]](s32), [[OR1]](s32), [[OR2]](s32), [[OR3]](s32)
7499 ; GFX9: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<4 x s32>)
7500 %0:_(p5) = COPY $vgpr0
7501 %1:_(<4 x s32>) = G_LOAD %0 :: (load 16, align 2, addrspace 5)
7502 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1
7506 name: test_load_private_v4s32_align1
7511 ; SI-LABEL: name: test_load_private_v4s32_align1
7512 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
7513 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
7514 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
7515 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
7516 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
7517 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
7518 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
7519 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
7520 ; SI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
7521 ; SI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
7522 ; SI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
7523 ; SI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
7524 ; SI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
7525 ; SI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
7526 ; SI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
7527 ; SI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
7528 ; SI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
7529 ; SI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
7530 ; SI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C5]]
7531 ; SI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[COPY1]](s32)
7532 ; SI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[SHL]](s32)
7533 ; SI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[TRUNC1]]
7534 ; SI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
7535 ; SI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
7536 ; SI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
7537 ; SI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
7538 ; SI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C5]]
7539 ; SI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[COPY3]](s32)
7540 ; SI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[SHL1]](s32)
7541 ; SI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[TRUNC3]]
7542 ; SI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
7543 ; SI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
7544 ; SI: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
7545 ; SI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C6]](s32)
7546 ; SI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
7547 ; SI: [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
7548 ; SI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C7]](s32)
7549 ; SI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 5)
7550 ; SI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
7551 ; SI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 5)
7552 ; SI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
7553 ; SI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 5)
7554 ; SI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
7555 ; SI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 5)
7556 ; SI: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
7557 ; SI: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
7558 ; SI: [[COPY5:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
7559 ; SI: [[COPY6:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
7560 ; SI: [[AND5:%[0-9]+]]:_(s32) = G_AND [[COPY6]], [[C5]]
7561 ; SI: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[AND5]], [[COPY5]](s32)
7562 ; SI: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[SHL3]](s32)
7563 ; SI: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[TRUNC5]]
7564 ; SI: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
7565 ; SI: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
7566 ; SI: [[COPY7:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
7567 ; SI: [[COPY8:%[0-9]+]]:_(s32) = COPY [[LOAD7]](s32)
7568 ; SI: [[AND7:%[0-9]+]]:_(s32) = G_AND [[COPY8]], [[C5]]
7569 ; SI: [[SHL4:%[0-9]+]]:_(s32) = G_SHL [[AND7]], [[COPY7]](s32)
7570 ; SI: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[SHL4]](s32)
7571 ; SI: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[TRUNC7]]
7572 ; SI: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
7573 ; SI: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
7574 ; SI: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C6]](s32)
7575 ; SI: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
7576 ; SI: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
7577 ; SI: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 1, addrspace 5)
7578 ; SI: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
7579 ; SI: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 1, addrspace 5)
7580 ; SI: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C1]](s32)
7581 ; SI: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 1, addrspace 5)
7582 ; SI: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C2]](s32)
7583 ; SI: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 1, addrspace 5)
7584 ; SI: [[TRUNC8:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD8]](s32)
7585 ; SI: [[AND8:%[0-9]+]]:_(s16) = G_AND [[TRUNC8]], [[C3]]
7586 ; SI: [[COPY9:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
7587 ; SI: [[COPY10:%[0-9]+]]:_(s32) = COPY [[LOAD9]](s32)
7588 ; SI: [[AND9:%[0-9]+]]:_(s32) = G_AND [[COPY10]], [[C5]]
7589 ; SI: [[SHL6:%[0-9]+]]:_(s32) = G_SHL [[AND9]], [[COPY9]](s32)
7590 ; SI: [[TRUNC9:%[0-9]+]]:_(s16) = G_TRUNC [[SHL6]](s32)
7591 ; SI: [[OR6:%[0-9]+]]:_(s16) = G_OR [[AND8]], [[TRUNC9]]
7592 ; SI: [[TRUNC10:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD10]](s32)
7593 ; SI: [[AND10:%[0-9]+]]:_(s16) = G_AND [[TRUNC10]], [[C3]]
7594 ; SI: [[COPY11:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
7595 ; SI: [[COPY12:%[0-9]+]]:_(s32) = COPY [[LOAD11]](s32)
7596 ; SI: [[AND11:%[0-9]+]]:_(s32) = G_AND [[COPY12]], [[C5]]
7597 ; SI: [[SHL7:%[0-9]+]]:_(s32) = G_SHL [[AND11]], [[COPY11]](s32)
7598 ; SI: [[TRUNC11:%[0-9]+]]:_(s16) = G_TRUNC [[SHL7]](s32)
7599 ; SI: [[OR7:%[0-9]+]]:_(s16) = G_OR [[AND10]], [[TRUNC11]]
7600 ; SI: [[ZEXT4:%[0-9]+]]:_(s32) = G_ZEXT [[OR6]](s16)
7601 ; SI: [[ZEXT5:%[0-9]+]]:_(s32) = G_ZEXT [[OR7]](s16)
7602 ; SI: [[SHL8:%[0-9]+]]:_(s32) = G_SHL [[ZEXT5]], [[C6]](s32)
7603 ; SI: [[OR8:%[0-9]+]]:_(s32) = G_OR [[ZEXT4]], [[SHL8]]
7604 ; SI: [[C8:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
7605 ; SI: [[GEP11:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C8]](s32)
7606 ; SI: [[LOAD12:%[0-9]+]]:_(s32) = G_LOAD [[GEP11]](p5) :: (load 1, addrspace 5)
7607 ; SI: [[GEP12:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C]](s32)
7608 ; SI: [[LOAD13:%[0-9]+]]:_(s32) = G_LOAD [[GEP12]](p5) :: (load 1, addrspace 5)
7609 ; SI: [[GEP13:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C1]](s32)
7610 ; SI: [[LOAD14:%[0-9]+]]:_(s32) = G_LOAD [[GEP13]](p5) :: (load 1, addrspace 5)
7611 ; SI: [[GEP14:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C2]](s32)
7612 ; SI: [[LOAD15:%[0-9]+]]:_(s32) = G_LOAD [[GEP14]](p5) :: (load 1, addrspace 5)
7613 ; SI: [[TRUNC12:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD12]](s32)
7614 ; SI: [[AND12:%[0-9]+]]:_(s16) = G_AND [[TRUNC12]], [[C3]]
7615 ; SI: [[COPY13:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
7616 ; SI: [[COPY14:%[0-9]+]]:_(s32) = COPY [[LOAD13]](s32)
7617 ; SI: [[AND13:%[0-9]+]]:_(s32) = G_AND [[COPY14]], [[C5]]
7618 ; SI: [[SHL9:%[0-9]+]]:_(s32) = G_SHL [[AND13]], [[COPY13]](s32)
7619 ; SI: [[TRUNC13:%[0-9]+]]:_(s16) = G_TRUNC [[SHL9]](s32)
7620 ; SI: [[OR9:%[0-9]+]]:_(s16) = G_OR [[AND12]], [[TRUNC13]]
7621 ; SI: [[TRUNC14:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD14]](s32)
7622 ; SI: [[AND14:%[0-9]+]]:_(s16) = G_AND [[TRUNC14]], [[C3]]
7623 ; SI: [[COPY15:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
7624 ; SI: [[COPY16:%[0-9]+]]:_(s32) = COPY [[LOAD15]](s32)
7625 ; SI: [[AND15:%[0-9]+]]:_(s32) = G_AND [[COPY16]], [[C5]]
7626 ; SI: [[SHL10:%[0-9]+]]:_(s32) = G_SHL [[AND15]], [[COPY15]](s32)
7627 ; SI: [[TRUNC15:%[0-9]+]]:_(s16) = G_TRUNC [[SHL10]](s32)
7628 ; SI: [[OR10:%[0-9]+]]:_(s16) = G_OR [[AND14]], [[TRUNC15]]
7629 ; SI: [[ZEXT6:%[0-9]+]]:_(s32) = G_ZEXT [[OR9]](s16)
7630 ; SI: [[ZEXT7:%[0-9]+]]:_(s32) = G_ZEXT [[OR10]](s16)
7631 ; SI: [[SHL11:%[0-9]+]]:_(s32) = G_SHL [[ZEXT7]], [[C6]](s32)
7632 ; SI: [[OR11:%[0-9]+]]:_(s32) = G_OR [[ZEXT6]], [[SHL11]]
7633 ; SI: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[OR2]](s32), [[OR5]](s32), [[OR8]](s32), [[OR11]](s32)
7634 ; SI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<4 x s32>)
7635 ; CI-LABEL: name: test_load_private_v4s32_align1
7636 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
7637 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
7638 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
7639 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
7640 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
7641 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
7642 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
7643 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
7644 ; CI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
7645 ; CI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
7646 ; CI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
7647 ; CI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
7648 ; CI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
7649 ; CI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
7650 ; CI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
7651 ; CI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
7652 ; CI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
7653 ; CI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
7654 ; CI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C5]]
7655 ; CI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[COPY1]](s32)
7656 ; CI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[SHL]](s32)
7657 ; CI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[TRUNC1]]
7658 ; CI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
7659 ; CI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
7660 ; CI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
7661 ; CI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
7662 ; CI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C5]]
7663 ; CI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[COPY3]](s32)
7664 ; CI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[SHL1]](s32)
7665 ; CI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[TRUNC3]]
7666 ; CI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
7667 ; CI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
7668 ; CI: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
7669 ; CI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C6]](s32)
7670 ; CI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
7671 ; CI: [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
7672 ; CI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C7]](s32)
7673 ; CI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 5)
7674 ; CI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
7675 ; CI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 5)
7676 ; CI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
7677 ; CI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 5)
7678 ; CI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
7679 ; CI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 5)
7680 ; CI: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
7681 ; CI: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
7682 ; CI: [[COPY5:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
7683 ; CI: [[COPY6:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
7684 ; CI: [[AND5:%[0-9]+]]:_(s32) = G_AND [[COPY6]], [[C5]]
7685 ; CI: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[AND5]], [[COPY5]](s32)
7686 ; CI: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[SHL3]](s32)
7687 ; CI: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[TRUNC5]]
7688 ; CI: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
7689 ; CI: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
7690 ; CI: [[COPY7:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
7691 ; CI: [[COPY8:%[0-9]+]]:_(s32) = COPY [[LOAD7]](s32)
7692 ; CI: [[AND7:%[0-9]+]]:_(s32) = G_AND [[COPY8]], [[C5]]
7693 ; CI: [[SHL4:%[0-9]+]]:_(s32) = G_SHL [[AND7]], [[COPY7]](s32)
7694 ; CI: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[SHL4]](s32)
7695 ; CI: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[TRUNC7]]
7696 ; CI: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
7697 ; CI: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
7698 ; CI: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C6]](s32)
7699 ; CI: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
7700 ; CI: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
7701 ; CI: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 1, addrspace 5)
7702 ; CI: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
7703 ; CI: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 1, addrspace 5)
7704 ; CI: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C1]](s32)
7705 ; CI: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 1, addrspace 5)
7706 ; CI: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C2]](s32)
7707 ; CI: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 1, addrspace 5)
7708 ; CI: [[TRUNC8:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD8]](s32)
7709 ; CI: [[AND8:%[0-9]+]]:_(s16) = G_AND [[TRUNC8]], [[C3]]
7710 ; CI: [[COPY9:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
7711 ; CI: [[COPY10:%[0-9]+]]:_(s32) = COPY [[LOAD9]](s32)
7712 ; CI: [[AND9:%[0-9]+]]:_(s32) = G_AND [[COPY10]], [[C5]]
7713 ; CI: [[SHL6:%[0-9]+]]:_(s32) = G_SHL [[AND9]], [[COPY9]](s32)
7714 ; CI: [[TRUNC9:%[0-9]+]]:_(s16) = G_TRUNC [[SHL6]](s32)
7715 ; CI: [[OR6:%[0-9]+]]:_(s16) = G_OR [[AND8]], [[TRUNC9]]
7716 ; CI: [[TRUNC10:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD10]](s32)
7717 ; CI: [[AND10:%[0-9]+]]:_(s16) = G_AND [[TRUNC10]], [[C3]]
7718 ; CI: [[COPY11:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
7719 ; CI: [[COPY12:%[0-9]+]]:_(s32) = COPY [[LOAD11]](s32)
7720 ; CI: [[AND11:%[0-9]+]]:_(s32) = G_AND [[COPY12]], [[C5]]
7721 ; CI: [[SHL7:%[0-9]+]]:_(s32) = G_SHL [[AND11]], [[COPY11]](s32)
7722 ; CI: [[TRUNC11:%[0-9]+]]:_(s16) = G_TRUNC [[SHL7]](s32)
7723 ; CI: [[OR7:%[0-9]+]]:_(s16) = G_OR [[AND10]], [[TRUNC11]]
7724 ; CI: [[ZEXT4:%[0-9]+]]:_(s32) = G_ZEXT [[OR6]](s16)
7725 ; CI: [[ZEXT5:%[0-9]+]]:_(s32) = G_ZEXT [[OR7]](s16)
7726 ; CI: [[SHL8:%[0-9]+]]:_(s32) = G_SHL [[ZEXT5]], [[C6]](s32)
7727 ; CI: [[OR8:%[0-9]+]]:_(s32) = G_OR [[ZEXT4]], [[SHL8]]
7728 ; CI: [[C8:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
7729 ; CI: [[GEP11:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C8]](s32)
7730 ; CI: [[LOAD12:%[0-9]+]]:_(s32) = G_LOAD [[GEP11]](p5) :: (load 1, addrspace 5)
7731 ; CI: [[GEP12:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C]](s32)
7732 ; CI: [[LOAD13:%[0-9]+]]:_(s32) = G_LOAD [[GEP12]](p5) :: (load 1, addrspace 5)
7733 ; CI: [[GEP13:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C1]](s32)
7734 ; CI: [[LOAD14:%[0-9]+]]:_(s32) = G_LOAD [[GEP13]](p5) :: (load 1, addrspace 5)
7735 ; CI: [[GEP14:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C2]](s32)
7736 ; CI: [[LOAD15:%[0-9]+]]:_(s32) = G_LOAD [[GEP14]](p5) :: (load 1, addrspace 5)
7737 ; CI: [[TRUNC12:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD12]](s32)
7738 ; CI: [[AND12:%[0-9]+]]:_(s16) = G_AND [[TRUNC12]], [[C3]]
7739 ; CI: [[COPY13:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
7740 ; CI: [[COPY14:%[0-9]+]]:_(s32) = COPY [[LOAD13]](s32)
7741 ; CI: [[AND13:%[0-9]+]]:_(s32) = G_AND [[COPY14]], [[C5]]
7742 ; CI: [[SHL9:%[0-9]+]]:_(s32) = G_SHL [[AND13]], [[COPY13]](s32)
7743 ; CI: [[TRUNC13:%[0-9]+]]:_(s16) = G_TRUNC [[SHL9]](s32)
7744 ; CI: [[OR9:%[0-9]+]]:_(s16) = G_OR [[AND12]], [[TRUNC13]]
7745 ; CI: [[TRUNC14:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD14]](s32)
7746 ; CI: [[AND14:%[0-9]+]]:_(s16) = G_AND [[TRUNC14]], [[C3]]
7747 ; CI: [[COPY15:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
7748 ; CI: [[COPY16:%[0-9]+]]:_(s32) = COPY [[LOAD15]](s32)
7749 ; CI: [[AND15:%[0-9]+]]:_(s32) = G_AND [[COPY16]], [[C5]]
7750 ; CI: [[SHL10:%[0-9]+]]:_(s32) = G_SHL [[AND15]], [[COPY15]](s32)
7751 ; CI: [[TRUNC15:%[0-9]+]]:_(s16) = G_TRUNC [[SHL10]](s32)
7752 ; CI: [[OR10:%[0-9]+]]:_(s16) = G_OR [[AND14]], [[TRUNC15]]
7753 ; CI: [[ZEXT6:%[0-9]+]]:_(s32) = G_ZEXT [[OR9]](s16)
7754 ; CI: [[ZEXT7:%[0-9]+]]:_(s32) = G_ZEXT [[OR10]](s16)
7755 ; CI: [[SHL11:%[0-9]+]]:_(s32) = G_SHL [[ZEXT7]], [[C6]](s32)
7756 ; CI: [[OR11:%[0-9]+]]:_(s32) = G_OR [[ZEXT6]], [[SHL11]]
7757 ; CI: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[OR2]](s32), [[OR5]](s32), [[OR8]](s32), [[OR11]](s32)
7758 ; CI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<4 x s32>)
7759 ; VI-LABEL: name: test_load_private_v4s32_align1
7760 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
7761 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
7762 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
7763 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
7764 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
7765 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
7766 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
7767 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
7768 ; VI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
7769 ; VI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
7770 ; VI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
7771 ; VI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
7772 ; VI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
7773 ; VI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
7774 ; VI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
7775 ; VI: [[AND1:%[0-9]+]]:_(s16) = G_AND [[TRUNC1]], [[C3]]
7776 ; VI: [[C4:%[0-9]+]]:_(s16) = G_CONSTANT i16 8
7777 ; VI: [[SHL:%[0-9]+]]:_(s16) = G_SHL [[AND1]], [[C4]](s16)
7778 ; VI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[SHL]]
7779 ; VI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
7780 ; VI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
7781 ; VI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD3]](s32)
7782 ; VI: [[AND3:%[0-9]+]]:_(s16) = G_AND [[TRUNC3]], [[C3]]
7783 ; VI: [[SHL1:%[0-9]+]]:_(s16) = G_SHL [[AND3]], [[C4]](s16)
7784 ; VI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[SHL1]]
7785 ; VI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
7786 ; VI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
7787 ; VI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
7788 ; VI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C5]](s32)
7789 ; VI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
7790 ; VI: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
7791 ; VI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C6]](s32)
7792 ; VI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 5)
7793 ; VI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
7794 ; VI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 5)
7795 ; VI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
7796 ; VI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 5)
7797 ; VI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
7798 ; VI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 5)
7799 ; VI: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
7800 ; VI: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
7801 ; VI: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD5]](s32)
7802 ; VI: [[AND5:%[0-9]+]]:_(s16) = G_AND [[TRUNC5]], [[C3]]
7803 ; VI: [[SHL3:%[0-9]+]]:_(s16) = G_SHL [[AND5]], [[C4]](s16)
7804 ; VI: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[SHL3]]
7805 ; VI: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
7806 ; VI: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
7807 ; VI: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD7]](s32)
7808 ; VI: [[AND7:%[0-9]+]]:_(s16) = G_AND [[TRUNC7]], [[C3]]
7809 ; VI: [[SHL4:%[0-9]+]]:_(s16) = G_SHL [[AND7]], [[C4]](s16)
7810 ; VI: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[SHL4]]
7811 ; VI: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
7812 ; VI: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
7813 ; VI: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C5]](s32)
7814 ; VI: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
7815 ; VI: [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
7816 ; VI: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C7]](s32)
7817 ; VI: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 1, addrspace 5)
7818 ; VI: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
7819 ; VI: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 1, addrspace 5)
7820 ; VI: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C1]](s32)
7821 ; VI: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 1, addrspace 5)
7822 ; VI: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C2]](s32)
7823 ; VI: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 1, addrspace 5)
7824 ; VI: [[TRUNC8:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD8]](s32)
7825 ; VI: [[AND8:%[0-9]+]]:_(s16) = G_AND [[TRUNC8]], [[C3]]
7826 ; VI: [[TRUNC9:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD9]](s32)
7827 ; VI: [[AND9:%[0-9]+]]:_(s16) = G_AND [[TRUNC9]], [[C3]]
7828 ; VI: [[SHL6:%[0-9]+]]:_(s16) = G_SHL [[AND9]], [[C4]](s16)
7829 ; VI: [[OR6:%[0-9]+]]:_(s16) = G_OR [[AND8]], [[SHL6]]
7830 ; VI: [[TRUNC10:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD10]](s32)
7831 ; VI: [[AND10:%[0-9]+]]:_(s16) = G_AND [[TRUNC10]], [[C3]]
7832 ; VI: [[TRUNC11:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD11]](s32)
7833 ; VI: [[AND11:%[0-9]+]]:_(s16) = G_AND [[TRUNC11]], [[C3]]
7834 ; VI: [[SHL7:%[0-9]+]]:_(s16) = G_SHL [[AND11]], [[C4]](s16)
7835 ; VI: [[OR7:%[0-9]+]]:_(s16) = G_OR [[AND10]], [[SHL7]]
7836 ; VI: [[ZEXT4:%[0-9]+]]:_(s32) = G_ZEXT [[OR6]](s16)
7837 ; VI: [[ZEXT5:%[0-9]+]]:_(s32) = G_ZEXT [[OR7]](s16)
7838 ; VI: [[SHL8:%[0-9]+]]:_(s32) = G_SHL [[ZEXT5]], [[C5]](s32)
7839 ; VI: [[OR8:%[0-9]+]]:_(s32) = G_OR [[ZEXT4]], [[SHL8]]
7840 ; VI: [[C8:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
7841 ; VI: [[GEP11:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C8]](s32)
7842 ; VI: [[LOAD12:%[0-9]+]]:_(s32) = G_LOAD [[GEP11]](p5) :: (load 1, addrspace 5)
7843 ; VI: [[GEP12:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C]](s32)
7844 ; VI: [[LOAD13:%[0-9]+]]:_(s32) = G_LOAD [[GEP12]](p5) :: (load 1, addrspace 5)
7845 ; VI: [[GEP13:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C1]](s32)
7846 ; VI: [[LOAD14:%[0-9]+]]:_(s32) = G_LOAD [[GEP13]](p5) :: (load 1, addrspace 5)
7847 ; VI: [[GEP14:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C2]](s32)
7848 ; VI: [[LOAD15:%[0-9]+]]:_(s32) = G_LOAD [[GEP14]](p5) :: (load 1, addrspace 5)
7849 ; VI: [[TRUNC12:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD12]](s32)
7850 ; VI: [[AND12:%[0-9]+]]:_(s16) = G_AND [[TRUNC12]], [[C3]]
7851 ; VI: [[TRUNC13:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD13]](s32)
7852 ; VI: [[AND13:%[0-9]+]]:_(s16) = G_AND [[TRUNC13]], [[C3]]
7853 ; VI: [[SHL9:%[0-9]+]]:_(s16) = G_SHL [[AND13]], [[C4]](s16)
7854 ; VI: [[OR9:%[0-9]+]]:_(s16) = G_OR [[AND12]], [[SHL9]]
7855 ; VI: [[TRUNC14:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD14]](s32)
7856 ; VI: [[AND14:%[0-9]+]]:_(s16) = G_AND [[TRUNC14]], [[C3]]
7857 ; VI: [[TRUNC15:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD15]](s32)
7858 ; VI: [[AND15:%[0-9]+]]:_(s16) = G_AND [[TRUNC15]], [[C3]]
7859 ; VI: [[SHL10:%[0-9]+]]:_(s16) = G_SHL [[AND15]], [[C4]](s16)
7860 ; VI: [[OR10:%[0-9]+]]:_(s16) = G_OR [[AND14]], [[SHL10]]
7861 ; VI: [[ZEXT6:%[0-9]+]]:_(s32) = G_ZEXT [[OR9]](s16)
7862 ; VI: [[ZEXT7:%[0-9]+]]:_(s32) = G_ZEXT [[OR10]](s16)
7863 ; VI: [[SHL11:%[0-9]+]]:_(s32) = G_SHL [[ZEXT7]], [[C5]](s32)
7864 ; VI: [[OR11:%[0-9]+]]:_(s32) = G_OR [[ZEXT6]], [[SHL11]]
7865 ; VI: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[OR2]](s32), [[OR5]](s32), [[OR8]](s32), [[OR11]](s32)
7866 ; VI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<4 x s32>)
7867 ; GFX9-LABEL: name: test_load_private_v4s32_align1
7868 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
7869 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
7870 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
7871 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
7872 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
7873 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
7874 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
7875 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
7876 ; GFX9: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
7877 ; GFX9: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
7878 ; GFX9: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
7879 ; GFX9: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
7880 ; GFX9: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
7881 ; GFX9: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
7882 ; GFX9: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
7883 ; GFX9: [[AND1:%[0-9]+]]:_(s16) = G_AND [[TRUNC1]], [[C3]]
7884 ; GFX9: [[C4:%[0-9]+]]:_(s16) = G_CONSTANT i16 8
7885 ; GFX9: [[SHL:%[0-9]+]]:_(s16) = G_SHL [[AND1]], [[C4]](s16)
7886 ; GFX9: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[SHL]]
7887 ; GFX9: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
7888 ; GFX9: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
7889 ; GFX9: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD3]](s32)
7890 ; GFX9: [[AND3:%[0-9]+]]:_(s16) = G_AND [[TRUNC3]], [[C3]]
7891 ; GFX9: [[SHL1:%[0-9]+]]:_(s16) = G_SHL [[AND3]], [[C4]](s16)
7892 ; GFX9: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[SHL1]]
7893 ; GFX9: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
7894 ; GFX9: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
7895 ; GFX9: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
7896 ; GFX9: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C5]](s32)
7897 ; GFX9: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
7898 ; GFX9: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
7899 ; GFX9: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C6]](s32)
7900 ; GFX9: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 5)
7901 ; GFX9: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
7902 ; GFX9: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 5)
7903 ; GFX9: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
7904 ; GFX9: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 5)
7905 ; GFX9: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
7906 ; GFX9: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 5)
7907 ; GFX9: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
7908 ; GFX9: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
7909 ; GFX9: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD5]](s32)
7910 ; GFX9: [[AND5:%[0-9]+]]:_(s16) = G_AND [[TRUNC5]], [[C3]]
7911 ; GFX9: [[SHL3:%[0-9]+]]:_(s16) = G_SHL [[AND5]], [[C4]](s16)
7912 ; GFX9: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[SHL3]]
7913 ; GFX9: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
7914 ; GFX9: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
7915 ; GFX9: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD7]](s32)
7916 ; GFX9: [[AND7:%[0-9]+]]:_(s16) = G_AND [[TRUNC7]], [[C3]]
7917 ; GFX9: [[SHL4:%[0-9]+]]:_(s16) = G_SHL [[AND7]], [[C4]](s16)
7918 ; GFX9: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[SHL4]]
7919 ; GFX9: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
7920 ; GFX9: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
7921 ; GFX9: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C5]](s32)
7922 ; GFX9: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
7923 ; GFX9: [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
7924 ; GFX9: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C7]](s32)
7925 ; GFX9: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 1, addrspace 5)
7926 ; GFX9: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
7927 ; GFX9: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 1, addrspace 5)
7928 ; GFX9: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C1]](s32)
7929 ; GFX9: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 1, addrspace 5)
7930 ; GFX9: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C2]](s32)
7931 ; GFX9: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 1, addrspace 5)
7932 ; GFX9: [[TRUNC8:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD8]](s32)
7933 ; GFX9: [[AND8:%[0-9]+]]:_(s16) = G_AND [[TRUNC8]], [[C3]]
7934 ; GFX9: [[TRUNC9:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD9]](s32)
7935 ; GFX9: [[AND9:%[0-9]+]]:_(s16) = G_AND [[TRUNC9]], [[C3]]
7936 ; GFX9: [[SHL6:%[0-9]+]]:_(s16) = G_SHL [[AND9]], [[C4]](s16)
7937 ; GFX9: [[OR6:%[0-9]+]]:_(s16) = G_OR [[AND8]], [[SHL6]]
7938 ; GFX9: [[TRUNC10:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD10]](s32)
7939 ; GFX9: [[AND10:%[0-9]+]]:_(s16) = G_AND [[TRUNC10]], [[C3]]
7940 ; GFX9: [[TRUNC11:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD11]](s32)
7941 ; GFX9: [[AND11:%[0-9]+]]:_(s16) = G_AND [[TRUNC11]], [[C3]]
7942 ; GFX9: [[SHL7:%[0-9]+]]:_(s16) = G_SHL [[AND11]], [[C4]](s16)
7943 ; GFX9: [[OR7:%[0-9]+]]:_(s16) = G_OR [[AND10]], [[SHL7]]
7944 ; GFX9: [[ZEXT4:%[0-9]+]]:_(s32) = G_ZEXT [[OR6]](s16)
7945 ; GFX9: [[ZEXT5:%[0-9]+]]:_(s32) = G_ZEXT [[OR7]](s16)
7946 ; GFX9: [[SHL8:%[0-9]+]]:_(s32) = G_SHL [[ZEXT5]], [[C5]](s32)
7947 ; GFX9: [[OR8:%[0-9]+]]:_(s32) = G_OR [[ZEXT4]], [[SHL8]]
7948 ; GFX9: [[C8:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
7949 ; GFX9: [[GEP11:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C8]](s32)
7950 ; GFX9: [[LOAD12:%[0-9]+]]:_(s32) = G_LOAD [[GEP11]](p5) :: (load 1, addrspace 5)
7951 ; GFX9: [[GEP12:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C]](s32)
7952 ; GFX9: [[LOAD13:%[0-9]+]]:_(s32) = G_LOAD [[GEP12]](p5) :: (load 1, addrspace 5)
7953 ; GFX9: [[GEP13:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C1]](s32)
7954 ; GFX9: [[LOAD14:%[0-9]+]]:_(s32) = G_LOAD [[GEP13]](p5) :: (load 1, addrspace 5)
7955 ; GFX9: [[GEP14:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C2]](s32)
7956 ; GFX9: [[LOAD15:%[0-9]+]]:_(s32) = G_LOAD [[GEP14]](p5) :: (load 1, addrspace 5)
7957 ; GFX9: [[TRUNC12:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD12]](s32)
7958 ; GFX9: [[AND12:%[0-9]+]]:_(s16) = G_AND [[TRUNC12]], [[C3]]
7959 ; GFX9: [[TRUNC13:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD13]](s32)
7960 ; GFX9: [[AND13:%[0-9]+]]:_(s16) = G_AND [[TRUNC13]], [[C3]]
7961 ; GFX9: [[SHL9:%[0-9]+]]:_(s16) = G_SHL [[AND13]], [[C4]](s16)
7962 ; GFX9: [[OR9:%[0-9]+]]:_(s16) = G_OR [[AND12]], [[SHL9]]
7963 ; GFX9: [[TRUNC14:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD14]](s32)
7964 ; GFX9: [[AND14:%[0-9]+]]:_(s16) = G_AND [[TRUNC14]], [[C3]]
7965 ; GFX9: [[TRUNC15:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD15]](s32)
7966 ; GFX9: [[AND15:%[0-9]+]]:_(s16) = G_AND [[TRUNC15]], [[C3]]
7967 ; GFX9: [[SHL10:%[0-9]+]]:_(s16) = G_SHL [[AND15]], [[C4]](s16)
7968 ; GFX9: [[OR10:%[0-9]+]]:_(s16) = G_OR [[AND14]], [[SHL10]]
7969 ; GFX9: [[ZEXT6:%[0-9]+]]:_(s32) = G_ZEXT [[OR9]](s16)
7970 ; GFX9: [[ZEXT7:%[0-9]+]]:_(s32) = G_ZEXT [[OR10]](s16)
7971 ; GFX9: [[SHL11:%[0-9]+]]:_(s32) = G_SHL [[ZEXT7]], [[C5]](s32)
7972 ; GFX9: [[OR11:%[0-9]+]]:_(s32) = G_OR [[ZEXT6]], [[SHL11]]
7973 ; GFX9: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[OR2]](s32), [[OR5]](s32), [[OR8]](s32), [[OR11]](s32)
7974 ; GFX9: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<4 x s32>)
7975 %0:_(p5) = COPY $vgpr0
7976 %1:_(<4 x s32>) = G_LOAD %0 :: (load 16, align 1, addrspace 5)
7977 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1
7981 name: test_load_private_v8s32_align32
7986 ; SI-LABEL: name: test_load_private_v8s32_align32
7987 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
7988 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 32, addrspace 5)
7989 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
7990 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
7991 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
7992 ; SI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[LOAD]](s32), [[LOAD1]](s32)
7993 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
7994 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
7995 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, align 8, addrspace 5)
7996 ; SI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
7997 ; SI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
7998 ; SI: [[BUILD_VECTOR1:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[LOAD2]](s32), [[LOAD3]](s32)
7999 ; SI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
8000 ; SI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
8001 ; SI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 4, align 16, addrspace 5)
8002 ; SI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
8003 ; SI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 4, addrspace 5)
8004 ; SI: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[LOAD4]](s32), [[LOAD5]](s32)
8005 ; SI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 24
8006 ; SI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
8007 ; SI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 4, align 8, addrspace 5)
8008 ; SI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP5]], [[C]](s32)
8009 ; SI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 4, addrspace 5)
8010 ; SI: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[LOAD6]](s32), [[LOAD7]](s32)
8011 ; SI: [[CONCAT_VECTORS:%[0-9]+]]:_(<8 x s32>) = G_CONCAT_VECTORS [[BUILD_VECTOR]](<2 x s32>), [[BUILD_VECTOR1]](<2 x s32>), [[BUILD_VECTOR2]](<2 x s32>), [[BUILD_VECTOR3]](<2 x s32>)
8012 ; SI: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[CONCAT_VECTORS]](<8 x s32>)
8013 ; CI-LABEL: name: test_load_private_v8s32_align32
8014 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
8015 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 32, addrspace 5)
8016 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
8017 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
8018 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
8019 ; CI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[LOAD]](s32), [[LOAD1]](s32)
8020 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
8021 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
8022 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, align 8, addrspace 5)
8023 ; CI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
8024 ; CI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
8025 ; CI: [[BUILD_VECTOR1:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[LOAD2]](s32), [[LOAD3]](s32)
8026 ; CI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
8027 ; CI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
8028 ; CI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 4, align 16, addrspace 5)
8029 ; CI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
8030 ; CI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 4, addrspace 5)
8031 ; CI: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[LOAD4]](s32), [[LOAD5]](s32)
8032 ; CI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 24
8033 ; CI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
8034 ; CI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 4, align 8, addrspace 5)
8035 ; CI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP5]], [[C]](s32)
8036 ; CI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 4, addrspace 5)
8037 ; CI: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[LOAD6]](s32), [[LOAD7]](s32)
8038 ; CI: [[CONCAT_VECTORS:%[0-9]+]]:_(<8 x s32>) = G_CONCAT_VECTORS [[BUILD_VECTOR]](<2 x s32>), [[BUILD_VECTOR1]](<2 x s32>), [[BUILD_VECTOR2]](<2 x s32>), [[BUILD_VECTOR3]](<2 x s32>)
8039 ; CI: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[CONCAT_VECTORS]](<8 x s32>)
8040 ; VI-LABEL: name: test_load_private_v8s32_align32
8041 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
8042 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 32, addrspace 5)
8043 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
8044 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
8045 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
8046 ; VI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[LOAD]](s32), [[LOAD1]](s32)
8047 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
8048 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
8049 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, align 8, addrspace 5)
8050 ; VI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
8051 ; VI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
8052 ; VI: [[BUILD_VECTOR1:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[LOAD2]](s32), [[LOAD3]](s32)
8053 ; VI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
8054 ; VI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
8055 ; VI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 4, align 16, addrspace 5)
8056 ; VI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
8057 ; VI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 4, addrspace 5)
8058 ; VI: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[LOAD4]](s32), [[LOAD5]](s32)
8059 ; VI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 24
8060 ; VI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
8061 ; VI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 4, align 8, addrspace 5)
8062 ; VI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP5]], [[C]](s32)
8063 ; VI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 4, addrspace 5)
8064 ; VI: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[LOAD6]](s32), [[LOAD7]](s32)
8065 ; VI: [[CONCAT_VECTORS:%[0-9]+]]:_(<8 x s32>) = G_CONCAT_VECTORS [[BUILD_VECTOR]](<2 x s32>), [[BUILD_VECTOR1]](<2 x s32>), [[BUILD_VECTOR2]](<2 x s32>), [[BUILD_VECTOR3]](<2 x s32>)
8066 ; VI: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[CONCAT_VECTORS]](<8 x s32>)
8067 ; GFX9-LABEL: name: test_load_private_v8s32_align32
8068 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
8069 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 32, addrspace 5)
8070 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
8071 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
8072 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
8073 ; GFX9: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[LOAD]](s32), [[LOAD1]](s32)
8074 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
8075 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
8076 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, align 8, addrspace 5)
8077 ; GFX9: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
8078 ; GFX9: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
8079 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[LOAD2]](s32), [[LOAD3]](s32)
8080 ; GFX9: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
8081 ; GFX9: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
8082 ; GFX9: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 4, align 16, addrspace 5)
8083 ; GFX9: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
8084 ; GFX9: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 4, addrspace 5)
8085 ; GFX9: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[LOAD4]](s32), [[LOAD5]](s32)
8086 ; GFX9: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 24
8087 ; GFX9: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
8088 ; GFX9: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 4, align 8, addrspace 5)
8089 ; GFX9: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP5]], [[C]](s32)
8090 ; GFX9: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 4, addrspace 5)
8091 ; GFX9: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[LOAD6]](s32), [[LOAD7]](s32)
8092 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<8 x s32>) = G_CONCAT_VECTORS [[BUILD_VECTOR]](<2 x s32>), [[BUILD_VECTOR1]](<2 x s32>), [[BUILD_VECTOR2]](<2 x s32>), [[BUILD_VECTOR3]](<2 x s32>)
8093 ; GFX9: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[CONCAT_VECTORS]](<8 x s32>)
8094 %0:_(p5) = COPY $vgpr0
8095 %1:_(<8 x s32>) = G_LOAD %0 :: (load 16, align 32, addrspace 5)
8096 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY %1
8100 name: test_load_private_v16s32_align32
8105 ; SI-LABEL: name: test_load_private_v16s32_align32
8106 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
8107 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 32, addrspace 5)
8108 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
8109 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
8110 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
8111 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
8112 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
8113 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, align 8, addrspace 5)
8114 ; SI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
8115 ; SI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
8116 ; SI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
8117 ; SI: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[LOAD]](s32), [[LOAD1]](s32), [[LOAD2]](s32), [[LOAD3]](s32)
8118 ; SI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
8119 ; SI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
8120 ; SI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 4, align 16, addrspace 5)
8121 ; SI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
8122 ; SI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 4, addrspace 5)
8123 ; SI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
8124 ; SI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 4, align 8, addrspace 5)
8125 ; SI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
8126 ; SI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 4, addrspace 5)
8127 ; SI: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[LOAD4]](s32), [[LOAD5]](s32), [[LOAD6]](s32), [[LOAD7]](s32)
8128 ; SI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 32
8129 ; SI: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
8130 ; SI: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 4, align 32, addrspace 5)
8131 ; SI: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
8132 ; SI: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 4, addrspace 5)
8133 ; SI: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C1]](s32)
8134 ; SI: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 4, align 8, addrspace 5)
8135 ; SI: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C2]](s32)
8136 ; SI: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 4, addrspace 5)
8137 ; SI: [[BUILD_VECTOR2:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[LOAD8]](s32), [[LOAD9]](s32), [[LOAD10]](s32), [[LOAD11]](s32)
8138 ; SI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 48
8139 ; SI: [[GEP11:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C5]](s32)
8140 ; SI: [[LOAD12:%[0-9]+]]:_(s32) = G_LOAD [[GEP11]](p5) :: (load 4, align 16, addrspace 5)
8141 ; SI: [[GEP12:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C]](s32)
8142 ; SI: [[LOAD13:%[0-9]+]]:_(s32) = G_LOAD [[GEP12]](p5) :: (load 4, addrspace 5)
8143 ; SI: [[GEP13:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C1]](s32)
8144 ; SI: [[LOAD14:%[0-9]+]]:_(s32) = G_LOAD [[GEP13]](p5) :: (load 4, align 8, addrspace 5)
8145 ; SI: [[GEP14:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C2]](s32)
8146 ; SI: [[LOAD15:%[0-9]+]]:_(s32) = G_LOAD [[GEP14]](p5) :: (load 4, addrspace 5)
8147 ; SI: [[BUILD_VECTOR3:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[LOAD12]](s32), [[LOAD13]](s32), [[LOAD14]](s32), [[LOAD15]](s32)
8148 ; SI: [[CONCAT_VECTORS:%[0-9]+]]:_(<16 x s32>) = G_CONCAT_VECTORS [[BUILD_VECTOR]](<4 x s32>), [[BUILD_VECTOR1]](<4 x s32>), [[BUILD_VECTOR2]](<4 x s32>), [[BUILD_VECTOR3]](<4 x s32>)
8149 ; SI: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY [[CONCAT_VECTORS]](<16 x s32>)
8150 ; CI-LABEL: name: test_load_private_v16s32_align32
8151 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
8152 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 32, addrspace 5)
8153 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
8154 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
8155 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
8156 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
8157 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
8158 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, align 8, addrspace 5)
8159 ; CI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
8160 ; CI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
8161 ; CI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
8162 ; CI: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[LOAD]](s32), [[LOAD1]](s32), [[LOAD2]](s32), [[LOAD3]](s32)
8163 ; CI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
8164 ; CI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
8165 ; CI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 4, align 16, addrspace 5)
8166 ; CI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
8167 ; CI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 4, addrspace 5)
8168 ; CI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
8169 ; CI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 4, align 8, addrspace 5)
8170 ; CI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
8171 ; CI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 4, addrspace 5)
8172 ; CI: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[LOAD4]](s32), [[LOAD5]](s32), [[LOAD6]](s32), [[LOAD7]](s32)
8173 ; CI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 32
8174 ; CI: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
8175 ; CI: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 4, align 32, addrspace 5)
8176 ; CI: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
8177 ; CI: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 4, addrspace 5)
8178 ; CI: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C1]](s32)
8179 ; CI: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 4, align 8, addrspace 5)
8180 ; CI: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C2]](s32)
8181 ; CI: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 4, addrspace 5)
8182 ; CI: [[BUILD_VECTOR2:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[LOAD8]](s32), [[LOAD9]](s32), [[LOAD10]](s32), [[LOAD11]](s32)
8183 ; CI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 48
8184 ; CI: [[GEP11:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C5]](s32)
8185 ; CI: [[LOAD12:%[0-9]+]]:_(s32) = G_LOAD [[GEP11]](p5) :: (load 4, align 16, addrspace 5)
8186 ; CI: [[GEP12:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C]](s32)
8187 ; CI: [[LOAD13:%[0-9]+]]:_(s32) = G_LOAD [[GEP12]](p5) :: (load 4, addrspace 5)
8188 ; CI: [[GEP13:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C1]](s32)
8189 ; CI: [[LOAD14:%[0-9]+]]:_(s32) = G_LOAD [[GEP13]](p5) :: (load 4, align 8, addrspace 5)
8190 ; CI: [[GEP14:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C2]](s32)
8191 ; CI: [[LOAD15:%[0-9]+]]:_(s32) = G_LOAD [[GEP14]](p5) :: (load 4, addrspace 5)
8192 ; CI: [[BUILD_VECTOR3:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[LOAD12]](s32), [[LOAD13]](s32), [[LOAD14]](s32), [[LOAD15]](s32)
8193 ; CI: [[CONCAT_VECTORS:%[0-9]+]]:_(<16 x s32>) = G_CONCAT_VECTORS [[BUILD_VECTOR]](<4 x s32>), [[BUILD_VECTOR1]](<4 x s32>), [[BUILD_VECTOR2]](<4 x s32>), [[BUILD_VECTOR3]](<4 x s32>)
8194 ; CI: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY [[CONCAT_VECTORS]](<16 x s32>)
8195 ; VI-LABEL: name: test_load_private_v16s32_align32
8196 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
8197 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 32, addrspace 5)
8198 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
8199 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
8200 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
8201 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
8202 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
8203 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, align 8, addrspace 5)
8204 ; VI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
8205 ; VI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
8206 ; VI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
8207 ; VI: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[LOAD]](s32), [[LOAD1]](s32), [[LOAD2]](s32), [[LOAD3]](s32)
8208 ; VI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
8209 ; VI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
8210 ; VI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 4, align 16, addrspace 5)
8211 ; VI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
8212 ; VI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 4, addrspace 5)
8213 ; VI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
8214 ; VI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 4, align 8, addrspace 5)
8215 ; VI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
8216 ; VI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 4, addrspace 5)
8217 ; VI: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[LOAD4]](s32), [[LOAD5]](s32), [[LOAD6]](s32), [[LOAD7]](s32)
8218 ; VI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 32
8219 ; VI: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
8220 ; VI: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 4, align 32, addrspace 5)
8221 ; VI: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
8222 ; VI: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 4, addrspace 5)
8223 ; VI: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C1]](s32)
8224 ; VI: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 4, align 8, addrspace 5)
8225 ; VI: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C2]](s32)
8226 ; VI: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 4, addrspace 5)
8227 ; VI: [[BUILD_VECTOR2:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[LOAD8]](s32), [[LOAD9]](s32), [[LOAD10]](s32), [[LOAD11]](s32)
8228 ; VI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 48
8229 ; VI: [[GEP11:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C5]](s32)
8230 ; VI: [[LOAD12:%[0-9]+]]:_(s32) = G_LOAD [[GEP11]](p5) :: (load 4, align 16, addrspace 5)
8231 ; VI: [[GEP12:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C]](s32)
8232 ; VI: [[LOAD13:%[0-9]+]]:_(s32) = G_LOAD [[GEP12]](p5) :: (load 4, addrspace 5)
8233 ; VI: [[GEP13:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C1]](s32)
8234 ; VI: [[LOAD14:%[0-9]+]]:_(s32) = G_LOAD [[GEP13]](p5) :: (load 4, align 8, addrspace 5)
8235 ; VI: [[GEP14:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C2]](s32)
8236 ; VI: [[LOAD15:%[0-9]+]]:_(s32) = G_LOAD [[GEP14]](p5) :: (load 4, addrspace 5)
8237 ; VI: [[BUILD_VECTOR3:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[LOAD12]](s32), [[LOAD13]](s32), [[LOAD14]](s32), [[LOAD15]](s32)
8238 ; VI: [[CONCAT_VECTORS:%[0-9]+]]:_(<16 x s32>) = G_CONCAT_VECTORS [[BUILD_VECTOR]](<4 x s32>), [[BUILD_VECTOR1]](<4 x s32>), [[BUILD_VECTOR2]](<4 x s32>), [[BUILD_VECTOR3]](<4 x s32>)
8239 ; VI: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY [[CONCAT_VECTORS]](<16 x s32>)
8240 ; GFX9-LABEL: name: test_load_private_v16s32_align32
8241 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
8242 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 32, addrspace 5)
8243 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
8244 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
8245 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
8246 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
8247 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
8248 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, align 8, addrspace 5)
8249 ; GFX9: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
8250 ; GFX9: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
8251 ; GFX9: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
8252 ; GFX9: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[LOAD]](s32), [[LOAD1]](s32), [[LOAD2]](s32), [[LOAD3]](s32)
8253 ; GFX9: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
8254 ; GFX9: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
8255 ; GFX9: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 4, align 16, addrspace 5)
8256 ; GFX9: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
8257 ; GFX9: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 4, addrspace 5)
8258 ; GFX9: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
8259 ; GFX9: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 4, align 8, addrspace 5)
8260 ; GFX9: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
8261 ; GFX9: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 4, addrspace 5)
8262 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[LOAD4]](s32), [[LOAD5]](s32), [[LOAD6]](s32), [[LOAD7]](s32)
8263 ; GFX9: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 32
8264 ; GFX9: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
8265 ; GFX9: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 4, align 32, addrspace 5)
8266 ; GFX9: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
8267 ; GFX9: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 4, addrspace 5)
8268 ; GFX9: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C1]](s32)
8269 ; GFX9: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 4, align 8, addrspace 5)
8270 ; GFX9: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C2]](s32)
8271 ; GFX9: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 4, addrspace 5)
8272 ; GFX9: [[BUILD_VECTOR2:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[LOAD8]](s32), [[LOAD9]](s32), [[LOAD10]](s32), [[LOAD11]](s32)
8273 ; GFX9: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 48
8274 ; GFX9: [[GEP11:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C5]](s32)
8275 ; GFX9: [[LOAD12:%[0-9]+]]:_(s32) = G_LOAD [[GEP11]](p5) :: (load 4, align 16, addrspace 5)
8276 ; GFX9: [[GEP12:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C]](s32)
8277 ; GFX9: [[LOAD13:%[0-9]+]]:_(s32) = G_LOAD [[GEP12]](p5) :: (load 4, addrspace 5)
8278 ; GFX9: [[GEP13:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C1]](s32)
8279 ; GFX9: [[LOAD14:%[0-9]+]]:_(s32) = G_LOAD [[GEP13]](p5) :: (load 4, align 8, addrspace 5)
8280 ; GFX9: [[GEP14:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C2]](s32)
8281 ; GFX9: [[LOAD15:%[0-9]+]]:_(s32) = G_LOAD [[GEP14]](p5) :: (load 4, addrspace 5)
8282 ; GFX9: [[BUILD_VECTOR3:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[LOAD12]](s32), [[LOAD13]](s32), [[LOAD14]](s32), [[LOAD15]](s32)
8283 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<16 x s32>) = G_CONCAT_VECTORS [[BUILD_VECTOR]](<4 x s32>), [[BUILD_VECTOR1]](<4 x s32>), [[BUILD_VECTOR2]](<4 x s32>), [[BUILD_VECTOR3]](<4 x s32>)
8284 ; GFX9: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY [[CONCAT_VECTORS]](<16 x s32>)
8285 %0:_(p5) = COPY $vgpr0
8286 %1:_(<16 x s32>) = G_LOAD %0 :: (load 16, align 32, addrspace 5)
8287 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY %1
8291 name: test_load_private_v2s64_align4
8296 ; SI-LABEL: name: test_load_private_v2s64_align4
8297 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
8298 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
8299 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
8300 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
8301 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
8302 ; SI: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32)
8303 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
8304 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
8305 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, addrspace 5)
8306 ; SI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
8307 ; SI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
8308 ; SI: [[MV1:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[LOAD2]](s32), [[LOAD3]](s32)
8309 ; SI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s64>) = G_BUILD_VECTOR [[MV]](s64), [[MV1]](s64)
8310 ; SI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<2 x s64>)
8311 ; CI-LABEL: name: test_load_private_v2s64_align4
8312 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
8313 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
8314 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
8315 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
8316 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
8317 ; CI: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32)
8318 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
8319 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
8320 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, addrspace 5)
8321 ; CI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
8322 ; CI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
8323 ; CI: [[MV1:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[LOAD2]](s32), [[LOAD3]](s32)
8324 ; CI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s64>) = G_BUILD_VECTOR [[MV]](s64), [[MV1]](s64)
8325 ; CI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<2 x s64>)
8326 ; VI-LABEL: name: test_load_private_v2s64_align4
8327 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
8328 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
8329 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
8330 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
8331 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
8332 ; VI: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32)
8333 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
8334 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
8335 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, addrspace 5)
8336 ; VI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
8337 ; VI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
8338 ; VI: [[MV1:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[LOAD2]](s32), [[LOAD3]](s32)
8339 ; VI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s64>) = G_BUILD_VECTOR [[MV]](s64), [[MV1]](s64)
8340 ; VI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<2 x s64>)
8341 ; GFX9-LABEL: name: test_load_private_v2s64_align4
8342 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
8343 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
8344 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
8345 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
8346 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
8347 ; GFX9: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32)
8348 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
8349 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
8350 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, addrspace 5)
8351 ; GFX9: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
8352 ; GFX9: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
8353 ; GFX9: [[MV1:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[LOAD2]](s32), [[LOAD3]](s32)
8354 ; GFX9: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s64>) = G_BUILD_VECTOR [[MV]](s64), [[MV1]](s64)
8355 ; GFX9: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<2 x s64>)
8356 %0:_(p5) = COPY $vgpr0
8357 %1:_(<2 x s64>) = G_LOAD %0 :: (load 16, align 4, addrspace 5)
8358 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1
8362 name: test_load_private_v2s64_align16
8367 ; SI-LABEL: name: test_load_private_v2s64_align16
8368 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
8369 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
8370 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
8371 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
8372 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
8373 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
8374 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
8375 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
8376 ; SI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
8377 ; SI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
8378 ; SI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
8379 ; SI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
8380 ; SI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
8381 ; SI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
8382 ; SI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
8383 ; SI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
8384 ; SI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
8385 ; SI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
8386 ; SI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C5]]
8387 ; SI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[COPY1]](s32)
8388 ; SI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[SHL]](s32)
8389 ; SI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[TRUNC1]]
8390 ; SI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
8391 ; SI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
8392 ; SI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
8393 ; SI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
8394 ; SI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C5]]
8395 ; SI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[COPY3]](s32)
8396 ; SI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[SHL1]](s32)
8397 ; SI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[TRUNC3]]
8398 ; SI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
8399 ; SI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
8400 ; SI: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
8401 ; SI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C6]](s32)
8402 ; SI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
8403 ; SI: [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
8404 ; SI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C7]](s32)
8405 ; SI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 5)
8406 ; SI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
8407 ; SI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 5)
8408 ; SI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
8409 ; SI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 5)
8410 ; SI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
8411 ; SI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 5)
8412 ; SI: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
8413 ; SI: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
8414 ; SI: [[COPY5:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
8415 ; SI: [[COPY6:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
8416 ; SI: [[AND5:%[0-9]+]]:_(s32) = G_AND [[COPY6]], [[C5]]
8417 ; SI: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[AND5]], [[COPY5]](s32)
8418 ; SI: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[SHL3]](s32)
8419 ; SI: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[TRUNC5]]
8420 ; SI: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
8421 ; SI: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
8422 ; SI: [[COPY7:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
8423 ; SI: [[COPY8:%[0-9]+]]:_(s32) = COPY [[LOAD7]](s32)
8424 ; SI: [[AND7:%[0-9]+]]:_(s32) = G_AND [[COPY8]], [[C5]]
8425 ; SI: [[SHL4:%[0-9]+]]:_(s32) = G_SHL [[AND7]], [[COPY7]](s32)
8426 ; SI: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[SHL4]](s32)
8427 ; SI: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[TRUNC7]]
8428 ; SI: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
8429 ; SI: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
8430 ; SI: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C6]](s32)
8431 ; SI: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
8432 ; SI: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[OR2]](s32), [[OR5]](s32)
8433 ; SI: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
8434 ; SI: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 1, addrspace 5)
8435 ; SI: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
8436 ; SI: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 1, addrspace 5)
8437 ; SI: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C1]](s32)
8438 ; SI: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 1, addrspace 5)
8439 ; SI: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C2]](s32)
8440 ; SI: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 1, addrspace 5)
8441 ; SI: [[TRUNC8:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD8]](s32)
8442 ; SI: [[AND8:%[0-9]+]]:_(s16) = G_AND [[TRUNC8]], [[C3]]
8443 ; SI: [[COPY9:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
8444 ; SI: [[COPY10:%[0-9]+]]:_(s32) = COPY [[LOAD9]](s32)
8445 ; SI: [[AND9:%[0-9]+]]:_(s32) = G_AND [[COPY10]], [[C5]]
8446 ; SI: [[SHL6:%[0-9]+]]:_(s32) = G_SHL [[AND9]], [[COPY9]](s32)
8447 ; SI: [[TRUNC9:%[0-9]+]]:_(s16) = G_TRUNC [[SHL6]](s32)
8448 ; SI: [[OR6:%[0-9]+]]:_(s16) = G_OR [[AND8]], [[TRUNC9]]
8449 ; SI: [[TRUNC10:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD10]](s32)
8450 ; SI: [[AND10:%[0-9]+]]:_(s16) = G_AND [[TRUNC10]], [[C3]]
8451 ; SI: [[COPY11:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
8452 ; SI: [[COPY12:%[0-9]+]]:_(s32) = COPY [[LOAD11]](s32)
8453 ; SI: [[AND11:%[0-9]+]]:_(s32) = G_AND [[COPY12]], [[C5]]
8454 ; SI: [[SHL7:%[0-9]+]]:_(s32) = G_SHL [[AND11]], [[COPY11]](s32)
8455 ; SI: [[TRUNC11:%[0-9]+]]:_(s16) = G_TRUNC [[SHL7]](s32)
8456 ; SI: [[OR7:%[0-9]+]]:_(s16) = G_OR [[AND10]], [[TRUNC11]]
8457 ; SI: [[ZEXT4:%[0-9]+]]:_(s32) = G_ZEXT [[OR6]](s16)
8458 ; SI: [[ZEXT5:%[0-9]+]]:_(s32) = G_ZEXT [[OR7]](s16)
8459 ; SI: [[SHL8:%[0-9]+]]:_(s32) = G_SHL [[ZEXT5]], [[C6]](s32)
8460 ; SI: [[OR8:%[0-9]+]]:_(s32) = G_OR [[ZEXT4]], [[SHL8]]
8461 ; SI: [[GEP11:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C7]](s32)
8462 ; SI: [[LOAD12:%[0-9]+]]:_(s32) = G_LOAD [[GEP11]](p5) :: (load 1, addrspace 5)
8463 ; SI: [[GEP12:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C]](s32)
8464 ; SI: [[LOAD13:%[0-9]+]]:_(s32) = G_LOAD [[GEP12]](p5) :: (load 1, addrspace 5)
8465 ; SI: [[GEP13:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C1]](s32)
8466 ; SI: [[LOAD14:%[0-9]+]]:_(s32) = G_LOAD [[GEP13]](p5) :: (load 1, addrspace 5)
8467 ; SI: [[GEP14:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C2]](s32)
8468 ; SI: [[LOAD15:%[0-9]+]]:_(s32) = G_LOAD [[GEP14]](p5) :: (load 1, addrspace 5)
8469 ; SI: [[TRUNC12:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD12]](s32)
8470 ; SI: [[AND12:%[0-9]+]]:_(s16) = G_AND [[TRUNC12]], [[C3]]
8471 ; SI: [[COPY13:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
8472 ; SI: [[COPY14:%[0-9]+]]:_(s32) = COPY [[LOAD13]](s32)
8473 ; SI: [[AND13:%[0-9]+]]:_(s32) = G_AND [[COPY14]], [[C5]]
8474 ; SI: [[SHL9:%[0-9]+]]:_(s32) = G_SHL [[AND13]], [[COPY13]](s32)
8475 ; SI: [[TRUNC13:%[0-9]+]]:_(s16) = G_TRUNC [[SHL9]](s32)
8476 ; SI: [[OR9:%[0-9]+]]:_(s16) = G_OR [[AND12]], [[TRUNC13]]
8477 ; SI: [[TRUNC14:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD14]](s32)
8478 ; SI: [[AND14:%[0-9]+]]:_(s16) = G_AND [[TRUNC14]], [[C3]]
8479 ; SI: [[COPY15:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
8480 ; SI: [[COPY16:%[0-9]+]]:_(s32) = COPY [[LOAD15]](s32)
8481 ; SI: [[AND15:%[0-9]+]]:_(s32) = G_AND [[COPY16]], [[C5]]
8482 ; SI: [[SHL10:%[0-9]+]]:_(s32) = G_SHL [[AND15]], [[COPY15]](s32)
8483 ; SI: [[TRUNC15:%[0-9]+]]:_(s16) = G_TRUNC [[SHL10]](s32)
8484 ; SI: [[OR10:%[0-9]+]]:_(s16) = G_OR [[AND14]], [[TRUNC15]]
8485 ; SI: [[ZEXT6:%[0-9]+]]:_(s32) = G_ZEXT [[OR9]](s16)
8486 ; SI: [[ZEXT7:%[0-9]+]]:_(s32) = G_ZEXT [[OR10]](s16)
8487 ; SI: [[SHL11:%[0-9]+]]:_(s32) = G_SHL [[ZEXT7]], [[C6]](s32)
8488 ; SI: [[OR11:%[0-9]+]]:_(s32) = G_OR [[ZEXT6]], [[SHL11]]
8489 ; SI: [[MV1:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[OR8]](s32), [[OR11]](s32)
8490 ; SI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s64>) = G_BUILD_VECTOR [[MV]](s64), [[MV1]](s64)
8491 ; SI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<2 x s64>)
8492 ; CI-LABEL: name: test_load_private_v2s64_align16
8493 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
8494 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
8495 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
8496 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
8497 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
8498 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
8499 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
8500 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
8501 ; CI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
8502 ; CI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
8503 ; CI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
8504 ; CI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
8505 ; CI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
8506 ; CI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
8507 ; CI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
8508 ; CI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
8509 ; CI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
8510 ; CI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
8511 ; CI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C5]]
8512 ; CI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[COPY1]](s32)
8513 ; CI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[SHL]](s32)
8514 ; CI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[TRUNC1]]
8515 ; CI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
8516 ; CI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
8517 ; CI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
8518 ; CI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
8519 ; CI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C5]]
8520 ; CI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[COPY3]](s32)
8521 ; CI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[SHL1]](s32)
8522 ; CI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[TRUNC3]]
8523 ; CI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
8524 ; CI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
8525 ; CI: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
8526 ; CI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C6]](s32)
8527 ; CI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
8528 ; CI: [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
8529 ; CI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C7]](s32)
8530 ; CI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 5)
8531 ; CI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
8532 ; CI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 5)
8533 ; CI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
8534 ; CI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 5)
8535 ; CI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
8536 ; CI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 5)
8537 ; CI: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
8538 ; CI: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
8539 ; CI: [[COPY5:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
8540 ; CI: [[COPY6:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
8541 ; CI: [[AND5:%[0-9]+]]:_(s32) = G_AND [[COPY6]], [[C5]]
8542 ; CI: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[AND5]], [[COPY5]](s32)
8543 ; CI: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[SHL3]](s32)
8544 ; CI: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[TRUNC5]]
8545 ; CI: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
8546 ; CI: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
8547 ; CI: [[COPY7:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
8548 ; CI: [[COPY8:%[0-9]+]]:_(s32) = COPY [[LOAD7]](s32)
8549 ; CI: [[AND7:%[0-9]+]]:_(s32) = G_AND [[COPY8]], [[C5]]
8550 ; CI: [[SHL4:%[0-9]+]]:_(s32) = G_SHL [[AND7]], [[COPY7]](s32)
8551 ; CI: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[SHL4]](s32)
8552 ; CI: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[TRUNC7]]
8553 ; CI: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
8554 ; CI: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
8555 ; CI: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C6]](s32)
8556 ; CI: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
8557 ; CI: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[OR2]](s32), [[OR5]](s32)
8558 ; CI: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
8559 ; CI: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 1, addrspace 5)
8560 ; CI: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
8561 ; CI: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 1, addrspace 5)
8562 ; CI: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C1]](s32)
8563 ; CI: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 1, addrspace 5)
8564 ; CI: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C2]](s32)
8565 ; CI: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 1, addrspace 5)
8566 ; CI: [[TRUNC8:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD8]](s32)
8567 ; CI: [[AND8:%[0-9]+]]:_(s16) = G_AND [[TRUNC8]], [[C3]]
8568 ; CI: [[COPY9:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
8569 ; CI: [[COPY10:%[0-9]+]]:_(s32) = COPY [[LOAD9]](s32)
8570 ; CI: [[AND9:%[0-9]+]]:_(s32) = G_AND [[COPY10]], [[C5]]
8571 ; CI: [[SHL6:%[0-9]+]]:_(s32) = G_SHL [[AND9]], [[COPY9]](s32)
8572 ; CI: [[TRUNC9:%[0-9]+]]:_(s16) = G_TRUNC [[SHL6]](s32)
8573 ; CI: [[OR6:%[0-9]+]]:_(s16) = G_OR [[AND8]], [[TRUNC9]]
8574 ; CI: [[TRUNC10:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD10]](s32)
8575 ; CI: [[AND10:%[0-9]+]]:_(s16) = G_AND [[TRUNC10]], [[C3]]
8576 ; CI: [[COPY11:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
8577 ; CI: [[COPY12:%[0-9]+]]:_(s32) = COPY [[LOAD11]](s32)
8578 ; CI: [[AND11:%[0-9]+]]:_(s32) = G_AND [[COPY12]], [[C5]]
8579 ; CI: [[SHL7:%[0-9]+]]:_(s32) = G_SHL [[AND11]], [[COPY11]](s32)
8580 ; CI: [[TRUNC11:%[0-9]+]]:_(s16) = G_TRUNC [[SHL7]](s32)
8581 ; CI: [[OR7:%[0-9]+]]:_(s16) = G_OR [[AND10]], [[TRUNC11]]
8582 ; CI: [[ZEXT4:%[0-9]+]]:_(s32) = G_ZEXT [[OR6]](s16)
8583 ; CI: [[ZEXT5:%[0-9]+]]:_(s32) = G_ZEXT [[OR7]](s16)
8584 ; CI: [[SHL8:%[0-9]+]]:_(s32) = G_SHL [[ZEXT5]], [[C6]](s32)
8585 ; CI: [[OR8:%[0-9]+]]:_(s32) = G_OR [[ZEXT4]], [[SHL8]]
8586 ; CI: [[GEP11:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C7]](s32)
8587 ; CI: [[LOAD12:%[0-9]+]]:_(s32) = G_LOAD [[GEP11]](p5) :: (load 1, addrspace 5)
8588 ; CI: [[GEP12:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C]](s32)
8589 ; CI: [[LOAD13:%[0-9]+]]:_(s32) = G_LOAD [[GEP12]](p5) :: (load 1, addrspace 5)
8590 ; CI: [[GEP13:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C1]](s32)
8591 ; CI: [[LOAD14:%[0-9]+]]:_(s32) = G_LOAD [[GEP13]](p5) :: (load 1, addrspace 5)
8592 ; CI: [[GEP14:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C2]](s32)
8593 ; CI: [[LOAD15:%[0-9]+]]:_(s32) = G_LOAD [[GEP14]](p5) :: (load 1, addrspace 5)
8594 ; CI: [[TRUNC12:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD12]](s32)
8595 ; CI: [[AND12:%[0-9]+]]:_(s16) = G_AND [[TRUNC12]], [[C3]]
8596 ; CI: [[COPY13:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
8597 ; CI: [[COPY14:%[0-9]+]]:_(s32) = COPY [[LOAD13]](s32)
8598 ; CI: [[AND13:%[0-9]+]]:_(s32) = G_AND [[COPY14]], [[C5]]
8599 ; CI: [[SHL9:%[0-9]+]]:_(s32) = G_SHL [[AND13]], [[COPY13]](s32)
8600 ; CI: [[TRUNC13:%[0-9]+]]:_(s16) = G_TRUNC [[SHL9]](s32)
8601 ; CI: [[OR9:%[0-9]+]]:_(s16) = G_OR [[AND12]], [[TRUNC13]]
8602 ; CI: [[TRUNC14:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD14]](s32)
8603 ; CI: [[AND14:%[0-9]+]]:_(s16) = G_AND [[TRUNC14]], [[C3]]
8604 ; CI: [[COPY15:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
8605 ; CI: [[COPY16:%[0-9]+]]:_(s32) = COPY [[LOAD15]](s32)
8606 ; CI: [[AND15:%[0-9]+]]:_(s32) = G_AND [[COPY16]], [[C5]]
8607 ; CI: [[SHL10:%[0-9]+]]:_(s32) = G_SHL [[AND15]], [[COPY15]](s32)
8608 ; CI: [[TRUNC15:%[0-9]+]]:_(s16) = G_TRUNC [[SHL10]](s32)
8609 ; CI: [[OR10:%[0-9]+]]:_(s16) = G_OR [[AND14]], [[TRUNC15]]
8610 ; CI: [[ZEXT6:%[0-9]+]]:_(s32) = G_ZEXT [[OR9]](s16)
8611 ; CI: [[ZEXT7:%[0-9]+]]:_(s32) = G_ZEXT [[OR10]](s16)
8612 ; CI: [[SHL11:%[0-9]+]]:_(s32) = G_SHL [[ZEXT7]], [[C6]](s32)
8613 ; CI: [[OR11:%[0-9]+]]:_(s32) = G_OR [[ZEXT6]], [[SHL11]]
8614 ; CI: [[MV1:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[OR8]](s32), [[OR11]](s32)
8615 ; CI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s64>) = G_BUILD_VECTOR [[MV]](s64), [[MV1]](s64)
8616 ; CI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<2 x s64>)
8617 ; VI-LABEL: name: test_load_private_v2s64_align16
8618 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
8619 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
8620 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
8621 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
8622 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
8623 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
8624 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
8625 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
8626 ; VI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
8627 ; VI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
8628 ; VI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
8629 ; VI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
8630 ; VI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
8631 ; VI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
8632 ; VI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
8633 ; VI: [[AND1:%[0-9]+]]:_(s16) = G_AND [[TRUNC1]], [[C3]]
8634 ; VI: [[C4:%[0-9]+]]:_(s16) = G_CONSTANT i16 8
8635 ; VI: [[SHL:%[0-9]+]]:_(s16) = G_SHL [[AND1]], [[C4]](s16)
8636 ; VI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[SHL]]
8637 ; VI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
8638 ; VI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
8639 ; VI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD3]](s32)
8640 ; VI: [[AND3:%[0-9]+]]:_(s16) = G_AND [[TRUNC3]], [[C3]]
8641 ; VI: [[SHL1:%[0-9]+]]:_(s16) = G_SHL [[AND3]], [[C4]](s16)
8642 ; VI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[SHL1]]
8643 ; VI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
8644 ; VI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
8645 ; VI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
8646 ; VI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C5]](s32)
8647 ; VI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
8648 ; VI: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
8649 ; VI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C6]](s32)
8650 ; VI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 5)
8651 ; VI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
8652 ; VI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 5)
8653 ; VI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
8654 ; VI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 5)
8655 ; VI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
8656 ; VI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 5)
8657 ; VI: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
8658 ; VI: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
8659 ; VI: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD5]](s32)
8660 ; VI: [[AND5:%[0-9]+]]:_(s16) = G_AND [[TRUNC5]], [[C3]]
8661 ; VI: [[SHL3:%[0-9]+]]:_(s16) = G_SHL [[AND5]], [[C4]](s16)
8662 ; VI: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[SHL3]]
8663 ; VI: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
8664 ; VI: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
8665 ; VI: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD7]](s32)
8666 ; VI: [[AND7:%[0-9]+]]:_(s16) = G_AND [[TRUNC7]], [[C3]]
8667 ; VI: [[SHL4:%[0-9]+]]:_(s16) = G_SHL [[AND7]], [[C4]](s16)
8668 ; VI: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[SHL4]]
8669 ; VI: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
8670 ; VI: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
8671 ; VI: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C5]](s32)
8672 ; VI: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
8673 ; VI: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[OR2]](s32), [[OR5]](s32)
8674 ; VI: [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
8675 ; VI: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C7]](s32)
8676 ; VI: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 1, addrspace 5)
8677 ; VI: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
8678 ; VI: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 1, addrspace 5)
8679 ; VI: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C1]](s32)
8680 ; VI: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 1, addrspace 5)
8681 ; VI: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C2]](s32)
8682 ; VI: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 1, addrspace 5)
8683 ; VI: [[TRUNC8:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD8]](s32)
8684 ; VI: [[AND8:%[0-9]+]]:_(s16) = G_AND [[TRUNC8]], [[C3]]
8685 ; VI: [[TRUNC9:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD9]](s32)
8686 ; VI: [[AND9:%[0-9]+]]:_(s16) = G_AND [[TRUNC9]], [[C3]]
8687 ; VI: [[SHL6:%[0-9]+]]:_(s16) = G_SHL [[AND9]], [[C4]](s16)
8688 ; VI: [[OR6:%[0-9]+]]:_(s16) = G_OR [[AND8]], [[SHL6]]
8689 ; VI: [[TRUNC10:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD10]](s32)
8690 ; VI: [[AND10:%[0-9]+]]:_(s16) = G_AND [[TRUNC10]], [[C3]]
8691 ; VI: [[TRUNC11:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD11]](s32)
8692 ; VI: [[AND11:%[0-9]+]]:_(s16) = G_AND [[TRUNC11]], [[C3]]
8693 ; VI: [[SHL7:%[0-9]+]]:_(s16) = G_SHL [[AND11]], [[C4]](s16)
8694 ; VI: [[OR7:%[0-9]+]]:_(s16) = G_OR [[AND10]], [[SHL7]]
8695 ; VI: [[ZEXT4:%[0-9]+]]:_(s32) = G_ZEXT [[OR6]](s16)
8696 ; VI: [[ZEXT5:%[0-9]+]]:_(s32) = G_ZEXT [[OR7]](s16)
8697 ; VI: [[SHL8:%[0-9]+]]:_(s32) = G_SHL [[ZEXT5]], [[C5]](s32)
8698 ; VI: [[OR8:%[0-9]+]]:_(s32) = G_OR [[ZEXT4]], [[SHL8]]
8699 ; VI: [[GEP11:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C6]](s32)
8700 ; VI: [[LOAD12:%[0-9]+]]:_(s32) = G_LOAD [[GEP11]](p5) :: (load 1, addrspace 5)
8701 ; VI: [[GEP12:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C]](s32)
8702 ; VI: [[LOAD13:%[0-9]+]]:_(s32) = G_LOAD [[GEP12]](p5) :: (load 1, addrspace 5)
8703 ; VI: [[GEP13:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C1]](s32)
8704 ; VI: [[LOAD14:%[0-9]+]]:_(s32) = G_LOAD [[GEP13]](p5) :: (load 1, addrspace 5)
8705 ; VI: [[GEP14:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C2]](s32)
8706 ; VI: [[LOAD15:%[0-9]+]]:_(s32) = G_LOAD [[GEP14]](p5) :: (load 1, addrspace 5)
8707 ; VI: [[TRUNC12:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD12]](s32)
8708 ; VI: [[AND12:%[0-9]+]]:_(s16) = G_AND [[TRUNC12]], [[C3]]
8709 ; VI: [[TRUNC13:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD13]](s32)
8710 ; VI: [[AND13:%[0-9]+]]:_(s16) = G_AND [[TRUNC13]], [[C3]]
8711 ; VI: [[SHL9:%[0-9]+]]:_(s16) = G_SHL [[AND13]], [[C4]](s16)
8712 ; VI: [[OR9:%[0-9]+]]:_(s16) = G_OR [[AND12]], [[SHL9]]
8713 ; VI: [[TRUNC14:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD14]](s32)
8714 ; VI: [[AND14:%[0-9]+]]:_(s16) = G_AND [[TRUNC14]], [[C3]]
8715 ; VI: [[TRUNC15:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD15]](s32)
8716 ; VI: [[AND15:%[0-9]+]]:_(s16) = G_AND [[TRUNC15]], [[C3]]
8717 ; VI: [[SHL10:%[0-9]+]]:_(s16) = G_SHL [[AND15]], [[C4]](s16)
8718 ; VI: [[OR10:%[0-9]+]]:_(s16) = G_OR [[AND14]], [[SHL10]]
8719 ; VI: [[ZEXT6:%[0-9]+]]:_(s32) = G_ZEXT [[OR9]](s16)
8720 ; VI: [[ZEXT7:%[0-9]+]]:_(s32) = G_ZEXT [[OR10]](s16)
8721 ; VI: [[SHL11:%[0-9]+]]:_(s32) = G_SHL [[ZEXT7]], [[C5]](s32)
8722 ; VI: [[OR11:%[0-9]+]]:_(s32) = G_OR [[ZEXT6]], [[SHL11]]
8723 ; VI: [[MV1:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[OR8]](s32), [[OR11]](s32)
8724 ; VI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s64>) = G_BUILD_VECTOR [[MV]](s64), [[MV1]](s64)
8725 ; VI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<2 x s64>)
8726 ; GFX9-LABEL: name: test_load_private_v2s64_align16
8727 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
8728 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
8729 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
8730 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
8731 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
8732 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
8733 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
8734 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
8735 ; GFX9: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
8736 ; GFX9: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
8737 ; GFX9: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
8738 ; GFX9: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
8739 ; GFX9: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
8740 ; GFX9: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
8741 ; GFX9: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
8742 ; GFX9: [[AND1:%[0-9]+]]:_(s16) = G_AND [[TRUNC1]], [[C3]]
8743 ; GFX9: [[C4:%[0-9]+]]:_(s16) = G_CONSTANT i16 8
8744 ; GFX9: [[SHL:%[0-9]+]]:_(s16) = G_SHL [[AND1]], [[C4]](s16)
8745 ; GFX9: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[SHL]]
8746 ; GFX9: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
8747 ; GFX9: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
8748 ; GFX9: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD3]](s32)
8749 ; GFX9: [[AND3:%[0-9]+]]:_(s16) = G_AND [[TRUNC3]], [[C3]]
8750 ; GFX9: [[SHL1:%[0-9]+]]:_(s16) = G_SHL [[AND3]], [[C4]](s16)
8751 ; GFX9: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[SHL1]]
8752 ; GFX9: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
8753 ; GFX9: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
8754 ; GFX9: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
8755 ; GFX9: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C5]](s32)
8756 ; GFX9: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
8757 ; GFX9: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
8758 ; GFX9: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C6]](s32)
8759 ; GFX9: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 5)
8760 ; GFX9: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
8761 ; GFX9: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 5)
8762 ; GFX9: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
8763 ; GFX9: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 5)
8764 ; GFX9: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
8765 ; GFX9: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 5)
8766 ; GFX9: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
8767 ; GFX9: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
8768 ; GFX9: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD5]](s32)
8769 ; GFX9: [[AND5:%[0-9]+]]:_(s16) = G_AND [[TRUNC5]], [[C3]]
8770 ; GFX9: [[SHL3:%[0-9]+]]:_(s16) = G_SHL [[AND5]], [[C4]](s16)
8771 ; GFX9: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[SHL3]]
8772 ; GFX9: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
8773 ; GFX9: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
8774 ; GFX9: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD7]](s32)
8775 ; GFX9: [[AND7:%[0-9]+]]:_(s16) = G_AND [[TRUNC7]], [[C3]]
8776 ; GFX9: [[SHL4:%[0-9]+]]:_(s16) = G_SHL [[AND7]], [[C4]](s16)
8777 ; GFX9: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[SHL4]]
8778 ; GFX9: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
8779 ; GFX9: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
8780 ; GFX9: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C5]](s32)
8781 ; GFX9: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
8782 ; GFX9: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[OR2]](s32), [[OR5]](s32)
8783 ; GFX9: [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
8784 ; GFX9: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C7]](s32)
8785 ; GFX9: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 1, addrspace 5)
8786 ; GFX9: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
8787 ; GFX9: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 1, addrspace 5)
8788 ; GFX9: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C1]](s32)
8789 ; GFX9: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 1, addrspace 5)
8790 ; GFX9: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C2]](s32)
8791 ; GFX9: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 1, addrspace 5)
8792 ; GFX9: [[TRUNC8:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD8]](s32)
8793 ; GFX9: [[AND8:%[0-9]+]]:_(s16) = G_AND [[TRUNC8]], [[C3]]
8794 ; GFX9: [[TRUNC9:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD9]](s32)
8795 ; GFX9: [[AND9:%[0-9]+]]:_(s16) = G_AND [[TRUNC9]], [[C3]]
8796 ; GFX9: [[SHL6:%[0-9]+]]:_(s16) = G_SHL [[AND9]], [[C4]](s16)
8797 ; GFX9: [[OR6:%[0-9]+]]:_(s16) = G_OR [[AND8]], [[SHL6]]
8798 ; GFX9: [[TRUNC10:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD10]](s32)
8799 ; GFX9: [[AND10:%[0-9]+]]:_(s16) = G_AND [[TRUNC10]], [[C3]]
8800 ; GFX9: [[TRUNC11:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD11]](s32)
8801 ; GFX9: [[AND11:%[0-9]+]]:_(s16) = G_AND [[TRUNC11]], [[C3]]
8802 ; GFX9: [[SHL7:%[0-9]+]]:_(s16) = G_SHL [[AND11]], [[C4]](s16)
8803 ; GFX9: [[OR7:%[0-9]+]]:_(s16) = G_OR [[AND10]], [[SHL7]]
8804 ; GFX9: [[ZEXT4:%[0-9]+]]:_(s32) = G_ZEXT [[OR6]](s16)
8805 ; GFX9: [[ZEXT5:%[0-9]+]]:_(s32) = G_ZEXT [[OR7]](s16)
8806 ; GFX9: [[SHL8:%[0-9]+]]:_(s32) = G_SHL [[ZEXT5]], [[C5]](s32)
8807 ; GFX9: [[OR8:%[0-9]+]]:_(s32) = G_OR [[ZEXT4]], [[SHL8]]
8808 ; GFX9: [[GEP11:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C6]](s32)
8809 ; GFX9: [[LOAD12:%[0-9]+]]:_(s32) = G_LOAD [[GEP11]](p5) :: (load 1, addrspace 5)
8810 ; GFX9: [[GEP12:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C]](s32)
8811 ; GFX9: [[LOAD13:%[0-9]+]]:_(s32) = G_LOAD [[GEP12]](p5) :: (load 1, addrspace 5)
8812 ; GFX9: [[GEP13:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C1]](s32)
8813 ; GFX9: [[LOAD14:%[0-9]+]]:_(s32) = G_LOAD [[GEP13]](p5) :: (load 1, addrspace 5)
8814 ; GFX9: [[GEP14:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C2]](s32)
8815 ; GFX9: [[LOAD15:%[0-9]+]]:_(s32) = G_LOAD [[GEP14]](p5) :: (load 1, addrspace 5)
8816 ; GFX9: [[TRUNC12:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD12]](s32)
8817 ; GFX9: [[AND12:%[0-9]+]]:_(s16) = G_AND [[TRUNC12]], [[C3]]
8818 ; GFX9: [[TRUNC13:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD13]](s32)
8819 ; GFX9: [[AND13:%[0-9]+]]:_(s16) = G_AND [[TRUNC13]], [[C3]]
8820 ; GFX9: [[SHL9:%[0-9]+]]:_(s16) = G_SHL [[AND13]], [[C4]](s16)
8821 ; GFX9: [[OR9:%[0-9]+]]:_(s16) = G_OR [[AND12]], [[SHL9]]
8822 ; GFX9: [[TRUNC14:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD14]](s32)
8823 ; GFX9: [[AND14:%[0-9]+]]:_(s16) = G_AND [[TRUNC14]], [[C3]]
8824 ; GFX9: [[TRUNC15:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD15]](s32)
8825 ; GFX9: [[AND15:%[0-9]+]]:_(s16) = G_AND [[TRUNC15]], [[C3]]
8826 ; GFX9: [[SHL10:%[0-9]+]]:_(s16) = G_SHL [[AND15]], [[C4]](s16)
8827 ; GFX9: [[OR10:%[0-9]+]]:_(s16) = G_OR [[AND14]], [[SHL10]]
8828 ; GFX9: [[ZEXT6:%[0-9]+]]:_(s32) = G_ZEXT [[OR9]](s16)
8829 ; GFX9: [[ZEXT7:%[0-9]+]]:_(s32) = G_ZEXT [[OR10]](s16)
8830 ; GFX9: [[SHL11:%[0-9]+]]:_(s32) = G_SHL [[ZEXT7]], [[C5]](s32)
8831 ; GFX9: [[OR11:%[0-9]+]]:_(s32) = G_OR [[ZEXT6]], [[SHL11]]
8832 ; GFX9: [[MV1:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[OR8]](s32), [[OR11]](s32)
8833 ; GFX9: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s64>) = G_BUILD_VECTOR [[MV]](s64), [[MV1]](s64)
8834 ; GFX9: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<2 x s64>)
8835 %0:_(p5) = COPY $vgpr0
8836 %1:_(<2 x s64>) = G_LOAD %0 :: (load 16, align 1, addrspace 5)
8837 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1
8841 name: test_load_private_v3s64_align32
8846 ; SI-LABEL: name: test_load_private_v3s64_align32
8847 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
8848 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 32, addrspace 5)
8849 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
8850 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
8851 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
8852 ; SI: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32)
8853 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
8854 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
8855 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, align 8, addrspace 5)
8856 ; SI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
8857 ; SI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
8858 ; SI: [[MV1:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[LOAD2]](s32), [[LOAD3]](s32)
8859 ; SI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
8860 ; SI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
8861 ; SI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 4, align 16, addrspace 5)
8862 ; SI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
8863 ; SI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 4, addrspace 5)
8864 ; SI: [[MV2:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[LOAD4]](s32), [[LOAD5]](s32)
8865 ; SI: [[BUILD_VECTOR:%[0-9]+]]:_(<3 x s64>) = G_BUILD_VECTOR [[MV]](s64), [[MV1]](s64), [[MV2]](s64)
8866 ; SI: [[DEF:%[0-9]+]]:_(<4 x s64>) = G_IMPLICIT_DEF
8867 ; SI: [[INSERT:%[0-9]+]]:_(<4 x s64>) = G_INSERT [[DEF]], [[BUILD_VECTOR]](<3 x s64>), 0
8868 ; SI: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[INSERT]](<4 x s64>)
8869 ; CI-LABEL: name: test_load_private_v3s64_align32
8870 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
8871 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 32, addrspace 5)
8872 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
8873 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
8874 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
8875 ; CI: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32)
8876 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
8877 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
8878 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, align 8, addrspace 5)
8879 ; CI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
8880 ; CI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
8881 ; CI: [[MV1:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[LOAD2]](s32), [[LOAD3]](s32)
8882 ; CI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
8883 ; CI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
8884 ; CI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 4, align 16, addrspace 5)
8885 ; CI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
8886 ; CI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 4, addrspace 5)
8887 ; CI: [[MV2:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[LOAD4]](s32), [[LOAD5]](s32)
8888 ; CI: [[BUILD_VECTOR:%[0-9]+]]:_(<3 x s64>) = G_BUILD_VECTOR [[MV]](s64), [[MV1]](s64), [[MV2]](s64)
8889 ; CI: [[DEF:%[0-9]+]]:_(<4 x s64>) = G_IMPLICIT_DEF
8890 ; CI: [[INSERT:%[0-9]+]]:_(<4 x s64>) = G_INSERT [[DEF]], [[BUILD_VECTOR]](<3 x s64>), 0
8891 ; CI: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[INSERT]](<4 x s64>)
8892 ; VI-LABEL: name: test_load_private_v3s64_align32
8893 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
8894 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 32, addrspace 5)
8895 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
8896 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
8897 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
8898 ; VI: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32)
8899 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
8900 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
8901 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, align 8, addrspace 5)
8902 ; VI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
8903 ; VI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
8904 ; VI: [[MV1:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[LOAD2]](s32), [[LOAD3]](s32)
8905 ; VI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
8906 ; VI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
8907 ; VI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 4, align 16, addrspace 5)
8908 ; VI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
8909 ; VI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 4, addrspace 5)
8910 ; VI: [[MV2:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[LOAD4]](s32), [[LOAD5]](s32)
8911 ; VI: [[BUILD_VECTOR:%[0-9]+]]:_(<3 x s64>) = G_BUILD_VECTOR [[MV]](s64), [[MV1]](s64), [[MV2]](s64)
8912 ; VI: [[DEF:%[0-9]+]]:_(<4 x s64>) = G_IMPLICIT_DEF
8913 ; VI: [[INSERT:%[0-9]+]]:_(<4 x s64>) = G_INSERT [[DEF]], [[BUILD_VECTOR]](<3 x s64>), 0
8914 ; VI: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[INSERT]](<4 x s64>)
8915 ; GFX9-LABEL: name: test_load_private_v3s64_align32
8916 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
8917 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 32, addrspace 5)
8918 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
8919 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
8920 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
8921 ; GFX9: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32)
8922 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
8923 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
8924 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, align 8, addrspace 5)
8925 ; GFX9: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
8926 ; GFX9: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
8927 ; GFX9: [[MV1:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[LOAD2]](s32), [[LOAD3]](s32)
8928 ; GFX9: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
8929 ; GFX9: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
8930 ; GFX9: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 4, align 16, addrspace 5)
8931 ; GFX9: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
8932 ; GFX9: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 4, addrspace 5)
8933 ; GFX9: [[MV2:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[LOAD4]](s32), [[LOAD5]](s32)
8934 ; GFX9: [[BUILD_VECTOR:%[0-9]+]]:_(<3 x s64>) = G_BUILD_VECTOR [[MV]](s64), [[MV1]](s64), [[MV2]](s64)
8935 ; GFX9: [[DEF:%[0-9]+]]:_(<4 x s64>) = G_IMPLICIT_DEF
8936 ; GFX9: [[INSERT:%[0-9]+]]:_(<4 x s64>) = G_INSERT [[DEF]], [[BUILD_VECTOR]](<3 x s64>), 0
8937 ; GFX9: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[INSERT]](<4 x s64>)
8938 %0:_(p5) = COPY $vgpr0
8939 %1:_(<3 x s64>) = G_LOAD %0 :: (load 24, align 32, addrspace 5)
8940 %2:_(<4 x s64>) = G_IMPLICIT_DEF
8941 %3:_(<4 x s64>) = G_INSERT %2, %1, 0
8942 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY %3
8946 name: test_load_private_v4s64_align32
8951 ; SI-LABEL: name: test_load_private_v4s64_align32
8952 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
8953 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 32, addrspace 5)
8954 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
8955 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
8956 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
8957 ; SI: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32)
8958 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
8959 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
8960 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, align 8, addrspace 5)
8961 ; SI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
8962 ; SI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
8963 ; SI: [[MV1:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[LOAD2]](s32), [[LOAD3]](s32)
8964 ; SI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
8965 ; SI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
8966 ; SI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 4, align 16, addrspace 5)
8967 ; SI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
8968 ; SI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 4, addrspace 5)
8969 ; SI: [[MV2:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[LOAD4]](s32), [[LOAD5]](s32)
8970 ; SI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 24
8971 ; SI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
8972 ; SI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 4, align 8, addrspace 5)
8973 ; SI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP5]], [[C]](s32)
8974 ; SI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 4, addrspace 5)
8975 ; SI: [[MV3:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[LOAD6]](s32), [[LOAD7]](s32)
8976 ; SI: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s64>) = G_BUILD_VECTOR [[MV]](s64), [[MV1]](s64), [[MV2]](s64), [[MV3]](s64)
8977 ; SI: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[BUILD_VECTOR]](<4 x s64>)
8978 ; CI-LABEL: name: test_load_private_v4s64_align32
8979 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
8980 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 32, addrspace 5)
8981 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
8982 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
8983 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
8984 ; CI: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32)
8985 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
8986 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
8987 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, align 8, addrspace 5)
8988 ; CI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
8989 ; CI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
8990 ; CI: [[MV1:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[LOAD2]](s32), [[LOAD3]](s32)
8991 ; CI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
8992 ; CI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
8993 ; CI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 4, align 16, addrspace 5)
8994 ; CI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
8995 ; CI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 4, addrspace 5)
8996 ; CI: [[MV2:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[LOAD4]](s32), [[LOAD5]](s32)
8997 ; CI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 24
8998 ; CI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
8999 ; CI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 4, align 8, addrspace 5)
9000 ; CI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP5]], [[C]](s32)
9001 ; CI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 4, addrspace 5)
9002 ; CI: [[MV3:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[LOAD6]](s32), [[LOAD7]](s32)
9003 ; CI: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s64>) = G_BUILD_VECTOR [[MV]](s64), [[MV1]](s64), [[MV2]](s64), [[MV3]](s64)
9004 ; CI: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[BUILD_VECTOR]](<4 x s64>)
9005 ; VI-LABEL: name: test_load_private_v4s64_align32
9006 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9007 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 32, addrspace 5)
9008 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
9009 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
9010 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
9011 ; VI: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32)
9012 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
9013 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
9014 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, align 8, addrspace 5)
9015 ; VI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
9016 ; VI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
9017 ; VI: [[MV1:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[LOAD2]](s32), [[LOAD3]](s32)
9018 ; VI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
9019 ; VI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
9020 ; VI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 4, align 16, addrspace 5)
9021 ; VI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
9022 ; VI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 4, addrspace 5)
9023 ; VI: [[MV2:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[LOAD4]](s32), [[LOAD5]](s32)
9024 ; VI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 24
9025 ; VI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
9026 ; VI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 4, align 8, addrspace 5)
9027 ; VI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP5]], [[C]](s32)
9028 ; VI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 4, addrspace 5)
9029 ; VI: [[MV3:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[LOAD6]](s32), [[LOAD7]](s32)
9030 ; VI: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s64>) = G_BUILD_VECTOR [[MV]](s64), [[MV1]](s64), [[MV2]](s64), [[MV3]](s64)
9031 ; VI: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[BUILD_VECTOR]](<4 x s64>)
9032 ; GFX9-LABEL: name: test_load_private_v4s64_align32
9033 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9034 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 32, addrspace 5)
9035 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
9036 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
9037 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
9038 ; GFX9: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32)
9039 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
9040 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
9041 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, align 8, addrspace 5)
9042 ; GFX9: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
9043 ; GFX9: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
9044 ; GFX9: [[MV1:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[LOAD2]](s32), [[LOAD3]](s32)
9045 ; GFX9: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
9046 ; GFX9: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
9047 ; GFX9: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 4, align 16, addrspace 5)
9048 ; GFX9: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
9049 ; GFX9: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 4, addrspace 5)
9050 ; GFX9: [[MV2:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[LOAD4]](s32), [[LOAD5]](s32)
9051 ; GFX9: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 24
9052 ; GFX9: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
9053 ; GFX9: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 4, align 8, addrspace 5)
9054 ; GFX9: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP5]], [[C]](s32)
9055 ; GFX9: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 4, addrspace 5)
9056 ; GFX9: [[MV3:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[LOAD6]](s32), [[LOAD7]](s32)
9057 ; GFX9: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s64>) = G_BUILD_VECTOR [[MV]](s64), [[MV1]](s64), [[MV2]](s64), [[MV3]](s64)
9058 ; GFX9: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[BUILD_VECTOR]](<4 x s64>)
9059 %0:_(p5) = COPY $vgpr0
9060 %1:_(<4 x s64>) = G_LOAD %0 :: (load 32, align 32, addrspace 5)
9061 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY %1
9065 name: test_load_private_v2p1_align4
9070 ; SI-LABEL: name: test_load_private_v2p1_align4
9071 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9072 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
9073 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
9074 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
9075 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
9076 ; SI: [[MV:%[0-9]+]]:_(p1) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32)
9077 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
9078 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
9079 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, addrspace 5)
9080 ; SI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
9081 ; SI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
9082 ; SI: [[MV1:%[0-9]+]]:_(p1) = G_MERGE_VALUES [[LOAD2]](s32), [[LOAD3]](s32)
9083 ; SI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x p1>) = G_BUILD_VECTOR [[MV]](p1), [[MV1]](p1)
9084 ; SI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<2 x p1>)
9085 ; CI-LABEL: name: test_load_private_v2p1_align4
9086 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9087 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
9088 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
9089 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
9090 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
9091 ; CI: [[MV:%[0-9]+]]:_(p1) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32)
9092 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
9093 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
9094 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, addrspace 5)
9095 ; CI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
9096 ; CI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
9097 ; CI: [[MV1:%[0-9]+]]:_(p1) = G_MERGE_VALUES [[LOAD2]](s32), [[LOAD3]](s32)
9098 ; CI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x p1>) = G_BUILD_VECTOR [[MV]](p1), [[MV1]](p1)
9099 ; CI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<2 x p1>)
9100 ; VI-LABEL: name: test_load_private_v2p1_align4
9101 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9102 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
9103 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
9104 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
9105 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
9106 ; VI: [[MV:%[0-9]+]]:_(p1) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32)
9107 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
9108 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
9109 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, addrspace 5)
9110 ; VI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
9111 ; VI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
9112 ; VI: [[MV1:%[0-9]+]]:_(p1) = G_MERGE_VALUES [[LOAD2]](s32), [[LOAD3]](s32)
9113 ; VI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x p1>) = G_BUILD_VECTOR [[MV]](p1), [[MV1]](p1)
9114 ; VI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<2 x p1>)
9115 ; GFX9-LABEL: name: test_load_private_v2p1_align4
9116 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9117 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
9118 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
9119 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
9120 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
9121 ; GFX9: [[MV:%[0-9]+]]:_(p1) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32)
9122 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
9123 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
9124 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, addrspace 5)
9125 ; GFX9: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
9126 ; GFX9: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
9127 ; GFX9: [[MV1:%[0-9]+]]:_(p1) = G_MERGE_VALUES [[LOAD2]](s32), [[LOAD3]](s32)
9128 ; GFX9: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x p1>) = G_BUILD_VECTOR [[MV]](p1), [[MV1]](p1)
9129 ; GFX9: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<2 x p1>)
9130 %0:_(p5) = COPY $vgpr0
9131 %1:_(<2 x p1>) = G_LOAD %0 :: (load 16, align 4, addrspace 5)
9132 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1
9136 name: test_load_private_v4p1_align8
9141 ; SI-LABEL: name: test_load_private_v4p1_align8
9142 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9143 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 8, addrspace 5)
9144 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
9145 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
9146 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
9147 ; SI: [[MV:%[0-9]+]]:_(p1) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32)
9148 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
9149 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
9150 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, align 8, addrspace 5)
9151 ; SI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
9152 ; SI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
9153 ; SI: [[MV1:%[0-9]+]]:_(p1) = G_MERGE_VALUES [[LOAD2]](s32), [[LOAD3]](s32)
9154 ; SI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
9155 ; SI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
9156 ; SI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 4, align 8, addrspace 5)
9157 ; SI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
9158 ; SI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 4, addrspace 5)
9159 ; SI: [[MV2:%[0-9]+]]:_(p1) = G_MERGE_VALUES [[LOAD4]](s32), [[LOAD5]](s32)
9160 ; SI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 24
9161 ; SI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
9162 ; SI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 4, align 8, addrspace 5)
9163 ; SI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP5]], [[C]](s32)
9164 ; SI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 4, addrspace 5)
9165 ; SI: [[MV3:%[0-9]+]]:_(p1) = G_MERGE_VALUES [[LOAD6]](s32), [[LOAD7]](s32)
9166 ; SI: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x p1>) = G_BUILD_VECTOR [[MV]](p1), [[MV1]](p1), [[MV2]](p1), [[MV3]](p1)
9167 ; SI: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[BUILD_VECTOR]](<4 x p1>)
9168 ; CI-LABEL: name: test_load_private_v4p1_align8
9169 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9170 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 8, addrspace 5)
9171 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
9172 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
9173 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
9174 ; CI: [[MV:%[0-9]+]]:_(p1) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32)
9175 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
9176 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
9177 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, align 8, addrspace 5)
9178 ; CI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
9179 ; CI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
9180 ; CI: [[MV1:%[0-9]+]]:_(p1) = G_MERGE_VALUES [[LOAD2]](s32), [[LOAD3]](s32)
9181 ; CI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
9182 ; CI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
9183 ; CI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 4, align 8, addrspace 5)
9184 ; CI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
9185 ; CI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 4, addrspace 5)
9186 ; CI: [[MV2:%[0-9]+]]:_(p1) = G_MERGE_VALUES [[LOAD4]](s32), [[LOAD5]](s32)
9187 ; CI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 24
9188 ; CI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
9189 ; CI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 4, align 8, addrspace 5)
9190 ; CI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP5]], [[C]](s32)
9191 ; CI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 4, addrspace 5)
9192 ; CI: [[MV3:%[0-9]+]]:_(p1) = G_MERGE_VALUES [[LOAD6]](s32), [[LOAD7]](s32)
9193 ; CI: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x p1>) = G_BUILD_VECTOR [[MV]](p1), [[MV1]](p1), [[MV2]](p1), [[MV3]](p1)
9194 ; CI: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[BUILD_VECTOR]](<4 x p1>)
9195 ; VI-LABEL: name: test_load_private_v4p1_align8
9196 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9197 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 8, addrspace 5)
9198 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
9199 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
9200 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
9201 ; VI: [[MV:%[0-9]+]]:_(p1) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32)
9202 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
9203 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
9204 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, align 8, addrspace 5)
9205 ; VI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
9206 ; VI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
9207 ; VI: [[MV1:%[0-9]+]]:_(p1) = G_MERGE_VALUES [[LOAD2]](s32), [[LOAD3]](s32)
9208 ; VI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
9209 ; VI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
9210 ; VI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 4, align 8, addrspace 5)
9211 ; VI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
9212 ; VI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 4, addrspace 5)
9213 ; VI: [[MV2:%[0-9]+]]:_(p1) = G_MERGE_VALUES [[LOAD4]](s32), [[LOAD5]](s32)
9214 ; VI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 24
9215 ; VI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
9216 ; VI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 4, align 8, addrspace 5)
9217 ; VI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP5]], [[C]](s32)
9218 ; VI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 4, addrspace 5)
9219 ; VI: [[MV3:%[0-9]+]]:_(p1) = G_MERGE_VALUES [[LOAD6]](s32), [[LOAD7]](s32)
9220 ; VI: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x p1>) = G_BUILD_VECTOR [[MV]](p1), [[MV1]](p1), [[MV2]](p1), [[MV3]](p1)
9221 ; VI: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[BUILD_VECTOR]](<4 x p1>)
9222 ; GFX9-LABEL: name: test_load_private_v4p1_align8
9223 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9224 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 8, addrspace 5)
9225 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
9226 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
9227 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
9228 ; GFX9: [[MV:%[0-9]+]]:_(p1) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32)
9229 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
9230 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
9231 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, align 8, addrspace 5)
9232 ; GFX9: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
9233 ; GFX9: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
9234 ; GFX9: [[MV1:%[0-9]+]]:_(p1) = G_MERGE_VALUES [[LOAD2]](s32), [[LOAD3]](s32)
9235 ; GFX9: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
9236 ; GFX9: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
9237 ; GFX9: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 4, align 8, addrspace 5)
9238 ; GFX9: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
9239 ; GFX9: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 4, addrspace 5)
9240 ; GFX9: [[MV2:%[0-9]+]]:_(p1) = G_MERGE_VALUES [[LOAD4]](s32), [[LOAD5]](s32)
9241 ; GFX9: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 24
9242 ; GFX9: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
9243 ; GFX9: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 4, align 8, addrspace 5)
9244 ; GFX9: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP5]], [[C]](s32)
9245 ; GFX9: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 4, addrspace 5)
9246 ; GFX9: [[MV3:%[0-9]+]]:_(p1) = G_MERGE_VALUES [[LOAD6]](s32), [[LOAD7]](s32)
9247 ; GFX9: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x p1>) = G_BUILD_VECTOR [[MV]](p1), [[MV1]](p1), [[MV2]](p1), [[MV3]](p1)
9248 ; GFX9: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[BUILD_VECTOR]](<4 x p1>)
9249 %0:_(p5) = COPY $vgpr0
9250 %1:_(<4 x p1>) = G_LOAD %0 :: (load 32, align 8, addrspace 5)
9251 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY %1
9255 name: test_load_private_v2p3_align8
9260 ; SI-LABEL: name: test_load_private_v2p3_align8
9261 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9262 ; SI: [[LOAD:%[0-9]+]]:_(p3) = G_LOAD [[COPY]](p5) :: (load 4, align 8, addrspace 5)
9263 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
9264 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
9265 ; SI: [[LOAD1:%[0-9]+]]:_(p3) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
9266 ; SI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x p3>) = G_BUILD_VECTOR [[LOAD]](p3), [[LOAD1]](p3)
9267 ; SI: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x p3>)
9268 ; CI-LABEL: name: test_load_private_v2p3_align8
9269 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9270 ; CI: [[LOAD:%[0-9]+]]:_(p3) = G_LOAD [[COPY]](p5) :: (load 4, align 8, addrspace 5)
9271 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
9272 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
9273 ; CI: [[LOAD1:%[0-9]+]]:_(p3) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
9274 ; CI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x p3>) = G_BUILD_VECTOR [[LOAD]](p3), [[LOAD1]](p3)
9275 ; CI: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x p3>)
9276 ; VI-LABEL: name: test_load_private_v2p3_align8
9277 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9278 ; VI: [[LOAD:%[0-9]+]]:_(p3) = G_LOAD [[COPY]](p5) :: (load 4, align 8, addrspace 5)
9279 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
9280 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
9281 ; VI: [[LOAD1:%[0-9]+]]:_(p3) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
9282 ; VI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x p3>) = G_BUILD_VECTOR [[LOAD]](p3), [[LOAD1]](p3)
9283 ; VI: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x p3>)
9284 ; GFX9-LABEL: name: test_load_private_v2p3_align8
9285 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9286 ; GFX9: [[LOAD:%[0-9]+]]:_(p3) = G_LOAD [[COPY]](p5) :: (load 4, align 8, addrspace 5)
9287 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
9288 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
9289 ; GFX9: [[LOAD1:%[0-9]+]]:_(p3) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
9290 ; GFX9: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x p3>) = G_BUILD_VECTOR [[LOAD]](p3), [[LOAD1]](p3)
9291 ; GFX9: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x p3>)
9292 %0:_(p5) = COPY $vgpr0
9293 %1:_(<2 x p3>) = G_LOAD %0 :: (load 8, align 8, addrspace 5)
9294 $vgpr0_vgpr1 = COPY %1
9298 name: test_ext_load_private_s32_from_1_align4
9303 ; SI-LABEL: name: test_ext_load_private_s32_from_1_align4
9304 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9305 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, align 4, addrspace 5)
9306 ; SI: $vgpr0 = COPY [[LOAD]](s32)
9307 ; CI-LABEL: name: test_ext_load_private_s32_from_1_align4
9308 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9309 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, align 4, addrspace 5)
9310 ; CI: $vgpr0 = COPY [[LOAD]](s32)
9311 ; VI-LABEL: name: test_ext_load_private_s32_from_1_align4
9312 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9313 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, align 4, addrspace 5)
9314 ; VI: $vgpr0 = COPY [[LOAD]](s32)
9315 ; GFX9-LABEL: name: test_ext_load_private_s32_from_1_align4
9316 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9317 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, align 4, addrspace 5)
9318 ; GFX9: $vgpr0 = COPY [[LOAD]](s32)
9319 %0:_(p5) = COPY $vgpr0
9320 %1:_(s32) = G_LOAD %0 :: (load 1, align 4, addrspace 5)
9325 name: test_ext_load_private_s32_from_2_align4
9330 ; SI-LABEL: name: test_ext_load_private_s32_from_2_align4
9331 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9332 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, align 4, addrspace 5)
9333 ; SI: $vgpr0 = COPY [[LOAD]](s32)
9334 ; CI-LABEL: name: test_ext_load_private_s32_from_2_align4
9335 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9336 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, align 4, addrspace 5)
9337 ; CI: $vgpr0 = COPY [[LOAD]](s32)
9338 ; VI-LABEL: name: test_ext_load_private_s32_from_2_align4
9339 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9340 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, align 4, addrspace 5)
9341 ; VI: $vgpr0 = COPY [[LOAD]](s32)
9342 ; GFX9-LABEL: name: test_ext_load_private_s32_from_2_align4
9343 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9344 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, align 4, addrspace 5)
9345 ; GFX9: $vgpr0 = COPY [[LOAD]](s32)
9346 %0:_(p5) = COPY $vgpr0
9347 %1:_(s32) = G_LOAD %0 :: (load 2, align 4, addrspace 5)
9352 name: test_ext_load_private_s64_from_1_align4
9358 ; SI-LABEL: name: test_ext_load_private_s64_from_1_align4
9359 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9360 ; SI: [[LOAD:%[0-9]+]]:_(s64) = G_LOAD [[COPY]](p5) :: (load 1, align 4, addrspace 5)
9361 ; SI: $vgpr0_vgpr1 = COPY [[LOAD]](s64)
9362 ; CI-LABEL: name: test_ext_load_private_s64_from_1_align4
9363 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9364 ; CI: [[LOAD:%[0-9]+]]:_(s64) = G_LOAD [[COPY]](p5) :: (load 1, align 4, addrspace 5)
9365 ; CI: $vgpr0_vgpr1 = COPY [[LOAD]](s64)
9366 ; VI-LABEL: name: test_ext_load_private_s64_from_1_align4
9367 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9368 ; VI: [[LOAD:%[0-9]+]]:_(s64) = G_LOAD [[COPY]](p5) :: (load 1, align 4, addrspace 5)
9369 ; VI: $vgpr0_vgpr1 = COPY [[LOAD]](s64)
9370 ; GFX9-LABEL: name: test_ext_load_private_s64_from_1_align4
9371 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9372 ; GFX9: [[LOAD:%[0-9]+]]:_(s64) = G_LOAD [[COPY]](p5) :: (load 1, align 4, addrspace 5)
9373 ; GFX9: $vgpr0_vgpr1 = COPY [[LOAD]](s64)
9374 %0:_(p5) = COPY $vgpr0
9375 %1:_(s64) = G_LOAD %0 :: (load 1, align 4, addrspace 5)
9376 $vgpr0_vgpr1 = COPY %1
9380 name: test_ext_load_private_s64_from_2_align4
9385 ; SI-LABEL: name: test_ext_load_private_s64_from_2_align4
9386 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9387 ; SI: [[LOAD:%[0-9]+]]:_(s64) = G_LOAD [[COPY]](p5) :: (load 2, align 4, addrspace 5)
9388 ; SI: $vgpr0_vgpr1 = COPY [[LOAD]](s64)
9389 ; CI-LABEL: name: test_ext_load_private_s64_from_2_align4
9390 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9391 ; CI: [[LOAD:%[0-9]+]]:_(s64) = G_LOAD [[COPY]](p5) :: (load 2, align 4, addrspace 5)
9392 ; CI: $vgpr0_vgpr1 = COPY [[LOAD]](s64)
9393 ; VI-LABEL: name: test_ext_load_private_s64_from_2_align4
9394 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9395 ; VI: [[LOAD:%[0-9]+]]:_(s64) = G_LOAD [[COPY]](p5) :: (load 2, align 4, addrspace 5)
9396 ; VI: $vgpr0_vgpr1 = COPY [[LOAD]](s64)
9397 ; GFX9-LABEL: name: test_ext_load_private_s64_from_2_align4
9398 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9399 ; GFX9: [[LOAD:%[0-9]+]]:_(s64) = G_LOAD [[COPY]](p5) :: (load 2, align 4, addrspace 5)
9400 ; GFX9: $vgpr0_vgpr1 = COPY [[LOAD]](s64)
9401 %0:_(p5) = COPY $vgpr0
9402 %1:_(s64) = G_LOAD %0 :: (load 2, align 4, addrspace 5)
9403 $vgpr0_vgpr1 = COPY %1
9407 name: test_ext_load_private_s64_from_4_align4
9412 ; SI-LABEL: name: test_ext_load_private_s64_from_4_align4
9413 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9414 ; SI: [[LOAD:%[0-9]+]]:_(s64) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
9415 ; SI: $vgpr0_vgpr1 = COPY [[LOAD]](s64)
9416 ; CI-LABEL: name: test_ext_load_private_s64_from_4_align4
9417 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9418 ; CI: [[LOAD:%[0-9]+]]:_(s64) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
9419 ; CI: $vgpr0_vgpr1 = COPY [[LOAD]](s64)
9420 ; VI-LABEL: name: test_ext_load_private_s64_from_4_align4
9421 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9422 ; VI: [[LOAD:%[0-9]+]]:_(s64) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
9423 ; VI: $vgpr0_vgpr1 = COPY [[LOAD]](s64)
9424 ; GFX9-LABEL: name: test_ext_load_private_s64_from_4_align4
9425 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9426 ; GFX9: [[LOAD:%[0-9]+]]:_(s64) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
9427 ; GFX9: $vgpr0_vgpr1 = COPY [[LOAD]](s64)
9428 %0:_(p5) = COPY $vgpr0
9429 %1:_(s64) = G_LOAD %0 :: (load 4, align 4, addrspace 5)
9430 $vgpr0_vgpr1 = COPY %1
9434 name: test_ext_load_private_s128_from_4_align4
9439 ; SI-LABEL: name: test_ext_load_private_s128_from_4_align4
9440 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9441 ; SI: [[LOAD:%[0-9]+]]:_(s128) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
9442 ; SI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[LOAD]](s128)
9443 ; CI-LABEL: name: test_ext_load_private_s128_from_4_align4
9444 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9445 ; CI: [[LOAD:%[0-9]+]]:_(s128) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
9446 ; CI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[LOAD]](s128)
9447 ; VI-LABEL: name: test_ext_load_private_s128_from_4_align4
9448 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9449 ; VI: [[LOAD:%[0-9]+]]:_(s128) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
9450 ; VI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[LOAD]](s128)
9451 ; GFX9-LABEL: name: test_ext_load_private_s128_from_4_align4
9452 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9453 ; GFX9: [[LOAD:%[0-9]+]]:_(s128) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
9454 ; GFX9: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[LOAD]](s128)
9455 %0:_(p5) = COPY $vgpr0
9456 %1:_(s128) = G_LOAD %0 :: (load 4, align 4, addrspace 5)
9457 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1
9461 name: test_ext_load_private_s64_from_2_align2
9466 ; SI-LABEL: name: test_ext_load_private_s64_from_2_align2
9467 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9468 ; SI: [[LOAD:%[0-9]+]]:_(s64) = G_LOAD [[COPY]](p5) :: (load 2, align 4, addrspace 5)
9469 ; SI: $vgpr0_vgpr1 = COPY [[LOAD]](s64)
9470 ; CI-LABEL: name: test_ext_load_private_s64_from_2_align2
9471 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9472 ; CI: [[LOAD:%[0-9]+]]:_(s64) = G_LOAD [[COPY]](p5) :: (load 2, align 4, addrspace 5)
9473 ; CI: $vgpr0_vgpr1 = COPY [[LOAD]](s64)
9474 ; VI-LABEL: name: test_ext_load_private_s64_from_2_align2
9475 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9476 ; VI: [[LOAD:%[0-9]+]]:_(s64) = G_LOAD [[COPY]](p5) :: (load 2, align 4, addrspace 5)
9477 ; VI: $vgpr0_vgpr1 = COPY [[LOAD]](s64)
9478 ; GFX9-LABEL: name: test_ext_load_private_s64_from_2_align2
9479 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9480 ; GFX9: [[LOAD:%[0-9]+]]:_(s64) = G_LOAD [[COPY]](p5) :: (load 2, align 4, addrspace 5)
9481 ; GFX9: $vgpr0_vgpr1 = COPY [[LOAD]](s64)
9482 %0:_(p5) = COPY $vgpr0
9483 %1:_(s64) = G_LOAD %0 :: (load 2, align 4, addrspace 5)
9484 $vgpr0_vgpr1 = COPY %1
9488 name: test_ext_load_private_s64_from_1_align1
9493 ; SI-LABEL: name: test_ext_load_private_s64_from_1_align1
9494 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9495 ; SI: [[LOAD:%[0-9]+]]:_(s64) = G_LOAD [[COPY]](p5) :: (load 1, align 4, addrspace 5)
9496 ; SI: $vgpr0_vgpr1 = COPY [[LOAD]](s64)
9497 ; CI-LABEL: name: test_ext_load_private_s64_from_1_align1
9498 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9499 ; CI: [[LOAD:%[0-9]+]]:_(s64) = G_LOAD [[COPY]](p5) :: (load 1, align 4, addrspace 5)
9500 ; CI: $vgpr0_vgpr1 = COPY [[LOAD]](s64)
9501 ; VI-LABEL: name: test_ext_load_private_s64_from_1_align1
9502 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9503 ; VI: [[LOAD:%[0-9]+]]:_(s64) = G_LOAD [[COPY]](p5) :: (load 1, align 4, addrspace 5)
9504 ; VI: $vgpr0_vgpr1 = COPY [[LOAD]](s64)
9505 ; GFX9-LABEL: name: test_ext_load_private_s64_from_1_align1
9506 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9507 ; GFX9: [[LOAD:%[0-9]+]]:_(s64) = G_LOAD [[COPY]](p5) :: (load 1, align 4, addrspace 5)
9508 ; GFX9: $vgpr0_vgpr1 = COPY [[LOAD]](s64)
9509 %0:_(p5) = COPY $vgpr0
9510 %1:_(s64) = G_LOAD %0 :: (load 1, align 4, addrspace 5)
9511 $vgpr0_vgpr1 = COPY %1
9515 name: test_extload_private_v2s32_from_4_align1
9520 ; SI-LABEL: name: test_extload_private_v2s32_from_4_align1
9521 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9522 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
9523 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
9524 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
9525 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
9526 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
9527 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
9528 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
9529 ; SI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
9530 ; SI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
9531 ; SI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
9532 ; SI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
9533 ; SI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
9534 ; SI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
9535 ; SI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
9536 ; SI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
9537 ; SI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
9538 ; SI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
9539 ; SI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C5]]
9540 ; SI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[COPY1]](s32)
9541 ; SI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[SHL]](s32)
9542 ; SI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[TRUNC1]]
9543 ; SI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
9544 ; SI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
9545 ; SI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
9546 ; SI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C5]]
9547 ; SI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[C4]](s32)
9548 ; SI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[SHL1]](s32)
9549 ; SI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[TRUNC3]]
9550 ; SI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
9551 ; SI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
9552 ; SI: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
9553 ; SI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C6]](s32)
9554 ; SI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
9555 ; SI: [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
9556 ; SI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C7]](s32)
9557 ; SI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 5)
9558 ; SI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
9559 ; SI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 5)
9560 ; SI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
9561 ; SI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 5)
9562 ; SI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
9563 ; SI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 5)
9564 ; SI: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
9565 ; SI: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
9566 ; SI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
9567 ; SI: [[COPY5:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
9568 ; SI: [[AND5:%[0-9]+]]:_(s32) = G_AND [[COPY5]], [[C5]]
9569 ; SI: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[AND5]], [[COPY4]](s32)
9570 ; SI: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[SHL3]](s32)
9571 ; SI: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[TRUNC5]]
9572 ; SI: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
9573 ; SI: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
9574 ; SI: [[COPY6:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
9575 ; SI: [[COPY7:%[0-9]+]]:_(s32) = COPY [[LOAD7]](s32)
9576 ; SI: [[AND7:%[0-9]+]]:_(s32) = G_AND [[COPY7]], [[C5]]
9577 ; SI: [[SHL4:%[0-9]+]]:_(s32) = G_SHL [[AND7]], [[COPY6]](s32)
9578 ; SI: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[SHL4]](s32)
9579 ; SI: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[TRUNC7]]
9580 ; SI: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
9581 ; SI: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
9582 ; SI: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C6]](s32)
9583 ; SI: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
9584 ; SI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[OR2]](s32), [[OR5]](s32)
9585 ; SI: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)
9586 ; CI-LABEL: name: test_extload_private_v2s32_from_4_align1
9587 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9588 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
9589 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
9590 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
9591 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
9592 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
9593 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
9594 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
9595 ; CI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
9596 ; CI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
9597 ; CI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
9598 ; CI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
9599 ; CI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
9600 ; CI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
9601 ; CI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
9602 ; CI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
9603 ; CI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
9604 ; CI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
9605 ; CI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C5]]
9606 ; CI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[COPY1]](s32)
9607 ; CI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[SHL]](s32)
9608 ; CI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[TRUNC1]]
9609 ; CI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
9610 ; CI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
9611 ; CI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
9612 ; CI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C5]]
9613 ; CI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[C4]](s32)
9614 ; CI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[SHL1]](s32)
9615 ; CI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[TRUNC3]]
9616 ; CI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
9617 ; CI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
9618 ; CI: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
9619 ; CI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C6]](s32)
9620 ; CI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
9621 ; CI: [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
9622 ; CI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C7]](s32)
9623 ; CI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 5)
9624 ; CI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
9625 ; CI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 5)
9626 ; CI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
9627 ; CI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 5)
9628 ; CI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
9629 ; CI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 5)
9630 ; CI: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
9631 ; CI: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
9632 ; CI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
9633 ; CI: [[COPY5:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
9634 ; CI: [[AND5:%[0-9]+]]:_(s32) = G_AND [[COPY5]], [[C5]]
9635 ; CI: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[AND5]], [[COPY4]](s32)
9636 ; CI: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[SHL3]](s32)
9637 ; CI: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[TRUNC5]]
9638 ; CI: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
9639 ; CI: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
9640 ; CI: [[COPY6:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
9641 ; CI: [[COPY7:%[0-9]+]]:_(s32) = COPY [[LOAD7]](s32)
9642 ; CI: [[AND7:%[0-9]+]]:_(s32) = G_AND [[COPY7]], [[C5]]
9643 ; CI: [[SHL4:%[0-9]+]]:_(s32) = G_SHL [[AND7]], [[COPY6]](s32)
9644 ; CI: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[SHL4]](s32)
9645 ; CI: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[TRUNC7]]
9646 ; CI: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
9647 ; CI: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
9648 ; CI: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C6]](s32)
9649 ; CI: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
9650 ; CI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[OR2]](s32), [[OR5]](s32)
9651 ; CI: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)
9652 ; VI-LABEL: name: test_extload_private_v2s32_from_4_align1
9653 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9654 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
9655 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
9656 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
9657 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
9658 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
9659 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
9660 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
9661 ; VI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
9662 ; VI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
9663 ; VI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
9664 ; VI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
9665 ; VI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
9666 ; VI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
9667 ; VI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
9668 ; VI: [[AND1:%[0-9]+]]:_(s16) = G_AND [[TRUNC1]], [[C3]]
9669 ; VI: [[C4:%[0-9]+]]:_(s16) = G_CONSTANT i16 8
9670 ; VI: [[SHL:%[0-9]+]]:_(s16) = G_SHL [[AND1]], [[C4]](s16)
9671 ; VI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[SHL]]
9672 ; VI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
9673 ; VI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
9674 ; VI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD3]](s32)
9675 ; VI: [[AND3:%[0-9]+]]:_(s16) = G_AND [[TRUNC3]], [[C3]]
9676 ; VI: [[SHL1:%[0-9]+]]:_(s16) = G_SHL [[AND3]], [[C4]](s16)
9677 ; VI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[SHL1]]
9678 ; VI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
9679 ; VI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
9680 ; VI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
9681 ; VI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C5]](s32)
9682 ; VI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
9683 ; VI: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
9684 ; VI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C6]](s32)
9685 ; VI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 5)
9686 ; VI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
9687 ; VI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 5)
9688 ; VI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
9689 ; VI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 5)
9690 ; VI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
9691 ; VI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 5)
9692 ; VI: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
9693 ; VI: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
9694 ; VI: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD5]](s32)
9695 ; VI: [[AND5:%[0-9]+]]:_(s16) = G_AND [[TRUNC5]], [[C3]]
9696 ; VI: [[SHL3:%[0-9]+]]:_(s16) = G_SHL [[AND5]], [[C4]](s16)
9697 ; VI: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[SHL3]]
9698 ; VI: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
9699 ; VI: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
9700 ; VI: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD7]](s32)
9701 ; VI: [[AND7:%[0-9]+]]:_(s16) = G_AND [[TRUNC7]], [[C3]]
9702 ; VI: [[SHL4:%[0-9]+]]:_(s16) = G_SHL [[AND7]], [[C4]](s16)
9703 ; VI: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[SHL4]]
9704 ; VI: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
9705 ; VI: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
9706 ; VI: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C5]](s32)
9707 ; VI: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
9708 ; VI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[OR2]](s32), [[OR5]](s32)
9709 ; VI: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)
9710 ; GFX9-LABEL: name: test_extload_private_v2s32_from_4_align1
9711 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9712 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
9713 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
9714 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
9715 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
9716 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
9717 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
9718 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
9719 ; GFX9: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
9720 ; GFX9: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
9721 ; GFX9: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
9722 ; GFX9: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
9723 ; GFX9: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
9724 ; GFX9: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
9725 ; GFX9: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
9726 ; GFX9: [[AND1:%[0-9]+]]:_(s16) = G_AND [[TRUNC1]], [[C3]]
9727 ; GFX9: [[C4:%[0-9]+]]:_(s16) = G_CONSTANT i16 8
9728 ; GFX9: [[SHL:%[0-9]+]]:_(s16) = G_SHL [[AND1]], [[C4]](s16)
9729 ; GFX9: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[SHL]]
9730 ; GFX9: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
9731 ; GFX9: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
9732 ; GFX9: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD3]](s32)
9733 ; GFX9: [[AND3:%[0-9]+]]:_(s16) = G_AND [[TRUNC3]], [[C3]]
9734 ; GFX9: [[SHL1:%[0-9]+]]:_(s16) = G_SHL [[AND3]], [[C4]](s16)
9735 ; GFX9: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[SHL1]]
9736 ; GFX9: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
9737 ; GFX9: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
9738 ; GFX9: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
9739 ; GFX9: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C5]](s32)
9740 ; GFX9: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
9741 ; GFX9: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
9742 ; GFX9: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C6]](s32)
9743 ; GFX9: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 5)
9744 ; GFX9: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
9745 ; GFX9: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 5)
9746 ; GFX9: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
9747 ; GFX9: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 5)
9748 ; GFX9: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
9749 ; GFX9: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 5)
9750 ; GFX9: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
9751 ; GFX9: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
9752 ; GFX9: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD5]](s32)
9753 ; GFX9: [[AND5:%[0-9]+]]:_(s16) = G_AND [[TRUNC5]], [[C3]]
9754 ; GFX9: [[SHL3:%[0-9]+]]:_(s16) = G_SHL [[AND5]], [[C4]](s16)
9755 ; GFX9: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[SHL3]]
9756 ; GFX9: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
9757 ; GFX9: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
9758 ; GFX9: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD7]](s32)
9759 ; GFX9: [[AND7:%[0-9]+]]:_(s16) = G_AND [[TRUNC7]], [[C3]]
9760 ; GFX9: [[SHL4:%[0-9]+]]:_(s16) = G_SHL [[AND7]], [[C4]](s16)
9761 ; GFX9: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[SHL4]]
9762 ; GFX9: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
9763 ; GFX9: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
9764 ; GFX9: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C5]](s32)
9765 ; GFX9: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
9766 ; GFX9: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[OR2]](s32), [[OR5]](s32)
9767 ; GFX9: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)
9768 %0:_(p5) = COPY $vgpr0
9769 %1:_(<2 x s32>) = G_LOAD %0 :: (load 4, align 1, addrspace 5)
9770 $vgpr0_vgpr1 = COPY %1
9774 name: test_extload_private_v2s32_from_4_align2
9779 ; SI-LABEL: name: test_extload_private_v2s32_from_4_align2
9780 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9781 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
9782 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
9783 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
9784 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
9785 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
9786 ; SI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
9787 ; SI: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C1]]
9788 ; SI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
9789 ; SI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C1]]
9790 ; SI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
9791 ; SI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
9792 ; SI: [[OR:%[0-9]+]]:_(s32) = G_OR [[AND]], [[SHL]]
9793 ; SI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
9794 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
9795 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 2, addrspace 5)
9796 ; SI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
9797 ; SI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 2, addrspace 5)
9798 ; SI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD2]](s32)
9799 ; SI: [[AND2:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C1]]
9800 ; SI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
9801 ; SI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C1]]
9802 ; SI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[C2]](s32)
9803 ; SI: [[OR1:%[0-9]+]]:_(s32) = G_OR [[AND2]], [[SHL1]]
9804 ; SI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[OR]](s32), [[OR1]](s32)
9805 ; SI: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)
9806 ; CI-LABEL: name: test_extload_private_v2s32_from_4_align2
9807 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9808 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
9809 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
9810 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
9811 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
9812 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
9813 ; CI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
9814 ; CI: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C1]]
9815 ; CI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
9816 ; CI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C1]]
9817 ; CI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
9818 ; CI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
9819 ; CI: [[OR:%[0-9]+]]:_(s32) = G_OR [[AND]], [[SHL]]
9820 ; CI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
9821 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
9822 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 2, addrspace 5)
9823 ; CI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
9824 ; CI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 2, addrspace 5)
9825 ; CI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD2]](s32)
9826 ; CI: [[AND2:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C1]]
9827 ; CI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
9828 ; CI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C1]]
9829 ; CI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[C2]](s32)
9830 ; CI: [[OR1:%[0-9]+]]:_(s32) = G_OR [[AND2]], [[SHL1]]
9831 ; CI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[OR]](s32), [[OR1]](s32)
9832 ; CI: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)
9833 ; VI-LABEL: name: test_extload_private_v2s32_from_4_align2
9834 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9835 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
9836 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
9837 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
9838 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
9839 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
9840 ; VI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
9841 ; VI: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C1]]
9842 ; VI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
9843 ; VI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C1]]
9844 ; VI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
9845 ; VI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
9846 ; VI: [[OR:%[0-9]+]]:_(s32) = G_OR [[AND]], [[SHL]]
9847 ; VI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
9848 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
9849 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 2, addrspace 5)
9850 ; VI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
9851 ; VI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 2, addrspace 5)
9852 ; VI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD2]](s32)
9853 ; VI: [[AND2:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C1]]
9854 ; VI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
9855 ; VI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C1]]
9856 ; VI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[C2]](s32)
9857 ; VI: [[OR1:%[0-9]+]]:_(s32) = G_OR [[AND2]], [[SHL1]]
9858 ; VI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[OR]](s32), [[OR1]](s32)
9859 ; VI: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)
9860 ; GFX9-LABEL: name: test_extload_private_v2s32_from_4_align2
9861 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9862 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
9863 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
9864 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
9865 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
9866 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
9867 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
9868 ; GFX9: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C1]]
9869 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
9870 ; GFX9: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C1]]
9871 ; GFX9: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
9872 ; GFX9: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
9873 ; GFX9: [[OR:%[0-9]+]]:_(s32) = G_OR [[AND]], [[SHL]]
9874 ; GFX9: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
9875 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
9876 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 2, addrspace 5)
9877 ; GFX9: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
9878 ; GFX9: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 2, addrspace 5)
9879 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD2]](s32)
9880 ; GFX9: [[AND2:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C1]]
9881 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
9882 ; GFX9: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C1]]
9883 ; GFX9: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[C2]](s32)
9884 ; GFX9: [[OR1:%[0-9]+]]:_(s32) = G_OR [[AND2]], [[SHL1]]
9885 ; GFX9: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[OR]](s32), [[OR1]](s32)
9886 ; GFX9: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)
9887 %0:_(p5) = COPY $vgpr0
9888 %1:_(<2 x s32>) = G_LOAD %0 :: (load 4, align 2, addrspace 5)
9889 $vgpr0_vgpr1 = COPY %1
9893 name: test_extload_private_v2s32_from_4_align4
9898 ; SI-LABEL: name: test_extload_private_v2s32_from_4_align4
9899 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9900 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
9901 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
9902 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
9903 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
9904 ; SI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[LOAD]](s32), [[LOAD1]](s32)
9905 ; SI: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)
9906 ; CI-LABEL: name: test_extload_private_v2s32_from_4_align4
9907 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9908 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
9909 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
9910 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
9911 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
9912 ; CI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[LOAD]](s32), [[LOAD1]](s32)
9913 ; CI: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)
9914 ; VI-LABEL: name: test_extload_private_v2s32_from_4_align4
9915 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9916 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
9917 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
9918 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
9919 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
9920 ; VI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[LOAD]](s32), [[LOAD1]](s32)
9921 ; VI: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)
9922 ; GFX9-LABEL: name: test_extload_private_v2s32_from_4_align4
9923 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9924 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
9925 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
9926 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
9927 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
9928 ; GFX9: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[LOAD]](s32), [[LOAD1]](s32)
9929 ; GFX9: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)
9930 %0:_(p5) = COPY $vgpr0
9931 %1:_(<2 x s32>) = G_LOAD %0 :: (load 4, align 4, addrspace 5)
9932 $vgpr0_vgpr1 = COPY %1
9936 name: test_extload_private_v3s32_from_6_align4
9941 ; SI-LABEL: name: test_extload_private_v3s32_from_6_align4
9942 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9943 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
9944 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
9945 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
9946 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
9947 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
9948 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
9949 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, addrspace 5)
9950 ; SI: [[BUILD_VECTOR:%[0-9]+]]:_(<3 x s32>) = G_BUILD_VECTOR [[LOAD]](s32), [[LOAD1]](s32), [[LOAD2]](s32)
9951 ; SI: $vgpr0_vgpr1_vgpr2 = COPY [[BUILD_VECTOR]](<3 x s32>)
9952 ; CI-LABEL: name: test_extload_private_v3s32_from_6_align4
9953 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9954 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
9955 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
9956 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
9957 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
9958 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
9959 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
9960 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, addrspace 5)
9961 ; CI: [[BUILD_VECTOR:%[0-9]+]]:_(<3 x s32>) = G_BUILD_VECTOR [[LOAD]](s32), [[LOAD1]](s32), [[LOAD2]](s32)
9962 ; CI: $vgpr0_vgpr1_vgpr2 = COPY [[BUILD_VECTOR]](<3 x s32>)
9963 ; VI-LABEL: name: test_extload_private_v3s32_from_6_align4
9964 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9965 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
9966 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
9967 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
9968 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
9969 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
9970 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
9971 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, addrspace 5)
9972 ; VI: [[BUILD_VECTOR:%[0-9]+]]:_(<3 x s32>) = G_BUILD_VECTOR [[LOAD]](s32), [[LOAD1]](s32), [[LOAD2]](s32)
9973 ; VI: $vgpr0_vgpr1_vgpr2 = COPY [[BUILD_VECTOR]](<3 x s32>)
9974 ; GFX9-LABEL: name: test_extload_private_v3s32_from_6_align4
9975 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9976 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
9977 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
9978 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
9979 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
9980 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
9981 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
9982 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, addrspace 5)
9983 ; GFX9: [[BUILD_VECTOR:%[0-9]+]]:_(<3 x s32>) = G_BUILD_VECTOR [[LOAD]](s32), [[LOAD1]](s32), [[LOAD2]](s32)
9984 ; GFX9: $vgpr0_vgpr1_vgpr2 = COPY [[BUILD_VECTOR]](<3 x s32>)
9985 %0:_(p5) = COPY $vgpr0
9986 %1:_(<3 x s32>) = G_LOAD %0 :: (load 6, align 4, addrspace 5)
9987 $vgpr0_vgpr1_vgpr2 = COPY %1
9991 name: test_extload_private_v4s32_from_8_align4
9996 ; SI-LABEL: name: test_extload_private_v4s32_from_8_align4
9997 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
9998 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
9999 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
10000 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
10001 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
10002 ; SI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[LOAD]](s32), [[LOAD1]](s32)
10003 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
10004 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
10005 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, addrspace 5)
10006 ; SI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
10007 ; SI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
10008 ; SI: [[BUILD_VECTOR1:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[LOAD2]](s32), [[LOAD3]](s32)
10009 ; SI: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s32>) = G_CONCAT_VECTORS [[BUILD_VECTOR]](<2 x s32>), [[BUILD_VECTOR1]](<2 x s32>)
10010 ; SI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[CONCAT_VECTORS]](<4 x s32>)
10011 ; CI-LABEL: name: test_extload_private_v4s32_from_8_align4
10012 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
10013 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
10014 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
10015 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
10016 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
10017 ; CI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[LOAD]](s32), [[LOAD1]](s32)
10018 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
10019 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
10020 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, addrspace 5)
10021 ; CI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
10022 ; CI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
10023 ; CI: [[BUILD_VECTOR1:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[LOAD2]](s32), [[LOAD3]](s32)
10024 ; CI: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s32>) = G_CONCAT_VECTORS [[BUILD_VECTOR]](<2 x s32>), [[BUILD_VECTOR1]](<2 x s32>)
10025 ; CI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[CONCAT_VECTORS]](<4 x s32>)
10026 ; VI-LABEL: name: test_extload_private_v4s32_from_8_align4
10027 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
10028 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
10029 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
10030 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
10031 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
10032 ; VI: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[LOAD]](s32), [[LOAD1]](s32)
10033 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
10034 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
10035 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, addrspace 5)
10036 ; VI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
10037 ; VI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
10038 ; VI: [[BUILD_VECTOR1:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[LOAD2]](s32), [[LOAD3]](s32)
10039 ; VI: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s32>) = G_CONCAT_VECTORS [[BUILD_VECTOR]](<2 x s32>), [[BUILD_VECTOR1]](<2 x s32>)
10040 ; VI: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[CONCAT_VECTORS]](<4 x s32>)
10041 ; GFX9-LABEL: name: test_extload_private_v4s32_from_8_align4
10042 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
10043 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
10044 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
10045 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
10046 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
10047 ; GFX9: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[LOAD]](s32), [[LOAD1]](s32)
10048 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
10049 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
10050 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, addrspace 5)
10051 ; GFX9: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
10052 ; GFX9: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
10053 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[LOAD2]](s32), [[LOAD3]](s32)
10054 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s32>) = G_CONCAT_VECTORS [[BUILD_VECTOR]](<2 x s32>), [[BUILD_VECTOR1]](<2 x s32>)
10055 ; GFX9: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[CONCAT_VECTORS]](<4 x s32>)
10056 %0:_(p5) = COPY $vgpr0
10057 %1:_(<4 x s32>) = G_LOAD %0 :: (load 8, align 4, addrspace 5)
10058 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1
10062 name: test_extload_private_v2s96_from_24_align1
10067 ; SI-LABEL: name: test_extload_private_v2s96_from_24_align1
10068 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
10069 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
10070 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
10071 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
10072 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
10073 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
10074 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
10075 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
10076 ; SI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
10077 ; SI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
10078 ; SI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
10079 ; SI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
10080 ; SI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
10081 ; SI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
10082 ; SI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
10083 ; SI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
10084 ; SI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
10085 ; SI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
10086 ; SI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C5]]
10087 ; SI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[COPY1]](s32)
10088 ; SI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[SHL]](s32)
10089 ; SI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[TRUNC1]]
10090 ; SI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
10091 ; SI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
10092 ; SI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
10093 ; SI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
10094 ; SI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C5]]
10095 ; SI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[COPY3]](s32)
10096 ; SI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[SHL1]](s32)
10097 ; SI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[TRUNC3]]
10098 ; SI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
10099 ; SI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
10100 ; SI: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
10101 ; SI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C6]](s32)
10102 ; SI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
10103 ; SI: [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
10104 ; SI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C7]](s32)
10105 ; SI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 5)
10106 ; SI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
10107 ; SI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 5)
10108 ; SI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
10109 ; SI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 5)
10110 ; SI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
10111 ; SI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 5)
10112 ; SI: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
10113 ; SI: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
10114 ; SI: [[COPY5:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
10115 ; SI: [[COPY6:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
10116 ; SI: [[AND5:%[0-9]+]]:_(s32) = G_AND [[COPY6]], [[C5]]
10117 ; SI: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[AND5]], [[COPY5]](s32)
10118 ; SI: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[SHL3]](s32)
10119 ; SI: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[TRUNC5]]
10120 ; SI: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
10121 ; SI: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
10122 ; SI: [[COPY7:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
10123 ; SI: [[COPY8:%[0-9]+]]:_(s32) = COPY [[LOAD7]](s32)
10124 ; SI: [[AND7:%[0-9]+]]:_(s32) = G_AND [[COPY8]], [[C5]]
10125 ; SI: [[SHL4:%[0-9]+]]:_(s32) = G_SHL [[AND7]], [[COPY7]](s32)
10126 ; SI: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[SHL4]](s32)
10127 ; SI: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[TRUNC7]]
10128 ; SI: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
10129 ; SI: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
10130 ; SI: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C6]](s32)
10131 ; SI: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
10132 ; SI: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
10133 ; SI: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 1, addrspace 5)
10134 ; SI: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
10135 ; SI: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 1, addrspace 5)
10136 ; SI: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C1]](s32)
10137 ; SI: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 1, addrspace 5)
10138 ; SI: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C2]](s32)
10139 ; SI: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 1, addrspace 5)
10140 ; SI: [[TRUNC8:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD8]](s32)
10141 ; SI: [[AND8:%[0-9]+]]:_(s16) = G_AND [[TRUNC8]], [[C3]]
10142 ; SI: [[COPY9:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
10143 ; SI: [[COPY10:%[0-9]+]]:_(s32) = COPY [[LOAD9]](s32)
10144 ; SI: [[AND9:%[0-9]+]]:_(s32) = G_AND [[COPY10]], [[C5]]
10145 ; SI: [[SHL6:%[0-9]+]]:_(s32) = G_SHL [[AND9]], [[COPY9]](s32)
10146 ; SI: [[TRUNC9:%[0-9]+]]:_(s16) = G_TRUNC [[SHL6]](s32)
10147 ; SI: [[OR6:%[0-9]+]]:_(s16) = G_OR [[AND8]], [[TRUNC9]]
10148 ; SI: [[TRUNC10:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD10]](s32)
10149 ; SI: [[AND10:%[0-9]+]]:_(s16) = G_AND [[TRUNC10]], [[C3]]
10150 ; SI: [[COPY11:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
10151 ; SI: [[COPY12:%[0-9]+]]:_(s32) = COPY [[LOAD11]](s32)
10152 ; SI: [[AND11:%[0-9]+]]:_(s32) = G_AND [[COPY12]], [[C5]]
10153 ; SI: [[SHL7:%[0-9]+]]:_(s32) = G_SHL [[AND11]], [[COPY11]](s32)
10154 ; SI: [[TRUNC11:%[0-9]+]]:_(s16) = G_TRUNC [[SHL7]](s32)
10155 ; SI: [[OR7:%[0-9]+]]:_(s16) = G_OR [[AND10]], [[TRUNC11]]
10156 ; SI: [[ZEXT4:%[0-9]+]]:_(s32) = G_ZEXT [[OR6]](s16)
10157 ; SI: [[ZEXT5:%[0-9]+]]:_(s32) = G_ZEXT [[OR7]](s16)
10158 ; SI: [[SHL8:%[0-9]+]]:_(s32) = G_SHL [[ZEXT5]], [[C6]](s32)
10159 ; SI: [[OR8:%[0-9]+]]:_(s32) = G_OR [[ZEXT4]], [[SHL8]]
10160 ; SI: [[MV:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[OR2]](s32), [[OR5]](s32), [[OR8]](s32)
10161 ; SI: [[C8:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
10162 ; SI: [[GEP11:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C8]](s32)
10163 ; SI: [[LOAD12:%[0-9]+]]:_(s32) = G_LOAD [[GEP11]](p5) :: (load 1, addrspace 5)
10164 ; SI: [[GEP12:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C]](s32)
10165 ; SI: [[LOAD13:%[0-9]+]]:_(s32) = G_LOAD [[GEP12]](p5) :: (load 1, addrspace 5)
10166 ; SI: [[GEP13:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C1]](s32)
10167 ; SI: [[LOAD14:%[0-9]+]]:_(s32) = G_LOAD [[GEP13]](p5) :: (load 1, addrspace 5)
10168 ; SI: [[GEP14:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C2]](s32)
10169 ; SI: [[LOAD15:%[0-9]+]]:_(s32) = G_LOAD [[GEP14]](p5) :: (load 1, addrspace 5)
10170 ; SI: [[TRUNC12:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD12]](s32)
10171 ; SI: [[AND12:%[0-9]+]]:_(s16) = G_AND [[TRUNC12]], [[C3]]
10172 ; SI: [[COPY13:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
10173 ; SI: [[COPY14:%[0-9]+]]:_(s32) = COPY [[LOAD13]](s32)
10174 ; SI: [[AND13:%[0-9]+]]:_(s32) = G_AND [[COPY14]], [[C5]]
10175 ; SI: [[SHL9:%[0-9]+]]:_(s32) = G_SHL [[AND13]], [[COPY13]](s32)
10176 ; SI: [[TRUNC13:%[0-9]+]]:_(s16) = G_TRUNC [[SHL9]](s32)
10177 ; SI: [[OR9:%[0-9]+]]:_(s16) = G_OR [[AND12]], [[TRUNC13]]
10178 ; SI: [[TRUNC14:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD14]](s32)
10179 ; SI: [[AND14:%[0-9]+]]:_(s16) = G_AND [[TRUNC14]], [[C3]]
10180 ; SI: [[COPY15:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
10181 ; SI: [[COPY16:%[0-9]+]]:_(s32) = COPY [[LOAD15]](s32)
10182 ; SI: [[AND15:%[0-9]+]]:_(s32) = G_AND [[COPY16]], [[C5]]
10183 ; SI: [[SHL10:%[0-9]+]]:_(s32) = G_SHL [[AND15]], [[COPY15]](s32)
10184 ; SI: [[TRUNC15:%[0-9]+]]:_(s16) = G_TRUNC [[SHL10]](s32)
10185 ; SI: [[OR10:%[0-9]+]]:_(s16) = G_OR [[AND14]], [[TRUNC15]]
10186 ; SI: [[ZEXT6:%[0-9]+]]:_(s32) = G_ZEXT [[OR9]](s16)
10187 ; SI: [[ZEXT7:%[0-9]+]]:_(s32) = G_ZEXT [[OR10]](s16)
10188 ; SI: [[SHL11:%[0-9]+]]:_(s32) = G_SHL [[ZEXT7]], [[C6]](s32)
10189 ; SI: [[OR11:%[0-9]+]]:_(s32) = G_OR [[ZEXT6]], [[SHL11]]
10190 ; SI: [[GEP15:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C7]](s32)
10191 ; SI: [[LOAD16:%[0-9]+]]:_(s32) = G_LOAD [[GEP15]](p5) :: (load 1, addrspace 5)
10192 ; SI: [[GEP16:%[0-9]+]]:_(p5) = G_GEP [[GEP15]], [[C]](s32)
10193 ; SI: [[LOAD17:%[0-9]+]]:_(s32) = G_LOAD [[GEP16]](p5) :: (load 1, addrspace 5)
10194 ; SI: [[GEP17:%[0-9]+]]:_(p5) = G_GEP [[GEP15]], [[C1]](s32)
10195 ; SI: [[LOAD18:%[0-9]+]]:_(s32) = G_LOAD [[GEP17]](p5) :: (load 1, addrspace 5)
10196 ; SI: [[GEP18:%[0-9]+]]:_(p5) = G_GEP [[GEP15]], [[C2]](s32)
10197 ; SI: [[LOAD19:%[0-9]+]]:_(s32) = G_LOAD [[GEP18]](p5) :: (load 1, addrspace 5)
10198 ; SI: [[TRUNC16:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD16]](s32)
10199 ; SI: [[AND16:%[0-9]+]]:_(s16) = G_AND [[TRUNC16]], [[C3]]
10200 ; SI: [[COPY17:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
10201 ; SI: [[COPY18:%[0-9]+]]:_(s32) = COPY [[LOAD17]](s32)
10202 ; SI: [[AND17:%[0-9]+]]:_(s32) = G_AND [[COPY18]], [[C5]]
10203 ; SI: [[SHL12:%[0-9]+]]:_(s32) = G_SHL [[AND17]], [[COPY17]](s32)
10204 ; SI: [[TRUNC17:%[0-9]+]]:_(s16) = G_TRUNC [[SHL12]](s32)
10205 ; SI: [[OR12:%[0-9]+]]:_(s16) = G_OR [[AND16]], [[TRUNC17]]
10206 ; SI: [[TRUNC18:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD18]](s32)
10207 ; SI: [[AND18:%[0-9]+]]:_(s16) = G_AND [[TRUNC18]], [[C3]]
10208 ; SI: [[COPY19:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
10209 ; SI: [[COPY20:%[0-9]+]]:_(s32) = COPY [[LOAD19]](s32)
10210 ; SI: [[AND19:%[0-9]+]]:_(s32) = G_AND [[COPY20]], [[C5]]
10211 ; SI: [[SHL13:%[0-9]+]]:_(s32) = G_SHL [[AND19]], [[COPY19]](s32)
10212 ; SI: [[TRUNC19:%[0-9]+]]:_(s16) = G_TRUNC [[SHL13]](s32)
10213 ; SI: [[OR13:%[0-9]+]]:_(s16) = G_OR [[AND18]], [[TRUNC19]]
10214 ; SI: [[ZEXT8:%[0-9]+]]:_(s32) = G_ZEXT [[OR12]](s16)
10215 ; SI: [[ZEXT9:%[0-9]+]]:_(s32) = G_ZEXT [[OR13]](s16)
10216 ; SI: [[SHL14:%[0-9]+]]:_(s32) = G_SHL [[ZEXT9]], [[C6]](s32)
10217 ; SI: [[OR14:%[0-9]+]]:_(s32) = G_OR [[ZEXT8]], [[SHL14]]
10218 ; SI: [[GEP19:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C4]](s32)
10219 ; SI: [[LOAD20:%[0-9]+]]:_(s32) = G_LOAD [[GEP19]](p5) :: (load 1, addrspace 5)
10220 ; SI: [[GEP20:%[0-9]+]]:_(p5) = G_GEP [[GEP19]], [[C]](s32)
10221 ; SI: [[LOAD21:%[0-9]+]]:_(s32) = G_LOAD [[GEP20]](p5) :: (load 1, addrspace 5)
10222 ; SI: [[GEP21:%[0-9]+]]:_(p5) = G_GEP [[GEP19]], [[C1]](s32)
10223 ; SI: [[LOAD22:%[0-9]+]]:_(s32) = G_LOAD [[GEP21]](p5) :: (load 1, addrspace 5)
10224 ; SI: [[GEP22:%[0-9]+]]:_(p5) = G_GEP [[GEP19]], [[C2]](s32)
10225 ; SI: [[LOAD23:%[0-9]+]]:_(s32) = G_LOAD [[GEP22]](p5) :: (load 1, addrspace 5)
10226 ; SI: [[TRUNC20:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD20]](s32)
10227 ; SI: [[AND20:%[0-9]+]]:_(s16) = G_AND [[TRUNC20]], [[C3]]
10228 ; SI: [[COPY21:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
10229 ; SI: [[COPY22:%[0-9]+]]:_(s32) = COPY [[LOAD21]](s32)
10230 ; SI: [[AND21:%[0-9]+]]:_(s32) = G_AND [[COPY22]], [[C5]]
10231 ; SI: [[SHL15:%[0-9]+]]:_(s32) = G_SHL [[AND21]], [[COPY21]](s32)
10232 ; SI: [[TRUNC21:%[0-9]+]]:_(s16) = G_TRUNC [[SHL15]](s32)
10233 ; SI: [[OR15:%[0-9]+]]:_(s16) = G_OR [[AND20]], [[TRUNC21]]
10234 ; SI: [[TRUNC22:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD22]](s32)
10235 ; SI: [[AND22:%[0-9]+]]:_(s16) = G_AND [[TRUNC22]], [[C3]]
10236 ; SI: [[COPY23:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
10237 ; SI: [[COPY24:%[0-9]+]]:_(s32) = COPY [[LOAD23]](s32)
10238 ; SI: [[AND23:%[0-9]+]]:_(s32) = G_AND [[COPY24]], [[C5]]
10239 ; SI: [[SHL16:%[0-9]+]]:_(s32) = G_SHL [[AND23]], [[COPY23]](s32)
10240 ; SI: [[TRUNC23:%[0-9]+]]:_(s16) = G_TRUNC [[SHL16]](s32)
10241 ; SI: [[OR16:%[0-9]+]]:_(s16) = G_OR [[AND22]], [[TRUNC23]]
10242 ; SI: [[ZEXT10:%[0-9]+]]:_(s32) = G_ZEXT [[OR15]](s16)
10243 ; SI: [[ZEXT11:%[0-9]+]]:_(s32) = G_ZEXT [[OR16]](s16)
10244 ; SI: [[SHL17:%[0-9]+]]:_(s32) = G_SHL [[ZEXT11]], [[C6]](s32)
10245 ; SI: [[OR17:%[0-9]+]]:_(s32) = G_OR [[ZEXT10]], [[SHL17]]
10246 ; SI: [[MV1:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[OR11]](s32), [[OR14]](s32), [[OR17]](s32)
10247 ; SI: [[COPY25:%[0-9]+]]:_(s96) = COPY [[MV]](s96)
10248 ; SI: [[COPY26:%[0-9]+]]:_(s96) = COPY [[MV1]](s96)
10249 ; SI: $vgpr0_vgpr1_vgpr2 = COPY [[COPY25]](s96)
10250 ; SI: $vgpr3_vgpr4_vgpr5 = COPY [[COPY26]](s96)
10251 ; CI-LABEL: name: test_extload_private_v2s96_from_24_align1
10252 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
10253 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
10254 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
10255 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
10256 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
10257 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
10258 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
10259 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
10260 ; CI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
10261 ; CI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
10262 ; CI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
10263 ; CI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
10264 ; CI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
10265 ; CI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
10266 ; CI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
10267 ; CI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
10268 ; CI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
10269 ; CI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
10270 ; CI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C5]]
10271 ; CI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[COPY1]](s32)
10272 ; CI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[SHL]](s32)
10273 ; CI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[TRUNC1]]
10274 ; CI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
10275 ; CI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
10276 ; CI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
10277 ; CI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
10278 ; CI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C5]]
10279 ; CI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[COPY3]](s32)
10280 ; CI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[SHL1]](s32)
10281 ; CI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[TRUNC3]]
10282 ; CI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
10283 ; CI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
10284 ; CI: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
10285 ; CI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C6]](s32)
10286 ; CI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
10287 ; CI: [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
10288 ; CI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C7]](s32)
10289 ; CI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 5)
10290 ; CI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
10291 ; CI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 5)
10292 ; CI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
10293 ; CI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 5)
10294 ; CI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
10295 ; CI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 5)
10296 ; CI: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
10297 ; CI: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
10298 ; CI: [[COPY5:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
10299 ; CI: [[COPY6:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
10300 ; CI: [[AND5:%[0-9]+]]:_(s32) = G_AND [[COPY6]], [[C5]]
10301 ; CI: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[AND5]], [[COPY5]](s32)
10302 ; CI: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[SHL3]](s32)
10303 ; CI: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[TRUNC5]]
10304 ; CI: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
10305 ; CI: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
10306 ; CI: [[COPY7:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
10307 ; CI: [[COPY8:%[0-9]+]]:_(s32) = COPY [[LOAD7]](s32)
10308 ; CI: [[AND7:%[0-9]+]]:_(s32) = G_AND [[COPY8]], [[C5]]
10309 ; CI: [[SHL4:%[0-9]+]]:_(s32) = G_SHL [[AND7]], [[COPY7]](s32)
10310 ; CI: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[SHL4]](s32)
10311 ; CI: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[TRUNC7]]
10312 ; CI: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
10313 ; CI: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
10314 ; CI: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C6]](s32)
10315 ; CI: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
10316 ; CI: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
10317 ; CI: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 1, addrspace 5)
10318 ; CI: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
10319 ; CI: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 1, addrspace 5)
10320 ; CI: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C1]](s32)
10321 ; CI: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 1, addrspace 5)
10322 ; CI: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C2]](s32)
10323 ; CI: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 1, addrspace 5)
10324 ; CI: [[TRUNC8:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD8]](s32)
10325 ; CI: [[AND8:%[0-9]+]]:_(s16) = G_AND [[TRUNC8]], [[C3]]
10326 ; CI: [[COPY9:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
10327 ; CI: [[COPY10:%[0-9]+]]:_(s32) = COPY [[LOAD9]](s32)
10328 ; CI: [[AND9:%[0-9]+]]:_(s32) = G_AND [[COPY10]], [[C5]]
10329 ; CI: [[SHL6:%[0-9]+]]:_(s32) = G_SHL [[AND9]], [[COPY9]](s32)
10330 ; CI: [[TRUNC9:%[0-9]+]]:_(s16) = G_TRUNC [[SHL6]](s32)
10331 ; CI: [[OR6:%[0-9]+]]:_(s16) = G_OR [[AND8]], [[TRUNC9]]
10332 ; CI: [[TRUNC10:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD10]](s32)
10333 ; CI: [[AND10:%[0-9]+]]:_(s16) = G_AND [[TRUNC10]], [[C3]]
10334 ; CI: [[COPY11:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
10335 ; CI: [[COPY12:%[0-9]+]]:_(s32) = COPY [[LOAD11]](s32)
10336 ; CI: [[AND11:%[0-9]+]]:_(s32) = G_AND [[COPY12]], [[C5]]
10337 ; CI: [[SHL7:%[0-9]+]]:_(s32) = G_SHL [[AND11]], [[COPY11]](s32)
10338 ; CI: [[TRUNC11:%[0-9]+]]:_(s16) = G_TRUNC [[SHL7]](s32)
10339 ; CI: [[OR7:%[0-9]+]]:_(s16) = G_OR [[AND10]], [[TRUNC11]]
10340 ; CI: [[ZEXT4:%[0-9]+]]:_(s32) = G_ZEXT [[OR6]](s16)
10341 ; CI: [[ZEXT5:%[0-9]+]]:_(s32) = G_ZEXT [[OR7]](s16)
10342 ; CI: [[SHL8:%[0-9]+]]:_(s32) = G_SHL [[ZEXT5]], [[C6]](s32)
10343 ; CI: [[OR8:%[0-9]+]]:_(s32) = G_OR [[ZEXT4]], [[SHL8]]
10344 ; CI: [[MV:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[OR2]](s32), [[OR5]](s32), [[OR8]](s32)
10345 ; CI: [[C8:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
10346 ; CI: [[GEP11:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C8]](s32)
10347 ; CI: [[LOAD12:%[0-9]+]]:_(s32) = G_LOAD [[GEP11]](p5) :: (load 1, addrspace 5)
10348 ; CI: [[GEP12:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C]](s32)
10349 ; CI: [[LOAD13:%[0-9]+]]:_(s32) = G_LOAD [[GEP12]](p5) :: (load 1, addrspace 5)
10350 ; CI: [[GEP13:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C1]](s32)
10351 ; CI: [[LOAD14:%[0-9]+]]:_(s32) = G_LOAD [[GEP13]](p5) :: (load 1, addrspace 5)
10352 ; CI: [[GEP14:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C2]](s32)
10353 ; CI: [[LOAD15:%[0-9]+]]:_(s32) = G_LOAD [[GEP14]](p5) :: (load 1, addrspace 5)
10354 ; CI: [[TRUNC12:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD12]](s32)
10355 ; CI: [[AND12:%[0-9]+]]:_(s16) = G_AND [[TRUNC12]], [[C3]]
10356 ; CI: [[COPY13:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
10357 ; CI: [[COPY14:%[0-9]+]]:_(s32) = COPY [[LOAD13]](s32)
10358 ; CI: [[AND13:%[0-9]+]]:_(s32) = G_AND [[COPY14]], [[C5]]
10359 ; CI: [[SHL9:%[0-9]+]]:_(s32) = G_SHL [[AND13]], [[COPY13]](s32)
10360 ; CI: [[TRUNC13:%[0-9]+]]:_(s16) = G_TRUNC [[SHL9]](s32)
10361 ; CI: [[OR9:%[0-9]+]]:_(s16) = G_OR [[AND12]], [[TRUNC13]]
10362 ; CI: [[TRUNC14:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD14]](s32)
10363 ; CI: [[AND14:%[0-9]+]]:_(s16) = G_AND [[TRUNC14]], [[C3]]
10364 ; CI: [[COPY15:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
10365 ; CI: [[COPY16:%[0-9]+]]:_(s32) = COPY [[LOAD15]](s32)
10366 ; CI: [[AND15:%[0-9]+]]:_(s32) = G_AND [[COPY16]], [[C5]]
10367 ; CI: [[SHL10:%[0-9]+]]:_(s32) = G_SHL [[AND15]], [[COPY15]](s32)
10368 ; CI: [[TRUNC15:%[0-9]+]]:_(s16) = G_TRUNC [[SHL10]](s32)
10369 ; CI: [[OR10:%[0-9]+]]:_(s16) = G_OR [[AND14]], [[TRUNC15]]
10370 ; CI: [[ZEXT6:%[0-9]+]]:_(s32) = G_ZEXT [[OR9]](s16)
10371 ; CI: [[ZEXT7:%[0-9]+]]:_(s32) = G_ZEXT [[OR10]](s16)
10372 ; CI: [[SHL11:%[0-9]+]]:_(s32) = G_SHL [[ZEXT7]], [[C6]](s32)
10373 ; CI: [[OR11:%[0-9]+]]:_(s32) = G_OR [[ZEXT6]], [[SHL11]]
10374 ; CI: [[GEP15:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C7]](s32)
10375 ; CI: [[LOAD16:%[0-9]+]]:_(s32) = G_LOAD [[GEP15]](p5) :: (load 1, addrspace 5)
10376 ; CI: [[GEP16:%[0-9]+]]:_(p5) = G_GEP [[GEP15]], [[C]](s32)
10377 ; CI: [[LOAD17:%[0-9]+]]:_(s32) = G_LOAD [[GEP16]](p5) :: (load 1, addrspace 5)
10378 ; CI: [[GEP17:%[0-9]+]]:_(p5) = G_GEP [[GEP15]], [[C1]](s32)
10379 ; CI: [[LOAD18:%[0-9]+]]:_(s32) = G_LOAD [[GEP17]](p5) :: (load 1, addrspace 5)
10380 ; CI: [[GEP18:%[0-9]+]]:_(p5) = G_GEP [[GEP15]], [[C2]](s32)
10381 ; CI: [[LOAD19:%[0-9]+]]:_(s32) = G_LOAD [[GEP18]](p5) :: (load 1, addrspace 5)
10382 ; CI: [[TRUNC16:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD16]](s32)
10383 ; CI: [[AND16:%[0-9]+]]:_(s16) = G_AND [[TRUNC16]], [[C3]]
10384 ; CI: [[COPY17:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
10385 ; CI: [[COPY18:%[0-9]+]]:_(s32) = COPY [[LOAD17]](s32)
10386 ; CI: [[AND17:%[0-9]+]]:_(s32) = G_AND [[COPY18]], [[C5]]
10387 ; CI: [[SHL12:%[0-9]+]]:_(s32) = G_SHL [[AND17]], [[COPY17]](s32)
10388 ; CI: [[TRUNC17:%[0-9]+]]:_(s16) = G_TRUNC [[SHL12]](s32)
10389 ; CI: [[OR12:%[0-9]+]]:_(s16) = G_OR [[AND16]], [[TRUNC17]]
10390 ; CI: [[TRUNC18:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD18]](s32)
10391 ; CI: [[AND18:%[0-9]+]]:_(s16) = G_AND [[TRUNC18]], [[C3]]
10392 ; CI: [[COPY19:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
10393 ; CI: [[COPY20:%[0-9]+]]:_(s32) = COPY [[LOAD19]](s32)
10394 ; CI: [[AND19:%[0-9]+]]:_(s32) = G_AND [[COPY20]], [[C5]]
10395 ; CI: [[SHL13:%[0-9]+]]:_(s32) = G_SHL [[AND19]], [[COPY19]](s32)
10396 ; CI: [[TRUNC19:%[0-9]+]]:_(s16) = G_TRUNC [[SHL13]](s32)
10397 ; CI: [[OR13:%[0-9]+]]:_(s16) = G_OR [[AND18]], [[TRUNC19]]
10398 ; CI: [[ZEXT8:%[0-9]+]]:_(s32) = G_ZEXT [[OR12]](s16)
10399 ; CI: [[ZEXT9:%[0-9]+]]:_(s32) = G_ZEXT [[OR13]](s16)
10400 ; CI: [[SHL14:%[0-9]+]]:_(s32) = G_SHL [[ZEXT9]], [[C6]](s32)
10401 ; CI: [[OR14:%[0-9]+]]:_(s32) = G_OR [[ZEXT8]], [[SHL14]]
10402 ; CI: [[GEP19:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C4]](s32)
10403 ; CI: [[LOAD20:%[0-9]+]]:_(s32) = G_LOAD [[GEP19]](p5) :: (load 1, addrspace 5)
10404 ; CI: [[GEP20:%[0-9]+]]:_(p5) = G_GEP [[GEP19]], [[C]](s32)
10405 ; CI: [[LOAD21:%[0-9]+]]:_(s32) = G_LOAD [[GEP20]](p5) :: (load 1, addrspace 5)
10406 ; CI: [[GEP21:%[0-9]+]]:_(p5) = G_GEP [[GEP19]], [[C1]](s32)
10407 ; CI: [[LOAD22:%[0-9]+]]:_(s32) = G_LOAD [[GEP21]](p5) :: (load 1, addrspace 5)
10408 ; CI: [[GEP22:%[0-9]+]]:_(p5) = G_GEP [[GEP19]], [[C2]](s32)
10409 ; CI: [[LOAD23:%[0-9]+]]:_(s32) = G_LOAD [[GEP22]](p5) :: (load 1, addrspace 5)
10410 ; CI: [[TRUNC20:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD20]](s32)
10411 ; CI: [[AND20:%[0-9]+]]:_(s16) = G_AND [[TRUNC20]], [[C3]]
10412 ; CI: [[COPY21:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
10413 ; CI: [[COPY22:%[0-9]+]]:_(s32) = COPY [[LOAD21]](s32)
10414 ; CI: [[AND21:%[0-9]+]]:_(s32) = G_AND [[COPY22]], [[C5]]
10415 ; CI: [[SHL15:%[0-9]+]]:_(s32) = G_SHL [[AND21]], [[COPY21]](s32)
10416 ; CI: [[TRUNC21:%[0-9]+]]:_(s16) = G_TRUNC [[SHL15]](s32)
10417 ; CI: [[OR15:%[0-9]+]]:_(s16) = G_OR [[AND20]], [[TRUNC21]]
10418 ; CI: [[TRUNC22:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD22]](s32)
10419 ; CI: [[AND22:%[0-9]+]]:_(s16) = G_AND [[TRUNC22]], [[C3]]
10420 ; CI: [[COPY23:%[0-9]+]]:_(s32) = COPY [[C4]](s32)
10421 ; CI: [[COPY24:%[0-9]+]]:_(s32) = COPY [[LOAD23]](s32)
10422 ; CI: [[AND23:%[0-9]+]]:_(s32) = G_AND [[COPY24]], [[C5]]
10423 ; CI: [[SHL16:%[0-9]+]]:_(s32) = G_SHL [[AND23]], [[COPY23]](s32)
10424 ; CI: [[TRUNC23:%[0-9]+]]:_(s16) = G_TRUNC [[SHL16]](s32)
10425 ; CI: [[OR16:%[0-9]+]]:_(s16) = G_OR [[AND22]], [[TRUNC23]]
10426 ; CI: [[ZEXT10:%[0-9]+]]:_(s32) = G_ZEXT [[OR15]](s16)
10427 ; CI: [[ZEXT11:%[0-9]+]]:_(s32) = G_ZEXT [[OR16]](s16)
10428 ; CI: [[SHL17:%[0-9]+]]:_(s32) = G_SHL [[ZEXT11]], [[C6]](s32)
10429 ; CI: [[OR17:%[0-9]+]]:_(s32) = G_OR [[ZEXT10]], [[SHL17]]
10430 ; CI: [[MV1:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[OR11]](s32), [[OR14]](s32), [[OR17]](s32)
10431 ; CI: [[COPY25:%[0-9]+]]:_(s96) = COPY [[MV]](s96)
10432 ; CI: [[COPY26:%[0-9]+]]:_(s96) = COPY [[MV1]](s96)
10433 ; CI: $vgpr0_vgpr1_vgpr2 = COPY [[COPY25]](s96)
10434 ; CI: $vgpr3_vgpr4_vgpr5 = COPY [[COPY26]](s96)
10435 ; VI-LABEL: name: test_extload_private_v2s96_from_24_align1
10436 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
10437 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
10438 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
10439 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
10440 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
10441 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
10442 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
10443 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
10444 ; VI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
10445 ; VI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
10446 ; VI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
10447 ; VI: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
10448 ; VI: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
10449 ; VI: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
10450 ; VI: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
10451 ; VI: [[AND1:%[0-9]+]]:_(s16) = G_AND [[TRUNC1]], [[C3]]
10452 ; VI: [[C4:%[0-9]+]]:_(s16) = G_CONSTANT i16 8
10453 ; VI: [[SHL:%[0-9]+]]:_(s16) = G_SHL [[AND1]], [[C4]](s16)
10454 ; VI: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[SHL]]
10455 ; VI: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
10456 ; VI: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
10457 ; VI: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD3]](s32)
10458 ; VI: [[AND3:%[0-9]+]]:_(s16) = G_AND [[TRUNC3]], [[C3]]
10459 ; VI: [[SHL1:%[0-9]+]]:_(s16) = G_SHL [[AND3]], [[C4]](s16)
10460 ; VI: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[SHL1]]
10461 ; VI: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
10462 ; VI: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
10463 ; VI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
10464 ; VI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C5]](s32)
10465 ; VI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
10466 ; VI: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
10467 ; VI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C6]](s32)
10468 ; VI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 5)
10469 ; VI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
10470 ; VI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 5)
10471 ; VI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
10472 ; VI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 5)
10473 ; VI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
10474 ; VI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 5)
10475 ; VI: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
10476 ; VI: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
10477 ; VI: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD5]](s32)
10478 ; VI: [[AND5:%[0-9]+]]:_(s16) = G_AND [[TRUNC5]], [[C3]]
10479 ; VI: [[SHL3:%[0-9]+]]:_(s16) = G_SHL [[AND5]], [[C4]](s16)
10480 ; VI: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[SHL3]]
10481 ; VI: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
10482 ; VI: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
10483 ; VI: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD7]](s32)
10484 ; VI: [[AND7:%[0-9]+]]:_(s16) = G_AND [[TRUNC7]], [[C3]]
10485 ; VI: [[SHL4:%[0-9]+]]:_(s16) = G_SHL [[AND7]], [[C4]](s16)
10486 ; VI: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[SHL4]]
10487 ; VI: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
10488 ; VI: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
10489 ; VI: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C5]](s32)
10490 ; VI: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
10491 ; VI: [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
10492 ; VI: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C7]](s32)
10493 ; VI: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 1, addrspace 5)
10494 ; VI: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
10495 ; VI: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 1, addrspace 5)
10496 ; VI: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C1]](s32)
10497 ; VI: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 1, addrspace 5)
10498 ; VI: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C2]](s32)
10499 ; VI: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 1, addrspace 5)
10500 ; VI: [[TRUNC8:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD8]](s32)
10501 ; VI: [[AND8:%[0-9]+]]:_(s16) = G_AND [[TRUNC8]], [[C3]]
10502 ; VI: [[TRUNC9:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD9]](s32)
10503 ; VI: [[AND9:%[0-9]+]]:_(s16) = G_AND [[TRUNC9]], [[C3]]
10504 ; VI: [[SHL6:%[0-9]+]]:_(s16) = G_SHL [[AND9]], [[C4]](s16)
10505 ; VI: [[OR6:%[0-9]+]]:_(s16) = G_OR [[AND8]], [[SHL6]]
10506 ; VI: [[TRUNC10:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD10]](s32)
10507 ; VI: [[AND10:%[0-9]+]]:_(s16) = G_AND [[TRUNC10]], [[C3]]
10508 ; VI: [[TRUNC11:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD11]](s32)
10509 ; VI: [[AND11:%[0-9]+]]:_(s16) = G_AND [[TRUNC11]], [[C3]]
10510 ; VI: [[SHL7:%[0-9]+]]:_(s16) = G_SHL [[AND11]], [[C4]](s16)
10511 ; VI: [[OR7:%[0-9]+]]:_(s16) = G_OR [[AND10]], [[SHL7]]
10512 ; VI: [[ZEXT4:%[0-9]+]]:_(s32) = G_ZEXT [[OR6]](s16)
10513 ; VI: [[ZEXT5:%[0-9]+]]:_(s32) = G_ZEXT [[OR7]](s16)
10514 ; VI: [[SHL8:%[0-9]+]]:_(s32) = G_SHL [[ZEXT5]], [[C5]](s32)
10515 ; VI: [[OR8:%[0-9]+]]:_(s32) = G_OR [[ZEXT4]], [[SHL8]]
10516 ; VI: [[MV:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[OR2]](s32), [[OR5]](s32), [[OR8]](s32)
10517 ; VI: [[C8:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
10518 ; VI: [[GEP11:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C8]](s32)
10519 ; VI: [[LOAD12:%[0-9]+]]:_(s32) = G_LOAD [[GEP11]](p5) :: (load 1, addrspace 5)
10520 ; VI: [[GEP12:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C]](s32)
10521 ; VI: [[LOAD13:%[0-9]+]]:_(s32) = G_LOAD [[GEP12]](p5) :: (load 1, addrspace 5)
10522 ; VI: [[GEP13:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C1]](s32)
10523 ; VI: [[LOAD14:%[0-9]+]]:_(s32) = G_LOAD [[GEP13]](p5) :: (load 1, addrspace 5)
10524 ; VI: [[GEP14:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C2]](s32)
10525 ; VI: [[LOAD15:%[0-9]+]]:_(s32) = G_LOAD [[GEP14]](p5) :: (load 1, addrspace 5)
10526 ; VI: [[TRUNC12:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD12]](s32)
10527 ; VI: [[AND12:%[0-9]+]]:_(s16) = G_AND [[TRUNC12]], [[C3]]
10528 ; VI: [[TRUNC13:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD13]](s32)
10529 ; VI: [[AND13:%[0-9]+]]:_(s16) = G_AND [[TRUNC13]], [[C3]]
10530 ; VI: [[SHL9:%[0-9]+]]:_(s16) = G_SHL [[AND13]], [[C4]](s16)
10531 ; VI: [[OR9:%[0-9]+]]:_(s16) = G_OR [[AND12]], [[SHL9]]
10532 ; VI: [[TRUNC14:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD14]](s32)
10533 ; VI: [[AND14:%[0-9]+]]:_(s16) = G_AND [[TRUNC14]], [[C3]]
10534 ; VI: [[TRUNC15:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD15]](s32)
10535 ; VI: [[AND15:%[0-9]+]]:_(s16) = G_AND [[TRUNC15]], [[C3]]
10536 ; VI: [[SHL10:%[0-9]+]]:_(s16) = G_SHL [[AND15]], [[C4]](s16)
10537 ; VI: [[OR10:%[0-9]+]]:_(s16) = G_OR [[AND14]], [[SHL10]]
10538 ; VI: [[ZEXT6:%[0-9]+]]:_(s32) = G_ZEXT [[OR9]](s16)
10539 ; VI: [[ZEXT7:%[0-9]+]]:_(s32) = G_ZEXT [[OR10]](s16)
10540 ; VI: [[SHL11:%[0-9]+]]:_(s32) = G_SHL [[ZEXT7]], [[C5]](s32)
10541 ; VI: [[OR11:%[0-9]+]]:_(s32) = G_OR [[ZEXT6]], [[SHL11]]
10542 ; VI: [[GEP15:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C6]](s32)
10543 ; VI: [[LOAD16:%[0-9]+]]:_(s32) = G_LOAD [[GEP15]](p5) :: (load 1, addrspace 5)
10544 ; VI: [[GEP16:%[0-9]+]]:_(p5) = G_GEP [[GEP15]], [[C]](s32)
10545 ; VI: [[LOAD17:%[0-9]+]]:_(s32) = G_LOAD [[GEP16]](p5) :: (load 1, addrspace 5)
10546 ; VI: [[GEP17:%[0-9]+]]:_(p5) = G_GEP [[GEP15]], [[C1]](s32)
10547 ; VI: [[LOAD18:%[0-9]+]]:_(s32) = G_LOAD [[GEP17]](p5) :: (load 1, addrspace 5)
10548 ; VI: [[GEP18:%[0-9]+]]:_(p5) = G_GEP [[GEP15]], [[C2]](s32)
10549 ; VI: [[LOAD19:%[0-9]+]]:_(s32) = G_LOAD [[GEP18]](p5) :: (load 1, addrspace 5)
10550 ; VI: [[TRUNC16:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD16]](s32)
10551 ; VI: [[AND16:%[0-9]+]]:_(s16) = G_AND [[TRUNC16]], [[C3]]
10552 ; VI: [[TRUNC17:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD17]](s32)
10553 ; VI: [[AND17:%[0-9]+]]:_(s16) = G_AND [[TRUNC17]], [[C3]]
10554 ; VI: [[SHL12:%[0-9]+]]:_(s16) = G_SHL [[AND17]], [[C4]](s16)
10555 ; VI: [[OR12:%[0-9]+]]:_(s16) = G_OR [[AND16]], [[SHL12]]
10556 ; VI: [[TRUNC18:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD18]](s32)
10557 ; VI: [[AND18:%[0-9]+]]:_(s16) = G_AND [[TRUNC18]], [[C3]]
10558 ; VI: [[TRUNC19:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD19]](s32)
10559 ; VI: [[AND19:%[0-9]+]]:_(s16) = G_AND [[TRUNC19]], [[C3]]
10560 ; VI: [[SHL13:%[0-9]+]]:_(s16) = G_SHL [[AND19]], [[C4]](s16)
10561 ; VI: [[OR13:%[0-9]+]]:_(s16) = G_OR [[AND18]], [[SHL13]]
10562 ; VI: [[ZEXT8:%[0-9]+]]:_(s32) = G_ZEXT [[OR12]](s16)
10563 ; VI: [[ZEXT9:%[0-9]+]]:_(s32) = G_ZEXT [[OR13]](s16)
10564 ; VI: [[SHL14:%[0-9]+]]:_(s32) = G_SHL [[ZEXT9]], [[C5]](s32)
10565 ; VI: [[OR14:%[0-9]+]]:_(s32) = G_OR [[ZEXT8]], [[SHL14]]
10566 ; VI: [[GEP19:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C7]](s32)
10567 ; VI: [[LOAD20:%[0-9]+]]:_(s32) = G_LOAD [[GEP19]](p5) :: (load 1, addrspace 5)
10568 ; VI: [[GEP20:%[0-9]+]]:_(p5) = G_GEP [[GEP19]], [[C]](s32)
10569 ; VI: [[LOAD21:%[0-9]+]]:_(s32) = G_LOAD [[GEP20]](p5) :: (load 1, addrspace 5)
10570 ; VI: [[GEP21:%[0-9]+]]:_(p5) = G_GEP [[GEP19]], [[C1]](s32)
10571 ; VI: [[LOAD22:%[0-9]+]]:_(s32) = G_LOAD [[GEP21]](p5) :: (load 1, addrspace 5)
10572 ; VI: [[GEP22:%[0-9]+]]:_(p5) = G_GEP [[GEP19]], [[C2]](s32)
10573 ; VI: [[LOAD23:%[0-9]+]]:_(s32) = G_LOAD [[GEP22]](p5) :: (load 1, addrspace 5)
10574 ; VI: [[TRUNC20:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD20]](s32)
10575 ; VI: [[AND20:%[0-9]+]]:_(s16) = G_AND [[TRUNC20]], [[C3]]
10576 ; VI: [[TRUNC21:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD21]](s32)
10577 ; VI: [[AND21:%[0-9]+]]:_(s16) = G_AND [[TRUNC21]], [[C3]]
10578 ; VI: [[SHL15:%[0-9]+]]:_(s16) = G_SHL [[AND21]], [[C4]](s16)
10579 ; VI: [[OR15:%[0-9]+]]:_(s16) = G_OR [[AND20]], [[SHL15]]
10580 ; VI: [[TRUNC22:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD22]](s32)
10581 ; VI: [[AND22:%[0-9]+]]:_(s16) = G_AND [[TRUNC22]], [[C3]]
10582 ; VI: [[TRUNC23:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD23]](s32)
10583 ; VI: [[AND23:%[0-9]+]]:_(s16) = G_AND [[TRUNC23]], [[C3]]
10584 ; VI: [[SHL16:%[0-9]+]]:_(s16) = G_SHL [[AND23]], [[C4]](s16)
10585 ; VI: [[OR16:%[0-9]+]]:_(s16) = G_OR [[AND22]], [[SHL16]]
10586 ; VI: [[ZEXT10:%[0-9]+]]:_(s32) = G_ZEXT [[OR15]](s16)
10587 ; VI: [[ZEXT11:%[0-9]+]]:_(s32) = G_ZEXT [[OR16]](s16)
10588 ; VI: [[SHL17:%[0-9]+]]:_(s32) = G_SHL [[ZEXT11]], [[C5]](s32)
10589 ; VI: [[OR17:%[0-9]+]]:_(s32) = G_OR [[ZEXT10]], [[SHL17]]
10590 ; VI: [[MV1:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[OR11]](s32), [[OR14]](s32), [[OR17]](s32)
10591 ; VI: [[COPY1:%[0-9]+]]:_(s96) = COPY [[MV]](s96)
10592 ; VI: [[COPY2:%[0-9]+]]:_(s96) = COPY [[MV1]](s96)
10593 ; VI: $vgpr0_vgpr1_vgpr2 = COPY [[COPY1]](s96)
10594 ; VI: $vgpr3_vgpr4_vgpr5 = COPY [[COPY2]](s96)
10595 ; GFX9-LABEL: name: test_extload_private_v2s96_from_24_align1
10596 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
10597 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 1, addrspace 5)
10598 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
10599 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
10600 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 1, addrspace 5)
10601 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
10602 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
10603 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 1, addrspace 5)
10604 ; GFX9: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 3
10605 ; GFX9: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
10606 ; GFX9: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 1, addrspace 5)
10607 ; GFX9: [[C3:%[0-9]+]]:_(s16) = G_CONSTANT i16 255
10608 ; GFX9: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)
10609 ; GFX9: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C3]]
10610 ; GFX9: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32)
10611 ; GFX9: [[AND1:%[0-9]+]]:_(s16) = G_AND [[TRUNC1]], [[C3]]
10612 ; GFX9: [[C4:%[0-9]+]]:_(s16) = G_CONSTANT i16 8
10613 ; GFX9: [[SHL:%[0-9]+]]:_(s16) = G_SHL [[AND1]], [[C4]](s16)
10614 ; GFX9: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[SHL]]
10615 ; GFX9: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD2]](s32)
10616 ; GFX9: [[AND2:%[0-9]+]]:_(s16) = G_AND [[TRUNC2]], [[C3]]
10617 ; GFX9: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD3]](s32)
10618 ; GFX9: [[AND3:%[0-9]+]]:_(s16) = G_AND [[TRUNC3]], [[C3]]
10619 ; GFX9: [[SHL1:%[0-9]+]]:_(s16) = G_SHL [[AND3]], [[C4]](s16)
10620 ; GFX9: [[OR1:%[0-9]+]]:_(s16) = G_OR [[AND2]], [[SHL1]]
10621 ; GFX9: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)
10622 ; GFX9: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[OR1]](s16)
10623 ; GFX9: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
10624 ; GFX9: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C5]](s32)
10625 ; GFX9: [[OR2:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL2]]
10626 ; GFX9: [[C6:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
10627 ; GFX9: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C6]](s32)
10628 ; GFX9: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 1, addrspace 5)
10629 ; GFX9: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
10630 ; GFX9: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 1, addrspace 5)
10631 ; GFX9: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C1]](s32)
10632 ; GFX9: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 1, addrspace 5)
10633 ; GFX9: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C2]](s32)
10634 ; GFX9: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 1, addrspace 5)
10635 ; GFX9: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD4]](s32)
10636 ; GFX9: [[AND4:%[0-9]+]]:_(s16) = G_AND [[TRUNC4]], [[C3]]
10637 ; GFX9: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD5]](s32)
10638 ; GFX9: [[AND5:%[0-9]+]]:_(s16) = G_AND [[TRUNC5]], [[C3]]
10639 ; GFX9: [[SHL3:%[0-9]+]]:_(s16) = G_SHL [[AND5]], [[C4]](s16)
10640 ; GFX9: [[OR3:%[0-9]+]]:_(s16) = G_OR [[AND4]], [[SHL3]]
10641 ; GFX9: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD6]](s32)
10642 ; GFX9: [[AND6:%[0-9]+]]:_(s16) = G_AND [[TRUNC6]], [[C3]]
10643 ; GFX9: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD7]](s32)
10644 ; GFX9: [[AND7:%[0-9]+]]:_(s16) = G_AND [[TRUNC7]], [[C3]]
10645 ; GFX9: [[SHL4:%[0-9]+]]:_(s16) = G_SHL [[AND7]], [[C4]](s16)
10646 ; GFX9: [[OR4:%[0-9]+]]:_(s16) = G_OR [[AND6]], [[SHL4]]
10647 ; GFX9: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[OR3]](s16)
10648 ; GFX9: [[ZEXT3:%[0-9]+]]:_(s32) = G_ZEXT [[OR4]](s16)
10649 ; GFX9: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[ZEXT3]], [[C5]](s32)
10650 ; GFX9: [[OR5:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL5]]
10651 ; GFX9: [[C7:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
10652 ; GFX9: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C7]](s32)
10653 ; GFX9: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 1, addrspace 5)
10654 ; GFX9: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
10655 ; GFX9: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 1, addrspace 5)
10656 ; GFX9: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C1]](s32)
10657 ; GFX9: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 1, addrspace 5)
10658 ; GFX9: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C2]](s32)
10659 ; GFX9: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 1, addrspace 5)
10660 ; GFX9: [[TRUNC8:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD8]](s32)
10661 ; GFX9: [[AND8:%[0-9]+]]:_(s16) = G_AND [[TRUNC8]], [[C3]]
10662 ; GFX9: [[TRUNC9:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD9]](s32)
10663 ; GFX9: [[AND9:%[0-9]+]]:_(s16) = G_AND [[TRUNC9]], [[C3]]
10664 ; GFX9: [[SHL6:%[0-9]+]]:_(s16) = G_SHL [[AND9]], [[C4]](s16)
10665 ; GFX9: [[OR6:%[0-9]+]]:_(s16) = G_OR [[AND8]], [[SHL6]]
10666 ; GFX9: [[TRUNC10:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD10]](s32)
10667 ; GFX9: [[AND10:%[0-9]+]]:_(s16) = G_AND [[TRUNC10]], [[C3]]
10668 ; GFX9: [[TRUNC11:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD11]](s32)
10669 ; GFX9: [[AND11:%[0-9]+]]:_(s16) = G_AND [[TRUNC11]], [[C3]]
10670 ; GFX9: [[SHL7:%[0-9]+]]:_(s16) = G_SHL [[AND11]], [[C4]](s16)
10671 ; GFX9: [[OR7:%[0-9]+]]:_(s16) = G_OR [[AND10]], [[SHL7]]
10672 ; GFX9: [[ZEXT4:%[0-9]+]]:_(s32) = G_ZEXT [[OR6]](s16)
10673 ; GFX9: [[ZEXT5:%[0-9]+]]:_(s32) = G_ZEXT [[OR7]](s16)
10674 ; GFX9: [[SHL8:%[0-9]+]]:_(s32) = G_SHL [[ZEXT5]], [[C5]](s32)
10675 ; GFX9: [[OR8:%[0-9]+]]:_(s32) = G_OR [[ZEXT4]], [[SHL8]]
10676 ; GFX9: [[MV:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[OR2]](s32), [[OR5]](s32), [[OR8]](s32)
10677 ; GFX9: [[C8:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
10678 ; GFX9: [[GEP11:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C8]](s32)
10679 ; GFX9: [[LOAD12:%[0-9]+]]:_(s32) = G_LOAD [[GEP11]](p5) :: (load 1, addrspace 5)
10680 ; GFX9: [[GEP12:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C]](s32)
10681 ; GFX9: [[LOAD13:%[0-9]+]]:_(s32) = G_LOAD [[GEP12]](p5) :: (load 1, addrspace 5)
10682 ; GFX9: [[GEP13:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C1]](s32)
10683 ; GFX9: [[LOAD14:%[0-9]+]]:_(s32) = G_LOAD [[GEP13]](p5) :: (load 1, addrspace 5)
10684 ; GFX9: [[GEP14:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C2]](s32)
10685 ; GFX9: [[LOAD15:%[0-9]+]]:_(s32) = G_LOAD [[GEP14]](p5) :: (load 1, addrspace 5)
10686 ; GFX9: [[TRUNC12:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD12]](s32)
10687 ; GFX9: [[AND12:%[0-9]+]]:_(s16) = G_AND [[TRUNC12]], [[C3]]
10688 ; GFX9: [[TRUNC13:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD13]](s32)
10689 ; GFX9: [[AND13:%[0-9]+]]:_(s16) = G_AND [[TRUNC13]], [[C3]]
10690 ; GFX9: [[SHL9:%[0-9]+]]:_(s16) = G_SHL [[AND13]], [[C4]](s16)
10691 ; GFX9: [[OR9:%[0-9]+]]:_(s16) = G_OR [[AND12]], [[SHL9]]
10692 ; GFX9: [[TRUNC14:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD14]](s32)
10693 ; GFX9: [[AND14:%[0-9]+]]:_(s16) = G_AND [[TRUNC14]], [[C3]]
10694 ; GFX9: [[TRUNC15:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD15]](s32)
10695 ; GFX9: [[AND15:%[0-9]+]]:_(s16) = G_AND [[TRUNC15]], [[C3]]
10696 ; GFX9: [[SHL10:%[0-9]+]]:_(s16) = G_SHL [[AND15]], [[C4]](s16)
10697 ; GFX9: [[OR10:%[0-9]+]]:_(s16) = G_OR [[AND14]], [[SHL10]]
10698 ; GFX9: [[ZEXT6:%[0-9]+]]:_(s32) = G_ZEXT [[OR9]](s16)
10699 ; GFX9: [[ZEXT7:%[0-9]+]]:_(s32) = G_ZEXT [[OR10]](s16)
10700 ; GFX9: [[SHL11:%[0-9]+]]:_(s32) = G_SHL [[ZEXT7]], [[C5]](s32)
10701 ; GFX9: [[OR11:%[0-9]+]]:_(s32) = G_OR [[ZEXT6]], [[SHL11]]
10702 ; GFX9: [[GEP15:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C6]](s32)
10703 ; GFX9: [[LOAD16:%[0-9]+]]:_(s32) = G_LOAD [[GEP15]](p5) :: (load 1, addrspace 5)
10704 ; GFX9: [[GEP16:%[0-9]+]]:_(p5) = G_GEP [[GEP15]], [[C]](s32)
10705 ; GFX9: [[LOAD17:%[0-9]+]]:_(s32) = G_LOAD [[GEP16]](p5) :: (load 1, addrspace 5)
10706 ; GFX9: [[GEP17:%[0-9]+]]:_(p5) = G_GEP [[GEP15]], [[C1]](s32)
10707 ; GFX9: [[LOAD18:%[0-9]+]]:_(s32) = G_LOAD [[GEP17]](p5) :: (load 1, addrspace 5)
10708 ; GFX9: [[GEP18:%[0-9]+]]:_(p5) = G_GEP [[GEP15]], [[C2]](s32)
10709 ; GFX9: [[LOAD19:%[0-9]+]]:_(s32) = G_LOAD [[GEP18]](p5) :: (load 1, addrspace 5)
10710 ; GFX9: [[TRUNC16:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD16]](s32)
10711 ; GFX9: [[AND16:%[0-9]+]]:_(s16) = G_AND [[TRUNC16]], [[C3]]
10712 ; GFX9: [[TRUNC17:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD17]](s32)
10713 ; GFX9: [[AND17:%[0-9]+]]:_(s16) = G_AND [[TRUNC17]], [[C3]]
10714 ; GFX9: [[SHL12:%[0-9]+]]:_(s16) = G_SHL [[AND17]], [[C4]](s16)
10715 ; GFX9: [[OR12:%[0-9]+]]:_(s16) = G_OR [[AND16]], [[SHL12]]
10716 ; GFX9: [[TRUNC18:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD18]](s32)
10717 ; GFX9: [[AND18:%[0-9]+]]:_(s16) = G_AND [[TRUNC18]], [[C3]]
10718 ; GFX9: [[TRUNC19:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD19]](s32)
10719 ; GFX9: [[AND19:%[0-9]+]]:_(s16) = G_AND [[TRUNC19]], [[C3]]
10720 ; GFX9: [[SHL13:%[0-9]+]]:_(s16) = G_SHL [[AND19]], [[C4]](s16)
10721 ; GFX9: [[OR13:%[0-9]+]]:_(s16) = G_OR [[AND18]], [[SHL13]]
10722 ; GFX9: [[ZEXT8:%[0-9]+]]:_(s32) = G_ZEXT [[OR12]](s16)
10723 ; GFX9: [[ZEXT9:%[0-9]+]]:_(s32) = G_ZEXT [[OR13]](s16)
10724 ; GFX9: [[SHL14:%[0-9]+]]:_(s32) = G_SHL [[ZEXT9]], [[C5]](s32)
10725 ; GFX9: [[OR14:%[0-9]+]]:_(s32) = G_OR [[ZEXT8]], [[SHL14]]
10726 ; GFX9: [[GEP19:%[0-9]+]]:_(p5) = G_GEP [[GEP11]], [[C7]](s32)
10727 ; GFX9: [[LOAD20:%[0-9]+]]:_(s32) = G_LOAD [[GEP19]](p5) :: (load 1, addrspace 5)
10728 ; GFX9: [[GEP20:%[0-9]+]]:_(p5) = G_GEP [[GEP19]], [[C]](s32)
10729 ; GFX9: [[LOAD21:%[0-9]+]]:_(s32) = G_LOAD [[GEP20]](p5) :: (load 1, addrspace 5)
10730 ; GFX9: [[GEP21:%[0-9]+]]:_(p5) = G_GEP [[GEP19]], [[C1]](s32)
10731 ; GFX9: [[LOAD22:%[0-9]+]]:_(s32) = G_LOAD [[GEP21]](p5) :: (load 1, addrspace 5)
10732 ; GFX9: [[GEP22:%[0-9]+]]:_(p5) = G_GEP [[GEP19]], [[C2]](s32)
10733 ; GFX9: [[LOAD23:%[0-9]+]]:_(s32) = G_LOAD [[GEP22]](p5) :: (load 1, addrspace 5)
10734 ; GFX9: [[TRUNC20:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD20]](s32)
10735 ; GFX9: [[AND20:%[0-9]+]]:_(s16) = G_AND [[TRUNC20]], [[C3]]
10736 ; GFX9: [[TRUNC21:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD21]](s32)
10737 ; GFX9: [[AND21:%[0-9]+]]:_(s16) = G_AND [[TRUNC21]], [[C3]]
10738 ; GFX9: [[SHL15:%[0-9]+]]:_(s16) = G_SHL [[AND21]], [[C4]](s16)
10739 ; GFX9: [[OR15:%[0-9]+]]:_(s16) = G_OR [[AND20]], [[SHL15]]
10740 ; GFX9: [[TRUNC22:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD22]](s32)
10741 ; GFX9: [[AND22:%[0-9]+]]:_(s16) = G_AND [[TRUNC22]], [[C3]]
10742 ; GFX9: [[TRUNC23:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD23]](s32)
10743 ; GFX9: [[AND23:%[0-9]+]]:_(s16) = G_AND [[TRUNC23]], [[C3]]
10744 ; GFX9: [[SHL16:%[0-9]+]]:_(s16) = G_SHL [[AND23]], [[C4]](s16)
10745 ; GFX9: [[OR16:%[0-9]+]]:_(s16) = G_OR [[AND22]], [[SHL16]]
10746 ; GFX9: [[ZEXT10:%[0-9]+]]:_(s32) = G_ZEXT [[OR15]](s16)
10747 ; GFX9: [[ZEXT11:%[0-9]+]]:_(s32) = G_ZEXT [[OR16]](s16)
10748 ; GFX9: [[SHL17:%[0-9]+]]:_(s32) = G_SHL [[ZEXT11]], [[C5]](s32)
10749 ; GFX9: [[OR17:%[0-9]+]]:_(s32) = G_OR [[ZEXT10]], [[SHL17]]
10750 ; GFX9: [[MV1:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[OR11]](s32), [[OR14]](s32), [[OR17]](s32)
10751 ; GFX9: [[COPY1:%[0-9]+]]:_(s96) = COPY [[MV]](s96)
10752 ; GFX9: [[COPY2:%[0-9]+]]:_(s96) = COPY [[MV1]](s96)
10753 ; GFX9: $vgpr0_vgpr1_vgpr2 = COPY [[COPY1]](s96)
10754 ; GFX9: $vgpr3_vgpr4_vgpr5 = COPY [[COPY2]](s96)
10755 %0:_(p5) = COPY $vgpr0
10756 %1:_(<2 x s96>) = G_LOAD %0 :: (load 24, align 1, addrspace 5)
10757 %2:_(s96) = G_EXTRACT %1, 0
10758 %3:_(s96) = G_EXTRACT %1, 96
10759 $vgpr0_vgpr1_vgpr2 = COPY %2
10760 $vgpr3_vgpr4_vgpr5 = COPY %3
10764 name: test_extload_private_v2s96_from_24_align2
10769 ; SI-LABEL: name: test_extload_private_v2s96_from_24_align2
10770 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
10771 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
10772 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
10773 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
10774 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
10775 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
10776 ; SI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
10777 ; SI: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C1]]
10778 ; SI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
10779 ; SI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C1]]
10780 ; SI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
10781 ; SI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
10782 ; SI: [[OR:%[0-9]+]]:_(s32) = G_OR [[AND]], [[SHL]]
10783 ; SI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
10784 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
10785 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 2, addrspace 5)
10786 ; SI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
10787 ; SI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 2, addrspace 5)
10788 ; SI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD2]](s32)
10789 ; SI: [[AND2:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C1]]
10790 ; SI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
10791 ; SI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C1]]
10792 ; SI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[C2]](s32)
10793 ; SI: [[OR1:%[0-9]+]]:_(s32) = G_OR [[AND2]], [[SHL1]]
10794 ; SI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
10795 ; SI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
10796 ; SI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 2, addrspace 5)
10797 ; SI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
10798 ; SI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 2, addrspace 5)
10799 ; SI: [[COPY5:%[0-9]+]]:_(s32) = COPY [[LOAD4]](s32)
10800 ; SI: [[AND4:%[0-9]+]]:_(s32) = G_AND [[COPY5]], [[C1]]
10801 ; SI: [[COPY6:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
10802 ; SI: [[AND5:%[0-9]+]]:_(s32) = G_AND [[COPY6]], [[C1]]
10803 ; SI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[AND5]], [[C2]](s32)
10804 ; SI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[AND4]], [[SHL2]]
10805 ; SI: [[MV:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[OR]](s32), [[OR1]](s32), [[OR2]](s32)
10806 ; SI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
10807 ; SI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C5]](s32)
10808 ; SI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 2, addrspace 5)
10809 ; SI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP5]], [[C]](s32)
10810 ; SI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 2, addrspace 5)
10811 ; SI: [[COPY7:%[0-9]+]]:_(s32) = COPY [[LOAD6]](s32)
10812 ; SI: [[AND6:%[0-9]+]]:_(s32) = G_AND [[COPY7]], [[C1]]
10813 ; SI: [[COPY8:%[0-9]+]]:_(s32) = COPY [[LOAD7]](s32)
10814 ; SI: [[AND7:%[0-9]+]]:_(s32) = G_AND [[COPY8]], [[C1]]
10815 ; SI: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[AND7]], [[C2]](s32)
10816 ; SI: [[OR3:%[0-9]+]]:_(s32) = G_OR [[AND6]], [[SHL3]]
10817 ; SI: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[GEP5]], [[C3]](s32)
10818 ; SI: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 2, addrspace 5)
10819 ; SI: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
10820 ; SI: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 2, addrspace 5)
10821 ; SI: [[COPY9:%[0-9]+]]:_(s32) = COPY [[LOAD8]](s32)
10822 ; SI: [[AND8:%[0-9]+]]:_(s32) = G_AND [[COPY9]], [[C1]]
10823 ; SI: [[COPY10:%[0-9]+]]:_(s32) = COPY [[LOAD9]](s32)
10824 ; SI: [[AND9:%[0-9]+]]:_(s32) = G_AND [[COPY10]], [[C1]]
10825 ; SI: [[SHL4:%[0-9]+]]:_(s32) = G_SHL [[AND9]], [[C2]](s32)
10826 ; SI: [[OR4:%[0-9]+]]:_(s32) = G_OR [[AND8]], [[SHL4]]
10827 ; SI: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP5]], [[C4]](s32)
10828 ; SI: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 2, addrspace 5)
10829 ; SI: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP9]], [[C]](s32)
10830 ; SI: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 2, addrspace 5)
10831 ; SI: [[COPY11:%[0-9]+]]:_(s32) = COPY [[LOAD10]](s32)
10832 ; SI: [[AND10:%[0-9]+]]:_(s32) = G_AND [[COPY11]], [[C1]]
10833 ; SI: [[COPY12:%[0-9]+]]:_(s32) = COPY [[LOAD11]](s32)
10834 ; SI: [[AND11:%[0-9]+]]:_(s32) = G_AND [[COPY12]], [[C1]]
10835 ; SI: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[AND11]], [[C2]](s32)
10836 ; SI: [[OR5:%[0-9]+]]:_(s32) = G_OR [[AND10]], [[SHL5]]
10837 ; SI: [[MV1:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[OR3]](s32), [[OR4]](s32), [[OR5]](s32)
10838 ; SI: [[COPY13:%[0-9]+]]:_(s96) = COPY [[MV]](s96)
10839 ; SI: [[COPY14:%[0-9]+]]:_(s96) = COPY [[MV1]](s96)
10840 ; SI: $vgpr0_vgpr1_vgpr2 = COPY [[COPY13]](s96)
10841 ; SI: $vgpr3_vgpr4_vgpr5 = COPY [[COPY14]](s96)
10842 ; CI-LABEL: name: test_extload_private_v2s96_from_24_align2
10843 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
10844 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
10845 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
10846 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
10847 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
10848 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
10849 ; CI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
10850 ; CI: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C1]]
10851 ; CI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
10852 ; CI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C1]]
10853 ; CI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
10854 ; CI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
10855 ; CI: [[OR:%[0-9]+]]:_(s32) = G_OR [[AND]], [[SHL]]
10856 ; CI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
10857 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
10858 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 2, addrspace 5)
10859 ; CI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
10860 ; CI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 2, addrspace 5)
10861 ; CI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD2]](s32)
10862 ; CI: [[AND2:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C1]]
10863 ; CI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
10864 ; CI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C1]]
10865 ; CI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[C2]](s32)
10866 ; CI: [[OR1:%[0-9]+]]:_(s32) = G_OR [[AND2]], [[SHL1]]
10867 ; CI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
10868 ; CI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
10869 ; CI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 2, addrspace 5)
10870 ; CI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
10871 ; CI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 2, addrspace 5)
10872 ; CI: [[COPY5:%[0-9]+]]:_(s32) = COPY [[LOAD4]](s32)
10873 ; CI: [[AND4:%[0-9]+]]:_(s32) = G_AND [[COPY5]], [[C1]]
10874 ; CI: [[COPY6:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
10875 ; CI: [[AND5:%[0-9]+]]:_(s32) = G_AND [[COPY6]], [[C1]]
10876 ; CI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[AND5]], [[C2]](s32)
10877 ; CI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[AND4]], [[SHL2]]
10878 ; CI: [[MV:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[OR]](s32), [[OR1]](s32), [[OR2]](s32)
10879 ; CI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
10880 ; CI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C5]](s32)
10881 ; CI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 2, addrspace 5)
10882 ; CI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP5]], [[C]](s32)
10883 ; CI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 2, addrspace 5)
10884 ; CI: [[COPY7:%[0-9]+]]:_(s32) = COPY [[LOAD6]](s32)
10885 ; CI: [[AND6:%[0-9]+]]:_(s32) = G_AND [[COPY7]], [[C1]]
10886 ; CI: [[COPY8:%[0-9]+]]:_(s32) = COPY [[LOAD7]](s32)
10887 ; CI: [[AND7:%[0-9]+]]:_(s32) = G_AND [[COPY8]], [[C1]]
10888 ; CI: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[AND7]], [[C2]](s32)
10889 ; CI: [[OR3:%[0-9]+]]:_(s32) = G_OR [[AND6]], [[SHL3]]
10890 ; CI: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[GEP5]], [[C3]](s32)
10891 ; CI: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 2, addrspace 5)
10892 ; CI: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
10893 ; CI: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 2, addrspace 5)
10894 ; CI: [[COPY9:%[0-9]+]]:_(s32) = COPY [[LOAD8]](s32)
10895 ; CI: [[AND8:%[0-9]+]]:_(s32) = G_AND [[COPY9]], [[C1]]
10896 ; CI: [[COPY10:%[0-9]+]]:_(s32) = COPY [[LOAD9]](s32)
10897 ; CI: [[AND9:%[0-9]+]]:_(s32) = G_AND [[COPY10]], [[C1]]
10898 ; CI: [[SHL4:%[0-9]+]]:_(s32) = G_SHL [[AND9]], [[C2]](s32)
10899 ; CI: [[OR4:%[0-9]+]]:_(s32) = G_OR [[AND8]], [[SHL4]]
10900 ; CI: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP5]], [[C4]](s32)
10901 ; CI: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 2, addrspace 5)
10902 ; CI: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP9]], [[C]](s32)
10903 ; CI: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 2, addrspace 5)
10904 ; CI: [[COPY11:%[0-9]+]]:_(s32) = COPY [[LOAD10]](s32)
10905 ; CI: [[AND10:%[0-9]+]]:_(s32) = G_AND [[COPY11]], [[C1]]
10906 ; CI: [[COPY12:%[0-9]+]]:_(s32) = COPY [[LOAD11]](s32)
10907 ; CI: [[AND11:%[0-9]+]]:_(s32) = G_AND [[COPY12]], [[C1]]
10908 ; CI: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[AND11]], [[C2]](s32)
10909 ; CI: [[OR5:%[0-9]+]]:_(s32) = G_OR [[AND10]], [[SHL5]]
10910 ; CI: [[MV1:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[OR3]](s32), [[OR4]](s32), [[OR5]](s32)
10911 ; CI: [[COPY13:%[0-9]+]]:_(s96) = COPY [[MV]](s96)
10912 ; CI: [[COPY14:%[0-9]+]]:_(s96) = COPY [[MV1]](s96)
10913 ; CI: $vgpr0_vgpr1_vgpr2 = COPY [[COPY13]](s96)
10914 ; CI: $vgpr3_vgpr4_vgpr5 = COPY [[COPY14]](s96)
10915 ; VI-LABEL: name: test_extload_private_v2s96_from_24_align2
10916 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
10917 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
10918 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
10919 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
10920 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
10921 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
10922 ; VI: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
10923 ; VI: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C1]]
10924 ; VI: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
10925 ; VI: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C1]]
10926 ; VI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
10927 ; VI: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
10928 ; VI: [[OR:%[0-9]+]]:_(s32) = G_OR [[AND]], [[SHL]]
10929 ; VI: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
10930 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
10931 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 2, addrspace 5)
10932 ; VI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
10933 ; VI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 2, addrspace 5)
10934 ; VI: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD2]](s32)
10935 ; VI: [[AND2:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C1]]
10936 ; VI: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
10937 ; VI: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C1]]
10938 ; VI: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[C2]](s32)
10939 ; VI: [[OR1:%[0-9]+]]:_(s32) = G_OR [[AND2]], [[SHL1]]
10940 ; VI: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
10941 ; VI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
10942 ; VI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 2, addrspace 5)
10943 ; VI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
10944 ; VI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 2, addrspace 5)
10945 ; VI: [[COPY5:%[0-9]+]]:_(s32) = COPY [[LOAD4]](s32)
10946 ; VI: [[AND4:%[0-9]+]]:_(s32) = G_AND [[COPY5]], [[C1]]
10947 ; VI: [[COPY6:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
10948 ; VI: [[AND5:%[0-9]+]]:_(s32) = G_AND [[COPY6]], [[C1]]
10949 ; VI: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[AND5]], [[C2]](s32)
10950 ; VI: [[OR2:%[0-9]+]]:_(s32) = G_OR [[AND4]], [[SHL2]]
10951 ; VI: [[MV:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[OR]](s32), [[OR1]](s32), [[OR2]](s32)
10952 ; VI: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
10953 ; VI: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C5]](s32)
10954 ; VI: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 2, addrspace 5)
10955 ; VI: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP5]], [[C]](s32)
10956 ; VI: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 2, addrspace 5)
10957 ; VI: [[COPY7:%[0-9]+]]:_(s32) = COPY [[LOAD6]](s32)
10958 ; VI: [[AND6:%[0-9]+]]:_(s32) = G_AND [[COPY7]], [[C1]]
10959 ; VI: [[COPY8:%[0-9]+]]:_(s32) = COPY [[LOAD7]](s32)
10960 ; VI: [[AND7:%[0-9]+]]:_(s32) = G_AND [[COPY8]], [[C1]]
10961 ; VI: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[AND7]], [[C2]](s32)
10962 ; VI: [[OR3:%[0-9]+]]:_(s32) = G_OR [[AND6]], [[SHL3]]
10963 ; VI: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[GEP5]], [[C3]](s32)
10964 ; VI: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 2, addrspace 5)
10965 ; VI: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
10966 ; VI: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 2, addrspace 5)
10967 ; VI: [[COPY9:%[0-9]+]]:_(s32) = COPY [[LOAD8]](s32)
10968 ; VI: [[AND8:%[0-9]+]]:_(s32) = G_AND [[COPY9]], [[C1]]
10969 ; VI: [[COPY10:%[0-9]+]]:_(s32) = COPY [[LOAD9]](s32)
10970 ; VI: [[AND9:%[0-9]+]]:_(s32) = G_AND [[COPY10]], [[C1]]
10971 ; VI: [[SHL4:%[0-9]+]]:_(s32) = G_SHL [[AND9]], [[C2]](s32)
10972 ; VI: [[OR4:%[0-9]+]]:_(s32) = G_OR [[AND8]], [[SHL4]]
10973 ; VI: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP5]], [[C4]](s32)
10974 ; VI: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 2, addrspace 5)
10975 ; VI: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP9]], [[C]](s32)
10976 ; VI: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 2, addrspace 5)
10977 ; VI: [[COPY11:%[0-9]+]]:_(s32) = COPY [[LOAD10]](s32)
10978 ; VI: [[AND10:%[0-9]+]]:_(s32) = G_AND [[COPY11]], [[C1]]
10979 ; VI: [[COPY12:%[0-9]+]]:_(s32) = COPY [[LOAD11]](s32)
10980 ; VI: [[AND11:%[0-9]+]]:_(s32) = G_AND [[COPY12]], [[C1]]
10981 ; VI: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[AND11]], [[C2]](s32)
10982 ; VI: [[OR5:%[0-9]+]]:_(s32) = G_OR [[AND10]], [[SHL5]]
10983 ; VI: [[MV1:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[OR3]](s32), [[OR4]](s32), [[OR5]](s32)
10984 ; VI: [[COPY13:%[0-9]+]]:_(s96) = COPY [[MV]](s96)
10985 ; VI: [[COPY14:%[0-9]+]]:_(s96) = COPY [[MV1]](s96)
10986 ; VI: $vgpr0_vgpr1_vgpr2 = COPY [[COPY13]](s96)
10987 ; VI: $vgpr3_vgpr4_vgpr5 = COPY [[COPY14]](s96)
10988 ; GFX9-LABEL: name: test_extload_private_v2s96_from_24_align2
10989 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
10990 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 2, addrspace 5)
10991 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
10992 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
10993 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 2, addrspace 5)
10994 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
10995 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD]](s32)
10996 ; GFX9: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C1]]
10997 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32)
10998 ; GFX9: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C1]]
10999 ; GFX9: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
11000 ; GFX9: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32)
11001 ; GFX9: [[OR:%[0-9]+]]:_(s32) = G_OR [[AND]], [[SHL]]
11002 ; GFX9: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
11003 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C3]](s32)
11004 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 2, addrspace 5)
11005 ; GFX9: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[GEP1]], [[C]](s32)
11006 ; GFX9: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 2, addrspace 5)
11007 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LOAD2]](s32)
11008 ; GFX9: [[AND2:%[0-9]+]]:_(s32) = G_AND [[COPY3]], [[C1]]
11009 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY [[LOAD3]](s32)
11010 ; GFX9: [[AND3:%[0-9]+]]:_(s32) = G_AND [[COPY4]], [[C1]]
11011 ; GFX9: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[C2]](s32)
11012 ; GFX9: [[OR1:%[0-9]+]]:_(s32) = G_OR [[AND2]], [[SHL1]]
11013 ; GFX9: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
11014 ; GFX9: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C4]](s32)
11015 ; GFX9: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 2, addrspace 5)
11016 ; GFX9: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP3]], [[C]](s32)
11017 ; GFX9: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 2, addrspace 5)
11018 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY [[LOAD4]](s32)
11019 ; GFX9: [[AND4:%[0-9]+]]:_(s32) = G_AND [[COPY5]], [[C1]]
11020 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY [[LOAD5]](s32)
11021 ; GFX9: [[AND5:%[0-9]+]]:_(s32) = G_AND [[COPY6]], [[C1]]
11022 ; GFX9: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[AND5]], [[C2]](s32)
11023 ; GFX9: [[OR2:%[0-9]+]]:_(s32) = G_OR [[AND4]], [[SHL2]]
11024 ; GFX9: [[MV:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[OR]](s32), [[OR1]](s32), [[OR2]](s32)
11025 ; GFX9: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
11026 ; GFX9: [[GEP5:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C5]](s32)
11027 ; GFX9: [[LOAD6:%[0-9]+]]:_(s32) = G_LOAD [[GEP5]](p5) :: (load 2, addrspace 5)
11028 ; GFX9: [[GEP6:%[0-9]+]]:_(p5) = G_GEP [[GEP5]], [[C]](s32)
11029 ; GFX9: [[LOAD7:%[0-9]+]]:_(s32) = G_LOAD [[GEP6]](p5) :: (load 2, addrspace 5)
11030 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY [[LOAD6]](s32)
11031 ; GFX9: [[AND6:%[0-9]+]]:_(s32) = G_AND [[COPY7]], [[C1]]
11032 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY [[LOAD7]](s32)
11033 ; GFX9: [[AND7:%[0-9]+]]:_(s32) = G_AND [[COPY8]], [[C1]]
11034 ; GFX9: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[AND7]], [[C2]](s32)
11035 ; GFX9: [[OR3:%[0-9]+]]:_(s32) = G_OR [[AND6]], [[SHL3]]
11036 ; GFX9: [[GEP7:%[0-9]+]]:_(p5) = G_GEP [[GEP5]], [[C3]](s32)
11037 ; GFX9: [[LOAD8:%[0-9]+]]:_(s32) = G_LOAD [[GEP7]](p5) :: (load 2, addrspace 5)
11038 ; GFX9: [[GEP8:%[0-9]+]]:_(p5) = G_GEP [[GEP7]], [[C]](s32)
11039 ; GFX9: [[LOAD9:%[0-9]+]]:_(s32) = G_LOAD [[GEP8]](p5) :: (load 2, addrspace 5)
11040 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY [[LOAD8]](s32)
11041 ; GFX9: [[AND8:%[0-9]+]]:_(s32) = G_AND [[COPY9]], [[C1]]
11042 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY [[LOAD9]](s32)
11043 ; GFX9: [[AND9:%[0-9]+]]:_(s32) = G_AND [[COPY10]], [[C1]]
11044 ; GFX9: [[SHL4:%[0-9]+]]:_(s32) = G_SHL [[AND9]], [[C2]](s32)
11045 ; GFX9: [[OR4:%[0-9]+]]:_(s32) = G_OR [[AND8]], [[SHL4]]
11046 ; GFX9: [[GEP9:%[0-9]+]]:_(p5) = G_GEP [[GEP5]], [[C4]](s32)
11047 ; GFX9: [[LOAD10:%[0-9]+]]:_(s32) = G_LOAD [[GEP9]](p5) :: (load 2, addrspace 5)
11048 ; GFX9: [[GEP10:%[0-9]+]]:_(p5) = G_GEP [[GEP9]], [[C]](s32)
11049 ; GFX9: [[LOAD11:%[0-9]+]]:_(s32) = G_LOAD [[GEP10]](p5) :: (load 2, addrspace 5)
11050 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY [[LOAD10]](s32)
11051 ; GFX9: [[AND10:%[0-9]+]]:_(s32) = G_AND [[COPY11]], [[C1]]
11052 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY [[LOAD11]](s32)
11053 ; GFX9: [[AND11:%[0-9]+]]:_(s32) = G_AND [[COPY12]], [[C1]]
11054 ; GFX9: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[AND11]], [[C2]](s32)
11055 ; GFX9: [[OR5:%[0-9]+]]:_(s32) = G_OR [[AND10]], [[SHL5]]
11056 ; GFX9: [[MV1:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[OR3]](s32), [[OR4]](s32), [[OR5]](s32)
11057 ; GFX9: [[COPY13:%[0-9]+]]:_(s96) = COPY [[MV]](s96)
11058 ; GFX9: [[COPY14:%[0-9]+]]:_(s96) = COPY [[MV1]](s96)
11059 ; GFX9: $vgpr0_vgpr1_vgpr2 = COPY [[COPY13]](s96)
11060 ; GFX9: $vgpr3_vgpr4_vgpr5 = COPY [[COPY14]](s96)
11061 %0:_(p5) = COPY $vgpr0
11062 %1:_(<2 x s96>) = G_LOAD %0 :: (load 24, align 2, addrspace 5)
11063 %2:_(s96) = G_EXTRACT %1, 0
11064 %3:_(s96) = G_EXTRACT %1, 96
11065 $vgpr0_vgpr1_vgpr2 = COPY %2
11066 $vgpr3_vgpr4_vgpr5 = COPY %3
11070 name: test_extload_private_v2s96_from_24_align4
11075 ; SI-LABEL: name: test_extload_private_v2s96_from_24_align4
11076 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
11077 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
11078 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
11079 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
11080 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
11081 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
11082 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
11083 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, addrspace 5)
11084 ; SI: [[MV:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32), [[LOAD2]](s32)
11085 ; SI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
11086 ; SI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
11087 ; SI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
11088 ; SI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[GEP2]], [[C]](s32)
11089 ; SI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 4, addrspace 5)
11090 ; SI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP2]], [[C1]](s32)
11091 ; SI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 4, addrspace 5)
11092 ; SI: [[MV1:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[LOAD3]](s32), [[LOAD4]](s32), [[LOAD5]](s32)
11093 ; SI: [[COPY1:%[0-9]+]]:_(s96) = COPY [[MV]](s96)
11094 ; SI: [[COPY2:%[0-9]+]]:_(s96) = COPY [[MV1]](s96)
11095 ; SI: $vgpr0_vgpr1_vgpr2 = COPY [[COPY1]](s96)
11096 ; SI: $vgpr3_vgpr4_vgpr5 = COPY [[COPY2]](s96)
11097 ; CI-LABEL: name: test_extload_private_v2s96_from_24_align4
11098 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
11099 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
11100 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
11101 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
11102 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
11103 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
11104 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
11105 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, addrspace 5)
11106 ; CI: [[MV:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32), [[LOAD2]](s32)
11107 ; CI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
11108 ; CI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
11109 ; CI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
11110 ; CI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[GEP2]], [[C]](s32)
11111 ; CI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 4, addrspace 5)
11112 ; CI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP2]], [[C1]](s32)
11113 ; CI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 4, addrspace 5)
11114 ; CI: [[MV1:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[LOAD3]](s32), [[LOAD4]](s32), [[LOAD5]](s32)
11115 ; CI: [[COPY1:%[0-9]+]]:_(s96) = COPY [[MV]](s96)
11116 ; CI: [[COPY2:%[0-9]+]]:_(s96) = COPY [[MV1]](s96)
11117 ; CI: $vgpr0_vgpr1_vgpr2 = COPY [[COPY1]](s96)
11118 ; CI: $vgpr3_vgpr4_vgpr5 = COPY [[COPY2]](s96)
11119 ; VI-LABEL: name: test_extload_private_v2s96_from_24_align4
11120 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
11121 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
11122 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
11123 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
11124 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
11125 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
11126 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
11127 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, addrspace 5)
11128 ; VI: [[MV:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32), [[LOAD2]](s32)
11129 ; VI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
11130 ; VI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
11131 ; VI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
11132 ; VI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[GEP2]], [[C]](s32)
11133 ; VI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 4, addrspace 5)
11134 ; VI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP2]], [[C1]](s32)
11135 ; VI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 4, addrspace 5)
11136 ; VI: [[MV1:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[LOAD3]](s32), [[LOAD4]](s32), [[LOAD5]](s32)
11137 ; VI: [[COPY1:%[0-9]+]]:_(s96) = COPY [[MV]](s96)
11138 ; VI: [[COPY2:%[0-9]+]]:_(s96) = COPY [[MV1]](s96)
11139 ; VI: $vgpr0_vgpr1_vgpr2 = COPY [[COPY1]](s96)
11140 ; VI: $vgpr3_vgpr4_vgpr5 = COPY [[COPY2]](s96)
11141 ; GFX9-LABEL: name: test_extload_private_v2s96_from_24_align4
11142 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
11143 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, addrspace 5)
11144 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
11145 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
11146 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
11147 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
11148 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
11149 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, addrspace 5)
11150 ; GFX9: [[MV:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32), [[LOAD2]](s32)
11151 ; GFX9: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
11152 ; GFX9: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
11153 ; GFX9: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
11154 ; GFX9: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[GEP2]], [[C]](s32)
11155 ; GFX9: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 4, addrspace 5)
11156 ; GFX9: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP2]], [[C1]](s32)
11157 ; GFX9: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 4, addrspace 5)
11158 ; GFX9: [[MV1:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[LOAD3]](s32), [[LOAD4]](s32), [[LOAD5]](s32)
11159 ; GFX9: [[COPY1:%[0-9]+]]:_(s96) = COPY [[MV]](s96)
11160 ; GFX9: [[COPY2:%[0-9]+]]:_(s96) = COPY [[MV1]](s96)
11161 ; GFX9: $vgpr0_vgpr1_vgpr2 = COPY [[COPY1]](s96)
11162 ; GFX9: $vgpr3_vgpr4_vgpr5 = COPY [[COPY2]](s96)
11163 %0:_(p5) = COPY $vgpr0
11164 %1:_(<2 x s96>) = G_LOAD %0 :: (load 24, align 4, addrspace 5)
11165 %2:_(s96) = G_EXTRACT %1, 0
11166 %3:_(s96) = G_EXTRACT %1, 96
11167 $vgpr0_vgpr1_vgpr2 = COPY %2
11168 $vgpr3_vgpr4_vgpr5 = COPY %3
11172 name: test_extload_private_v2s96_from_24_align16
11177 ; SI-LABEL: name: test_extload_private_v2s96_from_24_align16
11178 ; SI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
11179 ; SI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 16, addrspace 5)
11180 ; SI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
11181 ; SI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
11182 ; SI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
11183 ; SI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
11184 ; SI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
11185 ; SI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, align 8, addrspace 5)
11186 ; SI: [[MV:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32), [[LOAD2]](s32)
11187 ; SI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
11188 ; SI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
11189 ; SI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
11190 ; SI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[GEP2]], [[C]](s32)
11191 ; SI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 4, addrspace 5)
11192 ; SI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP2]], [[C1]](s32)
11193 ; SI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 4, addrspace 5)
11194 ; SI: [[MV1:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[LOAD3]](s32), [[LOAD4]](s32), [[LOAD5]](s32)
11195 ; SI: [[COPY1:%[0-9]+]]:_(s96) = COPY [[MV]](s96)
11196 ; SI: [[COPY2:%[0-9]+]]:_(s96) = COPY [[MV1]](s96)
11197 ; SI: $vgpr0_vgpr1_vgpr2 = COPY [[COPY1]](s96)
11198 ; SI: $vgpr3_vgpr4_vgpr5 = COPY [[COPY2]](s96)
11199 ; CI-LABEL: name: test_extload_private_v2s96_from_24_align16
11200 ; CI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
11201 ; CI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 16, addrspace 5)
11202 ; CI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
11203 ; CI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
11204 ; CI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
11205 ; CI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
11206 ; CI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
11207 ; CI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, align 8, addrspace 5)
11208 ; CI: [[MV:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32), [[LOAD2]](s32)
11209 ; CI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
11210 ; CI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
11211 ; CI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
11212 ; CI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[GEP2]], [[C]](s32)
11213 ; CI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 4, addrspace 5)
11214 ; CI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP2]], [[C1]](s32)
11215 ; CI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 4, addrspace 5)
11216 ; CI: [[MV1:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[LOAD3]](s32), [[LOAD4]](s32), [[LOAD5]](s32)
11217 ; CI: [[COPY1:%[0-9]+]]:_(s96) = COPY [[MV]](s96)
11218 ; CI: [[COPY2:%[0-9]+]]:_(s96) = COPY [[MV1]](s96)
11219 ; CI: $vgpr0_vgpr1_vgpr2 = COPY [[COPY1]](s96)
11220 ; CI: $vgpr3_vgpr4_vgpr5 = COPY [[COPY2]](s96)
11221 ; VI-LABEL: name: test_extload_private_v2s96_from_24_align16
11222 ; VI: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
11223 ; VI: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 16, addrspace 5)
11224 ; VI: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
11225 ; VI: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
11226 ; VI: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
11227 ; VI: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
11228 ; VI: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
11229 ; VI: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, align 8, addrspace 5)
11230 ; VI: [[MV:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32), [[LOAD2]](s32)
11231 ; VI: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
11232 ; VI: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
11233 ; VI: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
11234 ; VI: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[GEP2]], [[C]](s32)
11235 ; VI: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 4, addrspace 5)
11236 ; VI: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP2]], [[C1]](s32)
11237 ; VI: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 4, addrspace 5)
11238 ; VI: [[MV1:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[LOAD3]](s32), [[LOAD4]](s32), [[LOAD5]](s32)
11239 ; VI: [[COPY1:%[0-9]+]]:_(s96) = COPY [[MV]](s96)
11240 ; VI: [[COPY2:%[0-9]+]]:_(s96) = COPY [[MV1]](s96)
11241 ; VI: $vgpr0_vgpr1_vgpr2 = COPY [[COPY1]](s96)
11242 ; VI: $vgpr3_vgpr4_vgpr5 = COPY [[COPY2]](s96)
11243 ; GFX9-LABEL: name: test_extload_private_v2s96_from_24_align16
11244 ; GFX9: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
11245 ; GFX9: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p5) :: (load 4, align 16, addrspace 5)
11246 ; GFX9: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4
11247 ; GFX9: [[GEP:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C]](s32)
11248 ; GFX9: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[GEP]](p5) :: (load 4, addrspace 5)
11249 ; GFX9: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8
11250 ; GFX9: [[GEP1:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C1]](s32)
11251 ; GFX9: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[GEP1]](p5) :: (load 4, align 8, addrspace 5)
11252 ; GFX9: [[MV:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[LOAD]](s32), [[LOAD1]](s32), [[LOAD2]](s32)
11253 ; GFX9: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 12
11254 ; GFX9: [[GEP2:%[0-9]+]]:_(p5) = G_GEP [[COPY]], [[C2]](s32)
11255 ; GFX9: [[LOAD3:%[0-9]+]]:_(s32) = G_LOAD [[GEP2]](p5) :: (load 4, addrspace 5)
11256 ; GFX9: [[GEP3:%[0-9]+]]:_(p5) = G_GEP [[GEP2]], [[C]](s32)
11257 ; GFX9: [[LOAD4:%[0-9]+]]:_(s32) = G_LOAD [[GEP3]](p5) :: (load 4, addrspace 5)
11258 ; GFX9: [[GEP4:%[0-9]+]]:_(p5) = G_GEP [[GEP2]], [[C1]](s32)
11259 ; GFX9: [[LOAD5:%[0-9]+]]:_(s32) = G_LOAD [[GEP4]](p5) :: (load 4, addrspace 5)
11260 ; GFX9: [[MV1:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[LOAD3]](s32), [[LOAD4]](s32), [[LOAD5]](s32)
11261 ; GFX9: [[COPY1:%[0-9]+]]:_(s96) = COPY [[MV]](s96)
11262 ; GFX9: [[COPY2:%[0-9]+]]:_(s96) = COPY [[MV1]](s96)
11263 ; GFX9: $vgpr0_vgpr1_vgpr2 = COPY [[COPY1]](s96)
11264 ; GFX9: $vgpr3_vgpr4_vgpr5 = COPY [[COPY2]](s96)
11265 %0:_(p5) = COPY $vgpr0
11266 %1:_(<2 x s96>) = G_LOAD %0 :: (load 24, align 16, addrspace 5)
11267 %2:_(s96) = G_EXTRACT %1, 0
11268 %3:_(s96) = G_EXTRACT %1, 96
11269 $vgpr0_vgpr1_vgpr2 = COPY %2
11270 $vgpr3_vgpr4_vgpr5 = COPY %3