1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
2 ; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 < %s | FileCheck -check-prefixes=GFX9,GFX900 %s
3 ; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx90a < %s | FileCheck -check-prefixes=GFX9,GFX90APLUS,GFX90A %s
4 ; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx940 < %s | FileCheck -check-prefixes=GFX9,GFX90APLUS,GFX940 %s
7 define void @v_shuffle_v4p3_v4p3__u_u_u_u(ptr addrspace(1) inreg %ptr) {
8 ; GFX9-LABEL: v_shuffle_v4p3_v4p3__u_u_u_u:
10 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11 ; GFX9-NEXT: s_setpc_b64 s[30:31]
12 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
13 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> poison
14 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
18 define void @v_shuffle_v4p3_v4p3__0_u_u_u(ptr addrspace(1) inreg %ptr) {
19 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__0_u_u_u:
21 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
22 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
23 ; GFX900-NEXT: ;;#ASMSTART
24 ; GFX900-NEXT: ; def v[0:3]
25 ; GFX900-NEXT: ;;#ASMEND
26 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
27 ; GFX900-NEXT: s_waitcnt vmcnt(0)
28 ; GFX900-NEXT: s_setpc_b64 s[30:31]
30 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__0_u_u_u:
32 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
33 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
34 ; GFX90A-NEXT: ;;#ASMSTART
35 ; GFX90A-NEXT: ; def v[0:3]
36 ; GFX90A-NEXT: ;;#ASMEND
37 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
38 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
39 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
41 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__0_u_u_u:
43 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
44 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
45 ; GFX940-NEXT: ;;#ASMSTART
46 ; GFX940-NEXT: ; def v[0:3]
47 ; GFX940-NEXT: ;;#ASMEND
48 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
49 ; GFX940-NEXT: s_waitcnt vmcnt(0)
50 ; GFX940-NEXT: s_setpc_b64 s[30:31]
51 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
52 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 0, i32 poison, i32 poison, i32 poison>
53 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
57 define void @v_shuffle_v4p3_v4p3__1_u_u_u(ptr addrspace(1) inreg %ptr) {
58 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__1_u_u_u:
60 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
61 ; GFX900-NEXT: ;;#ASMSTART
62 ; GFX900-NEXT: ; def v[0:3]
63 ; GFX900-NEXT: ;;#ASMEND
64 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
65 ; GFX900-NEXT: v_mov_b32_e32 v0, v1
66 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
67 ; GFX900-NEXT: s_waitcnt vmcnt(0)
68 ; GFX900-NEXT: s_setpc_b64 s[30:31]
70 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__1_u_u_u:
72 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
73 ; GFX90A-NEXT: ;;#ASMSTART
74 ; GFX90A-NEXT: ; def v[0:3]
75 ; GFX90A-NEXT: ;;#ASMEND
76 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
77 ; GFX90A-NEXT: v_mov_b32_e32 v0, v1
78 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
79 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
80 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
82 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__1_u_u_u:
84 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
85 ; GFX940-NEXT: ;;#ASMSTART
86 ; GFX940-NEXT: ; def v[0:3]
87 ; GFX940-NEXT: ;;#ASMEND
88 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
89 ; GFX940-NEXT: v_mov_b32_e32 v0, v1
90 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
91 ; GFX940-NEXT: s_waitcnt vmcnt(0)
92 ; GFX940-NEXT: s_setpc_b64 s[30:31]
93 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
94 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 1, i32 poison, i32 poison, i32 poison>
95 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
99 define void @v_shuffle_v4p3_v4p3__2_u_u_u(ptr addrspace(1) inreg %ptr) {
100 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__2_u_u_u:
102 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
103 ; GFX900-NEXT: ;;#ASMSTART
104 ; GFX900-NEXT: ; def v[0:3]
105 ; GFX900-NEXT: ;;#ASMEND
106 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
107 ; GFX900-NEXT: v_mov_b32_e32 v0, v2
108 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
109 ; GFX900-NEXT: s_waitcnt vmcnt(0)
110 ; GFX900-NEXT: s_setpc_b64 s[30:31]
112 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__2_u_u_u:
114 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
115 ; GFX90A-NEXT: ;;#ASMSTART
116 ; GFX90A-NEXT: ; def v[0:3]
117 ; GFX90A-NEXT: ;;#ASMEND
118 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
119 ; GFX90A-NEXT: v_mov_b32_e32 v0, v2
120 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
121 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
122 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
124 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__2_u_u_u:
126 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
127 ; GFX940-NEXT: ;;#ASMSTART
128 ; GFX940-NEXT: ; def v[0:3]
129 ; GFX940-NEXT: ;;#ASMEND
130 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
131 ; GFX940-NEXT: v_mov_b32_e32 v0, v2
132 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
133 ; GFX940-NEXT: s_waitcnt vmcnt(0)
134 ; GFX940-NEXT: s_setpc_b64 s[30:31]
135 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
136 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 2, i32 poison, i32 poison, i32 poison>
137 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
141 define void @v_shuffle_v4p3_v4p3__3_u_u_u(ptr addrspace(1) inreg %ptr) {
142 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__3_u_u_u:
144 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
145 ; GFX900-NEXT: ;;#ASMSTART
146 ; GFX900-NEXT: ; def v[0:3]
147 ; GFX900-NEXT: ;;#ASMEND
148 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
149 ; GFX900-NEXT: v_mov_b32_e32 v0, v3
150 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
151 ; GFX900-NEXT: s_waitcnt vmcnt(0)
152 ; GFX900-NEXT: s_setpc_b64 s[30:31]
154 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__3_u_u_u:
156 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
157 ; GFX90A-NEXT: ;;#ASMSTART
158 ; GFX90A-NEXT: ; def v[0:3]
159 ; GFX90A-NEXT: ;;#ASMEND
160 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
161 ; GFX90A-NEXT: v_mov_b32_e32 v0, v3
162 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
163 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
164 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
166 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__3_u_u_u:
168 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
169 ; GFX940-NEXT: ;;#ASMSTART
170 ; GFX940-NEXT: ; def v[0:3]
171 ; GFX940-NEXT: ;;#ASMEND
172 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
173 ; GFX940-NEXT: v_mov_b32_e32 v0, v3
174 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
175 ; GFX940-NEXT: s_waitcnt vmcnt(0)
176 ; GFX940-NEXT: s_setpc_b64 s[30:31]
177 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
178 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 3, i32 poison, i32 poison, i32 poison>
179 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
183 define void @v_shuffle_v4p3_v4p3__4_u_u_u(ptr addrspace(1) inreg %ptr) {
184 ; GFX9-LABEL: v_shuffle_v4p3_v4p3__4_u_u_u:
186 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
187 ; GFX9-NEXT: s_setpc_b64 s[30:31]
188 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
189 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 4, i32 poison, i32 poison, i32 poison>
190 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
194 define void @v_shuffle_v4p3_v4p3__5_u_u_u(ptr addrspace(1) inreg %ptr) {
195 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__5_u_u_u:
197 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
198 ; GFX900-NEXT: ;;#ASMSTART
199 ; GFX900-NEXT: ; def v[0:3]
200 ; GFX900-NEXT: ;;#ASMEND
201 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
202 ; GFX900-NEXT: v_mov_b32_e32 v0, v1
203 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
204 ; GFX900-NEXT: s_waitcnt vmcnt(0)
205 ; GFX900-NEXT: s_setpc_b64 s[30:31]
207 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__5_u_u_u:
209 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
210 ; GFX90A-NEXT: ;;#ASMSTART
211 ; GFX90A-NEXT: ; def v[0:3]
212 ; GFX90A-NEXT: ;;#ASMEND
213 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
214 ; GFX90A-NEXT: v_mov_b32_e32 v0, v1
215 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
216 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
217 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
219 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__5_u_u_u:
221 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
222 ; GFX940-NEXT: ;;#ASMSTART
223 ; GFX940-NEXT: ; def v[0:3]
224 ; GFX940-NEXT: ;;#ASMEND
225 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
226 ; GFX940-NEXT: v_mov_b32_e32 v0, v1
227 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
228 ; GFX940-NEXT: s_waitcnt vmcnt(0)
229 ; GFX940-NEXT: s_setpc_b64 s[30:31]
230 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
231 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
232 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 5, i32 poison, i32 poison, i32 poison>
233 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
237 define void @v_shuffle_v4p3_v4p3__6_u_u_u(ptr addrspace(1) inreg %ptr) {
238 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__6_u_u_u:
240 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
241 ; GFX900-NEXT: ;;#ASMSTART
242 ; GFX900-NEXT: ; def v[0:3]
243 ; GFX900-NEXT: ;;#ASMEND
244 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
245 ; GFX900-NEXT: v_mov_b32_e32 v0, v2
246 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
247 ; GFX900-NEXT: s_waitcnt vmcnt(0)
248 ; GFX900-NEXT: s_setpc_b64 s[30:31]
250 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__6_u_u_u:
252 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
253 ; GFX90A-NEXT: ;;#ASMSTART
254 ; GFX90A-NEXT: ; def v[0:3]
255 ; GFX90A-NEXT: ;;#ASMEND
256 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
257 ; GFX90A-NEXT: v_mov_b32_e32 v0, v2
258 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
259 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
260 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
262 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__6_u_u_u:
264 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
265 ; GFX940-NEXT: ;;#ASMSTART
266 ; GFX940-NEXT: ; def v[0:3]
267 ; GFX940-NEXT: ;;#ASMEND
268 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
269 ; GFX940-NEXT: v_mov_b32_e32 v0, v2
270 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
271 ; GFX940-NEXT: s_waitcnt vmcnt(0)
272 ; GFX940-NEXT: s_setpc_b64 s[30:31]
273 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
274 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
275 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 6, i32 poison, i32 poison, i32 poison>
276 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
280 define void @v_shuffle_v4p3_v4p3__7_u_u_u(ptr addrspace(1) inreg %ptr) {
281 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_u_u_u:
283 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
284 ; GFX900-NEXT: ;;#ASMSTART
285 ; GFX900-NEXT: ; def v[0:3]
286 ; GFX900-NEXT: ;;#ASMEND
287 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
288 ; GFX900-NEXT: v_mov_b32_e32 v0, v3
289 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
290 ; GFX900-NEXT: s_waitcnt vmcnt(0)
291 ; GFX900-NEXT: s_setpc_b64 s[30:31]
293 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_u_u_u:
295 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
296 ; GFX90A-NEXT: ;;#ASMSTART
297 ; GFX90A-NEXT: ; def v[0:3]
298 ; GFX90A-NEXT: ;;#ASMEND
299 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
300 ; GFX90A-NEXT: v_mov_b32_e32 v0, v3
301 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
302 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
303 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
305 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_u_u_u:
307 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
308 ; GFX940-NEXT: ;;#ASMSTART
309 ; GFX940-NEXT: ; def v[0:3]
310 ; GFX940-NEXT: ;;#ASMEND
311 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
312 ; GFX940-NEXT: v_mov_b32_e32 v0, v3
313 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
314 ; GFX940-NEXT: s_waitcnt vmcnt(0)
315 ; GFX940-NEXT: s_setpc_b64 s[30:31]
316 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
317 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
318 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 poison, i32 poison, i32 poison>
319 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
323 define void @v_shuffle_v4p3_v4p3__7_0_u_u(ptr addrspace(1) inreg %ptr) {
324 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_0_u_u:
326 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
327 ; GFX900-NEXT: ;;#ASMSTART
328 ; GFX900-NEXT: ; def v[0:3]
329 ; GFX900-NEXT: ;;#ASMEND
330 ; GFX900-NEXT: ;;#ASMSTART
331 ; GFX900-NEXT: ; def v[1:4]
332 ; GFX900-NEXT: ;;#ASMEND
333 ; GFX900-NEXT: v_mov_b32_e32 v5, 0
334 ; GFX900-NEXT: v_mov_b32_e32 v1, v4
335 ; GFX900-NEXT: v_mov_b32_e32 v2, v0
336 ; GFX900-NEXT: global_store_dwordx4 v5, v[1:4], s[16:17]
337 ; GFX900-NEXT: s_waitcnt vmcnt(0)
338 ; GFX900-NEXT: s_setpc_b64 s[30:31]
340 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_0_u_u:
342 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
343 ; GFX90A-NEXT: ;;#ASMSTART
344 ; GFX90A-NEXT: ; def v[0:3]
345 ; GFX90A-NEXT: ;;#ASMEND
346 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
347 ; GFX90A-NEXT: ;;#ASMSTART
348 ; GFX90A-NEXT: ; def v[2:5]
349 ; GFX90A-NEXT: ;;#ASMEND
350 ; GFX90A-NEXT: v_pk_mov_b32 v[0:1], v[4:5], v[0:1] op_sel:[1,0]
351 ; GFX90A-NEXT: global_store_dwordx4 v6, v[0:3], s[16:17]
352 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
353 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
355 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_0_u_u:
357 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
358 ; GFX940-NEXT: ;;#ASMSTART
359 ; GFX940-NEXT: ; def v[0:3]
360 ; GFX940-NEXT: ;;#ASMEND
361 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
362 ; GFX940-NEXT: ;;#ASMSTART
363 ; GFX940-NEXT: ; def v[2:5]
364 ; GFX940-NEXT: ;;#ASMEND
365 ; GFX940-NEXT: s_nop 0
366 ; GFX940-NEXT: v_pk_mov_b32 v[0:1], v[4:5], v[0:1] op_sel:[1,0]
367 ; GFX940-NEXT: global_store_dwordx4 v6, v[0:3], s[0:1] sc0 sc1
368 ; GFX940-NEXT: s_waitcnt vmcnt(0)
369 ; GFX940-NEXT: s_setpc_b64 s[30:31]
370 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
371 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
372 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 0, i32 poison, i32 poison>
373 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
377 define void @v_shuffle_v4p3_v4p3__7_1_u_u(ptr addrspace(1) inreg %ptr) {
378 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_1_u_u:
380 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
381 ; GFX900-NEXT: ;;#ASMSTART
382 ; GFX900-NEXT: ; def v[0:3]
383 ; GFX900-NEXT: ;;#ASMEND
384 ; GFX900-NEXT: v_mov_b32_e32 v6, 0
385 ; GFX900-NEXT: ;;#ASMSTART
386 ; GFX900-NEXT: ; def v[2:5]
387 ; GFX900-NEXT: ;;#ASMEND
388 ; GFX900-NEXT: v_mov_b32_e32 v0, v5
389 ; GFX900-NEXT: global_store_dwordx4 v6, v[0:3], s[16:17]
390 ; GFX900-NEXT: s_waitcnt vmcnt(0)
391 ; GFX900-NEXT: s_setpc_b64 s[30:31]
393 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_1_u_u:
395 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
396 ; GFX90A-NEXT: ;;#ASMSTART
397 ; GFX90A-NEXT: ; def v[0:3]
398 ; GFX90A-NEXT: ;;#ASMEND
399 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
400 ; GFX90A-NEXT: ;;#ASMSTART
401 ; GFX90A-NEXT: ; def v[2:5]
402 ; GFX90A-NEXT: ;;#ASMEND
403 ; GFX90A-NEXT: v_mov_b32_e32 v0, v5
404 ; GFX90A-NEXT: global_store_dwordx4 v6, v[0:3], s[16:17]
405 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
406 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
408 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_1_u_u:
410 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
411 ; GFX940-NEXT: ;;#ASMSTART
412 ; GFX940-NEXT: ; def v[0:3]
413 ; GFX940-NEXT: ;;#ASMEND
414 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
415 ; GFX940-NEXT: ;;#ASMSTART
416 ; GFX940-NEXT: ; def v[2:5]
417 ; GFX940-NEXT: ;;#ASMEND
418 ; GFX940-NEXT: s_nop 0
419 ; GFX940-NEXT: v_mov_b32_e32 v0, v5
420 ; GFX940-NEXT: global_store_dwordx4 v6, v[0:3], s[0:1] sc0 sc1
421 ; GFX940-NEXT: s_waitcnt vmcnt(0)
422 ; GFX940-NEXT: s_setpc_b64 s[30:31]
423 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
424 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
425 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 1, i32 poison, i32 poison>
426 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
430 define void @v_shuffle_v4p3_v4p3__7_2_u_u(ptr addrspace(1) inreg %ptr) {
431 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_2_u_u:
433 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
434 ; GFX900-NEXT: ;;#ASMSTART
435 ; GFX900-NEXT: ; def v[0:3]
436 ; GFX900-NEXT: ;;#ASMEND
437 ; GFX900-NEXT: v_mov_b32_e32 v7, 0
438 ; GFX900-NEXT: ;;#ASMSTART
439 ; GFX900-NEXT: ; def v[3:6]
440 ; GFX900-NEXT: ;;#ASMEND
441 ; GFX900-NEXT: v_mov_b32_e32 v0, v6
442 ; GFX900-NEXT: v_mov_b32_e32 v1, v2
443 ; GFX900-NEXT: global_store_dwordx4 v7, v[0:3], s[16:17]
444 ; GFX900-NEXT: s_waitcnt vmcnt(0)
445 ; GFX900-NEXT: s_setpc_b64 s[30:31]
447 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_2_u_u:
449 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
450 ; GFX90A-NEXT: ;;#ASMSTART
451 ; GFX90A-NEXT: ; def v[0:3]
452 ; GFX90A-NEXT: ;;#ASMEND
453 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
454 ; GFX90A-NEXT: ;;#ASMSTART
455 ; GFX90A-NEXT: ; def v[4:7]
456 ; GFX90A-NEXT: ;;#ASMEND
457 ; GFX90A-NEXT: v_pk_mov_b32 v[0:1], v[6:7], v[2:3] op_sel:[1,0]
458 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
459 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
460 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
462 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_2_u_u:
464 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
465 ; GFX940-NEXT: ;;#ASMSTART
466 ; GFX940-NEXT: ; def v[0:3]
467 ; GFX940-NEXT: ;;#ASMEND
468 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
469 ; GFX940-NEXT: ;;#ASMSTART
470 ; GFX940-NEXT: ; def v[4:7]
471 ; GFX940-NEXT: ;;#ASMEND
472 ; GFX940-NEXT: s_nop 0
473 ; GFX940-NEXT: v_pk_mov_b32 v[0:1], v[6:7], v[2:3] op_sel:[1,0]
474 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
475 ; GFX940-NEXT: s_waitcnt vmcnt(0)
476 ; GFX940-NEXT: s_setpc_b64 s[30:31]
477 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
478 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
479 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 2, i32 poison, i32 poison>
480 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
484 define void @v_shuffle_v4p3_v4p3__7_3_u_u(ptr addrspace(1) inreg %ptr) {
485 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_3_u_u:
487 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
488 ; GFX900-NEXT: ;;#ASMSTART
489 ; GFX900-NEXT: ; def v[0:3]
490 ; GFX900-NEXT: ;;#ASMEND
491 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
492 ; GFX900-NEXT: ;;#ASMSTART
493 ; GFX900-NEXT: ; def v[4:7]
494 ; GFX900-NEXT: ;;#ASMEND
495 ; GFX900-NEXT: v_mov_b32_e32 v0, v7
496 ; GFX900-NEXT: v_mov_b32_e32 v1, v3
497 ; GFX900-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
498 ; GFX900-NEXT: s_waitcnt vmcnt(0)
499 ; GFX900-NEXT: s_setpc_b64 s[30:31]
501 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_3_u_u:
503 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
504 ; GFX90A-NEXT: ;;#ASMSTART
505 ; GFX90A-NEXT: ; def v[0:3]
506 ; GFX90A-NEXT: ;;#ASMEND
507 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
508 ; GFX90A-NEXT: ;;#ASMSTART
509 ; GFX90A-NEXT: ; def v[4:7]
510 ; GFX90A-NEXT: ;;#ASMEND
511 ; GFX90A-NEXT: v_mov_b32_e32 v0, v7
512 ; GFX90A-NEXT: v_mov_b32_e32 v1, v3
513 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
514 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
515 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
517 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_3_u_u:
519 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
520 ; GFX940-NEXT: ;;#ASMSTART
521 ; GFX940-NEXT: ; def v[0:3]
522 ; GFX940-NEXT: ;;#ASMEND
523 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
524 ; GFX940-NEXT: ;;#ASMSTART
525 ; GFX940-NEXT: ; def v[4:7]
526 ; GFX940-NEXT: ;;#ASMEND
527 ; GFX940-NEXT: v_mov_b32_e32 v1, v3
528 ; GFX940-NEXT: v_mov_b32_e32 v0, v7
529 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
530 ; GFX940-NEXT: s_waitcnt vmcnt(0)
531 ; GFX940-NEXT: s_setpc_b64 s[30:31]
532 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
533 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
534 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 3, i32 poison, i32 poison>
535 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
539 define void @v_shuffle_v4p3_v4p3__7_4_u_u(ptr addrspace(1) inreg %ptr) {
540 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_4_u_u:
542 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
543 ; GFX900-NEXT: ;;#ASMSTART
544 ; GFX900-NEXT: ; def v[0:3]
545 ; GFX900-NEXT: ;;#ASMEND
546 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
547 ; GFX900-NEXT: v_mov_b32_e32 v1, v3
548 ; GFX900-NEXT: v_mov_b32_e32 v2, v0
549 ; GFX900-NEXT: global_store_dwordx4 v4, v[1:4], s[16:17]
550 ; GFX900-NEXT: s_waitcnt vmcnt(0)
551 ; GFX900-NEXT: s_setpc_b64 s[30:31]
553 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_4_u_u:
555 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
556 ; GFX90A-NEXT: ;;#ASMSTART
557 ; GFX90A-NEXT: ; def v[0:3]
558 ; GFX90A-NEXT: ;;#ASMEND
559 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
560 ; GFX90A-NEXT: v_pk_mov_b32 v[0:1], v[2:3], v[0:1] op_sel:[1,0]
561 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
562 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
563 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
565 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_4_u_u:
567 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
568 ; GFX940-NEXT: ;;#ASMSTART
569 ; GFX940-NEXT: ; def v[0:3]
570 ; GFX940-NEXT: ;;#ASMEND
571 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
572 ; GFX940-NEXT: v_pk_mov_b32 v[0:1], v[2:3], v[0:1] op_sel:[1,0]
573 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
574 ; GFX940-NEXT: s_waitcnt vmcnt(0)
575 ; GFX940-NEXT: s_setpc_b64 s[30:31]
576 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
577 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
578 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 4, i32 poison, i32 poison>
579 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
583 define void @v_shuffle_v4p3_v4p3__7_5_u_u(ptr addrspace(1) inreg %ptr) {
584 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_5_u_u:
586 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
587 ; GFX900-NEXT: ;;#ASMSTART
588 ; GFX900-NEXT: ; def v[0:3]
589 ; GFX900-NEXT: ;;#ASMEND
590 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
591 ; GFX900-NEXT: v_mov_b32_e32 v0, v3
592 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
593 ; GFX900-NEXT: s_waitcnt vmcnt(0)
594 ; GFX900-NEXT: s_setpc_b64 s[30:31]
596 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_5_u_u:
598 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
599 ; GFX90A-NEXT: ;;#ASMSTART
600 ; GFX90A-NEXT: ; def v[0:3]
601 ; GFX90A-NEXT: ;;#ASMEND
602 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
603 ; GFX90A-NEXT: v_mov_b32_e32 v0, v3
604 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
605 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
606 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
608 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_5_u_u:
610 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
611 ; GFX940-NEXT: ;;#ASMSTART
612 ; GFX940-NEXT: ; def v[0:3]
613 ; GFX940-NEXT: ;;#ASMEND
614 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
615 ; GFX940-NEXT: v_mov_b32_e32 v0, v3
616 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
617 ; GFX940-NEXT: s_waitcnt vmcnt(0)
618 ; GFX940-NEXT: s_setpc_b64 s[30:31]
619 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
620 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
621 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 5, i32 poison, i32 poison>
622 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
626 define void @v_shuffle_v4p3_v4p3__7_6_u_u(ptr addrspace(1) inreg %ptr) {
627 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_6_u_u:
629 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
630 ; GFX900-NEXT: ;;#ASMSTART
631 ; GFX900-NEXT: ; def v[0:3]
632 ; GFX900-NEXT: ;;#ASMEND
633 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
634 ; GFX900-NEXT: v_mov_b32_e32 v0, v3
635 ; GFX900-NEXT: v_mov_b32_e32 v1, v2
636 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
637 ; GFX900-NEXT: s_waitcnt vmcnt(0)
638 ; GFX900-NEXT: s_setpc_b64 s[30:31]
640 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_6_u_u:
642 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
643 ; GFX90A-NEXT: ;;#ASMSTART
644 ; GFX90A-NEXT: ; def v[0:3]
645 ; GFX90A-NEXT: ;;#ASMEND
646 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
647 ; GFX90A-NEXT: v_pk_mov_b32 v[0:1], v[2:3], v[2:3] op_sel:[1,0]
648 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
649 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
650 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
652 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_6_u_u:
654 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
655 ; GFX940-NEXT: ;;#ASMSTART
656 ; GFX940-NEXT: ; def v[0:3]
657 ; GFX940-NEXT: ;;#ASMEND
658 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
659 ; GFX940-NEXT: v_pk_mov_b32 v[0:1], v[2:3], v[2:3] op_sel:[1,0]
660 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
661 ; GFX940-NEXT: s_waitcnt vmcnt(0)
662 ; GFX940-NEXT: s_setpc_b64 s[30:31]
663 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
664 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
665 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 6, i32 poison, i32 poison>
666 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
670 define void @v_shuffle_v4p3_v4p3__7_7_u_u(ptr addrspace(1) inreg %ptr) {
671 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_u_u:
673 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
674 ; GFX900-NEXT: ;;#ASMSTART
675 ; GFX900-NEXT: ; def v[0:3]
676 ; GFX900-NEXT: ;;#ASMEND
677 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
678 ; GFX900-NEXT: v_mov_b32_e32 v0, v3
679 ; GFX900-NEXT: v_mov_b32_e32 v1, v3
680 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
681 ; GFX900-NEXT: s_waitcnt vmcnt(0)
682 ; GFX900-NEXT: s_setpc_b64 s[30:31]
684 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_u_u:
686 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
687 ; GFX90A-NEXT: ;;#ASMSTART
688 ; GFX90A-NEXT: ; def v[0:3]
689 ; GFX90A-NEXT: ;;#ASMEND
690 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
691 ; GFX90A-NEXT: v_mov_b32_e32 v0, v3
692 ; GFX90A-NEXT: v_mov_b32_e32 v1, v3
693 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
694 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
695 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
697 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_u_u:
699 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
700 ; GFX940-NEXT: ;;#ASMSTART
701 ; GFX940-NEXT: ; def v[0:3]
702 ; GFX940-NEXT: ;;#ASMEND
703 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
704 ; GFX940-NEXT: v_mov_b32_e32 v0, v3
705 ; GFX940-NEXT: v_mov_b32_e32 v1, v3
706 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
707 ; GFX940-NEXT: s_waitcnt vmcnt(0)
708 ; GFX940-NEXT: s_setpc_b64 s[30:31]
709 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
710 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
711 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 poison, i32 poison>
712 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
716 define void @v_shuffle_v4p3_v4p3__7_7_0_u(ptr addrspace(1) inreg %ptr) {
717 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_0_u:
719 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
720 ; GFX900-NEXT: ;;#ASMSTART
721 ; GFX900-NEXT: ; def v[0:3]
722 ; GFX900-NEXT: ;;#ASMEND
723 ; GFX900-NEXT: ;;#ASMSTART
724 ; GFX900-NEXT: ; def v[1:4]
725 ; GFX900-NEXT: ;;#ASMEND
726 ; GFX900-NEXT: v_mov_b32_e32 v5, 0
727 ; GFX900-NEXT: v_mov_b32_e32 v1, v4
728 ; GFX900-NEXT: v_mov_b32_e32 v2, v4
729 ; GFX900-NEXT: v_mov_b32_e32 v3, v0
730 ; GFX900-NEXT: global_store_dwordx4 v5, v[1:4], s[16:17]
731 ; GFX900-NEXT: s_waitcnt vmcnt(0)
732 ; GFX900-NEXT: s_setpc_b64 s[30:31]
734 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_0_u:
736 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
737 ; GFX90A-NEXT: ;;#ASMSTART
738 ; GFX90A-NEXT: ; def v[0:3]
739 ; GFX90A-NEXT: ;;#ASMEND
740 ; GFX90A-NEXT: ;;#ASMSTART
741 ; GFX90A-NEXT: ; def v[2:5]
742 ; GFX90A-NEXT: ;;#ASMEND
743 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
744 ; GFX90A-NEXT: v_mov_b32_e32 v2, v5
745 ; GFX90A-NEXT: v_mov_b32_e32 v3, v5
746 ; GFX90A-NEXT: v_mov_b32_e32 v4, v0
747 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
748 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
749 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
751 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_0_u:
753 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
754 ; GFX940-NEXT: ;;#ASMSTART
755 ; GFX940-NEXT: ; def v[0:3]
756 ; GFX940-NEXT: ;;#ASMEND
757 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
758 ; GFX940-NEXT: ;;#ASMSTART
759 ; GFX940-NEXT: ; def v[2:5]
760 ; GFX940-NEXT: ;;#ASMEND
761 ; GFX940-NEXT: s_nop 0
762 ; GFX940-NEXT: v_mov_b32_e32 v2, v5
763 ; GFX940-NEXT: v_mov_b32_e32 v3, v5
764 ; GFX940-NEXT: v_mov_b32_e32 v4, v0
765 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
766 ; GFX940-NEXT: s_waitcnt vmcnt(0)
767 ; GFX940-NEXT: s_setpc_b64 s[30:31]
768 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
769 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
770 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 0, i32 poison>
771 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
775 define void @v_shuffle_v4p3_v4p3__7_7_1_u(ptr addrspace(1) inreg %ptr) {
776 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_1_u:
778 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
779 ; GFX900-NEXT: ;;#ASMSTART
780 ; GFX900-NEXT: ; def v[0:3]
781 ; GFX900-NEXT: ;;#ASMEND
782 ; GFX900-NEXT: ;;#ASMSTART
783 ; GFX900-NEXT: ; def v[2:5]
784 ; GFX900-NEXT: ;;#ASMEND
785 ; GFX900-NEXT: v_mov_b32_e32 v6, 0
786 ; GFX900-NEXT: v_mov_b32_e32 v2, v5
787 ; GFX900-NEXT: v_mov_b32_e32 v3, v5
788 ; GFX900-NEXT: v_mov_b32_e32 v4, v1
789 ; GFX900-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
790 ; GFX900-NEXT: s_waitcnt vmcnt(0)
791 ; GFX900-NEXT: s_setpc_b64 s[30:31]
793 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_1_u:
795 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
796 ; GFX90A-NEXT: ;;#ASMSTART
797 ; GFX90A-NEXT: ; def v[0:3]
798 ; GFX90A-NEXT: ;;#ASMEND
799 ; GFX90A-NEXT: ;;#ASMSTART
800 ; GFX90A-NEXT: ; def v[2:5]
801 ; GFX90A-NEXT: ;;#ASMEND
802 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
803 ; GFX90A-NEXT: v_mov_b32_e32 v2, v5
804 ; GFX90A-NEXT: v_mov_b32_e32 v3, v5
805 ; GFX90A-NEXT: v_mov_b32_e32 v4, v1
806 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
807 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
808 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
810 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_1_u:
812 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
813 ; GFX940-NEXT: ;;#ASMSTART
814 ; GFX940-NEXT: ; def v[0:3]
815 ; GFX940-NEXT: ;;#ASMEND
816 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
817 ; GFX940-NEXT: ;;#ASMSTART
818 ; GFX940-NEXT: ; def v[2:5]
819 ; GFX940-NEXT: ;;#ASMEND
820 ; GFX940-NEXT: s_nop 0
821 ; GFX940-NEXT: v_mov_b32_e32 v2, v5
822 ; GFX940-NEXT: v_mov_b32_e32 v3, v5
823 ; GFX940-NEXT: v_mov_b32_e32 v4, v1
824 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
825 ; GFX940-NEXT: s_waitcnt vmcnt(0)
826 ; GFX940-NEXT: s_setpc_b64 s[30:31]
827 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
828 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
829 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 1, i32 poison>
830 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
834 define void @v_shuffle_v4p3_v4p3__7_7_2_u(ptr addrspace(1) inreg %ptr) {
835 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_2_u:
837 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
838 ; GFX900-NEXT: ;;#ASMSTART
839 ; GFX900-NEXT: ; def v[0:3]
840 ; GFX900-NEXT: ;;#ASMEND
841 ; GFX900-NEXT: v_mov_b32_e32 v7, 0
842 ; GFX900-NEXT: ;;#ASMSTART
843 ; GFX900-NEXT: ; def v[3:6]
844 ; GFX900-NEXT: ;;#ASMEND
845 ; GFX900-NEXT: v_mov_b32_e32 v0, v6
846 ; GFX900-NEXT: v_mov_b32_e32 v1, v6
847 ; GFX900-NEXT: global_store_dwordx4 v7, v[0:3], s[16:17]
848 ; GFX900-NEXT: s_waitcnt vmcnt(0)
849 ; GFX900-NEXT: s_setpc_b64 s[30:31]
851 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_2_u:
853 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
854 ; GFX90A-NEXT: ;;#ASMSTART
855 ; GFX90A-NEXT: ; def v[0:3]
856 ; GFX90A-NEXT: ;;#ASMEND
857 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
858 ; GFX90A-NEXT: ;;#ASMSTART
859 ; GFX90A-NEXT: ; def v[4:7]
860 ; GFX90A-NEXT: ;;#ASMEND
861 ; GFX90A-NEXT: v_mov_b32_e32 v0, v7
862 ; GFX90A-NEXT: v_mov_b32_e32 v1, v7
863 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
864 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
865 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
867 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_2_u:
869 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
870 ; GFX940-NEXT: ;;#ASMSTART
871 ; GFX940-NEXT: ; def v[0:3]
872 ; GFX940-NEXT: ;;#ASMEND
873 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
874 ; GFX940-NEXT: ;;#ASMSTART
875 ; GFX940-NEXT: ; def v[4:7]
876 ; GFX940-NEXT: ;;#ASMEND
877 ; GFX940-NEXT: s_nop 0
878 ; GFX940-NEXT: v_mov_b32_e32 v0, v7
879 ; GFX940-NEXT: v_mov_b32_e32 v1, v7
880 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
881 ; GFX940-NEXT: s_waitcnt vmcnt(0)
882 ; GFX940-NEXT: s_setpc_b64 s[30:31]
883 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
884 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
885 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 2, i32 poison>
886 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
890 define void @v_shuffle_v4p3_v4p3__7_7_3_u(ptr addrspace(1) inreg %ptr) {
891 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_3_u:
893 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
894 ; GFX900-NEXT: ;;#ASMSTART
895 ; GFX900-NEXT: ; def v[0:3]
896 ; GFX900-NEXT: ;;#ASMEND
897 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
898 ; GFX900-NEXT: ;;#ASMSTART
899 ; GFX900-NEXT: ; def v[4:7]
900 ; GFX900-NEXT: ;;#ASMEND
901 ; GFX900-NEXT: v_mov_b32_e32 v0, v7
902 ; GFX900-NEXT: v_mov_b32_e32 v1, v7
903 ; GFX900-NEXT: v_mov_b32_e32 v2, v3
904 ; GFX900-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
905 ; GFX900-NEXT: s_waitcnt vmcnt(0)
906 ; GFX900-NEXT: s_setpc_b64 s[30:31]
908 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_3_u:
910 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
911 ; GFX90A-NEXT: ;;#ASMSTART
912 ; GFX90A-NEXT: ; def v[0:3]
913 ; GFX90A-NEXT: ;;#ASMEND
914 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
915 ; GFX90A-NEXT: ;;#ASMSTART
916 ; GFX90A-NEXT: ; def v[4:7]
917 ; GFX90A-NEXT: ;;#ASMEND
918 ; GFX90A-NEXT: v_mov_b32_e32 v0, v7
919 ; GFX90A-NEXT: v_mov_b32_e32 v1, v7
920 ; GFX90A-NEXT: v_mov_b32_e32 v2, v3
921 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
922 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
923 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
925 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_3_u:
927 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
928 ; GFX940-NEXT: ;;#ASMSTART
929 ; GFX940-NEXT: ; def v[0:3]
930 ; GFX940-NEXT: ;;#ASMEND
931 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
932 ; GFX940-NEXT: ;;#ASMSTART
933 ; GFX940-NEXT: ; def v[4:7]
934 ; GFX940-NEXT: ;;#ASMEND
935 ; GFX940-NEXT: v_mov_b32_e32 v2, v3
936 ; GFX940-NEXT: v_mov_b32_e32 v0, v7
937 ; GFX940-NEXT: v_mov_b32_e32 v1, v7
938 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
939 ; GFX940-NEXT: s_waitcnt vmcnt(0)
940 ; GFX940-NEXT: s_setpc_b64 s[30:31]
941 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
942 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
943 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 3, i32 poison>
944 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
948 define void @v_shuffle_v4p3_v4p3__7_7_4_u(ptr addrspace(1) inreg %ptr) {
949 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_4_u:
951 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
952 ; GFX900-NEXT: ;;#ASMSTART
953 ; GFX900-NEXT: ; def v[0:3]
954 ; GFX900-NEXT: ;;#ASMEND
955 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
956 ; GFX900-NEXT: v_mov_b32_e32 v1, v3
957 ; GFX900-NEXT: v_mov_b32_e32 v2, v3
958 ; GFX900-NEXT: v_mov_b32_e32 v3, v0
959 ; GFX900-NEXT: global_store_dwordx4 v4, v[1:4], s[16:17]
960 ; GFX900-NEXT: s_waitcnt vmcnt(0)
961 ; GFX900-NEXT: s_setpc_b64 s[30:31]
963 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_4_u:
965 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
966 ; GFX90A-NEXT: ;;#ASMSTART
967 ; GFX90A-NEXT: ; def v[0:3]
968 ; GFX90A-NEXT: ;;#ASMEND
969 ; GFX90A-NEXT: v_mov_b32_e32 v5, 0
970 ; GFX90A-NEXT: v_mov_b32_e32 v2, v3
971 ; GFX90A-NEXT: v_mov_b32_e32 v4, v0
972 ; GFX90A-NEXT: global_store_dwordx4 v5, v[2:5], s[16:17]
973 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
974 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
976 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_4_u:
978 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
979 ; GFX940-NEXT: ;;#ASMSTART
980 ; GFX940-NEXT: ; def v[0:3]
981 ; GFX940-NEXT: ;;#ASMEND
982 ; GFX940-NEXT: v_mov_b32_e32 v5, 0
983 ; GFX940-NEXT: v_mov_b32_e32 v2, v3
984 ; GFX940-NEXT: v_mov_b32_e32 v4, v0
985 ; GFX940-NEXT: global_store_dwordx4 v5, v[2:5], s[0:1] sc0 sc1
986 ; GFX940-NEXT: s_waitcnt vmcnt(0)
987 ; GFX940-NEXT: s_setpc_b64 s[30:31]
988 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
989 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
990 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 4, i32 poison>
991 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
995 define void @v_shuffle_v4p3_v4p3__7_7_5_u(ptr addrspace(1) inreg %ptr) {
996 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_5_u:
998 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
999 ; GFX900-NEXT: ;;#ASMSTART
1000 ; GFX900-NEXT: ; def v[0:3]
1001 ; GFX900-NEXT: ;;#ASMEND
1002 ; GFX900-NEXT: v_mov_b32_e32 v5, 0
1003 ; GFX900-NEXT: v_mov_b32_e32 v2, v3
1004 ; GFX900-NEXT: v_mov_b32_e32 v4, v1
1005 ; GFX900-NEXT: global_store_dwordx4 v5, v[2:5], s[16:17]
1006 ; GFX900-NEXT: s_waitcnt vmcnt(0)
1007 ; GFX900-NEXT: s_setpc_b64 s[30:31]
1009 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_5_u:
1011 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1012 ; GFX90A-NEXT: ;;#ASMSTART
1013 ; GFX90A-NEXT: ; def v[0:3]
1014 ; GFX90A-NEXT: ;;#ASMEND
1015 ; GFX90A-NEXT: v_mov_b32_e32 v5, 0
1016 ; GFX90A-NEXT: v_mov_b32_e32 v2, v3
1017 ; GFX90A-NEXT: v_mov_b32_e32 v4, v1
1018 ; GFX90A-NEXT: global_store_dwordx4 v5, v[2:5], s[16:17]
1019 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
1020 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
1022 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_5_u:
1024 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1025 ; GFX940-NEXT: ;;#ASMSTART
1026 ; GFX940-NEXT: ; def v[0:3]
1027 ; GFX940-NEXT: ;;#ASMEND
1028 ; GFX940-NEXT: v_mov_b32_e32 v5, 0
1029 ; GFX940-NEXT: v_mov_b32_e32 v2, v3
1030 ; GFX940-NEXT: v_mov_b32_e32 v4, v1
1031 ; GFX940-NEXT: global_store_dwordx4 v5, v[2:5], s[0:1] sc0 sc1
1032 ; GFX940-NEXT: s_waitcnt vmcnt(0)
1033 ; GFX940-NEXT: s_setpc_b64 s[30:31]
1034 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
1035 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
1036 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 5, i32 poison>
1037 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
1041 define void @v_shuffle_v4p3_v4p3__7_7_6_u(ptr addrspace(1) inreg %ptr) {
1042 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_6_u:
1044 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1045 ; GFX900-NEXT: ;;#ASMSTART
1046 ; GFX900-NEXT: ; def v[0:3]
1047 ; GFX900-NEXT: ;;#ASMEND
1048 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
1049 ; GFX900-NEXT: v_mov_b32_e32 v0, v3
1050 ; GFX900-NEXT: v_mov_b32_e32 v1, v3
1051 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
1052 ; GFX900-NEXT: s_waitcnt vmcnt(0)
1053 ; GFX900-NEXT: s_setpc_b64 s[30:31]
1055 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_6_u:
1057 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1058 ; GFX90A-NEXT: ;;#ASMSTART
1059 ; GFX90A-NEXT: ; def v[0:3]
1060 ; GFX90A-NEXT: ;;#ASMEND
1061 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
1062 ; GFX90A-NEXT: v_mov_b32_e32 v0, v3
1063 ; GFX90A-NEXT: v_mov_b32_e32 v1, v3
1064 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
1065 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
1066 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
1068 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_6_u:
1070 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1071 ; GFX940-NEXT: ;;#ASMSTART
1072 ; GFX940-NEXT: ; def v[0:3]
1073 ; GFX940-NEXT: ;;#ASMEND
1074 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
1075 ; GFX940-NEXT: v_mov_b32_e32 v0, v3
1076 ; GFX940-NEXT: v_mov_b32_e32 v1, v3
1077 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
1078 ; GFX940-NEXT: s_waitcnt vmcnt(0)
1079 ; GFX940-NEXT: s_setpc_b64 s[30:31]
1080 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
1081 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
1082 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 6, i32 poison>
1083 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
1087 define void @v_shuffle_v4p3_v4p3__7_7_7_u(ptr addrspace(1) inreg %ptr) {
1088 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_7_u:
1090 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1091 ; GFX900-NEXT: ;;#ASMSTART
1092 ; GFX900-NEXT: ; def v[0:3]
1093 ; GFX900-NEXT: ;;#ASMEND
1094 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
1095 ; GFX900-NEXT: v_mov_b32_e32 v0, v3
1096 ; GFX900-NEXT: v_mov_b32_e32 v1, v3
1097 ; GFX900-NEXT: v_mov_b32_e32 v2, v3
1098 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
1099 ; GFX900-NEXT: s_waitcnt vmcnt(0)
1100 ; GFX900-NEXT: s_setpc_b64 s[30:31]
1102 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_7_u:
1104 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1105 ; GFX90A-NEXT: ;;#ASMSTART
1106 ; GFX90A-NEXT: ; def v[0:3]
1107 ; GFX90A-NEXT: ;;#ASMEND
1108 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
1109 ; GFX90A-NEXT: v_mov_b32_e32 v0, v3
1110 ; GFX90A-NEXT: v_mov_b32_e32 v1, v3
1111 ; GFX90A-NEXT: v_mov_b32_e32 v2, v3
1112 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
1113 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
1114 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
1116 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_7_u:
1118 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1119 ; GFX940-NEXT: ;;#ASMSTART
1120 ; GFX940-NEXT: ; def v[0:3]
1121 ; GFX940-NEXT: ;;#ASMEND
1122 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
1123 ; GFX940-NEXT: v_mov_b32_e32 v0, v3
1124 ; GFX940-NEXT: v_mov_b32_e32 v1, v3
1125 ; GFX940-NEXT: v_mov_b32_e32 v2, v3
1126 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
1127 ; GFX940-NEXT: s_waitcnt vmcnt(0)
1128 ; GFX940-NEXT: s_setpc_b64 s[30:31]
1129 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
1130 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
1131 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 7, i32 poison>
1132 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
1136 define void @v_shuffle_v4p3_v4p3__7_7_7_0(ptr addrspace(1) inreg %ptr) {
1137 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_7_0:
1139 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1140 ; GFX900-NEXT: ;;#ASMSTART
1141 ; GFX900-NEXT: ; def v[0:3]
1142 ; GFX900-NEXT: ;;#ASMEND
1143 ; GFX900-NEXT: ;;#ASMSTART
1144 ; GFX900-NEXT: ; def v[1:4]
1145 ; GFX900-NEXT: ;;#ASMEND
1146 ; GFX900-NEXT: v_mov_b32_e32 v5, 0
1147 ; GFX900-NEXT: v_mov_b32_e32 v1, v4
1148 ; GFX900-NEXT: v_mov_b32_e32 v2, v4
1149 ; GFX900-NEXT: v_mov_b32_e32 v3, v4
1150 ; GFX900-NEXT: v_mov_b32_e32 v4, v0
1151 ; GFX900-NEXT: global_store_dwordx4 v5, v[1:4], s[16:17]
1152 ; GFX900-NEXT: s_waitcnt vmcnt(0)
1153 ; GFX900-NEXT: s_setpc_b64 s[30:31]
1155 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_7_0:
1157 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1158 ; GFX90A-NEXT: ;;#ASMSTART
1159 ; GFX90A-NEXT: ; def v[0:3]
1160 ; GFX90A-NEXT: ;;#ASMEND
1161 ; GFX90A-NEXT: ;;#ASMSTART
1162 ; GFX90A-NEXT: ; def v[2:5]
1163 ; GFX90A-NEXT: ;;#ASMEND
1164 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
1165 ; GFX90A-NEXT: v_pk_mov_b32 v[2:3], v[4:5], v[0:1] op_sel:[1,0]
1166 ; GFX90A-NEXT: v_mov_b32_e32 v0, v5
1167 ; GFX90A-NEXT: v_mov_b32_e32 v1, v5
1168 ; GFX90A-NEXT: global_store_dwordx4 v6, v[0:3], s[16:17]
1169 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
1170 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
1172 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_7_0:
1174 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1175 ; GFX940-NEXT: ;;#ASMSTART
1176 ; GFX940-NEXT: ; def v[0:3]
1177 ; GFX940-NEXT: ;;#ASMEND
1178 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
1179 ; GFX940-NEXT: ;;#ASMSTART
1180 ; GFX940-NEXT: ; def v[2:5]
1181 ; GFX940-NEXT: ;;#ASMEND
1182 ; GFX940-NEXT: s_nop 0
1183 ; GFX940-NEXT: v_pk_mov_b32 v[2:3], v[4:5], v[0:1] op_sel:[1,0]
1184 ; GFX940-NEXT: v_mov_b32_e32 v0, v5
1185 ; GFX940-NEXT: v_mov_b32_e32 v1, v5
1186 ; GFX940-NEXT: global_store_dwordx4 v6, v[0:3], s[0:1] sc0 sc1
1187 ; GFX940-NEXT: s_waitcnt vmcnt(0)
1188 ; GFX940-NEXT: s_setpc_b64 s[30:31]
1189 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
1190 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
1191 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 7, i32 0>
1192 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
1196 define void @v_shuffle_v4p3_v4p3__7_7_7_1(ptr addrspace(1) inreg %ptr) {
1197 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_7_1:
1199 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1200 ; GFX900-NEXT: ;;#ASMSTART
1201 ; GFX900-NEXT: ; def v[0:3]
1202 ; GFX900-NEXT: ;;#ASMEND
1203 ; GFX900-NEXT: ;;#ASMSTART
1204 ; GFX900-NEXT: ; def v[2:5]
1205 ; GFX900-NEXT: ;;#ASMEND
1206 ; GFX900-NEXT: v_mov_b32_e32 v6, 0
1207 ; GFX900-NEXT: v_mov_b32_e32 v2, v5
1208 ; GFX900-NEXT: v_mov_b32_e32 v3, v5
1209 ; GFX900-NEXT: v_mov_b32_e32 v4, v5
1210 ; GFX900-NEXT: v_mov_b32_e32 v5, v1
1211 ; GFX900-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
1212 ; GFX900-NEXT: s_waitcnt vmcnt(0)
1213 ; GFX900-NEXT: s_setpc_b64 s[30:31]
1215 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_7_1:
1217 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1218 ; GFX90A-NEXT: ;;#ASMSTART
1219 ; GFX90A-NEXT: ; def v[0:3]
1220 ; GFX90A-NEXT: ;;#ASMEND
1221 ; GFX90A-NEXT: ;;#ASMSTART
1222 ; GFX90A-NEXT: ; def v[2:5]
1223 ; GFX90A-NEXT: ;;#ASMEND
1224 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
1225 ; GFX90A-NEXT: v_mov_b32_e32 v2, v5
1226 ; GFX90A-NEXT: v_mov_b32_e32 v3, v5
1227 ; GFX90A-NEXT: v_mov_b32_e32 v4, v5
1228 ; GFX90A-NEXT: v_mov_b32_e32 v5, v1
1229 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
1230 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
1231 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
1233 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_7_1:
1235 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1236 ; GFX940-NEXT: ;;#ASMSTART
1237 ; GFX940-NEXT: ; def v[0:3]
1238 ; GFX940-NEXT: ;;#ASMEND
1239 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
1240 ; GFX940-NEXT: ;;#ASMSTART
1241 ; GFX940-NEXT: ; def v[2:5]
1242 ; GFX940-NEXT: ;;#ASMEND
1243 ; GFX940-NEXT: s_nop 0
1244 ; GFX940-NEXT: v_mov_b32_e32 v2, v5
1245 ; GFX940-NEXT: v_mov_b32_e32 v3, v5
1246 ; GFX940-NEXT: v_mov_b32_e32 v4, v5
1247 ; GFX940-NEXT: v_mov_b32_e32 v5, v1
1248 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
1249 ; GFX940-NEXT: s_waitcnt vmcnt(0)
1250 ; GFX940-NEXT: s_setpc_b64 s[30:31]
1251 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
1252 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
1253 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 7, i32 1>
1254 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
1258 define void @v_shuffle_v4p3_v4p3__7_7_7_2(ptr addrspace(1) inreg %ptr) {
1259 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_7_2:
1261 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1262 ; GFX900-NEXT: ;;#ASMSTART
1263 ; GFX900-NEXT: ; def v[0:3]
1264 ; GFX900-NEXT: ;;#ASMEND
1265 ; GFX900-NEXT: ;;#ASMSTART
1266 ; GFX900-NEXT: ; def v[3:6]
1267 ; GFX900-NEXT: ;;#ASMEND
1268 ; GFX900-NEXT: v_mov_b32_e32 v7, 0
1269 ; GFX900-NEXT: v_mov_b32_e32 v3, v6
1270 ; GFX900-NEXT: v_mov_b32_e32 v4, v6
1271 ; GFX900-NEXT: v_mov_b32_e32 v5, v6
1272 ; GFX900-NEXT: v_mov_b32_e32 v6, v2
1273 ; GFX900-NEXT: global_store_dwordx4 v7, v[3:6], s[16:17]
1274 ; GFX900-NEXT: s_waitcnt vmcnt(0)
1275 ; GFX900-NEXT: s_setpc_b64 s[30:31]
1277 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_7_2:
1279 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1280 ; GFX90A-NEXT: ;;#ASMSTART
1281 ; GFX90A-NEXT: ; def v[0:3]
1282 ; GFX90A-NEXT: ;;#ASMEND
1283 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
1284 ; GFX90A-NEXT: ;;#ASMSTART
1285 ; GFX90A-NEXT: ; def v[4:7]
1286 ; GFX90A-NEXT: ;;#ASMEND
1287 ; GFX90A-NEXT: v_pk_mov_b32 v[2:3], v[6:7], v[2:3] op_sel:[1,0]
1288 ; GFX90A-NEXT: v_mov_b32_e32 v0, v7
1289 ; GFX90A-NEXT: v_mov_b32_e32 v1, v7
1290 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
1291 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
1292 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
1294 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_7_2:
1296 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1297 ; GFX940-NEXT: ;;#ASMSTART
1298 ; GFX940-NEXT: ; def v[0:3]
1299 ; GFX940-NEXT: ;;#ASMEND
1300 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
1301 ; GFX940-NEXT: ;;#ASMSTART
1302 ; GFX940-NEXT: ; def v[4:7]
1303 ; GFX940-NEXT: ;;#ASMEND
1304 ; GFX940-NEXT: s_nop 0
1305 ; GFX940-NEXT: v_pk_mov_b32 v[2:3], v[6:7], v[2:3] op_sel:[1,0]
1306 ; GFX940-NEXT: v_mov_b32_e32 v0, v7
1307 ; GFX940-NEXT: v_mov_b32_e32 v1, v7
1308 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
1309 ; GFX940-NEXT: s_waitcnt vmcnt(0)
1310 ; GFX940-NEXT: s_setpc_b64 s[30:31]
1311 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
1312 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
1313 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 7, i32 2>
1314 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
1318 define void @v_shuffle_v4p3_v4p3__7_7_7_3(ptr addrspace(1) inreg %ptr) {
1319 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_7_3:
1321 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1322 ; GFX900-NEXT: ;;#ASMSTART
1323 ; GFX900-NEXT: ; def v[0:3]
1324 ; GFX900-NEXT: ;;#ASMEND
1325 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
1326 ; GFX900-NEXT: ;;#ASMSTART
1327 ; GFX900-NEXT: ; def v[4:7]
1328 ; GFX900-NEXT: ;;#ASMEND
1329 ; GFX900-NEXT: v_mov_b32_e32 v0, v7
1330 ; GFX900-NEXT: v_mov_b32_e32 v1, v7
1331 ; GFX900-NEXT: v_mov_b32_e32 v2, v7
1332 ; GFX900-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
1333 ; GFX900-NEXT: s_waitcnt vmcnt(0)
1334 ; GFX900-NEXT: s_setpc_b64 s[30:31]
1336 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_7_3:
1338 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1339 ; GFX90A-NEXT: ;;#ASMSTART
1340 ; GFX90A-NEXT: ; def v[0:3]
1341 ; GFX90A-NEXT: ;;#ASMEND
1342 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
1343 ; GFX90A-NEXT: ;;#ASMSTART
1344 ; GFX90A-NEXT: ; def v[4:7]
1345 ; GFX90A-NEXT: ;;#ASMEND
1346 ; GFX90A-NEXT: v_mov_b32_e32 v0, v7
1347 ; GFX90A-NEXT: v_mov_b32_e32 v1, v7
1348 ; GFX90A-NEXT: v_mov_b32_e32 v2, v7
1349 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
1350 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
1351 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
1353 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_7_3:
1355 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1356 ; GFX940-NEXT: ;;#ASMSTART
1357 ; GFX940-NEXT: ; def v[0:3]
1358 ; GFX940-NEXT: ;;#ASMEND
1359 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
1360 ; GFX940-NEXT: ;;#ASMSTART
1361 ; GFX940-NEXT: ; def v[4:7]
1362 ; GFX940-NEXT: ;;#ASMEND
1363 ; GFX940-NEXT: s_nop 0
1364 ; GFX940-NEXT: v_mov_b32_e32 v0, v7
1365 ; GFX940-NEXT: v_mov_b32_e32 v1, v7
1366 ; GFX940-NEXT: v_mov_b32_e32 v2, v7
1367 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
1368 ; GFX940-NEXT: s_waitcnt vmcnt(0)
1369 ; GFX940-NEXT: s_setpc_b64 s[30:31]
1370 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
1371 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
1372 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 7, i32 3>
1373 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
1377 define void @v_shuffle_v4p3_v4p3__7_7_7_4(ptr addrspace(1) inreg %ptr) {
1378 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_7_4:
1380 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1381 ; GFX900-NEXT: ;;#ASMSTART
1382 ; GFX900-NEXT: ; def v[0:3]
1383 ; GFX900-NEXT: ;;#ASMEND
1384 ; GFX900-NEXT: v_mov_b32_e32 v5, 0
1385 ; GFX900-NEXT: v_mov_b32_e32 v1, v3
1386 ; GFX900-NEXT: v_mov_b32_e32 v2, v3
1387 ; GFX900-NEXT: v_mov_b32_e32 v4, v0
1388 ; GFX900-NEXT: global_store_dwordx4 v5, v[1:4], s[16:17]
1389 ; GFX900-NEXT: s_waitcnt vmcnt(0)
1390 ; GFX900-NEXT: s_setpc_b64 s[30:31]
1392 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_7_4:
1394 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1395 ; GFX90A-NEXT: ;;#ASMSTART
1396 ; GFX90A-NEXT: ; def v[0:3]
1397 ; GFX90A-NEXT: ;;#ASMEND
1398 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
1399 ; GFX90A-NEXT: v_pk_mov_b32 v[4:5], v[2:3], v[0:1] op_sel:[1,0]
1400 ; GFX90A-NEXT: v_mov_b32_e32 v2, v3
1401 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
1402 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
1403 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
1405 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_7_4:
1407 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1408 ; GFX940-NEXT: ;;#ASMSTART
1409 ; GFX940-NEXT: ; def v[0:3]
1410 ; GFX940-NEXT: ;;#ASMEND
1411 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
1412 ; GFX940-NEXT: v_pk_mov_b32 v[4:5], v[2:3], v[0:1] op_sel:[1,0]
1413 ; GFX940-NEXT: v_mov_b32_e32 v2, v3
1414 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
1415 ; GFX940-NEXT: s_waitcnt vmcnt(0)
1416 ; GFX940-NEXT: s_setpc_b64 s[30:31]
1417 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
1418 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
1419 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 7, i32 4>
1420 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
1424 define void @v_shuffle_v4p3_v4p3__7_7_7_5(ptr addrspace(1) inreg %ptr) {
1425 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_7_5:
1427 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1428 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
1429 ; GFX900-NEXT: ;;#ASMSTART
1430 ; GFX900-NEXT: ; def v[0:3]
1431 ; GFX900-NEXT: ;;#ASMEND
1432 ; GFX900-NEXT: v_mov_b32_e32 v4, v3
1433 ; GFX900-NEXT: v_mov_b32_e32 v5, v3
1434 ; GFX900-NEXT: v_mov_b32_e32 v6, v3
1435 ; GFX900-NEXT: v_mov_b32_e32 v7, v1
1436 ; GFX900-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
1437 ; GFX900-NEXT: s_waitcnt vmcnt(0)
1438 ; GFX900-NEXT: s_setpc_b64 s[30:31]
1440 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_7_5:
1442 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1443 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
1444 ; GFX90A-NEXT: ;;#ASMSTART
1445 ; GFX90A-NEXT: ; def v[0:3]
1446 ; GFX90A-NEXT: ;;#ASMEND
1447 ; GFX90A-NEXT: v_mov_b32_e32 v4, v3
1448 ; GFX90A-NEXT: v_mov_b32_e32 v5, v3
1449 ; GFX90A-NEXT: v_mov_b32_e32 v6, v3
1450 ; GFX90A-NEXT: v_mov_b32_e32 v7, v1
1451 ; GFX90A-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
1452 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
1453 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
1455 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_7_5:
1457 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1458 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
1459 ; GFX940-NEXT: ;;#ASMSTART
1460 ; GFX940-NEXT: ; def v[0:3]
1461 ; GFX940-NEXT: ;;#ASMEND
1462 ; GFX940-NEXT: s_nop 0
1463 ; GFX940-NEXT: v_mov_b32_e32 v4, v3
1464 ; GFX940-NEXT: v_mov_b32_e32 v5, v3
1465 ; GFX940-NEXT: v_mov_b32_e32 v6, v3
1466 ; GFX940-NEXT: v_mov_b32_e32 v7, v1
1467 ; GFX940-NEXT: global_store_dwordx4 v8, v[4:7], s[0:1] sc0 sc1
1468 ; GFX940-NEXT: s_waitcnt vmcnt(0)
1469 ; GFX940-NEXT: s_setpc_b64 s[30:31]
1470 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
1471 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
1472 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 7, i32 5>
1473 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
1477 define void @v_shuffle_v4p3_v4p3__7_7_7_6(ptr addrspace(1) inreg %ptr) {
1478 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_7_6:
1480 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1481 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
1482 ; GFX900-NEXT: ;;#ASMSTART
1483 ; GFX900-NEXT: ; def v[0:3]
1484 ; GFX900-NEXT: ;;#ASMEND
1485 ; GFX900-NEXT: v_mov_b32_e32 v4, v3
1486 ; GFX900-NEXT: v_mov_b32_e32 v5, v3
1487 ; GFX900-NEXT: v_mov_b32_e32 v6, v3
1488 ; GFX900-NEXT: v_mov_b32_e32 v7, v2
1489 ; GFX900-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
1490 ; GFX900-NEXT: s_waitcnt vmcnt(0)
1491 ; GFX900-NEXT: s_setpc_b64 s[30:31]
1493 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_7_6:
1495 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1496 ; GFX90A-NEXT: ;;#ASMSTART
1497 ; GFX90A-NEXT: ; def v[0:3]
1498 ; GFX90A-NEXT: ;;#ASMEND
1499 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
1500 ; GFX90A-NEXT: v_pk_mov_b32 v[4:5], v[2:3], v[2:3] op_sel:[1,0]
1501 ; GFX90A-NEXT: v_mov_b32_e32 v2, v3
1502 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
1503 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
1504 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
1506 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_7_6:
1508 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1509 ; GFX940-NEXT: ;;#ASMSTART
1510 ; GFX940-NEXT: ; def v[0:3]
1511 ; GFX940-NEXT: ;;#ASMEND
1512 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
1513 ; GFX940-NEXT: v_pk_mov_b32 v[4:5], v[2:3], v[2:3] op_sel:[1,0]
1514 ; GFX940-NEXT: v_mov_b32_e32 v2, v3
1515 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
1516 ; GFX940-NEXT: s_waitcnt vmcnt(0)
1517 ; GFX940-NEXT: s_setpc_b64 s[30:31]
1518 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
1519 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
1520 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 7, i32 6>
1521 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
1525 define void @v_shuffle_v4p3_v4p3__7_7_7_7(ptr addrspace(1) inreg %ptr) {
1526 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_7_7:
1528 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1529 ; GFX900-NEXT: ;;#ASMSTART
1530 ; GFX900-NEXT: ; def v[0:3]
1531 ; GFX900-NEXT: ;;#ASMEND
1532 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
1533 ; GFX900-NEXT: v_mov_b32_e32 v0, v3
1534 ; GFX900-NEXT: v_mov_b32_e32 v1, v3
1535 ; GFX900-NEXT: v_mov_b32_e32 v2, v3
1536 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
1537 ; GFX900-NEXT: s_waitcnt vmcnt(0)
1538 ; GFX900-NEXT: s_setpc_b64 s[30:31]
1540 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_7_7:
1542 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1543 ; GFX90A-NEXT: ;;#ASMSTART
1544 ; GFX90A-NEXT: ; def v[0:3]
1545 ; GFX90A-NEXT: ;;#ASMEND
1546 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
1547 ; GFX90A-NEXT: v_mov_b32_e32 v0, v3
1548 ; GFX90A-NEXT: v_mov_b32_e32 v1, v3
1549 ; GFX90A-NEXT: v_mov_b32_e32 v2, v3
1550 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
1551 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
1552 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
1554 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_7_7:
1556 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1557 ; GFX940-NEXT: ;;#ASMSTART
1558 ; GFX940-NEXT: ; def v[0:3]
1559 ; GFX940-NEXT: ;;#ASMEND
1560 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
1561 ; GFX940-NEXT: v_mov_b32_e32 v0, v3
1562 ; GFX940-NEXT: v_mov_b32_e32 v1, v3
1563 ; GFX940-NEXT: v_mov_b32_e32 v2, v3
1564 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
1565 ; GFX940-NEXT: s_waitcnt vmcnt(0)
1566 ; GFX940-NEXT: s_setpc_b64 s[30:31]
1567 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
1568 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
1569 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 7, i32 7>
1570 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
1574 define void @v_shuffle_v4p3_v4p3__u_0_0_0(ptr addrspace(1) inreg %ptr) {
1575 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__u_0_0_0:
1577 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1578 ; GFX900-NEXT: ;;#ASMSTART
1579 ; GFX900-NEXT: ; def v[0:3]
1580 ; GFX900-NEXT: ;;#ASMEND
1581 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
1582 ; GFX900-NEXT: v_mov_b32_e32 v1, v0
1583 ; GFX900-NEXT: v_mov_b32_e32 v2, v0
1584 ; GFX900-NEXT: v_mov_b32_e32 v3, v0
1585 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
1586 ; GFX900-NEXT: s_waitcnt vmcnt(0)
1587 ; GFX900-NEXT: s_setpc_b64 s[30:31]
1589 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__u_0_0_0:
1591 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1592 ; GFX90A-NEXT: ;;#ASMSTART
1593 ; GFX90A-NEXT: ; def v[0:3]
1594 ; GFX90A-NEXT: ;;#ASMEND
1595 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
1596 ; GFX90A-NEXT: v_mov_b32_e32 v1, v0
1597 ; GFX90A-NEXT: v_mov_b32_e32 v2, v0
1598 ; GFX90A-NEXT: v_mov_b32_e32 v3, v0
1599 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
1600 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
1601 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
1603 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__u_0_0_0:
1605 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1606 ; GFX940-NEXT: ;;#ASMSTART
1607 ; GFX940-NEXT: ; def v[0:3]
1608 ; GFX940-NEXT: ;;#ASMEND
1609 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
1610 ; GFX940-NEXT: v_mov_b32_e32 v1, v0
1611 ; GFX940-NEXT: v_mov_b32_e32 v2, v0
1612 ; GFX940-NEXT: v_mov_b32_e32 v3, v0
1613 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
1614 ; GFX940-NEXT: s_waitcnt vmcnt(0)
1615 ; GFX940-NEXT: s_setpc_b64 s[30:31]
1616 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
1617 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 poison, i32 0, i32 0, i32 0>
1618 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
1622 define void @v_shuffle_v4p3_v4p3__0_0_0_0(ptr addrspace(1) inreg %ptr) {
1623 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__0_0_0_0:
1625 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1626 ; GFX900-NEXT: ;;#ASMSTART
1627 ; GFX900-NEXT: ; def v[0:3]
1628 ; GFX900-NEXT: ;;#ASMEND
1629 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
1630 ; GFX900-NEXT: v_mov_b32_e32 v1, v0
1631 ; GFX900-NEXT: v_mov_b32_e32 v2, v0
1632 ; GFX900-NEXT: v_mov_b32_e32 v3, v0
1633 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
1634 ; GFX900-NEXT: s_waitcnt vmcnt(0)
1635 ; GFX900-NEXT: s_setpc_b64 s[30:31]
1637 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__0_0_0_0:
1639 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1640 ; GFX90A-NEXT: ;;#ASMSTART
1641 ; GFX90A-NEXT: ; def v[0:3]
1642 ; GFX90A-NEXT: ;;#ASMEND
1643 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
1644 ; GFX90A-NEXT: v_mov_b32_e32 v1, v0
1645 ; GFX90A-NEXT: v_mov_b32_e32 v2, v0
1646 ; GFX90A-NEXT: v_mov_b32_e32 v3, v0
1647 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
1648 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
1649 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
1651 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__0_0_0_0:
1653 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1654 ; GFX940-NEXT: ;;#ASMSTART
1655 ; GFX940-NEXT: ; def v[0:3]
1656 ; GFX940-NEXT: ;;#ASMEND
1657 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
1658 ; GFX940-NEXT: v_mov_b32_e32 v1, v0
1659 ; GFX940-NEXT: v_mov_b32_e32 v2, v0
1660 ; GFX940-NEXT: v_mov_b32_e32 v3, v0
1661 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
1662 ; GFX940-NEXT: s_waitcnt vmcnt(0)
1663 ; GFX940-NEXT: s_setpc_b64 s[30:31]
1664 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
1665 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> zeroinitializer
1666 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
1670 define void @v_shuffle_v4p3_v4p3__1_0_0_0(ptr addrspace(1) inreg %ptr) {
1671 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__1_0_0_0:
1673 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1674 ; GFX900-NEXT: ;;#ASMSTART
1675 ; GFX900-NEXT: ; def v[0:3]
1676 ; GFX900-NEXT: ;;#ASMEND
1677 ; GFX900-NEXT: v_mov_b32_e32 v5, 0
1678 ; GFX900-NEXT: v_mov_b32_e32 v2, v0
1679 ; GFX900-NEXT: v_mov_b32_e32 v3, v0
1680 ; GFX900-NEXT: v_mov_b32_e32 v4, v0
1681 ; GFX900-NEXT: global_store_dwordx4 v5, v[1:4], s[16:17]
1682 ; GFX900-NEXT: s_waitcnt vmcnt(0)
1683 ; GFX900-NEXT: s_setpc_b64 s[30:31]
1685 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__1_0_0_0:
1687 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1688 ; GFX90A-NEXT: ;;#ASMSTART
1689 ; GFX90A-NEXT: ; def v[0:3]
1690 ; GFX90A-NEXT: ;;#ASMEND
1691 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
1692 ; GFX90A-NEXT: v_pk_mov_b32 v[2:3], v[0:1], v[0:1] op_sel:[1,0]
1693 ; GFX90A-NEXT: v_mov_b32_e32 v4, v0
1694 ; GFX90A-NEXT: v_mov_b32_e32 v5, v0
1695 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
1696 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
1697 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
1699 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__1_0_0_0:
1701 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1702 ; GFX940-NEXT: ;;#ASMSTART
1703 ; GFX940-NEXT: ; def v[0:3]
1704 ; GFX940-NEXT: ;;#ASMEND
1705 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
1706 ; GFX940-NEXT: v_pk_mov_b32 v[2:3], v[0:1], v[0:1] op_sel:[1,0]
1707 ; GFX940-NEXT: v_mov_b32_e32 v4, v0
1708 ; GFX940-NEXT: v_mov_b32_e32 v5, v0
1709 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
1710 ; GFX940-NEXT: s_waitcnt vmcnt(0)
1711 ; GFX940-NEXT: s_setpc_b64 s[30:31]
1712 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
1713 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 1, i32 0, i32 0, i32 0>
1714 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
1718 define void @v_shuffle_v4p3_v4p3__2_0_0_0(ptr addrspace(1) inreg %ptr) {
1719 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__2_0_0_0:
1721 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1722 ; GFX900-NEXT: ;;#ASMSTART
1723 ; GFX900-NEXT: ; def v[0:3]
1724 ; GFX900-NEXT: ;;#ASMEND
1725 ; GFX900-NEXT: v_mov_b32_e32 v5, 0
1726 ; GFX900-NEXT: v_mov_b32_e32 v1, v2
1727 ; GFX900-NEXT: v_mov_b32_e32 v2, v0
1728 ; GFX900-NEXT: v_mov_b32_e32 v3, v0
1729 ; GFX900-NEXT: v_mov_b32_e32 v4, v0
1730 ; GFX900-NEXT: global_store_dwordx4 v5, v[1:4], s[16:17]
1731 ; GFX900-NEXT: s_waitcnt vmcnt(0)
1732 ; GFX900-NEXT: s_setpc_b64 s[30:31]
1734 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__2_0_0_0:
1736 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1737 ; GFX90A-NEXT: ;;#ASMSTART
1738 ; GFX90A-NEXT: ; def v[0:3]
1739 ; GFX90A-NEXT: ;;#ASMEND
1740 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
1741 ; GFX90A-NEXT: v_mov_b32_e32 v3, v0
1742 ; GFX90A-NEXT: v_mov_b32_e32 v4, v0
1743 ; GFX90A-NEXT: v_mov_b32_e32 v5, v0
1744 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
1745 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
1746 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
1748 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__2_0_0_0:
1750 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1751 ; GFX940-NEXT: ;;#ASMSTART
1752 ; GFX940-NEXT: ; def v[0:3]
1753 ; GFX940-NEXT: ;;#ASMEND
1754 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
1755 ; GFX940-NEXT: v_mov_b32_e32 v3, v0
1756 ; GFX940-NEXT: v_mov_b32_e32 v4, v0
1757 ; GFX940-NEXT: v_mov_b32_e32 v5, v0
1758 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
1759 ; GFX940-NEXT: s_waitcnt vmcnt(0)
1760 ; GFX940-NEXT: s_setpc_b64 s[30:31]
1761 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
1762 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 2, i32 0, i32 0, i32 0>
1763 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
1767 define void @v_shuffle_v4p3_v4p3__3_0_0_0(ptr addrspace(1) inreg %ptr) {
1768 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__3_0_0_0:
1770 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1771 ; GFX900-NEXT: ;;#ASMSTART
1772 ; GFX900-NEXT: ; def v[0:3]
1773 ; GFX900-NEXT: ;;#ASMEND
1774 ; GFX900-NEXT: v_mov_b32_e32 v5, 0
1775 ; GFX900-NEXT: v_mov_b32_e32 v1, v3
1776 ; GFX900-NEXT: v_mov_b32_e32 v2, v0
1777 ; GFX900-NEXT: v_mov_b32_e32 v3, v0
1778 ; GFX900-NEXT: v_mov_b32_e32 v4, v0
1779 ; GFX900-NEXT: global_store_dwordx4 v5, v[1:4], s[16:17]
1780 ; GFX900-NEXT: s_waitcnt vmcnt(0)
1781 ; GFX900-NEXT: s_setpc_b64 s[30:31]
1783 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__3_0_0_0:
1785 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1786 ; GFX90A-NEXT: ;;#ASMSTART
1787 ; GFX90A-NEXT: ; def v[0:3]
1788 ; GFX90A-NEXT: ;;#ASMEND
1789 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
1790 ; GFX90A-NEXT: v_pk_mov_b32 v[2:3], v[2:3], v[0:1] op_sel:[1,0]
1791 ; GFX90A-NEXT: v_mov_b32_e32 v4, v0
1792 ; GFX90A-NEXT: v_mov_b32_e32 v5, v0
1793 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
1794 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
1795 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
1797 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__3_0_0_0:
1799 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1800 ; GFX940-NEXT: ;;#ASMSTART
1801 ; GFX940-NEXT: ; def v[0:3]
1802 ; GFX940-NEXT: ;;#ASMEND
1803 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
1804 ; GFX940-NEXT: v_pk_mov_b32 v[2:3], v[2:3], v[0:1] op_sel:[1,0]
1805 ; GFX940-NEXT: v_mov_b32_e32 v4, v0
1806 ; GFX940-NEXT: v_mov_b32_e32 v5, v0
1807 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
1808 ; GFX940-NEXT: s_waitcnt vmcnt(0)
1809 ; GFX940-NEXT: s_setpc_b64 s[30:31]
1810 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
1811 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 3, i32 0, i32 0, i32 0>
1812 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
1816 define void @v_shuffle_v4p3_v4p3__4_0_0_0(ptr addrspace(1) inreg %ptr) {
1817 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__4_0_0_0:
1819 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1820 ; GFX900-NEXT: ;;#ASMSTART
1821 ; GFX900-NEXT: ; def v[0:3]
1822 ; GFX900-NEXT: ;;#ASMEND
1823 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
1824 ; GFX900-NEXT: v_mov_b32_e32 v1, v0
1825 ; GFX900-NEXT: v_mov_b32_e32 v2, v0
1826 ; GFX900-NEXT: v_mov_b32_e32 v3, v0
1827 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
1828 ; GFX900-NEXT: s_waitcnt vmcnt(0)
1829 ; GFX900-NEXT: s_setpc_b64 s[30:31]
1831 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__4_0_0_0:
1833 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1834 ; GFX90A-NEXT: ;;#ASMSTART
1835 ; GFX90A-NEXT: ; def v[0:3]
1836 ; GFX90A-NEXT: ;;#ASMEND
1837 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
1838 ; GFX90A-NEXT: v_mov_b32_e32 v1, v0
1839 ; GFX90A-NEXT: v_mov_b32_e32 v2, v0
1840 ; GFX90A-NEXT: v_mov_b32_e32 v3, v0
1841 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
1842 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
1843 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
1845 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__4_0_0_0:
1847 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1848 ; GFX940-NEXT: ;;#ASMSTART
1849 ; GFX940-NEXT: ; def v[0:3]
1850 ; GFX940-NEXT: ;;#ASMEND
1851 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
1852 ; GFX940-NEXT: v_mov_b32_e32 v1, v0
1853 ; GFX940-NEXT: v_mov_b32_e32 v2, v0
1854 ; GFX940-NEXT: v_mov_b32_e32 v3, v0
1855 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
1856 ; GFX940-NEXT: s_waitcnt vmcnt(0)
1857 ; GFX940-NEXT: s_setpc_b64 s[30:31]
1858 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
1859 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 4, i32 0, i32 0, i32 0>
1860 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
1864 define void @v_shuffle_v4p3_v4p3__5_0_0_0(ptr addrspace(1) inreg %ptr) {
1865 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__5_0_0_0:
1867 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1868 ; GFX900-NEXT: ;;#ASMSTART
1869 ; GFX900-NEXT: ; def v[0:3]
1870 ; GFX900-NEXT: ;;#ASMEND
1871 ; GFX900-NEXT: ;;#ASMSTART
1872 ; GFX900-NEXT: ; def v[1:4]
1873 ; GFX900-NEXT: ;;#ASMEND
1874 ; GFX900-NEXT: v_mov_b32_e32 v5, 0
1875 ; GFX900-NEXT: v_mov_b32_e32 v1, v2
1876 ; GFX900-NEXT: v_mov_b32_e32 v2, v0
1877 ; GFX900-NEXT: v_mov_b32_e32 v3, v0
1878 ; GFX900-NEXT: v_mov_b32_e32 v4, v0
1879 ; GFX900-NEXT: global_store_dwordx4 v5, v[1:4], s[16:17]
1880 ; GFX900-NEXT: s_waitcnt vmcnt(0)
1881 ; GFX900-NEXT: s_setpc_b64 s[30:31]
1883 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__5_0_0_0:
1885 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1886 ; GFX90A-NEXT: ;;#ASMSTART
1887 ; GFX90A-NEXT: ; def v[0:3]
1888 ; GFX90A-NEXT: ;;#ASMEND
1889 ; GFX90A-NEXT: ;;#ASMSTART
1890 ; GFX90A-NEXT: ; def v[2:5]
1891 ; GFX90A-NEXT: ;;#ASMEND
1892 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
1893 ; GFX90A-NEXT: v_pk_mov_b32 v[2:3], v[2:3], v[0:1] op_sel:[1,0]
1894 ; GFX90A-NEXT: v_mov_b32_e32 v4, v0
1895 ; GFX90A-NEXT: v_mov_b32_e32 v5, v0
1896 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
1897 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
1898 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
1900 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__5_0_0_0:
1902 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1903 ; GFX940-NEXT: ;;#ASMSTART
1904 ; GFX940-NEXT: ; def v[0:3]
1905 ; GFX940-NEXT: ;;#ASMEND
1906 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
1907 ; GFX940-NEXT: ;;#ASMSTART
1908 ; GFX940-NEXT: ; def v[2:5]
1909 ; GFX940-NEXT: ;;#ASMEND
1910 ; GFX940-NEXT: s_nop 0
1911 ; GFX940-NEXT: v_pk_mov_b32 v[2:3], v[2:3], v[0:1] op_sel:[1,0]
1912 ; GFX940-NEXT: v_mov_b32_e32 v4, v0
1913 ; GFX940-NEXT: v_mov_b32_e32 v5, v0
1914 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
1915 ; GFX940-NEXT: s_waitcnt vmcnt(0)
1916 ; GFX940-NEXT: s_setpc_b64 s[30:31]
1917 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
1918 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
1919 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 5, i32 0, i32 0, i32 0>
1920 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
1924 define void @v_shuffle_v4p3_v4p3__6_0_0_0(ptr addrspace(1) inreg %ptr) {
1925 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__6_0_0_0:
1927 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1928 ; GFX900-NEXT: ;;#ASMSTART
1929 ; GFX900-NEXT: ; def v[0:3]
1930 ; GFX900-NEXT: ;;#ASMEND
1931 ; GFX900-NEXT: ;;#ASMSTART
1932 ; GFX900-NEXT: ; def v[1:4]
1933 ; GFX900-NEXT: ;;#ASMEND
1934 ; GFX900-NEXT: v_mov_b32_e32 v5, 0
1935 ; GFX900-NEXT: v_mov_b32_e32 v1, v3
1936 ; GFX900-NEXT: v_mov_b32_e32 v2, v0
1937 ; GFX900-NEXT: v_mov_b32_e32 v3, v0
1938 ; GFX900-NEXT: v_mov_b32_e32 v4, v0
1939 ; GFX900-NEXT: global_store_dwordx4 v5, v[1:4], s[16:17]
1940 ; GFX900-NEXT: s_waitcnt vmcnt(0)
1941 ; GFX900-NEXT: s_setpc_b64 s[30:31]
1943 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__6_0_0_0:
1945 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1946 ; GFX90A-NEXT: ;;#ASMSTART
1947 ; GFX90A-NEXT: ; def v[0:3]
1948 ; GFX90A-NEXT: ;;#ASMEND
1949 ; GFX90A-NEXT: ;;#ASMSTART
1950 ; GFX90A-NEXT: ; def v[2:5]
1951 ; GFX90A-NEXT: ;;#ASMEND
1952 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
1953 ; GFX90A-NEXT: v_mov_b32_e32 v2, v4
1954 ; GFX90A-NEXT: v_mov_b32_e32 v3, v0
1955 ; GFX90A-NEXT: v_mov_b32_e32 v4, v0
1956 ; GFX90A-NEXT: v_mov_b32_e32 v5, v0
1957 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
1958 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
1959 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
1961 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__6_0_0_0:
1963 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1964 ; GFX940-NEXT: ;;#ASMSTART
1965 ; GFX940-NEXT: ; def v[0:3]
1966 ; GFX940-NEXT: ;;#ASMEND
1967 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
1968 ; GFX940-NEXT: ;;#ASMSTART
1969 ; GFX940-NEXT: ; def v[2:5]
1970 ; GFX940-NEXT: ;;#ASMEND
1971 ; GFX940-NEXT: s_nop 0
1972 ; GFX940-NEXT: v_mov_b32_e32 v2, v4
1973 ; GFX940-NEXT: v_mov_b32_e32 v3, v0
1974 ; GFX940-NEXT: v_mov_b32_e32 v4, v0
1975 ; GFX940-NEXT: v_mov_b32_e32 v5, v0
1976 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
1977 ; GFX940-NEXT: s_waitcnt vmcnt(0)
1978 ; GFX940-NEXT: s_setpc_b64 s[30:31]
1979 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
1980 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
1981 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 6, i32 0, i32 0, i32 0>
1982 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
1986 define void @v_shuffle_v4p3_v4p3__7_0_0_0(ptr addrspace(1) inreg %ptr) {
1987 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_0_0_0:
1989 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
1990 ; GFX900-NEXT: ;;#ASMSTART
1991 ; GFX900-NEXT: ; def v[0:3]
1992 ; GFX900-NEXT: ;;#ASMEND
1993 ; GFX900-NEXT: ;;#ASMSTART
1994 ; GFX900-NEXT: ; def v[1:4]
1995 ; GFX900-NEXT: ;;#ASMEND
1996 ; GFX900-NEXT: v_mov_b32_e32 v5, 0
1997 ; GFX900-NEXT: v_mov_b32_e32 v1, v4
1998 ; GFX900-NEXT: v_mov_b32_e32 v2, v0
1999 ; GFX900-NEXT: v_mov_b32_e32 v3, v0
2000 ; GFX900-NEXT: v_mov_b32_e32 v4, v0
2001 ; GFX900-NEXT: global_store_dwordx4 v5, v[1:4], s[16:17]
2002 ; GFX900-NEXT: s_waitcnt vmcnt(0)
2003 ; GFX900-NEXT: s_setpc_b64 s[30:31]
2005 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_0_0_0:
2007 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2008 ; GFX90A-NEXT: ;;#ASMSTART
2009 ; GFX90A-NEXT: ; def v[0:3]
2010 ; GFX90A-NEXT: ;;#ASMEND
2011 ; GFX90A-NEXT: ;;#ASMSTART
2012 ; GFX90A-NEXT: ; def v[2:5]
2013 ; GFX90A-NEXT: ;;#ASMEND
2014 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
2015 ; GFX90A-NEXT: v_pk_mov_b32 v[2:3], v[4:5], v[0:1] op_sel:[1,0]
2016 ; GFX90A-NEXT: v_mov_b32_e32 v4, v0
2017 ; GFX90A-NEXT: v_mov_b32_e32 v5, v0
2018 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
2019 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
2020 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
2022 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_0_0_0:
2024 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2025 ; GFX940-NEXT: ;;#ASMSTART
2026 ; GFX940-NEXT: ; def v[0:3]
2027 ; GFX940-NEXT: ;;#ASMEND
2028 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
2029 ; GFX940-NEXT: ;;#ASMSTART
2030 ; GFX940-NEXT: ; def v[2:5]
2031 ; GFX940-NEXT: ;;#ASMEND
2032 ; GFX940-NEXT: s_nop 0
2033 ; GFX940-NEXT: v_pk_mov_b32 v[2:3], v[4:5], v[0:1] op_sel:[1,0]
2034 ; GFX940-NEXT: v_mov_b32_e32 v4, v0
2035 ; GFX940-NEXT: v_mov_b32_e32 v5, v0
2036 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
2037 ; GFX940-NEXT: s_waitcnt vmcnt(0)
2038 ; GFX940-NEXT: s_setpc_b64 s[30:31]
2039 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
2040 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
2041 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 0, i32 0, i32 0>
2042 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
2046 define void @v_shuffle_v4p3_v4p3__7_u_0_0(ptr addrspace(1) inreg %ptr) {
2047 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_u_0_0:
2049 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2050 ; GFX900-NEXT: ;;#ASMSTART
2051 ; GFX900-NEXT: ; def v[0:3]
2052 ; GFX900-NEXT: ;;#ASMEND
2053 ; GFX900-NEXT: ;;#ASMSTART
2054 ; GFX900-NEXT: ; def v[1:4]
2055 ; GFX900-NEXT: ;;#ASMEND
2056 ; GFX900-NEXT: v_mov_b32_e32 v5, 0
2057 ; GFX900-NEXT: v_mov_b32_e32 v1, v4
2058 ; GFX900-NEXT: v_mov_b32_e32 v3, v0
2059 ; GFX900-NEXT: v_mov_b32_e32 v4, v0
2060 ; GFX900-NEXT: global_store_dwordx4 v5, v[1:4], s[16:17]
2061 ; GFX900-NEXT: s_waitcnt vmcnt(0)
2062 ; GFX900-NEXT: s_setpc_b64 s[30:31]
2064 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_u_0_0:
2066 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2067 ; GFX90A-NEXT: ;;#ASMSTART
2068 ; GFX90A-NEXT: ; def v[0:3]
2069 ; GFX90A-NEXT: ;;#ASMEND
2070 ; GFX90A-NEXT: ;;#ASMSTART
2071 ; GFX90A-NEXT: ; def v[2:5]
2072 ; GFX90A-NEXT: ;;#ASMEND
2073 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
2074 ; GFX90A-NEXT: v_mov_b32_e32 v2, v5
2075 ; GFX90A-NEXT: v_mov_b32_e32 v4, v0
2076 ; GFX90A-NEXT: v_mov_b32_e32 v5, v0
2077 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
2078 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
2079 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
2081 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_u_0_0:
2083 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2084 ; GFX940-NEXT: ;;#ASMSTART
2085 ; GFX940-NEXT: ; def v[0:3]
2086 ; GFX940-NEXT: ;;#ASMEND
2087 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
2088 ; GFX940-NEXT: ;;#ASMSTART
2089 ; GFX940-NEXT: ; def v[2:5]
2090 ; GFX940-NEXT: ;;#ASMEND
2091 ; GFX940-NEXT: s_nop 0
2092 ; GFX940-NEXT: v_mov_b32_e32 v2, v5
2093 ; GFX940-NEXT: v_mov_b32_e32 v4, v0
2094 ; GFX940-NEXT: v_mov_b32_e32 v5, v0
2095 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
2096 ; GFX940-NEXT: s_waitcnt vmcnt(0)
2097 ; GFX940-NEXT: s_setpc_b64 s[30:31]
2098 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
2099 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
2100 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 poison, i32 0, i32 0>
2101 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
2105 define void @v_shuffle_v4p3_v4p3__7_1_0_0(ptr addrspace(1) inreg %ptr) {
2106 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_1_0_0:
2108 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2109 ; GFX900-NEXT: ;;#ASMSTART
2110 ; GFX900-NEXT: ; def v[0:3]
2111 ; GFX900-NEXT: ;;#ASMEND
2112 ; GFX900-NEXT: ;;#ASMSTART
2113 ; GFX900-NEXT: ; def v[2:5]
2114 ; GFX900-NEXT: ;;#ASMEND
2115 ; GFX900-NEXT: v_mov_b32_e32 v6, 0
2116 ; GFX900-NEXT: v_mov_b32_e32 v2, v5
2117 ; GFX900-NEXT: v_mov_b32_e32 v3, v1
2118 ; GFX900-NEXT: v_mov_b32_e32 v4, v0
2119 ; GFX900-NEXT: v_mov_b32_e32 v5, v0
2120 ; GFX900-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
2121 ; GFX900-NEXT: s_waitcnt vmcnt(0)
2122 ; GFX900-NEXT: s_setpc_b64 s[30:31]
2124 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_1_0_0:
2126 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2127 ; GFX90A-NEXT: ;;#ASMSTART
2128 ; GFX90A-NEXT: ; def v[0:3]
2129 ; GFX90A-NEXT: ;;#ASMEND
2130 ; GFX90A-NEXT: ;;#ASMSTART
2131 ; GFX90A-NEXT: ; def v[2:5]
2132 ; GFX90A-NEXT: ;;#ASMEND
2133 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
2134 ; GFX90A-NEXT: v_mov_b32_e32 v2, v5
2135 ; GFX90A-NEXT: v_mov_b32_e32 v3, v1
2136 ; GFX90A-NEXT: v_mov_b32_e32 v4, v0
2137 ; GFX90A-NEXT: v_mov_b32_e32 v5, v0
2138 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
2139 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
2140 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
2142 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_1_0_0:
2144 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2145 ; GFX940-NEXT: ;;#ASMSTART
2146 ; GFX940-NEXT: ; def v[0:3]
2147 ; GFX940-NEXT: ;;#ASMEND
2148 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
2149 ; GFX940-NEXT: ;;#ASMSTART
2150 ; GFX940-NEXT: ; def v[2:5]
2151 ; GFX940-NEXT: ;;#ASMEND
2152 ; GFX940-NEXT: s_nop 0
2153 ; GFX940-NEXT: v_mov_b32_e32 v2, v5
2154 ; GFX940-NEXT: v_mov_b32_e32 v3, v1
2155 ; GFX940-NEXT: v_mov_b32_e32 v4, v0
2156 ; GFX940-NEXT: v_mov_b32_e32 v5, v0
2157 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
2158 ; GFX940-NEXT: s_waitcnt vmcnt(0)
2159 ; GFX940-NEXT: s_setpc_b64 s[30:31]
2160 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
2161 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
2162 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 1, i32 0, i32 0>
2163 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
2167 define void @v_shuffle_v4p3_v4p3__7_2_0_0(ptr addrspace(1) inreg %ptr) {
2168 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_2_0_0:
2170 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2171 ; GFX900-NEXT: ;;#ASMSTART
2172 ; GFX900-NEXT: ; def v[0:3]
2173 ; GFX900-NEXT: ;;#ASMEND
2174 ; GFX900-NEXT: ;;#ASMSTART
2175 ; GFX900-NEXT: ; def v[3:6]
2176 ; GFX900-NEXT: ;;#ASMEND
2177 ; GFX900-NEXT: v_mov_b32_e32 v7, 0
2178 ; GFX900-NEXT: v_mov_b32_e32 v1, v6
2179 ; GFX900-NEXT: v_mov_b32_e32 v3, v0
2180 ; GFX900-NEXT: v_mov_b32_e32 v4, v0
2181 ; GFX900-NEXT: global_store_dwordx4 v7, v[1:4], s[16:17]
2182 ; GFX900-NEXT: s_waitcnt vmcnt(0)
2183 ; GFX900-NEXT: s_setpc_b64 s[30:31]
2185 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_2_0_0:
2187 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2188 ; GFX90A-NEXT: ;;#ASMSTART
2189 ; GFX90A-NEXT: ; def v[0:3]
2190 ; GFX90A-NEXT: ;;#ASMEND
2191 ; GFX90A-NEXT: ;;#ASMSTART
2192 ; GFX90A-NEXT: ; def v[4:7]
2193 ; GFX90A-NEXT: ;;#ASMEND
2194 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
2195 ; GFX90A-NEXT: v_pk_mov_b32 v[2:3], v[6:7], v[2:3] op_sel:[1,0]
2196 ; GFX90A-NEXT: v_mov_b32_e32 v4, v0
2197 ; GFX90A-NEXT: v_mov_b32_e32 v5, v0
2198 ; GFX90A-NEXT: global_store_dwordx4 v8, v[2:5], s[16:17]
2199 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
2200 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
2202 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_2_0_0:
2204 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2205 ; GFX940-NEXT: ;;#ASMSTART
2206 ; GFX940-NEXT: ; def v[0:3]
2207 ; GFX940-NEXT: ;;#ASMEND
2208 ; GFX940-NEXT: ;;#ASMSTART
2209 ; GFX940-NEXT: ; def v[4:7]
2210 ; GFX940-NEXT: ;;#ASMEND
2211 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
2212 ; GFX940-NEXT: v_pk_mov_b32 v[2:3], v[6:7], v[2:3] op_sel:[1,0]
2213 ; GFX940-NEXT: v_mov_b32_e32 v4, v0
2214 ; GFX940-NEXT: v_mov_b32_e32 v5, v0
2215 ; GFX940-NEXT: global_store_dwordx4 v8, v[2:5], s[0:1] sc0 sc1
2216 ; GFX940-NEXT: s_waitcnt vmcnt(0)
2217 ; GFX940-NEXT: s_setpc_b64 s[30:31]
2218 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
2219 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
2220 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 2, i32 0, i32 0>
2221 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
2225 define void @v_shuffle_v4p3_v4p3__7_3_0_0(ptr addrspace(1) inreg %ptr) {
2226 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_3_0_0:
2228 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2229 ; GFX900-NEXT: ;;#ASMSTART
2230 ; GFX900-NEXT: ; def v[0:3]
2231 ; GFX900-NEXT: ;;#ASMEND
2232 ; GFX900-NEXT: ;;#ASMSTART
2233 ; GFX900-NEXT: ; def v[4:7]
2234 ; GFX900-NEXT: ;;#ASMEND
2235 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
2236 ; GFX900-NEXT: v_mov_b32_e32 v1, v7
2237 ; GFX900-NEXT: v_mov_b32_e32 v2, v3
2238 ; GFX900-NEXT: v_mov_b32_e32 v3, v0
2239 ; GFX900-NEXT: v_mov_b32_e32 v4, v0
2240 ; GFX900-NEXT: global_store_dwordx4 v8, v[1:4], s[16:17]
2241 ; GFX900-NEXT: s_waitcnt vmcnt(0)
2242 ; GFX900-NEXT: s_setpc_b64 s[30:31]
2244 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_3_0_0:
2246 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2247 ; GFX90A-NEXT: ;;#ASMSTART
2248 ; GFX90A-NEXT: ; def v[0:3]
2249 ; GFX90A-NEXT: ;;#ASMEND
2250 ; GFX90A-NEXT: ;;#ASMSTART
2251 ; GFX90A-NEXT: ; def v[4:7]
2252 ; GFX90A-NEXT: ;;#ASMEND
2253 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
2254 ; GFX90A-NEXT: v_mov_b32_e32 v2, v7
2255 ; GFX90A-NEXT: v_mov_b32_e32 v4, v0
2256 ; GFX90A-NEXT: v_mov_b32_e32 v5, v0
2257 ; GFX90A-NEXT: global_store_dwordx4 v8, v[2:5], s[16:17]
2258 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
2259 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
2261 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_3_0_0:
2263 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2264 ; GFX940-NEXT: ;;#ASMSTART
2265 ; GFX940-NEXT: ; def v[0:3]
2266 ; GFX940-NEXT: ;;#ASMEND
2267 ; GFX940-NEXT: ;;#ASMSTART
2268 ; GFX940-NEXT: ; def v[4:7]
2269 ; GFX940-NEXT: ;;#ASMEND
2270 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
2271 ; GFX940-NEXT: v_mov_b32_e32 v2, v7
2272 ; GFX940-NEXT: v_mov_b32_e32 v4, v0
2273 ; GFX940-NEXT: v_mov_b32_e32 v5, v0
2274 ; GFX940-NEXT: global_store_dwordx4 v8, v[2:5], s[0:1] sc0 sc1
2275 ; GFX940-NEXT: s_waitcnt vmcnt(0)
2276 ; GFX940-NEXT: s_setpc_b64 s[30:31]
2277 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
2278 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
2279 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 3, i32 0, i32 0>
2280 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
2284 define void @v_shuffle_v4p3_v4p3__7_4_0_0(ptr addrspace(1) inreg %ptr) {
2285 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_4_0_0:
2287 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2288 ; GFX900-NEXT: ;;#ASMSTART
2289 ; GFX900-NEXT: ; def v[0:3]
2290 ; GFX900-NEXT: ;;#ASMEND
2291 ; GFX900-NEXT: ;;#ASMSTART
2292 ; GFX900-NEXT: ; def v[1:4]
2293 ; GFX900-NEXT: ;;#ASMEND
2294 ; GFX900-NEXT: v_mov_b32_e32 v6, 0
2295 ; GFX900-NEXT: v_mov_b32_e32 v2, v4
2296 ; GFX900-NEXT: v_mov_b32_e32 v3, v1
2297 ; GFX900-NEXT: v_mov_b32_e32 v4, v0
2298 ; GFX900-NEXT: v_mov_b32_e32 v5, v0
2299 ; GFX900-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
2300 ; GFX900-NEXT: s_waitcnt vmcnt(0)
2301 ; GFX900-NEXT: s_setpc_b64 s[30:31]
2303 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_4_0_0:
2305 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2306 ; GFX90A-NEXT: ;;#ASMSTART
2307 ; GFX90A-NEXT: ; def v[0:3]
2308 ; GFX90A-NEXT: ;;#ASMEND
2309 ; GFX90A-NEXT: ;;#ASMSTART
2310 ; GFX90A-NEXT: ; def v[2:5]
2311 ; GFX90A-NEXT: ;;#ASMEND
2312 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
2313 ; GFX90A-NEXT: v_pk_mov_b32 v[2:3], v[4:5], v[2:3] op_sel:[1,0]
2314 ; GFX90A-NEXT: v_mov_b32_e32 v4, v0
2315 ; GFX90A-NEXT: v_mov_b32_e32 v5, v0
2316 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
2317 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
2318 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
2320 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_4_0_0:
2322 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2323 ; GFX940-NEXT: ;;#ASMSTART
2324 ; GFX940-NEXT: ; def v[0:3]
2325 ; GFX940-NEXT: ;;#ASMEND
2326 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
2327 ; GFX940-NEXT: ;;#ASMSTART
2328 ; GFX940-NEXT: ; def v[2:5]
2329 ; GFX940-NEXT: ;;#ASMEND
2330 ; GFX940-NEXT: s_nop 0
2331 ; GFX940-NEXT: v_pk_mov_b32 v[2:3], v[4:5], v[2:3] op_sel:[1,0]
2332 ; GFX940-NEXT: v_mov_b32_e32 v4, v0
2333 ; GFX940-NEXT: v_mov_b32_e32 v5, v0
2334 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
2335 ; GFX940-NEXT: s_waitcnt vmcnt(0)
2336 ; GFX940-NEXT: s_setpc_b64 s[30:31]
2337 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
2338 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
2339 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 4, i32 0, i32 0>
2340 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
2344 define void @v_shuffle_v4p3_v4p3__7_5_0_0(ptr addrspace(1) inreg %ptr) {
2345 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_5_0_0:
2347 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2348 ; GFX900-NEXT: ;;#ASMSTART
2349 ; GFX900-NEXT: ; def v[0:3]
2350 ; GFX900-NEXT: ;;#ASMEND
2351 ; GFX900-NEXT: ;;#ASMSTART
2352 ; GFX900-NEXT: ; def v[1:4]
2353 ; GFX900-NEXT: ;;#ASMEND
2354 ; GFX900-NEXT: v_mov_b32_e32 v5, 0
2355 ; GFX900-NEXT: v_mov_b32_e32 v1, v4
2356 ; GFX900-NEXT: v_mov_b32_e32 v3, v0
2357 ; GFX900-NEXT: v_mov_b32_e32 v4, v0
2358 ; GFX900-NEXT: global_store_dwordx4 v5, v[1:4], s[16:17]
2359 ; GFX900-NEXT: s_waitcnt vmcnt(0)
2360 ; GFX900-NEXT: s_setpc_b64 s[30:31]
2362 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_5_0_0:
2364 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2365 ; GFX90A-NEXT: ;;#ASMSTART
2366 ; GFX90A-NEXT: ; def v[0:3]
2367 ; GFX90A-NEXT: ;;#ASMEND
2368 ; GFX90A-NEXT: ;;#ASMSTART
2369 ; GFX90A-NEXT: ; def v[2:5]
2370 ; GFX90A-NEXT: ;;#ASMEND
2371 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
2372 ; GFX90A-NEXT: v_mov_b32_e32 v2, v5
2373 ; GFX90A-NEXT: v_mov_b32_e32 v4, v0
2374 ; GFX90A-NEXT: v_mov_b32_e32 v5, v0
2375 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
2376 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
2377 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
2379 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_5_0_0:
2381 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2382 ; GFX940-NEXT: ;;#ASMSTART
2383 ; GFX940-NEXT: ; def v[0:3]
2384 ; GFX940-NEXT: ;;#ASMEND
2385 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
2386 ; GFX940-NEXT: ;;#ASMSTART
2387 ; GFX940-NEXT: ; def v[2:5]
2388 ; GFX940-NEXT: ;;#ASMEND
2389 ; GFX940-NEXT: s_nop 0
2390 ; GFX940-NEXT: v_mov_b32_e32 v2, v5
2391 ; GFX940-NEXT: v_mov_b32_e32 v4, v0
2392 ; GFX940-NEXT: v_mov_b32_e32 v5, v0
2393 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
2394 ; GFX940-NEXT: s_waitcnt vmcnt(0)
2395 ; GFX940-NEXT: s_setpc_b64 s[30:31]
2396 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
2397 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
2398 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 5, i32 0, i32 0>
2399 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
2403 define void @v_shuffle_v4p3_v4p3__7_6_0_0(ptr addrspace(1) inreg %ptr) {
2404 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_6_0_0:
2406 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2407 ; GFX900-NEXT: ;;#ASMSTART
2408 ; GFX900-NEXT: ; def v[0:3]
2409 ; GFX900-NEXT: ;;#ASMEND
2410 ; GFX900-NEXT: ;;#ASMSTART
2411 ; GFX900-NEXT: ; def v[1:4]
2412 ; GFX900-NEXT: ;;#ASMEND
2413 ; GFX900-NEXT: v_mov_b32_e32 v5, 0
2414 ; GFX900-NEXT: v_mov_b32_e32 v1, v4
2415 ; GFX900-NEXT: v_mov_b32_e32 v2, v3
2416 ; GFX900-NEXT: v_mov_b32_e32 v3, v0
2417 ; GFX900-NEXT: v_mov_b32_e32 v4, v0
2418 ; GFX900-NEXT: global_store_dwordx4 v5, v[1:4], s[16:17]
2419 ; GFX900-NEXT: s_waitcnt vmcnt(0)
2420 ; GFX900-NEXT: s_setpc_b64 s[30:31]
2422 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_6_0_0:
2424 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2425 ; GFX90A-NEXT: ;;#ASMSTART
2426 ; GFX90A-NEXT: ; def v[0:3]
2427 ; GFX90A-NEXT: ;;#ASMEND
2428 ; GFX90A-NEXT: ;;#ASMSTART
2429 ; GFX90A-NEXT: ; def v[2:5]
2430 ; GFX90A-NEXT: ;;#ASMEND
2431 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
2432 ; GFX90A-NEXT: v_pk_mov_b32 v[2:3], v[4:5], v[4:5] op_sel:[1,0]
2433 ; GFX90A-NEXT: v_mov_b32_e32 v4, v0
2434 ; GFX90A-NEXT: v_mov_b32_e32 v5, v0
2435 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
2436 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
2437 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
2439 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_6_0_0:
2441 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2442 ; GFX940-NEXT: ;;#ASMSTART
2443 ; GFX940-NEXT: ; def v[0:3]
2444 ; GFX940-NEXT: ;;#ASMEND
2445 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
2446 ; GFX940-NEXT: ;;#ASMSTART
2447 ; GFX940-NEXT: ; def v[2:5]
2448 ; GFX940-NEXT: ;;#ASMEND
2449 ; GFX940-NEXT: s_nop 0
2450 ; GFX940-NEXT: v_pk_mov_b32 v[2:3], v[4:5], v[4:5] op_sel:[1,0]
2451 ; GFX940-NEXT: v_mov_b32_e32 v4, v0
2452 ; GFX940-NEXT: v_mov_b32_e32 v5, v0
2453 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
2454 ; GFX940-NEXT: s_waitcnt vmcnt(0)
2455 ; GFX940-NEXT: s_setpc_b64 s[30:31]
2456 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
2457 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
2458 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 6, i32 0, i32 0>
2459 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
2463 define void @v_shuffle_v4p3_v4p3__7_7_0_0(ptr addrspace(1) inreg %ptr) {
2464 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_0_0:
2466 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2467 ; GFX900-NEXT: ;;#ASMSTART
2468 ; GFX900-NEXT: ; def v[0:3]
2469 ; GFX900-NEXT: ;;#ASMEND
2470 ; GFX900-NEXT: ;;#ASMSTART
2471 ; GFX900-NEXT: ; def v[1:4]
2472 ; GFX900-NEXT: ;;#ASMEND
2473 ; GFX900-NEXT: v_mov_b32_e32 v5, 0
2474 ; GFX900-NEXT: v_mov_b32_e32 v1, v4
2475 ; GFX900-NEXT: v_mov_b32_e32 v2, v4
2476 ; GFX900-NEXT: v_mov_b32_e32 v3, v0
2477 ; GFX900-NEXT: v_mov_b32_e32 v4, v0
2478 ; GFX900-NEXT: global_store_dwordx4 v5, v[1:4], s[16:17]
2479 ; GFX900-NEXT: s_waitcnt vmcnt(0)
2480 ; GFX900-NEXT: s_setpc_b64 s[30:31]
2482 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_0_0:
2484 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2485 ; GFX90A-NEXT: ;;#ASMSTART
2486 ; GFX90A-NEXT: ; def v[0:3]
2487 ; GFX90A-NEXT: ;;#ASMEND
2488 ; GFX90A-NEXT: ;;#ASMSTART
2489 ; GFX90A-NEXT: ; def v[2:5]
2490 ; GFX90A-NEXT: ;;#ASMEND
2491 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
2492 ; GFX90A-NEXT: v_mov_b32_e32 v2, v5
2493 ; GFX90A-NEXT: v_mov_b32_e32 v3, v5
2494 ; GFX90A-NEXT: v_mov_b32_e32 v4, v0
2495 ; GFX90A-NEXT: v_mov_b32_e32 v5, v0
2496 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
2497 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
2498 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
2500 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_0_0:
2502 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2503 ; GFX940-NEXT: ;;#ASMSTART
2504 ; GFX940-NEXT: ; def v[0:3]
2505 ; GFX940-NEXT: ;;#ASMEND
2506 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
2507 ; GFX940-NEXT: ;;#ASMSTART
2508 ; GFX940-NEXT: ; def v[2:5]
2509 ; GFX940-NEXT: ;;#ASMEND
2510 ; GFX940-NEXT: s_nop 0
2511 ; GFX940-NEXT: v_mov_b32_e32 v2, v5
2512 ; GFX940-NEXT: v_mov_b32_e32 v3, v5
2513 ; GFX940-NEXT: v_mov_b32_e32 v4, v0
2514 ; GFX940-NEXT: v_mov_b32_e32 v5, v0
2515 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
2516 ; GFX940-NEXT: s_waitcnt vmcnt(0)
2517 ; GFX940-NEXT: s_setpc_b64 s[30:31]
2518 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
2519 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
2520 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 0, i32 0>
2521 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
2525 define void @v_shuffle_v4p3_v4p3__7_7_u_0(ptr addrspace(1) inreg %ptr) {
2526 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_u_0:
2528 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2529 ; GFX900-NEXT: ;;#ASMSTART
2530 ; GFX900-NEXT: ; def v[0:3]
2531 ; GFX900-NEXT: ;;#ASMEND
2532 ; GFX900-NEXT: ;;#ASMSTART
2533 ; GFX900-NEXT: ; def v[1:4]
2534 ; GFX900-NEXT: ;;#ASMEND
2535 ; GFX900-NEXT: v_mov_b32_e32 v5, 0
2536 ; GFX900-NEXT: v_mov_b32_e32 v1, v4
2537 ; GFX900-NEXT: v_mov_b32_e32 v2, v4
2538 ; GFX900-NEXT: v_mov_b32_e32 v4, v0
2539 ; GFX900-NEXT: global_store_dwordx4 v5, v[1:4], s[16:17]
2540 ; GFX900-NEXT: s_waitcnt vmcnt(0)
2541 ; GFX900-NEXT: s_setpc_b64 s[30:31]
2543 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_u_0:
2545 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2546 ; GFX90A-NEXT: ;;#ASMSTART
2547 ; GFX90A-NEXT: ; def v[0:3]
2548 ; GFX90A-NEXT: ;;#ASMEND
2549 ; GFX90A-NEXT: ;;#ASMSTART
2550 ; GFX90A-NEXT: ; def v[2:5]
2551 ; GFX90A-NEXT: ;;#ASMEND
2552 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
2553 ; GFX90A-NEXT: v_mov_b32_e32 v2, v5
2554 ; GFX90A-NEXT: v_mov_b32_e32 v3, v5
2555 ; GFX90A-NEXT: v_mov_b32_e32 v5, v0
2556 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
2557 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
2558 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
2560 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_u_0:
2562 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2563 ; GFX940-NEXT: ;;#ASMSTART
2564 ; GFX940-NEXT: ; def v[0:3]
2565 ; GFX940-NEXT: ;;#ASMEND
2566 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
2567 ; GFX940-NEXT: ;;#ASMSTART
2568 ; GFX940-NEXT: ; def v[2:5]
2569 ; GFX940-NEXT: ;;#ASMEND
2570 ; GFX940-NEXT: s_nop 0
2571 ; GFX940-NEXT: v_mov_b32_e32 v2, v5
2572 ; GFX940-NEXT: v_mov_b32_e32 v3, v5
2573 ; GFX940-NEXT: v_mov_b32_e32 v5, v0
2574 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
2575 ; GFX940-NEXT: s_waitcnt vmcnt(0)
2576 ; GFX940-NEXT: s_setpc_b64 s[30:31]
2577 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
2578 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
2579 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 poison, i32 0>
2580 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
2584 define void @v_shuffle_v4p3_v4p3__7_7_1_0(ptr addrspace(1) inreg %ptr) {
2585 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_1_0:
2587 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2588 ; GFX900-NEXT: ;;#ASMSTART
2589 ; GFX900-NEXT: ; def v[0:3]
2590 ; GFX900-NEXT: ;;#ASMEND
2591 ; GFX900-NEXT: ;;#ASMSTART
2592 ; GFX900-NEXT: ; def v[2:5]
2593 ; GFX900-NEXT: ;;#ASMEND
2594 ; GFX900-NEXT: v_mov_b32_e32 v6, 0
2595 ; GFX900-NEXT: v_mov_b32_e32 v2, v5
2596 ; GFX900-NEXT: v_mov_b32_e32 v3, v5
2597 ; GFX900-NEXT: v_mov_b32_e32 v4, v1
2598 ; GFX900-NEXT: v_mov_b32_e32 v5, v0
2599 ; GFX900-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
2600 ; GFX900-NEXT: s_waitcnt vmcnt(0)
2601 ; GFX900-NEXT: s_setpc_b64 s[30:31]
2603 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_1_0:
2605 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2606 ; GFX90A-NEXT: ;;#ASMSTART
2607 ; GFX90A-NEXT: ; def v[0:3]
2608 ; GFX90A-NEXT: ;;#ASMEND
2609 ; GFX90A-NEXT: ;;#ASMSTART
2610 ; GFX90A-NEXT: ; def v[2:5]
2611 ; GFX90A-NEXT: ;;#ASMEND
2612 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
2613 ; GFX90A-NEXT: v_pk_mov_b32 v[2:3], v[0:1], v[0:1] op_sel:[1,0]
2614 ; GFX90A-NEXT: v_mov_b32_e32 v0, v5
2615 ; GFX90A-NEXT: v_mov_b32_e32 v1, v5
2616 ; GFX90A-NEXT: global_store_dwordx4 v6, v[0:3], s[16:17]
2617 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
2618 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
2620 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_1_0:
2622 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2623 ; GFX940-NEXT: ;;#ASMSTART
2624 ; GFX940-NEXT: ; def v[0:3]
2625 ; GFX940-NEXT: ;;#ASMEND
2626 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
2627 ; GFX940-NEXT: ;;#ASMSTART
2628 ; GFX940-NEXT: ; def v[2:5]
2629 ; GFX940-NEXT: ;;#ASMEND
2630 ; GFX940-NEXT: s_nop 0
2631 ; GFX940-NEXT: v_pk_mov_b32 v[2:3], v[0:1], v[0:1] op_sel:[1,0]
2632 ; GFX940-NEXT: v_mov_b32_e32 v0, v5
2633 ; GFX940-NEXT: v_mov_b32_e32 v1, v5
2634 ; GFX940-NEXT: global_store_dwordx4 v6, v[0:3], s[0:1] sc0 sc1
2635 ; GFX940-NEXT: s_waitcnt vmcnt(0)
2636 ; GFX940-NEXT: s_setpc_b64 s[30:31]
2637 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
2638 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
2639 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 1, i32 0>
2640 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
2644 define void @v_shuffle_v4p3_v4p3__7_7_2_0(ptr addrspace(1) inreg %ptr) {
2645 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_2_0:
2647 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2648 ; GFX900-NEXT: ;;#ASMSTART
2649 ; GFX900-NEXT: ; def v[0:3]
2650 ; GFX900-NEXT: ;;#ASMEND
2651 ; GFX900-NEXT: ;;#ASMSTART
2652 ; GFX900-NEXT: ; def v[3:6]
2653 ; GFX900-NEXT: ;;#ASMEND
2654 ; GFX900-NEXT: v_mov_b32_e32 v7, 0
2655 ; GFX900-NEXT: v_mov_b32_e32 v3, v6
2656 ; GFX900-NEXT: v_mov_b32_e32 v4, v6
2657 ; GFX900-NEXT: v_mov_b32_e32 v5, v2
2658 ; GFX900-NEXT: v_mov_b32_e32 v6, v0
2659 ; GFX900-NEXT: global_store_dwordx4 v7, v[3:6], s[16:17]
2660 ; GFX900-NEXT: s_waitcnt vmcnt(0)
2661 ; GFX900-NEXT: s_setpc_b64 s[30:31]
2663 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_2_0:
2665 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2666 ; GFX90A-NEXT: ;;#ASMSTART
2667 ; GFX90A-NEXT: ; def v[4:7]
2668 ; GFX90A-NEXT: ;;#ASMEND
2669 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
2670 ; GFX90A-NEXT: ;;#ASMSTART
2671 ; GFX90A-NEXT: ; def v[0:3]
2672 ; GFX90A-NEXT: ;;#ASMEND
2673 ; GFX90A-NEXT: v_mov_b32_e32 v4, v7
2674 ; GFX90A-NEXT: v_mov_b32_e32 v5, v7
2675 ; GFX90A-NEXT: v_mov_b32_e32 v6, v2
2676 ; GFX90A-NEXT: v_mov_b32_e32 v7, v0
2677 ; GFX90A-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
2678 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
2679 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
2681 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_2_0:
2683 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2684 ; GFX940-NEXT: ;;#ASMSTART
2685 ; GFX940-NEXT: ; def v[4:7]
2686 ; GFX940-NEXT: ;;#ASMEND
2687 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
2688 ; GFX940-NEXT: ;;#ASMSTART
2689 ; GFX940-NEXT: ; def v[0:3]
2690 ; GFX940-NEXT: ;;#ASMEND
2691 ; GFX940-NEXT: v_mov_b32_e32 v4, v7
2692 ; GFX940-NEXT: v_mov_b32_e32 v5, v7
2693 ; GFX940-NEXT: v_mov_b32_e32 v6, v2
2694 ; GFX940-NEXT: v_mov_b32_e32 v7, v0
2695 ; GFX940-NEXT: global_store_dwordx4 v8, v[4:7], s[0:1] sc0 sc1
2696 ; GFX940-NEXT: s_waitcnt vmcnt(0)
2697 ; GFX940-NEXT: s_setpc_b64 s[30:31]
2698 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
2699 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
2700 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 2, i32 0>
2701 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
2705 define void @v_shuffle_v4p3_v4p3__7_7_3_0(ptr addrspace(1) inreg %ptr) {
2706 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_3_0:
2708 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2709 ; GFX900-NEXT: ;;#ASMSTART
2710 ; GFX900-NEXT: ; def v[0:3]
2711 ; GFX900-NEXT: ;;#ASMEND
2712 ; GFX900-NEXT: ;;#ASMSTART
2713 ; GFX900-NEXT: ; def v[4:7]
2714 ; GFX900-NEXT: ;;#ASMEND
2715 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
2716 ; GFX900-NEXT: v_mov_b32_e32 v1, v7
2717 ; GFX900-NEXT: v_mov_b32_e32 v2, v7
2718 ; GFX900-NEXT: v_mov_b32_e32 v4, v0
2719 ; GFX900-NEXT: global_store_dwordx4 v8, v[1:4], s[16:17]
2720 ; GFX900-NEXT: s_waitcnt vmcnt(0)
2721 ; GFX900-NEXT: s_setpc_b64 s[30:31]
2723 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_3_0:
2725 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2726 ; GFX90A-NEXT: ;;#ASMSTART
2727 ; GFX90A-NEXT: ; def v[0:3]
2728 ; GFX90A-NEXT: ;;#ASMEND
2729 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
2730 ; GFX90A-NEXT: ;;#ASMSTART
2731 ; GFX90A-NEXT: ; def v[4:7]
2732 ; GFX90A-NEXT: ;;#ASMEND
2733 ; GFX90A-NEXT: v_pk_mov_b32 v[2:3], v[2:3], v[0:1] op_sel:[1,0]
2734 ; GFX90A-NEXT: v_mov_b32_e32 v0, v7
2735 ; GFX90A-NEXT: v_mov_b32_e32 v1, v7
2736 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
2737 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
2738 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
2740 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_3_0:
2742 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2743 ; GFX940-NEXT: ;;#ASMSTART
2744 ; GFX940-NEXT: ; def v[0:3]
2745 ; GFX940-NEXT: ;;#ASMEND
2746 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
2747 ; GFX940-NEXT: ;;#ASMSTART
2748 ; GFX940-NEXT: ; def v[4:7]
2749 ; GFX940-NEXT: ;;#ASMEND
2750 ; GFX940-NEXT: v_pk_mov_b32 v[2:3], v[2:3], v[0:1] op_sel:[1,0]
2751 ; GFX940-NEXT: v_mov_b32_e32 v0, v7
2752 ; GFX940-NEXT: v_mov_b32_e32 v1, v7
2753 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
2754 ; GFX940-NEXT: s_waitcnt vmcnt(0)
2755 ; GFX940-NEXT: s_setpc_b64 s[30:31]
2756 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
2757 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
2758 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 3, i32 0>
2759 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
2763 define void @v_shuffle_v4p3_v4p3__7_7_4_0(ptr addrspace(1) inreg %ptr) {
2764 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_4_0:
2766 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2767 ; GFX900-NEXT: ;;#ASMSTART
2768 ; GFX900-NEXT: ; def v[0:3]
2769 ; GFX900-NEXT: ;;#ASMEND
2770 ; GFX900-NEXT: ;;#ASMSTART
2771 ; GFX900-NEXT: ; def v[1:4]
2772 ; GFX900-NEXT: ;;#ASMEND
2773 ; GFX900-NEXT: v_mov_b32_e32 v6, 0
2774 ; GFX900-NEXT: v_mov_b32_e32 v2, v4
2775 ; GFX900-NEXT: v_mov_b32_e32 v3, v4
2776 ; GFX900-NEXT: v_mov_b32_e32 v4, v1
2777 ; GFX900-NEXT: v_mov_b32_e32 v5, v0
2778 ; GFX900-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
2779 ; GFX900-NEXT: s_waitcnt vmcnt(0)
2780 ; GFX900-NEXT: s_setpc_b64 s[30:31]
2782 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_4_0:
2784 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2785 ; GFX90A-NEXT: ;;#ASMSTART
2786 ; GFX90A-NEXT: ; def v[0:3]
2787 ; GFX90A-NEXT: ;;#ASMEND
2788 ; GFX90A-NEXT: ;;#ASMSTART
2789 ; GFX90A-NEXT: ; def v[2:5]
2790 ; GFX90A-NEXT: ;;#ASMEND
2791 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
2792 ; GFX90A-NEXT: v_mov_b32_e32 v4, v5
2793 ; GFX90A-NEXT: v_mov_b32_e32 v6, v2
2794 ; GFX90A-NEXT: v_mov_b32_e32 v7, v0
2795 ; GFX90A-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
2796 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
2797 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
2799 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_4_0:
2801 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2802 ; GFX940-NEXT: ;;#ASMSTART
2803 ; GFX940-NEXT: ; def v[0:3]
2804 ; GFX940-NEXT: ;;#ASMEND
2805 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
2806 ; GFX940-NEXT: ;;#ASMSTART
2807 ; GFX940-NEXT: ; def v[2:5]
2808 ; GFX940-NEXT: ;;#ASMEND
2809 ; GFX940-NEXT: v_mov_b32_e32 v7, v0
2810 ; GFX940-NEXT: v_mov_b32_e32 v4, v5
2811 ; GFX940-NEXT: v_mov_b32_e32 v6, v2
2812 ; GFX940-NEXT: global_store_dwordx4 v8, v[4:7], s[0:1] sc0 sc1
2813 ; GFX940-NEXT: s_waitcnt vmcnt(0)
2814 ; GFX940-NEXT: s_setpc_b64 s[30:31]
2815 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
2816 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
2817 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 4, i32 0>
2818 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
2822 define void @v_shuffle_v4p3_v4p3__7_7_5_0(ptr addrspace(1) inreg %ptr) {
2823 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_5_0:
2825 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2826 ; GFX900-NEXT: ;;#ASMSTART
2827 ; GFX900-NEXT: ; def v[0:3]
2828 ; GFX900-NEXT: ;;#ASMEND
2829 ; GFX900-NEXT: ;;#ASMSTART
2830 ; GFX900-NEXT: ; def v[1:4]
2831 ; GFX900-NEXT: ;;#ASMEND
2832 ; GFX900-NEXT: v_mov_b32_e32 v7, 0
2833 ; GFX900-NEXT: v_mov_b32_e32 v3, v4
2834 ; GFX900-NEXT: v_mov_b32_e32 v5, v2
2835 ; GFX900-NEXT: v_mov_b32_e32 v6, v0
2836 ; GFX900-NEXT: global_store_dwordx4 v7, v[3:6], s[16:17]
2837 ; GFX900-NEXT: s_waitcnt vmcnt(0)
2838 ; GFX900-NEXT: s_setpc_b64 s[30:31]
2840 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_5_0:
2842 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2843 ; GFX90A-NEXT: ;;#ASMSTART
2844 ; GFX90A-NEXT: ; def v[0:3]
2845 ; GFX90A-NEXT: ;;#ASMEND
2846 ; GFX90A-NEXT: ;;#ASMSTART
2847 ; GFX90A-NEXT: ; def v[2:5]
2848 ; GFX90A-NEXT: ;;#ASMEND
2849 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
2850 ; GFX90A-NEXT: v_pk_mov_b32 v[2:3], v[2:3], v[0:1] op_sel:[1,0]
2851 ; GFX90A-NEXT: v_mov_b32_e32 v0, v5
2852 ; GFX90A-NEXT: v_mov_b32_e32 v1, v5
2853 ; GFX90A-NEXT: global_store_dwordx4 v6, v[0:3], s[16:17]
2854 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
2855 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
2857 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_5_0:
2859 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2860 ; GFX940-NEXT: ;;#ASMSTART
2861 ; GFX940-NEXT: ; def v[0:3]
2862 ; GFX940-NEXT: ;;#ASMEND
2863 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
2864 ; GFX940-NEXT: ;;#ASMSTART
2865 ; GFX940-NEXT: ; def v[2:5]
2866 ; GFX940-NEXT: ;;#ASMEND
2867 ; GFX940-NEXT: s_nop 0
2868 ; GFX940-NEXT: v_pk_mov_b32 v[2:3], v[2:3], v[0:1] op_sel:[1,0]
2869 ; GFX940-NEXT: v_mov_b32_e32 v0, v5
2870 ; GFX940-NEXT: v_mov_b32_e32 v1, v5
2871 ; GFX940-NEXT: global_store_dwordx4 v6, v[0:3], s[0:1] sc0 sc1
2872 ; GFX940-NEXT: s_waitcnt vmcnt(0)
2873 ; GFX940-NEXT: s_setpc_b64 s[30:31]
2874 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
2875 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
2876 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 5, i32 0>
2877 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
2881 define void @v_shuffle_v4p3_v4p3__7_7_6_0(ptr addrspace(1) inreg %ptr) {
2882 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_6_0:
2884 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2885 ; GFX900-NEXT: ;;#ASMSTART
2886 ; GFX900-NEXT: ; def v[0:3]
2887 ; GFX900-NEXT: ;;#ASMEND
2888 ; GFX900-NEXT: ;;#ASMSTART
2889 ; GFX900-NEXT: ; def v[1:4]
2890 ; GFX900-NEXT: ;;#ASMEND
2891 ; GFX900-NEXT: v_mov_b32_e32 v5, 0
2892 ; GFX900-NEXT: v_mov_b32_e32 v1, v4
2893 ; GFX900-NEXT: v_mov_b32_e32 v2, v4
2894 ; GFX900-NEXT: v_mov_b32_e32 v4, v0
2895 ; GFX900-NEXT: global_store_dwordx4 v5, v[1:4], s[16:17]
2896 ; GFX900-NEXT: s_waitcnt vmcnt(0)
2897 ; GFX900-NEXT: s_setpc_b64 s[30:31]
2899 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_6_0:
2901 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2902 ; GFX90A-NEXT: ;;#ASMSTART
2903 ; GFX90A-NEXT: ; def v[0:3]
2904 ; GFX90A-NEXT: ;;#ASMEND
2905 ; GFX90A-NEXT: ;;#ASMSTART
2906 ; GFX90A-NEXT: ; def v[2:5]
2907 ; GFX90A-NEXT: ;;#ASMEND
2908 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
2909 ; GFX90A-NEXT: v_mov_b32_e32 v2, v5
2910 ; GFX90A-NEXT: v_mov_b32_e32 v3, v5
2911 ; GFX90A-NEXT: v_mov_b32_e32 v5, v0
2912 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
2913 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
2914 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
2916 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_6_0:
2918 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2919 ; GFX940-NEXT: ;;#ASMSTART
2920 ; GFX940-NEXT: ; def v[0:3]
2921 ; GFX940-NEXT: ;;#ASMEND
2922 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
2923 ; GFX940-NEXT: ;;#ASMSTART
2924 ; GFX940-NEXT: ; def v[2:5]
2925 ; GFX940-NEXT: ;;#ASMEND
2926 ; GFX940-NEXT: s_nop 0
2927 ; GFX940-NEXT: v_mov_b32_e32 v2, v5
2928 ; GFX940-NEXT: v_mov_b32_e32 v3, v5
2929 ; GFX940-NEXT: v_mov_b32_e32 v5, v0
2930 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
2931 ; GFX940-NEXT: s_waitcnt vmcnt(0)
2932 ; GFX940-NEXT: s_setpc_b64 s[30:31]
2933 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
2934 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
2935 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 6, i32 0>
2936 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
2940 define void @v_shuffle_v4p3_v4p3__u_1_1_1(ptr addrspace(1) inreg %ptr) {
2941 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__u_1_1_1:
2943 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2944 ; GFX900-NEXT: ;;#ASMSTART
2945 ; GFX900-NEXT: ; def v[0:3]
2946 ; GFX900-NEXT: ;;#ASMEND
2947 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
2948 ; GFX900-NEXT: v_mov_b32_e32 v2, v1
2949 ; GFX900-NEXT: v_mov_b32_e32 v3, v1
2950 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
2951 ; GFX900-NEXT: s_waitcnt vmcnt(0)
2952 ; GFX900-NEXT: s_setpc_b64 s[30:31]
2954 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__u_1_1_1:
2956 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2957 ; GFX90A-NEXT: ;;#ASMSTART
2958 ; GFX90A-NEXT: ; def v[0:3]
2959 ; GFX90A-NEXT: ;;#ASMEND
2960 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
2961 ; GFX90A-NEXT: v_mov_b32_e32 v2, v1
2962 ; GFX90A-NEXT: v_mov_b32_e32 v3, v1
2963 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
2964 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
2965 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
2967 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__u_1_1_1:
2969 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2970 ; GFX940-NEXT: ;;#ASMSTART
2971 ; GFX940-NEXT: ; def v[0:3]
2972 ; GFX940-NEXT: ;;#ASMEND
2973 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
2974 ; GFX940-NEXT: v_mov_b32_e32 v2, v1
2975 ; GFX940-NEXT: v_mov_b32_e32 v3, v1
2976 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
2977 ; GFX940-NEXT: s_waitcnt vmcnt(0)
2978 ; GFX940-NEXT: s_setpc_b64 s[30:31]
2979 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
2980 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 poison, i32 1, i32 1, i32 1>
2981 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
2985 define void @v_shuffle_v4p3_v4p3__0_1_1_1(ptr addrspace(1) inreg %ptr) {
2986 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__0_1_1_1:
2988 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2989 ; GFX900-NEXT: ;;#ASMSTART
2990 ; GFX900-NEXT: ; def v[0:3]
2991 ; GFX900-NEXT: ;;#ASMEND
2992 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
2993 ; GFX900-NEXT: v_mov_b32_e32 v2, v1
2994 ; GFX900-NEXT: v_mov_b32_e32 v3, v1
2995 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
2996 ; GFX900-NEXT: s_waitcnt vmcnt(0)
2997 ; GFX900-NEXT: s_setpc_b64 s[30:31]
2999 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__0_1_1_1:
3001 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3002 ; GFX90A-NEXT: ;;#ASMSTART
3003 ; GFX90A-NEXT: ; def v[0:3]
3004 ; GFX90A-NEXT: ;;#ASMEND
3005 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
3006 ; GFX90A-NEXT: v_mov_b32_e32 v2, v1
3007 ; GFX90A-NEXT: v_mov_b32_e32 v3, v1
3008 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
3009 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
3010 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
3012 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__0_1_1_1:
3014 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3015 ; GFX940-NEXT: ;;#ASMSTART
3016 ; GFX940-NEXT: ; def v[0:3]
3017 ; GFX940-NEXT: ;;#ASMEND
3018 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
3019 ; GFX940-NEXT: v_mov_b32_e32 v2, v1
3020 ; GFX940-NEXT: v_mov_b32_e32 v3, v1
3021 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
3022 ; GFX940-NEXT: s_waitcnt vmcnt(0)
3023 ; GFX940-NEXT: s_setpc_b64 s[30:31]
3024 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
3025 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 0, i32 1, i32 1, i32 1>
3026 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
3030 define void @v_shuffle_v4p3_v4p3__1_1_1_1(ptr addrspace(1) inreg %ptr) {
3031 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__1_1_1_1:
3033 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3034 ; GFX900-NEXT: ;;#ASMSTART
3035 ; GFX900-NEXT: ; def v[0:3]
3036 ; GFX900-NEXT: ;;#ASMEND
3037 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
3038 ; GFX900-NEXT: v_mov_b32_e32 v0, v1
3039 ; GFX900-NEXT: v_mov_b32_e32 v2, v1
3040 ; GFX900-NEXT: v_mov_b32_e32 v3, v1
3041 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
3042 ; GFX900-NEXT: s_waitcnt vmcnt(0)
3043 ; GFX900-NEXT: s_setpc_b64 s[30:31]
3045 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__1_1_1_1:
3047 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3048 ; GFX90A-NEXT: ;;#ASMSTART
3049 ; GFX90A-NEXT: ; def v[0:3]
3050 ; GFX90A-NEXT: ;;#ASMEND
3051 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
3052 ; GFX90A-NEXT: v_mov_b32_e32 v0, v1
3053 ; GFX90A-NEXT: v_mov_b32_e32 v2, v1
3054 ; GFX90A-NEXT: v_mov_b32_e32 v3, v1
3055 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
3056 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
3057 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
3059 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__1_1_1_1:
3061 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3062 ; GFX940-NEXT: ;;#ASMSTART
3063 ; GFX940-NEXT: ; def v[0:3]
3064 ; GFX940-NEXT: ;;#ASMEND
3065 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
3066 ; GFX940-NEXT: v_mov_b32_e32 v0, v1
3067 ; GFX940-NEXT: v_mov_b32_e32 v2, v1
3068 ; GFX940-NEXT: v_mov_b32_e32 v3, v1
3069 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
3070 ; GFX940-NEXT: s_waitcnt vmcnt(0)
3071 ; GFX940-NEXT: s_setpc_b64 s[30:31]
3072 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
3073 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 1, i32 1, i32 1, i32 1>
3074 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
3078 define void @v_shuffle_v4p3_v4p3__2_1_1_1(ptr addrspace(1) inreg %ptr) {
3079 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__2_1_1_1:
3081 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3082 ; GFX900-NEXT: ;;#ASMSTART
3083 ; GFX900-NEXT: ; def v[0:3]
3084 ; GFX900-NEXT: ;;#ASMEND
3085 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
3086 ; GFX900-NEXT: v_mov_b32_e32 v0, v2
3087 ; GFX900-NEXT: v_mov_b32_e32 v2, v1
3088 ; GFX900-NEXT: v_mov_b32_e32 v3, v1
3089 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
3090 ; GFX900-NEXT: s_waitcnt vmcnt(0)
3091 ; GFX900-NEXT: s_setpc_b64 s[30:31]
3093 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__2_1_1_1:
3095 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3096 ; GFX90A-NEXT: ;;#ASMSTART
3097 ; GFX90A-NEXT: ; def v[0:3]
3098 ; GFX90A-NEXT: ;;#ASMEND
3099 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
3100 ; GFX90A-NEXT: v_mov_b32_e32 v0, v2
3101 ; GFX90A-NEXT: v_mov_b32_e32 v2, v1
3102 ; GFX90A-NEXT: v_mov_b32_e32 v3, v1
3103 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
3104 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
3105 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
3107 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__2_1_1_1:
3109 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3110 ; GFX940-NEXT: ;;#ASMSTART
3111 ; GFX940-NEXT: ; def v[0:3]
3112 ; GFX940-NEXT: ;;#ASMEND
3113 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
3114 ; GFX940-NEXT: v_mov_b32_e32 v0, v2
3115 ; GFX940-NEXT: v_mov_b32_e32 v2, v1
3116 ; GFX940-NEXT: v_mov_b32_e32 v3, v1
3117 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
3118 ; GFX940-NEXT: s_waitcnt vmcnt(0)
3119 ; GFX940-NEXT: s_setpc_b64 s[30:31]
3120 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
3121 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 2, i32 1, i32 1, i32 1>
3122 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
3126 define void @v_shuffle_v4p3_v4p3__3_1_1_1(ptr addrspace(1) inreg %ptr) {
3127 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__3_1_1_1:
3129 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3130 ; GFX900-NEXT: ;;#ASMSTART
3131 ; GFX900-NEXT: ; def v[0:3]
3132 ; GFX900-NEXT: ;;#ASMEND
3133 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
3134 ; GFX900-NEXT: v_mov_b32_e32 v0, v3
3135 ; GFX900-NEXT: v_mov_b32_e32 v2, v1
3136 ; GFX900-NEXT: v_mov_b32_e32 v3, v1
3137 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
3138 ; GFX900-NEXT: s_waitcnt vmcnt(0)
3139 ; GFX900-NEXT: s_setpc_b64 s[30:31]
3141 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__3_1_1_1:
3143 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3144 ; GFX90A-NEXT: ;;#ASMSTART
3145 ; GFX90A-NEXT: ; def v[0:3]
3146 ; GFX90A-NEXT: ;;#ASMEND
3147 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
3148 ; GFX90A-NEXT: v_mov_b32_e32 v0, v3
3149 ; GFX90A-NEXT: v_mov_b32_e32 v2, v1
3150 ; GFX90A-NEXT: v_mov_b32_e32 v3, v1
3151 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
3152 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
3153 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
3155 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__3_1_1_1:
3157 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3158 ; GFX940-NEXT: ;;#ASMSTART
3159 ; GFX940-NEXT: ; def v[0:3]
3160 ; GFX940-NEXT: ;;#ASMEND
3161 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
3162 ; GFX940-NEXT: v_mov_b32_e32 v0, v3
3163 ; GFX940-NEXT: v_mov_b32_e32 v2, v1
3164 ; GFX940-NEXT: v_mov_b32_e32 v3, v1
3165 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
3166 ; GFX940-NEXT: s_waitcnt vmcnt(0)
3167 ; GFX940-NEXT: s_setpc_b64 s[30:31]
3168 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
3169 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 3, i32 1, i32 1, i32 1>
3170 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
3174 define void @v_shuffle_v4p3_v4p3__4_1_1_1(ptr addrspace(1) inreg %ptr) {
3175 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__4_1_1_1:
3177 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3178 ; GFX900-NEXT: ;;#ASMSTART
3179 ; GFX900-NEXT: ; def v[0:3]
3180 ; GFX900-NEXT: ;;#ASMEND
3181 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
3182 ; GFX900-NEXT: v_mov_b32_e32 v2, v1
3183 ; GFX900-NEXT: v_mov_b32_e32 v3, v1
3184 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
3185 ; GFX900-NEXT: s_waitcnt vmcnt(0)
3186 ; GFX900-NEXT: s_setpc_b64 s[30:31]
3188 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__4_1_1_1:
3190 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3191 ; GFX90A-NEXT: ;;#ASMSTART
3192 ; GFX90A-NEXT: ; def v[0:3]
3193 ; GFX90A-NEXT: ;;#ASMEND
3194 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
3195 ; GFX90A-NEXT: v_mov_b32_e32 v2, v1
3196 ; GFX90A-NEXT: v_mov_b32_e32 v3, v1
3197 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
3198 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
3199 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
3201 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__4_1_1_1:
3203 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3204 ; GFX940-NEXT: ;;#ASMSTART
3205 ; GFX940-NEXT: ; def v[0:3]
3206 ; GFX940-NEXT: ;;#ASMEND
3207 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
3208 ; GFX940-NEXT: v_mov_b32_e32 v2, v1
3209 ; GFX940-NEXT: v_mov_b32_e32 v3, v1
3210 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
3211 ; GFX940-NEXT: s_waitcnt vmcnt(0)
3212 ; GFX940-NEXT: s_setpc_b64 s[30:31]
3213 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
3214 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 4, i32 1, i32 1, i32 1>
3215 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
3219 define void @v_shuffle_v4p3_v4p3__5_1_1_1(ptr addrspace(1) inreg %ptr) {
3220 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__5_1_1_1:
3222 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3223 ; GFX900-NEXT: ;;#ASMSTART
3224 ; GFX900-NEXT: ; def v[0:3]
3225 ; GFX900-NEXT: ;;#ASMEND
3226 ; GFX900-NEXT: ;;#ASMSTART
3227 ; GFX900-NEXT: ; def v[2:5]
3228 ; GFX900-NEXT: ;;#ASMEND
3229 ; GFX900-NEXT: v_mov_b32_e32 v6, 0
3230 ; GFX900-NEXT: v_mov_b32_e32 v0, v3
3231 ; GFX900-NEXT: v_mov_b32_e32 v2, v1
3232 ; GFX900-NEXT: v_mov_b32_e32 v3, v1
3233 ; GFX900-NEXT: global_store_dwordx4 v6, v[0:3], s[16:17]
3234 ; GFX900-NEXT: s_waitcnt vmcnt(0)
3235 ; GFX900-NEXT: s_setpc_b64 s[30:31]
3237 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__5_1_1_1:
3239 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3240 ; GFX90A-NEXT: ;;#ASMSTART
3241 ; GFX90A-NEXT: ; def v[0:3]
3242 ; GFX90A-NEXT: ;;#ASMEND
3243 ; GFX90A-NEXT: ;;#ASMSTART
3244 ; GFX90A-NEXT: ; def v[2:5]
3245 ; GFX90A-NEXT: ;;#ASMEND
3246 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
3247 ; GFX90A-NEXT: v_mov_b32_e32 v0, v3
3248 ; GFX90A-NEXT: v_mov_b32_e32 v2, v1
3249 ; GFX90A-NEXT: v_mov_b32_e32 v3, v1
3250 ; GFX90A-NEXT: global_store_dwordx4 v6, v[0:3], s[16:17]
3251 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
3252 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
3254 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__5_1_1_1:
3256 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3257 ; GFX940-NEXT: ;;#ASMSTART
3258 ; GFX940-NEXT: ; def v[0:3]
3259 ; GFX940-NEXT: ;;#ASMEND
3260 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
3261 ; GFX940-NEXT: ;;#ASMSTART
3262 ; GFX940-NEXT: ; def v[2:5]
3263 ; GFX940-NEXT: ;;#ASMEND
3264 ; GFX940-NEXT: s_nop 0
3265 ; GFX940-NEXT: v_mov_b32_e32 v0, v3
3266 ; GFX940-NEXT: v_mov_b32_e32 v2, v1
3267 ; GFX940-NEXT: v_mov_b32_e32 v3, v1
3268 ; GFX940-NEXT: global_store_dwordx4 v6, v[0:3], s[0:1] sc0 sc1
3269 ; GFX940-NEXT: s_waitcnt vmcnt(0)
3270 ; GFX940-NEXT: s_setpc_b64 s[30:31]
3271 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
3272 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
3273 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 5, i32 1, i32 1, i32 1>
3274 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
3278 define void @v_shuffle_v4p3_v4p3__6_1_1_1(ptr addrspace(1) inreg %ptr) {
3279 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__6_1_1_1:
3281 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3282 ; GFX900-NEXT: ;;#ASMSTART
3283 ; GFX900-NEXT: ; def v[0:3]
3284 ; GFX900-NEXT: ;;#ASMEND
3285 ; GFX900-NEXT: ;;#ASMSTART
3286 ; GFX900-NEXT: ; def v[2:5]
3287 ; GFX900-NEXT: ;;#ASMEND
3288 ; GFX900-NEXT: v_mov_b32_e32 v6, 0
3289 ; GFX900-NEXT: v_mov_b32_e32 v0, v4
3290 ; GFX900-NEXT: v_mov_b32_e32 v2, v1
3291 ; GFX900-NEXT: v_mov_b32_e32 v3, v1
3292 ; GFX900-NEXT: global_store_dwordx4 v6, v[0:3], s[16:17]
3293 ; GFX900-NEXT: s_waitcnt vmcnt(0)
3294 ; GFX900-NEXT: s_setpc_b64 s[30:31]
3296 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__6_1_1_1:
3298 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3299 ; GFX90A-NEXT: ;;#ASMSTART
3300 ; GFX90A-NEXT: ; def v[0:3]
3301 ; GFX90A-NEXT: ;;#ASMEND
3302 ; GFX90A-NEXT: ;;#ASMSTART
3303 ; GFX90A-NEXT: ; def v[2:5]
3304 ; GFX90A-NEXT: ;;#ASMEND
3305 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
3306 ; GFX90A-NEXT: v_mov_b32_e32 v0, v4
3307 ; GFX90A-NEXT: v_mov_b32_e32 v2, v1
3308 ; GFX90A-NEXT: v_mov_b32_e32 v3, v1
3309 ; GFX90A-NEXT: global_store_dwordx4 v6, v[0:3], s[16:17]
3310 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
3311 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
3313 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__6_1_1_1:
3315 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3316 ; GFX940-NEXT: ;;#ASMSTART
3317 ; GFX940-NEXT: ; def v[0:3]
3318 ; GFX940-NEXT: ;;#ASMEND
3319 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
3320 ; GFX940-NEXT: ;;#ASMSTART
3321 ; GFX940-NEXT: ; def v[2:5]
3322 ; GFX940-NEXT: ;;#ASMEND
3323 ; GFX940-NEXT: s_nop 0
3324 ; GFX940-NEXT: v_mov_b32_e32 v0, v4
3325 ; GFX940-NEXT: v_mov_b32_e32 v2, v1
3326 ; GFX940-NEXT: v_mov_b32_e32 v3, v1
3327 ; GFX940-NEXT: global_store_dwordx4 v6, v[0:3], s[0:1] sc0 sc1
3328 ; GFX940-NEXT: s_waitcnt vmcnt(0)
3329 ; GFX940-NEXT: s_setpc_b64 s[30:31]
3330 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
3331 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
3332 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 6, i32 1, i32 1, i32 1>
3333 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
3337 define void @v_shuffle_v4p3_v4p3__7_1_1_1(ptr addrspace(1) inreg %ptr) {
3338 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_1_1_1:
3340 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3341 ; GFX900-NEXT: ;;#ASMSTART
3342 ; GFX900-NEXT: ; def v[0:3]
3343 ; GFX900-NEXT: ;;#ASMEND
3344 ; GFX900-NEXT: ;;#ASMSTART
3345 ; GFX900-NEXT: ; def v[2:5]
3346 ; GFX900-NEXT: ;;#ASMEND
3347 ; GFX900-NEXT: v_mov_b32_e32 v6, 0
3348 ; GFX900-NEXT: v_mov_b32_e32 v0, v5
3349 ; GFX900-NEXT: v_mov_b32_e32 v2, v1
3350 ; GFX900-NEXT: v_mov_b32_e32 v3, v1
3351 ; GFX900-NEXT: global_store_dwordx4 v6, v[0:3], s[16:17]
3352 ; GFX900-NEXT: s_waitcnt vmcnt(0)
3353 ; GFX900-NEXT: s_setpc_b64 s[30:31]
3355 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_1_1_1:
3357 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3358 ; GFX90A-NEXT: ;;#ASMSTART
3359 ; GFX90A-NEXT: ; def v[0:3]
3360 ; GFX90A-NEXT: ;;#ASMEND
3361 ; GFX90A-NEXT: ;;#ASMSTART
3362 ; GFX90A-NEXT: ; def v[2:5]
3363 ; GFX90A-NEXT: ;;#ASMEND
3364 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
3365 ; GFX90A-NEXT: v_mov_b32_e32 v0, v5
3366 ; GFX90A-NEXT: v_mov_b32_e32 v2, v1
3367 ; GFX90A-NEXT: v_mov_b32_e32 v3, v1
3368 ; GFX90A-NEXT: global_store_dwordx4 v6, v[0:3], s[16:17]
3369 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
3370 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
3372 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_1_1_1:
3374 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3375 ; GFX940-NEXT: ;;#ASMSTART
3376 ; GFX940-NEXT: ; def v[0:3]
3377 ; GFX940-NEXT: ;;#ASMEND
3378 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
3379 ; GFX940-NEXT: ;;#ASMSTART
3380 ; GFX940-NEXT: ; def v[2:5]
3381 ; GFX940-NEXT: ;;#ASMEND
3382 ; GFX940-NEXT: s_nop 0
3383 ; GFX940-NEXT: v_mov_b32_e32 v0, v5
3384 ; GFX940-NEXT: v_mov_b32_e32 v2, v1
3385 ; GFX940-NEXT: v_mov_b32_e32 v3, v1
3386 ; GFX940-NEXT: global_store_dwordx4 v6, v[0:3], s[0:1] sc0 sc1
3387 ; GFX940-NEXT: s_waitcnt vmcnt(0)
3388 ; GFX940-NEXT: s_setpc_b64 s[30:31]
3389 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
3390 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
3391 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 1, i32 1, i32 1>
3392 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
3396 define void @v_shuffle_v4p3_v4p3__7_u_1_1(ptr addrspace(1) inreg %ptr) {
3397 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_u_1_1:
3399 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3400 ; GFX900-NEXT: ;;#ASMSTART
3401 ; GFX900-NEXT: ; def v[0:3]
3402 ; GFX900-NEXT: ;;#ASMEND
3403 ; GFX900-NEXT: ;;#ASMSTART
3404 ; GFX900-NEXT: ; def v[2:5]
3405 ; GFX900-NEXT: ;;#ASMEND
3406 ; GFX900-NEXT: v_mov_b32_e32 v6, 0
3407 ; GFX900-NEXT: v_mov_b32_e32 v0, v5
3408 ; GFX900-NEXT: v_mov_b32_e32 v2, v1
3409 ; GFX900-NEXT: v_mov_b32_e32 v3, v1
3410 ; GFX900-NEXT: global_store_dwordx4 v6, v[0:3], s[16:17]
3411 ; GFX900-NEXT: s_waitcnt vmcnt(0)
3412 ; GFX900-NEXT: s_setpc_b64 s[30:31]
3414 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_u_1_1:
3416 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3417 ; GFX90A-NEXT: ;;#ASMSTART
3418 ; GFX90A-NEXT: ; def v[0:3]
3419 ; GFX90A-NEXT: ;;#ASMEND
3420 ; GFX90A-NEXT: ;;#ASMSTART
3421 ; GFX90A-NEXT: ; def v[2:5]
3422 ; GFX90A-NEXT: ;;#ASMEND
3423 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
3424 ; GFX90A-NEXT: v_mov_b32_e32 v0, v5
3425 ; GFX90A-NEXT: v_mov_b32_e32 v2, v1
3426 ; GFX90A-NEXT: v_mov_b32_e32 v3, v1
3427 ; GFX90A-NEXT: global_store_dwordx4 v6, v[0:3], s[16:17]
3428 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
3429 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
3431 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_u_1_1:
3433 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3434 ; GFX940-NEXT: ;;#ASMSTART
3435 ; GFX940-NEXT: ; def v[0:3]
3436 ; GFX940-NEXT: ;;#ASMEND
3437 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
3438 ; GFX940-NEXT: ;;#ASMSTART
3439 ; GFX940-NEXT: ; def v[2:5]
3440 ; GFX940-NEXT: ;;#ASMEND
3441 ; GFX940-NEXT: s_nop 0
3442 ; GFX940-NEXT: v_mov_b32_e32 v0, v5
3443 ; GFX940-NEXT: v_mov_b32_e32 v2, v1
3444 ; GFX940-NEXT: v_mov_b32_e32 v3, v1
3445 ; GFX940-NEXT: global_store_dwordx4 v6, v[0:3], s[0:1] sc0 sc1
3446 ; GFX940-NEXT: s_waitcnt vmcnt(0)
3447 ; GFX940-NEXT: s_setpc_b64 s[30:31]
3448 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
3449 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
3450 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 poison, i32 1, i32 1>
3451 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
3455 define void @v_shuffle_v4p3_v4p3__7_0_1_1(ptr addrspace(1) inreg %ptr) {
3456 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_0_1_1:
3458 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3459 ; GFX900-NEXT: ;;#ASMSTART
3460 ; GFX900-NEXT: ; def v[0:3]
3461 ; GFX900-NEXT: ;;#ASMEND
3462 ; GFX900-NEXT: ;;#ASMSTART
3463 ; GFX900-NEXT: ; def v[2:5]
3464 ; GFX900-NEXT: ;;#ASMEND
3465 ; GFX900-NEXT: v_mov_b32_e32 v6, 0
3466 ; GFX900-NEXT: v_mov_b32_e32 v2, v5
3467 ; GFX900-NEXT: v_mov_b32_e32 v3, v0
3468 ; GFX900-NEXT: v_mov_b32_e32 v4, v1
3469 ; GFX900-NEXT: v_mov_b32_e32 v5, v1
3470 ; GFX900-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
3471 ; GFX900-NEXT: s_waitcnt vmcnt(0)
3472 ; GFX900-NEXT: s_setpc_b64 s[30:31]
3474 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_0_1_1:
3476 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3477 ; GFX90A-NEXT: ;;#ASMSTART
3478 ; GFX90A-NEXT: ; def v[0:3]
3479 ; GFX90A-NEXT: ;;#ASMEND
3480 ; GFX90A-NEXT: ;;#ASMSTART
3481 ; GFX90A-NEXT: ; def v[2:5]
3482 ; GFX90A-NEXT: ;;#ASMEND
3483 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
3484 ; GFX90A-NEXT: v_pk_mov_b32 v[2:3], v[4:5], v[0:1] op_sel:[1,0]
3485 ; GFX90A-NEXT: v_mov_b32_e32 v4, v1
3486 ; GFX90A-NEXT: v_mov_b32_e32 v5, v1
3487 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
3488 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
3489 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
3491 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_0_1_1:
3493 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3494 ; GFX940-NEXT: ;;#ASMSTART
3495 ; GFX940-NEXT: ; def v[0:3]
3496 ; GFX940-NEXT: ;;#ASMEND
3497 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
3498 ; GFX940-NEXT: ;;#ASMSTART
3499 ; GFX940-NEXT: ; def v[2:5]
3500 ; GFX940-NEXT: ;;#ASMEND
3501 ; GFX940-NEXT: s_nop 0
3502 ; GFX940-NEXT: v_pk_mov_b32 v[2:3], v[4:5], v[0:1] op_sel:[1,0]
3503 ; GFX940-NEXT: v_mov_b32_e32 v4, v1
3504 ; GFX940-NEXT: v_mov_b32_e32 v5, v1
3505 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
3506 ; GFX940-NEXT: s_waitcnt vmcnt(0)
3507 ; GFX940-NEXT: s_setpc_b64 s[30:31]
3508 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
3509 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
3510 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 0, i32 1, i32 1>
3511 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
3515 define void @v_shuffle_v4p3_v4p3__7_2_1_1(ptr addrspace(1) inreg %ptr) {
3516 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_2_1_1:
3518 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3519 ; GFX900-NEXT: ;;#ASMSTART
3520 ; GFX900-NEXT: ; def v[0:3]
3521 ; GFX900-NEXT: ;;#ASMEND
3522 ; GFX900-NEXT: ;;#ASMSTART
3523 ; GFX900-NEXT: ; def v[3:6]
3524 ; GFX900-NEXT: ;;#ASMEND
3525 ; GFX900-NEXT: v_mov_b32_e32 v7, 0
3526 ; GFX900-NEXT: v_mov_b32_e32 v3, v6
3527 ; GFX900-NEXT: v_mov_b32_e32 v4, v2
3528 ; GFX900-NEXT: v_mov_b32_e32 v5, v1
3529 ; GFX900-NEXT: v_mov_b32_e32 v6, v1
3530 ; GFX900-NEXT: global_store_dwordx4 v7, v[3:6], s[16:17]
3531 ; GFX900-NEXT: s_waitcnt vmcnt(0)
3532 ; GFX900-NEXT: s_setpc_b64 s[30:31]
3534 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_2_1_1:
3536 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3537 ; GFX90A-NEXT: ;;#ASMSTART
3538 ; GFX90A-NEXT: ; def v[0:3]
3539 ; GFX90A-NEXT: ;;#ASMEND
3540 ; GFX90A-NEXT: ;;#ASMSTART
3541 ; GFX90A-NEXT: ; def v[4:7]
3542 ; GFX90A-NEXT: ;;#ASMEND
3543 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
3544 ; GFX90A-NEXT: v_pk_mov_b32 v[2:3], v[6:7], v[2:3] op_sel:[1,0]
3545 ; GFX90A-NEXT: v_mov_b32_e32 v4, v1
3546 ; GFX90A-NEXT: v_mov_b32_e32 v5, v1
3547 ; GFX90A-NEXT: global_store_dwordx4 v8, v[2:5], s[16:17]
3548 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
3549 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
3551 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_2_1_1:
3553 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3554 ; GFX940-NEXT: ;;#ASMSTART
3555 ; GFX940-NEXT: ; def v[0:3]
3556 ; GFX940-NEXT: ;;#ASMEND
3557 ; GFX940-NEXT: ;;#ASMSTART
3558 ; GFX940-NEXT: ; def v[4:7]
3559 ; GFX940-NEXT: ;;#ASMEND
3560 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
3561 ; GFX940-NEXT: v_pk_mov_b32 v[2:3], v[6:7], v[2:3] op_sel:[1,0]
3562 ; GFX940-NEXT: v_mov_b32_e32 v4, v1
3563 ; GFX940-NEXT: v_mov_b32_e32 v5, v1
3564 ; GFX940-NEXT: global_store_dwordx4 v8, v[2:5], s[0:1] sc0 sc1
3565 ; GFX940-NEXT: s_waitcnt vmcnt(0)
3566 ; GFX940-NEXT: s_setpc_b64 s[30:31]
3567 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
3568 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
3569 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 2, i32 1, i32 1>
3570 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
3574 define void @v_shuffle_v4p3_v4p3__7_3_1_1(ptr addrspace(1) inreg %ptr) {
3575 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_3_1_1:
3577 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3578 ; GFX900-NEXT: ;;#ASMSTART
3579 ; GFX900-NEXT: ; def v[0:3]
3580 ; GFX900-NEXT: ;;#ASMEND
3581 ; GFX900-NEXT: ;;#ASMSTART
3582 ; GFX900-NEXT: ; def v[4:7]
3583 ; GFX900-NEXT: ;;#ASMEND
3584 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
3585 ; GFX900-NEXT: v_mov_b32_e32 v2, v7
3586 ; GFX900-NEXT: v_mov_b32_e32 v4, v1
3587 ; GFX900-NEXT: v_mov_b32_e32 v5, v1
3588 ; GFX900-NEXT: global_store_dwordx4 v8, v[2:5], s[16:17]
3589 ; GFX900-NEXT: s_waitcnt vmcnt(0)
3590 ; GFX900-NEXT: s_setpc_b64 s[30:31]
3592 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_3_1_1:
3594 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3595 ; GFX90A-NEXT: ;;#ASMSTART
3596 ; GFX90A-NEXT: ; def v[0:3]
3597 ; GFX90A-NEXT: ;;#ASMEND
3598 ; GFX90A-NEXT: ;;#ASMSTART
3599 ; GFX90A-NEXT: ; def v[4:7]
3600 ; GFX90A-NEXT: ;;#ASMEND
3601 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
3602 ; GFX90A-NEXT: v_mov_b32_e32 v2, v7
3603 ; GFX90A-NEXT: v_mov_b32_e32 v4, v1
3604 ; GFX90A-NEXT: v_mov_b32_e32 v5, v1
3605 ; GFX90A-NEXT: global_store_dwordx4 v8, v[2:5], s[16:17]
3606 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
3607 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
3609 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_3_1_1:
3611 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3612 ; GFX940-NEXT: ;;#ASMSTART
3613 ; GFX940-NEXT: ; def v[0:3]
3614 ; GFX940-NEXT: ;;#ASMEND
3615 ; GFX940-NEXT: ;;#ASMSTART
3616 ; GFX940-NEXT: ; def v[4:7]
3617 ; GFX940-NEXT: ;;#ASMEND
3618 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
3619 ; GFX940-NEXT: v_mov_b32_e32 v2, v7
3620 ; GFX940-NEXT: v_mov_b32_e32 v4, v1
3621 ; GFX940-NEXT: v_mov_b32_e32 v5, v1
3622 ; GFX940-NEXT: global_store_dwordx4 v8, v[2:5], s[0:1] sc0 sc1
3623 ; GFX940-NEXT: s_waitcnt vmcnt(0)
3624 ; GFX940-NEXT: s_setpc_b64 s[30:31]
3625 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
3626 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
3627 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 3, i32 1, i32 1>
3628 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
3632 define void @v_shuffle_v4p3_v4p3__7_4_1_1(ptr addrspace(1) inreg %ptr) {
3633 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_4_1_1:
3635 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3636 ; GFX900-NEXT: ;;#ASMSTART
3637 ; GFX900-NEXT: ; def v[0:3]
3638 ; GFX900-NEXT: ;;#ASMEND
3639 ; GFX900-NEXT: ;;#ASMSTART
3640 ; GFX900-NEXT: ; def v[2:5]
3641 ; GFX900-NEXT: ;;#ASMEND
3642 ; GFX900-NEXT: v_mov_b32_e32 v7, 0
3643 ; GFX900-NEXT: v_mov_b32_e32 v3, v5
3644 ; GFX900-NEXT: v_mov_b32_e32 v4, v2
3645 ; GFX900-NEXT: v_mov_b32_e32 v5, v1
3646 ; GFX900-NEXT: v_mov_b32_e32 v6, v1
3647 ; GFX900-NEXT: global_store_dwordx4 v7, v[3:6], s[16:17]
3648 ; GFX900-NEXT: s_waitcnt vmcnt(0)
3649 ; GFX900-NEXT: s_setpc_b64 s[30:31]
3651 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_4_1_1:
3653 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3654 ; GFX90A-NEXT: ;;#ASMSTART
3655 ; GFX90A-NEXT: ; def v[0:3]
3656 ; GFX90A-NEXT: ;;#ASMEND
3657 ; GFX90A-NEXT: ;;#ASMSTART
3658 ; GFX90A-NEXT: ; def v[2:5]
3659 ; GFX90A-NEXT: ;;#ASMEND
3660 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
3661 ; GFX90A-NEXT: v_pk_mov_b32 v[2:3], v[4:5], v[2:3] op_sel:[1,0]
3662 ; GFX90A-NEXT: v_mov_b32_e32 v4, v1
3663 ; GFX90A-NEXT: v_mov_b32_e32 v5, v1
3664 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
3665 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
3666 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
3668 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_4_1_1:
3670 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3671 ; GFX940-NEXT: ;;#ASMSTART
3672 ; GFX940-NEXT: ; def v[0:3]
3673 ; GFX940-NEXT: ;;#ASMEND
3674 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
3675 ; GFX940-NEXT: ;;#ASMSTART
3676 ; GFX940-NEXT: ; def v[2:5]
3677 ; GFX940-NEXT: ;;#ASMEND
3678 ; GFX940-NEXT: s_nop 0
3679 ; GFX940-NEXT: v_pk_mov_b32 v[2:3], v[4:5], v[2:3] op_sel:[1,0]
3680 ; GFX940-NEXT: v_mov_b32_e32 v4, v1
3681 ; GFX940-NEXT: v_mov_b32_e32 v5, v1
3682 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
3683 ; GFX940-NEXT: s_waitcnt vmcnt(0)
3684 ; GFX940-NEXT: s_setpc_b64 s[30:31]
3685 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
3686 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
3687 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 4, i32 1, i32 1>
3688 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
3692 define void @v_shuffle_v4p3_v4p3__7_5_1_1(ptr addrspace(1) inreg %ptr) {
3693 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_5_1_1:
3695 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3696 ; GFX900-NEXT: ;;#ASMSTART
3697 ; GFX900-NEXT: ; def v[0:3]
3698 ; GFX900-NEXT: ;;#ASMEND
3699 ; GFX900-NEXT: ;;#ASMSTART
3700 ; GFX900-NEXT: ; def v[2:5]
3701 ; GFX900-NEXT: ;;#ASMEND
3702 ; GFX900-NEXT: v_mov_b32_e32 v6, 0
3703 ; GFX900-NEXT: v_mov_b32_e32 v2, v5
3704 ; GFX900-NEXT: v_mov_b32_e32 v4, v1
3705 ; GFX900-NEXT: v_mov_b32_e32 v5, v1
3706 ; GFX900-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
3707 ; GFX900-NEXT: s_waitcnt vmcnt(0)
3708 ; GFX900-NEXT: s_setpc_b64 s[30:31]
3710 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_5_1_1:
3712 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3713 ; GFX90A-NEXT: ;;#ASMSTART
3714 ; GFX90A-NEXT: ; def v[0:3]
3715 ; GFX90A-NEXT: ;;#ASMEND
3716 ; GFX90A-NEXT: ;;#ASMSTART
3717 ; GFX90A-NEXT: ; def v[2:5]
3718 ; GFX90A-NEXT: ;;#ASMEND
3719 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
3720 ; GFX90A-NEXT: v_mov_b32_e32 v2, v5
3721 ; GFX90A-NEXT: v_mov_b32_e32 v4, v1
3722 ; GFX90A-NEXT: v_mov_b32_e32 v5, v1
3723 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
3724 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
3725 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
3727 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_5_1_1:
3729 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3730 ; GFX940-NEXT: ;;#ASMSTART
3731 ; GFX940-NEXT: ; def v[0:3]
3732 ; GFX940-NEXT: ;;#ASMEND
3733 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
3734 ; GFX940-NEXT: ;;#ASMSTART
3735 ; GFX940-NEXT: ; def v[2:5]
3736 ; GFX940-NEXT: ;;#ASMEND
3737 ; GFX940-NEXT: s_nop 0
3738 ; GFX940-NEXT: v_mov_b32_e32 v2, v5
3739 ; GFX940-NEXT: v_mov_b32_e32 v4, v1
3740 ; GFX940-NEXT: v_mov_b32_e32 v5, v1
3741 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
3742 ; GFX940-NEXT: s_waitcnt vmcnt(0)
3743 ; GFX940-NEXT: s_setpc_b64 s[30:31]
3744 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
3745 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
3746 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 5, i32 1, i32 1>
3747 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
3751 define void @v_shuffle_v4p3_v4p3__7_6_1_1(ptr addrspace(1) inreg %ptr) {
3752 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_6_1_1:
3754 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3755 ; GFX900-NEXT: ;;#ASMSTART
3756 ; GFX900-NEXT: ; def v[0:3]
3757 ; GFX900-NEXT: ;;#ASMEND
3758 ; GFX900-NEXT: ;;#ASMSTART
3759 ; GFX900-NEXT: ; def v[2:5]
3760 ; GFX900-NEXT: ;;#ASMEND
3761 ; GFX900-NEXT: v_mov_b32_e32 v6, 0
3762 ; GFX900-NEXT: v_mov_b32_e32 v2, v5
3763 ; GFX900-NEXT: v_mov_b32_e32 v3, v4
3764 ; GFX900-NEXT: v_mov_b32_e32 v4, v1
3765 ; GFX900-NEXT: v_mov_b32_e32 v5, v1
3766 ; GFX900-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
3767 ; GFX900-NEXT: s_waitcnt vmcnt(0)
3768 ; GFX900-NEXT: s_setpc_b64 s[30:31]
3770 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_6_1_1:
3772 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3773 ; GFX90A-NEXT: ;;#ASMSTART
3774 ; GFX90A-NEXT: ; def v[0:3]
3775 ; GFX90A-NEXT: ;;#ASMEND
3776 ; GFX90A-NEXT: ;;#ASMSTART
3777 ; GFX90A-NEXT: ; def v[2:5]
3778 ; GFX90A-NEXT: ;;#ASMEND
3779 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
3780 ; GFX90A-NEXT: v_pk_mov_b32 v[2:3], v[4:5], v[4:5] op_sel:[1,0]
3781 ; GFX90A-NEXT: v_mov_b32_e32 v4, v1
3782 ; GFX90A-NEXT: v_mov_b32_e32 v5, v1
3783 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
3784 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
3785 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
3787 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_6_1_1:
3789 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3790 ; GFX940-NEXT: ;;#ASMSTART
3791 ; GFX940-NEXT: ; def v[0:3]
3792 ; GFX940-NEXT: ;;#ASMEND
3793 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
3794 ; GFX940-NEXT: ;;#ASMSTART
3795 ; GFX940-NEXT: ; def v[2:5]
3796 ; GFX940-NEXT: ;;#ASMEND
3797 ; GFX940-NEXT: s_nop 0
3798 ; GFX940-NEXT: v_pk_mov_b32 v[2:3], v[4:5], v[4:5] op_sel:[1,0]
3799 ; GFX940-NEXT: v_mov_b32_e32 v4, v1
3800 ; GFX940-NEXT: v_mov_b32_e32 v5, v1
3801 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
3802 ; GFX940-NEXT: s_waitcnt vmcnt(0)
3803 ; GFX940-NEXT: s_setpc_b64 s[30:31]
3804 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
3805 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
3806 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 6, i32 1, i32 1>
3807 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
3811 define void @v_shuffle_v4p3_v4p3__7_7_1_1(ptr addrspace(1) inreg %ptr) {
3812 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_1_1:
3814 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3815 ; GFX900-NEXT: ;;#ASMSTART
3816 ; GFX900-NEXT: ; def v[0:3]
3817 ; GFX900-NEXT: ;;#ASMEND
3818 ; GFX900-NEXT: ;;#ASMSTART
3819 ; GFX900-NEXT: ; def v[2:5]
3820 ; GFX900-NEXT: ;;#ASMEND
3821 ; GFX900-NEXT: v_mov_b32_e32 v6, 0
3822 ; GFX900-NEXT: v_mov_b32_e32 v2, v5
3823 ; GFX900-NEXT: v_mov_b32_e32 v3, v5
3824 ; GFX900-NEXT: v_mov_b32_e32 v4, v1
3825 ; GFX900-NEXT: v_mov_b32_e32 v5, v1
3826 ; GFX900-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
3827 ; GFX900-NEXT: s_waitcnt vmcnt(0)
3828 ; GFX900-NEXT: s_setpc_b64 s[30:31]
3830 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_1_1:
3832 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3833 ; GFX90A-NEXT: ;;#ASMSTART
3834 ; GFX90A-NEXT: ; def v[0:3]
3835 ; GFX90A-NEXT: ;;#ASMEND
3836 ; GFX90A-NEXT: ;;#ASMSTART
3837 ; GFX90A-NEXT: ; def v[2:5]
3838 ; GFX90A-NEXT: ;;#ASMEND
3839 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
3840 ; GFX90A-NEXT: v_mov_b32_e32 v2, v5
3841 ; GFX90A-NEXT: v_mov_b32_e32 v3, v5
3842 ; GFX90A-NEXT: v_mov_b32_e32 v4, v1
3843 ; GFX90A-NEXT: v_mov_b32_e32 v5, v1
3844 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
3845 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
3846 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
3848 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_1_1:
3850 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3851 ; GFX940-NEXT: ;;#ASMSTART
3852 ; GFX940-NEXT: ; def v[0:3]
3853 ; GFX940-NEXT: ;;#ASMEND
3854 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
3855 ; GFX940-NEXT: ;;#ASMSTART
3856 ; GFX940-NEXT: ; def v[2:5]
3857 ; GFX940-NEXT: ;;#ASMEND
3858 ; GFX940-NEXT: s_nop 0
3859 ; GFX940-NEXT: v_mov_b32_e32 v2, v5
3860 ; GFX940-NEXT: v_mov_b32_e32 v3, v5
3861 ; GFX940-NEXT: v_mov_b32_e32 v4, v1
3862 ; GFX940-NEXT: v_mov_b32_e32 v5, v1
3863 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
3864 ; GFX940-NEXT: s_waitcnt vmcnt(0)
3865 ; GFX940-NEXT: s_setpc_b64 s[30:31]
3866 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
3867 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
3868 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 1, i32 1>
3869 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
3873 define void @v_shuffle_v4p3_v4p3__7_7_u_1(ptr addrspace(1) inreg %ptr) {
3874 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_u_1:
3876 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3877 ; GFX900-NEXT: ;;#ASMSTART
3878 ; GFX900-NEXT: ; def v[0:3]
3879 ; GFX900-NEXT: ;;#ASMEND
3880 ; GFX900-NEXT: ;;#ASMSTART
3881 ; GFX900-NEXT: ; def v[2:5]
3882 ; GFX900-NEXT: ;;#ASMEND
3883 ; GFX900-NEXT: v_mov_b32_e32 v6, 0
3884 ; GFX900-NEXT: v_mov_b32_e32 v2, v5
3885 ; GFX900-NEXT: v_mov_b32_e32 v3, v5
3886 ; GFX900-NEXT: v_mov_b32_e32 v5, v1
3887 ; GFX900-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
3888 ; GFX900-NEXT: s_waitcnt vmcnt(0)
3889 ; GFX900-NEXT: s_setpc_b64 s[30:31]
3891 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_u_1:
3893 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3894 ; GFX90A-NEXT: ;;#ASMSTART
3895 ; GFX90A-NEXT: ; def v[0:3]
3896 ; GFX90A-NEXT: ;;#ASMEND
3897 ; GFX90A-NEXT: ;;#ASMSTART
3898 ; GFX90A-NEXT: ; def v[2:5]
3899 ; GFX90A-NEXT: ;;#ASMEND
3900 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
3901 ; GFX90A-NEXT: v_mov_b32_e32 v2, v5
3902 ; GFX90A-NEXT: v_mov_b32_e32 v3, v5
3903 ; GFX90A-NEXT: v_mov_b32_e32 v5, v1
3904 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
3905 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
3906 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
3908 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_u_1:
3910 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3911 ; GFX940-NEXT: ;;#ASMSTART
3912 ; GFX940-NEXT: ; def v[0:3]
3913 ; GFX940-NEXT: ;;#ASMEND
3914 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
3915 ; GFX940-NEXT: ;;#ASMSTART
3916 ; GFX940-NEXT: ; def v[2:5]
3917 ; GFX940-NEXT: ;;#ASMEND
3918 ; GFX940-NEXT: s_nop 0
3919 ; GFX940-NEXT: v_mov_b32_e32 v2, v5
3920 ; GFX940-NEXT: v_mov_b32_e32 v3, v5
3921 ; GFX940-NEXT: v_mov_b32_e32 v5, v1
3922 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
3923 ; GFX940-NEXT: s_waitcnt vmcnt(0)
3924 ; GFX940-NEXT: s_setpc_b64 s[30:31]
3925 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
3926 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
3927 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 poison, i32 1>
3928 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
3932 define void @v_shuffle_v4p3_v4p3__7_7_0_1(ptr addrspace(1) inreg %ptr) {
3933 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_0_1:
3935 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3936 ; GFX900-NEXT: ;;#ASMSTART
3937 ; GFX900-NEXT: ; def v[0:3]
3938 ; GFX900-NEXT: ;;#ASMEND
3939 ; GFX900-NEXT: ;;#ASMSTART
3940 ; GFX900-NEXT: ; def v[2:5]
3941 ; GFX900-NEXT: ;;#ASMEND
3942 ; GFX900-NEXT: v_mov_b32_e32 v6, 0
3943 ; GFX900-NEXT: v_mov_b32_e32 v2, v5
3944 ; GFX900-NEXT: v_mov_b32_e32 v3, v5
3945 ; GFX900-NEXT: v_mov_b32_e32 v4, v0
3946 ; GFX900-NEXT: v_mov_b32_e32 v5, v1
3947 ; GFX900-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
3948 ; GFX900-NEXT: s_waitcnt vmcnt(0)
3949 ; GFX900-NEXT: s_setpc_b64 s[30:31]
3951 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_0_1:
3953 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3954 ; GFX90A-NEXT: ;;#ASMSTART
3955 ; GFX90A-NEXT: ; def v[0:3]
3956 ; GFX90A-NEXT: ;;#ASMEND
3957 ; GFX90A-NEXT: ;;#ASMSTART
3958 ; GFX90A-NEXT: ; def v[2:5]
3959 ; GFX90A-NEXT: ;;#ASMEND
3960 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
3961 ; GFX90A-NEXT: v_mov_b32_e32 v2, v5
3962 ; GFX90A-NEXT: v_mov_b32_e32 v3, v5
3963 ; GFX90A-NEXT: v_mov_b32_e32 v4, v0
3964 ; GFX90A-NEXT: v_mov_b32_e32 v5, v1
3965 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
3966 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
3967 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
3969 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_0_1:
3971 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3972 ; GFX940-NEXT: ;;#ASMSTART
3973 ; GFX940-NEXT: ; def v[0:3]
3974 ; GFX940-NEXT: ;;#ASMEND
3975 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
3976 ; GFX940-NEXT: ;;#ASMSTART
3977 ; GFX940-NEXT: ; def v[2:5]
3978 ; GFX940-NEXT: ;;#ASMEND
3979 ; GFX940-NEXT: s_nop 0
3980 ; GFX940-NEXT: v_mov_b32_e32 v2, v5
3981 ; GFX940-NEXT: v_mov_b32_e32 v3, v5
3982 ; GFX940-NEXT: v_mov_b32_e32 v4, v0
3983 ; GFX940-NEXT: v_mov_b32_e32 v5, v1
3984 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
3985 ; GFX940-NEXT: s_waitcnt vmcnt(0)
3986 ; GFX940-NEXT: s_setpc_b64 s[30:31]
3987 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
3988 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
3989 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 0, i32 1>
3990 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
3994 define void @v_shuffle_v4p3_v4p3__7_7_2_1(ptr addrspace(1) inreg %ptr) {
3995 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_2_1:
3997 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3998 ; GFX900-NEXT: ;;#ASMSTART
3999 ; GFX900-NEXT: ; def v[0:3]
4000 ; GFX900-NEXT: ;;#ASMEND
4001 ; GFX900-NEXT: ;;#ASMSTART
4002 ; GFX900-NEXT: ; def v[3:6]
4003 ; GFX900-NEXT: ;;#ASMEND
4004 ; GFX900-NEXT: v_mov_b32_e32 v7, 0
4005 ; GFX900-NEXT: v_mov_b32_e32 v3, v6
4006 ; GFX900-NEXT: v_mov_b32_e32 v4, v6
4007 ; GFX900-NEXT: v_mov_b32_e32 v5, v2
4008 ; GFX900-NEXT: v_mov_b32_e32 v6, v1
4009 ; GFX900-NEXT: global_store_dwordx4 v7, v[3:6], s[16:17]
4010 ; GFX900-NEXT: s_waitcnt vmcnt(0)
4011 ; GFX900-NEXT: s_setpc_b64 s[30:31]
4013 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_2_1:
4015 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4016 ; GFX90A-NEXT: ;;#ASMSTART
4017 ; GFX90A-NEXT: ; def v[4:7]
4018 ; GFX90A-NEXT: ;;#ASMEND
4019 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
4020 ; GFX90A-NEXT: ;;#ASMSTART
4021 ; GFX90A-NEXT: ; def v[0:3]
4022 ; GFX90A-NEXT: ;;#ASMEND
4023 ; GFX90A-NEXT: v_mov_b32_e32 v4, v7
4024 ; GFX90A-NEXT: v_mov_b32_e32 v5, v7
4025 ; GFX90A-NEXT: v_mov_b32_e32 v6, v2
4026 ; GFX90A-NEXT: v_mov_b32_e32 v7, v1
4027 ; GFX90A-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
4028 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
4029 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
4031 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_2_1:
4033 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4034 ; GFX940-NEXT: ;;#ASMSTART
4035 ; GFX940-NEXT: ; def v[4:7]
4036 ; GFX940-NEXT: ;;#ASMEND
4037 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
4038 ; GFX940-NEXT: ;;#ASMSTART
4039 ; GFX940-NEXT: ; def v[0:3]
4040 ; GFX940-NEXT: ;;#ASMEND
4041 ; GFX940-NEXT: v_mov_b32_e32 v4, v7
4042 ; GFX940-NEXT: v_mov_b32_e32 v5, v7
4043 ; GFX940-NEXT: v_mov_b32_e32 v6, v2
4044 ; GFX940-NEXT: v_mov_b32_e32 v7, v1
4045 ; GFX940-NEXT: global_store_dwordx4 v8, v[4:7], s[0:1] sc0 sc1
4046 ; GFX940-NEXT: s_waitcnt vmcnt(0)
4047 ; GFX940-NEXT: s_setpc_b64 s[30:31]
4048 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
4049 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
4050 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 2, i32 1>
4051 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
4055 define void @v_shuffle_v4p3_v4p3__7_7_3_1(ptr addrspace(1) inreg %ptr) {
4056 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_3_1:
4058 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4059 ; GFX900-NEXT: ;;#ASMSTART
4060 ; GFX900-NEXT: ; def v[4:7]
4061 ; GFX900-NEXT: ;;#ASMEND
4062 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
4063 ; GFX900-NEXT: ;;#ASMSTART
4064 ; GFX900-NEXT: ; def v[0:3]
4065 ; GFX900-NEXT: ;;#ASMEND
4066 ; GFX900-NEXT: v_mov_b32_e32 v4, v7
4067 ; GFX900-NEXT: v_mov_b32_e32 v5, v7
4068 ; GFX900-NEXT: v_mov_b32_e32 v6, v3
4069 ; GFX900-NEXT: v_mov_b32_e32 v7, v1
4070 ; GFX900-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
4071 ; GFX900-NEXT: s_waitcnt vmcnt(0)
4072 ; GFX900-NEXT: s_setpc_b64 s[30:31]
4074 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_3_1:
4076 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4077 ; GFX90A-NEXT: ;;#ASMSTART
4078 ; GFX90A-NEXT: ; def v[4:7]
4079 ; GFX90A-NEXT: ;;#ASMEND
4080 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
4081 ; GFX90A-NEXT: ;;#ASMSTART
4082 ; GFX90A-NEXT: ; def v[0:3]
4083 ; GFX90A-NEXT: ;;#ASMEND
4084 ; GFX90A-NEXT: v_mov_b32_e32 v4, v7
4085 ; GFX90A-NEXT: v_mov_b32_e32 v5, v7
4086 ; GFX90A-NEXT: v_mov_b32_e32 v6, v3
4087 ; GFX90A-NEXT: v_mov_b32_e32 v7, v1
4088 ; GFX90A-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
4089 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
4090 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
4092 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_3_1:
4094 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4095 ; GFX940-NEXT: ;;#ASMSTART
4096 ; GFX940-NEXT: ; def v[4:7]
4097 ; GFX940-NEXT: ;;#ASMEND
4098 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
4099 ; GFX940-NEXT: ;;#ASMSTART
4100 ; GFX940-NEXT: ; def v[0:3]
4101 ; GFX940-NEXT: ;;#ASMEND
4102 ; GFX940-NEXT: v_mov_b32_e32 v4, v7
4103 ; GFX940-NEXT: v_mov_b32_e32 v5, v7
4104 ; GFX940-NEXT: v_mov_b32_e32 v6, v3
4105 ; GFX940-NEXT: v_mov_b32_e32 v7, v1
4106 ; GFX940-NEXT: global_store_dwordx4 v8, v[4:7], s[0:1] sc0 sc1
4107 ; GFX940-NEXT: s_waitcnt vmcnt(0)
4108 ; GFX940-NEXT: s_setpc_b64 s[30:31]
4109 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
4110 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
4111 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 3, i32 1>
4112 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
4116 define void @v_shuffle_v4p3_v4p3__7_7_4_1(ptr addrspace(1) inreg %ptr) {
4117 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_4_1:
4119 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4120 ; GFX900-NEXT: ;;#ASMSTART
4121 ; GFX900-NEXT: ; def v[0:3]
4122 ; GFX900-NEXT: ;;#ASMEND
4123 ; GFX900-NEXT: ;;#ASMSTART
4124 ; GFX900-NEXT: ; def v[2:5]
4125 ; GFX900-NEXT: ;;#ASMEND
4126 ; GFX900-NEXT: v_mov_b32_e32 v7, 0
4127 ; GFX900-NEXT: v_mov_b32_e32 v3, v5
4128 ; GFX900-NEXT: v_mov_b32_e32 v4, v5
4129 ; GFX900-NEXT: v_mov_b32_e32 v5, v2
4130 ; GFX900-NEXT: v_mov_b32_e32 v6, v1
4131 ; GFX900-NEXT: global_store_dwordx4 v7, v[3:6], s[16:17]
4132 ; GFX900-NEXT: s_waitcnt vmcnt(0)
4133 ; GFX900-NEXT: s_setpc_b64 s[30:31]
4135 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_4_1:
4137 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4138 ; GFX90A-NEXT: ;;#ASMSTART
4139 ; GFX90A-NEXT: ; def v[0:3]
4140 ; GFX90A-NEXT: ;;#ASMEND
4141 ; GFX90A-NEXT: ;;#ASMSTART
4142 ; GFX90A-NEXT: ; def v[2:5]
4143 ; GFX90A-NEXT: ;;#ASMEND
4144 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
4145 ; GFX90A-NEXT: v_mov_b32_e32 v4, v5
4146 ; GFX90A-NEXT: v_mov_b32_e32 v6, v2
4147 ; GFX90A-NEXT: v_mov_b32_e32 v7, v1
4148 ; GFX90A-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
4149 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
4150 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
4152 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_4_1:
4154 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4155 ; GFX940-NEXT: ;;#ASMSTART
4156 ; GFX940-NEXT: ; def v[0:3]
4157 ; GFX940-NEXT: ;;#ASMEND
4158 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
4159 ; GFX940-NEXT: ;;#ASMSTART
4160 ; GFX940-NEXT: ; def v[2:5]
4161 ; GFX940-NEXT: ;;#ASMEND
4162 ; GFX940-NEXT: v_mov_b32_e32 v7, v1
4163 ; GFX940-NEXT: v_mov_b32_e32 v4, v5
4164 ; GFX940-NEXT: v_mov_b32_e32 v6, v2
4165 ; GFX940-NEXT: global_store_dwordx4 v8, v[4:7], s[0:1] sc0 sc1
4166 ; GFX940-NEXT: s_waitcnt vmcnt(0)
4167 ; GFX940-NEXT: s_setpc_b64 s[30:31]
4168 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
4169 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
4170 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 4, i32 1>
4171 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
4175 define void @v_shuffle_v4p3_v4p3__7_7_5_1(ptr addrspace(1) inreg %ptr) {
4176 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_5_1:
4178 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4179 ; GFX900-NEXT: ;;#ASMSTART
4180 ; GFX900-NEXT: ; def v[0:3]
4181 ; GFX900-NEXT: ;;#ASMEND
4182 ; GFX900-NEXT: ;;#ASMSTART
4183 ; GFX900-NEXT: ; def v[2:5]
4184 ; GFX900-NEXT: ;;#ASMEND
4185 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
4186 ; GFX900-NEXT: v_mov_b32_e32 v4, v5
4187 ; GFX900-NEXT: v_mov_b32_e32 v6, v3
4188 ; GFX900-NEXT: v_mov_b32_e32 v7, v1
4189 ; GFX900-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
4190 ; GFX900-NEXT: s_waitcnt vmcnt(0)
4191 ; GFX900-NEXT: s_setpc_b64 s[30:31]
4193 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_5_1:
4195 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4196 ; GFX90A-NEXT: ;;#ASMSTART
4197 ; GFX90A-NEXT: ; def v[0:3]
4198 ; GFX90A-NEXT: ;;#ASMEND
4199 ; GFX90A-NEXT: ;;#ASMSTART
4200 ; GFX90A-NEXT: ; def v[2:5]
4201 ; GFX90A-NEXT: ;;#ASMEND
4202 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
4203 ; GFX90A-NEXT: v_mov_b32_e32 v4, v5
4204 ; GFX90A-NEXT: v_mov_b32_e32 v6, v3
4205 ; GFX90A-NEXT: v_mov_b32_e32 v7, v1
4206 ; GFX90A-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
4207 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
4208 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
4210 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_5_1:
4212 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4213 ; GFX940-NEXT: ;;#ASMSTART
4214 ; GFX940-NEXT: ; def v[0:3]
4215 ; GFX940-NEXT: ;;#ASMEND
4216 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
4217 ; GFX940-NEXT: ;;#ASMSTART
4218 ; GFX940-NEXT: ; def v[2:5]
4219 ; GFX940-NEXT: ;;#ASMEND
4220 ; GFX940-NEXT: v_mov_b32_e32 v7, v1
4221 ; GFX940-NEXT: v_mov_b32_e32 v4, v5
4222 ; GFX940-NEXT: v_mov_b32_e32 v6, v3
4223 ; GFX940-NEXT: global_store_dwordx4 v8, v[4:7], s[0:1] sc0 sc1
4224 ; GFX940-NEXT: s_waitcnt vmcnt(0)
4225 ; GFX940-NEXT: s_setpc_b64 s[30:31]
4226 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
4227 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
4228 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 5, i32 1>
4229 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
4233 define void @v_shuffle_v4p3_v4p3__7_7_6_1(ptr addrspace(1) inreg %ptr) {
4234 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_6_1:
4236 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4237 ; GFX900-NEXT: ;;#ASMSTART
4238 ; GFX900-NEXT: ; def v[0:3]
4239 ; GFX900-NEXT: ;;#ASMEND
4240 ; GFX900-NEXT: ;;#ASMSTART
4241 ; GFX900-NEXT: ; def v[2:5]
4242 ; GFX900-NEXT: ;;#ASMEND
4243 ; GFX900-NEXT: v_mov_b32_e32 v6, 0
4244 ; GFX900-NEXT: v_mov_b32_e32 v2, v5
4245 ; GFX900-NEXT: v_mov_b32_e32 v3, v5
4246 ; GFX900-NEXT: v_mov_b32_e32 v5, v1
4247 ; GFX900-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
4248 ; GFX900-NEXT: s_waitcnt vmcnt(0)
4249 ; GFX900-NEXT: s_setpc_b64 s[30:31]
4251 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_6_1:
4253 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4254 ; GFX90A-NEXT: ;;#ASMSTART
4255 ; GFX90A-NEXT: ; def v[0:3]
4256 ; GFX90A-NEXT: ;;#ASMEND
4257 ; GFX90A-NEXT: ;;#ASMSTART
4258 ; GFX90A-NEXT: ; def v[2:5]
4259 ; GFX90A-NEXT: ;;#ASMEND
4260 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
4261 ; GFX90A-NEXT: v_mov_b32_e32 v2, v5
4262 ; GFX90A-NEXT: v_mov_b32_e32 v3, v5
4263 ; GFX90A-NEXT: v_mov_b32_e32 v5, v1
4264 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
4265 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
4266 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
4268 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_6_1:
4270 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4271 ; GFX940-NEXT: ;;#ASMSTART
4272 ; GFX940-NEXT: ; def v[0:3]
4273 ; GFX940-NEXT: ;;#ASMEND
4274 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
4275 ; GFX940-NEXT: ;;#ASMSTART
4276 ; GFX940-NEXT: ; def v[2:5]
4277 ; GFX940-NEXT: ;;#ASMEND
4278 ; GFX940-NEXT: s_nop 0
4279 ; GFX940-NEXT: v_mov_b32_e32 v2, v5
4280 ; GFX940-NEXT: v_mov_b32_e32 v3, v5
4281 ; GFX940-NEXT: v_mov_b32_e32 v5, v1
4282 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
4283 ; GFX940-NEXT: s_waitcnt vmcnt(0)
4284 ; GFX940-NEXT: s_setpc_b64 s[30:31]
4285 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
4286 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
4287 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 6, i32 1>
4288 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
4292 define void @v_shuffle_v4p3_v4p3__u_2_2_2(ptr addrspace(1) inreg %ptr) {
4293 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__u_2_2_2:
4295 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4296 ; GFX900-NEXT: ;;#ASMSTART
4297 ; GFX900-NEXT: ; def v[0:3]
4298 ; GFX900-NEXT: ;;#ASMEND
4299 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
4300 ; GFX900-NEXT: v_mov_b32_e32 v1, v2
4301 ; GFX900-NEXT: v_mov_b32_e32 v3, v2
4302 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
4303 ; GFX900-NEXT: s_waitcnt vmcnt(0)
4304 ; GFX900-NEXT: s_setpc_b64 s[30:31]
4306 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__u_2_2_2:
4308 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4309 ; GFX90A-NEXT: ;;#ASMSTART
4310 ; GFX90A-NEXT: ; def v[0:3]
4311 ; GFX90A-NEXT: ;;#ASMEND
4312 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
4313 ; GFX90A-NEXT: v_mov_b32_e32 v1, v2
4314 ; GFX90A-NEXT: v_mov_b32_e32 v3, v2
4315 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
4316 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
4317 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
4319 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__u_2_2_2:
4321 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4322 ; GFX940-NEXT: ;;#ASMSTART
4323 ; GFX940-NEXT: ; def v[0:3]
4324 ; GFX940-NEXT: ;;#ASMEND
4325 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
4326 ; GFX940-NEXT: v_mov_b32_e32 v1, v2
4327 ; GFX940-NEXT: v_mov_b32_e32 v3, v2
4328 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
4329 ; GFX940-NEXT: s_waitcnt vmcnt(0)
4330 ; GFX940-NEXT: s_setpc_b64 s[30:31]
4331 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
4332 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 poison, i32 2, i32 2, i32 2>
4333 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
4337 define void @v_shuffle_v4p3_v4p3__0_2_2_2(ptr addrspace(1) inreg %ptr) {
4338 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__0_2_2_2:
4340 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4341 ; GFX900-NEXT: ;;#ASMSTART
4342 ; GFX900-NEXT: ; def v[0:3]
4343 ; GFX900-NEXT: ;;#ASMEND
4344 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
4345 ; GFX900-NEXT: v_mov_b32_e32 v1, v2
4346 ; GFX900-NEXT: v_mov_b32_e32 v3, v2
4347 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
4348 ; GFX900-NEXT: s_waitcnt vmcnt(0)
4349 ; GFX900-NEXT: s_setpc_b64 s[30:31]
4351 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__0_2_2_2:
4353 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4354 ; GFX90A-NEXT: ;;#ASMSTART
4355 ; GFX90A-NEXT: ; def v[0:3]
4356 ; GFX90A-NEXT: ;;#ASMEND
4357 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
4358 ; GFX90A-NEXT: v_mov_b32_e32 v1, v2
4359 ; GFX90A-NEXT: v_mov_b32_e32 v3, v2
4360 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
4361 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
4362 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
4364 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__0_2_2_2:
4366 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4367 ; GFX940-NEXT: ;;#ASMSTART
4368 ; GFX940-NEXT: ; def v[0:3]
4369 ; GFX940-NEXT: ;;#ASMEND
4370 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
4371 ; GFX940-NEXT: v_mov_b32_e32 v1, v2
4372 ; GFX940-NEXT: v_mov_b32_e32 v3, v2
4373 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
4374 ; GFX940-NEXT: s_waitcnt vmcnt(0)
4375 ; GFX940-NEXT: s_setpc_b64 s[30:31]
4376 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
4377 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 0, i32 2, i32 2, i32 2>
4378 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
4382 define void @v_shuffle_v4p3_v4p3__1_2_2_2(ptr addrspace(1) inreg %ptr) {
4383 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__1_2_2_2:
4385 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4386 ; GFX900-NEXT: ;;#ASMSTART
4387 ; GFX900-NEXT: ; def v[0:3]
4388 ; GFX900-NEXT: ;;#ASMEND
4389 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
4390 ; GFX900-NEXT: v_mov_b32_e32 v0, v1
4391 ; GFX900-NEXT: v_mov_b32_e32 v1, v2
4392 ; GFX900-NEXT: v_mov_b32_e32 v3, v2
4393 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
4394 ; GFX900-NEXT: s_waitcnt vmcnt(0)
4395 ; GFX900-NEXT: s_setpc_b64 s[30:31]
4397 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__1_2_2_2:
4399 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4400 ; GFX90A-NEXT: ;;#ASMSTART
4401 ; GFX90A-NEXT: ; def v[0:3]
4402 ; GFX90A-NEXT: ;;#ASMEND
4403 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
4404 ; GFX90A-NEXT: v_pk_mov_b32 v[0:1], v[0:1], v[2:3] op_sel:[1,0]
4405 ; GFX90A-NEXT: v_mov_b32_e32 v3, v2
4406 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
4407 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
4408 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
4410 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__1_2_2_2:
4412 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4413 ; GFX940-NEXT: ;;#ASMSTART
4414 ; GFX940-NEXT: ; def v[0:3]
4415 ; GFX940-NEXT: ;;#ASMEND
4416 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
4417 ; GFX940-NEXT: v_pk_mov_b32 v[0:1], v[0:1], v[2:3] op_sel:[1,0]
4418 ; GFX940-NEXT: v_mov_b32_e32 v3, v2
4419 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
4420 ; GFX940-NEXT: s_waitcnt vmcnt(0)
4421 ; GFX940-NEXT: s_setpc_b64 s[30:31]
4422 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
4423 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 1, i32 2, i32 2, i32 2>
4424 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
4428 define void @v_shuffle_v4p3_v4p3__2_2_2_2(ptr addrspace(1) inreg %ptr) {
4429 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__2_2_2_2:
4431 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4432 ; GFX900-NEXT: ;;#ASMSTART
4433 ; GFX900-NEXT: ; def v[0:3]
4434 ; GFX900-NEXT: ;;#ASMEND
4435 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
4436 ; GFX900-NEXT: v_mov_b32_e32 v0, v2
4437 ; GFX900-NEXT: v_mov_b32_e32 v1, v2
4438 ; GFX900-NEXT: v_mov_b32_e32 v3, v2
4439 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
4440 ; GFX900-NEXT: s_waitcnt vmcnt(0)
4441 ; GFX900-NEXT: s_setpc_b64 s[30:31]
4443 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__2_2_2_2:
4445 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4446 ; GFX90A-NEXT: ;;#ASMSTART
4447 ; GFX90A-NEXT: ; def v[0:3]
4448 ; GFX90A-NEXT: ;;#ASMEND
4449 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
4450 ; GFX90A-NEXT: v_mov_b32_e32 v0, v2
4451 ; GFX90A-NEXT: v_mov_b32_e32 v1, v2
4452 ; GFX90A-NEXT: v_mov_b32_e32 v3, v2
4453 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
4454 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
4455 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
4457 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__2_2_2_2:
4459 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4460 ; GFX940-NEXT: ;;#ASMSTART
4461 ; GFX940-NEXT: ; def v[0:3]
4462 ; GFX940-NEXT: ;;#ASMEND
4463 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
4464 ; GFX940-NEXT: v_mov_b32_e32 v0, v2
4465 ; GFX940-NEXT: v_mov_b32_e32 v1, v2
4466 ; GFX940-NEXT: v_mov_b32_e32 v3, v2
4467 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
4468 ; GFX940-NEXT: s_waitcnt vmcnt(0)
4469 ; GFX940-NEXT: s_setpc_b64 s[30:31]
4470 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
4471 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 2, i32 2, i32 2, i32 2>
4472 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
4476 define void @v_shuffle_v4p3_v4p3__3_2_2_2(ptr addrspace(1) inreg %ptr) {
4477 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__3_2_2_2:
4479 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4480 ; GFX900-NEXT: ;;#ASMSTART
4481 ; GFX900-NEXT: ; def v[0:3]
4482 ; GFX900-NEXT: ;;#ASMEND
4483 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
4484 ; GFX900-NEXT: v_mov_b32_e32 v0, v3
4485 ; GFX900-NEXT: v_mov_b32_e32 v1, v2
4486 ; GFX900-NEXT: v_mov_b32_e32 v3, v2
4487 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
4488 ; GFX900-NEXT: s_waitcnt vmcnt(0)
4489 ; GFX900-NEXT: s_setpc_b64 s[30:31]
4491 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__3_2_2_2:
4493 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4494 ; GFX90A-NEXT: ;;#ASMSTART
4495 ; GFX90A-NEXT: ; def v[0:3]
4496 ; GFX90A-NEXT: ;;#ASMEND
4497 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
4498 ; GFX90A-NEXT: v_pk_mov_b32 v[0:1], v[2:3], v[2:3] op_sel:[1,0]
4499 ; GFX90A-NEXT: v_mov_b32_e32 v3, v2
4500 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
4501 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
4502 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
4504 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__3_2_2_2:
4506 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4507 ; GFX940-NEXT: ;;#ASMSTART
4508 ; GFX940-NEXT: ; def v[0:3]
4509 ; GFX940-NEXT: ;;#ASMEND
4510 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
4511 ; GFX940-NEXT: v_pk_mov_b32 v[0:1], v[2:3], v[2:3] op_sel:[1,0]
4512 ; GFX940-NEXT: v_mov_b32_e32 v3, v2
4513 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
4514 ; GFX940-NEXT: s_waitcnt vmcnt(0)
4515 ; GFX940-NEXT: s_setpc_b64 s[30:31]
4516 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
4517 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 3, i32 2, i32 2, i32 2>
4518 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
4522 define void @v_shuffle_v4p3_v4p3__4_2_2_2(ptr addrspace(1) inreg %ptr) {
4523 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__4_2_2_2:
4525 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4526 ; GFX900-NEXT: ;;#ASMSTART
4527 ; GFX900-NEXT: ; def v[0:3]
4528 ; GFX900-NEXT: ;;#ASMEND
4529 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
4530 ; GFX900-NEXT: v_mov_b32_e32 v1, v2
4531 ; GFX900-NEXT: v_mov_b32_e32 v3, v2
4532 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
4533 ; GFX900-NEXT: s_waitcnt vmcnt(0)
4534 ; GFX900-NEXT: s_setpc_b64 s[30:31]
4536 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__4_2_2_2:
4538 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4539 ; GFX90A-NEXT: ;;#ASMSTART
4540 ; GFX90A-NEXT: ; def v[0:3]
4541 ; GFX90A-NEXT: ;;#ASMEND
4542 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
4543 ; GFX90A-NEXT: v_mov_b32_e32 v1, v2
4544 ; GFX90A-NEXT: v_mov_b32_e32 v3, v2
4545 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
4546 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
4547 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
4549 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__4_2_2_2:
4551 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4552 ; GFX940-NEXT: ;;#ASMSTART
4553 ; GFX940-NEXT: ; def v[0:3]
4554 ; GFX940-NEXT: ;;#ASMEND
4555 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
4556 ; GFX940-NEXT: v_mov_b32_e32 v1, v2
4557 ; GFX940-NEXT: v_mov_b32_e32 v3, v2
4558 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
4559 ; GFX940-NEXT: s_waitcnt vmcnt(0)
4560 ; GFX940-NEXT: s_setpc_b64 s[30:31]
4561 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
4562 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 4, i32 2, i32 2, i32 2>
4563 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
4567 define void @v_shuffle_v4p3_v4p3__5_2_2_2(ptr addrspace(1) inreg %ptr) {
4568 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__5_2_2_2:
4570 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4571 ; GFX900-NEXT: ;;#ASMSTART
4572 ; GFX900-NEXT: ; def v[0:3]
4573 ; GFX900-NEXT: ;;#ASMEND
4574 ; GFX900-NEXT: ;;#ASMSTART
4575 ; GFX900-NEXT: ; def v[3:6]
4576 ; GFX900-NEXT: ;;#ASMEND
4577 ; GFX900-NEXT: v_mov_b32_e32 v7, 0
4578 ; GFX900-NEXT: v_mov_b32_e32 v0, v4
4579 ; GFX900-NEXT: v_mov_b32_e32 v1, v2
4580 ; GFX900-NEXT: v_mov_b32_e32 v3, v2
4581 ; GFX900-NEXT: global_store_dwordx4 v7, v[0:3], s[16:17]
4582 ; GFX900-NEXT: s_waitcnt vmcnt(0)
4583 ; GFX900-NEXT: s_setpc_b64 s[30:31]
4585 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__5_2_2_2:
4587 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4588 ; GFX90A-NEXT: ;;#ASMSTART
4589 ; GFX90A-NEXT: ; def v[0:3]
4590 ; GFX90A-NEXT: ;;#ASMEND
4591 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
4592 ; GFX90A-NEXT: ;;#ASMSTART
4593 ; GFX90A-NEXT: ; def v[4:7]
4594 ; GFX90A-NEXT: ;;#ASMEND
4595 ; GFX90A-NEXT: v_pk_mov_b32 v[0:1], v[4:5], v[2:3] op_sel:[1,0]
4596 ; GFX90A-NEXT: v_mov_b32_e32 v3, v2
4597 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
4598 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
4599 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
4601 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__5_2_2_2:
4603 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4604 ; GFX940-NEXT: ;;#ASMSTART
4605 ; GFX940-NEXT: ; def v[0:3]
4606 ; GFX940-NEXT: ;;#ASMEND
4607 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
4608 ; GFX940-NEXT: ;;#ASMSTART
4609 ; GFX940-NEXT: ; def v[4:7]
4610 ; GFX940-NEXT: ;;#ASMEND
4611 ; GFX940-NEXT: s_nop 0
4612 ; GFX940-NEXT: v_pk_mov_b32 v[0:1], v[4:5], v[2:3] op_sel:[1,0]
4613 ; GFX940-NEXT: v_mov_b32_e32 v3, v2
4614 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
4615 ; GFX940-NEXT: s_waitcnt vmcnt(0)
4616 ; GFX940-NEXT: s_setpc_b64 s[30:31]
4617 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
4618 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
4619 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 5, i32 2, i32 2, i32 2>
4620 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
4624 define void @v_shuffle_v4p3_v4p3__6_2_2_2(ptr addrspace(1) inreg %ptr) {
4625 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__6_2_2_2:
4627 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4628 ; GFX900-NEXT: ;;#ASMSTART
4629 ; GFX900-NEXT: ; def v[0:3]
4630 ; GFX900-NEXT: ;;#ASMEND
4631 ; GFX900-NEXT: ;;#ASMSTART
4632 ; GFX900-NEXT: ; def v[3:6]
4633 ; GFX900-NEXT: ;;#ASMEND
4634 ; GFX900-NEXT: v_mov_b32_e32 v7, 0
4635 ; GFX900-NEXT: v_mov_b32_e32 v0, v5
4636 ; GFX900-NEXT: v_mov_b32_e32 v1, v2
4637 ; GFX900-NEXT: v_mov_b32_e32 v3, v2
4638 ; GFX900-NEXT: global_store_dwordx4 v7, v[0:3], s[16:17]
4639 ; GFX900-NEXT: s_waitcnt vmcnt(0)
4640 ; GFX900-NEXT: s_setpc_b64 s[30:31]
4642 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__6_2_2_2:
4644 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4645 ; GFX90A-NEXT: ;;#ASMSTART
4646 ; GFX90A-NEXT: ; def v[0:3]
4647 ; GFX90A-NEXT: ;;#ASMEND
4648 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
4649 ; GFX90A-NEXT: ;;#ASMSTART
4650 ; GFX90A-NEXT: ; def v[4:7]
4651 ; GFX90A-NEXT: ;;#ASMEND
4652 ; GFX90A-NEXT: v_mov_b32_e32 v0, v6
4653 ; GFX90A-NEXT: v_mov_b32_e32 v1, v2
4654 ; GFX90A-NEXT: v_mov_b32_e32 v3, v2
4655 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
4656 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
4657 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
4659 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__6_2_2_2:
4661 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4662 ; GFX940-NEXT: ;;#ASMSTART
4663 ; GFX940-NEXT: ; def v[0:3]
4664 ; GFX940-NEXT: ;;#ASMEND
4665 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
4666 ; GFX940-NEXT: ;;#ASMSTART
4667 ; GFX940-NEXT: ; def v[4:7]
4668 ; GFX940-NEXT: ;;#ASMEND
4669 ; GFX940-NEXT: v_mov_b32_e32 v1, v2
4670 ; GFX940-NEXT: v_mov_b32_e32 v0, v6
4671 ; GFX940-NEXT: v_mov_b32_e32 v3, v2
4672 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
4673 ; GFX940-NEXT: s_waitcnt vmcnt(0)
4674 ; GFX940-NEXT: s_setpc_b64 s[30:31]
4675 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
4676 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
4677 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 6, i32 2, i32 2, i32 2>
4678 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
4682 define void @v_shuffle_v4p3_v4p3__7_2_2_2(ptr addrspace(1) inreg %ptr) {
4683 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_2_2_2:
4685 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4686 ; GFX900-NEXT: ;;#ASMSTART
4687 ; GFX900-NEXT: ; def v[0:3]
4688 ; GFX900-NEXT: ;;#ASMEND
4689 ; GFX900-NEXT: ;;#ASMSTART
4690 ; GFX900-NEXT: ; def v[3:6]
4691 ; GFX900-NEXT: ;;#ASMEND
4692 ; GFX900-NEXT: v_mov_b32_e32 v7, 0
4693 ; GFX900-NEXT: v_mov_b32_e32 v0, v6
4694 ; GFX900-NEXT: v_mov_b32_e32 v1, v2
4695 ; GFX900-NEXT: v_mov_b32_e32 v3, v2
4696 ; GFX900-NEXT: global_store_dwordx4 v7, v[0:3], s[16:17]
4697 ; GFX900-NEXT: s_waitcnt vmcnt(0)
4698 ; GFX900-NEXT: s_setpc_b64 s[30:31]
4700 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_2_2_2:
4702 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4703 ; GFX90A-NEXT: ;;#ASMSTART
4704 ; GFX90A-NEXT: ; def v[0:3]
4705 ; GFX90A-NEXT: ;;#ASMEND
4706 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
4707 ; GFX90A-NEXT: ;;#ASMSTART
4708 ; GFX90A-NEXT: ; def v[4:7]
4709 ; GFX90A-NEXT: ;;#ASMEND
4710 ; GFX90A-NEXT: v_pk_mov_b32 v[0:1], v[6:7], v[2:3] op_sel:[1,0]
4711 ; GFX90A-NEXT: v_mov_b32_e32 v3, v2
4712 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
4713 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
4714 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
4716 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_2_2_2:
4718 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4719 ; GFX940-NEXT: ;;#ASMSTART
4720 ; GFX940-NEXT: ; def v[0:3]
4721 ; GFX940-NEXT: ;;#ASMEND
4722 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
4723 ; GFX940-NEXT: ;;#ASMSTART
4724 ; GFX940-NEXT: ; def v[4:7]
4725 ; GFX940-NEXT: ;;#ASMEND
4726 ; GFX940-NEXT: s_nop 0
4727 ; GFX940-NEXT: v_pk_mov_b32 v[0:1], v[6:7], v[2:3] op_sel:[1,0]
4728 ; GFX940-NEXT: v_mov_b32_e32 v3, v2
4729 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
4730 ; GFX940-NEXT: s_waitcnt vmcnt(0)
4731 ; GFX940-NEXT: s_setpc_b64 s[30:31]
4732 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
4733 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
4734 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 2, i32 2, i32 2>
4735 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
4739 define void @v_shuffle_v4p3_v4p3__7_u_2_2(ptr addrspace(1) inreg %ptr) {
4740 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_u_2_2:
4742 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4743 ; GFX900-NEXT: ;;#ASMSTART
4744 ; GFX900-NEXT: ; def v[0:3]
4745 ; GFX900-NEXT: ;;#ASMEND
4746 ; GFX900-NEXT: ;;#ASMSTART
4747 ; GFX900-NEXT: ; def v[3:6]
4748 ; GFX900-NEXT: ;;#ASMEND
4749 ; GFX900-NEXT: v_mov_b32_e32 v7, 0
4750 ; GFX900-NEXT: v_mov_b32_e32 v0, v6
4751 ; GFX900-NEXT: v_mov_b32_e32 v3, v2
4752 ; GFX900-NEXT: global_store_dwordx4 v7, v[0:3], s[16:17]
4753 ; GFX900-NEXT: s_waitcnt vmcnt(0)
4754 ; GFX900-NEXT: s_setpc_b64 s[30:31]
4756 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_u_2_2:
4758 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4759 ; GFX90A-NEXT: ;;#ASMSTART
4760 ; GFX90A-NEXT: ; def v[0:3]
4761 ; GFX90A-NEXT: ;;#ASMEND
4762 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
4763 ; GFX90A-NEXT: ;;#ASMSTART
4764 ; GFX90A-NEXT: ; def v[4:7]
4765 ; GFX90A-NEXT: ;;#ASMEND
4766 ; GFX90A-NEXT: v_mov_b32_e32 v0, v7
4767 ; GFX90A-NEXT: v_mov_b32_e32 v3, v2
4768 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
4769 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
4770 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
4772 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_u_2_2:
4774 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4775 ; GFX940-NEXT: ;;#ASMSTART
4776 ; GFX940-NEXT: ; def v[0:3]
4777 ; GFX940-NEXT: ;;#ASMEND
4778 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
4779 ; GFX940-NEXT: ;;#ASMSTART
4780 ; GFX940-NEXT: ; def v[4:7]
4781 ; GFX940-NEXT: ;;#ASMEND
4782 ; GFX940-NEXT: v_mov_b32_e32 v3, v2
4783 ; GFX940-NEXT: v_mov_b32_e32 v0, v7
4784 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
4785 ; GFX940-NEXT: s_waitcnt vmcnt(0)
4786 ; GFX940-NEXT: s_setpc_b64 s[30:31]
4787 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
4788 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
4789 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 poison, i32 2, i32 2>
4790 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
4794 define void @v_shuffle_v4p3_v4p3__7_0_2_2(ptr addrspace(1) inreg %ptr) {
4795 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_0_2_2:
4797 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4798 ; GFX900-NEXT: ;;#ASMSTART
4799 ; GFX900-NEXT: ; def v[0:3]
4800 ; GFX900-NEXT: ;;#ASMEND
4801 ; GFX900-NEXT: ;;#ASMSTART
4802 ; GFX900-NEXT: ; def v[3:6]
4803 ; GFX900-NEXT: ;;#ASMEND
4804 ; GFX900-NEXT: v_mov_b32_e32 v7, 0
4805 ; GFX900-NEXT: v_mov_b32_e32 v3, v6
4806 ; GFX900-NEXT: v_mov_b32_e32 v4, v0
4807 ; GFX900-NEXT: v_mov_b32_e32 v5, v2
4808 ; GFX900-NEXT: v_mov_b32_e32 v6, v2
4809 ; GFX900-NEXT: global_store_dwordx4 v7, v[3:6], s[16:17]
4810 ; GFX900-NEXT: s_waitcnt vmcnt(0)
4811 ; GFX900-NEXT: s_setpc_b64 s[30:31]
4813 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_0_2_2:
4815 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4816 ; GFX90A-NEXT: ;;#ASMSTART
4817 ; GFX90A-NEXT: ; def v[0:3]
4818 ; GFX90A-NEXT: ;;#ASMEND
4819 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
4820 ; GFX90A-NEXT: ;;#ASMSTART
4821 ; GFX90A-NEXT: ; def v[4:7]
4822 ; GFX90A-NEXT: ;;#ASMEND
4823 ; GFX90A-NEXT: v_pk_mov_b32 v[0:1], v[6:7], v[0:1] op_sel:[1,0]
4824 ; GFX90A-NEXT: v_mov_b32_e32 v3, v2
4825 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
4826 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
4827 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
4829 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_0_2_2:
4831 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4832 ; GFX940-NEXT: ;;#ASMSTART
4833 ; GFX940-NEXT: ; def v[0:3]
4834 ; GFX940-NEXT: ;;#ASMEND
4835 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
4836 ; GFX940-NEXT: ;;#ASMSTART
4837 ; GFX940-NEXT: ; def v[4:7]
4838 ; GFX940-NEXT: ;;#ASMEND
4839 ; GFX940-NEXT: v_mov_b32_e32 v3, v2
4840 ; GFX940-NEXT: v_pk_mov_b32 v[0:1], v[6:7], v[0:1] op_sel:[1,0]
4841 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
4842 ; GFX940-NEXT: s_waitcnt vmcnt(0)
4843 ; GFX940-NEXT: s_setpc_b64 s[30:31]
4844 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
4845 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
4846 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 0, i32 2, i32 2>
4847 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
4851 define void @v_shuffle_v4p3_v4p3__7_1_2_2(ptr addrspace(1) inreg %ptr) {
4852 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_1_2_2:
4854 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4855 ; GFX900-NEXT: ;;#ASMSTART
4856 ; GFX900-NEXT: ; def v[0:3]
4857 ; GFX900-NEXT: ;;#ASMEND
4858 ; GFX900-NEXT: ;;#ASMSTART
4859 ; GFX900-NEXT: ; def v[3:6]
4860 ; GFX900-NEXT: ;;#ASMEND
4861 ; GFX900-NEXT: v_mov_b32_e32 v7, 0
4862 ; GFX900-NEXT: v_mov_b32_e32 v0, v6
4863 ; GFX900-NEXT: v_mov_b32_e32 v3, v2
4864 ; GFX900-NEXT: global_store_dwordx4 v7, v[0:3], s[16:17]
4865 ; GFX900-NEXT: s_waitcnt vmcnt(0)
4866 ; GFX900-NEXT: s_setpc_b64 s[30:31]
4868 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_1_2_2:
4870 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4871 ; GFX90A-NEXT: ;;#ASMSTART
4872 ; GFX90A-NEXT: ; def v[0:3]
4873 ; GFX90A-NEXT: ;;#ASMEND
4874 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
4875 ; GFX90A-NEXT: ;;#ASMSTART
4876 ; GFX90A-NEXT: ; def v[4:7]
4877 ; GFX90A-NEXT: ;;#ASMEND
4878 ; GFX90A-NEXT: v_mov_b32_e32 v0, v7
4879 ; GFX90A-NEXT: v_mov_b32_e32 v3, v2
4880 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
4881 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
4882 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
4884 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_1_2_2:
4886 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4887 ; GFX940-NEXT: ;;#ASMSTART
4888 ; GFX940-NEXT: ; def v[0:3]
4889 ; GFX940-NEXT: ;;#ASMEND
4890 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
4891 ; GFX940-NEXT: ;;#ASMSTART
4892 ; GFX940-NEXT: ; def v[4:7]
4893 ; GFX940-NEXT: ;;#ASMEND
4894 ; GFX940-NEXT: v_mov_b32_e32 v3, v2
4895 ; GFX940-NEXT: v_mov_b32_e32 v0, v7
4896 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
4897 ; GFX940-NEXT: s_waitcnt vmcnt(0)
4898 ; GFX940-NEXT: s_setpc_b64 s[30:31]
4899 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
4900 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
4901 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 1, i32 2, i32 2>
4902 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
4906 define void @v_shuffle_v4p3_v4p3__7_3_2_2(ptr addrspace(1) inreg %ptr) {
4907 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_3_2_2:
4909 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4910 ; GFX900-NEXT: ;;#ASMSTART
4911 ; GFX900-NEXT: ; def v[0:3]
4912 ; GFX900-NEXT: ;;#ASMEND
4913 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
4914 ; GFX900-NEXT: ;;#ASMSTART
4915 ; GFX900-NEXT: ; def v[4:7]
4916 ; GFX900-NEXT: ;;#ASMEND
4917 ; GFX900-NEXT: v_mov_b32_e32 v0, v7
4918 ; GFX900-NEXT: v_mov_b32_e32 v1, v3
4919 ; GFX900-NEXT: v_mov_b32_e32 v3, v2
4920 ; GFX900-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
4921 ; GFX900-NEXT: s_waitcnt vmcnt(0)
4922 ; GFX900-NEXT: s_setpc_b64 s[30:31]
4924 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_3_2_2:
4926 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4927 ; GFX90A-NEXT: ;;#ASMSTART
4928 ; GFX90A-NEXT: ; def v[0:3]
4929 ; GFX90A-NEXT: ;;#ASMEND
4930 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
4931 ; GFX90A-NEXT: ;;#ASMSTART
4932 ; GFX90A-NEXT: ; def v[4:7]
4933 ; GFX90A-NEXT: ;;#ASMEND
4934 ; GFX90A-NEXT: v_mov_b32_e32 v0, v7
4935 ; GFX90A-NEXT: v_mov_b32_e32 v1, v3
4936 ; GFX90A-NEXT: v_mov_b32_e32 v3, v2
4937 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
4938 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
4939 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
4941 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_3_2_2:
4943 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4944 ; GFX940-NEXT: ;;#ASMSTART
4945 ; GFX940-NEXT: ; def v[0:3]
4946 ; GFX940-NEXT: ;;#ASMEND
4947 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
4948 ; GFX940-NEXT: ;;#ASMSTART
4949 ; GFX940-NEXT: ; def v[4:7]
4950 ; GFX940-NEXT: ;;#ASMEND
4951 ; GFX940-NEXT: v_mov_b32_e32 v1, v3
4952 ; GFX940-NEXT: v_mov_b32_e32 v0, v7
4953 ; GFX940-NEXT: v_mov_b32_e32 v3, v2
4954 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
4955 ; GFX940-NEXT: s_waitcnt vmcnt(0)
4956 ; GFX940-NEXT: s_setpc_b64 s[30:31]
4957 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
4958 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
4959 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 3, i32 2, i32 2>
4960 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
4964 define void @v_shuffle_v4p3_v4p3__7_4_2_2(ptr addrspace(1) inreg %ptr) {
4965 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_4_2_2:
4967 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4968 ; GFX900-NEXT: ;;#ASMSTART
4969 ; GFX900-NEXT: ; def v[0:3]
4970 ; GFX900-NEXT: ;;#ASMEND
4971 ; GFX900-NEXT: ;;#ASMSTART
4972 ; GFX900-NEXT: ; def v[3:6]
4973 ; GFX900-NEXT: ;;#ASMEND
4974 ; GFX900-NEXT: v_mov_b32_e32 v7, 0
4975 ; GFX900-NEXT: v_mov_b32_e32 v0, v6
4976 ; GFX900-NEXT: v_mov_b32_e32 v1, v3
4977 ; GFX900-NEXT: v_mov_b32_e32 v3, v2
4978 ; GFX900-NEXT: global_store_dwordx4 v7, v[0:3], s[16:17]
4979 ; GFX900-NEXT: s_waitcnt vmcnt(0)
4980 ; GFX900-NEXT: s_setpc_b64 s[30:31]
4982 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_4_2_2:
4984 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
4985 ; GFX90A-NEXT: ;;#ASMSTART
4986 ; GFX90A-NEXT: ; def v[0:3]
4987 ; GFX90A-NEXT: ;;#ASMEND
4988 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
4989 ; GFX90A-NEXT: ;;#ASMSTART
4990 ; GFX90A-NEXT: ; def v[4:7]
4991 ; GFX90A-NEXT: ;;#ASMEND
4992 ; GFX90A-NEXT: v_pk_mov_b32 v[0:1], v[6:7], v[4:5] op_sel:[1,0]
4993 ; GFX90A-NEXT: v_mov_b32_e32 v3, v2
4994 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
4995 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
4996 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
4998 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_4_2_2:
5000 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5001 ; GFX940-NEXT: ;;#ASMSTART
5002 ; GFX940-NEXT: ; def v[0:3]
5003 ; GFX940-NEXT: ;;#ASMEND
5004 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
5005 ; GFX940-NEXT: ;;#ASMSTART
5006 ; GFX940-NEXT: ; def v[4:7]
5007 ; GFX940-NEXT: ;;#ASMEND
5008 ; GFX940-NEXT: v_mov_b32_e32 v3, v2
5009 ; GFX940-NEXT: v_pk_mov_b32 v[0:1], v[6:7], v[4:5] op_sel:[1,0]
5010 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
5011 ; GFX940-NEXT: s_waitcnt vmcnt(0)
5012 ; GFX940-NEXT: s_setpc_b64 s[30:31]
5013 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
5014 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
5015 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 4, i32 2, i32 2>
5016 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
5020 define void @v_shuffle_v4p3_v4p3__7_5_2_2(ptr addrspace(1) inreg %ptr) {
5021 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_5_2_2:
5023 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5024 ; GFX900-NEXT: ;;#ASMSTART
5025 ; GFX900-NEXT: ; def v[0:3]
5026 ; GFX900-NEXT: ;;#ASMEND
5027 ; GFX900-NEXT: ;;#ASMSTART
5028 ; GFX900-NEXT: ; def v[3:6]
5029 ; GFX900-NEXT: ;;#ASMEND
5030 ; GFX900-NEXT: v_mov_b32_e32 v7, 0
5031 ; GFX900-NEXT: v_mov_b32_e32 v3, v6
5032 ; GFX900-NEXT: v_mov_b32_e32 v5, v2
5033 ; GFX900-NEXT: v_mov_b32_e32 v6, v2
5034 ; GFX900-NEXT: global_store_dwordx4 v7, v[3:6], s[16:17]
5035 ; GFX900-NEXT: s_waitcnt vmcnt(0)
5036 ; GFX900-NEXT: s_setpc_b64 s[30:31]
5038 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_5_2_2:
5040 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5041 ; GFX90A-NEXT: ;;#ASMSTART
5042 ; GFX90A-NEXT: ; def v[4:7]
5043 ; GFX90A-NEXT: ;;#ASMEND
5044 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
5045 ; GFX90A-NEXT: ;;#ASMSTART
5046 ; GFX90A-NEXT: ; def v[0:3]
5047 ; GFX90A-NEXT: ;;#ASMEND
5048 ; GFX90A-NEXT: v_mov_b32_e32 v4, v7
5049 ; GFX90A-NEXT: v_mov_b32_e32 v6, v2
5050 ; GFX90A-NEXT: v_mov_b32_e32 v7, v2
5051 ; GFX90A-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
5052 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
5053 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
5055 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_5_2_2:
5057 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5058 ; GFX940-NEXT: ;;#ASMSTART
5059 ; GFX940-NEXT: ; def v[4:7]
5060 ; GFX940-NEXT: ;;#ASMEND
5061 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
5062 ; GFX940-NEXT: ;;#ASMSTART
5063 ; GFX940-NEXT: ; def v[0:3]
5064 ; GFX940-NEXT: ;;#ASMEND
5065 ; GFX940-NEXT: v_mov_b32_e32 v4, v7
5066 ; GFX940-NEXT: v_mov_b32_e32 v6, v2
5067 ; GFX940-NEXT: v_mov_b32_e32 v7, v2
5068 ; GFX940-NEXT: global_store_dwordx4 v8, v[4:7], s[0:1] sc0 sc1
5069 ; GFX940-NEXT: s_waitcnt vmcnt(0)
5070 ; GFX940-NEXT: s_setpc_b64 s[30:31]
5071 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
5072 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
5073 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 5, i32 2, i32 2>
5074 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
5078 define void @v_shuffle_v4p3_v4p3__7_6_2_2(ptr addrspace(1) inreg %ptr) {
5079 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_6_2_2:
5081 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5082 ; GFX900-NEXT: ;;#ASMSTART
5083 ; GFX900-NEXT: ; def v[0:3]
5084 ; GFX900-NEXT: ;;#ASMEND
5085 ; GFX900-NEXT: ;;#ASMSTART
5086 ; GFX900-NEXT: ; def v[3:6]
5087 ; GFX900-NEXT: ;;#ASMEND
5088 ; GFX900-NEXT: v_mov_b32_e32 v7, 0
5089 ; GFX900-NEXT: v_mov_b32_e32 v0, v6
5090 ; GFX900-NEXT: v_mov_b32_e32 v1, v5
5091 ; GFX900-NEXT: v_mov_b32_e32 v3, v2
5092 ; GFX900-NEXT: global_store_dwordx4 v7, v[0:3], s[16:17]
5093 ; GFX900-NEXT: s_waitcnt vmcnt(0)
5094 ; GFX900-NEXT: s_setpc_b64 s[30:31]
5096 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_6_2_2:
5098 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5099 ; GFX90A-NEXT: ;;#ASMSTART
5100 ; GFX90A-NEXT: ; def v[0:3]
5101 ; GFX90A-NEXT: ;;#ASMEND
5102 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
5103 ; GFX90A-NEXT: ;;#ASMSTART
5104 ; GFX90A-NEXT: ; def v[4:7]
5105 ; GFX90A-NEXT: ;;#ASMEND
5106 ; GFX90A-NEXT: v_pk_mov_b32 v[0:1], v[6:7], v[6:7] op_sel:[1,0]
5107 ; GFX90A-NEXT: v_mov_b32_e32 v3, v2
5108 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
5109 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
5110 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
5112 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_6_2_2:
5114 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5115 ; GFX940-NEXT: ;;#ASMSTART
5116 ; GFX940-NEXT: ; def v[0:3]
5117 ; GFX940-NEXT: ;;#ASMEND
5118 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
5119 ; GFX940-NEXT: ;;#ASMSTART
5120 ; GFX940-NEXT: ; def v[4:7]
5121 ; GFX940-NEXT: ;;#ASMEND
5122 ; GFX940-NEXT: v_mov_b32_e32 v3, v2
5123 ; GFX940-NEXT: v_pk_mov_b32 v[0:1], v[6:7], v[6:7] op_sel:[1,0]
5124 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
5125 ; GFX940-NEXT: s_waitcnt vmcnt(0)
5126 ; GFX940-NEXT: s_setpc_b64 s[30:31]
5127 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
5128 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
5129 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 6, i32 2, i32 2>
5130 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
5134 define void @v_shuffle_v4p3_v4p3__7_7_2_2(ptr addrspace(1) inreg %ptr) {
5135 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_2_2:
5137 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5138 ; GFX900-NEXT: ;;#ASMSTART
5139 ; GFX900-NEXT: ; def v[0:3]
5140 ; GFX900-NEXT: ;;#ASMEND
5141 ; GFX900-NEXT: ;;#ASMSTART
5142 ; GFX900-NEXT: ; def v[3:6]
5143 ; GFX900-NEXT: ;;#ASMEND
5144 ; GFX900-NEXT: v_mov_b32_e32 v7, 0
5145 ; GFX900-NEXT: v_mov_b32_e32 v0, v6
5146 ; GFX900-NEXT: v_mov_b32_e32 v1, v6
5147 ; GFX900-NEXT: v_mov_b32_e32 v3, v2
5148 ; GFX900-NEXT: global_store_dwordx4 v7, v[0:3], s[16:17]
5149 ; GFX900-NEXT: s_waitcnt vmcnt(0)
5150 ; GFX900-NEXT: s_setpc_b64 s[30:31]
5152 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_2_2:
5154 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5155 ; GFX90A-NEXT: ;;#ASMSTART
5156 ; GFX90A-NEXT: ; def v[0:3]
5157 ; GFX90A-NEXT: ;;#ASMEND
5158 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
5159 ; GFX90A-NEXT: ;;#ASMSTART
5160 ; GFX90A-NEXT: ; def v[4:7]
5161 ; GFX90A-NEXT: ;;#ASMEND
5162 ; GFX90A-NEXT: v_mov_b32_e32 v0, v7
5163 ; GFX90A-NEXT: v_mov_b32_e32 v1, v7
5164 ; GFX90A-NEXT: v_mov_b32_e32 v3, v2
5165 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
5166 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
5167 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
5169 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_2_2:
5171 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5172 ; GFX940-NEXT: ;;#ASMSTART
5173 ; GFX940-NEXT: ; def v[0:3]
5174 ; GFX940-NEXT: ;;#ASMEND
5175 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
5176 ; GFX940-NEXT: ;;#ASMSTART
5177 ; GFX940-NEXT: ; def v[4:7]
5178 ; GFX940-NEXT: ;;#ASMEND
5179 ; GFX940-NEXT: v_mov_b32_e32 v3, v2
5180 ; GFX940-NEXT: v_mov_b32_e32 v0, v7
5181 ; GFX940-NEXT: v_mov_b32_e32 v1, v7
5182 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
5183 ; GFX940-NEXT: s_waitcnt vmcnt(0)
5184 ; GFX940-NEXT: s_setpc_b64 s[30:31]
5185 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
5186 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
5187 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 2, i32 2>
5188 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
5192 define void @v_shuffle_v4p3_v4p3__7_7_u_2(ptr addrspace(1) inreg %ptr) {
5193 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_u_2:
5195 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5196 ; GFX900-NEXT: ;;#ASMSTART
5197 ; GFX900-NEXT: ; def v[0:3]
5198 ; GFX900-NEXT: ;;#ASMEND
5199 ; GFX900-NEXT: ;;#ASMSTART
5200 ; GFX900-NEXT: ; def v[3:6]
5201 ; GFX900-NEXT: ;;#ASMEND
5202 ; GFX900-NEXT: v_mov_b32_e32 v7, 0
5203 ; GFX900-NEXT: v_mov_b32_e32 v0, v6
5204 ; GFX900-NEXT: v_mov_b32_e32 v1, v6
5205 ; GFX900-NEXT: v_mov_b32_e32 v3, v2
5206 ; GFX900-NEXT: global_store_dwordx4 v7, v[0:3], s[16:17]
5207 ; GFX900-NEXT: s_waitcnt vmcnt(0)
5208 ; GFX900-NEXT: s_setpc_b64 s[30:31]
5210 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_u_2:
5212 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5213 ; GFX90A-NEXT: ;;#ASMSTART
5214 ; GFX90A-NEXT: ; def v[0:3]
5215 ; GFX90A-NEXT: ;;#ASMEND
5216 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
5217 ; GFX90A-NEXT: ;;#ASMSTART
5218 ; GFX90A-NEXT: ; def v[4:7]
5219 ; GFX90A-NEXT: ;;#ASMEND
5220 ; GFX90A-NEXT: v_mov_b32_e32 v0, v7
5221 ; GFX90A-NEXT: v_mov_b32_e32 v1, v7
5222 ; GFX90A-NEXT: v_mov_b32_e32 v3, v2
5223 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
5224 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
5225 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
5227 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_u_2:
5229 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5230 ; GFX940-NEXT: ;;#ASMSTART
5231 ; GFX940-NEXT: ; def v[0:3]
5232 ; GFX940-NEXT: ;;#ASMEND
5233 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
5234 ; GFX940-NEXT: ;;#ASMSTART
5235 ; GFX940-NEXT: ; def v[4:7]
5236 ; GFX940-NEXT: ;;#ASMEND
5237 ; GFX940-NEXT: v_mov_b32_e32 v3, v2
5238 ; GFX940-NEXT: v_mov_b32_e32 v0, v7
5239 ; GFX940-NEXT: v_mov_b32_e32 v1, v7
5240 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
5241 ; GFX940-NEXT: s_waitcnt vmcnt(0)
5242 ; GFX940-NEXT: s_setpc_b64 s[30:31]
5243 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
5244 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
5245 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 poison, i32 2>
5246 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
5250 define void @v_shuffle_v4p3_v4p3__7_7_0_2(ptr addrspace(1) inreg %ptr) {
5251 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_0_2:
5253 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5254 ; GFX900-NEXT: ;;#ASMSTART
5255 ; GFX900-NEXT: ; def v[0:3]
5256 ; GFX900-NEXT: ;;#ASMEND
5257 ; GFX900-NEXT: ;;#ASMSTART
5258 ; GFX900-NEXT: ; def v[3:6]
5259 ; GFX900-NEXT: ;;#ASMEND
5260 ; GFX900-NEXT: v_mov_b32_e32 v7, 0
5261 ; GFX900-NEXT: v_mov_b32_e32 v3, v6
5262 ; GFX900-NEXT: v_mov_b32_e32 v4, v6
5263 ; GFX900-NEXT: v_mov_b32_e32 v5, v0
5264 ; GFX900-NEXT: v_mov_b32_e32 v6, v2
5265 ; GFX900-NEXT: global_store_dwordx4 v7, v[3:6], s[16:17]
5266 ; GFX900-NEXT: s_waitcnt vmcnt(0)
5267 ; GFX900-NEXT: s_setpc_b64 s[30:31]
5269 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_0_2:
5271 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5272 ; GFX90A-NEXT: ;;#ASMSTART
5273 ; GFX90A-NEXT: ; def v[4:7]
5274 ; GFX90A-NEXT: ;;#ASMEND
5275 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
5276 ; GFX90A-NEXT: ;;#ASMSTART
5277 ; GFX90A-NEXT: ; def v[0:3]
5278 ; GFX90A-NEXT: ;;#ASMEND
5279 ; GFX90A-NEXT: v_mov_b32_e32 v4, v7
5280 ; GFX90A-NEXT: v_mov_b32_e32 v5, v7
5281 ; GFX90A-NEXT: v_mov_b32_e32 v6, v0
5282 ; GFX90A-NEXT: v_mov_b32_e32 v7, v2
5283 ; GFX90A-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
5284 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
5285 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
5287 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_0_2:
5289 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5290 ; GFX940-NEXT: ;;#ASMSTART
5291 ; GFX940-NEXT: ; def v[4:7]
5292 ; GFX940-NEXT: ;;#ASMEND
5293 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
5294 ; GFX940-NEXT: ;;#ASMSTART
5295 ; GFX940-NEXT: ; def v[0:3]
5296 ; GFX940-NEXT: ;;#ASMEND
5297 ; GFX940-NEXT: v_mov_b32_e32 v4, v7
5298 ; GFX940-NEXT: v_mov_b32_e32 v5, v7
5299 ; GFX940-NEXT: v_mov_b32_e32 v6, v0
5300 ; GFX940-NEXT: v_mov_b32_e32 v7, v2
5301 ; GFX940-NEXT: global_store_dwordx4 v8, v[4:7], s[0:1] sc0 sc1
5302 ; GFX940-NEXT: s_waitcnt vmcnt(0)
5303 ; GFX940-NEXT: s_setpc_b64 s[30:31]
5304 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
5305 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
5306 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 0, i32 2>
5307 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
5311 define void @v_shuffle_v4p3_v4p3__7_7_1_2(ptr addrspace(1) inreg %ptr) {
5312 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_1_2:
5314 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5315 ; GFX900-NEXT: ;;#ASMSTART
5316 ; GFX900-NEXT: ; def v[0:3]
5317 ; GFX900-NEXT: ;;#ASMEND
5318 ; GFX900-NEXT: ;;#ASMSTART
5319 ; GFX900-NEXT: ; def v[3:6]
5320 ; GFX900-NEXT: ;;#ASMEND
5321 ; GFX900-NEXT: v_mov_b32_e32 v7, 0
5322 ; GFX900-NEXT: v_mov_b32_e32 v3, v6
5323 ; GFX900-NEXT: v_mov_b32_e32 v4, v6
5324 ; GFX900-NEXT: v_mov_b32_e32 v5, v1
5325 ; GFX900-NEXT: v_mov_b32_e32 v6, v2
5326 ; GFX900-NEXT: global_store_dwordx4 v7, v[3:6], s[16:17]
5327 ; GFX900-NEXT: s_waitcnt vmcnt(0)
5328 ; GFX900-NEXT: s_setpc_b64 s[30:31]
5330 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_1_2:
5332 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5333 ; GFX90A-NEXT: ;;#ASMSTART
5334 ; GFX90A-NEXT: ; def v[0:3]
5335 ; GFX90A-NEXT: ;;#ASMEND
5336 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
5337 ; GFX90A-NEXT: ;;#ASMSTART
5338 ; GFX90A-NEXT: ; def v[4:7]
5339 ; GFX90A-NEXT: ;;#ASMEND
5340 ; GFX90A-NEXT: v_pk_mov_b32 v[2:3], v[0:1], v[2:3] op_sel:[1,0]
5341 ; GFX90A-NEXT: v_mov_b32_e32 v0, v7
5342 ; GFX90A-NEXT: v_mov_b32_e32 v1, v7
5343 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
5344 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
5345 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
5347 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_1_2:
5349 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5350 ; GFX940-NEXT: ;;#ASMSTART
5351 ; GFX940-NEXT: ; def v[0:3]
5352 ; GFX940-NEXT: ;;#ASMEND
5353 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
5354 ; GFX940-NEXT: ;;#ASMSTART
5355 ; GFX940-NEXT: ; def v[4:7]
5356 ; GFX940-NEXT: ;;#ASMEND
5357 ; GFX940-NEXT: v_pk_mov_b32 v[2:3], v[0:1], v[2:3] op_sel:[1,0]
5358 ; GFX940-NEXT: v_mov_b32_e32 v0, v7
5359 ; GFX940-NEXT: v_mov_b32_e32 v1, v7
5360 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
5361 ; GFX940-NEXT: s_waitcnt vmcnt(0)
5362 ; GFX940-NEXT: s_setpc_b64 s[30:31]
5363 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
5364 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
5365 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 1, i32 2>
5366 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
5370 define void @v_shuffle_v4p3_v4p3__7_7_3_2(ptr addrspace(1) inreg %ptr) {
5371 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_3_2:
5373 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5374 ; GFX900-NEXT: ;;#ASMSTART
5375 ; GFX900-NEXT: ; def v[4:7]
5376 ; GFX900-NEXT: ;;#ASMEND
5377 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
5378 ; GFX900-NEXT: ;;#ASMSTART
5379 ; GFX900-NEXT: ; def v[0:3]
5380 ; GFX900-NEXT: ;;#ASMEND
5381 ; GFX900-NEXT: v_mov_b32_e32 v4, v7
5382 ; GFX900-NEXT: v_mov_b32_e32 v5, v7
5383 ; GFX900-NEXT: v_mov_b32_e32 v6, v3
5384 ; GFX900-NEXT: v_mov_b32_e32 v7, v2
5385 ; GFX900-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
5386 ; GFX900-NEXT: s_waitcnt vmcnt(0)
5387 ; GFX900-NEXT: s_setpc_b64 s[30:31]
5389 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_3_2:
5391 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5392 ; GFX90A-NEXT: ;;#ASMSTART
5393 ; GFX90A-NEXT: ; def v[0:3]
5394 ; GFX90A-NEXT: ;;#ASMEND
5395 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
5396 ; GFX90A-NEXT: ;;#ASMSTART
5397 ; GFX90A-NEXT: ; def v[4:7]
5398 ; GFX90A-NEXT: ;;#ASMEND
5399 ; GFX90A-NEXT: v_pk_mov_b32 v[2:3], v[2:3], v[2:3] op_sel:[1,0]
5400 ; GFX90A-NEXT: v_mov_b32_e32 v0, v7
5401 ; GFX90A-NEXT: v_mov_b32_e32 v1, v7
5402 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
5403 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
5404 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
5406 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_3_2:
5408 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5409 ; GFX940-NEXT: ;;#ASMSTART
5410 ; GFX940-NEXT: ; def v[0:3]
5411 ; GFX940-NEXT: ;;#ASMEND
5412 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
5413 ; GFX940-NEXT: ;;#ASMSTART
5414 ; GFX940-NEXT: ; def v[4:7]
5415 ; GFX940-NEXT: ;;#ASMEND
5416 ; GFX940-NEXT: v_pk_mov_b32 v[2:3], v[2:3], v[2:3] op_sel:[1,0]
5417 ; GFX940-NEXT: v_mov_b32_e32 v0, v7
5418 ; GFX940-NEXT: v_mov_b32_e32 v1, v7
5419 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
5420 ; GFX940-NEXT: s_waitcnt vmcnt(0)
5421 ; GFX940-NEXT: s_setpc_b64 s[30:31]
5422 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
5423 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
5424 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 3, i32 2>
5425 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
5429 define void @v_shuffle_v4p3_v4p3__7_7_4_2(ptr addrspace(1) inreg %ptr) {
5430 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_4_2:
5432 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5433 ; GFX900-NEXT: ;;#ASMSTART
5434 ; GFX900-NEXT: ; def v[0:3]
5435 ; GFX900-NEXT: ;;#ASMEND
5436 ; GFX900-NEXT: ;;#ASMSTART
5437 ; GFX900-NEXT: ; def v[3:6]
5438 ; GFX900-NEXT: ;;#ASMEND
5439 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
5440 ; GFX900-NEXT: v_mov_b32_e32 v4, v6
5441 ; GFX900-NEXT: v_mov_b32_e32 v5, v6
5442 ; GFX900-NEXT: v_mov_b32_e32 v6, v3
5443 ; GFX900-NEXT: v_mov_b32_e32 v7, v2
5444 ; GFX900-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
5445 ; GFX900-NEXT: s_waitcnt vmcnt(0)
5446 ; GFX900-NEXT: s_setpc_b64 s[30:31]
5448 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_4_2:
5450 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5451 ; GFX90A-NEXT: ;;#ASMSTART
5452 ; GFX90A-NEXT: ; def v[4:7]
5453 ; GFX90A-NEXT: ;;#ASMEND
5454 ; GFX90A-NEXT: v_mov_b32_e32 v10, 0
5455 ; GFX90A-NEXT: ;;#ASMSTART
5456 ; GFX90A-NEXT: ; def v[0:3]
5457 ; GFX90A-NEXT: ;;#ASMEND
5458 ; GFX90A-NEXT: v_mov_b32_e32 v6, v7
5459 ; GFX90A-NEXT: v_mov_b32_e32 v8, v4
5460 ; GFX90A-NEXT: v_mov_b32_e32 v9, v2
5461 ; GFX90A-NEXT: global_store_dwordx4 v10, v[6:9], s[16:17]
5462 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
5463 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
5465 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_4_2:
5467 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5468 ; GFX940-NEXT: ;;#ASMSTART
5469 ; GFX940-NEXT: ; def v[4:7]
5470 ; GFX940-NEXT: ;;#ASMEND
5471 ; GFX940-NEXT: v_mov_b32_e32 v10, 0
5472 ; GFX940-NEXT: ;;#ASMSTART
5473 ; GFX940-NEXT: ; def v[0:3]
5474 ; GFX940-NEXT: ;;#ASMEND
5475 ; GFX940-NEXT: v_mov_b32_e32 v6, v7
5476 ; GFX940-NEXT: v_mov_b32_e32 v8, v4
5477 ; GFX940-NEXT: v_mov_b32_e32 v9, v2
5478 ; GFX940-NEXT: global_store_dwordx4 v10, v[6:9], s[0:1] sc0 sc1
5479 ; GFX940-NEXT: s_waitcnt vmcnt(0)
5480 ; GFX940-NEXT: s_setpc_b64 s[30:31]
5481 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
5482 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
5483 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 4, i32 2>
5484 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
5488 define void @v_shuffle_v4p3_v4p3__7_7_5_2(ptr addrspace(1) inreg %ptr) {
5489 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_5_2:
5491 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5492 ; GFX900-NEXT: ;;#ASMSTART
5493 ; GFX900-NEXT: ; def v[0:3]
5494 ; GFX900-NEXT: ;;#ASMEND
5495 ; GFX900-NEXT: ;;#ASMSTART
5496 ; GFX900-NEXT: ; def v[3:6]
5497 ; GFX900-NEXT: ;;#ASMEND
5498 ; GFX900-NEXT: v_mov_b32_e32 v9, 0
5499 ; GFX900-NEXT: v_mov_b32_e32 v5, v6
5500 ; GFX900-NEXT: v_mov_b32_e32 v7, v4
5501 ; GFX900-NEXT: v_mov_b32_e32 v8, v2
5502 ; GFX900-NEXT: global_store_dwordx4 v9, v[5:8], s[16:17]
5503 ; GFX900-NEXT: s_waitcnt vmcnt(0)
5504 ; GFX900-NEXT: s_setpc_b64 s[30:31]
5506 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_5_2:
5508 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5509 ; GFX90A-NEXT: ;;#ASMSTART
5510 ; GFX90A-NEXT: ; def v[0:3]
5511 ; GFX90A-NEXT: ;;#ASMEND
5512 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
5513 ; GFX90A-NEXT: ;;#ASMSTART
5514 ; GFX90A-NEXT: ; def v[4:7]
5515 ; GFX90A-NEXT: ;;#ASMEND
5516 ; GFX90A-NEXT: v_pk_mov_b32 v[2:3], v[4:5], v[2:3] op_sel:[1,0]
5517 ; GFX90A-NEXT: v_mov_b32_e32 v0, v7
5518 ; GFX90A-NEXT: v_mov_b32_e32 v1, v7
5519 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
5520 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
5521 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
5523 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_5_2:
5525 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5526 ; GFX940-NEXT: ;;#ASMSTART
5527 ; GFX940-NEXT: ; def v[0:3]
5528 ; GFX940-NEXT: ;;#ASMEND
5529 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
5530 ; GFX940-NEXT: ;;#ASMSTART
5531 ; GFX940-NEXT: ; def v[4:7]
5532 ; GFX940-NEXT: ;;#ASMEND
5533 ; GFX940-NEXT: s_nop 0
5534 ; GFX940-NEXT: v_pk_mov_b32 v[2:3], v[4:5], v[2:3] op_sel:[1,0]
5535 ; GFX940-NEXT: v_mov_b32_e32 v0, v7
5536 ; GFX940-NEXT: v_mov_b32_e32 v1, v7
5537 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
5538 ; GFX940-NEXT: s_waitcnt vmcnt(0)
5539 ; GFX940-NEXT: s_setpc_b64 s[30:31]
5540 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
5541 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
5542 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 5, i32 2>
5543 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
5547 define void @v_shuffle_v4p3_v4p3__7_7_6_2(ptr addrspace(1) inreg %ptr) {
5548 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_6_2:
5550 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5551 ; GFX900-NEXT: ;;#ASMSTART
5552 ; GFX900-NEXT: ; def v[0:3]
5553 ; GFX900-NEXT: ;;#ASMEND
5554 ; GFX900-NEXT: ;;#ASMSTART
5555 ; GFX900-NEXT: ; def v[3:6]
5556 ; GFX900-NEXT: ;;#ASMEND
5557 ; GFX900-NEXT: v_mov_b32_e32 v7, 0
5558 ; GFX900-NEXT: v_mov_b32_e32 v3, v6
5559 ; GFX900-NEXT: v_mov_b32_e32 v4, v6
5560 ; GFX900-NEXT: v_mov_b32_e32 v6, v2
5561 ; GFX900-NEXT: global_store_dwordx4 v7, v[3:6], s[16:17]
5562 ; GFX900-NEXT: s_waitcnt vmcnt(0)
5563 ; GFX900-NEXT: s_setpc_b64 s[30:31]
5565 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_6_2:
5567 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5568 ; GFX90A-NEXT: ;;#ASMSTART
5569 ; GFX90A-NEXT: ; def v[4:7]
5570 ; GFX90A-NEXT: ;;#ASMEND
5571 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
5572 ; GFX90A-NEXT: ;;#ASMSTART
5573 ; GFX90A-NEXT: ; def v[0:3]
5574 ; GFX90A-NEXT: ;;#ASMEND
5575 ; GFX90A-NEXT: v_mov_b32_e32 v4, v7
5576 ; GFX90A-NEXT: v_mov_b32_e32 v5, v7
5577 ; GFX90A-NEXT: v_mov_b32_e32 v7, v2
5578 ; GFX90A-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
5579 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
5580 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
5582 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_6_2:
5584 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5585 ; GFX940-NEXT: ;;#ASMSTART
5586 ; GFX940-NEXT: ; def v[4:7]
5587 ; GFX940-NEXT: ;;#ASMEND
5588 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
5589 ; GFX940-NEXT: ;;#ASMSTART
5590 ; GFX940-NEXT: ; def v[0:3]
5591 ; GFX940-NEXT: ;;#ASMEND
5592 ; GFX940-NEXT: v_mov_b32_e32 v4, v7
5593 ; GFX940-NEXT: v_mov_b32_e32 v5, v7
5594 ; GFX940-NEXT: v_mov_b32_e32 v7, v2
5595 ; GFX940-NEXT: global_store_dwordx4 v8, v[4:7], s[0:1] sc0 sc1
5596 ; GFX940-NEXT: s_waitcnt vmcnt(0)
5597 ; GFX940-NEXT: s_setpc_b64 s[30:31]
5598 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
5599 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
5600 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 6, i32 2>
5601 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
5605 define void @v_shuffle_v4p3_v4p3__u_3_3_3(ptr addrspace(1) inreg %ptr) {
5606 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__u_3_3_3:
5608 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5609 ; GFX900-NEXT: ;;#ASMSTART
5610 ; GFX900-NEXT: ; def v[0:3]
5611 ; GFX900-NEXT: ;;#ASMEND
5612 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
5613 ; GFX900-NEXT: v_mov_b32_e32 v1, v3
5614 ; GFX900-NEXT: v_mov_b32_e32 v2, v3
5615 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
5616 ; GFX900-NEXT: s_waitcnt vmcnt(0)
5617 ; GFX900-NEXT: s_setpc_b64 s[30:31]
5619 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__u_3_3_3:
5621 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5622 ; GFX90A-NEXT: ;;#ASMSTART
5623 ; GFX90A-NEXT: ; def v[0:3]
5624 ; GFX90A-NEXT: ;;#ASMEND
5625 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
5626 ; GFX90A-NEXT: v_mov_b32_e32 v1, v3
5627 ; GFX90A-NEXT: v_mov_b32_e32 v2, v3
5628 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
5629 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
5630 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
5632 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__u_3_3_3:
5634 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5635 ; GFX940-NEXT: ;;#ASMSTART
5636 ; GFX940-NEXT: ; def v[0:3]
5637 ; GFX940-NEXT: ;;#ASMEND
5638 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
5639 ; GFX940-NEXT: v_mov_b32_e32 v1, v3
5640 ; GFX940-NEXT: v_mov_b32_e32 v2, v3
5641 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
5642 ; GFX940-NEXT: s_waitcnt vmcnt(0)
5643 ; GFX940-NEXT: s_setpc_b64 s[30:31]
5644 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
5645 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 poison, i32 3, i32 3, i32 3>
5646 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
5650 define void @v_shuffle_v4p3_v4p3__0_3_3_3(ptr addrspace(1) inreg %ptr) {
5651 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__0_3_3_3:
5653 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5654 ; GFX900-NEXT: ;;#ASMSTART
5655 ; GFX900-NEXT: ; def v[0:3]
5656 ; GFX900-NEXT: ;;#ASMEND
5657 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
5658 ; GFX900-NEXT: v_mov_b32_e32 v1, v3
5659 ; GFX900-NEXT: v_mov_b32_e32 v2, v3
5660 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
5661 ; GFX900-NEXT: s_waitcnt vmcnt(0)
5662 ; GFX900-NEXT: s_setpc_b64 s[30:31]
5664 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__0_3_3_3:
5666 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5667 ; GFX90A-NEXT: ;;#ASMSTART
5668 ; GFX90A-NEXT: ; def v[0:3]
5669 ; GFX90A-NEXT: ;;#ASMEND
5670 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
5671 ; GFX90A-NEXT: v_mov_b32_e32 v1, v3
5672 ; GFX90A-NEXT: v_mov_b32_e32 v2, v3
5673 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
5674 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
5675 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
5677 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__0_3_3_3:
5679 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5680 ; GFX940-NEXT: ;;#ASMSTART
5681 ; GFX940-NEXT: ; def v[0:3]
5682 ; GFX940-NEXT: ;;#ASMEND
5683 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
5684 ; GFX940-NEXT: v_mov_b32_e32 v1, v3
5685 ; GFX940-NEXT: v_mov_b32_e32 v2, v3
5686 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
5687 ; GFX940-NEXT: s_waitcnt vmcnt(0)
5688 ; GFX940-NEXT: s_setpc_b64 s[30:31]
5689 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
5690 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 0, i32 3, i32 3, i32 3>
5691 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
5695 define void @v_shuffle_v4p3_v4p3__1_3_3_3(ptr addrspace(1) inreg %ptr) {
5696 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__1_3_3_3:
5698 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5699 ; GFX900-NEXT: ;;#ASMSTART
5700 ; GFX900-NEXT: ; def v[0:3]
5701 ; GFX900-NEXT: ;;#ASMEND
5702 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
5703 ; GFX900-NEXT: v_mov_b32_e32 v0, v1
5704 ; GFX900-NEXT: v_mov_b32_e32 v1, v3
5705 ; GFX900-NEXT: v_mov_b32_e32 v2, v3
5706 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
5707 ; GFX900-NEXT: s_waitcnt vmcnt(0)
5708 ; GFX900-NEXT: s_setpc_b64 s[30:31]
5710 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__1_3_3_3:
5712 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5713 ; GFX90A-NEXT: ;;#ASMSTART
5714 ; GFX90A-NEXT: ; def v[0:3]
5715 ; GFX90A-NEXT: ;;#ASMEND
5716 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
5717 ; GFX90A-NEXT: v_mov_b32_e32 v0, v1
5718 ; GFX90A-NEXT: v_mov_b32_e32 v1, v3
5719 ; GFX90A-NEXT: v_mov_b32_e32 v2, v3
5720 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
5721 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
5722 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
5724 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__1_3_3_3:
5726 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5727 ; GFX940-NEXT: ;;#ASMSTART
5728 ; GFX940-NEXT: ; def v[0:3]
5729 ; GFX940-NEXT: ;;#ASMEND
5730 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
5731 ; GFX940-NEXT: v_mov_b32_e32 v0, v1
5732 ; GFX940-NEXT: v_mov_b32_e32 v1, v3
5733 ; GFX940-NEXT: v_mov_b32_e32 v2, v3
5734 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
5735 ; GFX940-NEXT: s_waitcnt vmcnt(0)
5736 ; GFX940-NEXT: s_setpc_b64 s[30:31]
5737 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
5738 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 1, i32 3, i32 3, i32 3>
5739 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
5743 define void @v_shuffle_v4p3_v4p3__2_3_3_3(ptr addrspace(1) inreg %ptr) {
5744 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__2_3_3_3:
5746 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5747 ; GFX900-NEXT: ;;#ASMSTART
5748 ; GFX900-NEXT: ; def v[0:3]
5749 ; GFX900-NEXT: ;;#ASMEND
5750 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
5751 ; GFX900-NEXT: v_mov_b32_e32 v0, v2
5752 ; GFX900-NEXT: v_mov_b32_e32 v1, v3
5753 ; GFX900-NEXT: v_mov_b32_e32 v2, v3
5754 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
5755 ; GFX900-NEXT: s_waitcnt vmcnt(0)
5756 ; GFX900-NEXT: s_setpc_b64 s[30:31]
5758 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__2_3_3_3:
5760 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5761 ; GFX90A-NEXT: ;;#ASMSTART
5762 ; GFX90A-NEXT: ; def v[0:3]
5763 ; GFX90A-NEXT: ;;#ASMEND
5764 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
5765 ; GFX90A-NEXT: v_mov_b32_e32 v0, v2
5766 ; GFX90A-NEXT: v_mov_b32_e32 v1, v3
5767 ; GFX90A-NEXT: v_mov_b32_e32 v2, v3
5768 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
5769 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
5770 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
5772 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__2_3_3_3:
5774 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5775 ; GFX940-NEXT: ;;#ASMSTART
5776 ; GFX940-NEXT: ; def v[0:3]
5777 ; GFX940-NEXT: ;;#ASMEND
5778 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
5779 ; GFX940-NEXT: v_mov_b32_e32 v0, v2
5780 ; GFX940-NEXT: v_mov_b32_e32 v1, v3
5781 ; GFX940-NEXT: v_mov_b32_e32 v2, v3
5782 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
5783 ; GFX940-NEXT: s_waitcnt vmcnt(0)
5784 ; GFX940-NEXT: s_setpc_b64 s[30:31]
5785 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
5786 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 2, i32 3, i32 3, i32 3>
5787 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
5791 define void @v_shuffle_v4p3_v4p3__3_3_3_3(ptr addrspace(1) inreg %ptr) {
5792 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__3_3_3_3:
5794 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5795 ; GFX900-NEXT: ;;#ASMSTART
5796 ; GFX900-NEXT: ; def v[0:3]
5797 ; GFX900-NEXT: ;;#ASMEND
5798 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
5799 ; GFX900-NEXT: v_mov_b32_e32 v0, v3
5800 ; GFX900-NEXT: v_mov_b32_e32 v1, v3
5801 ; GFX900-NEXT: v_mov_b32_e32 v2, v3
5802 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
5803 ; GFX900-NEXT: s_waitcnt vmcnt(0)
5804 ; GFX900-NEXT: s_setpc_b64 s[30:31]
5806 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__3_3_3_3:
5808 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5809 ; GFX90A-NEXT: ;;#ASMSTART
5810 ; GFX90A-NEXT: ; def v[0:3]
5811 ; GFX90A-NEXT: ;;#ASMEND
5812 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
5813 ; GFX90A-NEXT: v_mov_b32_e32 v0, v3
5814 ; GFX90A-NEXT: v_mov_b32_e32 v1, v3
5815 ; GFX90A-NEXT: v_mov_b32_e32 v2, v3
5816 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
5817 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
5818 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
5820 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__3_3_3_3:
5822 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5823 ; GFX940-NEXT: ;;#ASMSTART
5824 ; GFX940-NEXT: ; def v[0:3]
5825 ; GFX940-NEXT: ;;#ASMEND
5826 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
5827 ; GFX940-NEXT: v_mov_b32_e32 v0, v3
5828 ; GFX940-NEXT: v_mov_b32_e32 v1, v3
5829 ; GFX940-NEXT: v_mov_b32_e32 v2, v3
5830 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
5831 ; GFX940-NEXT: s_waitcnt vmcnt(0)
5832 ; GFX940-NEXT: s_setpc_b64 s[30:31]
5833 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
5834 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 3, i32 3, i32 3, i32 3>
5835 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
5839 define void @v_shuffle_v4p3_v4p3__4_3_3_3(ptr addrspace(1) inreg %ptr) {
5840 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__4_3_3_3:
5842 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5843 ; GFX900-NEXT: ;;#ASMSTART
5844 ; GFX900-NEXT: ; def v[0:3]
5845 ; GFX900-NEXT: ;;#ASMEND
5846 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
5847 ; GFX900-NEXT: v_mov_b32_e32 v1, v3
5848 ; GFX900-NEXT: v_mov_b32_e32 v2, v3
5849 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
5850 ; GFX900-NEXT: s_waitcnt vmcnt(0)
5851 ; GFX900-NEXT: s_setpc_b64 s[30:31]
5853 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__4_3_3_3:
5855 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5856 ; GFX90A-NEXT: ;;#ASMSTART
5857 ; GFX90A-NEXT: ; def v[0:3]
5858 ; GFX90A-NEXT: ;;#ASMEND
5859 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
5860 ; GFX90A-NEXT: v_mov_b32_e32 v1, v3
5861 ; GFX90A-NEXT: v_mov_b32_e32 v2, v3
5862 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
5863 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
5864 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
5866 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__4_3_3_3:
5868 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5869 ; GFX940-NEXT: ;;#ASMSTART
5870 ; GFX940-NEXT: ; def v[0:3]
5871 ; GFX940-NEXT: ;;#ASMEND
5872 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
5873 ; GFX940-NEXT: v_mov_b32_e32 v1, v3
5874 ; GFX940-NEXT: v_mov_b32_e32 v2, v3
5875 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
5876 ; GFX940-NEXT: s_waitcnt vmcnt(0)
5877 ; GFX940-NEXT: s_setpc_b64 s[30:31]
5878 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
5879 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 4, i32 3, i32 3, i32 3>
5880 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
5884 define void @v_shuffle_v4p3_v4p3__5_3_3_3(ptr addrspace(1) inreg %ptr) {
5885 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__5_3_3_3:
5887 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5888 ; GFX900-NEXT: ;;#ASMSTART
5889 ; GFX900-NEXT: ; def v[0:3]
5890 ; GFX900-NEXT: ;;#ASMEND
5891 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
5892 ; GFX900-NEXT: ;;#ASMSTART
5893 ; GFX900-NEXT: ; def v[4:7]
5894 ; GFX900-NEXT: ;;#ASMEND
5895 ; GFX900-NEXT: v_mov_b32_e32 v0, v5
5896 ; GFX900-NEXT: v_mov_b32_e32 v1, v3
5897 ; GFX900-NEXT: v_mov_b32_e32 v2, v3
5898 ; GFX900-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
5899 ; GFX900-NEXT: s_waitcnt vmcnt(0)
5900 ; GFX900-NEXT: s_setpc_b64 s[30:31]
5902 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__5_3_3_3:
5904 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5905 ; GFX90A-NEXT: ;;#ASMSTART
5906 ; GFX90A-NEXT: ; def v[0:3]
5907 ; GFX90A-NEXT: ;;#ASMEND
5908 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
5909 ; GFX90A-NEXT: ;;#ASMSTART
5910 ; GFX90A-NEXT: ; def v[4:7]
5911 ; GFX90A-NEXT: ;;#ASMEND
5912 ; GFX90A-NEXT: v_mov_b32_e32 v0, v5
5913 ; GFX90A-NEXT: v_mov_b32_e32 v1, v3
5914 ; GFX90A-NEXT: v_mov_b32_e32 v2, v3
5915 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
5916 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
5917 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
5919 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__5_3_3_3:
5921 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5922 ; GFX940-NEXT: ;;#ASMSTART
5923 ; GFX940-NEXT: ; def v[0:3]
5924 ; GFX940-NEXT: ;;#ASMEND
5925 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
5926 ; GFX940-NEXT: ;;#ASMSTART
5927 ; GFX940-NEXT: ; def v[4:7]
5928 ; GFX940-NEXT: ;;#ASMEND
5929 ; GFX940-NEXT: v_mov_b32_e32 v1, v3
5930 ; GFX940-NEXT: v_mov_b32_e32 v0, v5
5931 ; GFX940-NEXT: v_mov_b32_e32 v2, v3
5932 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
5933 ; GFX940-NEXT: s_waitcnt vmcnt(0)
5934 ; GFX940-NEXT: s_setpc_b64 s[30:31]
5935 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
5936 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
5937 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 5, i32 3, i32 3, i32 3>
5938 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
5942 define void @v_shuffle_v4p3_v4p3__6_3_3_3(ptr addrspace(1) inreg %ptr) {
5943 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__6_3_3_3:
5945 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5946 ; GFX900-NEXT: ;;#ASMSTART
5947 ; GFX900-NEXT: ; def v[0:3]
5948 ; GFX900-NEXT: ;;#ASMEND
5949 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
5950 ; GFX900-NEXT: ;;#ASMSTART
5951 ; GFX900-NEXT: ; def v[4:7]
5952 ; GFX900-NEXT: ;;#ASMEND
5953 ; GFX900-NEXT: v_mov_b32_e32 v0, v6
5954 ; GFX900-NEXT: v_mov_b32_e32 v1, v3
5955 ; GFX900-NEXT: v_mov_b32_e32 v2, v3
5956 ; GFX900-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
5957 ; GFX900-NEXT: s_waitcnt vmcnt(0)
5958 ; GFX900-NEXT: s_setpc_b64 s[30:31]
5960 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__6_3_3_3:
5962 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5963 ; GFX90A-NEXT: ;;#ASMSTART
5964 ; GFX90A-NEXT: ; def v[0:3]
5965 ; GFX90A-NEXT: ;;#ASMEND
5966 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
5967 ; GFX90A-NEXT: ;;#ASMSTART
5968 ; GFX90A-NEXT: ; def v[4:7]
5969 ; GFX90A-NEXT: ;;#ASMEND
5970 ; GFX90A-NEXT: v_mov_b32_e32 v0, v6
5971 ; GFX90A-NEXT: v_mov_b32_e32 v1, v3
5972 ; GFX90A-NEXT: v_mov_b32_e32 v2, v3
5973 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
5974 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
5975 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
5977 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__6_3_3_3:
5979 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
5980 ; GFX940-NEXT: ;;#ASMSTART
5981 ; GFX940-NEXT: ; def v[0:3]
5982 ; GFX940-NEXT: ;;#ASMEND
5983 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
5984 ; GFX940-NEXT: ;;#ASMSTART
5985 ; GFX940-NEXT: ; def v[4:7]
5986 ; GFX940-NEXT: ;;#ASMEND
5987 ; GFX940-NEXT: v_mov_b32_e32 v1, v3
5988 ; GFX940-NEXT: v_mov_b32_e32 v0, v6
5989 ; GFX940-NEXT: v_mov_b32_e32 v2, v3
5990 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
5991 ; GFX940-NEXT: s_waitcnt vmcnt(0)
5992 ; GFX940-NEXT: s_setpc_b64 s[30:31]
5993 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
5994 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
5995 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 6, i32 3, i32 3, i32 3>
5996 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
6000 define void @v_shuffle_v4p3_v4p3__7_3_3_3(ptr addrspace(1) inreg %ptr) {
6001 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_3_3_3:
6003 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6004 ; GFX900-NEXT: ;;#ASMSTART
6005 ; GFX900-NEXT: ; def v[0:3]
6006 ; GFX900-NEXT: ;;#ASMEND
6007 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
6008 ; GFX900-NEXT: ;;#ASMSTART
6009 ; GFX900-NEXT: ; def v[4:7]
6010 ; GFX900-NEXT: ;;#ASMEND
6011 ; GFX900-NEXT: v_mov_b32_e32 v0, v7
6012 ; GFX900-NEXT: v_mov_b32_e32 v1, v3
6013 ; GFX900-NEXT: v_mov_b32_e32 v2, v3
6014 ; GFX900-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
6015 ; GFX900-NEXT: s_waitcnt vmcnt(0)
6016 ; GFX900-NEXT: s_setpc_b64 s[30:31]
6018 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_3_3_3:
6020 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6021 ; GFX90A-NEXT: ;;#ASMSTART
6022 ; GFX90A-NEXT: ; def v[0:3]
6023 ; GFX90A-NEXT: ;;#ASMEND
6024 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
6025 ; GFX90A-NEXT: ;;#ASMSTART
6026 ; GFX90A-NEXT: ; def v[4:7]
6027 ; GFX90A-NEXT: ;;#ASMEND
6028 ; GFX90A-NEXT: v_mov_b32_e32 v0, v7
6029 ; GFX90A-NEXT: v_mov_b32_e32 v1, v3
6030 ; GFX90A-NEXT: v_mov_b32_e32 v2, v3
6031 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
6032 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
6033 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
6035 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_3_3_3:
6037 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6038 ; GFX940-NEXT: ;;#ASMSTART
6039 ; GFX940-NEXT: ; def v[0:3]
6040 ; GFX940-NEXT: ;;#ASMEND
6041 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
6042 ; GFX940-NEXT: ;;#ASMSTART
6043 ; GFX940-NEXT: ; def v[4:7]
6044 ; GFX940-NEXT: ;;#ASMEND
6045 ; GFX940-NEXT: v_mov_b32_e32 v1, v3
6046 ; GFX940-NEXT: v_mov_b32_e32 v0, v7
6047 ; GFX940-NEXT: v_mov_b32_e32 v2, v3
6048 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
6049 ; GFX940-NEXT: s_waitcnt vmcnt(0)
6050 ; GFX940-NEXT: s_setpc_b64 s[30:31]
6051 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
6052 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
6053 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 3, i32 3, i32 3>
6054 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
6058 define void @v_shuffle_v4p3_v4p3__7_u_3_3(ptr addrspace(1) inreg %ptr) {
6059 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_u_3_3:
6061 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6062 ; GFX900-NEXT: ;;#ASMSTART
6063 ; GFX900-NEXT: ; def v[0:3]
6064 ; GFX900-NEXT: ;;#ASMEND
6065 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
6066 ; GFX900-NEXT: ;;#ASMSTART
6067 ; GFX900-NEXT: ; def v[4:7]
6068 ; GFX900-NEXT: ;;#ASMEND
6069 ; GFX900-NEXT: v_mov_b32_e32 v0, v7
6070 ; GFX900-NEXT: v_mov_b32_e32 v2, v3
6071 ; GFX900-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
6072 ; GFX900-NEXT: s_waitcnt vmcnt(0)
6073 ; GFX900-NEXT: s_setpc_b64 s[30:31]
6075 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_u_3_3:
6077 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6078 ; GFX90A-NEXT: ;;#ASMSTART
6079 ; GFX90A-NEXT: ; def v[0:3]
6080 ; GFX90A-NEXT: ;;#ASMEND
6081 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
6082 ; GFX90A-NEXT: ;;#ASMSTART
6083 ; GFX90A-NEXT: ; def v[4:7]
6084 ; GFX90A-NEXT: ;;#ASMEND
6085 ; GFX90A-NEXT: v_mov_b32_e32 v0, v7
6086 ; GFX90A-NEXT: v_mov_b32_e32 v2, v3
6087 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
6088 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
6089 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
6091 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_u_3_3:
6093 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6094 ; GFX940-NEXT: ;;#ASMSTART
6095 ; GFX940-NEXT: ; def v[0:3]
6096 ; GFX940-NEXT: ;;#ASMEND
6097 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
6098 ; GFX940-NEXT: ;;#ASMSTART
6099 ; GFX940-NEXT: ; def v[4:7]
6100 ; GFX940-NEXT: ;;#ASMEND
6101 ; GFX940-NEXT: v_mov_b32_e32 v2, v3
6102 ; GFX940-NEXT: v_mov_b32_e32 v0, v7
6103 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
6104 ; GFX940-NEXT: s_waitcnt vmcnt(0)
6105 ; GFX940-NEXT: s_setpc_b64 s[30:31]
6106 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
6107 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
6108 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 poison, i32 3, i32 3>
6109 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
6113 define void @v_shuffle_v4p3_v4p3__7_0_3_3(ptr addrspace(1) inreg %ptr) {
6114 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_0_3_3:
6116 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6117 ; GFX900-NEXT: ;;#ASMSTART
6118 ; GFX900-NEXT: ; def v[4:7]
6119 ; GFX900-NEXT: ;;#ASMEND
6120 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
6121 ; GFX900-NEXT: ;;#ASMSTART
6122 ; GFX900-NEXT: ; def v[0:3]
6123 ; GFX900-NEXT: ;;#ASMEND
6124 ; GFX900-NEXT: v_mov_b32_e32 v4, v7
6125 ; GFX900-NEXT: v_mov_b32_e32 v5, v0
6126 ; GFX900-NEXT: v_mov_b32_e32 v6, v3
6127 ; GFX900-NEXT: v_mov_b32_e32 v7, v3
6128 ; GFX900-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
6129 ; GFX900-NEXT: s_waitcnt vmcnt(0)
6130 ; GFX900-NEXT: s_setpc_b64 s[30:31]
6132 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_0_3_3:
6134 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6135 ; GFX90A-NEXT: ;;#ASMSTART
6136 ; GFX90A-NEXT: ; def v[0:3]
6137 ; GFX90A-NEXT: ;;#ASMEND
6138 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
6139 ; GFX90A-NEXT: ;;#ASMSTART
6140 ; GFX90A-NEXT: ; def v[4:7]
6141 ; GFX90A-NEXT: ;;#ASMEND
6142 ; GFX90A-NEXT: v_pk_mov_b32 v[0:1], v[6:7], v[0:1] op_sel:[1,0]
6143 ; GFX90A-NEXT: v_mov_b32_e32 v2, v3
6144 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
6145 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
6146 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
6148 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_0_3_3:
6150 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6151 ; GFX940-NEXT: ;;#ASMSTART
6152 ; GFX940-NEXT: ; def v[0:3]
6153 ; GFX940-NEXT: ;;#ASMEND
6154 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
6155 ; GFX940-NEXT: ;;#ASMSTART
6156 ; GFX940-NEXT: ; def v[4:7]
6157 ; GFX940-NEXT: ;;#ASMEND
6158 ; GFX940-NEXT: v_mov_b32_e32 v2, v3
6159 ; GFX940-NEXT: v_pk_mov_b32 v[0:1], v[6:7], v[0:1] op_sel:[1,0]
6160 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
6161 ; GFX940-NEXT: s_waitcnt vmcnt(0)
6162 ; GFX940-NEXT: s_setpc_b64 s[30:31]
6163 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
6164 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
6165 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 0, i32 3, i32 3>
6166 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
6170 define void @v_shuffle_v4p3_v4p3__7_1_3_3(ptr addrspace(1) inreg %ptr) {
6171 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_1_3_3:
6173 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6174 ; GFX900-NEXT: ;;#ASMSTART
6175 ; GFX900-NEXT: ; def v[0:3]
6176 ; GFX900-NEXT: ;;#ASMEND
6177 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
6178 ; GFX900-NEXT: ;;#ASMSTART
6179 ; GFX900-NEXT: ; def v[4:7]
6180 ; GFX900-NEXT: ;;#ASMEND
6181 ; GFX900-NEXT: v_mov_b32_e32 v0, v7
6182 ; GFX900-NEXT: v_mov_b32_e32 v2, v3
6183 ; GFX900-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
6184 ; GFX900-NEXT: s_waitcnt vmcnt(0)
6185 ; GFX900-NEXT: s_setpc_b64 s[30:31]
6187 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_1_3_3:
6189 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6190 ; GFX90A-NEXT: ;;#ASMSTART
6191 ; GFX90A-NEXT: ; def v[0:3]
6192 ; GFX90A-NEXT: ;;#ASMEND
6193 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
6194 ; GFX90A-NEXT: ;;#ASMSTART
6195 ; GFX90A-NEXT: ; def v[4:7]
6196 ; GFX90A-NEXT: ;;#ASMEND
6197 ; GFX90A-NEXT: v_mov_b32_e32 v0, v7
6198 ; GFX90A-NEXT: v_mov_b32_e32 v2, v3
6199 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
6200 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
6201 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
6203 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_1_3_3:
6205 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6206 ; GFX940-NEXT: ;;#ASMSTART
6207 ; GFX940-NEXT: ; def v[0:3]
6208 ; GFX940-NEXT: ;;#ASMEND
6209 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
6210 ; GFX940-NEXT: ;;#ASMSTART
6211 ; GFX940-NEXT: ; def v[4:7]
6212 ; GFX940-NEXT: ;;#ASMEND
6213 ; GFX940-NEXT: v_mov_b32_e32 v2, v3
6214 ; GFX940-NEXT: v_mov_b32_e32 v0, v7
6215 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
6216 ; GFX940-NEXT: s_waitcnt vmcnt(0)
6217 ; GFX940-NEXT: s_setpc_b64 s[30:31]
6218 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
6219 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
6220 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 1, i32 3, i32 3>
6221 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
6225 define void @v_shuffle_v4p3_v4p3__7_2_3_3(ptr addrspace(1) inreg %ptr) {
6226 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_2_3_3:
6228 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6229 ; GFX900-NEXT: ;;#ASMSTART
6230 ; GFX900-NEXT: ; def v[0:3]
6231 ; GFX900-NEXT: ;;#ASMEND
6232 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
6233 ; GFX900-NEXT: ;;#ASMSTART
6234 ; GFX900-NEXT: ; def v[4:7]
6235 ; GFX900-NEXT: ;;#ASMEND
6236 ; GFX900-NEXT: v_mov_b32_e32 v0, v7
6237 ; GFX900-NEXT: v_mov_b32_e32 v1, v2
6238 ; GFX900-NEXT: v_mov_b32_e32 v2, v3
6239 ; GFX900-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
6240 ; GFX900-NEXT: s_waitcnt vmcnt(0)
6241 ; GFX900-NEXT: s_setpc_b64 s[30:31]
6243 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_2_3_3:
6245 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6246 ; GFX90A-NEXT: ;;#ASMSTART
6247 ; GFX90A-NEXT: ; def v[0:3]
6248 ; GFX90A-NEXT: ;;#ASMEND
6249 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
6250 ; GFX90A-NEXT: ;;#ASMSTART
6251 ; GFX90A-NEXT: ; def v[4:7]
6252 ; GFX90A-NEXT: ;;#ASMEND
6253 ; GFX90A-NEXT: v_pk_mov_b32 v[0:1], v[6:7], v[2:3] op_sel:[1,0]
6254 ; GFX90A-NEXT: v_mov_b32_e32 v2, v3
6255 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
6256 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
6257 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
6259 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_2_3_3:
6261 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6262 ; GFX940-NEXT: ;;#ASMSTART
6263 ; GFX940-NEXT: ; def v[0:3]
6264 ; GFX940-NEXT: ;;#ASMEND
6265 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
6266 ; GFX940-NEXT: ;;#ASMSTART
6267 ; GFX940-NEXT: ; def v[4:7]
6268 ; GFX940-NEXT: ;;#ASMEND
6269 ; GFX940-NEXT: s_nop 0
6270 ; GFX940-NEXT: v_pk_mov_b32 v[0:1], v[6:7], v[2:3] op_sel:[1,0]
6271 ; GFX940-NEXT: v_mov_b32_e32 v2, v3
6272 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
6273 ; GFX940-NEXT: s_waitcnt vmcnt(0)
6274 ; GFX940-NEXT: s_setpc_b64 s[30:31]
6275 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
6276 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
6277 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 2, i32 3, i32 3>
6278 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
6282 define void @v_shuffle_v4p3_v4p3__7_4_3_3(ptr addrspace(1) inreg %ptr) {
6283 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_4_3_3:
6285 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6286 ; GFX900-NEXT: ;;#ASMSTART
6287 ; GFX900-NEXT: ; def v[0:3]
6288 ; GFX900-NEXT: ;;#ASMEND
6289 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
6290 ; GFX900-NEXT: ;;#ASMSTART
6291 ; GFX900-NEXT: ; def v[4:7]
6292 ; GFX900-NEXT: ;;#ASMEND
6293 ; GFX900-NEXT: v_mov_b32_e32 v0, v7
6294 ; GFX900-NEXT: v_mov_b32_e32 v1, v4
6295 ; GFX900-NEXT: v_mov_b32_e32 v2, v3
6296 ; GFX900-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
6297 ; GFX900-NEXT: s_waitcnt vmcnt(0)
6298 ; GFX900-NEXT: s_setpc_b64 s[30:31]
6300 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_4_3_3:
6302 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6303 ; GFX90A-NEXT: ;;#ASMSTART
6304 ; GFX90A-NEXT: ; def v[0:3]
6305 ; GFX90A-NEXT: ;;#ASMEND
6306 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
6307 ; GFX90A-NEXT: ;;#ASMSTART
6308 ; GFX90A-NEXT: ; def v[4:7]
6309 ; GFX90A-NEXT: ;;#ASMEND
6310 ; GFX90A-NEXT: v_pk_mov_b32 v[0:1], v[6:7], v[4:5] op_sel:[1,0]
6311 ; GFX90A-NEXT: v_mov_b32_e32 v2, v3
6312 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
6313 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
6314 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
6316 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_4_3_3:
6318 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6319 ; GFX940-NEXT: ;;#ASMSTART
6320 ; GFX940-NEXT: ; def v[0:3]
6321 ; GFX940-NEXT: ;;#ASMEND
6322 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
6323 ; GFX940-NEXT: ;;#ASMSTART
6324 ; GFX940-NEXT: ; def v[4:7]
6325 ; GFX940-NEXT: ;;#ASMEND
6326 ; GFX940-NEXT: v_mov_b32_e32 v2, v3
6327 ; GFX940-NEXT: v_pk_mov_b32 v[0:1], v[6:7], v[4:5] op_sel:[1,0]
6328 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
6329 ; GFX940-NEXT: s_waitcnt vmcnt(0)
6330 ; GFX940-NEXT: s_setpc_b64 s[30:31]
6331 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
6332 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
6333 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 4, i32 3, i32 3>
6334 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
6338 define void @v_shuffle_v4p3_v4p3__7_5_3_3(ptr addrspace(1) inreg %ptr) {
6339 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_5_3_3:
6341 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6342 ; GFX900-NEXT: ;;#ASMSTART
6343 ; GFX900-NEXT: ; def v[4:7]
6344 ; GFX900-NEXT: ;;#ASMEND
6345 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
6346 ; GFX900-NEXT: ;;#ASMSTART
6347 ; GFX900-NEXT: ; def v[0:3]
6348 ; GFX900-NEXT: ;;#ASMEND
6349 ; GFX900-NEXT: v_mov_b32_e32 v4, v7
6350 ; GFX900-NEXT: v_mov_b32_e32 v6, v3
6351 ; GFX900-NEXT: v_mov_b32_e32 v7, v3
6352 ; GFX900-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
6353 ; GFX900-NEXT: s_waitcnt vmcnt(0)
6354 ; GFX900-NEXT: s_setpc_b64 s[30:31]
6356 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_5_3_3:
6358 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6359 ; GFX90A-NEXT: ;;#ASMSTART
6360 ; GFX90A-NEXT: ; def v[4:7]
6361 ; GFX90A-NEXT: ;;#ASMEND
6362 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
6363 ; GFX90A-NEXT: ;;#ASMSTART
6364 ; GFX90A-NEXT: ; def v[0:3]
6365 ; GFX90A-NEXT: ;;#ASMEND
6366 ; GFX90A-NEXT: v_mov_b32_e32 v4, v7
6367 ; GFX90A-NEXT: v_mov_b32_e32 v6, v3
6368 ; GFX90A-NEXT: v_mov_b32_e32 v7, v3
6369 ; GFX90A-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
6370 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
6371 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
6373 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_5_3_3:
6375 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6376 ; GFX940-NEXT: ;;#ASMSTART
6377 ; GFX940-NEXT: ; def v[4:7]
6378 ; GFX940-NEXT: ;;#ASMEND
6379 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
6380 ; GFX940-NEXT: ;;#ASMSTART
6381 ; GFX940-NEXT: ; def v[0:3]
6382 ; GFX940-NEXT: ;;#ASMEND
6383 ; GFX940-NEXT: v_mov_b32_e32 v4, v7
6384 ; GFX940-NEXT: v_mov_b32_e32 v6, v3
6385 ; GFX940-NEXT: v_mov_b32_e32 v7, v3
6386 ; GFX940-NEXT: global_store_dwordx4 v8, v[4:7], s[0:1] sc0 sc1
6387 ; GFX940-NEXT: s_waitcnt vmcnt(0)
6388 ; GFX940-NEXT: s_setpc_b64 s[30:31]
6389 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
6390 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
6391 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 5, i32 3, i32 3>
6392 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
6396 define void @v_shuffle_v4p3_v4p3__7_6_3_3(ptr addrspace(1) inreg %ptr) {
6397 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_6_3_3:
6399 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6400 ; GFX900-NEXT: ;;#ASMSTART
6401 ; GFX900-NEXT: ; def v[0:3]
6402 ; GFX900-NEXT: ;;#ASMEND
6403 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
6404 ; GFX900-NEXT: ;;#ASMSTART
6405 ; GFX900-NEXT: ; def v[4:7]
6406 ; GFX900-NEXT: ;;#ASMEND
6407 ; GFX900-NEXT: v_mov_b32_e32 v0, v7
6408 ; GFX900-NEXT: v_mov_b32_e32 v1, v6
6409 ; GFX900-NEXT: v_mov_b32_e32 v2, v3
6410 ; GFX900-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
6411 ; GFX900-NEXT: s_waitcnt vmcnt(0)
6412 ; GFX900-NEXT: s_setpc_b64 s[30:31]
6414 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_6_3_3:
6416 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6417 ; GFX90A-NEXT: ;;#ASMSTART
6418 ; GFX90A-NEXT: ; def v[0:3]
6419 ; GFX90A-NEXT: ;;#ASMEND
6420 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
6421 ; GFX90A-NEXT: ;;#ASMSTART
6422 ; GFX90A-NEXT: ; def v[4:7]
6423 ; GFX90A-NEXT: ;;#ASMEND
6424 ; GFX90A-NEXT: v_pk_mov_b32 v[0:1], v[6:7], v[6:7] op_sel:[1,0]
6425 ; GFX90A-NEXT: v_mov_b32_e32 v2, v3
6426 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
6427 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
6428 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
6430 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_6_3_3:
6432 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6433 ; GFX940-NEXT: ;;#ASMSTART
6434 ; GFX940-NEXT: ; def v[0:3]
6435 ; GFX940-NEXT: ;;#ASMEND
6436 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
6437 ; GFX940-NEXT: ;;#ASMSTART
6438 ; GFX940-NEXT: ; def v[4:7]
6439 ; GFX940-NEXT: ;;#ASMEND
6440 ; GFX940-NEXT: v_mov_b32_e32 v2, v3
6441 ; GFX940-NEXT: v_pk_mov_b32 v[0:1], v[6:7], v[6:7] op_sel:[1,0]
6442 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
6443 ; GFX940-NEXT: s_waitcnt vmcnt(0)
6444 ; GFX940-NEXT: s_setpc_b64 s[30:31]
6445 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
6446 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
6447 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 6, i32 3, i32 3>
6448 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
6452 define void @v_shuffle_v4p3_v4p3__7_7_3_3(ptr addrspace(1) inreg %ptr) {
6453 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_3_3:
6455 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6456 ; GFX900-NEXT: ;;#ASMSTART
6457 ; GFX900-NEXT: ; def v[0:3]
6458 ; GFX900-NEXT: ;;#ASMEND
6459 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
6460 ; GFX900-NEXT: ;;#ASMSTART
6461 ; GFX900-NEXT: ; def v[4:7]
6462 ; GFX900-NEXT: ;;#ASMEND
6463 ; GFX900-NEXT: v_mov_b32_e32 v0, v7
6464 ; GFX900-NEXT: v_mov_b32_e32 v1, v7
6465 ; GFX900-NEXT: v_mov_b32_e32 v2, v3
6466 ; GFX900-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
6467 ; GFX900-NEXT: s_waitcnt vmcnt(0)
6468 ; GFX900-NEXT: s_setpc_b64 s[30:31]
6470 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_3_3:
6472 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6473 ; GFX90A-NEXT: ;;#ASMSTART
6474 ; GFX90A-NEXT: ; def v[0:3]
6475 ; GFX90A-NEXT: ;;#ASMEND
6476 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
6477 ; GFX90A-NEXT: ;;#ASMSTART
6478 ; GFX90A-NEXT: ; def v[4:7]
6479 ; GFX90A-NEXT: ;;#ASMEND
6480 ; GFX90A-NEXT: v_mov_b32_e32 v0, v7
6481 ; GFX90A-NEXT: v_mov_b32_e32 v1, v7
6482 ; GFX90A-NEXT: v_mov_b32_e32 v2, v3
6483 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
6484 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
6485 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
6487 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_3_3:
6489 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6490 ; GFX940-NEXT: ;;#ASMSTART
6491 ; GFX940-NEXT: ; def v[0:3]
6492 ; GFX940-NEXT: ;;#ASMEND
6493 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
6494 ; GFX940-NEXT: ;;#ASMSTART
6495 ; GFX940-NEXT: ; def v[4:7]
6496 ; GFX940-NEXT: ;;#ASMEND
6497 ; GFX940-NEXT: v_mov_b32_e32 v2, v3
6498 ; GFX940-NEXT: v_mov_b32_e32 v0, v7
6499 ; GFX940-NEXT: v_mov_b32_e32 v1, v7
6500 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
6501 ; GFX940-NEXT: s_waitcnt vmcnt(0)
6502 ; GFX940-NEXT: s_setpc_b64 s[30:31]
6503 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
6504 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
6505 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 3, i32 3>
6506 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
6510 define void @v_shuffle_v4p3_v4p3__7_7_u_3(ptr addrspace(1) inreg %ptr) {
6511 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_u_3:
6513 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6514 ; GFX900-NEXT: ;;#ASMSTART
6515 ; GFX900-NEXT: ; def v[0:3]
6516 ; GFX900-NEXT: ;;#ASMEND
6517 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
6518 ; GFX900-NEXT: ;;#ASMSTART
6519 ; GFX900-NEXT: ; def v[4:7]
6520 ; GFX900-NEXT: ;;#ASMEND
6521 ; GFX900-NEXT: v_mov_b32_e32 v0, v7
6522 ; GFX900-NEXT: v_mov_b32_e32 v1, v7
6523 ; GFX900-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
6524 ; GFX900-NEXT: s_waitcnt vmcnt(0)
6525 ; GFX900-NEXT: s_setpc_b64 s[30:31]
6527 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_u_3:
6529 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6530 ; GFX90A-NEXT: ;;#ASMSTART
6531 ; GFX90A-NEXT: ; def v[0:3]
6532 ; GFX90A-NEXT: ;;#ASMEND
6533 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
6534 ; GFX90A-NEXT: ;;#ASMSTART
6535 ; GFX90A-NEXT: ; def v[4:7]
6536 ; GFX90A-NEXT: ;;#ASMEND
6537 ; GFX90A-NEXT: v_mov_b32_e32 v0, v7
6538 ; GFX90A-NEXT: v_mov_b32_e32 v1, v7
6539 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
6540 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
6541 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
6543 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_u_3:
6545 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6546 ; GFX940-NEXT: ;;#ASMSTART
6547 ; GFX940-NEXT: ; def v[0:3]
6548 ; GFX940-NEXT: ;;#ASMEND
6549 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
6550 ; GFX940-NEXT: ;;#ASMSTART
6551 ; GFX940-NEXT: ; def v[4:7]
6552 ; GFX940-NEXT: ;;#ASMEND
6553 ; GFX940-NEXT: s_nop 0
6554 ; GFX940-NEXT: v_mov_b32_e32 v0, v7
6555 ; GFX940-NEXT: v_mov_b32_e32 v1, v7
6556 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
6557 ; GFX940-NEXT: s_waitcnt vmcnt(0)
6558 ; GFX940-NEXT: s_setpc_b64 s[30:31]
6559 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
6560 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
6561 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 poison, i32 3>
6562 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
6566 define void @v_shuffle_v4p3_v4p3__7_7_0_3(ptr addrspace(1) inreg %ptr) {
6567 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_0_3:
6569 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6570 ; GFX900-NEXT: ;;#ASMSTART
6571 ; GFX900-NEXT: ; def v[4:7]
6572 ; GFX900-NEXT: ;;#ASMEND
6573 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
6574 ; GFX900-NEXT: ;;#ASMSTART
6575 ; GFX900-NEXT: ; def v[0:3]
6576 ; GFX900-NEXT: ;;#ASMEND
6577 ; GFX900-NEXT: v_mov_b32_e32 v4, v7
6578 ; GFX900-NEXT: v_mov_b32_e32 v5, v7
6579 ; GFX900-NEXT: v_mov_b32_e32 v6, v0
6580 ; GFX900-NEXT: v_mov_b32_e32 v7, v3
6581 ; GFX900-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
6582 ; GFX900-NEXT: s_waitcnt vmcnt(0)
6583 ; GFX900-NEXT: s_setpc_b64 s[30:31]
6585 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_0_3:
6587 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6588 ; GFX90A-NEXT: ;;#ASMSTART
6589 ; GFX90A-NEXT: ; def v[4:7]
6590 ; GFX90A-NEXT: ;;#ASMEND
6591 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
6592 ; GFX90A-NEXT: ;;#ASMSTART
6593 ; GFX90A-NEXT: ; def v[0:3]
6594 ; GFX90A-NEXT: ;;#ASMEND
6595 ; GFX90A-NEXT: v_mov_b32_e32 v4, v7
6596 ; GFX90A-NEXT: v_mov_b32_e32 v5, v7
6597 ; GFX90A-NEXT: v_mov_b32_e32 v6, v0
6598 ; GFX90A-NEXT: v_mov_b32_e32 v7, v3
6599 ; GFX90A-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
6600 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
6601 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
6603 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_0_3:
6605 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6606 ; GFX940-NEXT: ;;#ASMSTART
6607 ; GFX940-NEXT: ; def v[4:7]
6608 ; GFX940-NEXT: ;;#ASMEND
6609 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
6610 ; GFX940-NEXT: ;;#ASMSTART
6611 ; GFX940-NEXT: ; def v[0:3]
6612 ; GFX940-NEXT: ;;#ASMEND
6613 ; GFX940-NEXT: v_mov_b32_e32 v4, v7
6614 ; GFX940-NEXT: v_mov_b32_e32 v5, v7
6615 ; GFX940-NEXT: v_mov_b32_e32 v6, v0
6616 ; GFX940-NEXT: v_mov_b32_e32 v7, v3
6617 ; GFX940-NEXT: global_store_dwordx4 v8, v[4:7], s[0:1] sc0 sc1
6618 ; GFX940-NEXT: s_waitcnt vmcnt(0)
6619 ; GFX940-NEXT: s_setpc_b64 s[30:31]
6620 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
6621 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
6622 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 0, i32 3>
6623 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
6627 define void @v_shuffle_v4p3_v4p3__7_7_1_3(ptr addrspace(1) inreg %ptr) {
6628 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_1_3:
6630 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6631 ; GFX900-NEXT: ;;#ASMSTART
6632 ; GFX900-NEXT: ; def v[4:7]
6633 ; GFX900-NEXT: ;;#ASMEND
6634 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
6635 ; GFX900-NEXT: ;;#ASMSTART
6636 ; GFX900-NEXT: ; def v[0:3]
6637 ; GFX900-NEXT: ;;#ASMEND
6638 ; GFX900-NEXT: v_mov_b32_e32 v4, v7
6639 ; GFX900-NEXT: v_mov_b32_e32 v5, v7
6640 ; GFX900-NEXT: v_mov_b32_e32 v6, v1
6641 ; GFX900-NEXT: v_mov_b32_e32 v7, v3
6642 ; GFX900-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
6643 ; GFX900-NEXT: s_waitcnt vmcnt(0)
6644 ; GFX900-NEXT: s_setpc_b64 s[30:31]
6646 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_1_3:
6648 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6649 ; GFX90A-NEXT: ;;#ASMSTART
6650 ; GFX90A-NEXT: ; def v[4:7]
6651 ; GFX90A-NEXT: ;;#ASMEND
6652 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
6653 ; GFX90A-NEXT: ;;#ASMSTART
6654 ; GFX90A-NEXT: ; def v[0:3]
6655 ; GFX90A-NEXT: ;;#ASMEND
6656 ; GFX90A-NEXT: v_mov_b32_e32 v4, v7
6657 ; GFX90A-NEXT: v_mov_b32_e32 v5, v7
6658 ; GFX90A-NEXT: v_mov_b32_e32 v6, v1
6659 ; GFX90A-NEXT: v_mov_b32_e32 v7, v3
6660 ; GFX90A-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
6661 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
6662 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
6664 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_1_3:
6666 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6667 ; GFX940-NEXT: ;;#ASMSTART
6668 ; GFX940-NEXT: ; def v[4:7]
6669 ; GFX940-NEXT: ;;#ASMEND
6670 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
6671 ; GFX940-NEXT: ;;#ASMSTART
6672 ; GFX940-NEXT: ; def v[0:3]
6673 ; GFX940-NEXT: ;;#ASMEND
6674 ; GFX940-NEXT: v_mov_b32_e32 v4, v7
6675 ; GFX940-NEXT: v_mov_b32_e32 v5, v7
6676 ; GFX940-NEXT: v_mov_b32_e32 v6, v1
6677 ; GFX940-NEXT: v_mov_b32_e32 v7, v3
6678 ; GFX940-NEXT: global_store_dwordx4 v8, v[4:7], s[0:1] sc0 sc1
6679 ; GFX940-NEXT: s_waitcnt vmcnt(0)
6680 ; GFX940-NEXT: s_setpc_b64 s[30:31]
6681 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
6682 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
6683 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 1, i32 3>
6684 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
6688 define void @v_shuffle_v4p3_v4p3__7_7_2_3(ptr addrspace(1) inreg %ptr) {
6689 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_2_3:
6691 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6692 ; GFX900-NEXT: ;;#ASMSTART
6693 ; GFX900-NEXT: ; def v[0:3]
6694 ; GFX900-NEXT: ;;#ASMEND
6695 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
6696 ; GFX900-NEXT: ;;#ASMSTART
6697 ; GFX900-NEXT: ; def v[4:7]
6698 ; GFX900-NEXT: ;;#ASMEND
6699 ; GFX900-NEXT: v_mov_b32_e32 v0, v7
6700 ; GFX900-NEXT: v_mov_b32_e32 v1, v7
6701 ; GFX900-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
6702 ; GFX900-NEXT: s_waitcnt vmcnt(0)
6703 ; GFX900-NEXT: s_setpc_b64 s[30:31]
6705 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_2_3:
6707 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6708 ; GFX90A-NEXT: ;;#ASMSTART
6709 ; GFX90A-NEXT: ; def v[0:3]
6710 ; GFX90A-NEXT: ;;#ASMEND
6711 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
6712 ; GFX90A-NEXT: ;;#ASMSTART
6713 ; GFX90A-NEXT: ; def v[4:7]
6714 ; GFX90A-NEXT: ;;#ASMEND
6715 ; GFX90A-NEXT: v_mov_b32_e32 v0, v7
6716 ; GFX90A-NEXT: v_mov_b32_e32 v1, v7
6717 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
6718 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
6719 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
6721 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_2_3:
6723 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6724 ; GFX940-NEXT: ;;#ASMSTART
6725 ; GFX940-NEXT: ; def v[0:3]
6726 ; GFX940-NEXT: ;;#ASMEND
6727 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
6728 ; GFX940-NEXT: ;;#ASMSTART
6729 ; GFX940-NEXT: ; def v[4:7]
6730 ; GFX940-NEXT: ;;#ASMEND
6731 ; GFX940-NEXT: s_nop 0
6732 ; GFX940-NEXT: v_mov_b32_e32 v0, v7
6733 ; GFX940-NEXT: v_mov_b32_e32 v1, v7
6734 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
6735 ; GFX940-NEXT: s_waitcnt vmcnt(0)
6736 ; GFX940-NEXT: s_setpc_b64 s[30:31]
6737 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
6738 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
6739 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 2, i32 3>
6740 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
6744 define void @v_shuffle_v4p3_v4p3__7_7_4_3(ptr addrspace(1) inreg %ptr) {
6745 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_4_3:
6747 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6748 ; GFX900-NEXT: ;;#ASMSTART
6749 ; GFX900-NEXT: ; def v[0:3]
6750 ; GFX900-NEXT: ;;#ASMEND
6751 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
6752 ; GFX900-NEXT: ;;#ASMSTART
6753 ; GFX900-NEXT: ; def v[4:7]
6754 ; GFX900-NEXT: ;;#ASMEND
6755 ; GFX900-NEXT: v_mov_b32_e32 v0, v7
6756 ; GFX900-NEXT: v_mov_b32_e32 v1, v7
6757 ; GFX900-NEXT: v_mov_b32_e32 v2, v4
6758 ; GFX900-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
6759 ; GFX900-NEXT: s_waitcnt vmcnt(0)
6760 ; GFX900-NEXT: s_setpc_b64 s[30:31]
6762 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_4_3:
6764 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6765 ; GFX90A-NEXT: ;;#ASMSTART
6766 ; GFX90A-NEXT: ; def v[0:3]
6767 ; GFX90A-NEXT: ;;#ASMEND
6768 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
6769 ; GFX90A-NEXT: ;;#ASMSTART
6770 ; GFX90A-NEXT: ; def v[4:7]
6771 ; GFX90A-NEXT: ;;#ASMEND
6772 ; GFX90A-NEXT: v_mov_b32_e32 v0, v7
6773 ; GFX90A-NEXT: v_mov_b32_e32 v1, v7
6774 ; GFX90A-NEXT: v_mov_b32_e32 v2, v4
6775 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
6776 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
6777 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
6779 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_4_3:
6781 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6782 ; GFX940-NEXT: ;;#ASMSTART
6783 ; GFX940-NEXT: ; def v[0:3]
6784 ; GFX940-NEXT: ;;#ASMEND
6785 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
6786 ; GFX940-NEXT: ;;#ASMSTART
6787 ; GFX940-NEXT: ; def v[4:7]
6788 ; GFX940-NEXT: ;;#ASMEND
6789 ; GFX940-NEXT: s_nop 0
6790 ; GFX940-NEXT: v_mov_b32_e32 v0, v7
6791 ; GFX940-NEXT: v_mov_b32_e32 v1, v7
6792 ; GFX940-NEXT: v_mov_b32_e32 v2, v4
6793 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
6794 ; GFX940-NEXT: s_waitcnt vmcnt(0)
6795 ; GFX940-NEXT: s_setpc_b64 s[30:31]
6796 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
6797 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
6798 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 4, i32 3>
6799 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
6803 define void @v_shuffle_v4p3_v4p3__7_7_5_3(ptr addrspace(1) inreg %ptr) {
6804 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_5_3:
6806 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6807 ; GFX900-NEXT: ;;#ASMSTART
6808 ; GFX900-NEXT: ; def v[0:3]
6809 ; GFX900-NEXT: ;;#ASMEND
6810 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
6811 ; GFX900-NEXT: ;;#ASMSTART
6812 ; GFX900-NEXT: ; def v[4:7]
6813 ; GFX900-NEXT: ;;#ASMEND
6814 ; GFX900-NEXT: v_mov_b32_e32 v0, v7
6815 ; GFX900-NEXT: v_mov_b32_e32 v1, v7
6816 ; GFX900-NEXT: v_mov_b32_e32 v2, v5
6817 ; GFX900-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
6818 ; GFX900-NEXT: s_waitcnt vmcnt(0)
6819 ; GFX900-NEXT: s_setpc_b64 s[30:31]
6821 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_5_3:
6823 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6824 ; GFX90A-NEXT: ;;#ASMSTART
6825 ; GFX90A-NEXT: ; def v[0:3]
6826 ; GFX90A-NEXT: ;;#ASMEND
6827 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
6828 ; GFX90A-NEXT: ;;#ASMSTART
6829 ; GFX90A-NEXT: ; def v[4:7]
6830 ; GFX90A-NEXT: ;;#ASMEND
6831 ; GFX90A-NEXT: v_mov_b32_e32 v0, v7
6832 ; GFX90A-NEXT: v_mov_b32_e32 v1, v7
6833 ; GFX90A-NEXT: v_mov_b32_e32 v2, v5
6834 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
6835 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
6836 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
6838 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_5_3:
6840 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6841 ; GFX940-NEXT: ;;#ASMSTART
6842 ; GFX940-NEXT: ; def v[0:3]
6843 ; GFX940-NEXT: ;;#ASMEND
6844 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
6845 ; GFX940-NEXT: ;;#ASMSTART
6846 ; GFX940-NEXT: ; def v[4:7]
6847 ; GFX940-NEXT: ;;#ASMEND
6848 ; GFX940-NEXT: s_nop 0
6849 ; GFX940-NEXT: v_mov_b32_e32 v0, v7
6850 ; GFX940-NEXT: v_mov_b32_e32 v1, v7
6851 ; GFX940-NEXT: v_mov_b32_e32 v2, v5
6852 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
6853 ; GFX940-NEXT: s_waitcnt vmcnt(0)
6854 ; GFX940-NEXT: s_setpc_b64 s[30:31]
6855 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
6856 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
6857 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 5, i32 3>
6858 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
6862 define void @v_shuffle_v4p3_v4p3__7_7_6_3(ptr addrspace(1) inreg %ptr) {
6863 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_6_3:
6865 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6866 ; GFX900-NEXT: ;;#ASMSTART
6867 ; GFX900-NEXT: ; def v[4:7]
6868 ; GFX900-NEXT: ;;#ASMEND
6869 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
6870 ; GFX900-NEXT: ;;#ASMSTART
6871 ; GFX900-NEXT: ; def v[0:3]
6872 ; GFX900-NEXT: ;;#ASMEND
6873 ; GFX900-NEXT: v_mov_b32_e32 v4, v7
6874 ; GFX900-NEXT: v_mov_b32_e32 v5, v7
6875 ; GFX900-NEXT: v_mov_b32_e32 v7, v3
6876 ; GFX900-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
6877 ; GFX900-NEXT: s_waitcnt vmcnt(0)
6878 ; GFX900-NEXT: s_setpc_b64 s[30:31]
6880 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_6_3:
6882 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6883 ; GFX90A-NEXT: ;;#ASMSTART
6884 ; GFX90A-NEXT: ; def v[4:7]
6885 ; GFX90A-NEXT: ;;#ASMEND
6886 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
6887 ; GFX90A-NEXT: ;;#ASMSTART
6888 ; GFX90A-NEXT: ; def v[0:3]
6889 ; GFX90A-NEXT: ;;#ASMEND
6890 ; GFX90A-NEXT: v_mov_b32_e32 v4, v7
6891 ; GFX90A-NEXT: v_mov_b32_e32 v5, v7
6892 ; GFX90A-NEXT: v_mov_b32_e32 v7, v3
6893 ; GFX90A-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
6894 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
6895 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
6897 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_6_3:
6899 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6900 ; GFX940-NEXT: ;;#ASMSTART
6901 ; GFX940-NEXT: ; def v[4:7]
6902 ; GFX940-NEXT: ;;#ASMEND
6903 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
6904 ; GFX940-NEXT: ;;#ASMSTART
6905 ; GFX940-NEXT: ; def v[0:3]
6906 ; GFX940-NEXT: ;;#ASMEND
6907 ; GFX940-NEXT: v_mov_b32_e32 v4, v7
6908 ; GFX940-NEXT: v_mov_b32_e32 v5, v7
6909 ; GFX940-NEXT: v_mov_b32_e32 v7, v3
6910 ; GFX940-NEXT: global_store_dwordx4 v8, v[4:7], s[0:1] sc0 sc1
6911 ; GFX940-NEXT: s_waitcnt vmcnt(0)
6912 ; GFX940-NEXT: s_setpc_b64 s[30:31]
6913 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
6914 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
6915 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 6, i32 3>
6916 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
6920 define void @v_shuffle_v4p3_v4p3__u_4_4_4(ptr addrspace(1) inreg %ptr) {
6921 ; GFX9-LABEL: v_shuffle_v4p3_v4p3__u_4_4_4:
6923 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6924 ; GFX9-NEXT: s_setpc_b64 s[30:31]
6925 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
6926 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 poison, i32 4, i32 4, i32 4>
6927 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
6931 define void @v_shuffle_v4p3_v4p3__0_4_4_4(ptr addrspace(1) inreg %ptr) {
6932 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__0_4_4_4:
6934 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6935 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
6936 ; GFX900-NEXT: ;;#ASMSTART
6937 ; GFX900-NEXT: ; def v[0:3]
6938 ; GFX900-NEXT: ;;#ASMEND
6939 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
6940 ; GFX900-NEXT: s_waitcnt vmcnt(0)
6941 ; GFX900-NEXT: s_setpc_b64 s[30:31]
6943 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__0_4_4_4:
6945 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6946 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
6947 ; GFX90A-NEXT: ;;#ASMSTART
6948 ; GFX90A-NEXT: ; def v[0:3]
6949 ; GFX90A-NEXT: ;;#ASMEND
6950 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
6951 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
6952 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
6954 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__0_4_4_4:
6956 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6957 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
6958 ; GFX940-NEXT: ;;#ASMSTART
6959 ; GFX940-NEXT: ; def v[0:3]
6960 ; GFX940-NEXT: ;;#ASMEND
6961 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
6962 ; GFX940-NEXT: s_waitcnt vmcnt(0)
6963 ; GFX940-NEXT: s_setpc_b64 s[30:31]
6964 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
6965 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 0, i32 4, i32 4, i32 4>
6966 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
6970 define void @v_shuffle_v4p3_v4p3__1_4_4_4(ptr addrspace(1) inreg %ptr) {
6971 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__1_4_4_4:
6973 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6974 ; GFX900-NEXT: ;;#ASMSTART
6975 ; GFX900-NEXT: ; def v[0:3]
6976 ; GFX900-NEXT: ;;#ASMEND
6977 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
6978 ; GFX900-NEXT: v_mov_b32_e32 v0, v1
6979 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
6980 ; GFX900-NEXT: s_waitcnt vmcnt(0)
6981 ; GFX900-NEXT: s_setpc_b64 s[30:31]
6983 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__1_4_4_4:
6985 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6986 ; GFX90A-NEXT: ;;#ASMSTART
6987 ; GFX90A-NEXT: ; def v[0:3]
6988 ; GFX90A-NEXT: ;;#ASMEND
6989 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
6990 ; GFX90A-NEXT: v_mov_b32_e32 v0, v1
6991 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
6992 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
6993 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
6995 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__1_4_4_4:
6997 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
6998 ; GFX940-NEXT: ;;#ASMSTART
6999 ; GFX940-NEXT: ; def v[0:3]
7000 ; GFX940-NEXT: ;;#ASMEND
7001 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
7002 ; GFX940-NEXT: v_mov_b32_e32 v0, v1
7003 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
7004 ; GFX940-NEXT: s_waitcnt vmcnt(0)
7005 ; GFX940-NEXT: s_setpc_b64 s[30:31]
7006 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
7007 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 1, i32 4, i32 4, i32 4>
7008 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
7012 define void @v_shuffle_v4p3_v4p3__2_4_4_4(ptr addrspace(1) inreg %ptr) {
7013 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__2_4_4_4:
7015 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7016 ; GFX900-NEXT: ;;#ASMSTART
7017 ; GFX900-NEXT: ; def v[0:3]
7018 ; GFX900-NEXT: ;;#ASMEND
7019 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
7020 ; GFX900-NEXT: v_mov_b32_e32 v0, v2
7021 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
7022 ; GFX900-NEXT: s_waitcnt vmcnt(0)
7023 ; GFX900-NEXT: s_setpc_b64 s[30:31]
7025 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__2_4_4_4:
7027 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7028 ; GFX90A-NEXT: ;;#ASMSTART
7029 ; GFX90A-NEXT: ; def v[0:3]
7030 ; GFX90A-NEXT: ;;#ASMEND
7031 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
7032 ; GFX90A-NEXT: v_mov_b32_e32 v0, v2
7033 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
7034 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
7035 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
7037 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__2_4_4_4:
7039 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7040 ; GFX940-NEXT: ;;#ASMSTART
7041 ; GFX940-NEXT: ; def v[0:3]
7042 ; GFX940-NEXT: ;;#ASMEND
7043 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
7044 ; GFX940-NEXT: v_mov_b32_e32 v0, v2
7045 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
7046 ; GFX940-NEXT: s_waitcnt vmcnt(0)
7047 ; GFX940-NEXT: s_setpc_b64 s[30:31]
7048 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
7049 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 2, i32 4, i32 4, i32 4>
7050 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
7054 define void @v_shuffle_v4p3_v4p3__3_4_4_4(ptr addrspace(1) inreg %ptr) {
7055 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__3_4_4_4:
7057 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7058 ; GFX900-NEXT: ;;#ASMSTART
7059 ; GFX900-NEXT: ; def v[0:3]
7060 ; GFX900-NEXT: ;;#ASMEND
7061 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
7062 ; GFX900-NEXT: v_mov_b32_e32 v0, v3
7063 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
7064 ; GFX900-NEXT: s_waitcnt vmcnt(0)
7065 ; GFX900-NEXT: s_setpc_b64 s[30:31]
7067 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__3_4_4_4:
7069 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7070 ; GFX90A-NEXT: ;;#ASMSTART
7071 ; GFX90A-NEXT: ; def v[0:3]
7072 ; GFX90A-NEXT: ;;#ASMEND
7073 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
7074 ; GFX90A-NEXT: v_mov_b32_e32 v0, v3
7075 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
7076 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
7077 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
7079 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__3_4_4_4:
7081 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7082 ; GFX940-NEXT: ;;#ASMSTART
7083 ; GFX940-NEXT: ; def v[0:3]
7084 ; GFX940-NEXT: ;;#ASMEND
7085 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
7086 ; GFX940-NEXT: v_mov_b32_e32 v0, v3
7087 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
7088 ; GFX940-NEXT: s_waitcnt vmcnt(0)
7089 ; GFX940-NEXT: s_setpc_b64 s[30:31]
7090 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
7091 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 3, i32 4, i32 4, i32 4>
7092 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
7096 define void @v_shuffle_v4p3_v4p3__4_4_4_4(ptr addrspace(1) inreg %ptr) {
7097 ; GFX9-LABEL: v_shuffle_v4p3_v4p3__4_4_4_4:
7099 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7100 ; GFX9-NEXT: s_setpc_b64 s[30:31]
7101 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
7102 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 4, i32 4, i32 4, i32 4>
7103 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
7107 define void @v_shuffle_v4p3_v4p3__5_4_4_4(ptr addrspace(1) inreg %ptr) {
7108 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__5_4_4_4:
7110 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7111 ; GFX900-NEXT: ;;#ASMSTART
7112 ; GFX900-NEXT: ; def v[0:3]
7113 ; GFX900-NEXT: ;;#ASMEND
7114 ; GFX900-NEXT: v_mov_b32_e32 v5, 0
7115 ; GFX900-NEXT: v_mov_b32_e32 v2, v0
7116 ; GFX900-NEXT: v_mov_b32_e32 v3, v0
7117 ; GFX900-NEXT: v_mov_b32_e32 v4, v0
7118 ; GFX900-NEXT: global_store_dwordx4 v5, v[1:4], s[16:17]
7119 ; GFX900-NEXT: s_waitcnt vmcnt(0)
7120 ; GFX900-NEXT: s_setpc_b64 s[30:31]
7122 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__5_4_4_4:
7124 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7125 ; GFX90A-NEXT: ;;#ASMSTART
7126 ; GFX90A-NEXT: ; def v[0:3]
7127 ; GFX90A-NEXT: ;;#ASMEND
7128 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
7129 ; GFX90A-NEXT: v_pk_mov_b32 v[2:3], v[0:1], v[0:1] op_sel:[1,0]
7130 ; GFX90A-NEXT: v_mov_b32_e32 v4, v0
7131 ; GFX90A-NEXT: v_mov_b32_e32 v5, v0
7132 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
7133 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
7134 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
7136 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__5_4_4_4:
7138 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7139 ; GFX940-NEXT: ;;#ASMSTART
7140 ; GFX940-NEXT: ; def v[0:3]
7141 ; GFX940-NEXT: ;;#ASMEND
7142 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
7143 ; GFX940-NEXT: v_pk_mov_b32 v[2:3], v[0:1], v[0:1] op_sel:[1,0]
7144 ; GFX940-NEXT: v_mov_b32_e32 v4, v0
7145 ; GFX940-NEXT: v_mov_b32_e32 v5, v0
7146 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
7147 ; GFX940-NEXT: s_waitcnt vmcnt(0)
7148 ; GFX940-NEXT: s_setpc_b64 s[30:31]
7149 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
7150 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
7151 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 5, i32 4, i32 4, i32 4>
7152 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
7156 define void @v_shuffle_v4p3_v4p3__6_4_4_4(ptr addrspace(1) inreg %ptr) {
7157 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__6_4_4_4:
7159 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7160 ; GFX900-NEXT: ;;#ASMSTART
7161 ; GFX900-NEXT: ; def v[0:3]
7162 ; GFX900-NEXT: ;;#ASMEND
7163 ; GFX900-NEXT: v_mov_b32_e32 v5, 0
7164 ; GFX900-NEXT: v_mov_b32_e32 v1, v2
7165 ; GFX900-NEXT: v_mov_b32_e32 v2, v0
7166 ; GFX900-NEXT: v_mov_b32_e32 v3, v0
7167 ; GFX900-NEXT: v_mov_b32_e32 v4, v0
7168 ; GFX900-NEXT: global_store_dwordx4 v5, v[1:4], s[16:17]
7169 ; GFX900-NEXT: s_waitcnt vmcnt(0)
7170 ; GFX900-NEXT: s_setpc_b64 s[30:31]
7172 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__6_4_4_4:
7174 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7175 ; GFX90A-NEXT: ;;#ASMSTART
7176 ; GFX90A-NEXT: ; def v[0:3]
7177 ; GFX90A-NEXT: ;;#ASMEND
7178 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
7179 ; GFX90A-NEXT: v_mov_b32_e32 v3, v0
7180 ; GFX90A-NEXT: v_mov_b32_e32 v4, v0
7181 ; GFX90A-NEXT: v_mov_b32_e32 v5, v0
7182 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
7183 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
7184 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
7186 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__6_4_4_4:
7188 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7189 ; GFX940-NEXT: ;;#ASMSTART
7190 ; GFX940-NEXT: ; def v[0:3]
7191 ; GFX940-NEXT: ;;#ASMEND
7192 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
7193 ; GFX940-NEXT: v_mov_b32_e32 v3, v0
7194 ; GFX940-NEXT: v_mov_b32_e32 v4, v0
7195 ; GFX940-NEXT: v_mov_b32_e32 v5, v0
7196 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
7197 ; GFX940-NEXT: s_waitcnt vmcnt(0)
7198 ; GFX940-NEXT: s_setpc_b64 s[30:31]
7199 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
7200 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
7201 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 6, i32 4, i32 4, i32 4>
7202 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
7206 define void @v_shuffle_v4p3_v4p3__7_4_4_4(ptr addrspace(1) inreg %ptr) {
7207 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_4_4_4:
7209 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7210 ; GFX900-NEXT: ;;#ASMSTART
7211 ; GFX900-NEXT: ; def v[0:3]
7212 ; GFX900-NEXT: ;;#ASMEND
7213 ; GFX900-NEXT: v_mov_b32_e32 v5, 0
7214 ; GFX900-NEXT: v_mov_b32_e32 v1, v3
7215 ; GFX900-NEXT: v_mov_b32_e32 v2, v0
7216 ; GFX900-NEXT: v_mov_b32_e32 v3, v0
7217 ; GFX900-NEXT: v_mov_b32_e32 v4, v0
7218 ; GFX900-NEXT: global_store_dwordx4 v5, v[1:4], s[16:17]
7219 ; GFX900-NEXT: s_waitcnt vmcnt(0)
7220 ; GFX900-NEXT: s_setpc_b64 s[30:31]
7222 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_4_4_4:
7224 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7225 ; GFX90A-NEXT: ;;#ASMSTART
7226 ; GFX90A-NEXT: ; def v[0:3]
7227 ; GFX90A-NEXT: ;;#ASMEND
7228 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
7229 ; GFX90A-NEXT: v_pk_mov_b32 v[2:3], v[2:3], v[0:1] op_sel:[1,0]
7230 ; GFX90A-NEXT: v_mov_b32_e32 v4, v0
7231 ; GFX90A-NEXT: v_mov_b32_e32 v5, v0
7232 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
7233 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
7234 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
7236 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_4_4_4:
7238 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7239 ; GFX940-NEXT: ;;#ASMSTART
7240 ; GFX940-NEXT: ; def v[0:3]
7241 ; GFX940-NEXT: ;;#ASMEND
7242 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
7243 ; GFX940-NEXT: v_pk_mov_b32 v[2:3], v[2:3], v[0:1] op_sel:[1,0]
7244 ; GFX940-NEXT: v_mov_b32_e32 v4, v0
7245 ; GFX940-NEXT: v_mov_b32_e32 v5, v0
7246 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
7247 ; GFX940-NEXT: s_waitcnt vmcnt(0)
7248 ; GFX940-NEXT: s_setpc_b64 s[30:31]
7249 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
7250 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
7251 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 4, i32 4, i32 4>
7252 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
7256 define void @v_shuffle_v4p3_v4p3__7_u_4_4(ptr addrspace(1) inreg %ptr) {
7257 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_u_4_4:
7259 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7260 ; GFX900-NEXT: ;;#ASMSTART
7261 ; GFX900-NEXT: ; def v[0:3]
7262 ; GFX900-NEXT: ;;#ASMEND
7263 ; GFX900-NEXT: v_mov_b32_e32 v5, 0
7264 ; GFX900-NEXT: v_mov_b32_e32 v1, v3
7265 ; GFX900-NEXT: v_mov_b32_e32 v3, v0
7266 ; GFX900-NEXT: v_mov_b32_e32 v4, v0
7267 ; GFX900-NEXT: global_store_dwordx4 v5, v[1:4], s[16:17]
7268 ; GFX900-NEXT: s_waitcnt vmcnt(0)
7269 ; GFX900-NEXT: s_setpc_b64 s[30:31]
7271 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_u_4_4:
7273 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7274 ; GFX90A-NEXT: ;;#ASMSTART
7275 ; GFX90A-NEXT: ; def v[0:3]
7276 ; GFX90A-NEXT: ;;#ASMEND
7277 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
7278 ; GFX90A-NEXT: v_mov_b32_e32 v2, v3
7279 ; GFX90A-NEXT: v_mov_b32_e32 v4, v0
7280 ; GFX90A-NEXT: v_mov_b32_e32 v5, v0
7281 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
7282 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
7283 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
7285 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_u_4_4:
7287 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7288 ; GFX940-NEXT: ;;#ASMSTART
7289 ; GFX940-NEXT: ; def v[0:3]
7290 ; GFX940-NEXT: ;;#ASMEND
7291 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
7292 ; GFX940-NEXT: v_mov_b32_e32 v2, v3
7293 ; GFX940-NEXT: v_mov_b32_e32 v4, v0
7294 ; GFX940-NEXT: v_mov_b32_e32 v5, v0
7295 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
7296 ; GFX940-NEXT: s_waitcnt vmcnt(0)
7297 ; GFX940-NEXT: s_setpc_b64 s[30:31]
7298 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
7299 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
7300 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 poison, i32 4, i32 4>
7301 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
7305 define void @v_shuffle_v4p3_v4p3__7_0_4_4(ptr addrspace(1) inreg %ptr) {
7306 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_0_4_4:
7308 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7309 ; GFX900-NEXT: ;;#ASMSTART
7310 ; GFX900-NEXT: ; def v[0:3]
7311 ; GFX900-NEXT: ;;#ASMEND
7312 ; GFX900-NEXT: ;;#ASMSTART
7313 ; GFX900-NEXT: ; def v[1:4]
7314 ; GFX900-NEXT: ;;#ASMEND
7315 ; GFX900-NEXT: v_mov_b32_e32 v6, 0
7316 ; GFX900-NEXT: v_mov_b32_e32 v2, v4
7317 ; GFX900-NEXT: v_mov_b32_e32 v3, v0
7318 ; GFX900-NEXT: v_mov_b32_e32 v4, v1
7319 ; GFX900-NEXT: v_mov_b32_e32 v5, v1
7320 ; GFX900-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
7321 ; GFX900-NEXT: s_waitcnt vmcnt(0)
7322 ; GFX900-NEXT: s_setpc_b64 s[30:31]
7324 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_0_4_4:
7326 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7327 ; GFX90A-NEXT: ;;#ASMSTART
7328 ; GFX90A-NEXT: ; def v[0:3]
7329 ; GFX90A-NEXT: ;;#ASMEND
7330 ; GFX90A-NEXT: ;;#ASMSTART
7331 ; GFX90A-NEXT: ; def v[2:5]
7332 ; GFX90A-NEXT: ;;#ASMEND
7333 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
7334 ; GFX90A-NEXT: v_pk_mov_b32 v[4:5], v[4:5], v[0:1] op_sel:[1,0]
7335 ; GFX90A-NEXT: v_mov_b32_e32 v6, v2
7336 ; GFX90A-NEXT: v_mov_b32_e32 v7, v2
7337 ; GFX90A-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
7338 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
7339 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
7341 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_0_4_4:
7343 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7344 ; GFX940-NEXT: ;;#ASMSTART
7345 ; GFX940-NEXT: ; def v[0:3]
7346 ; GFX940-NEXT: ;;#ASMEND
7347 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
7348 ; GFX940-NEXT: ;;#ASMSTART
7349 ; GFX940-NEXT: ; def v[2:5]
7350 ; GFX940-NEXT: ;;#ASMEND
7351 ; GFX940-NEXT: s_nop 0
7352 ; GFX940-NEXT: v_pk_mov_b32 v[4:5], v[4:5], v[0:1] op_sel:[1,0]
7353 ; GFX940-NEXT: v_mov_b32_e32 v6, v2
7354 ; GFX940-NEXT: v_mov_b32_e32 v7, v2
7355 ; GFX940-NEXT: global_store_dwordx4 v8, v[4:7], s[0:1] sc0 sc1
7356 ; GFX940-NEXT: s_waitcnt vmcnt(0)
7357 ; GFX940-NEXT: s_setpc_b64 s[30:31]
7358 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
7359 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
7360 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 0, i32 4, i32 4>
7361 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
7365 define void @v_shuffle_v4p3_v4p3__7_1_4_4(ptr addrspace(1) inreg %ptr) {
7366 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_1_4_4:
7368 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7369 ; GFX900-NEXT: ;;#ASMSTART
7370 ; GFX900-NEXT: ; def v[0:3]
7371 ; GFX900-NEXT: ;;#ASMEND
7372 ; GFX900-NEXT: v_mov_b32_e32 v7, 0
7373 ; GFX900-NEXT: ;;#ASMSTART
7374 ; GFX900-NEXT: ; def v[3:6]
7375 ; GFX900-NEXT: ;;#ASMEND
7376 ; GFX900-NEXT: v_mov_b32_e32 v0, v6
7377 ; GFX900-NEXT: v_mov_b32_e32 v2, v3
7378 ; GFX900-NEXT: global_store_dwordx4 v7, v[0:3], s[16:17]
7379 ; GFX900-NEXT: s_waitcnt vmcnt(0)
7380 ; GFX900-NEXT: s_setpc_b64 s[30:31]
7382 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_1_4_4:
7384 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7385 ; GFX90A-NEXT: ;;#ASMSTART
7386 ; GFX90A-NEXT: ; def v[0:3]
7387 ; GFX90A-NEXT: ;;#ASMEND
7388 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
7389 ; GFX90A-NEXT: ;;#ASMSTART
7390 ; GFX90A-NEXT: ; def v[4:7]
7391 ; GFX90A-NEXT: ;;#ASMEND
7392 ; GFX90A-NEXT: v_mov_b32_e32 v0, v7
7393 ; GFX90A-NEXT: v_mov_b32_e32 v2, v4
7394 ; GFX90A-NEXT: v_mov_b32_e32 v3, v4
7395 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
7396 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
7397 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
7399 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_1_4_4:
7401 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7402 ; GFX940-NEXT: ;;#ASMSTART
7403 ; GFX940-NEXT: ; def v[0:3]
7404 ; GFX940-NEXT: ;;#ASMEND
7405 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
7406 ; GFX940-NEXT: ;;#ASMSTART
7407 ; GFX940-NEXT: ; def v[4:7]
7408 ; GFX940-NEXT: ;;#ASMEND
7409 ; GFX940-NEXT: s_nop 0
7410 ; GFX940-NEXT: v_mov_b32_e32 v0, v7
7411 ; GFX940-NEXT: v_mov_b32_e32 v2, v4
7412 ; GFX940-NEXT: v_mov_b32_e32 v3, v4
7413 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
7414 ; GFX940-NEXT: s_waitcnt vmcnt(0)
7415 ; GFX940-NEXT: s_setpc_b64 s[30:31]
7416 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
7417 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
7418 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 1, i32 4, i32 4>
7419 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
7423 define void @v_shuffle_v4p3_v4p3__7_2_4_4(ptr addrspace(1) inreg %ptr) {
7424 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_2_4_4:
7426 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7427 ; GFX900-NEXT: ;;#ASMSTART
7428 ; GFX900-NEXT: ; def v[0:3]
7429 ; GFX900-NEXT: ;;#ASMEND
7430 ; GFX900-NEXT: v_mov_b32_e32 v7, 0
7431 ; GFX900-NEXT: ;;#ASMSTART
7432 ; GFX900-NEXT: ; def v[3:6]
7433 ; GFX900-NEXT: ;;#ASMEND
7434 ; GFX900-NEXT: v_mov_b32_e32 v0, v6
7435 ; GFX900-NEXT: v_mov_b32_e32 v1, v2
7436 ; GFX900-NEXT: v_mov_b32_e32 v2, v3
7437 ; GFX900-NEXT: global_store_dwordx4 v7, v[0:3], s[16:17]
7438 ; GFX900-NEXT: s_waitcnt vmcnt(0)
7439 ; GFX900-NEXT: s_setpc_b64 s[30:31]
7441 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_2_4_4:
7443 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7444 ; GFX90A-NEXT: ;;#ASMSTART
7445 ; GFX90A-NEXT: ; def v[0:3]
7446 ; GFX90A-NEXT: ;;#ASMEND
7447 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
7448 ; GFX90A-NEXT: ;;#ASMSTART
7449 ; GFX90A-NEXT: ; def v[4:7]
7450 ; GFX90A-NEXT: ;;#ASMEND
7451 ; GFX90A-NEXT: v_pk_mov_b32 v[0:1], v[6:7], v[2:3] op_sel:[1,0]
7452 ; GFX90A-NEXT: v_mov_b32_e32 v2, v4
7453 ; GFX90A-NEXT: v_mov_b32_e32 v3, v4
7454 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
7455 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
7456 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
7458 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_2_4_4:
7460 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7461 ; GFX940-NEXT: ;;#ASMSTART
7462 ; GFX940-NEXT: ; def v[0:3]
7463 ; GFX940-NEXT: ;;#ASMEND
7464 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
7465 ; GFX940-NEXT: ;;#ASMSTART
7466 ; GFX940-NEXT: ; def v[4:7]
7467 ; GFX940-NEXT: ;;#ASMEND
7468 ; GFX940-NEXT: s_nop 0
7469 ; GFX940-NEXT: v_pk_mov_b32 v[0:1], v[6:7], v[2:3] op_sel:[1,0]
7470 ; GFX940-NEXT: v_mov_b32_e32 v2, v4
7471 ; GFX940-NEXT: v_mov_b32_e32 v3, v4
7472 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
7473 ; GFX940-NEXT: s_waitcnt vmcnt(0)
7474 ; GFX940-NEXT: s_setpc_b64 s[30:31]
7475 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
7476 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
7477 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 2, i32 4, i32 4>
7478 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
7482 define void @v_shuffle_v4p3_v4p3__7_3_4_4(ptr addrspace(1) inreg %ptr) {
7483 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_3_4_4:
7485 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7486 ; GFX900-NEXT: ;;#ASMSTART
7487 ; GFX900-NEXT: ; def v[0:3]
7488 ; GFX900-NEXT: ;;#ASMEND
7489 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
7490 ; GFX900-NEXT: ;;#ASMSTART
7491 ; GFX900-NEXT: ; def v[4:7]
7492 ; GFX900-NEXT: ;;#ASMEND
7493 ; GFX900-NEXT: v_mov_b32_e32 v0, v7
7494 ; GFX900-NEXT: v_mov_b32_e32 v1, v3
7495 ; GFX900-NEXT: v_mov_b32_e32 v2, v4
7496 ; GFX900-NEXT: v_mov_b32_e32 v3, v4
7497 ; GFX900-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
7498 ; GFX900-NEXT: s_waitcnt vmcnt(0)
7499 ; GFX900-NEXT: s_setpc_b64 s[30:31]
7501 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_3_4_4:
7503 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7504 ; GFX90A-NEXT: ;;#ASMSTART
7505 ; GFX90A-NEXT: ; def v[0:3]
7506 ; GFX90A-NEXT: ;;#ASMEND
7507 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
7508 ; GFX90A-NEXT: ;;#ASMSTART
7509 ; GFX90A-NEXT: ; def v[4:7]
7510 ; GFX90A-NEXT: ;;#ASMEND
7511 ; GFX90A-NEXT: v_mov_b32_e32 v0, v7
7512 ; GFX90A-NEXT: v_mov_b32_e32 v1, v3
7513 ; GFX90A-NEXT: v_mov_b32_e32 v2, v4
7514 ; GFX90A-NEXT: v_mov_b32_e32 v3, v4
7515 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
7516 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
7517 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
7519 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_3_4_4:
7521 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7522 ; GFX940-NEXT: ;;#ASMSTART
7523 ; GFX940-NEXT: ; def v[0:3]
7524 ; GFX940-NEXT: ;;#ASMEND
7525 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
7526 ; GFX940-NEXT: ;;#ASMSTART
7527 ; GFX940-NEXT: ; def v[4:7]
7528 ; GFX940-NEXT: ;;#ASMEND
7529 ; GFX940-NEXT: v_mov_b32_e32 v1, v3
7530 ; GFX940-NEXT: v_mov_b32_e32 v0, v7
7531 ; GFX940-NEXT: v_mov_b32_e32 v2, v4
7532 ; GFX940-NEXT: v_mov_b32_e32 v3, v4
7533 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
7534 ; GFX940-NEXT: s_waitcnt vmcnt(0)
7535 ; GFX940-NEXT: s_setpc_b64 s[30:31]
7536 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
7537 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
7538 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 3, i32 4, i32 4>
7539 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
7543 define void @v_shuffle_v4p3_v4p3__7_5_4_4(ptr addrspace(1) inreg %ptr) {
7544 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_5_4_4:
7546 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7547 ; GFX900-NEXT: ;;#ASMSTART
7548 ; GFX900-NEXT: ; def v[0:3]
7549 ; GFX900-NEXT: ;;#ASMEND
7550 ; GFX900-NEXT: v_mov_b32_e32 v6, 0
7551 ; GFX900-NEXT: v_mov_b32_e32 v2, v3
7552 ; GFX900-NEXT: v_mov_b32_e32 v3, v1
7553 ; GFX900-NEXT: v_mov_b32_e32 v4, v0
7554 ; GFX900-NEXT: v_mov_b32_e32 v5, v0
7555 ; GFX900-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
7556 ; GFX900-NEXT: s_waitcnt vmcnt(0)
7557 ; GFX900-NEXT: s_setpc_b64 s[30:31]
7559 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_5_4_4:
7561 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7562 ; GFX90A-NEXT: ;;#ASMSTART
7563 ; GFX90A-NEXT: ; def v[0:3]
7564 ; GFX90A-NEXT: ;;#ASMEND
7565 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
7566 ; GFX90A-NEXT: v_mov_b32_e32 v2, v3
7567 ; GFX90A-NEXT: v_mov_b32_e32 v3, v1
7568 ; GFX90A-NEXT: v_mov_b32_e32 v4, v0
7569 ; GFX90A-NEXT: v_mov_b32_e32 v5, v0
7570 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
7571 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
7572 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
7574 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_5_4_4:
7576 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7577 ; GFX940-NEXT: ;;#ASMSTART
7578 ; GFX940-NEXT: ; def v[0:3]
7579 ; GFX940-NEXT: ;;#ASMEND
7580 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
7581 ; GFX940-NEXT: v_mov_b32_e32 v2, v3
7582 ; GFX940-NEXT: v_mov_b32_e32 v3, v1
7583 ; GFX940-NEXT: v_mov_b32_e32 v4, v0
7584 ; GFX940-NEXT: v_mov_b32_e32 v5, v0
7585 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
7586 ; GFX940-NEXT: s_waitcnt vmcnt(0)
7587 ; GFX940-NEXT: s_setpc_b64 s[30:31]
7588 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
7589 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
7590 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 5, i32 4, i32 4>
7591 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
7595 define void @v_shuffle_v4p3_v4p3__7_6_4_4(ptr addrspace(1) inreg %ptr) {
7596 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_6_4_4:
7598 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7599 ; GFX900-NEXT: ;;#ASMSTART
7600 ; GFX900-NEXT: ; def v[0:3]
7601 ; GFX900-NEXT: ;;#ASMEND
7602 ; GFX900-NEXT: v_mov_b32_e32 v5, 0
7603 ; GFX900-NEXT: v_mov_b32_e32 v1, v3
7604 ; GFX900-NEXT: v_mov_b32_e32 v3, v0
7605 ; GFX900-NEXT: v_mov_b32_e32 v4, v0
7606 ; GFX900-NEXT: global_store_dwordx4 v5, v[1:4], s[16:17]
7607 ; GFX900-NEXT: s_waitcnt vmcnt(0)
7608 ; GFX900-NEXT: s_setpc_b64 s[30:31]
7610 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_6_4_4:
7612 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7613 ; GFX90A-NEXT: ;;#ASMSTART
7614 ; GFX90A-NEXT: ; def v[0:3]
7615 ; GFX90A-NEXT: ;;#ASMEND
7616 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
7617 ; GFX90A-NEXT: v_pk_mov_b32 v[2:3], v[2:3], v[2:3] op_sel:[1,0]
7618 ; GFX90A-NEXT: v_mov_b32_e32 v4, v0
7619 ; GFX90A-NEXT: v_mov_b32_e32 v5, v0
7620 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
7621 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
7622 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
7624 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_6_4_4:
7626 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7627 ; GFX940-NEXT: ;;#ASMSTART
7628 ; GFX940-NEXT: ; def v[0:3]
7629 ; GFX940-NEXT: ;;#ASMEND
7630 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
7631 ; GFX940-NEXT: v_pk_mov_b32 v[2:3], v[2:3], v[2:3] op_sel:[1,0]
7632 ; GFX940-NEXT: v_mov_b32_e32 v4, v0
7633 ; GFX940-NEXT: v_mov_b32_e32 v5, v0
7634 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
7635 ; GFX940-NEXT: s_waitcnt vmcnt(0)
7636 ; GFX940-NEXT: s_setpc_b64 s[30:31]
7637 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
7638 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
7639 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 6, i32 4, i32 4>
7640 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
7644 define void @v_shuffle_v4p3_v4p3__7_7_4_4(ptr addrspace(1) inreg %ptr) {
7645 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_4_4:
7647 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7648 ; GFX900-NEXT: ;;#ASMSTART
7649 ; GFX900-NEXT: ; def v[0:3]
7650 ; GFX900-NEXT: ;;#ASMEND
7651 ; GFX900-NEXT: v_mov_b32_e32 v5, 0
7652 ; GFX900-NEXT: v_mov_b32_e32 v1, v3
7653 ; GFX900-NEXT: v_mov_b32_e32 v2, v3
7654 ; GFX900-NEXT: v_mov_b32_e32 v3, v0
7655 ; GFX900-NEXT: v_mov_b32_e32 v4, v0
7656 ; GFX900-NEXT: global_store_dwordx4 v5, v[1:4], s[16:17]
7657 ; GFX900-NEXT: s_waitcnt vmcnt(0)
7658 ; GFX900-NEXT: s_setpc_b64 s[30:31]
7660 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_4_4:
7662 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7663 ; GFX90A-NEXT: ;;#ASMSTART
7664 ; GFX90A-NEXT: ; def v[0:3]
7665 ; GFX90A-NEXT: ;;#ASMEND
7666 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
7667 ; GFX90A-NEXT: v_mov_b32_e32 v2, v3
7668 ; GFX90A-NEXT: v_mov_b32_e32 v4, v0
7669 ; GFX90A-NEXT: v_mov_b32_e32 v5, v0
7670 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
7671 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
7672 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
7674 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_4_4:
7676 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7677 ; GFX940-NEXT: ;;#ASMSTART
7678 ; GFX940-NEXT: ; def v[0:3]
7679 ; GFX940-NEXT: ;;#ASMEND
7680 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
7681 ; GFX940-NEXT: v_mov_b32_e32 v2, v3
7682 ; GFX940-NEXT: v_mov_b32_e32 v4, v0
7683 ; GFX940-NEXT: v_mov_b32_e32 v5, v0
7684 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
7685 ; GFX940-NEXT: s_waitcnt vmcnt(0)
7686 ; GFX940-NEXT: s_setpc_b64 s[30:31]
7687 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
7688 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
7689 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 4, i32 4>
7690 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
7694 define void @v_shuffle_v4p3_v4p3__7_7_u_4(ptr addrspace(1) inreg %ptr) {
7695 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_u_4:
7697 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7698 ; GFX900-NEXT: ;;#ASMSTART
7699 ; GFX900-NEXT: ; def v[0:3]
7700 ; GFX900-NEXT: ;;#ASMEND
7701 ; GFX900-NEXT: v_mov_b32_e32 v5, 0
7702 ; GFX900-NEXT: v_mov_b32_e32 v1, v3
7703 ; GFX900-NEXT: v_mov_b32_e32 v2, v3
7704 ; GFX900-NEXT: v_mov_b32_e32 v4, v0
7705 ; GFX900-NEXT: global_store_dwordx4 v5, v[1:4], s[16:17]
7706 ; GFX900-NEXT: s_waitcnt vmcnt(0)
7707 ; GFX900-NEXT: s_setpc_b64 s[30:31]
7709 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_u_4:
7711 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7712 ; GFX90A-NEXT: ;;#ASMSTART
7713 ; GFX90A-NEXT: ; def v[0:3]
7714 ; GFX90A-NEXT: ;;#ASMEND
7715 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
7716 ; GFX90A-NEXT: v_mov_b32_e32 v2, v3
7717 ; GFX90A-NEXT: v_mov_b32_e32 v5, v0
7718 ; GFX90A-NEXT: global_store_dwordx4 v4, v[2:5], s[16:17]
7719 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
7720 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
7722 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_u_4:
7724 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7725 ; GFX940-NEXT: ;;#ASMSTART
7726 ; GFX940-NEXT: ; def v[0:3]
7727 ; GFX940-NEXT: ;;#ASMEND
7728 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
7729 ; GFX940-NEXT: v_mov_b32_e32 v2, v3
7730 ; GFX940-NEXT: v_mov_b32_e32 v5, v0
7731 ; GFX940-NEXT: global_store_dwordx4 v4, v[2:5], s[0:1] sc0 sc1
7732 ; GFX940-NEXT: s_waitcnt vmcnt(0)
7733 ; GFX940-NEXT: s_setpc_b64 s[30:31]
7734 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
7735 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
7736 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 poison, i32 4>
7737 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
7741 define void @v_shuffle_v4p3_v4p3__7_7_0_4(ptr addrspace(1) inreg %ptr) {
7742 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_0_4:
7744 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7745 ; GFX900-NEXT: ;;#ASMSTART
7746 ; GFX900-NEXT: ; def v[0:3]
7747 ; GFX900-NEXT: ;;#ASMEND
7748 ; GFX900-NEXT: ;;#ASMSTART
7749 ; GFX900-NEXT: ; def v[1:4]
7750 ; GFX900-NEXT: ;;#ASMEND
7751 ; GFX900-NEXT: v_mov_b32_e32 v6, 0
7752 ; GFX900-NEXT: v_mov_b32_e32 v2, v4
7753 ; GFX900-NEXT: v_mov_b32_e32 v3, v4
7754 ; GFX900-NEXT: v_mov_b32_e32 v4, v0
7755 ; GFX900-NEXT: v_mov_b32_e32 v5, v1
7756 ; GFX900-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
7757 ; GFX900-NEXT: s_waitcnt vmcnt(0)
7758 ; GFX900-NEXT: s_setpc_b64 s[30:31]
7760 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_0_4:
7762 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7763 ; GFX90A-NEXT: ;;#ASMSTART
7764 ; GFX90A-NEXT: ; def v[0:3]
7765 ; GFX90A-NEXT: ;;#ASMEND
7766 ; GFX90A-NEXT: ;;#ASMSTART
7767 ; GFX90A-NEXT: ; def v[2:5]
7768 ; GFX90A-NEXT: ;;#ASMEND
7769 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
7770 ; GFX90A-NEXT: v_mov_b32_e32 v4, v5
7771 ; GFX90A-NEXT: v_mov_b32_e32 v6, v0
7772 ; GFX90A-NEXT: v_mov_b32_e32 v7, v2
7773 ; GFX90A-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
7774 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
7775 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
7777 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_0_4:
7779 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7780 ; GFX940-NEXT: ;;#ASMSTART
7781 ; GFX940-NEXT: ; def v[0:3]
7782 ; GFX940-NEXT: ;;#ASMEND
7783 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
7784 ; GFX940-NEXT: ;;#ASMSTART
7785 ; GFX940-NEXT: ; def v[2:5]
7786 ; GFX940-NEXT: ;;#ASMEND
7787 ; GFX940-NEXT: v_mov_b32_e32 v6, v0
7788 ; GFX940-NEXT: v_mov_b32_e32 v4, v5
7789 ; GFX940-NEXT: v_mov_b32_e32 v7, v2
7790 ; GFX940-NEXT: global_store_dwordx4 v8, v[4:7], s[0:1] sc0 sc1
7791 ; GFX940-NEXT: s_waitcnt vmcnt(0)
7792 ; GFX940-NEXT: s_setpc_b64 s[30:31]
7793 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
7794 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
7795 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 0, i32 4>
7796 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
7800 define void @v_shuffle_v4p3_v4p3__7_7_1_4(ptr addrspace(1) inreg %ptr) {
7801 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_1_4:
7803 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7804 ; GFX900-NEXT: ;;#ASMSTART
7805 ; GFX900-NEXT: ; def v[0:3]
7806 ; GFX900-NEXT: ;;#ASMEND
7807 ; GFX900-NEXT: ;;#ASMSTART
7808 ; GFX900-NEXT: ; def v[2:5]
7809 ; GFX900-NEXT: ;;#ASMEND
7810 ; GFX900-NEXT: v_mov_b32_e32 v7, 0
7811 ; GFX900-NEXT: v_mov_b32_e32 v3, v5
7812 ; GFX900-NEXT: v_mov_b32_e32 v4, v5
7813 ; GFX900-NEXT: v_mov_b32_e32 v5, v1
7814 ; GFX900-NEXT: v_mov_b32_e32 v6, v2
7815 ; GFX900-NEXT: global_store_dwordx4 v7, v[3:6], s[16:17]
7816 ; GFX900-NEXT: s_waitcnt vmcnt(0)
7817 ; GFX900-NEXT: s_setpc_b64 s[30:31]
7819 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_1_4:
7821 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7822 ; GFX90A-NEXT: ;;#ASMSTART
7823 ; GFX90A-NEXT: ; def v[0:3]
7824 ; GFX90A-NEXT: ;;#ASMEND
7825 ; GFX90A-NEXT: ;;#ASMSTART
7826 ; GFX90A-NEXT: ; def v[2:5]
7827 ; GFX90A-NEXT: ;;#ASMEND
7828 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
7829 ; GFX90A-NEXT: v_pk_mov_b32 v[2:3], v[0:1], v[2:3] op_sel:[1,0]
7830 ; GFX90A-NEXT: v_mov_b32_e32 v0, v5
7831 ; GFX90A-NEXT: v_mov_b32_e32 v1, v5
7832 ; GFX90A-NEXT: global_store_dwordx4 v6, v[0:3], s[16:17]
7833 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
7834 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
7836 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_1_4:
7838 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7839 ; GFX940-NEXT: ;;#ASMSTART
7840 ; GFX940-NEXT: ; def v[0:3]
7841 ; GFX940-NEXT: ;;#ASMEND
7842 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
7843 ; GFX940-NEXT: ;;#ASMSTART
7844 ; GFX940-NEXT: ; def v[2:5]
7845 ; GFX940-NEXT: ;;#ASMEND
7846 ; GFX940-NEXT: s_nop 0
7847 ; GFX940-NEXT: v_pk_mov_b32 v[2:3], v[0:1], v[2:3] op_sel:[1,0]
7848 ; GFX940-NEXT: v_mov_b32_e32 v0, v5
7849 ; GFX940-NEXT: v_mov_b32_e32 v1, v5
7850 ; GFX940-NEXT: global_store_dwordx4 v6, v[0:3], s[0:1] sc0 sc1
7851 ; GFX940-NEXT: s_waitcnt vmcnt(0)
7852 ; GFX940-NEXT: s_setpc_b64 s[30:31]
7853 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
7854 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
7855 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 1, i32 4>
7856 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
7860 define void @v_shuffle_v4p3_v4p3__7_7_2_4(ptr addrspace(1) inreg %ptr) {
7861 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_2_4:
7863 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7864 ; GFX900-NEXT: ;;#ASMSTART
7865 ; GFX900-NEXT: ; def v[0:3]
7866 ; GFX900-NEXT: ;;#ASMEND
7867 ; GFX900-NEXT: v_mov_b32_e32 v7, 0
7868 ; GFX900-NEXT: ;;#ASMSTART
7869 ; GFX900-NEXT: ; def v[3:6]
7870 ; GFX900-NEXT: ;;#ASMEND
7871 ; GFX900-NEXT: v_mov_b32_e32 v0, v6
7872 ; GFX900-NEXT: v_mov_b32_e32 v1, v6
7873 ; GFX900-NEXT: global_store_dwordx4 v7, v[0:3], s[16:17]
7874 ; GFX900-NEXT: s_waitcnt vmcnt(0)
7875 ; GFX900-NEXT: s_setpc_b64 s[30:31]
7877 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_2_4:
7879 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7880 ; GFX90A-NEXT: ;;#ASMSTART
7881 ; GFX90A-NEXT: ; def v[0:3]
7882 ; GFX90A-NEXT: ;;#ASMEND
7883 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
7884 ; GFX90A-NEXT: ;;#ASMSTART
7885 ; GFX90A-NEXT: ; def v[4:7]
7886 ; GFX90A-NEXT: ;;#ASMEND
7887 ; GFX90A-NEXT: v_mov_b32_e32 v0, v7
7888 ; GFX90A-NEXT: v_mov_b32_e32 v1, v7
7889 ; GFX90A-NEXT: v_mov_b32_e32 v3, v4
7890 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
7891 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
7892 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
7894 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_2_4:
7896 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7897 ; GFX940-NEXT: ;;#ASMSTART
7898 ; GFX940-NEXT: ; def v[0:3]
7899 ; GFX940-NEXT: ;;#ASMEND
7900 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
7901 ; GFX940-NEXT: ;;#ASMSTART
7902 ; GFX940-NEXT: ; def v[4:7]
7903 ; GFX940-NEXT: ;;#ASMEND
7904 ; GFX940-NEXT: s_nop 0
7905 ; GFX940-NEXT: v_mov_b32_e32 v0, v7
7906 ; GFX940-NEXT: v_mov_b32_e32 v1, v7
7907 ; GFX940-NEXT: v_mov_b32_e32 v3, v4
7908 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
7909 ; GFX940-NEXT: s_waitcnt vmcnt(0)
7910 ; GFX940-NEXT: s_setpc_b64 s[30:31]
7911 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
7912 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
7913 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 2, i32 4>
7914 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
7918 define void @v_shuffle_v4p3_v4p3__7_7_3_4(ptr addrspace(1) inreg %ptr) {
7919 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_3_4:
7921 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7922 ; GFX900-NEXT: ;;#ASMSTART
7923 ; GFX900-NEXT: ; def v[0:3]
7924 ; GFX900-NEXT: ;;#ASMEND
7925 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
7926 ; GFX900-NEXT: ;;#ASMSTART
7927 ; GFX900-NEXT: ; def v[4:7]
7928 ; GFX900-NEXT: ;;#ASMEND
7929 ; GFX900-NEXT: v_mov_b32_e32 v0, v7
7930 ; GFX900-NEXT: v_mov_b32_e32 v1, v7
7931 ; GFX900-NEXT: v_mov_b32_e32 v2, v3
7932 ; GFX900-NEXT: v_mov_b32_e32 v3, v4
7933 ; GFX900-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
7934 ; GFX900-NEXT: s_waitcnt vmcnt(0)
7935 ; GFX900-NEXT: s_setpc_b64 s[30:31]
7937 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_3_4:
7939 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7940 ; GFX90A-NEXT: ;;#ASMSTART
7941 ; GFX90A-NEXT: ; def v[0:3]
7942 ; GFX90A-NEXT: ;;#ASMEND
7943 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
7944 ; GFX90A-NEXT: ;;#ASMSTART
7945 ; GFX90A-NEXT: ; def v[4:7]
7946 ; GFX90A-NEXT: ;;#ASMEND
7947 ; GFX90A-NEXT: v_pk_mov_b32 v[2:3], v[2:3], v[4:5] op_sel:[1,0]
7948 ; GFX90A-NEXT: v_mov_b32_e32 v0, v7
7949 ; GFX90A-NEXT: v_mov_b32_e32 v1, v7
7950 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
7951 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
7952 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
7954 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_3_4:
7956 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7957 ; GFX940-NEXT: ;;#ASMSTART
7958 ; GFX940-NEXT: ; def v[0:3]
7959 ; GFX940-NEXT: ;;#ASMEND
7960 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
7961 ; GFX940-NEXT: ;;#ASMSTART
7962 ; GFX940-NEXT: ; def v[4:7]
7963 ; GFX940-NEXT: ;;#ASMEND
7964 ; GFX940-NEXT: s_nop 0
7965 ; GFX940-NEXT: v_pk_mov_b32 v[2:3], v[2:3], v[4:5] op_sel:[1,0]
7966 ; GFX940-NEXT: v_mov_b32_e32 v0, v7
7967 ; GFX940-NEXT: v_mov_b32_e32 v1, v7
7968 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
7969 ; GFX940-NEXT: s_waitcnt vmcnt(0)
7970 ; GFX940-NEXT: s_setpc_b64 s[30:31]
7971 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
7972 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
7973 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 3, i32 4>
7974 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
7978 define void @v_shuffle_v4p3_v4p3__7_7_5_4(ptr addrspace(1) inreg %ptr) {
7979 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_5_4:
7981 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7982 ; GFX900-NEXT: ;;#ASMSTART
7983 ; GFX900-NEXT: ; def v[0:3]
7984 ; GFX900-NEXT: ;;#ASMEND
7985 ; GFX900-NEXT: v_mov_b32_e32 v6, 0
7986 ; GFX900-NEXT: v_mov_b32_e32 v2, v3
7987 ; GFX900-NEXT: v_mov_b32_e32 v4, v1
7988 ; GFX900-NEXT: v_mov_b32_e32 v5, v0
7989 ; GFX900-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
7990 ; GFX900-NEXT: s_waitcnt vmcnt(0)
7991 ; GFX900-NEXT: s_setpc_b64 s[30:31]
7993 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_5_4:
7995 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
7996 ; GFX90A-NEXT: ;;#ASMSTART
7997 ; GFX90A-NEXT: ; def v[0:3]
7998 ; GFX90A-NEXT: ;;#ASMEND
7999 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
8000 ; GFX90A-NEXT: v_pk_mov_b32 v[4:5], v[0:1], v[0:1] op_sel:[1,0]
8001 ; GFX90A-NEXT: v_mov_b32_e32 v2, v3
8002 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
8003 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
8004 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
8006 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_5_4:
8008 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8009 ; GFX940-NEXT: ;;#ASMSTART
8010 ; GFX940-NEXT: ; def v[0:3]
8011 ; GFX940-NEXT: ;;#ASMEND
8012 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
8013 ; GFX940-NEXT: v_pk_mov_b32 v[4:5], v[0:1], v[0:1] op_sel:[1,0]
8014 ; GFX940-NEXT: v_mov_b32_e32 v2, v3
8015 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
8016 ; GFX940-NEXT: s_waitcnt vmcnt(0)
8017 ; GFX940-NEXT: s_setpc_b64 s[30:31]
8018 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
8019 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
8020 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 5, i32 4>
8021 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
8025 define void @v_shuffle_v4p3_v4p3__7_7_6_4(ptr addrspace(1) inreg %ptr) {
8026 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_6_4:
8028 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8029 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
8030 ; GFX900-NEXT: ;;#ASMSTART
8031 ; GFX900-NEXT: ; def v[0:3]
8032 ; GFX900-NEXT: ;;#ASMEND
8033 ; GFX900-NEXT: v_mov_b32_e32 v4, v3
8034 ; GFX900-NEXT: v_mov_b32_e32 v5, v3
8035 ; GFX900-NEXT: v_mov_b32_e32 v6, v2
8036 ; GFX900-NEXT: v_mov_b32_e32 v7, v0
8037 ; GFX900-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
8038 ; GFX900-NEXT: s_waitcnt vmcnt(0)
8039 ; GFX900-NEXT: s_setpc_b64 s[30:31]
8041 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_6_4:
8043 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8044 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
8045 ; GFX90A-NEXT: ;;#ASMSTART
8046 ; GFX90A-NEXT: ; def v[0:3]
8047 ; GFX90A-NEXT: ;;#ASMEND
8048 ; GFX90A-NEXT: v_mov_b32_e32 v4, v3
8049 ; GFX90A-NEXT: v_mov_b32_e32 v5, v3
8050 ; GFX90A-NEXT: v_mov_b32_e32 v6, v2
8051 ; GFX90A-NEXT: v_mov_b32_e32 v7, v0
8052 ; GFX90A-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
8053 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
8054 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
8056 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_6_4:
8058 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8059 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
8060 ; GFX940-NEXT: ;;#ASMSTART
8061 ; GFX940-NEXT: ; def v[0:3]
8062 ; GFX940-NEXT: ;;#ASMEND
8063 ; GFX940-NEXT: s_nop 0
8064 ; GFX940-NEXT: v_mov_b32_e32 v4, v3
8065 ; GFX940-NEXT: v_mov_b32_e32 v5, v3
8066 ; GFX940-NEXT: v_mov_b32_e32 v6, v2
8067 ; GFX940-NEXT: v_mov_b32_e32 v7, v0
8068 ; GFX940-NEXT: global_store_dwordx4 v8, v[4:7], s[0:1] sc0 sc1
8069 ; GFX940-NEXT: s_waitcnt vmcnt(0)
8070 ; GFX940-NEXT: s_setpc_b64 s[30:31]
8071 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
8072 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
8073 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 6, i32 4>
8074 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
8078 define void @v_shuffle_v4p3_v4p3__u_5_5_5(ptr addrspace(1) inreg %ptr) {
8079 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__u_5_5_5:
8081 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8082 ; GFX900-NEXT: ;;#ASMSTART
8083 ; GFX900-NEXT: ; def v[0:3]
8084 ; GFX900-NEXT: ;;#ASMEND
8085 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
8086 ; GFX900-NEXT: v_mov_b32_e32 v2, v1
8087 ; GFX900-NEXT: v_mov_b32_e32 v3, v1
8088 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
8089 ; GFX900-NEXT: s_waitcnt vmcnt(0)
8090 ; GFX900-NEXT: s_setpc_b64 s[30:31]
8092 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__u_5_5_5:
8094 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8095 ; GFX90A-NEXT: ;;#ASMSTART
8096 ; GFX90A-NEXT: ; def v[0:3]
8097 ; GFX90A-NEXT: ;;#ASMEND
8098 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
8099 ; GFX90A-NEXT: v_mov_b32_e32 v2, v1
8100 ; GFX90A-NEXT: v_mov_b32_e32 v3, v1
8101 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
8102 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
8103 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
8105 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__u_5_5_5:
8107 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8108 ; GFX940-NEXT: ;;#ASMSTART
8109 ; GFX940-NEXT: ; def v[0:3]
8110 ; GFX940-NEXT: ;;#ASMEND
8111 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
8112 ; GFX940-NEXT: v_mov_b32_e32 v2, v1
8113 ; GFX940-NEXT: v_mov_b32_e32 v3, v1
8114 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
8115 ; GFX940-NEXT: s_waitcnt vmcnt(0)
8116 ; GFX940-NEXT: s_setpc_b64 s[30:31]
8117 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
8118 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
8119 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 poison, i32 5, i32 5, i32 5>
8120 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
8124 define void @v_shuffle_v4p3_v4p3__0_5_5_5(ptr addrspace(1) inreg %ptr) {
8125 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__0_5_5_5:
8127 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8128 ; GFX900-NEXT: ;;#ASMSTART
8129 ; GFX900-NEXT: ; def v[0:3]
8130 ; GFX900-NEXT: ;;#ASMEND
8131 ; GFX900-NEXT: ;;#ASMSTART
8132 ; GFX900-NEXT: ; def v[2:5]
8133 ; GFX900-NEXT: ;;#ASMEND
8134 ; GFX900-NEXT: v_mov_b32_e32 v6, 0
8135 ; GFX900-NEXT: v_mov_b32_e32 v1, v3
8136 ; GFX900-NEXT: v_mov_b32_e32 v2, v3
8137 ; GFX900-NEXT: global_store_dwordx4 v6, v[0:3], s[16:17]
8138 ; GFX900-NEXT: s_waitcnt vmcnt(0)
8139 ; GFX900-NEXT: s_setpc_b64 s[30:31]
8141 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__0_5_5_5:
8143 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8144 ; GFX90A-NEXT: ;;#ASMSTART
8145 ; GFX90A-NEXT: ; def v[0:3]
8146 ; GFX90A-NEXT: ;;#ASMEND
8147 ; GFX90A-NEXT: ;;#ASMSTART
8148 ; GFX90A-NEXT: ; def v[2:5]
8149 ; GFX90A-NEXT: ;;#ASMEND
8150 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
8151 ; GFX90A-NEXT: v_mov_b32_e32 v1, v3
8152 ; GFX90A-NEXT: v_mov_b32_e32 v2, v3
8153 ; GFX90A-NEXT: global_store_dwordx4 v6, v[0:3], s[16:17]
8154 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
8155 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
8157 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__0_5_5_5:
8159 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8160 ; GFX940-NEXT: ;;#ASMSTART
8161 ; GFX940-NEXT: ; def v[0:3]
8162 ; GFX940-NEXT: ;;#ASMEND
8163 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
8164 ; GFX940-NEXT: ;;#ASMSTART
8165 ; GFX940-NEXT: ; def v[2:5]
8166 ; GFX940-NEXT: ;;#ASMEND
8167 ; GFX940-NEXT: s_nop 0
8168 ; GFX940-NEXT: v_mov_b32_e32 v1, v3
8169 ; GFX940-NEXT: v_mov_b32_e32 v2, v3
8170 ; GFX940-NEXT: global_store_dwordx4 v6, v[0:3], s[0:1] sc0 sc1
8171 ; GFX940-NEXT: s_waitcnt vmcnt(0)
8172 ; GFX940-NEXT: s_setpc_b64 s[30:31]
8173 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
8174 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
8175 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 0, i32 5, i32 5, i32 5>
8176 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
8180 define void @v_shuffle_v4p3_v4p3__1_5_5_5(ptr addrspace(1) inreg %ptr) {
8181 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__1_5_5_5:
8183 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8184 ; GFX900-NEXT: ;;#ASMSTART
8185 ; GFX900-NEXT: ; def v[0:3]
8186 ; GFX900-NEXT: ;;#ASMEND
8187 ; GFX900-NEXT: ;;#ASMSTART
8188 ; GFX900-NEXT: ; def v[2:5]
8189 ; GFX900-NEXT: ;;#ASMEND
8190 ; GFX900-NEXT: v_mov_b32_e32 v6, 0
8191 ; GFX900-NEXT: v_mov_b32_e32 v2, v1
8192 ; GFX900-NEXT: v_mov_b32_e32 v4, v3
8193 ; GFX900-NEXT: v_mov_b32_e32 v5, v3
8194 ; GFX900-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
8195 ; GFX900-NEXT: s_waitcnt vmcnt(0)
8196 ; GFX900-NEXT: s_setpc_b64 s[30:31]
8198 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__1_5_5_5:
8200 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8201 ; GFX90A-NEXT: ;;#ASMSTART
8202 ; GFX90A-NEXT: ; def v[0:3]
8203 ; GFX90A-NEXT: ;;#ASMEND
8204 ; GFX90A-NEXT: ;;#ASMSTART
8205 ; GFX90A-NEXT: ; def v[2:5]
8206 ; GFX90A-NEXT: ;;#ASMEND
8207 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
8208 ; GFX90A-NEXT: v_mov_b32_e32 v2, v1
8209 ; GFX90A-NEXT: v_mov_b32_e32 v4, v3
8210 ; GFX90A-NEXT: v_mov_b32_e32 v5, v3
8211 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
8212 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
8213 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
8215 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__1_5_5_5:
8217 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8218 ; GFX940-NEXT: ;;#ASMSTART
8219 ; GFX940-NEXT: ; def v[0:3]
8220 ; GFX940-NEXT: ;;#ASMEND
8221 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
8222 ; GFX940-NEXT: ;;#ASMSTART
8223 ; GFX940-NEXT: ; def v[2:5]
8224 ; GFX940-NEXT: ;;#ASMEND
8225 ; GFX940-NEXT: s_nop 0
8226 ; GFX940-NEXT: v_mov_b32_e32 v2, v1
8227 ; GFX940-NEXT: v_mov_b32_e32 v4, v3
8228 ; GFX940-NEXT: v_mov_b32_e32 v5, v3
8229 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
8230 ; GFX940-NEXT: s_waitcnt vmcnt(0)
8231 ; GFX940-NEXT: s_setpc_b64 s[30:31]
8232 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
8233 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
8234 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 1, i32 5, i32 5, i32 5>
8235 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
8239 define void @v_shuffle_v4p3_v4p3__2_5_5_5(ptr addrspace(1) inreg %ptr) {
8240 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__2_5_5_5:
8242 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8243 ; GFX900-NEXT: ;;#ASMSTART
8244 ; GFX900-NEXT: ; def v[0:3]
8245 ; GFX900-NEXT: ;;#ASMEND
8246 ; GFX900-NEXT: ;;#ASMSTART
8247 ; GFX900-NEXT: ; def v[3:6]
8248 ; GFX900-NEXT: ;;#ASMEND
8249 ; GFX900-NEXT: v_mov_b32_e32 v7, 0
8250 ; GFX900-NEXT: v_mov_b32_e32 v3, v2
8251 ; GFX900-NEXT: v_mov_b32_e32 v5, v4
8252 ; GFX900-NEXT: v_mov_b32_e32 v6, v4
8253 ; GFX900-NEXT: global_store_dwordx4 v7, v[3:6], s[16:17]
8254 ; GFX900-NEXT: s_waitcnt vmcnt(0)
8255 ; GFX900-NEXT: s_setpc_b64 s[30:31]
8257 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__2_5_5_5:
8259 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8260 ; GFX90A-NEXT: ;;#ASMSTART
8261 ; GFX90A-NEXT: ; def v[4:7]
8262 ; GFX90A-NEXT: ;;#ASMEND
8263 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
8264 ; GFX90A-NEXT: ;;#ASMSTART
8265 ; GFX90A-NEXT: ; def v[0:3]
8266 ; GFX90A-NEXT: ;;#ASMEND
8267 ; GFX90A-NEXT: v_mov_b32_e32 v4, v2
8268 ; GFX90A-NEXT: v_mov_b32_e32 v6, v5
8269 ; GFX90A-NEXT: v_mov_b32_e32 v7, v5
8270 ; GFX90A-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
8271 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
8272 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
8274 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__2_5_5_5:
8276 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8277 ; GFX940-NEXT: ;;#ASMSTART
8278 ; GFX940-NEXT: ; def v[4:7]
8279 ; GFX940-NEXT: ;;#ASMEND
8280 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
8281 ; GFX940-NEXT: ;;#ASMSTART
8282 ; GFX940-NEXT: ; def v[0:3]
8283 ; GFX940-NEXT: ;;#ASMEND
8284 ; GFX940-NEXT: v_mov_b32_e32 v6, v5
8285 ; GFX940-NEXT: v_mov_b32_e32 v4, v2
8286 ; GFX940-NEXT: v_mov_b32_e32 v7, v5
8287 ; GFX940-NEXT: global_store_dwordx4 v8, v[4:7], s[0:1] sc0 sc1
8288 ; GFX940-NEXT: s_waitcnt vmcnt(0)
8289 ; GFX940-NEXT: s_setpc_b64 s[30:31]
8290 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
8291 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
8292 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 2, i32 5, i32 5, i32 5>
8293 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
8297 define void @v_shuffle_v4p3_v4p3__3_5_5_5(ptr addrspace(1) inreg %ptr) {
8298 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__3_5_5_5:
8300 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8301 ; GFX900-NEXT: ;;#ASMSTART
8302 ; GFX900-NEXT: ; def v[4:7]
8303 ; GFX900-NEXT: ;;#ASMEND
8304 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
8305 ; GFX900-NEXT: ;;#ASMSTART
8306 ; GFX900-NEXT: ; def v[0:3]
8307 ; GFX900-NEXT: ;;#ASMEND
8308 ; GFX900-NEXT: v_mov_b32_e32 v4, v3
8309 ; GFX900-NEXT: v_mov_b32_e32 v6, v5
8310 ; GFX900-NEXT: v_mov_b32_e32 v7, v5
8311 ; GFX900-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
8312 ; GFX900-NEXT: s_waitcnt vmcnt(0)
8313 ; GFX900-NEXT: s_setpc_b64 s[30:31]
8315 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__3_5_5_5:
8317 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8318 ; GFX90A-NEXT: ;;#ASMSTART
8319 ; GFX90A-NEXT: ; def v[4:7]
8320 ; GFX90A-NEXT: ;;#ASMEND
8321 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
8322 ; GFX90A-NEXT: ;;#ASMSTART
8323 ; GFX90A-NEXT: ; def v[0:3]
8324 ; GFX90A-NEXT: ;;#ASMEND
8325 ; GFX90A-NEXT: v_mov_b32_e32 v4, v3
8326 ; GFX90A-NEXT: v_mov_b32_e32 v6, v5
8327 ; GFX90A-NEXT: v_mov_b32_e32 v7, v5
8328 ; GFX90A-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
8329 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
8330 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
8332 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__3_5_5_5:
8334 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8335 ; GFX940-NEXT: ;;#ASMSTART
8336 ; GFX940-NEXT: ; def v[4:7]
8337 ; GFX940-NEXT: ;;#ASMEND
8338 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
8339 ; GFX940-NEXT: ;;#ASMSTART
8340 ; GFX940-NEXT: ; def v[0:3]
8341 ; GFX940-NEXT: ;;#ASMEND
8342 ; GFX940-NEXT: v_mov_b32_e32 v6, v5
8343 ; GFX940-NEXT: v_mov_b32_e32 v4, v3
8344 ; GFX940-NEXT: v_mov_b32_e32 v7, v5
8345 ; GFX940-NEXT: global_store_dwordx4 v8, v[4:7], s[0:1] sc0 sc1
8346 ; GFX940-NEXT: s_waitcnt vmcnt(0)
8347 ; GFX940-NEXT: s_setpc_b64 s[30:31]
8348 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
8349 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
8350 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 3, i32 5, i32 5, i32 5>
8351 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
8355 define void @v_shuffle_v4p3_v4p3__4_5_5_5(ptr addrspace(1) inreg %ptr) {
8356 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__4_5_5_5:
8358 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8359 ; GFX900-NEXT: ;;#ASMSTART
8360 ; GFX900-NEXT: ; def v[0:3]
8361 ; GFX900-NEXT: ;;#ASMEND
8362 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
8363 ; GFX900-NEXT: v_mov_b32_e32 v2, v1
8364 ; GFX900-NEXT: v_mov_b32_e32 v3, v1
8365 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
8366 ; GFX900-NEXT: s_waitcnt vmcnt(0)
8367 ; GFX900-NEXT: s_setpc_b64 s[30:31]
8369 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__4_5_5_5:
8371 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8372 ; GFX90A-NEXT: ;;#ASMSTART
8373 ; GFX90A-NEXT: ; def v[0:3]
8374 ; GFX90A-NEXT: ;;#ASMEND
8375 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
8376 ; GFX90A-NEXT: v_mov_b32_e32 v2, v1
8377 ; GFX90A-NEXT: v_mov_b32_e32 v3, v1
8378 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
8379 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
8380 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
8382 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__4_5_5_5:
8384 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8385 ; GFX940-NEXT: ;;#ASMSTART
8386 ; GFX940-NEXT: ; def v[0:3]
8387 ; GFX940-NEXT: ;;#ASMEND
8388 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
8389 ; GFX940-NEXT: v_mov_b32_e32 v2, v1
8390 ; GFX940-NEXT: v_mov_b32_e32 v3, v1
8391 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
8392 ; GFX940-NEXT: s_waitcnt vmcnt(0)
8393 ; GFX940-NEXT: s_setpc_b64 s[30:31]
8394 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
8395 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
8396 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 4, i32 5, i32 5, i32 5>
8397 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
8401 define void @v_shuffle_v4p3_v4p3__5_5_5_5(ptr addrspace(1) inreg %ptr) {
8402 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__5_5_5_5:
8404 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8405 ; GFX900-NEXT: ;;#ASMSTART
8406 ; GFX900-NEXT: ; def v[0:3]
8407 ; GFX900-NEXT: ;;#ASMEND
8408 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
8409 ; GFX900-NEXT: v_mov_b32_e32 v0, v1
8410 ; GFX900-NEXT: v_mov_b32_e32 v2, v1
8411 ; GFX900-NEXT: v_mov_b32_e32 v3, v1
8412 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
8413 ; GFX900-NEXT: s_waitcnt vmcnt(0)
8414 ; GFX900-NEXT: s_setpc_b64 s[30:31]
8416 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__5_5_5_5:
8418 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8419 ; GFX90A-NEXT: ;;#ASMSTART
8420 ; GFX90A-NEXT: ; def v[0:3]
8421 ; GFX90A-NEXT: ;;#ASMEND
8422 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
8423 ; GFX90A-NEXT: v_mov_b32_e32 v0, v1
8424 ; GFX90A-NEXT: v_mov_b32_e32 v2, v1
8425 ; GFX90A-NEXT: v_mov_b32_e32 v3, v1
8426 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
8427 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
8428 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
8430 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__5_5_5_5:
8432 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8433 ; GFX940-NEXT: ;;#ASMSTART
8434 ; GFX940-NEXT: ; def v[0:3]
8435 ; GFX940-NEXT: ;;#ASMEND
8436 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
8437 ; GFX940-NEXT: v_mov_b32_e32 v0, v1
8438 ; GFX940-NEXT: v_mov_b32_e32 v2, v1
8439 ; GFX940-NEXT: v_mov_b32_e32 v3, v1
8440 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
8441 ; GFX940-NEXT: s_waitcnt vmcnt(0)
8442 ; GFX940-NEXT: s_setpc_b64 s[30:31]
8443 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
8444 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
8445 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 5, i32 5, i32 5, i32 5>
8446 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
8450 define void @v_shuffle_v4p3_v4p3__6_5_5_5(ptr addrspace(1) inreg %ptr) {
8451 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__6_5_5_5:
8453 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8454 ; GFX900-NEXT: ;;#ASMSTART
8455 ; GFX900-NEXT: ; def v[0:3]
8456 ; GFX900-NEXT: ;;#ASMEND
8457 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
8458 ; GFX900-NEXT: v_mov_b32_e32 v0, v2
8459 ; GFX900-NEXT: v_mov_b32_e32 v2, v1
8460 ; GFX900-NEXT: v_mov_b32_e32 v3, v1
8461 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
8462 ; GFX900-NEXT: s_waitcnt vmcnt(0)
8463 ; GFX900-NEXT: s_setpc_b64 s[30:31]
8465 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__6_5_5_5:
8467 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8468 ; GFX90A-NEXT: ;;#ASMSTART
8469 ; GFX90A-NEXT: ; def v[0:3]
8470 ; GFX90A-NEXT: ;;#ASMEND
8471 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
8472 ; GFX90A-NEXT: v_mov_b32_e32 v0, v2
8473 ; GFX90A-NEXT: v_mov_b32_e32 v2, v1
8474 ; GFX90A-NEXT: v_mov_b32_e32 v3, v1
8475 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
8476 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
8477 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
8479 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__6_5_5_5:
8481 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8482 ; GFX940-NEXT: ;;#ASMSTART
8483 ; GFX940-NEXT: ; def v[0:3]
8484 ; GFX940-NEXT: ;;#ASMEND
8485 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
8486 ; GFX940-NEXT: v_mov_b32_e32 v0, v2
8487 ; GFX940-NEXT: v_mov_b32_e32 v2, v1
8488 ; GFX940-NEXT: v_mov_b32_e32 v3, v1
8489 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
8490 ; GFX940-NEXT: s_waitcnt vmcnt(0)
8491 ; GFX940-NEXT: s_setpc_b64 s[30:31]
8492 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
8493 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
8494 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 6, i32 5, i32 5, i32 5>
8495 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
8499 define void @v_shuffle_v4p3_v4p3__7_5_5_5(ptr addrspace(1) inreg %ptr) {
8500 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_5_5_5:
8502 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8503 ; GFX900-NEXT: ;;#ASMSTART
8504 ; GFX900-NEXT: ; def v[0:3]
8505 ; GFX900-NEXT: ;;#ASMEND
8506 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
8507 ; GFX900-NEXT: v_mov_b32_e32 v0, v3
8508 ; GFX900-NEXT: v_mov_b32_e32 v2, v1
8509 ; GFX900-NEXT: v_mov_b32_e32 v3, v1
8510 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
8511 ; GFX900-NEXT: s_waitcnt vmcnt(0)
8512 ; GFX900-NEXT: s_setpc_b64 s[30:31]
8514 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_5_5_5:
8516 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8517 ; GFX90A-NEXT: ;;#ASMSTART
8518 ; GFX90A-NEXT: ; def v[0:3]
8519 ; GFX90A-NEXT: ;;#ASMEND
8520 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
8521 ; GFX90A-NEXT: v_mov_b32_e32 v0, v3
8522 ; GFX90A-NEXT: v_mov_b32_e32 v2, v1
8523 ; GFX90A-NEXT: v_mov_b32_e32 v3, v1
8524 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
8525 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
8526 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
8528 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_5_5_5:
8530 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8531 ; GFX940-NEXT: ;;#ASMSTART
8532 ; GFX940-NEXT: ; def v[0:3]
8533 ; GFX940-NEXT: ;;#ASMEND
8534 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
8535 ; GFX940-NEXT: v_mov_b32_e32 v0, v3
8536 ; GFX940-NEXT: v_mov_b32_e32 v2, v1
8537 ; GFX940-NEXT: v_mov_b32_e32 v3, v1
8538 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
8539 ; GFX940-NEXT: s_waitcnt vmcnt(0)
8540 ; GFX940-NEXT: s_setpc_b64 s[30:31]
8541 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
8542 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
8543 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 5, i32 5, i32 5>
8544 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
8548 define void @v_shuffle_v4p3_v4p3__7_u_5_5(ptr addrspace(1) inreg %ptr) {
8549 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_u_5_5:
8551 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8552 ; GFX900-NEXT: ;;#ASMSTART
8553 ; GFX900-NEXT: ; def v[0:3]
8554 ; GFX900-NEXT: ;;#ASMEND
8555 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
8556 ; GFX900-NEXT: v_mov_b32_e32 v0, v3
8557 ; GFX900-NEXT: v_mov_b32_e32 v2, v1
8558 ; GFX900-NEXT: v_mov_b32_e32 v3, v1
8559 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
8560 ; GFX900-NEXT: s_waitcnt vmcnt(0)
8561 ; GFX900-NEXT: s_setpc_b64 s[30:31]
8563 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_u_5_5:
8565 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8566 ; GFX90A-NEXT: ;;#ASMSTART
8567 ; GFX90A-NEXT: ; def v[0:3]
8568 ; GFX90A-NEXT: ;;#ASMEND
8569 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
8570 ; GFX90A-NEXT: v_mov_b32_e32 v0, v3
8571 ; GFX90A-NEXT: v_mov_b32_e32 v2, v1
8572 ; GFX90A-NEXT: v_mov_b32_e32 v3, v1
8573 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
8574 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
8575 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
8577 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_u_5_5:
8579 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8580 ; GFX940-NEXT: ;;#ASMSTART
8581 ; GFX940-NEXT: ; def v[0:3]
8582 ; GFX940-NEXT: ;;#ASMEND
8583 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
8584 ; GFX940-NEXT: v_mov_b32_e32 v0, v3
8585 ; GFX940-NEXT: v_mov_b32_e32 v2, v1
8586 ; GFX940-NEXT: v_mov_b32_e32 v3, v1
8587 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
8588 ; GFX940-NEXT: s_waitcnt vmcnt(0)
8589 ; GFX940-NEXT: s_setpc_b64 s[30:31]
8590 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
8591 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
8592 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 poison, i32 5, i32 5>
8593 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
8597 define void @v_shuffle_v4p3_v4p3__7_0_5_5(ptr addrspace(1) inreg %ptr) {
8598 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_0_5_5:
8600 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8601 ; GFX900-NEXT: ;;#ASMSTART
8602 ; GFX900-NEXT: ; def v[0:3]
8603 ; GFX900-NEXT: ;;#ASMEND
8604 ; GFX900-NEXT: ;;#ASMSTART
8605 ; GFX900-NEXT: ; def v[1:4]
8606 ; GFX900-NEXT: ;;#ASMEND
8607 ; GFX900-NEXT: v_mov_b32_e32 v7, 0
8608 ; GFX900-NEXT: v_mov_b32_e32 v3, v4
8609 ; GFX900-NEXT: v_mov_b32_e32 v4, v0
8610 ; GFX900-NEXT: v_mov_b32_e32 v5, v2
8611 ; GFX900-NEXT: v_mov_b32_e32 v6, v2
8612 ; GFX900-NEXT: global_store_dwordx4 v7, v[3:6], s[16:17]
8613 ; GFX900-NEXT: s_waitcnt vmcnt(0)
8614 ; GFX900-NEXT: s_setpc_b64 s[30:31]
8616 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_0_5_5:
8618 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8619 ; GFX90A-NEXT: ;;#ASMSTART
8620 ; GFX90A-NEXT: ; def v[0:3]
8621 ; GFX90A-NEXT: ;;#ASMEND
8622 ; GFX90A-NEXT: ;;#ASMSTART
8623 ; GFX90A-NEXT: ; def v[2:5]
8624 ; GFX90A-NEXT: ;;#ASMEND
8625 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
8626 ; GFX90A-NEXT: v_pk_mov_b32 v[0:1], v[4:5], v[0:1] op_sel:[1,0]
8627 ; GFX90A-NEXT: v_mov_b32_e32 v2, v3
8628 ; GFX90A-NEXT: global_store_dwordx4 v6, v[0:3], s[16:17]
8629 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
8630 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
8632 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_0_5_5:
8634 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8635 ; GFX940-NEXT: ;;#ASMSTART
8636 ; GFX940-NEXT: ; def v[0:3]
8637 ; GFX940-NEXT: ;;#ASMEND
8638 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
8639 ; GFX940-NEXT: ;;#ASMSTART
8640 ; GFX940-NEXT: ; def v[2:5]
8641 ; GFX940-NEXT: ;;#ASMEND
8642 ; GFX940-NEXT: s_nop 0
8643 ; GFX940-NEXT: v_pk_mov_b32 v[0:1], v[4:5], v[0:1] op_sel:[1,0]
8644 ; GFX940-NEXT: v_mov_b32_e32 v2, v3
8645 ; GFX940-NEXT: global_store_dwordx4 v6, v[0:3], s[0:1] sc0 sc1
8646 ; GFX940-NEXT: s_waitcnt vmcnt(0)
8647 ; GFX940-NEXT: s_setpc_b64 s[30:31]
8648 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
8649 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
8650 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 0, i32 5, i32 5>
8651 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
8655 define void @v_shuffle_v4p3_v4p3__7_1_5_5(ptr addrspace(1) inreg %ptr) {
8656 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_1_5_5:
8658 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8659 ; GFX900-NEXT: ;;#ASMSTART
8660 ; GFX900-NEXT: ; def v[0:3]
8661 ; GFX900-NEXT: ;;#ASMEND
8662 ; GFX900-NEXT: ;;#ASMSTART
8663 ; GFX900-NEXT: ; def v[2:5]
8664 ; GFX900-NEXT: ;;#ASMEND
8665 ; GFX900-NEXT: v_mov_b32_e32 v6, 0
8666 ; GFX900-NEXT: v_mov_b32_e32 v0, v5
8667 ; GFX900-NEXT: v_mov_b32_e32 v2, v3
8668 ; GFX900-NEXT: global_store_dwordx4 v6, v[0:3], s[16:17]
8669 ; GFX900-NEXT: s_waitcnt vmcnt(0)
8670 ; GFX900-NEXT: s_setpc_b64 s[30:31]
8672 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_1_5_5:
8674 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8675 ; GFX90A-NEXT: ;;#ASMSTART
8676 ; GFX90A-NEXT: ; def v[0:3]
8677 ; GFX90A-NEXT: ;;#ASMEND
8678 ; GFX90A-NEXT: ;;#ASMSTART
8679 ; GFX90A-NEXT: ; def v[2:5]
8680 ; GFX90A-NEXT: ;;#ASMEND
8681 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
8682 ; GFX90A-NEXT: v_mov_b32_e32 v0, v5
8683 ; GFX90A-NEXT: v_mov_b32_e32 v2, v3
8684 ; GFX90A-NEXT: global_store_dwordx4 v6, v[0:3], s[16:17]
8685 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
8686 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
8688 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_1_5_5:
8690 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8691 ; GFX940-NEXT: ;;#ASMSTART
8692 ; GFX940-NEXT: ; def v[0:3]
8693 ; GFX940-NEXT: ;;#ASMEND
8694 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
8695 ; GFX940-NEXT: ;;#ASMSTART
8696 ; GFX940-NEXT: ; def v[2:5]
8697 ; GFX940-NEXT: ;;#ASMEND
8698 ; GFX940-NEXT: s_nop 0
8699 ; GFX940-NEXT: v_mov_b32_e32 v0, v5
8700 ; GFX940-NEXT: v_mov_b32_e32 v2, v3
8701 ; GFX940-NEXT: global_store_dwordx4 v6, v[0:3], s[0:1] sc0 sc1
8702 ; GFX940-NEXT: s_waitcnt vmcnt(0)
8703 ; GFX940-NEXT: s_setpc_b64 s[30:31]
8704 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
8705 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
8706 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 1, i32 5, i32 5>
8707 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
8711 define void @v_shuffle_v4p3_v4p3__7_2_5_5(ptr addrspace(1) inreg %ptr) {
8712 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_2_5_5:
8714 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8715 ; GFX900-NEXT: ;;#ASMSTART
8716 ; GFX900-NEXT: ; def v[0:3]
8717 ; GFX900-NEXT: ;;#ASMEND
8718 ; GFX900-NEXT: ;;#ASMSTART
8719 ; GFX900-NEXT: ; def v[3:6]
8720 ; GFX900-NEXT: ;;#ASMEND
8721 ; GFX900-NEXT: v_mov_b32_e32 v7, 0
8722 ; GFX900-NEXT: v_mov_b32_e32 v0, v6
8723 ; GFX900-NEXT: v_mov_b32_e32 v1, v2
8724 ; GFX900-NEXT: v_mov_b32_e32 v2, v4
8725 ; GFX900-NEXT: v_mov_b32_e32 v3, v4
8726 ; GFX900-NEXT: global_store_dwordx4 v7, v[0:3], s[16:17]
8727 ; GFX900-NEXT: s_waitcnt vmcnt(0)
8728 ; GFX900-NEXT: s_setpc_b64 s[30:31]
8730 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_2_5_5:
8732 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8733 ; GFX90A-NEXT: ;;#ASMSTART
8734 ; GFX90A-NEXT: ; def v[0:3]
8735 ; GFX90A-NEXT: ;;#ASMEND
8736 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
8737 ; GFX90A-NEXT: ;;#ASMSTART
8738 ; GFX90A-NEXT: ; def v[4:7]
8739 ; GFX90A-NEXT: ;;#ASMEND
8740 ; GFX90A-NEXT: v_pk_mov_b32 v[0:1], v[6:7], v[2:3] op_sel:[1,0]
8741 ; GFX90A-NEXT: v_mov_b32_e32 v2, v5
8742 ; GFX90A-NEXT: v_mov_b32_e32 v3, v5
8743 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
8744 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
8745 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
8747 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_2_5_5:
8749 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8750 ; GFX940-NEXT: ;;#ASMSTART
8751 ; GFX940-NEXT: ; def v[0:3]
8752 ; GFX940-NEXT: ;;#ASMEND
8753 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
8754 ; GFX940-NEXT: ;;#ASMSTART
8755 ; GFX940-NEXT: ; def v[4:7]
8756 ; GFX940-NEXT: ;;#ASMEND
8757 ; GFX940-NEXT: s_nop 0
8758 ; GFX940-NEXT: v_pk_mov_b32 v[0:1], v[6:7], v[2:3] op_sel:[1,0]
8759 ; GFX940-NEXT: v_mov_b32_e32 v2, v5
8760 ; GFX940-NEXT: v_mov_b32_e32 v3, v5
8761 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
8762 ; GFX940-NEXT: s_waitcnt vmcnt(0)
8763 ; GFX940-NEXT: s_setpc_b64 s[30:31]
8764 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
8765 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
8766 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 2, i32 5, i32 5>
8767 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
8771 define void @v_shuffle_v4p3_v4p3__7_3_5_5(ptr addrspace(1) inreg %ptr) {
8772 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_3_5_5:
8774 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8775 ; GFX900-NEXT: ;;#ASMSTART
8776 ; GFX900-NEXT: ; def v[0:3]
8777 ; GFX900-NEXT: ;;#ASMEND
8778 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
8779 ; GFX900-NEXT: ;;#ASMSTART
8780 ; GFX900-NEXT: ; def v[4:7]
8781 ; GFX900-NEXT: ;;#ASMEND
8782 ; GFX900-NEXT: v_mov_b32_e32 v0, v7
8783 ; GFX900-NEXT: v_mov_b32_e32 v1, v3
8784 ; GFX900-NEXT: v_mov_b32_e32 v2, v5
8785 ; GFX900-NEXT: v_mov_b32_e32 v3, v5
8786 ; GFX900-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
8787 ; GFX900-NEXT: s_waitcnt vmcnt(0)
8788 ; GFX900-NEXT: s_setpc_b64 s[30:31]
8790 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_3_5_5:
8792 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8793 ; GFX90A-NEXT: ;;#ASMSTART
8794 ; GFX90A-NEXT: ; def v[0:3]
8795 ; GFX90A-NEXT: ;;#ASMEND
8796 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
8797 ; GFX90A-NEXT: ;;#ASMSTART
8798 ; GFX90A-NEXT: ; def v[4:7]
8799 ; GFX90A-NEXT: ;;#ASMEND
8800 ; GFX90A-NEXT: v_mov_b32_e32 v0, v7
8801 ; GFX90A-NEXT: v_mov_b32_e32 v1, v3
8802 ; GFX90A-NEXT: v_mov_b32_e32 v2, v5
8803 ; GFX90A-NEXT: v_mov_b32_e32 v3, v5
8804 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
8805 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
8806 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
8808 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_3_5_5:
8810 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8811 ; GFX940-NEXT: ;;#ASMSTART
8812 ; GFX940-NEXT: ; def v[0:3]
8813 ; GFX940-NEXT: ;;#ASMEND
8814 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
8815 ; GFX940-NEXT: ;;#ASMSTART
8816 ; GFX940-NEXT: ; def v[4:7]
8817 ; GFX940-NEXT: ;;#ASMEND
8818 ; GFX940-NEXT: v_mov_b32_e32 v1, v3
8819 ; GFX940-NEXT: v_mov_b32_e32 v0, v7
8820 ; GFX940-NEXT: v_mov_b32_e32 v2, v5
8821 ; GFX940-NEXT: v_mov_b32_e32 v3, v5
8822 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
8823 ; GFX940-NEXT: s_waitcnt vmcnt(0)
8824 ; GFX940-NEXT: s_setpc_b64 s[30:31]
8825 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
8826 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
8827 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 3, i32 5, i32 5>
8828 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
8832 define void @v_shuffle_v4p3_v4p3__7_4_5_5(ptr addrspace(1) inreg %ptr) {
8833 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_4_5_5:
8835 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8836 ; GFX900-NEXT: ;;#ASMSTART
8837 ; GFX900-NEXT: ; def v[0:3]
8838 ; GFX900-NEXT: ;;#ASMEND
8839 ; GFX900-NEXT: v_mov_b32_e32 v6, 0
8840 ; GFX900-NEXT: v_mov_b32_e32 v2, v3
8841 ; GFX900-NEXT: v_mov_b32_e32 v3, v0
8842 ; GFX900-NEXT: v_mov_b32_e32 v4, v1
8843 ; GFX900-NEXT: v_mov_b32_e32 v5, v1
8844 ; GFX900-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
8845 ; GFX900-NEXT: s_waitcnt vmcnt(0)
8846 ; GFX900-NEXT: s_setpc_b64 s[30:31]
8848 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_4_5_5:
8850 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8851 ; GFX90A-NEXT: ;;#ASMSTART
8852 ; GFX90A-NEXT: ; def v[0:3]
8853 ; GFX90A-NEXT: ;;#ASMEND
8854 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
8855 ; GFX90A-NEXT: v_pk_mov_b32 v[2:3], v[2:3], v[0:1] op_sel:[1,0]
8856 ; GFX90A-NEXT: v_mov_b32_e32 v4, v1
8857 ; GFX90A-NEXT: v_mov_b32_e32 v5, v1
8858 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
8859 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
8860 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
8862 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_4_5_5:
8864 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8865 ; GFX940-NEXT: ;;#ASMSTART
8866 ; GFX940-NEXT: ; def v[0:3]
8867 ; GFX940-NEXT: ;;#ASMEND
8868 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
8869 ; GFX940-NEXT: v_pk_mov_b32 v[2:3], v[2:3], v[0:1] op_sel:[1,0]
8870 ; GFX940-NEXT: v_mov_b32_e32 v4, v1
8871 ; GFX940-NEXT: v_mov_b32_e32 v5, v1
8872 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
8873 ; GFX940-NEXT: s_waitcnt vmcnt(0)
8874 ; GFX940-NEXT: s_setpc_b64 s[30:31]
8875 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
8876 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
8877 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 4, i32 5, i32 5>
8878 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
8882 define void @v_shuffle_v4p3_v4p3__7_6_5_5(ptr addrspace(1) inreg %ptr) {
8883 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_6_5_5:
8885 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8886 ; GFX900-NEXT: v_mov_b32_e32 v7, 0
8887 ; GFX900-NEXT: ;;#ASMSTART
8888 ; GFX900-NEXT: ; def v[0:3]
8889 ; GFX900-NEXT: ;;#ASMEND
8890 ; GFX900-NEXT: v_mov_b32_e32 v4, v2
8891 ; GFX900-NEXT: v_mov_b32_e32 v5, v1
8892 ; GFX900-NEXT: v_mov_b32_e32 v6, v1
8893 ; GFX900-NEXT: global_store_dwordx4 v7, v[3:6], s[16:17]
8894 ; GFX900-NEXT: s_waitcnt vmcnt(0)
8895 ; GFX900-NEXT: s_setpc_b64 s[30:31]
8897 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_6_5_5:
8899 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8900 ; GFX90A-NEXT: ;;#ASMSTART
8901 ; GFX90A-NEXT: ; def v[0:3]
8902 ; GFX90A-NEXT: ;;#ASMEND
8903 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
8904 ; GFX90A-NEXT: v_pk_mov_b32 v[2:3], v[2:3], v[2:3] op_sel:[1,0]
8905 ; GFX90A-NEXT: v_mov_b32_e32 v4, v1
8906 ; GFX90A-NEXT: v_mov_b32_e32 v5, v1
8907 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
8908 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
8909 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
8911 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_6_5_5:
8913 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8914 ; GFX940-NEXT: ;;#ASMSTART
8915 ; GFX940-NEXT: ; def v[0:3]
8916 ; GFX940-NEXT: ;;#ASMEND
8917 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
8918 ; GFX940-NEXT: v_pk_mov_b32 v[2:3], v[2:3], v[2:3] op_sel:[1,0]
8919 ; GFX940-NEXT: v_mov_b32_e32 v4, v1
8920 ; GFX940-NEXT: v_mov_b32_e32 v5, v1
8921 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
8922 ; GFX940-NEXT: s_waitcnt vmcnt(0)
8923 ; GFX940-NEXT: s_setpc_b64 s[30:31]
8924 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
8925 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
8926 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 6, i32 5, i32 5>
8927 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
8931 define void @v_shuffle_v4p3_v4p3__7_7_5_5(ptr addrspace(1) inreg %ptr) {
8932 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_5_5:
8934 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8935 ; GFX900-NEXT: ;;#ASMSTART
8936 ; GFX900-NEXT: ; def v[0:3]
8937 ; GFX900-NEXT: ;;#ASMEND
8938 ; GFX900-NEXT: v_mov_b32_e32 v6, 0
8939 ; GFX900-NEXT: v_mov_b32_e32 v2, v3
8940 ; GFX900-NEXT: v_mov_b32_e32 v4, v1
8941 ; GFX900-NEXT: v_mov_b32_e32 v5, v1
8942 ; GFX900-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
8943 ; GFX900-NEXT: s_waitcnt vmcnt(0)
8944 ; GFX900-NEXT: s_setpc_b64 s[30:31]
8946 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_5_5:
8948 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8949 ; GFX90A-NEXT: ;;#ASMSTART
8950 ; GFX90A-NEXT: ; def v[0:3]
8951 ; GFX90A-NEXT: ;;#ASMEND
8952 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
8953 ; GFX90A-NEXT: v_mov_b32_e32 v2, v3
8954 ; GFX90A-NEXT: v_mov_b32_e32 v4, v1
8955 ; GFX90A-NEXT: v_mov_b32_e32 v5, v1
8956 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
8957 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
8958 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
8960 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_5_5:
8962 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8963 ; GFX940-NEXT: ;;#ASMSTART
8964 ; GFX940-NEXT: ; def v[0:3]
8965 ; GFX940-NEXT: ;;#ASMEND
8966 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
8967 ; GFX940-NEXT: v_mov_b32_e32 v2, v3
8968 ; GFX940-NEXT: v_mov_b32_e32 v4, v1
8969 ; GFX940-NEXT: v_mov_b32_e32 v5, v1
8970 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
8971 ; GFX940-NEXT: s_waitcnt vmcnt(0)
8972 ; GFX940-NEXT: s_setpc_b64 s[30:31]
8973 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
8974 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
8975 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 5, i32 5>
8976 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
8980 define void @v_shuffle_v4p3_v4p3__7_7_u_5(ptr addrspace(1) inreg %ptr) {
8981 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_u_5:
8983 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8984 ; GFX900-NEXT: ;;#ASMSTART
8985 ; GFX900-NEXT: ; def v[0:3]
8986 ; GFX900-NEXT: ;;#ASMEND
8987 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
8988 ; GFX900-NEXT: v_mov_b32_e32 v2, v3
8989 ; GFX900-NEXT: v_mov_b32_e32 v5, v1
8990 ; GFX900-NEXT: global_store_dwordx4 v4, v[2:5], s[16:17]
8991 ; GFX900-NEXT: s_waitcnt vmcnt(0)
8992 ; GFX900-NEXT: s_setpc_b64 s[30:31]
8994 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_u_5:
8996 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
8997 ; GFX90A-NEXT: ;;#ASMSTART
8998 ; GFX90A-NEXT: ; def v[0:3]
8999 ; GFX90A-NEXT: ;;#ASMEND
9000 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
9001 ; GFX90A-NEXT: v_mov_b32_e32 v2, v3
9002 ; GFX90A-NEXT: v_mov_b32_e32 v5, v1
9003 ; GFX90A-NEXT: global_store_dwordx4 v4, v[2:5], s[16:17]
9004 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
9005 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
9007 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_u_5:
9009 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9010 ; GFX940-NEXT: ;;#ASMSTART
9011 ; GFX940-NEXT: ; def v[0:3]
9012 ; GFX940-NEXT: ;;#ASMEND
9013 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
9014 ; GFX940-NEXT: v_mov_b32_e32 v2, v3
9015 ; GFX940-NEXT: v_mov_b32_e32 v5, v1
9016 ; GFX940-NEXT: global_store_dwordx4 v4, v[2:5], s[0:1] sc0 sc1
9017 ; GFX940-NEXT: s_waitcnt vmcnt(0)
9018 ; GFX940-NEXT: s_setpc_b64 s[30:31]
9019 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
9020 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
9021 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 poison, i32 5>
9022 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
9026 define void @v_shuffle_v4p3_v4p3__7_7_0_5(ptr addrspace(1) inreg %ptr) {
9027 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_0_5:
9029 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9030 ; GFX900-NEXT: ;;#ASMSTART
9031 ; GFX900-NEXT: ; def v[0:3]
9032 ; GFX900-NEXT: ;;#ASMEND
9033 ; GFX900-NEXT: ;;#ASMSTART
9034 ; GFX900-NEXT: ; def v[1:4]
9035 ; GFX900-NEXT: ;;#ASMEND
9036 ; GFX900-NEXT: v_mov_b32_e32 v7, 0
9037 ; GFX900-NEXT: v_mov_b32_e32 v3, v4
9038 ; GFX900-NEXT: v_mov_b32_e32 v5, v0
9039 ; GFX900-NEXT: v_mov_b32_e32 v6, v2
9040 ; GFX900-NEXT: global_store_dwordx4 v7, v[3:6], s[16:17]
9041 ; GFX900-NEXT: s_waitcnt vmcnt(0)
9042 ; GFX900-NEXT: s_setpc_b64 s[30:31]
9044 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_0_5:
9046 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9047 ; GFX90A-NEXT: ;;#ASMSTART
9048 ; GFX90A-NEXT: ; def v[0:3]
9049 ; GFX90A-NEXT: ;;#ASMEND
9050 ; GFX90A-NEXT: ;;#ASMSTART
9051 ; GFX90A-NEXT: ; def v[2:5]
9052 ; GFX90A-NEXT: ;;#ASMEND
9053 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
9054 ; GFX90A-NEXT: v_mov_b32_e32 v4, v5
9055 ; GFX90A-NEXT: v_mov_b32_e32 v6, v0
9056 ; GFX90A-NEXT: v_mov_b32_e32 v7, v3
9057 ; GFX90A-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
9058 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
9059 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
9061 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_0_5:
9063 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9064 ; GFX940-NEXT: ;;#ASMSTART
9065 ; GFX940-NEXT: ; def v[0:3]
9066 ; GFX940-NEXT: ;;#ASMEND
9067 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
9068 ; GFX940-NEXT: ;;#ASMSTART
9069 ; GFX940-NEXT: ; def v[2:5]
9070 ; GFX940-NEXT: ;;#ASMEND
9071 ; GFX940-NEXT: v_mov_b32_e32 v6, v0
9072 ; GFX940-NEXT: v_mov_b32_e32 v4, v5
9073 ; GFX940-NEXT: v_mov_b32_e32 v7, v3
9074 ; GFX940-NEXT: global_store_dwordx4 v8, v[4:7], s[0:1] sc0 sc1
9075 ; GFX940-NEXT: s_waitcnt vmcnt(0)
9076 ; GFX940-NEXT: s_setpc_b64 s[30:31]
9077 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
9078 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
9079 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 0, i32 5>
9080 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
9084 define void @v_shuffle_v4p3_v4p3__7_7_1_5(ptr addrspace(1) inreg %ptr) {
9085 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_1_5:
9087 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9088 ; GFX900-NEXT: ;;#ASMSTART
9089 ; GFX900-NEXT: ; def v[0:3]
9090 ; GFX900-NEXT: ;;#ASMEND
9091 ; GFX900-NEXT: ;;#ASMSTART
9092 ; GFX900-NEXT: ; def v[2:5]
9093 ; GFX900-NEXT: ;;#ASMEND
9094 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
9095 ; GFX900-NEXT: v_mov_b32_e32 v4, v5
9096 ; GFX900-NEXT: v_mov_b32_e32 v6, v1
9097 ; GFX900-NEXT: v_mov_b32_e32 v7, v3
9098 ; GFX900-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
9099 ; GFX900-NEXT: s_waitcnt vmcnt(0)
9100 ; GFX900-NEXT: s_setpc_b64 s[30:31]
9102 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_1_5:
9104 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9105 ; GFX90A-NEXT: ;;#ASMSTART
9106 ; GFX90A-NEXT: ; def v[0:3]
9107 ; GFX90A-NEXT: ;;#ASMEND
9108 ; GFX90A-NEXT: ;;#ASMSTART
9109 ; GFX90A-NEXT: ; def v[2:5]
9110 ; GFX90A-NEXT: ;;#ASMEND
9111 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
9112 ; GFX90A-NEXT: v_mov_b32_e32 v4, v5
9113 ; GFX90A-NEXT: v_mov_b32_e32 v6, v1
9114 ; GFX90A-NEXT: v_mov_b32_e32 v7, v3
9115 ; GFX90A-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
9116 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
9117 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
9119 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_1_5:
9121 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9122 ; GFX940-NEXT: ;;#ASMSTART
9123 ; GFX940-NEXT: ; def v[0:3]
9124 ; GFX940-NEXT: ;;#ASMEND
9125 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
9126 ; GFX940-NEXT: ;;#ASMSTART
9127 ; GFX940-NEXT: ; def v[2:5]
9128 ; GFX940-NEXT: ;;#ASMEND
9129 ; GFX940-NEXT: v_mov_b32_e32 v6, v1
9130 ; GFX940-NEXT: v_mov_b32_e32 v4, v5
9131 ; GFX940-NEXT: v_mov_b32_e32 v7, v3
9132 ; GFX940-NEXT: global_store_dwordx4 v8, v[4:7], s[0:1] sc0 sc1
9133 ; GFX940-NEXT: s_waitcnt vmcnt(0)
9134 ; GFX940-NEXT: s_setpc_b64 s[30:31]
9135 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
9136 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
9137 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 1, i32 5>
9138 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
9142 define void @v_shuffle_v4p3_v4p3__7_7_2_5(ptr addrspace(1) inreg %ptr) {
9143 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_2_5:
9145 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9146 ; GFX900-NEXT: ;;#ASMSTART
9147 ; GFX900-NEXT: ; def v[0:3]
9148 ; GFX900-NEXT: ;;#ASMEND
9149 ; GFX900-NEXT: ;;#ASMSTART
9150 ; GFX900-NEXT: ; def v[3:6]
9151 ; GFX900-NEXT: ;;#ASMEND
9152 ; GFX900-NEXT: v_mov_b32_e32 v7, 0
9153 ; GFX900-NEXT: v_mov_b32_e32 v0, v6
9154 ; GFX900-NEXT: v_mov_b32_e32 v1, v6
9155 ; GFX900-NEXT: v_mov_b32_e32 v3, v4
9156 ; GFX900-NEXT: global_store_dwordx4 v7, v[0:3], s[16:17]
9157 ; GFX900-NEXT: s_waitcnt vmcnt(0)
9158 ; GFX900-NEXT: s_setpc_b64 s[30:31]
9160 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_2_5:
9162 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9163 ; GFX90A-NEXT: ;;#ASMSTART
9164 ; GFX90A-NEXT: ; def v[0:3]
9165 ; GFX90A-NEXT: ;;#ASMEND
9166 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
9167 ; GFX90A-NEXT: ;;#ASMSTART
9168 ; GFX90A-NEXT: ; def v[4:7]
9169 ; GFX90A-NEXT: ;;#ASMEND
9170 ; GFX90A-NEXT: v_mov_b32_e32 v0, v7
9171 ; GFX90A-NEXT: v_mov_b32_e32 v1, v7
9172 ; GFX90A-NEXT: v_mov_b32_e32 v3, v5
9173 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
9174 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
9175 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
9177 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_2_5:
9179 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9180 ; GFX940-NEXT: ;;#ASMSTART
9181 ; GFX940-NEXT: ; def v[0:3]
9182 ; GFX940-NEXT: ;;#ASMEND
9183 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
9184 ; GFX940-NEXT: ;;#ASMSTART
9185 ; GFX940-NEXT: ; def v[4:7]
9186 ; GFX940-NEXT: ;;#ASMEND
9187 ; GFX940-NEXT: s_nop 0
9188 ; GFX940-NEXT: v_mov_b32_e32 v0, v7
9189 ; GFX940-NEXT: v_mov_b32_e32 v1, v7
9190 ; GFX940-NEXT: v_mov_b32_e32 v3, v5
9191 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
9192 ; GFX940-NEXT: s_waitcnt vmcnt(0)
9193 ; GFX940-NEXT: s_setpc_b64 s[30:31]
9194 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
9195 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
9196 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 2, i32 5>
9197 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
9201 define void @v_shuffle_v4p3_v4p3__7_7_3_5(ptr addrspace(1) inreg %ptr) {
9202 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_3_5:
9204 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9205 ; GFX900-NEXT: ;;#ASMSTART
9206 ; GFX900-NEXT: ; def v[0:3]
9207 ; GFX900-NEXT: ;;#ASMEND
9208 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
9209 ; GFX900-NEXT: ;;#ASMSTART
9210 ; GFX900-NEXT: ; def v[4:7]
9211 ; GFX900-NEXT: ;;#ASMEND
9212 ; GFX900-NEXT: v_mov_b32_e32 v0, v7
9213 ; GFX900-NEXT: v_mov_b32_e32 v1, v7
9214 ; GFX900-NEXT: v_mov_b32_e32 v2, v3
9215 ; GFX900-NEXT: v_mov_b32_e32 v3, v5
9216 ; GFX900-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
9217 ; GFX900-NEXT: s_waitcnt vmcnt(0)
9218 ; GFX900-NEXT: s_setpc_b64 s[30:31]
9220 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_3_5:
9222 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9223 ; GFX90A-NEXT: ;;#ASMSTART
9224 ; GFX90A-NEXT: ; def v[0:3]
9225 ; GFX90A-NEXT: ;;#ASMEND
9226 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
9227 ; GFX90A-NEXT: ;;#ASMSTART
9228 ; GFX90A-NEXT: ; def v[4:7]
9229 ; GFX90A-NEXT: ;;#ASMEND
9230 ; GFX90A-NEXT: v_mov_b32_e32 v0, v7
9231 ; GFX90A-NEXT: v_mov_b32_e32 v1, v7
9232 ; GFX90A-NEXT: v_mov_b32_e32 v2, v3
9233 ; GFX90A-NEXT: v_mov_b32_e32 v3, v5
9234 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
9235 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
9236 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
9238 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_3_5:
9240 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9241 ; GFX940-NEXT: ;;#ASMSTART
9242 ; GFX940-NEXT: ; def v[0:3]
9243 ; GFX940-NEXT: ;;#ASMEND
9244 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
9245 ; GFX940-NEXT: ;;#ASMSTART
9246 ; GFX940-NEXT: ; def v[4:7]
9247 ; GFX940-NEXT: ;;#ASMEND
9248 ; GFX940-NEXT: v_mov_b32_e32 v2, v3
9249 ; GFX940-NEXT: v_mov_b32_e32 v0, v7
9250 ; GFX940-NEXT: v_mov_b32_e32 v1, v7
9251 ; GFX940-NEXT: v_mov_b32_e32 v3, v5
9252 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
9253 ; GFX940-NEXT: s_waitcnt vmcnt(0)
9254 ; GFX940-NEXT: s_setpc_b64 s[30:31]
9255 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
9256 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
9257 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 3, i32 5>
9258 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
9262 define void @v_shuffle_v4p3_v4p3__7_7_4_5(ptr addrspace(1) inreg %ptr) {
9263 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_4_5:
9265 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9266 ; GFX900-NEXT: ;;#ASMSTART
9267 ; GFX900-NEXT: ; def v[0:3]
9268 ; GFX900-NEXT: ;;#ASMEND
9269 ; GFX900-NEXT: v_mov_b32_e32 v6, 0
9270 ; GFX900-NEXT: v_mov_b32_e32 v2, v3
9271 ; GFX900-NEXT: v_mov_b32_e32 v4, v0
9272 ; GFX900-NEXT: v_mov_b32_e32 v5, v1
9273 ; GFX900-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
9274 ; GFX900-NEXT: s_waitcnt vmcnt(0)
9275 ; GFX900-NEXT: s_setpc_b64 s[30:31]
9277 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_4_5:
9279 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9280 ; GFX90A-NEXT: ;;#ASMSTART
9281 ; GFX90A-NEXT: ; def v[0:3]
9282 ; GFX90A-NEXT: ;;#ASMEND
9283 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
9284 ; GFX90A-NEXT: v_mov_b32_e32 v2, v3
9285 ; GFX90A-NEXT: v_mov_b32_e32 v4, v0
9286 ; GFX90A-NEXT: v_mov_b32_e32 v5, v1
9287 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
9288 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
9289 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
9291 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_4_5:
9293 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9294 ; GFX940-NEXT: ;;#ASMSTART
9295 ; GFX940-NEXT: ; def v[0:3]
9296 ; GFX940-NEXT: ;;#ASMEND
9297 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
9298 ; GFX940-NEXT: v_mov_b32_e32 v2, v3
9299 ; GFX940-NEXT: v_mov_b32_e32 v4, v0
9300 ; GFX940-NEXT: v_mov_b32_e32 v5, v1
9301 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
9302 ; GFX940-NEXT: s_waitcnt vmcnt(0)
9303 ; GFX940-NEXT: s_setpc_b64 s[30:31]
9304 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
9305 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
9306 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 4, i32 5>
9307 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
9311 define void @v_shuffle_v4p3_v4p3__7_7_6_5(ptr addrspace(1) inreg %ptr) {
9312 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_6_5:
9314 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9315 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
9316 ; GFX900-NEXT: ;;#ASMSTART
9317 ; GFX900-NEXT: ; def v[0:3]
9318 ; GFX900-NEXT: ;;#ASMEND
9319 ; GFX900-NEXT: v_mov_b32_e32 v4, v3
9320 ; GFX900-NEXT: v_mov_b32_e32 v5, v3
9321 ; GFX900-NEXT: v_mov_b32_e32 v6, v2
9322 ; GFX900-NEXT: v_mov_b32_e32 v7, v1
9323 ; GFX900-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
9324 ; GFX900-NEXT: s_waitcnt vmcnt(0)
9325 ; GFX900-NEXT: s_setpc_b64 s[30:31]
9327 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_6_5:
9329 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9330 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
9331 ; GFX90A-NEXT: ;;#ASMSTART
9332 ; GFX90A-NEXT: ; def v[0:3]
9333 ; GFX90A-NEXT: ;;#ASMEND
9334 ; GFX90A-NEXT: v_mov_b32_e32 v4, v3
9335 ; GFX90A-NEXT: v_mov_b32_e32 v5, v3
9336 ; GFX90A-NEXT: v_mov_b32_e32 v6, v2
9337 ; GFX90A-NEXT: v_mov_b32_e32 v7, v1
9338 ; GFX90A-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
9339 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
9340 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
9342 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_6_5:
9344 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9345 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
9346 ; GFX940-NEXT: ;;#ASMSTART
9347 ; GFX940-NEXT: ; def v[0:3]
9348 ; GFX940-NEXT: ;;#ASMEND
9349 ; GFX940-NEXT: s_nop 0
9350 ; GFX940-NEXT: v_mov_b32_e32 v4, v3
9351 ; GFX940-NEXT: v_mov_b32_e32 v5, v3
9352 ; GFX940-NEXT: v_mov_b32_e32 v6, v2
9353 ; GFX940-NEXT: v_mov_b32_e32 v7, v1
9354 ; GFX940-NEXT: global_store_dwordx4 v8, v[4:7], s[0:1] sc0 sc1
9355 ; GFX940-NEXT: s_waitcnt vmcnt(0)
9356 ; GFX940-NEXT: s_setpc_b64 s[30:31]
9357 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
9358 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
9359 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 6, i32 5>
9360 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
9364 define void @v_shuffle_v4p3_v4p3__u_6_6_6(ptr addrspace(1) inreg %ptr) {
9365 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__u_6_6_6:
9367 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9368 ; GFX900-NEXT: ;;#ASMSTART
9369 ; GFX900-NEXT: ; def v[0:3]
9370 ; GFX900-NEXT: ;;#ASMEND
9371 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
9372 ; GFX900-NEXT: v_mov_b32_e32 v1, v2
9373 ; GFX900-NEXT: v_mov_b32_e32 v3, v2
9374 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
9375 ; GFX900-NEXT: s_waitcnt vmcnt(0)
9376 ; GFX900-NEXT: s_setpc_b64 s[30:31]
9378 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__u_6_6_6:
9380 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9381 ; GFX90A-NEXT: ;;#ASMSTART
9382 ; GFX90A-NEXT: ; def v[0:3]
9383 ; GFX90A-NEXT: ;;#ASMEND
9384 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
9385 ; GFX90A-NEXT: v_mov_b32_e32 v1, v2
9386 ; GFX90A-NEXT: v_mov_b32_e32 v3, v2
9387 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
9388 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
9389 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
9391 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__u_6_6_6:
9393 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9394 ; GFX940-NEXT: ;;#ASMSTART
9395 ; GFX940-NEXT: ; def v[0:3]
9396 ; GFX940-NEXT: ;;#ASMEND
9397 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
9398 ; GFX940-NEXT: v_mov_b32_e32 v1, v2
9399 ; GFX940-NEXT: v_mov_b32_e32 v3, v2
9400 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
9401 ; GFX940-NEXT: s_waitcnt vmcnt(0)
9402 ; GFX940-NEXT: s_setpc_b64 s[30:31]
9403 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
9404 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
9405 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 poison, i32 6, i32 6, i32 6>
9406 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
9410 define void @v_shuffle_v4p3_v4p3__0_6_6_6(ptr addrspace(1) inreg %ptr) {
9411 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__0_6_6_6:
9413 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9414 ; GFX900-NEXT: ;;#ASMSTART
9415 ; GFX900-NEXT: ; def v[0:3]
9416 ; GFX900-NEXT: ;;#ASMEND
9417 ; GFX900-NEXT: ;;#ASMSTART
9418 ; GFX900-NEXT: ; def v[1:4]
9419 ; GFX900-NEXT: ;;#ASMEND
9420 ; GFX900-NEXT: v_mov_b32_e32 v5, 0
9421 ; GFX900-NEXT: v_mov_b32_e32 v1, v3
9422 ; GFX900-NEXT: v_mov_b32_e32 v2, v3
9423 ; GFX900-NEXT: global_store_dwordx4 v5, v[0:3], s[16:17]
9424 ; GFX900-NEXT: s_waitcnt vmcnt(0)
9425 ; GFX900-NEXT: s_setpc_b64 s[30:31]
9427 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__0_6_6_6:
9429 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9430 ; GFX90A-NEXT: ;;#ASMSTART
9431 ; GFX90A-NEXT: ; def v[0:3]
9432 ; GFX90A-NEXT: ;;#ASMEND
9433 ; GFX90A-NEXT: ;;#ASMSTART
9434 ; GFX90A-NEXT: ; def v[2:5]
9435 ; GFX90A-NEXT: ;;#ASMEND
9436 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
9437 ; GFX90A-NEXT: v_mov_b32_e32 v1, v4
9438 ; GFX90A-NEXT: v_mov_b32_e32 v2, v4
9439 ; GFX90A-NEXT: v_mov_b32_e32 v3, v4
9440 ; GFX90A-NEXT: global_store_dwordx4 v6, v[0:3], s[16:17]
9441 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
9442 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
9444 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__0_6_6_6:
9446 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9447 ; GFX940-NEXT: ;;#ASMSTART
9448 ; GFX940-NEXT: ; def v[0:3]
9449 ; GFX940-NEXT: ;;#ASMEND
9450 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
9451 ; GFX940-NEXT: ;;#ASMSTART
9452 ; GFX940-NEXT: ; def v[2:5]
9453 ; GFX940-NEXT: ;;#ASMEND
9454 ; GFX940-NEXT: s_nop 0
9455 ; GFX940-NEXT: v_mov_b32_e32 v1, v4
9456 ; GFX940-NEXT: v_mov_b32_e32 v2, v4
9457 ; GFX940-NEXT: v_mov_b32_e32 v3, v4
9458 ; GFX940-NEXT: global_store_dwordx4 v6, v[0:3], s[0:1] sc0 sc1
9459 ; GFX940-NEXT: s_waitcnt vmcnt(0)
9460 ; GFX940-NEXT: s_setpc_b64 s[30:31]
9461 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
9462 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
9463 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 0, i32 6, i32 6, i32 6>
9464 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
9468 define void @v_shuffle_v4p3_v4p3__1_6_6_6(ptr addrspace(1) inreg %ptr) {
9469 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__1_6_6_6:
9471 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9472 ; GFX900-NEXT: ;;#ASMSTART
9473 ; GFX900-NEXT: ; def v[0:3]
9474 ; GFX900-NEXT: ;;#ASMEND
9475 ; GFX900-NEXT: ;;#ASMSTART
9476 ; GFX900-NEXT: ; def v[2:5]
9477 ; GFX900-NEXT: ;;#ASMEND
9478 ; GFX900-NEXT: v_mov_b32_e32 v6, 0
9479 ; GFX900-NEXT: v_mov_b32_e32 v2, v1
9480 ; GFX900-NEXT: v_mov_b32_e32 v3, v4
9481 ; GFX900-NEXT: v_mov_b32_e32 v5, v4
9482 ; GFX900-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
9483 ; GFX900-NEXT: s_waitcnt vmcnt(0)
9484 ; GFX900-NEXT: s_setpc_b64 s[30:31]
9486 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__1_6_6_6:
9488 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9489 ; GFX90A-NEXT: ;;#ASMSTART
9490 ; GFX90A-NEXT: ; def v[0:3]
9491 ; GFX90A-NEXT: ;;#ASMEND
9492 ; GFX90A-NEXT: ;;#ASMSTART
9493 ; GFX90A-NEXT: ; def v[2:5]
9494 ; GFX90A-NEXT: ;;#ASMEND
9495 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
9496 ; GFX90A-NEXT: v_pk_mov_b32 v[2:3], v[0:1], v[4:5] op_sel:[1,0]
9497 ; GFX90A-NEXT: v_mov_b32_e32 v5, v4
9498 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
9499 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
9500 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
9502 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__1_6_6_6:
9504 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9505 ; GFX940-NEXT: ;;#ASMSTART
9506 ; GFX940-NEXT: ; def v[0:3]
9507 ; GFX940-NEXT: ;;#ASMEND
9508 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
9509 ; GFX940-NEXT: ;;#ASMSTART
9510 ; GFX940-NEXT: ; def v[2:5]
9511 ; GFX940-NEXT: ;;#ASMEND
9512 ; GFX940-NEXT: s_nop 0
9513 ; GFX940-NEXT: v_pk_mov_b32 v[2:3], v[0:1], v[4:5] op_sel:[1,0]
9514 ; GFX940-NEXT: v_mov_b32_e32 v5, v4
9515 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
9516 ; GFX940-NEXT: s_waitcnt vmcnt(0)
9517 ; GFX940-NEXT: s_setpc_b64 s[30:31]
9518 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
9519 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
9520 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 1, i32 6, i32 6, i32 6>
9521 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
9525 define void @v_shuffle_v4p3_v4p3__2_6_6_6(ptr addrspace(1) inreg %ptr) {
9526 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__2_6_6_6:
9528 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9529 ; GFX900-NEXT: ;;#ASMSTART
9530 ; GFX900-NEXT: ; def v[0:3]
9531 ; GFX900-NEXT: ;;#ASMEND
9532 ; GFX900-NEXT: ;;#ASMSTART
9533 ; GFX900-NEXT: ; def v[3:6]
9534 ; GFX900-NEXT: ;;#ASMEND
9535 ; GFX900-NEXT: v_mov_b32_e32 v7, 0
9536 ; GFX900-NEXT: v_mov_b32_e32 v3, v2
9537 ; GFX900-NEXT: v_mov_b32_e32 v4, v5
9538 ; GFX900-NEXT: v_mov_b32_e32 v6, v5
9539 ; GFX900-NEXT: global_store_dwordx4 v7, v[3:6], s[16:17]
9540 ; GFX900-NEXT: s_waitcnt vmcnt(0)
9541 ; GFX900-NEXT: s_setpc_b64 s[30:31]
9543 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__2_6_6_6:
9545 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9546 ; GFX90A-NEXT: ;;#ASMSTART
9547 ; GFX90A-NEXT: ; def v[4:7]
9548 ; GFX90A-NEXT: ;;#ASMEND
9549 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
9550 ; GFX90A-NEXT: ;;#ASMSTART
9551 ; GFX90A-NEXT: ; def v[0:3]
9552 ; GFX90A-NEXT: ;;#ASMEND
9553 ; GFX90A-NEXT: v_mov_b32_e32 v4, v2
9554 ; GFX90A-NEXT: v_mov_b32_e32 v5, v6
9555 ; GFX90A-NEXT: v_mov_b32_e32 v7, v6
9556 ; GFX90A-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
9557 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
9558 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
9560 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__2_6_6_6:
9562 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9563 ; GFX940-NEXT: ;;#ASMSTART
9564 ; GFX940-NEXT: ; def v[4:7]
9565 ; GFX940-NEXT: ;;#ASMEND
9566 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
9567 ; GFX940-NEXT: ;;#ASMSTART
9568 ; GFX940-NEXT: ; def v[0:3]
9569 ; GFX940-NEXT: ;;#ASMEND
9570 ; GFX940-NEXT: v_mov_b32_e32 v5, v6
9571 ; GFX940-NEXT: v_mov_b32_e32 v4, v2
9572 ; GFX940-NEXT: v_mov_b32_e32 v7, v6
9573 ; GFX940-NEXT: global_store_dwordx4 v8, v[4:7], s[0:1] sc0 sc1
9574 ; GFX940-NEXT: s_waitcnt vmcnt(0)
9575 ; GFX940-NEXT: s_setpc_b64 s[30:31]
9576 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
9577 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
9578 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 2, i32 6, i32 6, i32 6>
9579 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
9583 define void @v_shuffle_v4p3_v4p3__3_6_6_6(ptr addrspace(1) inreg %ptr) {
9584 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__3_6_6_6:
9586 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9587 ; GFX900-NEXT: ;;#ASMSTART
9588 ; GFX900-NEXT: ; def v[4:7]
9589 ; GFX900-NEXT: ;;#ASMEND
9590 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
9591 ; GFX900-NEXT: ;;#ASMSTART
9592 ; GFX900-NEXT: ; def v[0:3]
9593 ; GFX900-NEXT: ;;#ASMEND
9594 ; GFX900-NEXT: v_mov_b32_e32 v4, v3
9595 ; GFX900-NEXT: v_mov_b32_e32 v5, v6
9596 ; GFX900-NEXT: v_mov_b32_e32 v7, v6
9597 ; GFX900-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
9598 ; GFX900-NEXT: s_waitcnt vmcnt(0)
9599 ; GFX900-NEXT: s_setpc_b64 s[30:31]
9601 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__3_6_6_6:
9603 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9604 ; GFX90A-NEXT: ;;#ASMSTART
9605 ; GFX90A-NEXT: ; def v[4:7]
9606 ; GFX90A-NEXT: ;;#ASMEND
9607 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
9608 ; GFX90A-NEXT: ;;#ASMSTART
9609 ; GFX90A-NEXT: ; def v[0:3]
9610 ; GFX90A-NEXT: ;;#ASMEND
9611 ; GFX90A-NEXT: v_pk_mov_b32 v[4:5], v[2:3], v[6:7] op_sel:[1,0]
9612 ; GFX90A-NEXT: v_mov_b32_e32 v7, v6
9613 ; GFX90A-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
9614 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
9615 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
9617 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__3_6_6_6:
9619 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9620 ; GFX940-NEXT: ;;#ASMSTART
9621 ; GFX940-NEXT: ; def v[4:7]
9622 ; GFX940-NEXT: ;;#ASMEND
9623 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
9624 ; GFX940-NEXT: ;;#ASMSTART
9625 ; GFX940-NEXT: ; def v[0:3]
9626 ; GFX940-NEXT: ;;#ASMEND
9627 ; GFX940-NEXT: s_nop 0
9628 ; GFX940-NEXT: v_pk_mov_b32 v[4:5], v[2:3], v[6:7] op_sel:[1,0]
9629 ; GFX940-NEXT: v_mov_b32_e32 v7, v6
9630 ; GFX940-NEXT: global_store_dwordx4 v8, v[4:7], s[0:1] sc0 sc1
9631 ; GFX940-NEXT: s_waitcnt vmcnt(0)
9632 ; GFX940-NEXT: s_setpc_b64 s[30:31]
9633 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
9634 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
9635 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 3, i32 6, i32 6, i32 6>
9636 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
9640 define void @v_shuffle_v4p3_v4p3__4_6_6_6(ptr addrspace(1) inreg %ptr) {
9641 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__4_6_6_6:
9643 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9644 ; GFX900-NEXT: ;;#ASMSTART
9645 ; GFX900-NEXT: ; def v[0:3]
9646 ; GFX900-NEXT: ;;#ASMEND
9647 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
9648 ; GFX900-NEXT: v_mov_b32_e32 v1, v2
9649 ; GFX900-NEXT: v_mov_b32_e32 v3, v2
9650 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
9651 ; GFX900-NEXT: s_waitcnt vmcnt(0)
9652 ; GFX900-NEXT: s_setpc_b64 s[30:31]
9654 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__4_6_6_6:
9656 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9657 ; GFX90A-NEXT: ;;#ASMSTART
9658 ; GFX90A-NEXT: ; def v[0:3]
9659 ; GFX90A-NEXT: ;;#ASMEND
9660 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
9661 ; GFX90A-NEXT: v_mov_b32_e32 v1, v2
9662 ; GFX90A-NEXT: v_mov_b32_e32 v3, v2
9663 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
9664 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
9665 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
9667 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__4_6_6_6:
9669 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9670 ; GFX940-NEXT: ;;#ASMSTART
9671 ; GFX940-NEXT: ; def v[0:3]
9672 ; GFX940-NEXT: ;;#ASMEND
9673 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
9674 ; GFX940-NEXT: v_mov_b32_e32 v1, v2
9675 ; GFX940-NEXT: v_mov_b32_e32 v3, v2
9676 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
9677 ; GFX940-NEXT: s_waitcnt vmcnt(0)
9678 ; GFX940-NEXT: s_setpc_b64 s[30:31]
9679 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
9680 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
9681 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 4, i32 6, i32 6, i32 6>
9682 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
9686 define void @v_shuffle_v4p3_v4p3__5_6_6_6(ptr addrspace(1) inreg %ptr) {
9687 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__5_6_6_6:
9689 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9690 ; GFX900-NEXT: ;;#ASMSTART
9691 ; GFX900-NEXT: ; def v[0:3]
9692 ; GFX900-NEXT: ;;#ASMEND
9693 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
9694 ; GFX900-NEXT: v_mov_b32_e32 v0, v1
9695 ; GFX900-NEXT: v_mov_b32_e32 v1, v2
9696 ; GFX900-NEXT: v_mov_b32_e32 v3, v2
9697 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
9698 ; GFX900-NEXT: s_waitcnt vmcnt(0)
9699 ; GFX900-NEXT: s_setpc_b64 s[30:31]
9701 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__5_6_6_6:
9703 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9704 ; GFX90A-NEXT: ;;#ASMSTART
9705 ; GFX90A-NEXT: ; def v[0:3]
9706 ; GFX90A-NEXT: ;;#ASMEND
9707 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
9708 ; GFX90A-NEXT: v_pk_mov_b32 v[0:1], v[0:1], v[2:3] op_sel:[1,0]
9709 ; GFX90A-NEXT: v_mov_b32_e32 v3, v2
9710 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
9711 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
9712 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
9714 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__5_6_6_6:
9716 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9717 ; GFX940-NEXT: ;;#ASMSTART
9718 ; GFX940-NEXT: ; def v[0:3]
9719 ; GFX940-NEXT: ;;#ASMEND
9720 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
9721 ; GFX940-NEXT: v_pk_mov_b32 v[0:1], v[0:1], v[2:3] op_sel:[1,0]
9722 ; GFX940-NEXT: v_mov_b32_e32 v3, v2
9723 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
9724 ; GFX940-NEXT: s_waitcnt vmcnt(0)
9725 ; GFX940-NEXT: s_setpc_b64 s[30:31]
9726 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
9727 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
9728 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 5, i32 6, i32 6, i32 6>
9729 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
9733 define void @v_shuffle_v4p3_v4p3__6_6_6_6(ptr addrspace(1) inreg %ptr) {
9734 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__6_6_6_6:
9736 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9737 ; GFX900-NEXT: ;;#ASMSTART
9738 ; GFX900-NEXT: ; def v[0:3]
9739 ; GFX900-NEXT: ;;#ASMEND
9740 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
9741 ; GFX900-NEXT: v_mov_b32_e32 v0, v2
9742 ; GFX900-NEXT: v_mov_b32_e32 v1, v2
9743 ; GFX900-NEXT: v_mov_b32_e32 v3, v2
9744 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
9745 ; GFX900-NEXT: s_waitcnt vmcnt(0)
9746 ; GFX900-NEXT: s_setpc_b64 s[30:31]
9748 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__6_6_6_6:
9750 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9751 ; GFX90A-NEXT: ;;#ASMSTART
9752 ; GFX90A-NEXT: ; def v[0:3]
9753 ; GFX90A-NEXT: ;;#ASMEND
9754 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
9755 ; GFX90A-NEXT: v_mov_b32_e32 v0, v2
9756 ; GFX90A-NEXT: v_mov_b32_e32 v1, v2
9757 ; GFX90A-NEXT: v_mov_b32_e32 v3, v2
9758 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
9759 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
9760 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
9762 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__6_6_6_6:
9764 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9765 ; GFX940-NEXT: ;;#ASMSTART
9766 ; GFX940-NEXT: ; def v[0:3]
9767 ; GFX940-NEXT: ;;#ASMEND
9768 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
9769 ; GFX940-NEXT: v_mov_b32_e32 v0, v2
9770 ; GFX940-NEXT: v_mov_b32_e32 v1, v2
9771 ; GFX940-NEXT: v_mov_b32_e32 v3, v2
9772 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
9773 ; GFX940-NEXT: s_waitcnt vmcnt(0)
9774 ; GFX940-NEXT: s_setpc_b64 s[30:31]
9775 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
9776 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
9777 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 6, i32 6, i32 6, i32 6>
9778 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
9782 define void @v_shuffle_v4p3_v4p3__7_6_6_6(ptr addrspace(1) inreg %ptr) {
9783 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_6_6_6:
9785 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9786 ; GFX900-NEXT: ;;#ASMSTART
9787 ; GFX900-NEXT: ; def v[0:3]
9788 ; GFX900-NEXT: ;;#ASMEND
9789 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
9790 ; GFX900-NEXT: v_mov_b32_e32 v0, v3
9791 ; GFX900-NEXT: v_mov_b32_e32 v1, v2
9792 ; GFX900-NEXT: v_mov_b32_e32 v3, v2
9793 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
9794 ; GFX900-NEXT: s_waitcnt vmcnt(0)
9795 ; GFX900-NEXT: s_setpc_b64 s[30:31]
9797 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_6_6_6:
9799 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9800 ; GFX90A-NEXT: ;;#ASMSTART
9801 ; GFX90A-NEXT: ; def v[0:3]
9802 ; GFX90A-NEXT: ;;#ASMEND
9803 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
9804 ; GFX90A-NEXT: v_pk_mov_b32 v[0:1], v[2:3], v[2:3] op_sel:[1,0]
9805 ; GFX90A-NEXT: v_mov_b32_e32 v3, v2
9806 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
9807 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
9808 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
9810 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_6_6_6:
9812 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9813 ; GFX940-NEXT: ;;#ASMSTART
9814 ; GFX940-NEXT: ; def v[0:3]
9815 ; GFX940-NEXT: ;;#ASMEND
9816 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
9817 ; GFX940-NEXT: v_pk_mov_b32 v[0:1], v[2:3], v[2:3] op_sel:[1,0]
9818 ; GFX940-NEXT: v_mov_b32_e32 v3, v2
9819 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
9820 ; GFX940-NEXT: s_waitcnt vmcnt(0)
9821 ; GFX940-NEXT: s_setpc_b64 s[30:31]
9822 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
9823 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
9824 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 6, i32 6, i32 6>
9825 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
9829 define void @v_shuffle_v4p3_v4p3__7_u_6_6(ptr addrspace(1) inreg %ptr) {
9830 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_u_6_6:
9832 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9833 ; GFX900-NEXT: ;;#ASMSTART
9834 ; GFX900-NEXT: ; def v[0:3]
9835 ; GFX900-NEXT: ;;#ASMEND
9836 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
9837 ; GFX900-NEXT: v_mov_b32_e32 v0, v3
9838 ; GFX900-NEXT: v_mov_b32_e32 v3, v2
9839 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
9840 ; GFX900-NEXT: s_waitcnt vmcnt(0)
9841 ; GFX900-NEXT: s_setpc_b64 s[30:31]
9843 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_u_6_6:
9845 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9846 ; GFX90A-NEXT: ;;#ASMSTART
9847 ; GFX90A-NEXT: ; def v[0:3]
9848 ; GFX90A-NEXT: ;;#ASMEND
9849 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
9850 ; GFX90A-NEXT: v_mov_b32_e32 v0, v3
9851 ; GFX90A-NEXT: v_mov_b32_e32 v3, v2
9852 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
9853 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
9854 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
9856 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_u_6_6:
9858 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9859 ; GFX940-NEXT: ;;#ASMSTART
9860 ; GFX940-NEXT: ; def v[0:3]
9861 ; GFX940-NEXT: ;;#ASMEND
9862 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
9863 ; GFX940-NEXT: v_mov_b32_e32 v0, v3
9864 ; GFX940-NEXT: v_mov_b32_e32 v3, v2
9865 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
9866 ; GFX940-NEXT: s_waitcnt vmcnt(0)
9867 ; GFX940-NEXT: s_setpc_b64 s[30:31]
9868 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
9869 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
9870 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 poison, i32 6, i32 6>
9871 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
9875 define void @v_shuffle_v4p3_v4p3__7_0_6_6(ptr addrspace(1) inreg %ptr) {
9876 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_0_6_6:
9878 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9879 ; GFX900-NEXT: ;;#ASMSTART
9880 ; GFX900-NEXT: ; def v[0:3]
9881 ; GFX900-NEXT: ;;#ASMEND
9882 ; GFX900-NEXT: ;;#ASMSTART
9883 ; GFX900-NEXT: ; def v[1:4]
9884 ; GFX900-NEXT: ;;#ASMEND
9885 ; GFX900-NEXT: v_mov_b32_e32 v5, 0
9886 ; GFX900-NEXT: v_mov_b32_e32 v1, v4
9887 ; GFX900-NEXT: v_mov_b32_e32 v2, v0
9888 ; GFX900-NEXT: v_mov_b32_e32 v4, v3
9889 ; GFX900-NEXT: global_store_dwordx4 v5, v[1:4], s[16:17]
9890 ; GFX900-NEXT: s_waitcnt vmcnt(0)
9891 ; GFX900-NEXT: s_setpc_b64 s[30:31]
9893 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_0_6_6:
9895 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9896 ; GFX90A-NEXT: ;;#ASMSTART
9897 ; GFX90A-NEXT: ; def v[0:3]
9898 ; GFX90A-NEXT: ;;#ASMEND
9899 ; GFX90A-NEXT: ;;#ASMSTART
9900 ; GFX90A-NEXT: ; def v[2:5]
9901 ; GFX90A-NEXT: ;;#ASMEND
9902 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
9903 ; GFX90A-NEXT: v_pk_mov_b32 v[2:3], v[4:5], v[0:1] op_sel:[1,0]
9904 ; GFX90A-NEXT: v_mov_b32_e32 v5, v4
9905 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
9906 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
9907 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
9909 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_0_6_6:
9911 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9912 ; GFX940-NEXT: ;;#ASMSTART
9913 ; GFX940-NEXT: ; def v[0:3]
9914 ; GFX940-NEXT: ;;#ASMEND
9915 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
9916 ; GFX940-NEXT: ;;#ASMSTART
9917 ; GFX940-NEXT: ; def v[2:5]
9918 ; GFX940-NEXT: ;;#ASMEND
9919 ; GFX940-NEXT: s_nop 0
9920 ; GFX940-NEXT: v_pk_mov_b32 v[2:3], v[4:5], v[0:1] op_sel:[1,0]
9921 ; GFX940-NEXT: v_mov_b32_e32 v5, v4
9922 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
9923 ; GFX940-NEXT: s_waitcnt vmcnt(0)
9924 ; GFX940-NEXT: s_setpc_b64 s[30:31]
9925 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
9926 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
9927 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 0, i32 6, i32 6>
9928 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
9932 define void @v_shuffle_v4p3_v4p3__7_1_6_6(ptr addrspace(1) inreg %ptr) {
9933 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_1_6_6:
9935 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9936 ; GFX900-NEXT: ;;#ASMSTART
9937 ; GFX900-NEXT: ; def v[0:3]
9938 ; GFX900-NEXT: ;;#ASMEND
9939 ; GFX900-NEXT: ;;#ASMSTART
9940 ; GFX900-NEXT: ; def v[2:5]
9941 ; GFX900-NEXT: ;;#ASMEND
9942 ; GFX900-NEXT: v_mov_b32_e32 v6, 0
9943 ; GFX900-NEXT: v_mov_b32_e32 v0, v5
9944 ; GFX900-NEXT: v_mov_b32_e32 v2, v4
9945 ; GFX900-NEXT: v_mov_b32_e32 v3, v4
9946 ; GFX900-NEXT: global_store_dwordx4 v6, v[0:3], s[16:17]
9947 ; GFX900-NEXT: s_waitcnt vmcnt(0)
9948 ; GFX900-NEXT: s_setpc_b64 s[30:31]
9950 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_1_6_6:
9952 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9953 ; GFX90A-NEXT: ;;#ASMSTART
9954 ; GFX90A-NEXT: ; def v[0:3]
9955 ; GFX90A-NEXT: ;;#ASMEND
9956 ; GFX90A-NEXT: ;;#ASMSTART
9957 ; GFX90A-NEXT: ; def v[2:5]
9958 ; GFX90A-NEXT: ;;#ASMEND
9959 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
9960 ; GFX90A-NEXT: v_mov_b32_e32 v0, v5
9961 ; GFX90A-NEXT: v_mov_b32_e32 v2, v4
9962 ; GFX90A-NEXT: v_mov_b32_e32 v3, v4
9963 ; GFX90A-NEXT: global_store_dwordx4 v6, v[0:3], s[16:17]
9964 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
9965 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
9967 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_1_6_6:
9969 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9970 ; GFX940-NEXT: ;;#ASMSTART
9971 ; GFX940-NEXT: ; def v[0:3]
9972 ; GFX940-NEXT: ;;#ASMEND
9973 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
9974 ; GFX940-NEXT: ;;#ASMSTART
9975 ; GFX940-NEXT: ; def v[2:5]
9976 ; GFX940-NEXT: ;;#ASMEND
9977 ; GFX940-NEXT: s_nop 0
9978 ; GFX940-NEXT: v_mov_b32_e32 v0, v5
9979 ; GFX940-NEXT: v_mov_b32_e32 v2, v4
9980 ; GFX940-NEXT: v_mov_b32_e32 v3, v4
9981 ; GFX940-NEXT: global_store_dwordx4 v6, v[0:3], s[0:1] sc0 sc1
9982 ; GFX940-NEXT: s_waitcnt vmcnt(0)
9983 ; GFX940-NEXT: s_setpc_b64 s[30:31]
9984 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
9985 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
9986 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 1, i32 6, i32 6>
9987 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
9991 define void @v_shuffle_v4p3_v4p3__7_2_6_6(ptr addrspace(1) inreg %ptr) {
9992 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_2_6_6:
9994 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
9995 ; GFX900-NEXT: ;;#ASMSTART
9996 ; GFX900-NEXT: ; def v[0:3]
9997 ; GFX900-NEXT: ;;#ASMEND
9998 ; GFX900-NEXT: ;;#ASMSTART
9999 ; GFX900-NEXT: ; def v[3:6]
10000 ; GFX900-NEXT: ;;#ASMEND
10001 ; GFX900-NEXT: v_mov_b32_e32 v7, 0
10002 ; GFX900-NEXT: v_mov_b32_e32 v3, v6
10003 ; GFX900-NEXT: v_mov_b32_e32 v4, v2
10004 ; GFX900-NEXT: v_mov_b32_e32 v6, v5
10005 ; GFX900-NEXT: global_store_dwordx4 v7, v[3:6], s[16:17]
10006 ; GFX900-NEXT: s_waitcnt vmcnt(0)
10007 ; GFX900-NEXT: s_setpc_b64 s[30:31]
10009 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_2_6_6:
10011 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10012 ; GFX90A-NEXT: ;;#ASMSTART
10013 ; GFX90A-NEXT: ; def v[4:7]
10014 ; GFX90A-NEXT: ;;#ASMEND
10015 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
10016 ; GFX90A-NEXT: ;;#ASMSTART
10017 ; GFX90A-NEXT: ; def v[0:3]
10018 ; GFX90A-NEXT: ;;#ASMEND
10019 ; GFX90A-NEXT: v_pk_mov_b32 v[4:5], v[6:7], v[2:3] op_sel:[1,0]
10020 ; GFX90A-NEXT: v_mov_b32_e32 v7, v6
10021 ; GFX90A-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
10022 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
10023 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
10025 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_2_6_6:
10027 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10028 ; GFX940-NEXT: ;;#ASMSTART
10029 ; GFX940-NEXT: ; def v[4:7]
10030 ; GFX940-NEXT: ;;#ASMEND
10031 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
10032 ; GFX940-NEXT: ;;#ASMSTART
10033 ; GFX940-NEXT: ; def v[0:3]
10034 ; GFX940-NEXT: ;;#ASMEND
10035 ; GFX940-NEXT: s_nop 0
10036 ; GFX940-NEXT: v_pk_mov_b32 v[4:5], v[6:7], v[2:3] op_sel:[1,0]
10037 ; GFX940-NEXT: v_mov_b32_e32 v7, v6
10038 ; GFX940-NEXT: global_store_dwordx4 v8, v[4:7], s[0:1] sc0 sc1
10039 ; GFX940-NEXT: s_waitcnt vmcnt(0)
10040 ; GFX940-NEXT: s_setpc_b64 s[30:31]
10041 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
10042 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
10043 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 2, i32 6, i32 6>
10044 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
10048 define void @v_shuffle_v4p3_v4p3__7_3_6_6(ptr addrspace(1) inreg %ptr) {
10049 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_3_6_6:
10051 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10052 ; GFX900-NEXT: ;;#ASMSTART
10053 ; GFX900-NEXT: ; def v[4:7]
10054 ; GFX900-NEXT: ;;#ASMEND
10055 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
10056 ; GFX900-NEXT: ;;#ASMSTART
10057 ; GFX900-NEXT: ; def v[0:3]
10058 ; GFX900-NEXT: ;;#ASMEND
10059 ; GFX900-NEXT: v_mov_b32_e32 v4, v7
10060 ; GFX900-NEXT: v_mov_b32_e32 v5, v3
10061 ; GFX900-NEXT: v_mov_b32_e32 v7, v6
10062 ; GFX900-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
10063 ; GFX900-NEXT: s_waitcnt vmcnt(0)
10064 ; GFX900-NEXT: s_setpc_b64 s[30:31]
10066 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_3_6_6:
10068 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10069 ; GFX90A-NEXT: ;;#ASMSTART
10070 ; GFX90A-NEXT: ; def v[4:7]
10071 ; GFX90A-NEXT: ;;#ASMEND
10072 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
10073 ; GFX90A-NEXT: ;;#ASMSTART
10074 ; GFX90A-NEXT: ; def v[0:3]
10075 ; GFX90A-NEXT: ;;#ASMEND
10076 ; GFX90A-NEXT: v_mov_b32_e32 v4, v7
10077 ; GFX90A-NEXT: v_mov_b32_e32 v5, v3
10078 ; GFX90A-NEXT: v_mov_b32_e32 v7, v6
10079 ; GFX90A-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
10080 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
10081 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
10083 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_3_6_6:
10085 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10086 ; GFX940-NEXT: ;;#ASMSTART
10087 ; GFX940-NEXT: ; def v[4:7]
10088 ; GFX940-NEXT: ;;#ASMEND
10089 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
10090 ; GFX940-NEXT: ;;#ASMSTART
10091 ; GFX940-NEXT: ; def v[0:3]
10092 ; GFX940-NEXT: ;;#ASMEND
10093 ; GFX940-NEXT: v_mov_b32_e32 v4, v7
10094 ; GFX940-NEXT: v_mov_b32_e32 v5, v3
10095 ; GFX940-NEXT: v_mov_b32_e32 v7, v6
10096 ; GFX940-NEXT: global_store_dwordx4 v8, v[4:7], s[0:1] sc0 sc1
10097 ; GFX940-NEXT: s_waitcnt vmcnt(0)
10098 ; GFX940-NEXT: s_setpc_b64 s[30:31]
10099 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
10100 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
10101 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 3, i32 6, i32 6>
10102 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
10106 define void @v_shuffle_v4p3_v4p3__7_4_6_6(ptr addrspace(1) inreg %ptr) {
10107 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_4_6_6:
10109 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10110 ; GFX900-NEXT: v_mov_b32_e32 v7, 0
10111 ; GFX900-NEXT: ;;#ASMSTART
10112 ; GFX900-NEXT: ; def v[0:3]
10113 ; GFX900-NEXT: ;;#ASMEND
10114 ; GFX900-NEXT: v_mov_b32_e32 v4, v0
10115 ; GFX900-NEXT: v_mov_b32_e32 v5, v2
10116 ; GFX900-NEXT: v_mov_b32_e32 v6, v2
10117 ; GFX900-NEXT: global_store_dwordx4 v7, v[3:6], s[16:17]
10118 ; GFX900-NEXT: s_waitcnt vmcnt(0)
10119 ; GFX900-NEXT: s_setpc_b64 s[30:31]
10121 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_4_6_6:
10123 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10124 ; GFX90A-NEXT: ;;#ASMSTART
10125 ; GFX90A-NEXT: ; def v[0:3]
10126 ; GFX90A-NEXT: ;;#ASMEND
10127 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
10128 ; GFX90A-NEXT: v_pk_mov_b32 v[0:1], v[2:3], v[0:1] op_sel:[1,0]
10129 ; GFX90A-NEXT: v_mov_b32_e32 v3, v2
10130 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
10131 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
10132 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
10134 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_4_6_6:
10136 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10137 ; GFX940-NEXT: ;;#ASMSTART
10138 ; GFX940-NEXT: ; def v[0:3]
10139 ; GFX940-NEXT: ;;#ASMEND
10140 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
10141 ; GFX940-NEXT: v_pk_mov_b32 v[0:1], v[2:3], v[0:1] op_sel:[1,0]
10142 ; GFX940-NEXT: v_mov_b32_e32 v3, v2
10143 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
10144 ; GFX940-NEXT: s_waitcnt vmcnt(0)
10145 ; GFX940-NEXT: s_setpc_b64 s[30:31]
10146 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
10147 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
10148 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 4, i32 6, i32 6>
10149 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
10153 define void @v_shuffle_v4p3_v4p3__7_5_6_6(ptr addrspace(1) inreg %ptr) {
10154 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_5_6_6:
10156 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10157 ; GFX900-NEXT: ;;#ASMSTART
10158 ; GFX900-NEXT: ; def v[0:3]
10159 ; GFX900-NEXT: ;;#ASMEND
10160 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
10161 ; GFX900-NEXT: v_mov_b32_e32 v0, v3
10162 ; GFX900-NEXT: v_mov_b32_e32 v3, v2
10163 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
10164 ; GFX900-NEXT: s_waitcnt vmcnt(0)
10165 ; GFX900-NEXT: s_setpc_b64 s[30:31]
10167 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_5_6_6:
10169 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10170 ; GFX90A-NEXT: ;;#ASMSTART
10171 ; GFX90A-NEXT: ; def v[0:3]
10172 ; GFX90A-NEXT: ;;#ASMEND
10173 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
10174 ; GFX90A-NEXT: v_mov_b32_e32 v0, v3
10175 ; GFX90A-NEXT: v_mov_b32_e32 v3, v2
10176 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
10177 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
10178 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
10180 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_5_6_6:
10182 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10183 ; GFX940-NEXT: ;;#ASMSTART
10184 ; GFX940-NEXT: ; def v[0:3]
10185 ; GFX940-NEXT: ;;#ASMEND
10186 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
10187 ; GFX940-NEXT: v_mov_b32_e32 v0, v3
10188 ; GFX940-NEXT: v_mov_b32_e32 v3, v2
10189 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
10190 ; GFX940-NEXT: s_waitcnt vmcnt(0)
10191 ; GFX940-NEXT: s_setpc_b64 s[30:31]
10192 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
10193 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
10194 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 5, i32 6, i32 6>
10195 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
10199 define void @v_shuffle_v4p3_v4p3__7_7_6_6(ptr addrspace(1) inreg %ptr) {
10200 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_6_6:
10202 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10203 ; GFX900-NEXT: ;;#ASMSTART
10204 ; GFX900-NEXT: ; def v[0:3]
10205 ; GFX900-NEXT: ;;#ASMEND
10206 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
10207 ; GFX900-NEXT: v_mov_b32_e32 v0, v3
10208 ; GFX900-NEXT: v_mov_b32_e32 v1, v3
10209 ; GFX900-NEXT: v_mov_b32_e32 v3, v2
10210 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
10211 ; GFX900-NEXT: s_waitcnt vmcnt(0)
10212 ; GFX900-NEXT: s_setpc_b64 s[30:31]
10214 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_6_6:
10216 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10217 ; GFX90A-NEXT: ;;#ASMSTART
10218 ; GFX90A-NEXT: ; def v[0:3]
10219 ; GFX90A-NEXT: ;;#ASMEND
10220 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
10221 ; GFX90A-NEXT: v_mov_b32_e32 v0, v3
10222 ; GFX90A-NEXT: v_mov_b32_e32 v1, v3
10223 ; GFX90A-NEXT: v_mov_b32_e32 v3, v2
10224 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
10225 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
10226 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
10228 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_6_6:
10230 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10231 ; GFX940-NEXT: ;;#ASMSTART
10232 ; GFX940-NEXT: ; def v[0:3]
10233 ; GFX940-NEXT: ;;#ASMEND
10234 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
10235 ; GFX940-NEXT: v_mov_b32_e32 v0, v3
10236 ; GFX940-NEXT: v_mov_b32_e32 v1, v3
10237 ; GFX940-NEXT: v_mov_b32_e32 v3, v2
10238 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
10239 ; GFX940-NEXT: s_waitcnt vmcnt(0)
10240 ; GFX940-NEXT: s_setpc_b64 s[30:31]
10241 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
10242 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
10243 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 6, i32 6>
10244 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
10248 define void @v_shuffle_v4p3_v4p3__7_7_u_6(ptr addrspace(1) inreg %ptr) {
10249 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_u_6:
10251 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10252 ; GFX900-NEXT: ;;#ASMSTART
10253 ; GFX900-NEXT: ; def v[0:3]
10254 ; GFX900-NEXT: ;;#ASMEND
10255 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
10256 ; GFX900-NEXT: v_mov_b32_e32 v0, v3
10257 ; GFX900-NEXT: v_mov_b32_e32 v1, v3
10258 ; GFX900-NEXT: v_mov_b32_e32 v3, v2
10259 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
10260 ; GFX900-NEXT: s_waitcnt vmcnt(0)
10261 ; GFX900-NEXT: s_setpc_b64 s[30:31]
10263 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_u_6:
10265 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10266 ; GFX90A-NEXT: ;;#ASMSTART
10267 ; GFX90A-NEXT: ; def v[0:3]
10268 ; GFX90A-NEXT: ;;#ASMEND
10269 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
10270 ; GFX90A-NEXT: v_mov_b32_e32 v0, v3
10271 ; GFX90A-NEXT: v_mov_b32_e32 v1, v3
10272 ; GFX90A-NEXT: v_mov_b32_e32 v3, v2
10273 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
10274 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
10275 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
10277 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_u_6:
10279 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10280 ; GFX940-NEXT: ;;#ASMSTART
10281 ; GFX940-NEXT: ; def v[0:3]
10282 ; GFX940-NEXT: ;;#ASMEND
10283 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
10284 ; GFX940-NEXT: v_mov_b32_e32 v0, v3
10285 ; GFX940-NEXT: v_mov_b32_e32 v1, v3
10286 ; GFX940-NEXT: v_mov_b32_e32 v3, v2
10287 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
10288 ; GFX940-NEXT: s_waitcnt vmcnt(0)
10289 ; GFX940-NEXT: s_setpc_b64 s[30:31]
10290 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
10291 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
10292 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 poison, i32 6>
10293 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
10297 define void @v_shuffle_v4p3_v4p3__7_7_0_6(ptr addrspace(1) inreg %ptr) {
10298 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_0_6:
10300 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10301 ; GFX900-NEXT: ;;#ASMSTART
10302 ; GFX900-NEXT: ; def v[0:3]
10303 ; GFX900-NEXT: ;;#ASMEND
10304 ; GFX900-NEXT: v_mov_b32_e32 v9, 0
10305 ; GFX900-NEXT: ;;#ASMSTART
10306 ; GFX900-NEXT: ; def v[1:4]
10307 ; GFX900-NEXT: ;;#ASMEND
10308 ; GFX900-NEXT: v_mov_b32_e32 v5, v4
10309 ; GFX900-NEXT: v_mov_b32_e32 v6, v4
10310 ; GFX900-NEXT: v_mov_b32_e32 v7, v0
10311 ; GFX900-NEXT: v_mov_b32_e32 v8, v3
10312 ; GFX900-NEXT: global_store_dwordx4 v9, v[5:8], s[16:17]
10313 ; GFX900-NEXT: s_waitcnt vmcnt(0)
10314 ; GFX900-NEXT: s_setpc_b64 s[30:31]
10316 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_0_6:
10318 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10319 ; GFX90A-NEXT: ;;#ASMSTART
10320 ; GFX90A-NEXT: ; def v[0:3]
10321 ; GFX90A-NEXT: ;;#ASMEND
10322 ; GFX90A-NEXT: v_mov_b32_e32 v10, 0
10323 ; GFX90A-NEXT: ;;#ASMSTART
10324 ; GFX90A-NEXT: ; def v[2:5]
10325 ; GFX90A-NEXT: ;;#ASMEND
10326 ; GFX90A-NEXT: v_mov_b32_e32 v6, v5
10327 ; GFX90A-NEXT: v_mov_b32_e32 v7, v5
10328 ; GFX90A-NEXT: v_mov_b32_e32 v8, v0
10329 ; GFX90A-NEXT: v_mov_b32_e32 v9, v4
10330 ; GFX90A-NEXT: global_store_dwordx4 v10, v[6:9], s[16:17]
10331 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
10332 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
10334 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_0_6:
10336 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10337 ; GFX940-NEXT: ;;#ASMSTART
10338 ; GFX940-NEXT: ; def v[0:3]
10339 ; GFX940-NEXT: ;;#ASMEND
10340 ; GFX940-NEXT: v_mov_b32_e32 v10, 0
10341 ; GFX940-NEXT: ;;#ASMSTART
10342 ; GFX940-NEXT: ; def v[2:5]
10343 ; GFX940-NEXT: ;;#ASMEND
10344 ; GFX940-NEXT: v_mov_b32_e32 v8, v0
10345 ; GFX940-NEXT: v_mov_b32_e32 v6, v5
10346 ; GFX940-NEXT: v_mov_b32_e32 v7, v5
10347 ; GFX940-NEXT: v_mov_b32_e32 v9, v4
10348 ; GFX940-NEXT: global_store_dwordx4 v10, v[6:9], s[0:1] sc0 sc1
10349 ; GFX940-NEXT: s_waitcnt vmcnt(0)
10350 ; GFX940-NEXT: s_setpc_b64 s[30:31]
10351 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
10352 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
10353 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 0, i32 6>
10354 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
10358 define void @v_shuffle_v4p3_v4p3__7_7_1_6(ptr addrspace(1) inreg %ptr) {
10359 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_1_6:
10361 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10362 ; GFX900-NEXT: ;;#ASMSTART
10363 ; GFX900-NEXT: ; def v[0:3]
10364 ; GFX900-NEXT: ;;#ASMEND
10365 ; GFX900-NEXT: v_mov_b32_e32 v10, 0
10366 ; GFX900-NEXT: ;;#ASMSTART
10367 ; GFX900-NEXT: ; def v[2:5]
10368 ; GFX900-NEXT: ;;#ASMEND
10369 ; GFX900-NEXT: v_mov_b32_e32 v6, v5
10370 ; GFX900-NEXT: v_mov_b32_e32 v7, v5
10371 ; GFX900-NEXT: v_mov_b32_e32 v8, v1
10372 ; GFX900-NEXT: v_mov_b32_e32 v9, v4
10373 ; GFX900-NEXT: global_store_dwordx4 v10, v[6:9], s[16:17]
10374 ; GFX900-NEXT: s_waitcnt vmcnt(0)
10375 ; GFX900-NEXT: s_setpc_b64 s[30:31]
10377 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_1_6:
10379 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10380 ; GFX90A-NEXT: ;;#ASMSTART
10381 ; GFX90A-NEXT: ; def v[0:3]
10382 ; GFX90A-NEXT: ;;#ASMEND
10383 ; GFX90A-NEXT: ;;#ASMSTART
10384 ; GFX90A-NEXT: ; def v[2:5]
10385 ; GFX90A-NEXT: ;;#ASMEND
10386 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
10387 ; GFX90A-NEXT: v_pk_mov_b32 v[2:3], v[0:1], v[4:5] op_sel:[1,0]
10388 ; GFX90A-NEXT: v_mov_b32_e32 v0, v5
10389 ; GFX90A-NEXT: v_mov_b32_e32 v1, v5
10390 ; GFX90A-NEXT: global_store_dwordx4 v6, v[0:3], s[16:17]
10391 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
10392 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
10394 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_1_6:
10396 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10397 ; GFX940-NEXT: ;;#ASMSTART
10398 ; GFX940-NEXT: ; def v[0:3]
10399 ; GFX940-NEXT: ;;#ASMEND
10400 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
10401 ; GFX940-NEXT: ;;#ASMSTART
10402 ; GFX940-NEXT: ; def v[2:5]
10403 ; GFX940-NEXT: ;;#ASMEND
10404 ; GFX940-NEXT: s_nop 0
10405 ; GFX940-NEXT: v_pk_mov_b32 v[2:3], v[0:1], v[4:5] op_sel:[1,0]
10406 ; GFX940-NEXT: v_mov_b32_e32 v0, v5
10407 ; GFX940-NEXT: v_mov_b32_e32 v1, v5
10408 ; GFX940-NEXT: global_store_dwordx4 v6, v[0:3], s[0:1] sc0 sc1
10409 ; GFX940-NEXT: s_waitcnt vmcnt(0)
10410 ; GFX940-NEXT: s_setpc_b64 s[30:31]
10411 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
10412 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
10413 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 1, i32 6>
10414 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
10418 define void @v_shuffle_v4p3_v4p3__7_7_2_6(ptr addrspace(1) inreg %ptr) {
10419 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_2_6:
10421 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10422 ; GFX900-NEXT: ;;#ASMSTART
10423 ; GFX900-NEXT: ; def v[0:3]
10424 ; GFX900-NEXT: ;;#ASMEND
10425 ; GFX900-NEXT: ;;#ASMSTART
10426 ; GFX900-NEXT: ; def v[3:6]
10427 ; GFX900-NEXT: ;;#ASMEND
10428 ; GFX900-NEXT: v_mov_b32_e32 v7, 0
10429 ; GFX900-NEXT: v_mov_b32_e32 v0, v6
10430 ; GFX900-NEXT: v_mov_b32_e32 v1, v6
10431 ; GFX900-NEXT: v_mov_b32_e32 v3, v5
10432 ; GFX900-NEXT: global_store_dwordx4 v7, v[0:3], s[16:17]
10433 ; GFX900-NEXT: s_waitcnt vmcnt(0)
10434 ; GFX900-NEXT: s_setpc_b64 s[30:31]
10436 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_2_6:
10438 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10439 ; GFX90A-NEXT: ;;#ASMSTART
10440 ; GFX90A-NEXT: ; def v[0:3]
10441 ; GFX90A-NEXT: ;;#ASMEND
10442 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
10443 ; GFX90A-NEXT: ;;#ASMSTART
10444 ; GFX90A-NEXT: ; def v[4:7]
10445 ; GFX90A-NEXT: ;;#ASMEND
10446 ; GFX90A-NEXT: v_mov_b32_e32 v0, v7
10447 ; GFX90A-NEXT: v_mov_b32_e32 v1, v7
10448 ; GFX90A-NEXT: v_mov_b32_e32 v3, v6
10449 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
10450 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
10451 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
10453 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_2_6:
10455 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10456 ; GFX940-NEXT: ;;#ASMSTART
10457 ; GFX940-NEXT: ; def v[0:3]
10458 ; GFX940-NEXT: ;;#ASMEND
10459 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
10460 ; GFX940-NEXT: ;;#ASMSTART
10461 ; GFX940-NEXT: ; def v[4:7]
10462 ; GFX940-NEXT: ;;#ASMEND
10463 ; GFX940-NEXT: s_nop 0
10464 ; GFX940-NEXT: v_mov_b32_e32 v0, v7
10465 ; GFX940-NEXT: v_mov_b32_e32 v1, v7
10466 ; GFX940-NEXT: v_mov_b32_e32 v3, v6
10467 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
10468 ; GFX940-NEXT: s_waitcnt vmcnt(0)
10469 ; GFX940-NEXT: s_setpc_b64 s[30:31]
10470 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
10471 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
10472 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 2, i32 6>
10473 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
10477 define void @v_shuffle_v4p3_v4p3__7_7_3_6(ptr addrspace(1) inreg %ptr) {
10478 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_3_6:
10480 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10481 ; GFX900-NEXT: ;;#ASMSTART
10482 ; GFX900-NEXT: ; def v[0:3]
10483 ; GFX900-NEXT: ;;#ASMEND
10484 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
10485 ; GFX900-NEXT: ;;#ASMSTART
10486 ; GFX900-NEXT: ; def v[4:7]
10487 ; GFX900-NEXT: ;;#ASMEND
10488 ; GFX900-NEXT: v_mov_b32_e32 v0, v7
10489 ; GFX900-NEXT: v_mov_b32_e32 v1, v7
10490 ; GFX900-NEXT: v_mov_b32_e32 v2, v3
10491 ; GFX900-NEXT: v_mov_b32_e32 v3, v6
10492 ; GFX900-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
10493 ; GFX900-NEXT: s_waitcnt vmcnt(0)
10494 ; GFX900-NEXT: s_setpc_b64 s[30:31]
10496 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_3_6:
10498 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10499 ; GFX90A-NEXT: ;;#ASMSTART
10500 ; GFX90A-NEXT: ; def v[0:3]
10501 ; GFX90A-NEXT: ;;#ASMEND
10502 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
10503 ; GFX90A-NEXT: ;;#ASMSTART
10504 ; GFX90A-NEXT: ; def v[4:7]
10505 ; GFX90A-NEXT: ;;#ASMEND
10506 ; GFX90A-NEXT: v_pk_mov_b32 v[2:3], v[2:3], v[6:7] op_sel:[1,0]
10507 ; GFX90A-NEXT: v_mov_b32_e32 v0, v7
10508 ; GFX90A-NEXT: v_mov_b32_e32 v1, v7
10509 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
10510 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
10511 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
10513 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_3_6:
10515 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10516 ; GFX940-NEXT: ;;#ASMSTART
10517 ; GFX940-NEXT: ; def v[0:3]
10518 ; GFX940-NEXT: ;;#ASMEND
10519 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
10520 ; GFX940-NEXT: ;;#ASMSTART
10521 ; GFX940-NEXT: ; def v[4:7]
10522 ; GFX940-NEXT: ;;#ASMEND
10523 ; GFX940-NEXT: s_nop 0
10524 ; GFX940-NEXT: v_pk_mov_b32 v[2:3], v[2:3], v[6:7] op_sel:[1,0]
10525 ; GFX940-NEXT: v_mov_b32_e32 v0, v7
10526 ; GFX940-NEXT: v_mov_b32_e32 v1, v7
10527 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
10528 ; GFX940-NEXT: s_waitcnt vmcnt(0)
10529 ; GFX940-NEXT: s_setpc_b64 s[30:31]
10530 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
10531 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
10532 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 3, i32 6>
10533 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
10537 define void @v_shuffle_v4p3_v4p3__7_7_4_6(ptr addrspace(1) inreg %ptr) {
10538 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_4_6:
10540 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10541 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
10542 ; GFX900-NEXT: ;;#ASMSTART
10543 ; GFX900-NEXT: ; def v[0:3]
10544 ; GFX900-NEXT: ;;#ASMEND
10545 ; GFX900-NEXT: v_mov_b32_e32 v4, v3
10546 ; GFX900-NEXT: v_mov_b32_e32 v5, v3
10547 ; GFX900-NEXT: v_mov_b32_e32 v6, v0
10548 ; GFX900-NEXT: v_mov_b32_e32 v7, v2
10549 ; GFX900-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
10550 ; GFX900-NEXT: s_waitcnt vmcnt(0)
10551 ; GFX900-NEXT: s_setpc_b64 s[30:31]
10553 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_4_6:
10555 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10556 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
10557 ; GFX90A-NEXT: ;;#ASMSTART
10558 ; GFX90A-NEXT: ; def v[0:3]
10559 ; GFX90A-NEXT: ;;#ASMEND
10560 ; GFX90A-NEXT: v_mov_b32_e32 v4, v3
10561 ; GFX90A-NEXT: v_mov_b32_e32 v5, v3
10562 ; GFX90A-NEXT: v_mov_b32_e32 v6, v0
10563 ; GFX90A-NEXT: v_mov_b32_e32 v7, v2
10564 ; GFX90A-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
10565 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
10566 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
10568 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_4_6:
10570 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10571 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
10572 ; GFX940-NEXT: ;;#ASMSTART
10573 ; GFX940-NEXT: ; def v[0:3]
10574 ; GFX940-NEXT: ;;#ASMEND
10575 ; GFX940-NEXT: s_nop 0
10576 ; GFX940-NEXT: v_mov_b32_e32 v4, v3
10577 ; GFX940-NEXT: v_mov_b32_e32 v5, v3
10578 ; GFX940-NEXT: v_mov_b32_e32 v6, v0
10579 ; GFX940-NEXT: v_mov_b32_e32 v7, v2
10580 ; GFX940-NEXT: global_store_dwordx4 v8, v[4:7], s[0:1] sc0 sc1
10581 ; GFX940-NEXT: s_waitcnt vmcnt(0)
10582 ; GFX940-NEXT: s_setpc_b64 s[30:31]
10583 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
10584 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
10585 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 4, i32 6>
10586 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
10590 define void @v_shuffle_v4p3_v4p3__7_7_5_6(ptr addrspace(1) inreg %ptr) {
10591 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_5_6:
10593 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10594 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
10595 ; GFX900-NEXT: ;;#ASMSTART
10596 ; GFX900-NEXT: ; def v[0:3]
10597 ; GFX900-NEXT: ;;#ASMEND
10598 ; GFX900-NEXT: v_mov_b32_e32 v4, v3
10599 ; GFX900-NEXT: v_mov_b32_e32 v5, v3
10600 ; GFX900-NEXT: v_mov_b32_e32 v6, v1
10601 ; GFX900-NEXT: v_mov_b32_e32 v7, v2
10602 ; GFX900-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
10603 ; GFX900-NEXT: s_waitcnt vmcnt(0)
10604 ; GFX900-NEXT: s_setpc_b64 s[30:31]
10606 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_5_6:
10608 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10609 ; GFX90A-NEXT: ;;#ASMSTART
10610 ; GFX90A-NEXT: ; def v[0:3]
10611 ; GFX90A-NEXT: ;;#ASMEND
10612 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
10613 ; GFX90A-NEXT: v_pk_mov_b32 v[4:5], v[0:1], v[2:3] op_sel:[1,0]
10614 ; GFX90A-NEXT: v_mov_b32_e32 v2, v3
10615 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
10616 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
10617 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
10619 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_5_6:
10621 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10622 ; GFX940-NEXT: ;;#ASMSTART
10623 ; GFX940-NEXT: ; def v[0:3]
10624 ; GFX940-NEXT: ;;#ASMEND
10625 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
10626 ; GFX940-NEXT: v_pk_mov_b32 v[4:5], v[0:1], v[2:3] op_sel:[1,0]
10627 ; GFX940-NEXT: v_mov_b32_e32 v2, v3
10628 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
10629 ; GFX940-NEXT: s_waitcnt vmcnt(0)
10630 ; GFX940-NEXT: s_setpc_b64 s[30:31]
10631 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
10632 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
10633 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 5, i32 6>
10634 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
10638 define void @v_shuffle_v4p3_v4p3__u_7_7_7(ptr addrspace(1) inreg %ptr) {
10639 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__u_7_7_7:
10641 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10642 ; GFX900-NEXT: ;;#ASMSTART
10643 ; GFX900-NEXT: ; def v[0:3]
10644 ; GFX900-NEXT: ;;#ASMEND
10645 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
10646 ; GFX900-NEXT: v_mov_b32_e32 v1, v3
10647 ; GFX900-NEXT: v_mov_b32_e32 v2, v3
10648 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
10649 ; GFX900-NEXT: s_waitcnt vmcnt(0)
10650 ; GFX900-NEXT: s_setpc_b64 s[30:31]
10652 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__u_7_7_7:
10654 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10655 ; GFX90A-NEXT: ;;#ASMSTART
10656 ; GFX90A-NEXT: ; def v[0:3]
10657 ; GFX90A-NEXT: ;;#ASMEND
10658 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
10659 ; GFX90A-NEXT: v_mov_b32_e32 v1, v3
10660 ; GFX90A-NEXT: v_mov_b32_e32 v2, v3
10661 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
10662 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
10663 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
10665 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__u_7_7_7:
10667 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10668 ; GFX940-NEXT: ;;#ASMSTART
10669 ; GFX940-NEXT: ; def v[0:3]
10670 ; GFX940-NEXT: ;;#ASMEND
10671 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
10672 ; GFX940-NEXT: v_mov_b32_e32 v1, v3
10673 ; GFX940-NEXT: v_mov_b32_e32 v2, v3
10674 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
10675 ; GFX940-NEXT: s_waitcnt vmcnt(0)
10676 ; GFX940-NEXT: s_setpc_b64 s[30:31]
10677 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
10678 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
10679 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 poison, i32 7, i32 7, i32 7>
10680 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
10684 define void @v_shuffle_v4p3_v4p3__0_7_7_7(ptr addrspace(1) inreg %ptr) {
10685 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__0_7_7_7:
10687 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10688 ; GFX900-NEXT: ;;#ASMSTART
10689 ; GFX900-NEXT: ; def v[0:3]
10690 ; GFX900-NEXT: ;;#ASMEND
10691 ; GFX900-NEXT: ;;#ASMSTART
10692 ; GFX900-NEXT: ; def v[1:4]
10693 ; GFX900-NEXT: ;;#ASMEND
10694 ; GFX900-NEXT: v_mov_b32_e32 v5, 0
10695 ; GFX900-NEXT: v_mov_b32_e32 v1, v4
10696 ; GFX900-NEXT: v_mov_b32_e32 v2, v4
10697 ; GFX900-NEXT: v_mov_b32_e32 v3, v4
10698 ; GFX900-NEXT: global_store_dwordx4 v5, v[0:3], s[16:17]
10699 ; GFX900-NEXT: s_waitcnt vmcnt(0)
10700 ; GFX900-NEXT: s_setpc_b64 s[30:31]
10702 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__0_7_7_7:
10704 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10705 ; GFX90A-NEXT: ;;#ASMSTART
10706 ; GFX90A-NEXT: ; def v[0:3]
10707 ; GFX90A-NEXT: ;;#ASMEND
10708 ; GFX90A-NEXT: ;;#ASMSTART
10709 ; GFX90A-NEXT: ; def v[2:5]
10710 ; GFX90A-NEXT: ;;#ASMEND
10711 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
10712 ; GFX90A-NEXT: v_mov_b32_e32 v1, v5
10713 ; GFX90A-NEXT: v_mov_b32_e32 v2, v5
10714 ; GFX90A-NEXT: v_mov_b32_e32 v3, v5
10715 ; GFX90A-NEXT: global_store_dwordx4 v6, v[0:3], s[16:17]
10716 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
10717 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
10719 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__0_7_7_7:
10721 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10722 ; GFX940-NEXT: ;;#ASMSTART
10723 ; GFX940-NEXT: ; def v[0:3]
10724 ; GFX940-NEXT: ;;#ASMEND
10725 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
10726 ; GFX940-NEXT: ;;#ASMSTART
10727 ; GFX940-NEXT: ; def v[2:5]
10728 ; GFX940-NEXT: ;;#ASMEND
10729 ; GFX940-NEXT: s_nop 0
10730 ; GFX940-NEXT: v_mov_b32_e32 v1, v5
10731 ; GFX940-NEXT: v_mov_b32_e32 v2, v5
10732 ; GFX940-NEXT: v_mov_b32_e32 v3, v5
10733 ; GFX940-NEXT: global_store_dwordx4 v6, v[0:3], s[0:1] sc0 sc1
10734 ; GFX940-NEXT: s_waitcnt vmcnt(0)
10735 ; GFX940-NEXT: s_setpc_b64 s[30:31]
10736 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
10737 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
10738 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 0, i32 7, i32 7, i32 7>
10739 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
10743 define void @v_shuffle_v4p3_v4p3__1_7_7_7(ptr addrspace(1) inreg %ptr) {
10744 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__1_7_7_7:
10746 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10747 ; GFX900-NEXT: ;;#ASMSTART
10748 ; GFX900-NEXT: ; def v[0:3]
10749 ; GFX900-NEXT: ;;#ASMEND
10750 ; GFX900-NEXT: ;;#ASMSTART
10751 ; GFX900-NEXT: ; def v[2:5]
10752 ; GFX900-NEXT: ;;#ASMEND
10753 ; GFX900-NEXT: v_mov_b32_e32 v6, 0
10754 ; GFX900-NEXT: v_mov_b32_e32 v2, v1
10755 ; GFX900-NEXT: v_mov_b32_e32 v3, v5
10756 ; GFX900-NEXT: v_mov_b32_e32 v4, v5
10757 ; GFX900-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
10758 ; GFX900-NEXT: s_waitcnt vmcnt(0)
10759 ; GFX900-NEXT: s_setpc_b64 s[30:31]
10761 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__1_7_7_7:
10763 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10764 ; GFX90A-NEXT: ;;#ASMSTART
10765 ; GFX90A-NEXT: ; def v[0:3]
10766 ; GFX90A-NEXT: ;;#ASMEND
10767 ; GFX90A-NEXT: ;;#ASMSTART
10768 ; GFX90A-NEXT: ; def v[2:5]
10769 ; GFX90A-NEXT: ;;#ASMEND
10770 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
10771 ; GFX90A-NEXT: v_mov_b32_e32 v2, v1
10772 ; GFX90A-NEXT: v_mov_b32_e32 v3, v5
10773 ; GFX90A-NEXT: v_mov_b32_e32 v4, v5
10774 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
10775 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
10776 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
10778 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__1_7_7_7:
10780 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10781 ; GFX940-NEXT: ;;#ASMSTART
10782 ; GFX940-NEXT: ; def v[0:3]
10783 ; GFX940-NEXT: ;;#ASMEND
10784 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
10785 ; GFX940-NEXT: ;;#ASMSTART
10786 ; GFX940-NEXT: ; def v[2:5]
10787 ; GFX940-NEXT: ;;#ASMEND
10788 ; GFX940-NEXT: s_nop 0
10789 ; GFX940-NEXT: v_mov_b32_e32 v2, v1
10790 ; GFX940-NEXT: v_mov_b32_e32 v3, v5
10791 ; GFX940-NEXT: v_mov_b32_e32 v4, v5
10792 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
10793 ; GFX940-NEXT: s_waitcnt vmcnt(0)
10794 ; GFX940-NEXT: s_setpc_b64 s[30:31]
10795 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
10796 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
10797 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 1, i32 7, i32 7, i32 7>
10798 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
10802 define void @v_shuffle_v4p3_v4p3__2_7_7_7(ptr addrspace(1) inreg %ptr) {
10803 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__2_7_7_7:
10805 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10806 ; GFX900-NEXT: ;;#ASMSTART
10807 ; GFX900-NEXT: ; def v[0:3]
10808 ; GFX900-NEXT: ;;#ASMEND
10809 ; GFX900-NEXT: ;;#ASMSTART
10810 ; GFX900-NEXT: ; def v[3:6]
10811 ; GFX900-NEXT: ;;#ASMEND
10812 ; GFX900-NEXT: v_mov_b32_e32 v7, 0
10813 ; GFX900-NEXT: v_mov_b32_e32 v3, v2
10814 ; GFX900-NEXT: v_mov_b32_e32 v4, v6
10815 ; GFX900-NEXT: v_mov_b32_e32 v5, v6
10816 ; GFX900-NEXT: global_store_dwordx4 v7, v[3:6], s[16:17]
10817 ; GFX900-NEXT: s_waitcnt vmcnt(0)
10818 ; GFX900-NEXT: s_setpc_b64 s[30:31]
10820 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__2_7_7_7:
10822 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10823 ; GFX90A-NEXT: ;;#ASMSTART
10824 ; GFX90A-NEXT: ; def v[4:7]
10825 ; GFX90A-NEXT: ;;#ASMEND
10826 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
10827 ; GFX90A-NEXT: ;;#ASMSTART
10828 ; GFX90A-NEXT: ; def v[0:3]
10829 ; GFX90A-NEXT: ;;#ASMEND
10830 ; GFX90A-NEXT: v_mov_b32_e32 v4, v2
10831 ; GFX90A-NEXT: v_mov_b32_e32 v5, v7
10832 ; GFX90A-NEXT: v_mov_b32_e32 v6, v7
10833 ; GFX90A-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
10834 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
10835 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
10837 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__2_7_7_7:
10839 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10840 ; GFX940-NEXT: ;;#ASMSTART
10841 ; GFX940-NEXT: ; def v[4:7]
10842 ; GFX940-NEXT: ;;#ASMEND
10843 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
10844 ; GFX940-NEXT: ;;#ASMSTART
10845 ; GFX940-NEXT: ; def v[0:3]
10846 ; GFX940-NEXT: ;;#ASMEND
10847 ; GFX940-NEXT: v_mov_b32_e32 v5, v7
10848 ; GFX940-NEXT: v_mov_b32_e32 v4, v2
10849 ; GFX940-NEXT: v_mov_b32_e32 v6, v7
10850 ; GFX940-NEXT: global_store_dwordx4 v8, v[4:7], s[0:1] sc0 sc1
10851 ; GFX940-NEXT: s_waitcnt vmcnt(0)
10852 ; GFX940-NEXT: s_setpc_b64 s[30:31]
10853 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
10854 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
10855 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 2, i32 7, i32 7, i32 7>
10856 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
10860 define void @v_shuffle_v4p3_v4p3__3_7_7_7(ptr addrspace(1) inreg %ptr) {
10861 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__3_7_7_7:
10863 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10864 ; GFX900-NEXT: ;;#ASMSTART
10865 ; GFX900-NEXT: ; def v[4:7]
10866 ; GFX900-NEXT: ;;#ASMEND
10867 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
10868 ; GFX900-NEXT: ;;#ASMSTART
10869 ; GFX900-NEXT: ; def v[0:3]
10870 ; GFX900-NEXT: ;;#ASMEND
10871 ; GFX900-NEXT: v_mov_b32_e32 v4, v3
10872 ; GFX900-NEXT: v_mov_b32_e32 v5, v7
10873 ; GFX900-NEXT: v_mov_b32_e32 v6, v7
10874 ; GFX900-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
10875 ; GFX900-NEXT: s_waitcnt vmcnt(0)
10876 ; GFX900-NEXT: s_setpc_b64 s[30:31]
10878 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__3_7_7_7:
10880 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10881 ; GFX90A-NEXT: ;;#ASMSTART
10882 ; GFX90A-NEXT: ; def v[4:7]
10883 ; GFX90A-NEXT: ;;#ASMEND
10884 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
10885 ; GFX90A-NEXT: ;;#ASMSTART
10886 ; GFX90A-NEXT: ; def v[0:3]
10887 ; GFX90A-NEXT: ;;#ASMEND
10888 ; GFX90A-NEXT: v_mov_b32_e32 v4, v3
10889 ; GFX90A-NEXT: v_mov_b32_e32 v5, v7
10890 ; GFX90A-NEXT: v_mov_b32_e32 v6, v7
10891 ; GFX90A-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
10892 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
10893 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
10895 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__3_7_7_7:
10897 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10898 ; GFX940-NEXT: ;;#ASMSTART
10899 ; GFX940-NEXT: ; def v[4:7]
10900 ; GFX940-NEXT: ;;#ASMEND
10901 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
10902 ; GFX940-NEXT: ;;#ASMSTART
10903 ; GFX940-NEXT: ; def v[0:3]
10904 ; GFX940-NEXT: ;;#ASMEND
10905 ; GFX940-NEXT: v_mov_b32_e32 v5, v7
10906 ; GFX940-NEXT: v_mov_b32_e32 v4, v3
10907 ; GFX940-NEXT: v_mov_b32_e32 v6, v7
10908 ; GFX940-NEXT: global_store_dwordx4 v8, v[4:7], s[0:1] sc0 sc1
10909 ; GFX940-NEXT: s_waitcnt vmcnt(0)
10910 ; GFX940-NEXT: s_setpc_b64 s[30:31]
10911 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
10912 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
10913 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 3, i32 7, i32 7, i32 7>
10914 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
10918 define void @v_shuffle_v4p3_v4p3__4_7_7_7(ptr addrspace(1) inreg %ptr) {
10919 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__4_7_7_7:
10921 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10922 ; GFX900-NEXT: ;;#ASMSTART
10923 ; GFX900-NEXT: ; def v[0:3]
10924 ; GFX900-NEXT: ;;#ASMEND
10925 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
10926 ; GFX900-NEXT: v_mov_b32_e32 v1, v3
10927 ; GFX900-NEXT: v_mov_b32_e32 v2, v3
10928 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
10929 ; GFX900-NEXT: s_waitcnt vmcnt(0)
10930 ; GFX900-NEXT: s_setpc_b64 s[30:31]
10932 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__4_7_7_7:
10934 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10935 ; GFX90A-NEXT: ;;#ASMSTART
10936 ; GFX90A-NEXT: ; def v[0:3]
10937 ; GFX90A-NEXT: ;;#ASMEND
10938 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
10939 ; GFX90A-NEXT: v_mov_b32_e32 v1, v3
10940 ; GFX90A-NEXT: v_mov_b32_e32 v2, v3
10941 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
10942 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
10943 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
10945 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__4_7_7_7:
10947 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10948 ; GFX940-NEXT: ;;#ASMSTART
10949 ; GFX940-NEXT: ; def v[0:3]
10950 ; GFX940-NEXT: ;;#ASMEND
10951 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
10952 ; GFX940-NEXT: v_mov_b32_e32 v1, v3
10953 ; GFX940-NEXT: v_mov_b32_e32 v2, v3
10954 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
10955 ; GFX940-NEXT: s_waitcnt vmcnt(0)
10956 ; GFX940-NEXT: s_setpc_b64 s[30:31]
10957 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
10958 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
10959 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 4, i32 7, i32 7, i32 7>
10960 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
10964 define void @v_shuffle_v4p3_v4p3__5_7_7_7(ptr addrspace(1) inreg %ptr) {
10965 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__5_7_7_7:
10967 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10968 ; GFX900-NEXT: ;;#ASMSTART
10969 ; GFX900-NEXT: ; def v[0:3]
10970 ; GFX900-NEXT: ;;#ASMEND
10971 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
10972 ; GFX900-NEXT: v_mov_b32_e32 v0, v1
10973 ; GFX900-NEXT: v_mov_b32_e32 v1, v3
10974 ; GFX900-NEXT: v_mov_b32_e32 v2, v3
10975 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
10976 ; GFX900-NEXT: s_waitcnt vmcnt(0)
10977 ; GFX900-NEXT: s_setpc_b64 s[30:31]
10979 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__5_7_7_7:
10981 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10982 ; GFX90A-NEXT: ;;#ASMSTART
10983 ; GFX90A-NEXT: ; def v[0:3]
10984 ; GFX90A-NEXT: ;;#ASMEND
10985 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
10986 ; GFX90A-NEXT: v_mov_b32_e32 v0, v1
10987 ; GFX90A-NEXT: v_mov_b32_e32 v1, v3
10988 ; GFX90A-NEXT: v_mov_b32_e32 v2, v3
10989 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
10990 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
10991 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
10993 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__5_7_7_7:
10995 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
10996 ; GFX940-NEXT: ;;#ASMSTART
10997 ; GFX940-NEXT: ; def v[0:3]
10998 ; GFX940-NEXT: ;;#ASMEND
10999 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
11000 ; GFX940-NEXT: v_mov_b32_e32 v0, v1
11001 ; GFX940-NEXT: v_mov_b32_e32 v1, v3
11002 ; GFX940-NEXT: v_mov_b32_e32 v2, v3
11003 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
11004 ; GFX940-NEXT: s_waitcnt vmcnt(0)
11005 ; GFX940-NEXT: s_setpc_b64 s[30:31]
11006 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
11007 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
11008 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 5, i32 7, i32 7, i32 7>
11009 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
11013 define void @v_shuffle_v4p3_v4p3__6_7_7_7(ptr addrspace(1) inreg %ptr) {
11014 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__6_7_7_7:
11016 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11017 ; GFX900-NEXT: ;;#ASMSTART
11018 ; GFX900-NEXT: ; def v[0:3]
11019 ; GFX900-NEXT: ;;#ASMEND
11020 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
11021 ; GFX900-NEXT: v_mov_b32_e32 v0, v2
11022 ; GFX900-NEXT: v_mov_b32_e32 v1, v3
11023 ; GFX900-NEXT: v_mov_b32_e32 v2, v3
11024 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
11025 ; GFX900-NEXT: s_waitcnt vmcnt(0)
11026 ; GFX900-NEXT: s_setpc_b64 s[30:31]
11028 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__6_7_7_7:
11030 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11031 ; GFX90A-NEXT: ;;#ASMSTART
11032 ; GFX90A-NEXT: ; def v[0:3]
11033 ; GFX90A-NEXT: ;;#ASMEND
11034 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
11035 ; GFX90A-NEXT: v_mov_b32_e32 v0, v2
11036 ; GFX90A-NEXT: v_mov_b32_e32 v1, v3
11037 ; GFX90A-NEXT: v_mov_b32_e32 v2, v3
11038 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
11039 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
11040 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
11042 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__6_7_7_7:
11044 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11045 ; GFX940-NEXT: ;;#ASMSTART
11046 ; GFX940-NEXT: ; def v[0:3]
11047 ; GFX940-NEXT: ;;#ASMEND
11048 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
11049 ; GFX940-NEXT: v_mov_b32_e32 v0, v2
11050 ; GFX940-NEXT: v_mov_b32_e32 v1, v3
11051 ; GFX940-NEXT: v_mov_b32_e32 v2, v3
11052 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
11053 ; GFX940-NEXT: s_waitcnt vmcnt(0)
11054 ; GFX940-NEXT: s_setpc_b64 s[30:31]
11055 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
11056 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
11057 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 6, i32 7, i32 7, i32 7>
11058 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
11062 define void @v_shuffle_v4p3_v4p3__7_u_7_7(ptr addrspace(1) inreg %ptr) {
11063 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_u_7_7:
11065 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11066 ; GFX900-NEXT: ;;#ASMSTART
11067 ; GFX900-NEXT: ; def v[0:3]
11068 ; GFX900-NEXT: ;;#ASMEND
11069 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
11070 ; GFX900-NEXT: v_mov_b32_e32 v0, v3
11071 ; GFX900-NEXT: v_mov_b32_e32 v2, v3
11072 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
11073 ; GFX900-NEXT: s_waitcnt vmcnt(0)
11074 ; GFX900-NEXT: s_setpc_b64 s[30:31]
11076 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_u_7_7:
11078 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11079 ; GFX90A-NEXT: ;;#ASMSTART
11080 ; GFX90A-NEXT: ; def v[0:3]
11081 ; GFX90A-NEXT: ;;#ASMEND
11082 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
11083 ; GFX90A-NEXT: v_mov_b32_e32 v0, v3
11084 ; GFX90A-NEXT: v_mov_b32_e32 v2, v3
11085 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
11086 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
11087 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
11089 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_u_7_7:
11091 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11092 ; GFX940-NEXT: ;;#ASMSTART
11093 ; GFX940-NEXT: ; def v[0:3]
11094 ; GFX940-NEXT: ;;#ASMEND
11095 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
11096 ; GFX940-NEXT: v_mov_b32_e32 v0, v3
11097 ; GFX940-NEXT: v_mov_b32_e32 v2, v3
11098 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
11099 ; GFX940-NEXT: s_waitcnt vmcnt(0)
11100 ; GFX940-NEXT: s_setpc_b64 s[30:31]
11101 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
11102 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
11103 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 poison, i32 7, i32 7>
11104 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
11108 define void @v_shuffle_v4p3_v4p3__7_0_7_7(ptr addrspace(1) inreg %ptr) {
11109 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_0_7_7:
11111 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11112 ; GFX900-NEXT: ;;#ASMSTART
11113 ; GFX900-NEXT: ; def v[0:3]
11114 ; GFX900-NEXT: ;;#ASMEND
11115 ; GFX900-NEXT: ;;#ASMSTART
11116 ; GFX900-NEXT: ; def v[1:4]
11117 ; GFX900-NEXT: ;;#ASMEND
11118 ; GFX900-NEXT: v_mov_b32_e32 v5, 0
11119 ; GFX900-NEXT: v_mov_b32_e32 v1, v4
11120 ; GFX900-NEXT: v_mov_b32_e32 v2, v0
11121 ; GFX900-NEXT: v_mov_b32_e32 v3, v4
11122 ; GFX900-NEXT: global_store_dwordx4 v5, v[1:4], s[16:17]
11123 ; GFX900-NEXT: s_waitcnt vmcnt(0)
11124 ; GFX900-NEXT: s_setpc_b64 s[30:31]
11126 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_0_7_7:
11128 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11129 ; GFX90A-NEXT: ;;#ASMSTART
11130 ; GFX90A-NEXT: ; def v[0:3]
11131 ; GFX90A-NEXT: ;;#ASMEND
11132 ; GFX90A-NEXT: ;;#ASMSTART
11133 ; GFX90A-NEXT: ; def v[2:5]
11134 ; GFX90A-NEXT: ;;#ASMEND
11135 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
11136 ; GFX90A-NEXT: v_pk_mov_b32 v[2:3], v[4:5], v[0:1] op_sel:[1,0]
11137 ; GFX90A-NEXT: v_mov_b32_e32 v4, v5
11138 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
11139 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
11140 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
11142 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_0_7_7:
11144 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11145 ; GFX940-NEXT: ;;#ASMSTART
11146 ; GFX940-NEXT: ; def v[0:3]
11147 ; GFX940-NEXT: ;;#ASMEND
11148 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
11149 ; GFX940-NEXT: ;;#ASMSTART
11150 ; GFX940-NEXT: ; def v[2:5]
11151 ; GFX940-NEXT: ;;#ASMEND
11152 ; GFX940-NEXT: s_nop 0
11153 ; GFX940-NEXT: v_pk_mov_b32 v[2:3], v[4:5], v[0:1] op_sel:[1,0]
11154 ; GFX940-NEXT: v_mov_b32_e32 v4, v5
11155 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
11156 ; GFX940-NEXT: s_waitcnt vmcnt(0)
11157 ; GFX940-NEXT: s_setpc_b64 s[30:31]
11158 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
11159 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
11160 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 0, i32 7, i32 7>
11161 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
11165 define void @v_shuffle_v4p3_v4p3__7_1_7_7(ptr addrspace(1) inreg %ptr) {
11166 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_1_7_7:
11168 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11169 ; GFX900-NEXT: ;;#ASMSTART
11170 ; GFX900-NEXT: ; def v[0:3]
11171 ; GFX900-NEXT: ;;#ASMEND
11172 ; GFX900-NEXT: ;;#ASMSTART
11173 ; GFX900-NEXT: ; def v[2:5]
11174 ; GFX900-NEXT: ;;#ASMEND
11175 ; GFX900-NEXT: v_mov_b32_e32 v6, 0
11176 ; GFX900-NEXT: v_mov_b32_e32 v0, v5
11177 ; GFX900-NEXT: v_mov_b32_e32 v2, v5
11178 ; GFX900-NEXT: v_mov_b32_e32 v3, v5
11179 ; GFX900-NEXT: global_store_dwordx4 v6, v[0:3], s[16:17]
11180 ; GFX900-NEXT: s_waitcnt vmcnt(0)
11181 ; GFX900-NEXT: s_setpc_b64 s[30:31]
11183 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_1_7_7:
11185 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11186 ; GFX90A-NEXT: ;;#ASMSTART
11187 ; GFX90A-NEXT: ; def v[0:3]
11188 ; GFX90A-NEXT: ;;#ASMEND
11189 ; GFX90A-NEXT: ;;#ASMSTART
11190 ; GFX90A-NEXT: ; def v[2:5]
11191 ; GFX90A-NEXT: ;;#ASMEND
11192 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
11193 ; GFX90A-NEXT: v_mov_b32_e32 v0, v5
11194 ; GFX90A-NEXT: v_mov_b32_e32 v2, v5
11195 ; GFX90A-NEXT: v_mov_b32_e32 v3, v5
11196 ; GFX90A-NEXT: global_store_dwordx4 v6, v[0:3], s[16:17]
11197 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
11198 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
11200 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_1_7_7:
11202 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11203 ; GFX940-NEXT: ;;#ASMSTART
11204 ; GFX940-NEXT: ; def v[0:3]
11205 ; GFX940-NEXT: ;;#ASMEND
11206 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
11207 ; GFX940-NEXT: ;;#ASMSTART
11208 ; GFX940-NEXT: ; def v[2:5]
11209 ; GFX940-NEXT: ;;#ASMEND
11210 ; GFX940-NEXT: s_nop 0
11211 ; GFX940-NEXT: v_mov_b32_e32 v0, v5
11212 ; GFX940-NEXT: v_mov_b32_e32 v2, v5
11213 ; GFX940-NEXT: v_mov_b32_e32 v3, v5
11214 ; GFX940-NEXT: global_store_dwordx4 v6, v[0:3], s[0:1] sc0 sc1
11215 ; GFX940-NEXT: s_waitcnt vmcnt(0)
11216 ; GFX940-NEXT: s_setpc_b64 s[30:31]
11217 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
11218 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
11219 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 1, i32 7, i32 7>
11220 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
11224 define void @v_shuffle_v4p3_v4p3__7_2_7_7(ptr addrspace(1) inreg %ptr) {
11225 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_2_7_7:
11227 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11228 ; GFX900-NEXT: ;;#ASMSTART
11229 ; GFX900-NEXT: ; def v[0:3]
11230 ; GFX900-NEXT: ;;#ASMEND
11231 ; GFX900-NEXT: ;;#ASMSTART
11232 ; GFX900-NEXT: ; def v[3:6]
11233 ; GFX900-NEXT: ;;#ASMEND
11234 ; GFX900-NEXT: v_mov_b32_e32 v7, 0
11235 ; GFX900-NEXT: v_mov_b32_e32 v3, v6
11236 ; GFX900-NEXT: v_mov_b32_e32 v4, v2
11237 ; GFX900-NEXT: v_mov_b32_e32 v5, v6
11238 ; GFX900-NEXT: global_store_dwordx4 v7, v[3:6], s[16:17]
11239 ; GFX900-NEXT: s_waitcnt vmcnt(0)
11240 ; GFX900-NEXT: s_setpc_b64 s[30:31]
11242 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_2_7_7:
11244 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11245 ; GFX90A-NEXT: ;;#ASMSTART
11246 ; GFX90A-NEXT: ; def v[4:7]
11247 ; GFX90A-NEXT: ;;#ASMEND
11248 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
11249 ; GFX90A-NEXT: ;;#ASMSTART
11250 ; GFX90A-NEXT: ; def v[0:3]
11251 ; GFX90A-NEXT: ;;#ASMEND
11252 ; GFX90A-NEXT: v_pk_mov_b32 v[4:5], v[6:7], v[2:3] op_sel:[1,0]
11253 ; GFX90A-NEXT: v_mov_b32_e32 v6, v7
11254 ; GFX90A-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
11255 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
11256 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
11258 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_2_7_7:
11260 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11261 ; GFX940-NEXT: ;;#ASMSTART
11262 ; GFX940-NEXT: ; def v[4:7]
11263 ; GFX940-NEXT: ;;#ASMEND
11264 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
11265 ; GFX940-NEXT: ;;#ASMSTART
11266 ; GFX940-NEXT: ; def v[0:3]
11267 ; GFX940-NEXT: ;;#ASMEND
11268 ; GFX940-NEXT: s_nop 0
11269 ; GFX940-NEXT: v_pk_mov_b32 v[4:5], v[6:7], v[2:3] op_sel:[1,0]
11270 ; GFX940-NEXT: v_mov_b32_e32 v6, v7
11271 ; GFX940-NEXT: global_store_dwordx4 v8, v[4:7], s[0:1] sc0 sc1
11272 ; GFX940-NEXT: s_waitcnt vmcnt(0)
11273 ; GFX940-NEXT: s_setpc_b64 s[30:31]
11274 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
11275 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
11276 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 2, i32 7, i32 7>
11277 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
11281 define void @v_shuffle_v4p3_v4p3__7_3_7_7(ptr addrspace(1) inreg %ptr) {
11282 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_3_7_7:
11284 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11285 ; GFX900-NEXT: ;;#ASMSTART
11286 ; GFX900-NEXT: ; def v[4:7]
11287 ; GFX900-NEXT: ;;#ASMEND
11288 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
11289 ; GFX900-NEXT: ;;#ASMSTART
11290 ; GFX900-NEXT: ; def v[0:3]
11291 ; GFX900-NEXT: ;;#ASMEND
11292 ; GFX900-NEXT: v_mov_b32_e32 v4, v7
11293 ; GFX900-NEXT: v_mov_b32_e32 v5, v3
11294 ; GFX900-NEXT: v_mov_b32_e32 v6, v7
11295 ; GFX900-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
11296 ; GFX900-NEXT: s_waitcnt vmcnt(0)
11297 ; GFX900-NEXT: s_setpc_b64 s[30:31]
11299 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_3_7_7:
11301 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11302 ; GFX90A-NEXT: ;;#ASMSTART
11303 ; GFX90A-NEXT: ; def v[4:7]
11304 ; GFX90A-NEXT: ;;#ASMEND
11305 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
11306 ; GFX90A-NEXT: ;;#ASMSTART
11307 ; GFX90A-NEXT: ; def v[0:3]
11308 ; GFX90A-NEXT: ;;#ASMEND
11309 ; GFX90A-NEXT: v_mov_b32_e32 v4, v7
11310 ; GFX90A-NEXT: v_mov_b32_e32 v5, v3
11311 ; GFX90A-NEXT: v_mov_b32_e32 v6, v7
11312 ; GFX90A-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
11313 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
11314 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
11316 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_3_7_7:
11318 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11319 ; GFX940-NEXT: ;;#ASMSTART
11320 ; GFX940-NEXT: ; def v[4:7]
11321 ; GFX940-NEXT: ;;#ASMEND
11322 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
11323 ; GFX940-NEXT: ;;#ASMSTART
11324 ; GFX940-NEXT: ; def v[0:3]
11325 ; GFX940-NEXT: ;;#ASMEND
11326 ; GFX940-NEXT: v_mov_b32_e32 v4, v7
11327 ; GFX940-NEXT: v_mov_b32_e32 v5, v3
11328 ; GFX940-NEXT: v_mov_b32_e32 v6, v7
11329 ; GFX940-NEXT: global_store_dwordx4 v8, v[4:7], s[0:1] sc0 sc1
11330 ; GFX940-NEXT: s_waitcnt vmcnt(0)
11331 ; GFX940-NEXT: s_setpc_b64 s[30:31]
11332 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
11333 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
11334 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 3, i32 7, i32 7>
11335 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
11339 define void @v_shuffle_v4p3_v4p3__7_4_7_7(ptr addrspace(1) inreg %ptr) {
11340 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_4_7_7:
11342 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11343 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
11344 ; GFX900-NEXT: ;;#ASMSTART
11345 ; GFX900-NEXT: ; def v[0:3]
11346 ; GFX900-NEXT: ;;#ASMEND
11347 ; GFX900-NEXT: v_mov_b32_e32 v4, v3
11348 ; GFX900-NEXT: v_mov_b32_e32 v5, v0
11349 ; GFX900-NEXT: v_mov_b32_e32 v6, v3
11350 ; GFX900-NEXT: v_mov_b32_e32 v7, v3
11351 ; GFX900-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
11352 ; GFX900-NEXT: s_waitcnt vmcnt(0)
11353 ; GFX900-NEXT: s_setpc_b64 s[30:31]
11355 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_4_7_7:
11357 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11358 ; GFX90A-NEXT: ;;#ASMSTART
11359 ; GFX90A-NEXT: ; def v[0:3]
11360 ; GFX90A-NEXT: ;;#ASMEND
11361 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
11362 ; GFX90A-NEXT: v_pk_mov_b32 v[0:1], v[2:3], v[0:1] op_sel:[1,0]
11363 ; GFX90A-NEXT: v_mov_b32_e32 v2, v3
11364 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
11365 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
11366 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
11368 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_4_7_7:
11370 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11371 ; GFX940-NEXT: ;;#ASMSTART
11372 ; GFX940-NEXT: ; def v[0:3]
11373 ; GFX940-NEXT: ;;#ASMEND
11374 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
11375 ; GFX940-NEXT: v_pk_mov_b32 v[0:1], v[2:3], v[0:1] op_sel:[1,0]
11376 ; GFX940-NEXT: v_mov_b32_e32 v2, v3
11377 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
11378 ; GFX940-NEXT: s_waitcnt vmcnt(0)
11379 ; GFX940-NEXT: s_setpc_b64 s[30:31]
11380 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
11381 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
11382 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 4, i32 7, i32 7>
11383 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
11387 define void @v_shuffle_v4p3_v4p3__7_5_7_7(ptr addrspace(1) inreg %ptr) {
11388 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_5_7_7:
11390 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11391 ; GFX900-NEXT: ;;#ASMSTART
11392 ; GFX900-NEXT: ; def v[0:3]
11393 ; GFX900-NEXT: ;;#ASMEND
11394 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
11395 ; GFX900-NEXT: v_mov_b32_e32 v0, v3
11396 ; GFX900-NEXT: v_mov_b32_e32 v2, v3
11397 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
11398 ; GFX900-NEXT: s_waitcnt vmcnt(0)
11399 ; GFX900-NEXT: s_setpc_b64 s[30:31]
11401 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_5_7_7:
11403 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11404 ; GFX90A-NEXT: ;;#ASMSTART
11405 ; GFX90A-NEXT: ; def v[0:3]
11406 ; GFX90A-NEXT: ;;#ASMEND
11407 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
11408 ; GFX90A-NEXT: v_mov_b32_e32 v0, v3
11409 ; GFX90A-NEXT: v_mov_b32_e32 v2, v3
11410 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
11411 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
11412 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
11414 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_5_7_7:
11416 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11417 ; GFX940-NEXT: ;;#ASMSTART
11418 ; GFX940-NEXT: ; def v[0:3]
11419 ; GFX940-NEXT: ;;#ASMEND
11420 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
11421 ; GFX940-NEXT: v_mov_b32_e32 v0, v3
11422 ; GFX940-NEXT: v_mov_b32_e32 v2, v3
11423 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
11424 ; GFX940-NEXT: s_waitcnt vmcnt(0)
11425 ; GFX940-NEXT: s_setpc_b64 s[30:31]
11426 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
11427 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
11428 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 5, i32 7, i32 7>
11429 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
11433 define void @v_shuffle_v4p3_v4p3__7_6_7_7(ptr addrspace(1) inreg %ptr) {
11434 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_6_7_7:
11436 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11437 ; GFX900-NEXT: ;;#ASMSTART
11438 ; GFX900-NEXT: ; def v[0:3]
11439 ; GFX900-NEXT: ;;#ASMEND
11440 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
11441 ; GFX900-NEXT: v_mov_b32_e32 v0, v3
11442 ; GFX900-NEXT: v_mov_b32_e32 v1, v2
11443 ; GFX900-NEXT: v_mov_b32_e32 v2, v3
11444 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
11445 ; GFX900-NEXT: s_waitcnt vmcnt(0)
11446 ; GFX900-NEXT: s_setpc_b64 s[30:31]
11448 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_6_7_7:
11450 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11451 ; GFX90A-NEXT: ;;#ASMSTART
11452 ; GFX90A-NEXT: ; def v[0:3]
11453 ; GFX90A-NEXT: ;;#ASMEND
11454 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
11455 ; GFX90A-NEXT: v_pk_mov_b32 v[0:1], v[2:3], v[2:3] op_sel:[1,0]
11456 ; GFX90A-NEXT: v_mov_b32_e32 v2, v3
11457 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
11458 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
11459 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
11461 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_6_7_7:
11463 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11464 ; GFX940-NEXT: ;;#ASMSTART
11465 ; GFX940-NEXT: ; def v[0:3]
11466 ; GFX940-NEXT: ;;#ASMEND
11467 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
11468 ; GFX940-NEXT: v_pk_mov_b32 v[0:1], v[2:3], v[2:3] op_sel:[1,0]
11469 ; GFX940-NEXT: v_mov_b32_e32 v2, v3
11470 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
11471 ; GFX940-NEXT: s_waitcnt vmcnt(0)
11472 ; GFX940-NEXT: s_setpc_b64 s[30:31]
11473 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
11474 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
11475 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 6, i32 7, i32 7>
11476 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
11480 define void @v_shuffle_v4p3_v4p3__7_7_u_7(ptr addrspace(1) inreg %ptr) {
11481 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_u_7:
11483 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11484 ; GFX900-NEXT: ;;#ASMSTART
11485 ; GFX900-NEXT: ; def v[0:3]
11486 ; GFX900-NEXT: ;;#ASMEND
11487 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
11488 ; GFX900-NEXT: v_mov_b32_e32 v0, v3
11489 ; GFX900-NEXT: v_mov_b32_e32 v1, v3
11490 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
11491 ; GFX900-NEXT: s_waitcnt vmcnt(0)
11492 ; GFX900-NEXT: s_setpc_b64 s[30:31]
11494 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_u_7:
11496 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11497 ; GFX90A-NEXT: ;;#ASMSTART
11498 ; GFX90A-NEXT: ; def v[0:3]
11499 ; GFX90A-NEXT: ;;#ASMEND
11500 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
11501 ; GFX90A-NEXT: v_mov_b32_e32 v0, v3
11502 ; GFX90A-NEXT: v_mov_b32_e32 v1, v3
11503 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
11504 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
11505 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
11507 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_u_7:
11509 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11510 ; GFX940-NEXT: ;;#ASMSTART
11511 ; GFX940-NEXT: ; def v[0:3]
11512 ; GFX940-NEXT: ;;#ASMEND
11513 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
11514 ; GFX940-NEXT: v_mov_b32_e32 v0, v3
11515 ; GFX940-NEXT: v_mov_b32_e32 v1, v3
11516 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
11517 ; GFX940-NEXT: s_waitcnt vmcnt(0)
11518 ; GFX940-NEXT: s_setpc_b64 s[30:31]
11519 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
11520 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
11521 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 poison, i32 7>
11522 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
11526 define void @v_shuffle_v4p3_v4p3__7_7_0_7(ptr addrspace(1) inreg %ptr) {
11527 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_0_7:
11529 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11530 ; GFX900-NEXT: ;;#ASMSTART
11531 ; GFX900-NEXT: ; def v[0:3]
11532 ; GFX900-NEXT: ;;#ASMEND
11533 ; GFX900-NEXT: ;;#ASMSTART
11534 ; GFX900-NEXT: ; def v[1:4]
11535 ; GFX900-NEXT: ;;#ASMEND
11536 ; GFX900-NEXT: v_mov_b32_e32 v5, 0
11537 ; GFX900-NEXT: v_mov_b32_e32 v1, v4
11538 ; GFX900-NEXT: v_mov_b32_e32 v2, v4
11539 ; GFX900-NEXT: v_mov_b32_e32 v3, v0
11540 ; GFX900-NEXT: global_store_dwordx4 v5, v[1:4], s[16:17]
11541 ; GFX900-NEXT: s_waitcnt vmcnt(0)
11542 ; GFX900-NEXT: s_setpc_b64 s[30:31]
11544 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_0_7:
11546 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11547 ; GFX90A-NEXT: ;;#ASMSTART
11548 ; GFX90A-NEXT: ; def v[0:3]
11549 ; GFX90A-NEXT: ;;#ASMEND
11550 ; GFX90A-NEXT: ;;#ASMSTART
11551 ; GFX90A-NEXT: ; def v[2:5]
11552 ; GFX90A-NEXT: ;;#ASMEND
11553 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
11554 ; GFX90A-NEXT: v_mov_b32_e32 v2, v5
11555 ; GFX90A-NEXT: v_mov_b32_e32 v3, v5
11556 ; GFX90A-NEXT: v_mov_b32_e32 v4, v0
11557 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
11558 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
11559 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
11561 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_0_7:
11563 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11564 ; GFX940-NEXT: ;;#ASMSTART
11565 ; GFX940-NEXT: ; def v[0:3]
11566 ; GFX940-NEXT: ;;#ASMEND
11567 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
11568 ; GFX940-NEXT: ;;#ASMSTART
11569 ; GFX940-NEXT: ; def v[2:5]
11570 ; GFX940-NEXT: ;;#ASMEND
11571 ; GFX940-NEXT: s_nop 0
11572 ; GFX940-NEXT: v_mov_b32_e32 v2, v5
11573 ; GFX940-NEXT: v_mov_b32_e32 v3, v5
11574 ; GFX940-NEXT: v_mov_b32_e32 v4, v0
11575 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
11576 ; GFX940-NEXT: s_waitcnt vmcnt(0)
11577 ; GFX940-NEXT: s_setpc_b64 s[30:31]
11578 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
11579 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
11580 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 0, i32 7>
11581 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
11585 define void @v_shuffle_v4p3_v4p3__7_7_1_7(ptr addrspace(1) inreg %ptr) {
11586 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_1_7:
11588 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11589 ; GFX900-NEXT: ;;#ASMSTART
11590 ; GFX900-NEXT: ; def v[0:3]
11591 ; GFX900-NEXT: ;;#ASMEND
11592 ; GFX900-NEXT: ;;#ASMSTART
11593 ; GFX900-NEXT: ; def v[2:5]
11594 ; GFX900-NEXT: ;;#ASMEND
11595 ; GFX900-NEXT: v_mov_b32_e32 v6, 0
11596 ; GFX900-NEXT: v_mov_b32_e32 v2, v5
11597 ; GFX900-NEXT: v_mov_b32_e32 v3, v5
11598 ; GFX900-NEXT: v_mov_b32_e32 v4, v1
11599 ; GFX900-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
11600 ; GFX900-NEXT: s_waitcnt vmcnt(0)
11601 ; GFX900-NEXT: s_setpc_b64 s[30:31]
11603 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_1_7:
11605 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11606 ; GFX90A-NEXT: ;;#ASMSTART
11607 ; GFX90A-NEXT: ; def v[0:3]
11608 ; GFX90A-NEXT: ;;#ASMEND
11609 ; GFX90A-NEXT: ;;#ASMSTART
11610 ; GFX90A-NEXT: ; def v[2:5]
11611 ; GFX90A-NEXT: ;;#ASMEND
11612 ; GFX90A-NEXT: v_mov_b32_e32 v6, 0
11613 ; GFX90A-NEXT: v_mov_b32_e32 v2, v5
11614 ; GFX90A-NEXT: v_mov_b32_e32 v3, v5
11615 ; GFX90A-NEXT: v_mov_b32_e32 v4, v1
11616 ; GFX90A-NEXT: global_store_dwordx4 v6, v[2:5], s[16:17]
11617 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
11618 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
11620 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_1_7:
11622 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11623 ; GFX940-NEXT: ;;#ASMSTART
11624 ; GFX940-NEXT: ; def v[0:3]
11625 ; GFX940-NEXT: ;;#ASMEND
11626 ; GFX940-NEXT: v_mov_b32_e32 v6, 0
11627 ; GFX940-NEXT: ;;#ASMSTART
11628 ; GFX940-NEXT: ; def v[2:5]
11629 ; GFX940-NEXT: ;;#ASMEND
11630 ; GFX940-NEXT: s_nop 0
11631 ; GFX940-NEXT: v_mov_b32_e32 v2, v5
11632 ; GFX940-NEXT: v_mov_b32_e32 v3, v5
11633 ; GFX940-NEXT: v_mov_b32_e32 v4, v1
11634 ; GFX940-NEXT: global_store_dwordx4 v6, v[2:5], s[0:1] sc0 sc1
11635 ; GFX940-NEXT: s_waitcnt vmcnt(0)
11636 ; GFX940-NEXT: s_setpc_b64 s[30:31]
11637 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
11638 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
11639 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 1, i32 7>
11640 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
11644 define void @v_shuffle_v4p3_v4p3__7_7_2_7(ptr addrspace(1) inreg %ptr) {
11645 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_2_7:
11647 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11648 ; GFX900-NEXT: ;;#ASMSTART
11649 ; GFX900-NEXT: ; def v[0:3]
11650 ; GFX900-NEXT: ;;#ASMEND
11651 ; GFX900-NEXT: ;;#ASMSTART
11652 ; GFX900-NEXT: ; def v[3:6]
11653 ; GFX900-NEXT: ;;#ASMEND
11654 ; GFX900-NEXT: v_mov_b32_e32 v7, 0
11655 ; GFX900-NEXT: v_mov_b32_e32 v0, v6
11656 ; GFX900-NEXT: v_mov_b32_e32 v1, v6
11657 ; GFX900-NEXT: v_mov_b32_e32 v3, v6
11658 ; GFX900-NEXT: global_store_dwordx4 v7, v[0:3], s[16:17]
11659 ; GFX900-NEXT: s_waitcnt vmcnt(0)
11660 ; GFX900-NEXT: s_setpc_b64 s[30:31]
11662 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_2_7:
11664 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11665 ; GFX90A-NEXT: ;;#ASMSTART
11666 ; GFX90A-NEXT: ; def v[0:3]
11667 ; GFX90A-NEXT: ;;#ASMEND
11668 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
11669 ; GFX90A-NEXT: ;;#ASMSTART
11670 ; GFX90A-NEXT: ; def v[4:7]
11671 ; GFX90A-NEXT: ;;#ASMEND
11672 ; GFX90A-NEXT: v_mov_b32_e32 v0, v7
11673 ; GFX90A-NEXT: v_mov_b32_e32 v1, v7
11674 ; GFX90A-NEXT: v_mov_b32_e32 v3, v7
11675 ; GFX90A-NEXT: global_store_dwordx4 v8, v[0:3], s[16:17]
11676 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
11677 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
11679 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_2_7:
11681 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11682 ; GFX940-NEXT: ;;#ASMSTART
11683 ; GFX940-NEXT: ; def v[0:3]
11684 ; GFX940-NEXT: ;;#ASMEND
11685 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
11686 ; GFX940-NEXT: ;;#ASMSTART
11687 ; GFX940-NEXT: ; def v[4:7]
11688 ; GFX940-NEXT: ;;#ASMEND
11689 ; GFX940-NEXT: s_nop 0
11690 ; GFX940-NEXT: v_mov_b32_e32 v0, v7
11691 ; GFX940-NEXT: v_mov_b32_e32 v1, v7
11692 ; GFX940-NEXT: v_mov_b32_e32 v3, v7
11693 ; GFX940-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1
11694 ; GFX940-NEXT: s_waitcnt vmcnt(0)
11695 ; GFX940-NEXT: s_setpc_b64 s[30:31]
11696 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
11697 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
11698 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 2, i32 7>
11699 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
11703 define void @v_shuffle_v4p3_v4p3__7_7_3_7(ptr addrspace(1) inreg %ptr) {
11704 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_3_7:
11706 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11707 ; GFX900-NEXT: ;;#ASMSTART
11708 ; GFX900-NEXT: ; def v[4:7]
11709 ; GFX900-NEXT: ;;#ASMEND
11710 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
11711 ; GFX900-NEXT: ;;#ASMSTART
11712 ; GFX900-NEXT: ; def v[0:3]
11713 ; GFX900-NEXT: ;;#ASMEND
11714 ; GFX900-NEXT: v_mov_b32_e32 v4, v7
11715 ; GFX900-NEXT: v_mov_b32_e32 v5, v7
11716 ; GFX900-NEXT: v_mov_b32_e32 v6, v3
11717 ; GFX900-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
11718 ; GFX900-NEXT: s_waitcnt vmcnt(0)
11719 ; GFX900-NEXT: s_setpc_b64 s[30:31]
11721 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_3_7:
11723 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11724 ; GFX90A-NEXT: ;;#ASMSTART
11725 ; GFX90A-NEXT: ; def v[4:7]
11726 ; GFX90A-NEXT: ;;#ASMEND
11727 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
11728 ; GFX90A-NEXT: ;;#ASMSTART
11729 ; GFX90A-NEXT: ; def v[0:3]
11730 ; GFX90A-NEXT: ;;#ASMEND
11731 ; GFX90A-NEXT: v_mov_b32_e32 v4, v7
11732 ; GFX90A-NEXT: v_mov_b32_e32 v5, v7
11733 ; GFX90A-NEXT: v_mov_b32_e32 v6, v3
11734 ; GFX90A-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
11735 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
11736 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
11738 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_3_7:
11740 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11741 ; GFX940-NEXT: ;;#ASMSTART
11742 ; GFX940-NEXT: ; def v[4:7]
11743 ; GFX940-NEXT: ;;#ASMEND
11744 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
11745 ; GFX940-NEXT: ;;#ASMSTART
11746 ; GFX940-NEXT: ; def v[0:3]
11747 ; GFX940-NEXT: ;;#ASMEND
11748 ; GFX940-NEXT: v_mov_b32_e32 v4, v7
11749 ; GFX940-NEXT: v_mov_b32_e32 v5, v7
11750 ; GFX940-NEXT: v_mov_b32_e32 v6, v3
11751 ; GFX940-NEXT: global_store_dwordx4 v8, v[4:7], s[0:1] sc0 sc1
11752 ; GFX940-NEXT: s_waitcnt vmcnt(0)
11753 ; GFX940-NEXT: s_setpc_b64 s[30:31]
11754 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
11755 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
11756 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 3, i32 7>
11757 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
11761 define void @v_shuffle_v4p3_v4p3__7_7_4_7(ptr addrspace(1) inreg %ptr) {
11762 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_4_7:
11764 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11765 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
11766 ; GFX900-NEXT: ;;#ASMSTART
11767 ; GFX900-NEXT: ; def v[0:3]
11768 ; GFX900-NEXT: ;;#ASMEND
11769 ; GFX900-NEXT: v_mov_b32_e32 v4, v3
11770 ; GFX900-NEXT: v_mov_b32_e32 v5, v3
11771 ; GFX900-NEXT: v_mov_b32_e32 v6, v0
11772 ; GFX900-NEXT: v_mov_b32_e32 v7, v3
11773 ; GFX900-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
11774 ; GFX900-NEXT: s_waitcnt vmcnt(0)
11775 ; GFX900-NEXT: s_setpc_b64 s[30:31]
11777 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_4_7:
11779 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11780 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
11781 ; GFX90A-NEXT: ;;#ASMSTART
11782 ; GFX90A-NEXT: ; def v[0:3]
11783 ; GFX90A-NEXT: ;;#ASMEND
11784 ; GFX90A-NEXT: v_mov_b32_e32 v4, v3
11785 ; GFX90A-NEXT: v_mov_b32_e32 v5, v3
11786 ; GFX90A-NEXT: v_mov_b32_e32 v6, v0
11787 ; GFX90A-NEXT: v_mov_b32_e32 v7, v3
11788 ; GFX90A-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
11789 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
11790 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
11792 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_4_7:
11794 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11795 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
11796 ; GFX940-NEXT: ;;#ASMSTART
11797 ; GFX940-NEXT: ; def v[0:3]
11798 ; GFX940-NEXT: ;;#ASMEND
11799 ; GFX940-NEXT: s_nop 0
11800 ; GFX940-NEXT: v_mov_b32_e32 v4, v3
11801 ; GFX940-NEXT: v_mov_b32_e32 v5, v3
11802 ; GFX940-NEXT: v_mov_b32_e32 v6, v0
11803 ; GFX940-NEXT: v_mov_b32_e32 v7, v3
11804 ; GFX940-NEXT: global_store_dwordx4 v8, v[4:7], s[0:1] sc0 sc1
11805 ; GFX940-NEXT: s_waitcnt vmcnt(0)
11806 ; GFX940-NEXT: s_setpc_b64 s[30:31]
11807 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
11808 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
11809 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 4, i32 7>
11810 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
11814 define void @v_shuffle_v4p3_v4p3__7_7_5_7(ptr addrspace(1) inreg %ptr) {
11815 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_5_7:
11817 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11818 ; GFX900-NEXT: v_mov_b32_e32 v8, 0
11819 ; GFX900-NEXT: ;;#ASMSTART
11820 ; GFX900-NEXT: ; def v[0:3]
11821 ; GFX900-NEXT: ;;#ASMEND
11822 ; GFX900-NEXT: v_mov_b32_e32 v4, v3
11823 ; GFX900-NEXT: v_mov_b32_e32 v5, v3
11824 ; GFX900-NEXT: v_mov_b32_e32 v6, v1
11825 ; GFX900-NEXT: v_mov_b32_e32 v7, v3
11826 ; GFX900-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
11827 ; GFX900-NEXT: s_waitcnt vmcnt(0)
11828 ; GFX900-NEXT: s_setpc_b64 s[30:31]
11830 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_5_7:
11832 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11833 ; GFX90A-NEXT: v_mov_b32_e32 v8, 0
11834 ; GFX90A-NEXT: ;;#ASMSTART
11835 ; GFX90A-NEXT: ; def v[0:3]
11836 ; GFX90A-NEXT: ;;#ASMEND
11837 ; GFX90A-NEXT: v_mov_b32_e32 v4, v3
11838 ; GFX90A-NEXT: v_mov_b32_e32 v5, v3
11839 ; GFX90A-NEXT: v_mov_b32_e32 v6, v1
11840 ; GFX90A-NEXT: v_mov_b32_e32 v7, v3
11841 ; GFX90A-NEXT: global_store_dwordx4 v8, v[4:7], s[16:17]
11842 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
11843 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
11845 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_5_7:
11847 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11848 ; GFX940-NEXT: v_mov_b32_e32 v8, 0
11849 ; GFX940-NEXT: ;;#ASMSTART
11850 ; GFX940-NEXT: ; def v[0:3]
11851 ; GFX940-NEXT: ;;#ASMEND
11852 ; GFX940-NEXT: s_nop 0
11853 ; GFX940-NEXT: v_mov_b32_e32 v4, v3
11854 ; GFX940-NEXT: v_mov_b32_e32 v5, v3
11855 ; GFX940-NEXT: v_mov_b32_e32 v6, v1
11856 ; GFX940-NEXT: v_mov_b32_e32 v7, v3
11857 ; GFX940-NEXT: global_store_dwordx4 v8, v[4:7], s[0:1] sc0 sc1
11858 ; GFX940-NEXT: s_waitcnt vmcnt(0)
11859 ; GFX940-NEXT: s_setpc_b64 s[30:31]
11860 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
11861 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
11862 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 5, i32 7>
11863 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
11867 define void @v_shuffle_v4p3_v4p3__7_7_6_7(ptr addrspace(1) inreg %ptr) {
11868 ; GFX900-LABEL: v_shuffle_v4p3_v4p3__7_7_6_7:
11870 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11871 ; GFX900-NEXT: ;;#ASMSTART
11872 ; GFX900-NEXT: ; def v[0:3]
11873 ; GFX900-NEXT: ;;#ASMEND
11874 ; GFX900-NEXT: v_mov_b32_e32 v4, 0
11875 ; GFX900-NEXT: v_mov_b32_e32 v0, v3
11876 ; GFX900-NEXT: v_mov_b32_e32 v1, v3
11877 ; GFX900-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
11878 ; GFX900-NEXT: s_waitcnt vmcnt(0)
11879 ; GFX900-NEXT: s_setpc_b64 s[30:31]
11881 ; GFX90A-LABEL: v_shuffle_v4p3_v4p3__7_7_6_7:
11883 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11884 ; GFX90A-NEXT: ;;#ASMSTART
11885 ; GFX90A-NEXT: ; def v[0:3]
11886 ; GFX90A-NEXT: ;;#ASMEND
11887 ; GFX90A-NEXT: v_mov_b32_e32 v4, 0
11888 ; GFX90A-NEXT: v_mov_b32_e32 v0, v3
11889 ; GFX90A-NEXT: v_mov_b32_e32 v1, v3
11890 ; GFX90A-NEXT: global_store_dwordx4 v4, v[0:3], s[16:17]
11891 ; GFX90A-NEXT: s_waitcnt vmcnt(0)
11892 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
11894 ; GFX940-LABEL: v_shuffle_v4p3_v4p3__7_7_6_7:
11896 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11897 ; GFX940-NEXT: ;;#ASMSTART
11898 ; GFX940-NEXT: ; def v[0:3]
11899 ; GFX940-NEXT: ;;#ASMEND
11900 ; GFX940-NEXT: v_mov_b32_e32 v4, 0
11901 ; GFX940-NEXT: v_mov_b32_e32 v0, v3
11902 ; GFX940-NEXT: v_mov_b32_e32 v1, v3
11903 ; GFX940-NEXT: global_store_dwordx4 v4, v[0:3], s[0:1] sc0 sc1
11904 ; GFX940-NEXT: s_waitcnt vmcnt(0)
11905 ; GFX940-NEXT: s_setpc_b64 s[30:31]
11906 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
11907 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=v"()
11908 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 6, i32 7>
11909 store <4 x ptr addrspace(3)> %shuf, ptr addrspace(1) %ptr, align 16
11913 define void @s_shuffle_v4p3_v4p3__u_u_u_u() {
11914 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__u_u_u_u:
11916 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11917 ; GFX9-NEXT: ;;#ASMSTART
11918 ; GFX9-NEXT: ; use s[8:11]
11919 ; GFX9-NEXT: ;;#ASMEND
11920 ; GFX9-NEXT: s_setpc_b64 s[30:31]
11921 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
11922 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> poison
11923 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
11927 define void @s_shuffle_v4p3_v4p3__0_u_u_u() {
11928 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__0_u_u_u:
11930 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11931 ; GFX900-NEXT: ;;#ASMSTART
11932 ; GFX900-NEXT: ; def s[8:11]
11933 ; GFX900-NEXT: ;;#ASMEND
11934 ; GFX900-NEXT: ;;#ASMSTART
11935 ; GFX900-NEXT: ; use s[8:11]
11936 ; GFX900-NEXT: ;;#ASMEND
11937 ; GFX900-NEXT: s_setpc_b64 s[30:31]
11939 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__0_u_u_u:
11941 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11942 ; GFX90A-NEXT: ;;#ASMSTART
11943 ; GFX90A-NEXT: ; def s[8:11]
11944 ; GFX90A-NEXT: ;;#ASMEND
11945 ; GFX90A-NEXT: ;;#ASMSTART
11946 ; GFX90A-NEXT: ; use s[8:11]
11947 ; GFX90A-NEXT: ;;#ASMEND
11948 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
11950 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__0_u_u_u:
11952 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11953 ; GFX940-NEXT: ;;#ASMSTART
11954 ; GFX940-NEXT: ; def s[8:11]
11955 ; GFX940-NEXT: ;;#ASMEND
11956 ; GFX940-NEXT: s_nop 0
11957 ; GFX940-NEXT: ;;#ASMSTART
11958 ; GFX940-NEXT: ; use s[8:11]
11959 ; GFX940-NEXT: ;;#ASMEND
11960 ; GFX940-NEXT: s_setpc_b64 s[30:31]
11961 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
11962 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 0, i32 poison, i32 poison, i32 poison>
11963 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
11967 define void @s_shuffle_v4p3_v4p3__1_u_u_u() {
11968 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__1_u_u_u:
11970 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11971 ; GFX900-NEXT: ;;#ASMSTART
11972 ; GFX900-NEXT: ; def s[4:7]
11973 ; GFX900-NEXT: ;;#ASMEND
11974 ; GFX900-NEXT: s_mov_b32 s8, s5
11975 ; GFX900-NEXT: ;;#ASMSTART
11976 ; GFX900-NEXT: ; use s[8:11]
11977 ; GFX900-NEXT: ;;#ASMEND
11978 ; GFX900-NEXT: s_setpc_b64 s[30:31]
11980 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__1_u_u_u:
11982 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11983 ; GFX90A-NEXT: ;;#ASMSTART
11984 ; GFX90A-NEXT: ; def s[4:7]
11985 ; GFX90A-NEXT: ;;#ASMEND
11986 ; GFX90A-NEXT: s_mov_b32 s8, s5
11987 ; GFX90A-NEXT: ;;#ASMSTART
11988 ; GFX90A-NEXT: ; use s[8:11]
11989 ; GFX90A-NEXT: ;;#ASMEND
11990 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
11992 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__1_u_u_u:
11994 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11995 ; GFX940-NEXT: ;;#ASMSTART
11996 ; GFX940-NEXT: ; def s[0:3]
11997 ; GFX940-NEXT: ;;#ASMEND
11998 ; GFX940-NEXT: s_mov_b32 s8, s1
11999 ; GFX940-NEXT: ;;#ASMSTART
12000 ; GFX940-NEXT: ; use s[8:11]
12001 ; GFX940-NEXT: ;;#ASMEND
12002 ; GFX940-NEXT: s_setpc_b64 s[30:31]
12003 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
12004 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 1, i32 poison, i32 poison, i32 poison>
12005 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
12009 define void @s_shuffle_v4p3_v4p3__2_u_u_u() {
12010 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__2_u_u_u:
12012 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12013 ; GFX900-NEXT: ;;#ASMSTART
12014 ; GFX900-NEXT: ; def s[4:7]
12015 ; GFX900-NEXT: ;;#ASMEND
12016 ; GFX900-NEXT: s_mov_b32 s8, s6
12017 ; GFX900-NEXT: ;;#ASMSTART
12018 ; GFX900-NEXT: ; use s[8:11]
12019 ; GFX900-NEXT: ;;#ASMEND
12020 ; GFX900-NEXT: s_setpc_b64 s[30:31]
12022 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__2_u_u_u:
12024 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12025 ; GFX90A-NEXT: ;;#ASMSTART
12026 ; GFX90A-NEXT: ; def s[4:7]
12027 ; GFX90A-NEXT: ;;#ASMEND
12028 ; GFX90A-NEXT: s_mov_b32 s8, s6
12029 ; GFX90A-NEXT: ;;#ASMSTART
12030 ; GFX90A-NEXT: ; use s[8:11]
12031 ; GFX90A-NEXT: ;;#ASMEND
12032 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
12034 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__2_u_u_u:
12036 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12037 ; GFX940-NEXT: ;;#ASMSTART
12038 ; GFX940-NEXT: ; def s[0:3]
12039 ; GFX940-NEXT: ;;#ASMEND
12040 ; GFX940-NEXT: s_mov_b32 s8, s2
12041 ; GFX940-NEXT: ;;#ASMSTART
12042 ; GFX940-NEXT: ; use s[8:11]
12043 ; GFX940-NEXT: ;;#ASMEND
12044 ; GFX940-NEXT: s_setpc_b64 s[30:31]
12045 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
12046 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 2, i32 poison, i32 poison, i32 poison>
12047 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
12051 define void @s_shuffle_v4p3_v4p3__3_u_u_u() {
12052 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__3_u_u_u:
12054 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12055 ; GFX900-NEXT: ;;#ASMSTART
12056 ; GFX900-NEXT: ; def s[4:7]
12057 ; GFX900-NEXT: ;;#ASMEND
12058 ; GFX900-NEXT: s_mov_b32 s8, s7
12059 ; GFX900-NEXT: ;;#ASMSTART
12060 ; GFX900-NEXT: ; use s[8:11]
12061 ; GFX900-NEXT: ;;#ASMEND
12062 ; GFX900-NEXT: s_setpc_b64 s[30:31]
12064 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__3_u_u_u:
12066 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12067 ; GFX90A-NEXT: ;;#ASMSTART
12068 ; GFX90A-NEXT: ; def s[4:7]
12069 ; GFX90A-NEXT: ;;#ASMEND
12070 ; GFX90A-NEXT: s_mov_b32 s8, s7
12071 ; GFX90A-NEXT: ;;#ASMSTART
12072 ; GFX90A-NEXT: ; use s[8:11]
12073 ; GFX90A-NEXT: ;;#ASMEND
12074 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
12076 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__3_u_u_u:
12078 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12079 ; GFX940-NEXT: ;;#ASMSTART
12080 ; GFX940-NEXT: ; def s[0:3]
12081 ; GFX940-NEXT: ;;#ASMEND
12082 ; GFX940-NEXT: s_mov_b32 s8, s3
12083 ; GFX940-NEXT: ;;#ASMSTART
12084 ; GFX940-NEXT: ; use s[8:11]
12085 ; GFX940-NEXT: ;;#ASMEND
12086 ; GFX940-NEXT: s_setpc_b64 s[30:31]
12087 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
12088 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 3, i32 poison, i32 poison, i32 poison>
12089 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
12093 define void @s_shuffle_v4p3_v4p3__4_u_u_u() {
12094 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__4_u_u_u:
12096 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12097 ; GFX9-NEXT: ;;#ASMSTART
12098 ; GFX9-NEXT: ; use s[8:11]
12099 ; GFX9-NEXT: ;;#ASMEND
12100 ; GFX9-NEXT: s_setpc_b64 s[30:31]
12101 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
12102 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 4, i32 poison, i32 poison, i32 poison>
12103 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
12107 define void @s_shuffle_v4p3_v4p3__5_u_u_u() {
12108 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__5_u_u_u:
12110 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12111 ; GFX900-NEXT: ;;#ASMSTART
12112 ; GFX900-NEXT: ; def s[4:7]
12113 ; GFX900-NEXT: ;;#ASMEND
12114 ; GFX900-NEXT: s_mov_b32 s8, s5
12115 ; GFX900-NEXT: ;;#ASMSTART
12116 ; GFX900-NEXT: ; use s[8:11]
12117 ; GFX900-NEXT: ;;#ASMEND
12118 ; GFX900-NEXT: s_setpc_b64 s[30:31]
12120 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__5_u_u_u:
12122 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12123 ; GFX90A-NEXT: ;;#ASMSTART
12124 ; GFX90A-NEXT: ; def s[4:7]
12125 ; GFX90A-NEXT: ;;#ASMEND
12126 ; GFX90A-NEXT: s_mov_b32 s8, s5
12127 ; GFX90A-NEXT: ;;#ASMSTART
12128 ; GFX90A-NEXT: ; use s[8:11]
12129 ; GFX90A-NEXT: ;;#ASMEND
12130 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
12132 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__5_u_u_u:
12134 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12135 ; GFX940-NEXT: ;;#ASMSTART
12136 ; GFX940-NEXT: ; def s[0:3]
12137 ; GFX940-NEXT: ;;#ASMEND
12138 ; GFX940-NEXT: s_mov_b32 s8, s1
12139 ; GFX940-NEXT: ;;#ASMSTART
12140 ; GFX940-NEXT: ; use s[8:11]
12141 ; GFX940-NEXT: ;;#ASMEND
12142 ; GFX940-NEXT: s_setpc_b64 s[30:31]
12143 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
12144 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
12145 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 5, i32 poison, i32 poison, i32 poison>
12146 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
12150 define void @s_shuffle_v4p3_v4p3__6_u_u_u() {
12151 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__6_u_u_u:
12153 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12154 ; GFX900-NEXT: ;;#ASMSTART
12155 ; GFX900-NEXT: ; def s[4:7]
12156 ; GFX900-NEXT: ;;#ASMEND
12157 ; GFX900-NEXT: s_mov_b32 s8, s6
12158 ; GFX900-NEXT: ;;#ASMSTART
12159 ; GFX900-NEXT: ; use s[8:11]
12160 ; GFX900-NEXT: ;;#ASMEND
12161 ; GFX900-NEXT: s_setpc_b64 s[30:31]
12163 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__6_u_u_u:
12165 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12166 ; GFX90A-NEXT: ;;#ASMSTART
12167 ; GFX90A-NEXT: ; def s[4:7]
12168 ; GFX90A-NEXT: ;;#ASMEND
12169 ; GFX90A-NEXT: s_mov_b32 s8, s6
12170 ; GFX90A-NEXT: ;;#ASMSTART
12171 ; GFX90A-NEXT: ; use s[8:11]
12172 ; GFX90A-NEXT: ;;#ASMEND
12173 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
12175 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__6_u_u_u:
12177 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12178 ; GFX940-NEXT: ;;#ASMSTART
12179 ; GFX940-NEXT: ; def s[0:3]
12180 ; GFX940-NEXT: ;;#ASMEND
12181 ; GFX940-NEXT: s_mov_b32 s8, s2
12182 ; GFX940-NEXT: ;;#ASMSTART
12183 ; GFX940-NEXT: ; use s[8:11]
12184 ; GFX940-NEXT: ;;#ASMEND
12185 ; GFX940-NEXT: s_setpc_b64 s[30:31]
12186 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
12187 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
12188 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 6, i32 poison, i32 poison, i32 poison>
12189 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
12193 define void @s_shuffle_v4p3_v4p3__7_u_u_u() {
12194 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_u_u_u:
12196 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12197 ; GFX900-NEXT: ;;#ASMSTART
12198 ; GFX900-NEXT: ; def s[4:7]
12199 ; GFX900-NEXT: ;;#ASMEND
12200 ; GFX900-NEXT: s_mov_b32 s8, s7
12201 ; GFX900-NEXT: ;;#ASMSTART
12202 ; GFX900-NEXT: ; use s[8:11]
12203 ; GFX900-NEXT: ;;#ASMEND
12204 ; GFX900-NEXT: s_setpc_b64 s[30:31]
12206 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_u_u_u:
12208 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12209 ; GFX90A-NEXT: ;;#ASMSTART
12210 ; GFX90A-NEXT: ; def s[4:7]
12211 ; GFX90A-NEXT: ;;#ASMEND
12212 ; GFX90A-NEXT: s_mov_b32 s8, s7
12213 ; GFX90A-NEXT: ;;#ASMSTART
12214 ; GFX90A-NEXT: ; use s[8:11]
12215 ; GFX90A-NEXT: ;;#ASMEND
12216 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
12218 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_u_u_u:
12220 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12221 ; GFX940-NEXT: ;;#ASMSTART
12222 ; GFX940-NEXT: ; def s[0:3]
12223 ; GFX940-NEXT: ;;#ASMEND
12224 ; GFX940-NEXT: s_mov_b32 s8, s3
12225 ; GFX940-NEXT: ;;#ASMSTART
12226 ; GFX940-NEXT: ; use s[8:11]
12227 ; GFX940-NEXT: ;;#ASMEND
12228 ; GFX940-NEXT: s_setpc_b64 s[30:31]
12229 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
12230 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
12231 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 poison, i32 poison, i32 poison>
12232 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
12236 define void @s_shuffle_v4p3_v4p3__7_0_u_u() {
12237 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_0_u_u:
12239 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12240 ; GFX900-NEXT: ;;#ASMSTART
12241 ; GFX900-NEXT: ; def s[8:11]
12242 ; GFX900-NEXT: ;;#ASMEND
12243 ; GFX900-NEXT: ;;#ASMSTART
12244 ; GFX900-NEXT: ; def s[4:7]
12245 ; GFX900-NEXT: ;;#ASMEND
12246 ; GFX900-NEXT: s_mov_b32 s8, s11
12247 ; GFX900-NEXT: s_mov_b32 s9, s4
12248 ; GFX900-NEXT: ;;#ASMSTART
12249 ; GFX900-NEXT: ; use s[8:11]
12250 ; GFX900-NEXT: ;;#ASMEND
12251 ; GFX900-NEXT: s_setpc_b64 s[30:31]
12253 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_0_u_u:
12255 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12256 ; GFX90A-NEXT: ;;#ASMSTART
12257 ; GFX90A-NEXT: ; def s[8:11]
12258 ; GFX90A-NEXT: ;;#ASMEND
12259 ; GFX90A-NEXT: ;;#ASMSTART
12260 ; GFX90A-NEXT: ; def s[4:7]
12261 ; GFX90A-NEXT: ;;#ASMEND
12262 ; GFX90A-NEXT: s_mov_b32 s8, s11
12263 ; GFX90A-NEXT: s_mov_b32 s9, s4
12264 ; GFX90A-NEXT: ;;#ASMSTART
12265 ; GFX90A-NEXT: ; use s[8:11]
12266 ; GFX90A-NEXT: ;;#ASMEND
12267 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
12269 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_0_u_u:
12271 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12272 ; GFX940-NEXT: ;;#ASMSTART
12273 ; GFX940-NEXT: ; def s[0:3]
12274 ; GFX940-NEXT: ;;#ASMEND
12275 ; GFX940-NEXT: ;;#ASMSTART
12276 ; GFX940-NEXT: ; def s[4:7]
12277 ; GFX940-NEXT: ;;#ASMEND
12278 ; GFX940-NEXT: s_mov_b32 s8, s7
12279 ; GFX940-NEXT: s_mov_b32 s9, s0
12280 ; GFX940-NEXT: ;;#ASMSTART
12281 ; GFX940-NEXT: ; use s[8:11]
12282 ; GFX940-NEXT: ;;#ASMEND
12283 ; GFX940-NEXT: s_setpc_b64 s[30:31]
12284 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
12285 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
12286 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 0, i32 poison, i32 poison>
12287 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
12291 define void @s_shuffle_v4p3_v4p3__7_1_u_u() {
12292 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_1_u_u:
12294 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12295 ; GFX900-NEXT: ;;#ASMSTART
12296 ; GFX900-NEXT: ; def s[8:11]
12297 ; GFX900-NEXT: ;;#ASMEND
12298 ; GFX900-NEXT: ;;#ASMSTART
12299 ; GFX900-NEXT: ; def s[4:7]
12300 ; GFX900-NEXT: ;;#ASMEND
12301 ; GFX900-NEXT: s_mov_b32 s8, s7
12302 ; GFX900-NEXT: ;;#ASMSTART
12303 ; GFX900-NEXT: ; use s[8:11]
12304 ; GFX900-NEXT: ;;#ASMEND
12305 ; GFX900-NEXT: s_setpc_b64 s[30:31]
12307 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_1_u_u:
12309 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12310 ; GFX90A-NEXT: ;;#ASMSTART
12311 ; GFX90A-NEXT: ; def s[8:11]
12312 ; GFX90A-NEXT: ;;#ASMEND
12313 ; GFX90A-NEXT: ;;#ASMSTART
12314 ; GFX90A-NEXT: ; def s[4:7]
12315 ; GFX90A-NEXT: ;;#ASMEND
12316 ; GFX90A-NEXT: s_mov_b32 s8, s7
12317 ; GFX90A-NEXT: ;;#ASMSTART
12318 ; GFX90A-NEXT: ; use s[8:11]
12319 ; GFX90A-NEXT: ;;#ASMEND
12320 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
12322 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_1_u_u:
12324 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12325 ; GFX940-NEXT: ;;#ASMSTART
12326 ; GFX940-NEXT: ; def s[8:11]
12327 ; GFX940-NEXT: ;;#ASMEND
12328 ; GFX940-NEXT: ;;#ASMSTART
12329 ; GFX940-NEXT: ; def s[0:3]
12330 ; GFX940-NEXT: ;;#ASMEND
12331 ; GFX940-NEXT: s_mov_b32 s8, s3
12332 ; GFX940-NEXT: ;;#ASMSTART
12333 ; GFX940-NEXT: ; use s[8:11]
12334 ; GFX940-NEXT: ;;#ASMEND
12335 ; GFX940-NEXT: s_setpc_b64 s[30:31]
12336 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
12337 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
12338 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 1, i32 poison, i32 poison>
12339 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
12343 define void @s_shuffle_v4p3_v4p3__7_2_u_u() {
12344 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_2_u_u:
12346 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12347 ; GFX900-NEXT: ;;#ASMSTART
12348 ; GFX900-NEXT: ; def s[8:11]
12349 ; GFX900-NEXT: ;;#ASMEND
12350 ; GFX900-NEXT: ;;#ASMSTART
12351 ; GFX900-NEXT: ; def s[4:7]
12352 ; GFX900-NEXT: ;;#ASMEND
12353 ; GFX900-NEXT: s_mov_b32 s8, s11
12354 ; GFX900-NEXT: s_mov_b32 s9, s6
12355 ; GFX900-NEXT: ;;#ASMSTART
12356 ; GFX900-NEXT: ; use s[8:11]
12357 ; GFX900-NEXT: ;;#ASMEND
12358 ; GFX900-NEXT: s_setpc_b64 s[30:31]
12360 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_2_u_u:
12362 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12363 ; GFX90A-NEXT: ;;#ASMSTART
12364 ; GFX90A-NEXT: ; def s[8:11]
12365 ; GFX90A-NEXT: ;;#ASMEND
12366 ; GFX90A-NEXT: ;;#ASMSTART
12367 ; GFX90A-NEXT: ; def s[4:7]
12368 ; GFX90A-NEXT: ;;#ASMEND
12369 ; GFX90A-NEXT: s_mov_b32 s8, s11
12370 ; GFX90A-NEXT: s_mov_b32 s9, s6
12371 ; GFX90A-NEXT: ;;#ASMSTART
12372 ; GFX90A-NEXT: ; use s[8:11]
12373 ; GFX90A-NEXT: ;;#ASMEND
12374 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
12376 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_2_u_u:
12378 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12379 ; GFX940-NEXT: ;;#ASMSTART
12380 ; GFX940-NEXT: ; def s[0:3]
12381 ; GFX940-NEXT: ;;#ASMEND
12382 ; GFX940-NEXT: ;;#ASMSTART
12383 ; GFX940-NEXT: ; def s[4:7]
12384 ; GFX940-NEXT: ;;#ASMEND
12385 ; GFX940-NEXT: s_mov_b32 s8, s7
12386 ; GFX940-NEXT: s_mov_b32 s9, s2
12387 ; GFX940-NEXT: ;;#ASMSTART
12388 ; GFX940-NEXT: ; use s[8:11]
12389 ; GFX940-NEXT: ;;#ASMEND
12390 ; GFX940-NEXT: s_setpc_b64 s[30:31]
12391 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
12392 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
12393 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 2, i32 poison, i32 poison>
12394 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
12398 define void @s_shuffle_v4p3_v4p3__7_3_u_u() {
12399 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_3_u_u:
12401 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12402 ; GFX900-NEXT: ;;#ASMSTART
12403 ; GFX900-NEXT: ; def s[8:11]
12404 ; GFX900-NEXT: ;;#ASMEND
12405 ; GFX900-NEXT: ;;#ASMSTART
12406 ; GFX900-NEXT: ; def s[4:7]
12407 ; GFX900-NEXT: ;;#ASMEND
12408 ; GFX900-NEXT: s_mov_b32 s8, s11
12409 ; GFX900-NEXT: s_mov_b32 s9, s7
12410 ; GFX900-NEXT: ;;#ASMSTART
12411 ; GFX900-NEXT: ; use s[8:11]
12412 ; GFX900-NEXT: ;;#ASMEND
12413 ; GFX900-NEXT: s_setpc_b64 s[30:31]
12415 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_3_u_u:
12417 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12418 ; GFX90A-NEXT: ;;#ASMSTART
12419 ; GFX90A-NEXT: ; def s[8:11]
12420 ; GFX90A-NEXT: ;;#ASMEND
12421 ; GFX90A-NEXT: ;;#ASMSTART
12422 ; GFX90A-NEXT: ; def s[4:7]
12423 ; GFX90A-NEXT: ;;#ASMEND
12424 ; GFX90A-NEXT: s_mov_b32 s8, s11
12425 ; GFX90A-NEXT: s_mov_b32 s9, s7
12426 ; GFX90A-NEXT: ;;#ASMSTART
12427 ; GFX90A-NEXT: ; use s[8:11]
12428 ; GFX90A-NEXT: ;;#ASMEND
12429 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
12431 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_3_u_u:
12433 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12434 ; GFX940-NEXT: ;;#ASMSTART
12435 ; GFX940-NEXT: ; def s[0:3]
12436 ; GFX940-NEXT: ;;#ASMEND
12437 ; GFX940-NEXT: ;;#ASMSTART
12438 ; GFX940-NEXT: ; def s[4:7]
12439 ; GFX940-NEXT: ;;#ASMEND
12440 ; GFX940-NEXT: s_mov_b32 s8, s7
12441 ; GFX940-NEXT: s_mov_b32 s9, s3
12442 ; GFX940-NEXT: ;;#ASMSTART
12443 ; GFX940-NEXT: ; use s[8:11]
12444 ; GFX940-NEXT: ;;#ASMEND
12445 ; GFX940-NEXT: s_setpc_b64 s[30:31]
12446 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
12447 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
12448 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 3, i32 poison, i32 poison>
12449 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
12453 define void @s_shuffle_v4p3_v4p3__7_4_u_u() {
12454 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_4_u_u:
12456 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12457 ; GFX900-NEXT: ;;#ASMSTART
12458 ; GFX900-NEXT: ; def s[4:7]
12459 ; GFX900-NEXT: ;;#ASMEND
12460 ; GFX900-NEXT: s_mov_b32 s8, s7
12461 ; GFX900-NEXT: s_mov_b32 s9, s4
12462 ; GFX900-NEXT: ;;#ASMSTART
12463 ; GFX900-NEXT: ; use s[8:11]
12464 ; GFX900-NEXT: ;;#ASMEND
12465 ; GFX900-NEXT: s_setpc_b64 s[30:31]
12467 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_4_u_u:
12469 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12470 ; GFX90A-NEXT: ;;#ASMSTART
12471 ; GFX90A-NEXT: ; def s[4:7]
12472 ; GFX90A-NEXT: ;;#ASMEND
12473 ; GFX90A-NEXT: s_mov_b32 s8, s7
12474 ; GFX90A-NEXT: s_mov_b32 s9, s4
12475 ; GFX90A-NEXT: ;;#ASMSTART
12476 ; GFX90A-NEXT: ; use s[8:11]
12477 ; GFX90A-NEXT: ;;#ASMEND
12478 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
12480 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_4_u_u:
12482 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12483 ; GFX940-NEXT: ;;#ASMSTART
12484 ; GFX940-NEXT: ; def s[0:3]
12485 ; GFX940-NEXT: ;;#ASMEND
12486 ; GFX940-NEXT: s_mov_b32 s8, s3
12487 ; GFX940-NEXT: s_mov_b32 s9, s0
12488 ; GFX940-NEXT: ;;#ASMSTART
12489 ; GFX940-NEXT: ; use s[8:11]
12490 ; GFX940-NEXT: ;;#ASMEND
12491 ; GFX940-NEXT: s_setpc_b64 s[30:31]
12492 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
12493 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
12494 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 4, i32 poison, i32 poison>
12495 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
12499 define void @s_shuffle_v4p3_v4p3__7_5_u_u() {
12500 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__7_5_u_u:
12502 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12503 ; GFX9-NEXT: ;;#ASMSTART
12504 ; GFX9-NEXT: ; def s[8:11]
12505 ; GFX9-NEXT: ;;#ASMEND
12506 ; GFX9-NEXT: s_mov_b32 s8, s11
12507 ; GFX9-NEXT: ;;#ASMSTART
12508 ; GFX9-NEXT: ; use s[8:11]
12509 ; GFX9-NEXT: ;;#ASMEND
12510 ; GFX9-NEXT: s_setpc_b64 s[30:31]
12511 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
12512 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
12513 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 5, i32 poison, i32 poison>
12514 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
12518 define void @s_shuffle_v4p3_v4p3__7_6_u_u() {
12519 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_6_u_u:
12521 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12522 ; GFX900-NEXT: ;;#ASMSTART
12523 ; GFX900-NEXT: ; def s[4:7]
12524 ; GFX900-NEXT: ;;#ASMEND
12525 ; GFX900-NEXT: s_mov_b32 s8, s7
12526 ; GFX900-NEXT: s_mov_b32 s9, s6
12527 ; GFX900-NEXT: ;;#ASMSTART
12528 ; GFX900-NEXT: ; use s[8:11]
12529 ; GFX900-NEXT: ;;#ASMEND
12530 ; GFX900-NEXT: s_setpc_b64 s[30:31]
12532 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_6_u_u:
12534 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12535 ; GFX90A-NEXT: ;;#ASMSTART
12536 ; GFX90A-NEXT: ; def s[4:7]
12537 ; GFX90A-NEXT: ;;#ASMEND
12538 ; GFX90A-NEXT: s_mov_b32 s8, s7
12539 ; GFX90A-NEXT: s_mov_b32 s9, s6
12540 ; GFX90A-NEXT: ;;#ASMSTART
12541 ; GFX90A-NEXT: ; use s[8:11]
12542 ; GFX90A-NEXT: ;;#ASMEND
12543 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
12545 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_6_u_u:
12547 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12548 ; GFX940-NEXT: ;;#ASMSTART
12549 ; GFX940-NEXT: ; def s[0:3]
12550 ; GFX940-NEXT: ;;#ASMEND
12551 ; GFX940-NEXT: s_mov_b32 s8, s3
12552 ; GFX940-NEXT: s_mov_b32 s9, s2
12553 ; GFX940-NEXT: ;;#ASMSTART
12554 ; GFX940-NEXT: ; use s[8:11]
12555 ; GFX940-NEXT: ;;#ASMEND
12556 ; GFX940-NEXT: s_setpc_b64 s[30:31]
12557 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
12558 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
12559 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 6, i32 poison, i32 poison>
12560 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
12564 define void @s_shuffle_v4p3_v4p3__7_7_u_u() {
12565 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_u_u:
12567 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12568 ; GFX900-NEXT: ;;#ASMSTART
12569 ; GFX900-NEXT: ; def s[4:7]
12570 ; GFX900-NEXT: ;;#ASMEND
12571 ; GFX900-NEXT: s_mov_b32 s8, s7
12572 ; GFX900-NEXT: s_mov_b32 s9, s7
12573 ; GFX900-NEXT: ;;#ASMSTART
12574 ; GFX900-NEXT: ; use s[8:11]
12575 ; GFX900-NEXT: ;;#ASMEND
12576 ; GFX900-NEXT: s_setpc_b64 s[30:31]
12578 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_u_u:
12580 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12581 ; GFX90A-NEXT: ;;#ASMSTART
12582 ; GFX90A-NEXT: ; def s[4:7]
12583 ; GFX90A-NEXT: ;;#ASMEND
12584 ; GFX90A-NEXT: s_mov_b32 s8, s7
12585 ; GFX90A-NEXT: s_mov_b32 s9, s7
12586 ; GFX90A-NEXT: ;;#ASMSTART
12587 ; GFX90A-NEXT: ; use s[8:11]
12588 ; GFX90A-NEXT: ;;#ASMEND
12589 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
12591 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_u_u:
12593 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12594 ; GFX940-NEXT: ;;#ASMSTART
12595 ; GFX940-NEXT: ; def s[0:3]
12596 ; GFX940-NEXT: ;;#ASMEND
12597 ; GFX940-NEXT: s_mov_b32 s8, s3
12598 ; GFX940-NEXT: s_mov_b32 s9, s3
12599 ; GFX940-NEXT: ;;#ASMSTART
12600 ; GFX940-NEXT: ; use s[8:11]
12601 ; GFX940-NEXT: ;;#ASMEND
12602 ; GFX940-NEXT: s_setpc_b64 s[30:31]
12603 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
12604 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
12605 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 poison, i32 poison>
12606 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
12610 define void @s_shuffle_v4p3_v4p3__7_7_0_u() {
12611 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_0_u:
12613 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12614 ; GFX900-NEXT: ;;#ASMSTART
12615 ; GFX900-NEXT: ; def s[8:11]
12616 ; GFX900-NEXT: ;;#ASMEND
12617 ; GFX900-NEXT: ;;#ASMSTART
12618 ; GFX900-NEXT: ; def s[4:7]
12619 ; GFX900-NEXT: ;;#ASMEND
12620 ; GFX900-NEXT: s_mov_b32 s8, s11
12621 ; GFX900-NEXT: s_mov_b32 s9, s11
12622 ; GFX900-NEXT: s_mov_b32 s10, s4
12623 ; GFX900-NEXT: ;;#ASMSTART
12624 ; GFX900-NEXT: ; use s[8:11]
12625 ; GFX900-NEXT: ;;#ASMEND
12626 ; GFX900-NEXT: s_setpc_b64 s[30:31]
12628 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_0_u:
12630 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12631 ; GFX90A-NEXT: ;;#ASMSTART
12632 ; GFX90A-NEXT: ; def s[8:11]
12633 ; GFX90A-NEXT: ;;#ASMEND
12634 ; GFX90A-NEXT: ;;#ASMSTART
12635 ; GFX90A-NEXT: ; def s[4:7]
12636 ; GFX90A-NEXT: ;;#ASMEND
12637 ; GFX90A-NEXT: s_mov_b32 s8, s11
12638 ; GFX90A-NEXT: s_mov_b32 s9, s11
12639 ; GFX90A-NEXT: s_mov_b32 s10, s4
12640 ; GFX90A-NEXT: ;;#ASMSTART
12641 ; GFX90A-NEXT: ; use s[8:11]
12642 ; GFX90A-NEXT: ;;#ASMEND
12643 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
12645 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_0_u:
12647 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12648 ; GFX940-NEXT: ;;#ASMSTART
12649 ; GFX940-NEXT: ; def s[0:3]
12650 ; GFX940-NEXT: ;;#ASMEND
12651 ; GFX940-NEXT: ;;#ASMSTART
12652 ; GFX940-NEXT: ; def s[4:7]
12653 ; GFX940-NEXT: ;;#ASMEND
12654 ; GFX940-NEXT: s_mov_b32 s8, s7
12655 ; GFX940-NEXT: s_mov_b32 s9, s7
12656 ; GFX940-NEXT: s_mov_b32 s10, s0
12657 ; GFX940-NEXT: ;;#ASMSTART
12658 ; GFX940-NEXT: ; use s[8:11]
12659 ; GFX940-NEXT: ;;#ASMEND
12660 ; GFX940-NEXT: s_setpc_b64 s[30:31]
12661 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
12662 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
12663 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 0, i32 poison>
12664 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
12668 define void @s_shuffle_v4p3_v4p3__7_7_1_u() {
12669 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_1_u:
12671 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12672 ; GFX900-NEXT: ;;#ASMSTART
12673 ; GFX900-NEXT: ; def s[8:11]
12674 ; GFX900-NEXT: ;;#ASMEND
12675 ; GFX900-NEXT: ;;#ASMSTART
12676 ; GFX900-NEXT: ; def s[4:7]
12677 ; GFX900-NEXT: ;;#ASMEND
12678 ; GFX900-NEXT: s_mov_b32 s8, s11
12679 ; GFX900-NEXT: s_mov_b32 s9, s11
12680 ; GFX900-NEXT: s_mov_b32 s10, s5
12681 ; GFX900-NEXT: ;;#ASMSTART
12682 ; GFX900-NEXT: ; use s[8:11]
12683 ; GFX900-NEXT: ;;#ASMEND
12684 ; GFX900-NEXT: s_setpc_b64 s[30:31]
12686 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_1_u:
12688 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12689 ; GFX90A-NEXT: ;;#ASMSTART
12690 ; GFX90A-NEXT: ; def s[8:11]
12691 ; GFX90A-NEXT: ;;#ASMEND
12692 ; GFX90A-NEXT: ;;#ASMSTART
12693 ; GFX90A-NEXT: ; def s[4:7]
12694 ; GFX90A-NEXT: ;;#ASMEND
12695 ; GFX90A-NEXT: s_mov_b32 s8, s11
12696 ; GFX90A-NEXT: s_mov_b32 s9, s11
12697 ; GFX90A-NEXT: s_mov_b32 s10, s5
12698 ; GFX90A-NEXT: ;;#ASMSTART
12699 ; GFX90A-NEXT: ; use s[8:11]
12700 ; GFX90A-NEXT: ;;#ASMEND
12701 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
12703 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_1_u:
12705 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12706 ; GFX940-NEXT: ;;#ASMSTART
12707 ; GFX940-NEXT: ; def s[0:3]
12708 ; GFX940-NEXT: ;;#ASMEND
12709 ; GFX940-NEXT: ;;#ASMSTART
12710 ; GFX940-NEXT: ; def s[4:7]
12711 ; GFX940-NEXT: ;;#ASMEND
12712 ; GFX940-NEXT: s_mov_b32 s8, s7
12713 ; GFX940-NEXT: s_mov_b32 s9, s7
12714 ; GFX940-NEXT: s_mov_b32 s10, s1
12715 ; GFX940-NEXT: ;;#ASMSTART
12716 ; GFX940-NEXT: ; use s[8:11]
12717 ; GFX940-NEXT: ;;#ASMEND
12718 ; GFX940-NEXT: s_setpc_b64 s[30:31]
12719 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
12720 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
12721 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 1, i32 poison>
12722 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
12726 define void @s_shuffle_v4p3_v4p3__7_7_2_u() {
12727 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_2_u:
12729 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12730 ; GFX900-NEXT: ;;#ASMSTART
12731 ; GFX900-NEXT: ; def s[8:11]
12732 ; GFX900-NEXT: ;;#ASMEND
12733 ; GFX900-NEXT: ;;#ASMSTART
12734 ; GFX900-NEXT: ; def s[4:7]
12735 ; GFX900-NEXT: ;;#ASMEND
12736 ; GFX900-NEXT: s_mov_b32 s8, s7
12737 ; GFX900-NEXT: s_mov_b32 s9, s7
12738 ; GFX900-NEXT: ;;#ASMSTART
12739 ; GFX900-NEXT: ; use s[8:11]
12740 ; GFX900-NEXT: ;;#ASMEND
12741 ; GFX900-NEXT: s_setpc_b64 s[30:31]
12743 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_2_u:
12745 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12746 ; GFX90A-NEXT: ;;#ASMSTART
12747 ; GFX90A-NEXT: ; def s[8:11]
12748 ; GFX90A-NEXT: ;;#ASMEND
12749 ; GFX90A-NEXT: ;;#ASMSTART
12750 ; GFX90A-NEXT: ; def s[4:7]
12751 ; GFX90A-NEXT: ;;#ASMEND
12752 ; GFX90A-NEXT: s_mov_b32 s8, s7
12753 ; GFX90A-NEXT: s_mov_b32 s9, s7
12754 ; GFX90A-NEXT: ;;#ASMSTART
12755 ; GFX90A-NEXT: ; use s[8:11]
12756 ; GFX90A-NEXT: ;;#ASMEND
12757 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
12759 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_2_u:
12761 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12762 ; GFX940-NEXT: ;;#ASMSTART
12763 ; GFX940-NEXT: ; def s[8:11]
12764 ; GFX940-NEXT: ;;#ASMEND
12765 ; GFX940-NEXT: ;;#ASMSTART
12766 ; GFX940-NEXT: ; def s[0:3]
12767 ; GFX940-NEXT: ;;#ASMEND
12768 ; GFX940-NEXT: s_mov_b32 s8, s3
12769 ; GFX940-NEXT: s_mov_b32 s9, s3
12770 ; GFX940-NEXT: ;;#ASMSTART
12771 ; GFX940-NEXT: ; use s[8:11]
12772 ; GFX940-NEXT: ;;#ASMEND
12773 ; GFX940-NEXT: s_setpc_b64 s[30:31]
12774 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
12775 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
12776 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 2, i32 poison>
12777 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
12781 define void @s_shuffle_v4p3_v4p3__7_7_3_u() {
12782 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_3_u:
12784 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12785 ; GFX900-NEXT: ;;#ASMSTART
12786 ; GFX900-NEXT: ; def s[8:11]
12787 ; GFX900-NEXT: ;;#ASMEND
12788 ; GFX900-NEXT: ;;#ASMSTART
12789 ; GFX900-NEXT: ; def s[4:7]
12790 ; GFX900-NEXT: ;;#ASMEND
12791 ; GFX900-NEXT: s_mov_b32 s8, s11
12792 ; GFX900-NEXT: s_mov_b32 s9, s11
12793 ; GFX900-NEXT: s_mov_b32 s10, s7
12794 ; GFX900-NEXT: ;;#ASMSTART
12795 ; GFX900-NEXT: ; use s[8:11]
12796 ; GFX900-NEXT: ;;#ASMEND
12797 ; GFX900-NEXT: s_setpc_b64 s[30:31]
12799 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_3_u:
12801 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12802 ; GFX90A-NEXT: ;;#ASMSTART
12803 ; GFX90A-NEXT: ; def s[8:11]
12804 ; GFX90A-NEXT: ;;#ASMEND
12805 ; GFX90A-NEXT: ;;#ASMSTART
12806 ; GFX90A-NEXT: ; def s[4:7]
12807 ; GFX90A-NEXT: ;;#ASMEND
12808 ; GFX90A-NEXT: s_mov_b32 s8, s11
12809 ; GFX90A-NEXT: s_mov_b32 s9, s11
12810 ; GFX90A-NEXT: s_mov_b32 s10, s7
12811 ; GFX90A-NEXT: ;;#ASMSTART
12812 ; GFX90A-NEXT: ; use s[8:11]
12813 ; GFX90A-NEXT: ;;#ASMEND
12814 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
12816 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_3_u:
12818 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12819 ; GFX940-NEXT: ;;#ASMSTART
12820 ; GFX940-NEXT: ; def s[0:3]
12821 ; GFX940-NEXT: ;;#ASMEND
12822 ; GFX940-NEXT: ;;#ASMSTART
12823 ; GFX940-NEXT: ; def s[4:7]
12824 ; GFX940-NEXT: ;;#ASMEND
12825 ; GFX940-NEXT: s_mov_b32 s8, s7
12826 ; GFX940-NEXT: s_mov_b32 s9, s7
12827 ; GFX940-NEXT: s_mov_b32 s10, s3
12828 ; GFX940-NEXT: ;;#ASMSTART
12829 ; GFX940-NEXT: ; use s[8:11]
12830 ; GFX940-NEXT: ;;#ASMEND
12831 ; GFX940-NEXT: s_setpc_b64 s[30:31]
12832 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
12833 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
12834 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 3, i32 poison>
12835 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
12839 define void @s_shuffle_v4p3_v4p3__7_7_4_u() {
12840 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_4_u:
12842 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12843 ; GFX900-NEXT: ;;#ASMSTART
12844 ; GFX900-NEXT: ; def s[4:7]
12845 ; GFX900-NEXT: ;;#ASMEND
12846 ; GFX900-NEXT: s_mov_b32 s8, s7
12847 ; GFX900-NEXT: s_mov_b32 s9, s7
12848 ; GFX900-NEXT: s_mov_b32 s10, s4
12849 ; GFX900-NEXT: ;;#ASMSTART
12850 ; GFX900-NEXT: ; use s[8:11]
12851 ; GFX900-NEXT: ;;#ASMEND
12852 ; GFX900-NEXT: s_setpc_b64 s[30:31]
12854 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_4_u:
12856 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12857 ; GFX90A-NEXT: ;;#ASMSTART
12858 ; GFX90A-NEXT: ; def s[4:7]
12859 ; GFX90A-NEXT: ;;#ASMEND
12860 ; GFX90A-NEXT: s_mov_b32 s8, s7
12861 ; GFX90A-NEXT: s_mov_b32 s9, s7
12862 ; GFX90A-NEXT: s_mov_b32 s10, s4
12863 ; GFX90A-NEXT: ;;#ASMSTART
12864 ; GFX90A-NEXT: ; use s[8:11]
12865 ; GFX90A-NEXT: ;;#ASMEND
12866 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
12868 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_4_u:
12870 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12871 ; GFX940-NEXT: ;;#ASMSTART
12872 ; GFX940-NEXT: ; def s[0:3]
12873 ; GFX940-NEXT: ;;#ASMEND
12874 ; GFX940-NEXT: s_mov_b32 s8, s3
12875 ; GFX940-NEXT: s_mov_b32 s9, s3
12876 ; GFX940-NEXT: s_mov_b32 s10, s0
12877 ; GFX940-NEXT: ;;#ASMSTART
12878 ; GFX940-NEXT: ; use s[8:11]
12879 ; GFX940-NEXT: ;;#ASMEND
12880 ; GFX940-NEXT: s_setpc_b64 s[30:31]
12881 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
12882 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
12883 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 4, i32 poison>
12884 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
12888 define void @s_shuffle_v4p3_v4p3__7_7_5_u() {
12889 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_5_u:
12891 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12892 ; GFX900-NEXT: ;;#ASMSTART
12893 ; GFX900-NEXT: ; def s[4:7]
12894 ; GFX900-NEXT: ;;#ASMEND
12895 ; GFX900-NEXT: s_mov_b32 s8, s7
12896 ; GFX900-NEXT: s_mov_b32 s9, s7
12897 ; GFX900-NEXT: s_mov_b32 s10, s5
12898 ; GFX900-NEXT: ;;#ASMSTART
12899 ; GFX900-NEXT: ; use s[8:11]
12900 ; GFX900-NEXT: ;;#ASMEND
12901 ; GFX900-NEXT: s_setpc_b64 s[30:31]
12903 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_5_u:
12905 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12906 ; GFX90A-NEXT: ;;#ASMSTART
12907 ; GFX90A-NEXT: ; def s[4:7]
12908 ; GFX90A-NEXT: ;;#ASMEND
12909 ; GFX90A-NEXT: s_mov_b32 s8, s7
12910 ; GFX90A-NEXT: s_mov_b32 s9, s7
12911 ; GFX90A-NEXT: s_mov_b32 s10, s5
12912 ; GFX90A-NEXT: ;;#ASMSTART
12913 ; GFX90A-NEXT: ; use s[8:11]
12914 ; GFX90A-NEXT: ;;#ASMEND
12915 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
12917 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_5_u:
12919 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12920 ; GFX940-NEXT: ;;#ASMSTART
12921 ; GFX940-NEXT: ; def s[0:3]
12922 ; GFX940-NEXT: ;;#ASMEND
12923 ; GFX940-NEXT: s_mov_b32 s8, s3
12924 ; GFX940-NEXT: s_mov_b32 s9, s3
12925 ; GFX940-NEXT: s_mov_b32 s10, s1
12926 ; GFX940-NEXT: ;;#ASMSTART
12927 ; GFX940-NEXT: ; use s[8:11]
12928 ; GFX940-NEXT: ;;#ASMEND
12929 ; GFX940-NEXT: s_setpc_b64 s[30:31]
12930 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
12931 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
12932 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 5, i32 poison>
12933 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
12937 define void @s_shuffle_v4p3_v4p3__7_7_6_u() {
12938 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__7_7_6_u:
12940 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12941 ; GFX9-NEXT: ;;#ASMSTART
12942 ; GFX9-NEXT: ; def s[8:11]
12943 ; GFX9-NEXT: ;;#ASMEND
12944 ; GFX9-NEXT: s_mov_b32 s8, s11
12945 ; GFX9-NEXT: s_mov_b32 s9, s11
12946 ; GFX9-NEXT: ;;#ASMSTART
12947 ; GFX9-NEXT: ; use s[8:11]
12948 ; GFX9-NEXT: ;;#ASMEND
12949 ; GFX9-NEXT: s_setpc_b64 s[30:31]
12950 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
12951 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
12952 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 6, i32 poison>
12953 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
12957 define void @s_shuffle_v4p3_v4p3__7_7_7_u() {
12958 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_7_u:
12960 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12961 ; GFX900-NEXT: ;;#ASMSTART
12962 ; GFX900-NEXT: ; def s[4:7]
12963 ; GFX900-NEXT: ;;#ASMEND
12964 ; GFX900-NEXT: s_mov_b32 s8, s7
12965 ; GFX900-NEXT: s_mov_b32 s9, s7
12966 ; GFX900-NEXT: s_mov_b32 s10, s7
12967 ; GFX900-NEXT: ;;#ASMSTART
12968 ; GFX900-NEXT: ; use s[8:11]
12969 ; GFX900-NEXT: ;;#ASMEND
12970 ; GFX900-NEXT: s_setpc_b64 s[30:31]
12972 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_7_u:
12974 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12975 ; GFX90A-NEXT: ;;#ASMSTART
12976 ; GFX90A-NEXT: ; def s[4:7]
12977 ; GFX90A-NEXT: ;;#ASMEND
12978 ; GFX90A-NEXT: s_mov_b32 s8, s7
12979 ; GFX90A-NEXT: s_mov_b32 s9, s7
12980 ; GFX90A-NEXT: s_mov_b32 s10, s7
12981 ; GFX90A-NEXT: ;;#ASMSTART
12982 ; GFX90A-NEXT: ; use s[8:11]
12983 ; GFX90A-NEXT: ;;#ASMEND
12984 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
12986 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_7_u:
12988 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12989 ; GFX940-NEXT: ;;#ASMSTART
12990 ; GFX940-NEXT: ; def s[0:3]
12991 ; GFX940-NEXT: ;;#ASMEND
12992 ; GFX940-NEXT: s_mov_b32 s8, s3
12993 ; GFX940-NEXT: s_mov_b32 s9, s3
12994 ; GFX940-NEXT: s_mov_b32 s10, s3
12995 ; GFX940-NEXT: ;;#ASMSTART
12996 ; GFX940-NEXT: ; use s[8:11]
12997 ; GFX940-NEXT: ;;#ASMEND
12998 ; GFX940-NEXT: s_setpc_b64 s[30:31]
12999 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
13000 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
13001 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 7, i32 poison>
13002 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
13006 define void @s_shuffle_v4p3_v4p3__7_7_7_0() {
13007 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_7_0:
13009 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13010 ; GFX900-NEXT: ;;#ASMSTART
13011 ; GFX900-NEXT: ; def s[8:11]
13012 ; GFX900-NEXT: ;;#ASMEND
13013 ; GFX900-NEXT: ;;#ASMSTART
13014 ; GFX900-NEXT: ; def s[4:7]
13015 ; GFX900-NEXT: ;;#ASMEND
13016 ; GFX900-NEXT: s_mov_b32 s8, s11
13017 ; GFX900-NEXT: s_mov_b32 s9, s11
13018 ; GFX900-NEXT: s_mov_b32 s10, s11
13019 ; GFX900-NEXT: s_mov_b32 s11, s4
13020 ; GFX900-NEXT: ;;#ASMSTART
13021 ; GFX900-NEXT: ; use s[8:11]
13022 ; GFX900-NEXT: ;;#ASMEND
13023 ; GFX900-NEXT: s_setpc_b64 s[30:31]
13025 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_7_0:
13027 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13028 ; GFX90A-NEXT: ;;#ASMSTART
13029 ; GFX90A-NEXT: ; def s[8:11]
13030 ; GFX90A-NEXT: ;;#ASMEND
13031 ; GFX90A-NEXT: ;;#ASMSTART
13032 ; GFX90A-NEXT: ; def s[4:7]
13033 ; GFX90A-NEXT: ;;#ASMEND
13034 ; GFX90A-NEXT: s_mov_b32 s8, s11
13035 ; GFX90A-NEXT: s_mov_b32 s9, s11
13036 ; GFX90A-NEXT: s_mov_b32 s10, s11
13037 ; GFX90A-NEXT: s_mov_b32 s11, s4
13038 ; GFX90A-NEXT: ;;#ASMSTART
13039 ; GFX90A-NEXT: ; use s[8:11]
13040 ; GFX90A-NEXT: ;;#ASMEND
13041 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
13043 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_7_0:
13045 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13046 ; GFX940-NEXT: ;;#ASMSTART
13047 ; GFX940-NEXT: ; def s[0:3]
13048 ; GFX940-NEXT: ;;#ASMEND
13049 ; GFX940-NEXT: ;;#ASMSTART
13050 ; GFX940-NEXT: ; def s[4:7]
13051 ; GFX940-NEXT: ;;#ASMEND
13052 ; GFX940-NEXT: s_mov_b32 s8, s7
13053 ; GFX940-NEXT: s_mov_b32 s9, s7
13054 ; GFX940-NEXT: s_mov_b32 s10, s7
13055 ; GFX940-NEXT: s_mov_b32 s11, s0
13056 ; GFX940-NEXT: ;;#ASMSTART
13057 ; GFX940-NEXT: ; use s[8:11]
13058 ; GFX940-NEXT: ;;#ASMEND
13059 ; GFX940-NEXT: s_setpc_b64 s[30:31]
13060 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
13061 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
13062 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 7, i32 0>
13063 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
13067 define void @s_shuffle_v4p3_v4p3__7_7_7_1() {
13068 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_7_1:
13070 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13071 ; GFX900-NEXT: ;;#ASMSTART
13072 ; GFX900-NEXT: ; def s[8:11]
13073 ; GFX900-NEXT: ;;#ASMEND
13074 ; GFX900-NEXT: ;;#ASMSTART
13075 ; GFX900-NEXT: ; def s[4:7]
13076 ; GFX900-NEXT: ;;#ASMEND
13077 ; GFX900-NEXT: s_mov_b32 s8, s11
13078 ; GFX900-NEXT: s_mov_b32 s9, s11
13079 ; GFX900-NEXT: s_mov_b32 s10, s11
13080 ; GFX900-NEXT: s_mov_b32 s11, s5
13081 ; GFX900-NEXT: ;;#ASMSTART
13082 ; GFX900-NEXT: ; use s[8:11]
13083 ; GFX900-NEXT: ;;#ASMEND
13084 ; GFX900-NEXT: s_setpc_b64 s[30:31]
13086 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_7_1:
13088 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13089 ; GFX90A-NEXT: ;;#ASMSTART
13090 ; GFX90A-NEXT: ; def s[8:11]
13091 ; GFX90A-NEXT: ;;#ASMEND
13092 ; GFX90A-NEXT: ;;#ASMSTART
13093 ; GFX90A-NEXT: ; def s[4:7]
13094 ; GFX90A-NEXT: ;;#ASMEND
13095 ; GFX90A-NEXT: s_mov_b32 s8, s11
13096 ; GFX90A-NEXT: s_mov_b32 s9, s11
13097 ; GFX90A-NEXT: s_mov_b32 s10, s11
13098 ; GFX90A-NEXT: s_mov_b32 s11, s5
13099 ; GFX90A-NEXT: ;;#ASMSTART
13100 ; GFX90A-NEXT: ; use s[8:11]
13101 ; GFX90A-NEXT: ;;#ASMEND
13102 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
13104 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_7_1:
13106 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13107 ; GFX940-NEXT: ;;#ASMSTART
13108 ; GFX940-NEXT: ; def s[0:3]
13109 ; GFX940-NEXT: ;;#ASMEND
13110 ; GFX940-NEXT: ;;#ASMSTART
13111 ; GFX940-NEXT: ; def s[4:7]
13112 ; GFX940-NEXT: ;;#ASMEND
13113 ; GFX940-NEXT: s_mov_b32 s8, s7
13114 ; GFX940-NEXT: s_mov_b32 s9, s7
13115 ; GFX940-NEXT: s_mov_b32 s10, s7
13116 ; GFX940-NEXT: s_mov_b32 s11, s1
13117 ; GFX940-NEXT: ;;#ASMSTART
13118 ; GFX940-NEXT: ; use s[8:11]
13119 ; GFX940-NEXT: ;;#ASMEND
13120 ; GFX940-NEXT: s_setpc_b64 s[30:31]
13121 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
13122 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
13123 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 7, i32 1>
13124 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
13128 define void @s_shuffle_v4p3_v4p3__7_7_7_2() {
13129 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_7_2:
13131 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13132 ; GFX900-NEXT: ;;#ASMSTART
13133 ; GFX900-NEXT: ; def s[8:11]
13134 ; GFX900-NEXT: ;;#ASMEND
13135 ; GFX900-NEXT: ;;#ASMSTART
13136 ; GFX900-NEXT: ; def s[4:7]
13137 ; GFX900-NEXT: ;;#ASMEND
13138 ; GFX900-NEXT: s_mov_b32 s8, s11
13139 ; GFX900-NEXT: s_mov_b32 s9, s11
13140 ; GFX900-NEXT: s_mov_b32 s10, s11
13141 ; GFX900-NEXT: s_mov_b32 s11, s6
13142 ; GFX900-NEXT: ;;#ASMSTART
13143 ; GFX900-NEXT: ; use s[8:11]
13144 ; GFX900-NEXT: ;;#ASMEND
13145 ; GFX900-NEXT: s_setpc_b64 s[30:31]
13147 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_7_2:
13149 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13150 ; GFX90A-NEXT: ;;#ASMSTART
13151 ; GFX90A-NEXT: ; def s[8:11]
13152 ; GFX90A-NEXT: ;;#ASMEND
13153 ; GFX90A-NEXT: ;;#ASMSTART
13154 ; GFX90A-NEXT: ; def s[4:7]
13155 ; GFX90A-NEXT: ;;#ASMEND
13156 ; GFX90A-NEXT: s_mov_b32 s8, s11
13157 ; GFX90A-NEXT: s_mov_b32 s9, s11
13158 ; GFX90A-NEXT: s_mov_b32 s10, s11
13159 ; GFX90A-NEXT: s_mov_b32 s11, s6
13160 ; GFX90A-NEXT: ;;#ASMSTART
13161 ; GFX90A-NEXT: ; use s[8:11]
13162 ; GFX90A-NEXT: ;;#ASMEND
13163 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
13165 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_7_2:
13167 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13168 ; GFX940-NEXT: ;;#ASMSTART
13169 ; GFX940-NEXT: ; def s[0:3]
13170 ; GFX940-NEXT: ;;#ASMEND
13171 ; GFX940-NEXT: ;;#ASMSTART
13172 ; GFX940-NEXT: ; def s[4:7]
13173 ; GFX940-NEXT: ;;#ASMEND
13174 ; GFX940-NEXT: s_mov_b32 s8, s7
13175 ; GFX940-NEXT: s_mov_b32 s9, s7
13176 ; GFX940-NEXT: s_mov_b32 s10, s7
13177 ; GFX940-NEXT: s_mov_b32 s11, s2
13178 ; GFX940-NEXT: ;;#ASMSTART
13179 ; GFX940-NEXT: ; use s[8:11]
13180 ; GFX940-NEXT: ;;#ASMEND
13181 ; GFX940-NEXT: s_setpc_b64 s[30:31]
13182 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
13183 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
13184 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 7, i32 2>
13185 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
13189 define void @s_shuffle_v4p3_v4p3__7_7_7_3() {
13190 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_7_3:
13192 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13193 ; GFX900-NEXT: ;;#ASMSTART
13194 ; GFX900-NEXT: ; def s[8:11]
13195 ; GFX900-NEXT: ;;#ASMEND
13196 ; GFX900-NEXT: ;;#ASMSTART
13197 ; GFX900-NEXT: ; def s[4:7]
13198 ; GFX900-NEXT: ;;#ASMEND
13199 ; GFX900-NEXT: s_mov_b32 s8, s7
13200 ; GFX900-NEXT: s_mov_b32 s9, s7
13201 ; GFX900-NEXT: s_mov_b32 s10, s7
13202 ; GFX900-NEXT: ;;#ASMSTART
13203 ; GFX900-NEXT: ; use s[8:11]
13204 ; GFX900-NEXT: ;;#ASMEND
13205 ; GFX900-NEXT: s_setpc_b64 s[30:31]
13207 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_7_3:
13209 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13210 ; GFX90A-NEXT: ;;#ASMSTART
13211 ; GFX90A-NEXT: ; def s[8:11]
13212 ; GFX90A-NEXT: ;;#ASMEND
13213 ; GFX90A-NEXT: ;;#ASMSTART
13214 ; GFX90A-NEXT: ; def s[4:7]
13215 ; GFX90A-NEXT: ;;#ASMEND
13216 ; GFX90A-NEXT: s_mov_b32 s8, s7
13217 ; GFX90A-NEXT: s_mov_b32 s9, s7
13218 ; GFX90A-NEXT: s_mov_b32 s10, s7
13219 ; GFX90A-NEXT: ;;#ASMSTART
13220 ; GFX90A-NEXT: ; use s[8:11]
13221 ; GFX90A-NEXT: ;;#ASMEND
13222 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
13224 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_7_3:
13226 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13227 ; GFX940-NEXT: ;;#ASMSTART
13228 ; GFX940-NEXT: ; def s[8:11]
13229 ; GFX940-NEXT: ;;#ASMEND
13230 ; GFX940-NEXT: ;;#ASMSTART
13231 ; GFX940-NEXT: ; def s[0:3]
13232 ; GFX940-NEXT: ;;#ASMEND
13233 ; GFX940-NEXT: s_mov_b32 s8, s3
13234 ; GFX940-NEXT: s_mov_b32 s9, s3
13235 ; GFX940-NEXT: s_mov_b32 s10, s3
13236 ; GFX940-NEXT: ;;#ASMSTART
13237 ; GFX940-NEXT: ; use s[8:11]
13238 ; GFX940-NEXT: ;;#ASMEND
13239 ; GFX940-NEXT: s_setpc_b64 s[30:31]
13240 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
13241 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
13242 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 7, i32 3>
13243 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
13247 define void @s_shuffle_v4p3_v4p3__7_7_7_4() {
13248 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_7_4:
13250 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13251 ; GFX900-NEXT: ;;#ASMSTART
13252 ; GFX900-NEXT: ; def s[4:7]
13253 ; GFX900-NEXT: ;;#ASMEND
13254 ; GFX900-NEXT: s_mov_b32 s8, s7
13255 ; GFX900-NEXT: s_mov_b32 s9, s7
13256 ; GFX900-NEXT: s_mov_b32 s10, s7
13257 ; GFX900-NEXT: s_mov_b32 s11, s4
13258 ; GFX900-NEXT: ;;#ASMSTART
13259 ; GFX900-NEXT: ; use s[8:11]
13260 ; GFX900-NEXT: ;;#ASMEND
13261 ; GFX900-NEXT: s_setpc_b64 s[30:31]
13263 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_7_4:
13265 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13266 ; GFX90A-NEXT: ;;#ASMSTART
13267 ; GFX90A-NEXT: ; def s[4:7]
13268 ; GFX90A-NEXT: ;;#ASMEND
13269 ; GFX90A-NEXT: s_mov_b32 s8, s7
13270 ; GFX90A-NEXT: s_mov_b32 s9, s7
13271 ; GFX90A-NEXT: s_mov_b32 s10, s7
13272 ; GFX90A-NEXT: s_mov_b32 s11, s4
13273 ; GFX90A-NEXT: ;;#ASMSTART
13274 ; GFX90A-NEXT: ; use s[8:11]
13275 ; GFX90A-NEXT: ;;#ASMEND
13276 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
13278 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_7_4:
13280 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13281 ; GFX940-NEXT: ;;#ASMSTART
13282 ; GFX940-NEXT: ; def s[0:3]
13283 ; GFX940-NEXT: ;;#ASMEND
13284 ; GFX940-NEXT: s_mov_b32 s8, s3
13285 ; GFX940-NEXT: s_mov_b32 s9, s3
13286 ; GFX940-NEXT: s_mov_b32 s10, s3
13287 ; GFX940-NEXT: s_mov_b32 s11, s0
13288 ; GFX940-NEXT: ;;#ASMSTART
13289 ; GFX940-NEXT: ; use s[8:11]
13290 ; GFX940-NEXT: ;;#ASMEND
13291 ; GFX940-NEXT: s_setpc_b64 s[30:31]
13292 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
13293 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
13294 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 7, i32 4>
13295 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
13299 define void @s_shuffle_v4p3_v4p3__7_7_7_5() {
13300 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_7_5:
13302 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13303 ; GFX900-NEXT: ;;#ASMSTART
13304 ; GFX900-NEXT: ; def s[4:7]
13305 ; GFX900-NEXT: ;;#ASMEND
13306 ; GFX900-NEXT: s_mov_b32 s8, s7
13307 ; GFX900-NEXT: s_mov_b32 s9, s7
13308 ; GFX900-NEXT: s_mov_b32 s10, s7
13309 ; GFX900-NEXT: s_mov_b32 s11, s5
13310 ; GFX900-NEXT: ;;#ASMSTART
13311 ; GFX900-NEXT: ; use s[8:11]
13312 ; GFX900-NEXT: ;;#ASMEND
13313 ; GFX900-NEXT: s_setpc_b64 s[30:31]
13315 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_7_5:
13317 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13318 ; GFX90A-NEXT: ;;#ASMSTART
13319 ; GFX90A-NEXT: ; def s[4:7]
13320 ; GFX90A-NEXT: ;;#ASMEND
13321 ; GFX90A-NEXT: s_mov_b32 s8, s7
13322 ; GFX90A-NEXT: s_mov_b32 s9, s7
13323 ; GFX90A-NEXT: s_mov_b32 s10, s7
13324 ; GFX90A-NEXT: s_mov_b32 s11, s5
13325 ; GFX90A-NEXT: ;;#ASMSTART
13326 ; GFX90A-NEXT: ; use s[8:11]
13327 ; GFX90A-NEXT: ;;#ASMEND
13328 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
13330 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_7_5:
13332 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13333 ; GFX940-NEXT: ;;#ASMSTART
13334 ; GFX940-NEXT: ; def s[0:3]
13335 ; GFX940-NEXT: ;;#ASMEND
13336 ; GFX940-NEXT: s_mov_b32 s8, s3
13337 ; GFX940-NEXT: s_mov_b32 s9, s3
13338 ; GFX940-NEXT: s_mov_b32 s10, s3
13339 ; GFX940-NEXT: s_mov_b32 s11, s1
13340 ; GFX940-NEXT: ;;#ASMSTART
13341 ; GFX940-NEXT: ; use s[8:11]
13342 ; GFX940-NEXT: ;;#ASMEND
13343 ; GFX940-NEXT: s_setpc_b64 s[30:31]
13344 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
13345 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
13346 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 7, i32 5>
13347 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
13351 define void @s_shuffle_v4p3_v4p3__7_7_7_6() {
13352 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_7_6:
13354 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13355 ; GFX900-NEXT: ;;#ASMSTART
13356 ; GFX900-NEXT: ; def s[4:7]
13357 ; GFX900-NEXT: ;;#ASMEND
13358 ; GFX900-NEXT: s_mov_b32 s8, s7
13359 ; GFX900-NEXT: s_mov_b32 s9, s7
13360 ; GFX900-NEXT: s_mov_b32 s10, s7
13361 ; GFX900-NEXT: s_mov_b32 s11, s6
13362 ; GFX900-NEXT: ;;#ASMSTART
13363 ; GFX900-NEXT: ; use s[8:11]
13364 ; GFX900-NEXT: ;;#ASMEND
13365 ; GFX900-NEXT: s_setpc_b64 s[30:31]
13367 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_7_6:
13369 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13370 ; GFX90A-NEXT: ;;#ASMSTART
13371 ; GFX90A-NEXT: ; def s[4:7]
13372 ; GFX90A-NEXT: ;;#ASMEND
13373 ; GFX90A-NEXT: s_mov_b32 s8, s7
13374 ; GFX90A-NEXT: s_mov_b32 s9, s7
13375 ; GFX90A-NEXT: s_mov_b32 s10, s7
13376 ; GFX90A-NEXT: s_mov_b32 s11, s6
13377 ; GFX90A-NEXT: ;;#ASMSTART
13378 ; GFX90A-NEXT: ; use s[8:11]
13379 ; GFX90A-NEXT: ;;#ASMEND
13380 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
13382 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_7_6:
13384 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13385 ; GFX940-NEXT: ;;#ASMSTART
13386 ; GFX940-NEXT: ; def s[0:3]
13387 ; GFX940-NEXT: ;;#ASMEND
13388 ; GFX940-NEXT: s_mov_b32 s8, s3
13389 ; GFX940-NEXT: s_mov_b32 s9, s3
13390 ; GFX940-NEXT: s_mov_b32 s10, s3
13391 ; GFX940-NEXT: s_mov_b32 s11, s2
13392 ; GFX940-NEXT: ;;#ASMSTART
13393 ; GFX940-NEXT: ; use s[8:11]
13394 ; GFX940-NEXT: ;;#ASMEND
13395 ; GFX940-NEXT: s_setpc_b64 s[30:31]
13396 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
13397 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
13398 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 7, i32 6>
13399 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
13403 define void @s_shuffle_v4p3_v4p3__7_7_7_7() {
13404 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__7_7_7_7:
13406 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13407 ; GFX9-NEXT: ;;#ASMSTART
13408 ; GFX9-NEXT: ; def s[8:11]
13409 ; GFX9-NEXT: ;;#ASMEND
13410 ; GFX9-NEXT: s_mov_b32 s8, s11
13411 ; GFX9-NEXT: s_mov_b32 s9, s11
13412 ; GFX9-NEXT: s_mov_b32 s10, s11
13413 ; GFX9-NEXT: ;;#ASMSTART
13414 ; GFX9-NEXT: ; use s[8:11]
13415 ; GFX9-NEXT: ;;#ASMEND
13416 ; GFX9-NEXT: s_setpc_b64 s[30:31]
13417 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
13418 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
13419 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 7, i32 7>
13420 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
13424 define void @s_shuffle_v4p3_v4p3__u_0_0_0() {
13425 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__u_0_0_0:
13427 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13428 ; GFX900-NEXT: ;;#ASMSTART
13429 ; GFX900-NEXT: ; def s[4:7]
13430 ; GFX900-NEXT: ;;#ASMEND
13431 ; GFX900-NEXT: s_mov_b32 s9, s4
13432 ; GFX900-NEXT: s_mov_b32 s10, s4
13433 ; GFX900-NEXT: s_mov_b32 s11, s4
13434 ; GFX900-NEXT: ;;#ASMSTART
13435 ; GFX900-NEXT: ; use s[8:11]
13436 ; GFX900-NEXT: ;;#ASMEND
13437 ; GFX900-NEXT: s_setpc_b64 s[30:31]
13439 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__u_0_0_0:
13441 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13442 ; GFX90A-NEXT: ;;#ASMSTART
13443 ; GFX90A-NEXT: ; def s[4:7]
13444 ; GFX90A-NEXT: ;;#ASMEND
13445 ; GFX90A-NEXT: s_mov_b32 s9, s4
13446 ; GFX90A-NEXT: s_mov_b32 s10, s4
13447 ; GFX90A-NEXT: s_mov_b32 s11, s4
13448 ; GFX90A-NEXT: ;;#ASMSTART
13449 ; GFX90A-NEXT: ; use s[8:11]
13450 ; GFX90A-NEXT: ;;#ASMEND
13451 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
13453 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__u_0_0_0:
13455 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13456 ; GFX940-NEXT: ;;#ASMSTART
13457 ; GFX940-NEXT: ; def s[0:3]
13458 ; GFX940-NEXT: ;;#ASMEND
13459 ; GFX940-NEXT: s_mov_b32 s9, s0
13460 ; GFX940-NEXT: s_mov_b32 s10, s0
13461 ; GFX940-NEXT: s_mov_b32 s11, s0
13462 ; GFX940-NEXT: ;;#ASMSTART
13463 ; GFX940-NEXT: ; use s[8:11]
13464 ; GFX940-NEXT: ;;#ASMEND
13465 ; GFX940-NEXT: s_setpc_b64 s[30:31]
13466 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
13467 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 poison, i32 0, i32 0, i32 0>
13468 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
13472 define void @s_shuffle_v4p3_v4p3__0_0_0_0() {
13473 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__0_0_0_0:
13475 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13476 ; GFX9-NEXT: ;;#ASMSTART
13477 ; GFX9-NEXT: ; def s[8:11]
13478 ; GFX9-NEXT: ;;#ASMEND
13479 ; GFX9-NEXT: s_mov_b32 s9, s8
13480 ; GFX9-NEXT: s_mov_b32 s10, s8
13481 ; GFX9-NEXT: s_mov_b32 s11, s8
13482 ; GFX9-NEXT: ;;#ASMSTART
13483 ; GFX9-NEXT: ; use s[8:11]
13484 ; GFX9-NEXT: ;;#ASMEND
13485 ; GFX9-NEXT: s_setpc_b64 s[30:31]
13486 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
13487 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> zeroinitializer
13488 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
13492 define void @s_shuffle_v4p3_v4p3__1_0_0_0() {
13493 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__1_0_0_0:
13495 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13496 ; GFX900-NEXT: ;;#ASMSTART
13497 ; GFX900-NEXT: ; def s[4:7]
13498 ; GFX900-NEXT: ;;#ASMEND
13499 ; GFX900-NEXT: s_mov_b32 s8, s5
13500 ; GFX900-NEXT: s_mov_b32 s9, s4
13501 ; GFX900-NEXT: s_mov_b32 s10, s4
13502 ; GFX900-NEXT: s_mov_b32 s11, s4
13503 ; GFX900-NEXT: ;;#ASMSTART
13504 ; GFX900-NEXT: ; use s[8:11]
13505 ; GFX900-NEXT: ;;#ASMEND
13506 ; GFX900-NEXT: s_setpc_b64 s[30:31]
13508 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__1_0_0_0:
13510 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13511 ; GFX90A-NEXT: ;;#ASMSTART
13512 ; GFX90A-NEXT: ; def s[4:7]
13513 ; GFX90A-NEXT: ;;#ASMEND
13514 ; GFX90A-NEXT: s_mov_b32 s8, s5
13515 ; GFX90A-NEXT: s_mov_b32 s9, s4
13516 ; GFX90A-NEXT: s_mov_b32 s10, s4
13517 ; GFX90A-NEXT: s_mov_b32 s11, s4
13518 ; GFX90A-NEXT: ;;#ASMSTART
13519 ; GFX90A-NEXT: ; use s[8:11]
13520 ; GFX90A-NEXT: ;;#ASMEND
13521 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
13523 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__1_0_0_0:
13525 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13526 ; GFX940-NEXT: ;;#ASMSTART
13527 ; GFX940-NEXT: ; def s[0:3]
13528 ; GFX940-NEXT: ;;#ASMEND
13529 ; GFX940-NEXT: s_mov_b32 s8, s1
13530 ; GFX940-NEXT: s_mov_b32 s9, s0
13531 ; GFX940-NEXT: s_mov_b32 s10, s0
13532 ; GFX940-NEXT: s_mov_b32 s11, s0
13533 ; GFX940-NEXT: ;;#ASMSTART
13534 ; GFX940-NEXT: ; use s[8:11]
13535 ; GFX940-NEXT: ;;#ASMEND
13536 ; GFX940-NEXT: s_setpc_b64 s[30:31]
13537 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
13538 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 1, i32 0, i32 0, i32 0>
13539 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
13543 define void @s_shuffle_v4p3_v4p3__2_0_0_0() {
13544 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__2_0_0_0:
13546 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13547 ; GFX900-NEXT: ;;#ASMSTART
13548 ; GFX900-NEXT: ; def s[4:7]
13549 ; GFX900-NEXT: ;;#ASMEND
13550 ; GFX900-NEXT: s_mov_b32 s8, s6
13551 ; GFX900-NEXT: s_mov_b32 s9, s4
13552 ; GFX900-NEXT: s_mov_b32 s10, s4
13553 ; GFX900-NEXT: s_mov_b32 s11, s4
13554 ; GFX900-NEXT: ;;#ASMSTART
13555 ; GFX900-NEXT: ; use s[8:11]
13556 ; GFX900-NEXT: ;;#ASMEND
13557 ; GFX900-NEXT: s_setpc_b64 s[30:31]
13559 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__2_0_0_0:
13561 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13562 ; GFX90A-NEXT: ;;#ASMSTART
13563 ; GFX90A-NEXT: ; def s[4:7]
13564 ; GFX90A-NEXT: ;;#ASMEND
13565 ; GFX90A-NEXT: s_mov_b32 s8, s6
13566 ; GFX90A-NEXT: s_mov_b32 s9, s4
13567 ; GFX90A-NEXT: s_mov_b32 s10, s4
13568 ; GFX90A-NEXT: s_mov_b32 s11, s4
13569 ; GFX90A-NEXT: ;;#ASMSTART
13570 ; GFX90A-NEXT: ; use s[8:11]
13571 ; GFX90A-NEXT: ;;#ASMEND
13572 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
13574 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__2_0_0_0:
13576 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13577 ; GFX940-NEXT: ;;#ASMSTART
13578 ; GFX940-NEXT: ; def s[0:3]
13579 ; GFX940-NEXT: ;;#ASMEND
13580 ; GFX940-NEXT: s_mov_b32 s8, s2
13581 ; GFX940-NEXT: s_mov_b32 s9, s0
13582 ; GFX940-NEXT: s_mov_b32 s10, s0
13583 ; GFX940-NEXT: s_mov_b32 s11, s0
13584 ; GFX940-NEXT: ;;#ASMSTART
13585 ; GFX940-NEXT: ; use s[8:11]
13586 ; GFX940-NEXT: ;;#ASMEND
13587 ; GFX940-NEXT: s_setpc_b64 s[30:31]
13588 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
13589 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 2, i32 0, i32 0, i32 0>
13590 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
13594 define void @s_shuffle_v4p3_v4p3__3_0_0_0() {
13595 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__3_0_0_0:
13597 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13598 ; GFX900-NEXT: ;;#ASMSTART
13599 ; GFX900-NEXT: ; def s[4:7]
13600 ; GFX900-NEXT: ;;#ASMEND
13601 ; GFX900-NEXT: s_mov_b32 s8, s7
13602 ; GFX900-NEXT: s_mov_b32 s9, s4
13603 ; GFX900-NEXT: s_mov_b32 s10, s4
13604 ; GFX900-NEXT: s_mov_b32 s11, s4
13605 ; GFX900-NEXT: ;;#ASMSTART
13606 ; GFX900-NEXT: ; use s[8:11]
13607 ; GFX900-NEXT: ;;#ASMEND
13608 ; GFX900-NEXT: s_setpc_b64 s[30:31]
13610 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__3_0_0_0:
13612 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13613 ; GFX90A-NEXT: ;;#ASMSTART
13614 ; GFX90A-NEXT: ; def s[4:7]
13615 ; GFX90A-NEXT: ;;#ASMEND
13616 ; GFX90A-NEXT: s_mov_b32 s8, s7
13617 ; GFX90A-NEXT: s_mov_b32 s9, s4
13618 ; GFX90A-NEXT: s_mov_b32 s10, s4
13619 ; GFX90A-NEXT: s_mov_b32 s11, s4
13620 ; GFX90A-NEXT: ;;#ASMSTART
13621 ; GFX90A-NEXT: ; use s[8:11]
13622 ; GFX90A-NEXT: ;;#ASMEND
13623 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
13625 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__3_0_0_0:
13627 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13628 ; GFX940-NEXT: ;;#ASMSTART
13629 ; GFX940-NEXT: ; def s[0:3]
13630 ; GFX940-NEXT: ;;#ASMEND
13631 ; GFX940-NEXT: s_mov_b32 s8, s3
13632 ; GFX940-NEXT: s_mov_b32 s9, s0
13633 ; GFX940-NEXT: s_mov_b32 s10, s0
13634 ; GFX940-NEXT: s_mov_b32 s11, s0
13635 ; GFX940-NEXT: ;;#ASMSTART
13636 ; GFX940-NEXT: ; use s[8:11]
13637 ; GFX940-NEXT: ;;#ASMEND
13638 ; GFX940-NEXT: s_setpc_b64 s[30:31]
13639 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
13640 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 3, i32 0, i32 0, i32 0>
13641 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
13645 define void @s_shuffle_v4p3_v4p3__4_0_0_0() {
13646 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__4_0_0_0:
13648 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13649 ; GFX900-NEXT: ;;#ASMSTART
13650 ; GFX900-NEXT: ; def s[4:7]
13651 ; GFX900-NEXT: ;;#ASMEND
13652 ; GFX900-NEXT: s_mov_b32 s9, s4
13653 ; GFX900-NEXT: s_mov_b32 s10, s4
13654 ; GFX900-NEXT: s_mov_b32 s11, s4
13655 ; GFX900-NEXT: ;;#ASMSTART
13656 ; GFX900-NEXT: ; use s[8:11]
13657 ; GFX900-NEXT: ;;#ASMEND
13658 ; GFX900-NEXT: s_setpc_b64 s[30:31]
13660 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__4_0_0_0:
13662 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13663 ; GFX90A-NEXT: ;;#ASMSTART
13664 ; GFX90A-NEXT: ; def s[4:7]
13665 ; GFX90A-NEXT: ;;#ASMEND
13666 ; GFX90A-NEXT: s_mov_b32 s9, s4
13667 ; GFX90A-NEXT: s_mov_b32 s10, s4
13668 ; GFX90A-NEXT: s_mov_b32 s11, s4
13669 ; GFX90A-NEXT: ;;#ASMSTART
13670 ; GFX90A-NEXT: ; use s[8:11]
13671 ; GFX90A-NEXT: ;;#ASMEND
13672 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
13674 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__4_0_0_0:
13676 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13677 ; GFX940-NEXT: ;;#ASMSTART
13678 ; GFX940-NEXT: ; def s[0:3]
13679 ; GFX940-NEXT: ;;#ASMEND
13680 ; GFX940-NEXT: s_mov_b32 s9, s0
13681 ; GFX940-NEXT: s_mov_b32 s10, s0
13682 ; GFX940-NEXT: s_mov_b32 s11, s0
13683 ; GFX940-NEXT: ;;#ASMSTART
13684 ; GFX940-NEXT: ; use s[8:11]
13685 ; GFX940-NEXT: ;;#ASMEND
13686 ; GFX940-NEXT: s_setpc_b64 s[30:31]
13687 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
13688 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 4, i32 0, i32 0, i32 0>
13689 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
13693 define void @s_shuffle_v4p3_v4p3__5_0_0_0() {
13694 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__5_0_0_0:
13696 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13697 ; GFX900-NEXT: ;;#ASMSTART
13698 ; GFX900-NEXT: ; def s[8:11]
13699 ; GFX900-NEXT: ;;#ASMEND
13700 ; GFX900-NEXT: ;;#ASMSTART
13701 ; GFX900-NEXT: ; def s[4:7]
13702 ; GFX900-NEXT: ;;#ASMEND
13703 ; GFX900-NEXT: s_mov_b32 s8, s9
13704 ; GFX900-NEXT: s_mov_b32 s9, s4
13705 ; GFX900-NEXT: s_mov_b32 s10, s4
13706 ; GFX900-NEXT: s_mov_b32 s11, s4
13707 ; GFX900-NEXT: ;;#ASMSTART
13708 ; GFX900-NEXT: ; use s[8:11]
13709 ; GFX900-NEXT: ;;#ASMEND
13710 ; GFX900-NEXT: s_setpc_b64 s[30:31]
13712 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__5_0_0_0:
13714 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13715 ; GFX90A-NEXT: ;;#ASMSTART
13716 ; GFX90A-NEXT: ; def s[8:11]
13717 ; GFX90A-NEXT: ;;#ASMEND
13718 ; GFX90A-NEXT: ;;#ASMSTART
13719 ; GFX90A-NEXT: ; def s[4:7]
13720 ; GFX90A-NEXT: ;;#ASMEND
13721 ; GFX90A-NEXT: s_mov_b32 s8, s9
13722 ; GFX90A-NEXT: s_mov_b32 s9, s4
13723 ; GFX90A-NEXT: s_mov_b32 s10, s4
13724 ; GFX90A-NEXT: s_mov_b32 s11, s4
13725 ; GFX90A-NEXT: ;;#ASMSTART
13726 ; GFX90A-NEXT: ; use s[8:11]
13727 ; GFX90A-NEXT: ;;#ASMEND
13728 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
13730 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__5_0_0_0:
13732 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13733 ; GFX940-NEXT: ;;#ASMSTART
13734 ; GFX940-NEXT: ; def s[0:3]
13735 ; GFX940-NEXT: ;;#ASMEND
13736 ; GFX940-NEXT: ;;#ASMSTART
13737 ; GFX940-NEXT: ; def s[4:7]
13738 ; GFX940-NEXT: ;;#ASMEND
13739 ; GFX940-NEXT: s_mov_b32 s8, s5
13740 ; GFX940-NEXT: s_mov_b32 s9, s0
13741 ; GFX940-NEXT: s_mov_b32 s10, s0
13742 ; GFX940-NEXT: s_mov_b32 s11, s0
13743 ; GFX940-NEXT: ;;#ASMSTART
13744 ; GFX940-NEXT: ; use s[8:11]
13745 ; GFX940-NEXT: ;;#ASMEND
13746 ; GFX940-NEXT: s_setpc_b64 s[30:31]
13747 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
13748 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
13749 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 5, i32 0, i32 0, i32 0>
13750 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
13754 define void @s_shuffle_v4p3_v4p3__6_0_0_0() {
13755 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__6_0_0_0:
13757 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13758 ; GFX900-NEXT: ;;#ASMSTART
13759 ; GFX900-NEXT: ; def s[8:11]
13760 ; GFX900-NEXT: ;;#ASMEND
13761 ; GFX900-NEXT: ;;#ASMSTART
13762 ; GFX900-NEXT: ; def s[4:7]
13763 ; GFX900-NEXT: ;;#ASMEND
13764 ; GFX900-NEXT: s_mov_b32 s8, s10
13765 ; GFX900-NEXT: s_mov_b32 s9, s4
13766 ; GFX900-NEXT: s_mov_b32 s10, s4
13767 ; GFX900-NEXT: s_mov_b32 s11, s4
13768 ; GFX900-NEXT: ;;#ASMSTART
13769 ; GFX900-NEXT: ; use s[8:11]
13770 ; GFX900-NEXT: ;;#ASMEND
13771 ; GFX900-NEXT: s_setpc_b64 s[30:31]
13773 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__6_0_0_0:
13775 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13776 ; GFX90A-NEXT: ;;#ASMSTART
13777 ; GFX90A-NEXT: ; def s[8:11]
13778 ; GFX90A-NEXT: ;;#ASMEND
13779 ; GFX90A-NEXT: ;;#ASMSTART
13780 ; GFX90A-NEXT: ; def s[4:7]
13781 ; GFX90A-NEXT: ;;#ASMEND
13782 ; GFX90A-NEXT: s_mov_b32 s8, s10
13783 ; GFX90A-NEXT: s_mov_b32 s9, s4
13784 ; GFX90A-NEXT: s_mov_b32 s10, s4
13785 ; GFX90A-NEXT: s_mov_b32 s11, s4
13786 ; GFX90A-NEXT: ;;#ASMSTART
13787 ; GFX90A-NEXT: ; use s[8:11]
13788 ; GFX90A-NEXT: ;;#ASMEND
13789 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
13791 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__6_0_0_0:
13793 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13794 ; GFX940-NEXT: ;;#ASMSTART
13795 ; GFX940-NEXT: ; def s[0:3]
13796 ; GFX940-NEXT: ;;#ASMEND
13797 ; GFX940-NEXT: ;;#ASMSTART
13798 ; GFX940-NEXT: ; def s[4:7]
13799 ; GFX940-NEXT: ;;#ASMEND
13800 ; GFX940-NEXT: s_mov_b32 s8, s6
13801 ; GFX940-NEXT: s_mov_b32 s9, s0
13802 ; GFX940-NEXT: s_mov_b32 s10, s0
13803 ; GFX940-NEXT: s_mov_b32 s11, s0
13804 ; GFX940-NEXT: ;;#ASMSTART
13805 ; GFX940-NEXT: ; use s[8:11]
13806 ; GFX940-NEXT: ;;#ASMEND
13807 ; GFX940-NEXT: s_setpc_b64 s[30:31]
13808 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
13809 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
13810 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 6, i32 0, i32 0, i32 0>
13811 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
13815 define void @s_shuffle_v4p3_v4p3__7_0_0_0() {
13816 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_0_0_0:
13818 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13819 ; GFX900-NEXT: ;;#ASMSTART
13820 ; GFX900-NEXT: ; def s[8:11]
13821 ; GFX900-NEXT: ;;#ASMEND
13822 ; GFX900-NEXT: ;;#ASMSTART
13823 ; GFX900-NEXT: ; def s[4:7]
13824 ; GFX900-NEXT: ;;#ASMEND
13825 ; GFX900-NEXT: s_mov_b32 s8, s11
13826 ; GFX900-NEXT: s_mov_b32 s9, s4
13827 ; GFX900-NEXT: s_mov_b32 s10, s4
13828 ; GFX900-NEXT: s_mov_b32 s11, s4
13829 ; GFX900-NEXT: ;;#ASMSTART
13830 ; GFX900-NEXT: ; use s[8:11]
13831 ; GFX900-NEXT: ;;#ASMEND
13832 ; GFX900-NEXT: s_setpc_b64 s[30:31]
13834 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_0_0_0:
13836 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13837 ; GFX90A-NEXT: ;;#ASMSTART
13838 ; GFX90A-NEXT: ; def s[8:11]
13839 ; GFX90A-NEXT: ;;#ASMEND
13840 ; GFX90A-NEXT: ;;#ASMSTART
13841 ; GFX90A-NEXT: ; def s[4:7]
13842 ; GFX90A-NEXT: ;;#ASMEND
13843 ; GFX90A-NEXT: s_mov_b32 s8, s11
13844 ; GFX90A-NEXT: s_mov_b32 s9, s4
13845 ; GFX90A-NEXT: s_mov_b32 s10, s4
13846 ; GFX90A-NEXT: s_mov_b32 s11, s4
13847 ; GFX90A-NEXT: ;;#ASMSTART
13848 ; GFX90A-NEXT: ; use s[8:11]
13849 ; GFX90A-NEXT: ;;#ASMEND
13850 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
13852 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_0_0_0:
13854 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13855 ; GFX940-NEXT: ;;#ASMSTART
13856 ; GFX940-NEXT: ; def s[0:3]
13857 ; GFX940-NEXT: ;;#ASMEND
13858 ; GFX940-NEXT: ;;#ASMSTART
13859 ; GFX940-NEXT: ; def s[4:7]
13860 ; GFX940-NEXT: ;;#ASMEND
13861 ; GFX940-NEXT: s_mov_b32 s8, s7
13862 ; GFX940-NEXT: s_mov_b32 s9, s0
13863 ; GFX940-NEXT: s_mov_b32 s10, s0
13864 ; GFX940-NEXT: s_mov_b32 s11, s0
13865 ; GFX940-NEXT: ;;#ASMSTART
13866 ; GFX940-NEXT: ; use s[8:11]
13867 ; GFX940-NEXT: ;;#ASMEND
13868 ; GFX940-NEXT: s_setpc_b64 s[30:31]
13869 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
13870 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
13871 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 0, i32 0, i32 0>
13872 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
13876 define void @s_shuffle_v4p3_v4p3__7_u_0_0() {
13877 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_u_0_0:
13879 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13880 ; GFX900-NEXT: ;;#ASMSTART
13881 ; GFX900-NEXT: ; def s[8:11]
13882 ; GFX900-NEXT: ;;#ASMEND
13883 ; GFX900-NEXT: ;;#ASMSTART
13884 ; GFX900-NEXT: ; def s[4:7]
13885 ; GFX900-NEXT: ;;#ASMEND
13886 ; GFX900-NEXT: s_mov_b32 s8, s11
13887 ; GFX900-NEXT: s_mov_b32 s10, s4
13888 ; GFX900-NEXT: s_mov_b32 s11, s4
13889 ; GFX900-NEXT: ;;#ASMSTART
13890 ; GFX900-NEXT: ; use s[8:11]
13891 ; GFX900-NEXT: ;;#ASMEND
13892 ; GFX900-NEXT: s_setpc_b64 s[30:31]
13894 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_u_0_0:
13896 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13897 ; GFX90A-NEXT: ;;#ASMSTART
13898 ; GFX90A-NEXT: ; def s[8:11]
13899 ; GFX90A-NEXT: ;;#ASMEND
13900 ; GFX90A-NEXT: ;;#ASMSTART
13901 ; GFX90A-NEXT: ; def s[4:7]
13902 ; GFX90A-NEXT: ;;#ASMEND
13903 ; GFX90A-NEXT: s_mov_b32 s8, s11
13904 ; GFX90A-NEXT: s_mov_b32 s10, s4
13905 ; GFX90A-NEXT: s_mov_b32 s11, s4
13906 ; GFX90A-NEXT: ;;#ASMSTART
13907 ; GFX90A-NEXT: ; use s[8:11]
13908 ; GFX90A-NEXT: ;;#ASMEND
13909 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
13911 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_u_0_0:
13913 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13914 ; GFX940-NEXT: ;;#ASMSTART
13915 ; GFX940-NEXT: ; def s[0:3]
13916 ; GFX940-NEXT: ;;#ASMEND
13917 ; GFX940-NEXT: ;;#ASMSTART
13918 ; GFX940-NEXT: ; def s[4:7]
13919 ; GFX940-NEXT: ;;#ASMEND
13920 ; GFX940-NEXT: s_mov_b32 s8, s7
13921 ; GFX940-NEXT: s_mov_b32 s10, s0
13922 ; GFX940-NEXT: s_mov_b32 s11, s0
13923 ; GFX940-NEXT: ;;#ASMSTART
13924 ; GFX940-NEXT: ; use s[8:11]
13925 ; GFX940-NEXT: ;;#ASMEND
13926 ; GFX940-NEXT: s_setpc_b64 s[30:31]
13927 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
13928 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
13929 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 poison, i32 0, i32 0>
13930 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
13934 define void @s_shuffle_v4p3_v4p3__7_1_0_0() {
13935 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_1_0_0:
13937 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13938 ; GFX900-NEXT: ;;#ASMSTART
13939 ; GFX900-NEXT: ; def s[8:11]
13940 ; GFX900-NEXT: ;;#ASMEND
13941 ; GFX900-NEXT: ;;#ASMSTART
13942 ; GFX900-NEXT: ; def s[4:7]
13943 ; GFX900-NEXT: ;;#ASMEND
13944 ; GFX900-NEXT: s_mov_b32 s8, s11
13945 ; GFX900-NEXT: s_mov_b32 s9, s5
13946 ; GFX900-NEXT: s_mov_b32 s10, s4
13947 ; GFX900-NEXT: s_mov_b32 s11, s4
13948 ; GFX900-NEXT: ;;#ASMSTART
13949 ; GFX900-NEXT: ; use s[8:11]
13950 ; GFX900-NEXT: ;;#ASMEND
13951 ; GFX900-NEXT: s_setpc_b64 s[30:31]
13953 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_1_0_0:
13955 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13956 ; GFX90A-NEXT: ;;#ASMSTART
13957 ; GFX90A-NEXT: ; def s[8:11]
13958 ; GFX90A-NEXT: ;;#ASMEND
13959 ; GFX90A-NEXT: ;;#ASMSTART
13960 ; GFX90A-NEXT: ; def s[4:7]
13961 ; GFX90A-NEXT: ;;#ASMEND
13962 ; GFX90A-NEXT: s_mov_b32 s8, s11
13963 ; GFX90A-NEXT: s_mov_b32 s9, s5
13964 ; GFX90A-NEXT: s_mov_b32 s10, s4
13965 ; GFX90A-NEXT: s_mov_b32 s11, s4
13966 ; GFX90A-NEXT: ;;#ASMSTART
13967 ; GFX90A-NEXT: ; use s[8:11]
13968 ; GFX90A-NEXT: ;;#ASMEND
13969 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
13971 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_1_0_0:
13973 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13974 ; GFX940-NEXT: ;;#ASMSTART
13975 ; GFX940-NEXT: ; def s[0:3]
13976 ; GFX940-NEXT: ;;#ASMEND
13977 ; GFX940-NEXT: ;;#ASMSTART
13978 ; GFX940-NEXT: ; def s[4:7]
13979 ; GFX940-NEXT: ;;#ASMEND
13980 ; GFX940-NEXT: s_mov_b32 s8, s7
13981 ; GFX940-NEXT: s_mov_b32 s9, s1
13982 ; GFX940-NEXT: s_mov_b32 s10, s0
13983 ; GFX940-NEXT: s_mov_b32 s11, s0
13984 ; GFX940-NEXT: ;;#ASMSTART
13985 ; GFX940-NEXT: ; use s[8:11]
13986 ; GFX940-NEXT: ;;#ASMEND
13987 ; GFX940-NEXT: s_setpc_b64 s[30:31]
13988 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
13989 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
13990 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 1, i32 0, i32 0>
13991 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
13995 define void @s_shuffle_v4p3_v4p3__7_2_0_0() {
13996 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_2_0_0:
13998 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13999 ; GFX900-NEXT: ;;#ASMSTART
14000 ; GFX900-NEXT: ; def s[8:11]
14001 ; GFX900-NEXT: ;;#ASMEND
14002 ; GFX900-NEXT: ;;#ASMSTART
14003 ; GFX900-NEXT: ; def s[4:7]
14004 ; GFX900-NEXT: ;;#ASMEND
14005 ; GFX900-NEXT: s_mov_b32 s8, s11
14006 ; GFX900-NEXT: s_mov_b32 s9, s6
14007 ; GFX900-NEXT: s_mov_b32 s10, s4
14008 ; GFX900-NEXT: s_mov_b32 s11, s4
14009 ; GFX900-NEXT: ;;#ASMSTART
14010 ; GFX900-NEXT: ; use s[8:11]
14011 ; GFX900-NEXT: ;;#ASMEND
14012 ; GFX900-NEXT: s_setpc_b64 s[30:31]
14014 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_2_0_0:
14016 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14017 ; GFX90A-NEXT: ;;#ASMSTART
14018 ; GFX90A-NEXT: ; def s[8:11]
14019 ; GFX90A-NEXT: ;;#ASMEND
14020 ; GFX90A-NEXT: ;;#ASMSTART
14021 ; GFX90A-NEXT: ; def s[4:7]
14022 ; GFX90A-NEXT: ;;#ASMEND
14023 ; GFX90A-NEXT: s_mov_b32 s8, s11
14024 ; GFX90A-NEXT: s_mov_b32 s9, s6
14025 ; GFX90A-NEXT: s_mov_b32 s10, s4
14026 ; GFX90A-NEXT: s_mov_b32 s11, s4
14027 ; GFX90A-NEXT: ;;#ASMSTART
14028 ; GFX90A-NEXT: ; use s[8:11]
14029 ; GFX90A-NEXT: ;;#ASMEND
14030 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
14032 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_2_0_0:
14034 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14035 ; GFX940-NEXT: ;;#ASMSTART
14036 ; GFX940-NEXT: ; def s[0:3]
14037 ; GFX940-NEXT: ;;#ASMEND
14038 ; GFX940-NEXT: ;;#ASMSTART
14039 ; GFX940-NEXT: ; def s[4:7]
14040 ; GFX940-NEXT: ;;#ASMEND
14041 ; GFX940-NEXT: s_mov_b32 s8, s7
14042 ; GFX940-NEXT: s_mov_b32 s9, s2
14043 ; GFX940-NEXT: s_mov_b32 s10, s0
14044 ; GFX940-NEXT: s_mov_b32 s11, s0
14045 ; GFX940-NEXT: ;;#ASMSTART
14046 ; GFX940-NEXT: ; use s[8:11]
14047 ; GFX940-NEXT: ;;#ASMEND
14048 ; GFX940-NEXT: s_setpc_b64 s[30:31]
14049 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
14050 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
14051 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 2, i32 0, i32 0>
14052 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
14056 define void @s_shuffle_v4p3_v4p3__7_3_0_0() {
14057 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_3_0_0:
14059 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14060 ; GFX900-NEXT: ;;#ASMSTART
14061 ; GFX900-NEXT: ; def s[8:11]
14062 ; GFX900-NEXT: ;;#ASMEND
14063 ; GFX900-NEXT: ;;#ASMSTART
14064 ; GFX900-NEXT: ; def s[4:7]
14065 ; GFX900-NEXT: ;;#ASMEND
14066 ; GFX900-NEXT: s_mov_b32 s8, s11
14067 ; GFX900-NEXT: s_mov_b32 s9, s7
14068 ; GFX900-NEXT: s_mov_b32 s10, s4
14069 ; GFX900-NEXT: s_mov_b32 s11, s4
14070 ; GFX900-NEXT: ;;#ASMSTART
14071 ; GFX900-NEXT: ; use s[8:11]
14072 ; GFX900-NEXT: ;;#ASMEND
14073 ; GFX900-NEXT: s_setpc_b64 s[30:31]
14075 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_3_0_0:
14077 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14078 ; GFX90A-NEXT: ;;#ASMSTART
14079 ; GFX90A-NEXT: ; def s[8:11]
14080 ; GFX90A-NEXT: ;;#ASMEND
14081 ; GFX90A-NEXT: ;;#ASMSTART
14082 ; GFX90A-NEXT: ; def s[4:7]
14083 ; GFX90A-NEXT: ;;#ASMEND
14084 ; GFX90A-NEXT: s_mov_b32 s8, s11
14085 ; GFX90A-NEXT: s_mov_b32 s9, s7
14086 ; GFX90A-NEXT: s_mov_b32 s10, s4
14087 ; GFX90A-NEXT: s_mov_b32 s11, s4
14088 ; GFX90A-NEXT: ;;#ASMSTART
14089 ; GFX90A-NEXT: ; use s[8:11]
14090 ; GFX90A-NEXT: ;;#ASMEND
14091 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
14093 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_3_0_0:
14095 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14096 ; GFX940-NEXT: ;;#ASMSTART
14097 ; GFX940-NEXT: ; def s[0:3]
14098 ; GFX940-NEXT: ;;#ASMEND
14099 ; GFX940-NEXT: ;;#ASMSTART
14100 ; GFX940-NEXT: ; def s[4:7]
14101 ; GFX940-NEXT: ;;#ASMEND
14102 ; GFX940-NEXT: s_mov_b32 s8, s7
14103 ; GFX940-NEXT: s_mov_b32 s9, s3
14104 ; GFX940-NEXT: s_mov_b32 s10, s0
14105 ; GFX940-NEXT: s_mov_b32 s11, s0
14106 ; GFX940-NEXT: ;;#ASMSTART
14107 ; GFX940-NEXT: ; use s[8:11]
14108 ; GFX940-NEXT: ;;#ASMEND
14109 ; GFX940-NEXT: s_setpc_b64 s[30:31]
14110 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
14111 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
14112 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 3, i32 0, i32 0>
14113 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
14117 define void @s_shuffle_v4p3_v4p3__7_4_0_0() {
14118 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_4_0_0:
14120 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14121 ; GFX900-NEXT: ;;#ASMSTART
14122 ; GFX900-NEXT: ; def s[4:7]
14123 ; GFX900-NEXT: ;;#ASMEND
14124 ; GFX900-NEXT: ;;#ASMSTART
14125 ; GFX900-NEXT: ; def s[12:15]
14126 ; GFX900-NEXT: ;;#ASMEND
14127 ; GFX900-NEXT: s_mov_b32 s8, s15
14128 ; GFX900-NEXT: s_mov_b32 s9, s12
14129 ; GFX900-NEXT: s_mov_b32 s10, s4
14130 ; GFX900-NEXT: s_mov_b32 s11, s4
14131 ; GFX900-NEXT: ;;#ASMSTART
14132 ; GFX900-NEXT: ; use s[8:11]
14133 ; GFX900-NEXT: ;;#ASMEND
14134 ; GFX900-NEXT: s_setpc_b64 s[30:31]
14136 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_4_0_0:
14138 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14139 ; GFX90A-NEXT: ;;#ASMSTART
14140 ; GFX90A-NEXT: ; def s[4:7]
14141 ; GFX90A-NEXT: ;;#ASMEND
14142 ; GFX90A-NEXT: ;;#ASMSTART
14143 ; GFX90A-NEXT: ; def s[12:15]
14144 ; GFX90A-NEXT: ;;#ASMEND
14145 ; GFX90A-NEXT: s_mov_b32 s8, s15
14146 ; GFX90A-NEXT: s_mov_b32 s9, s12
14147 ; GFX90A-NEXT: s_mov_b32 s10, s4
14148 ; GFX90A-NEXT: s_mov_b32 s11, s4
14149 ; GFX90A-NEXT: ;;#ASMSTART
14150 ; GFX90A-NEXT: ; use s[8:11]
14151 ; GFX90A-NEXT: ;;#ASMEND
14152 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
14154 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_4_0_0:
14156 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14157 ; GFX940-NEXT: ;;#ASMSTART
14158 ; GFX940-NEXT: ; def s[0:3]
14159 ; GFX940-NEXT: ;;#ASMEND
14160 ; GFX940-NEXT: ;;#ASMSTART
14161 ; GFX940-NEXT: ; def s[4:7]
14162 ; GFX940-NEXT: ;;#ASMEND
14163 ; GFX940-NEXT: s_mov_b32 s8, s7
14164 ; GFX940-NEXT: s_mov_b32 s9, s4
14165 ; GFX940-NEXT: s_mov_b32 s10, s0
14166 ; GFX940-NEXT: s_mov_b32 s11, s0
14167 ; GFX940-NEXT: ;;#ASMSTART
14168 ; GFX940-NEXT: ; use s[8:11]
14169 ; GFX940-NEXT: ;;#ASMEND
14170 ; GFX940-NEXT: s_setpc_b64 s[30:31]
14171 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
14172 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
14173 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 4, i32 0, i32 0>
14174 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
14178 define void @s_shuffle_v4p3_v4p3__7_5_0_0() {
14179 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_5_0_0:
14181 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14182 ; GFX900-NEXT: ;;#ASMSTART
14183 ; GFX900-NEXT: ; def s[8:11]
14184 ; GFX900-NEXT: ;;#ASMEND
14185 ; GFX900-NEXT: ;;#ASMSTART
14186 ; GFX900-NEXT: ; def s[4:7]
14187 ; GFX900-NEXT: ;;#ASMEND
14188 ; GFX900-NEXT: s_mov_b32 s8, s11
14189 ; GFX900-NEXT: s_mov_b32 s10, s4
14190 ; GFX900-NEXT: s_mov_b32 s11, s4
14191 ; GFX900-NEXT: ;;#ASMSTART
14192 ; GFX900-NEXT: ; use s[8:11]
14193 ; GFX900-NEXT: ;;#ASMEND
14194 ; GFX900-NEXT: s_setpc_b64 s[30:31]
14196 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_5_0_0:
14198 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14199 ; GFX90A-NEXT: ;;#ASMSTART
14200 ; GFX90A-NEXT: ; def s[8:11]
14201 ; GFX90A-NEXT: ;;#ASMEND
14202 ; GFX90A-NEXT: ;;#ASMSTART
14203 ; GFX90A-NEXT: ; def s[4:7]
14204 ; GFX90A-NEXT: ;;#ASMEND
14205 ; GFX90A-NEXT: s_mov_b32 s8, s11
14206 ; GFX90A-NEXT: s_mov_b32 s10, s4
14207 ; GFX90A-NEXT: s_mov_b32 s11, s4
14208 ; GFX90A-NEXT: ;;#ASMSTART
14209 ; GFX90A-NEXT: ; use s[8:11]
14210 ; GFX90A-NEXT: ;;#ASMEND
14211 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
14213 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_5_0_0:
14215 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14216 ; GFX940-NEXT: ;;#ASMSTART
14217 ; GFX940-NEXT: ; def s[8:11]
14218 ; GFX940-NEXT: ;;#ASMEND
14219 ; GFX940-NEXT: ;;#ASMSTART
14220 ; GFX940-NEXT: ; def s[0:3]
14221 ; GFX940-NEXT: ;;#ASMEND
14222 ; GFX940-NEXT: s_mov_b32 s8, s11
14223 ; GFX940-NEXT: s_mov_b32 s10, s0
14224 ; GFX940-NEXT: s_mov_b32 s11, s0
14225 ; GFX940-NEXT: ;;#ASMSTART
14226 ; GFX940-NEXT: ; use s[8:11]
14227 ; GFX940-NEXT: ;;#ASMEND
14228 ; GFX940-NEXT: s_setpc_b64 s[30:31]
14229 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
14230 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
14231 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 5, i32 0, i32 0>
14232 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
14236 define void @s_shuffle_v4p3_v4p3__7_6_0_0() {
14237 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_6_0_0:
14239 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14240 ; GFX900-NEXT: ;;#ASMSTART
14241 ; GFX900-NEXT: ; def s[8:11]
14242 ; GFX900-NEXT: ;;#ASMEND
14243 ; GFX900-NEXT: ;;#ASMSTART
14244 ; GFX900-NEXT: ; def s[4:7]
14245 ; GFX900-NEXT: ;;#ASMEND
14246 ; GFX900-NEXT: s_mov_b32 s8, s11
14247 ; GFX900-NEXT: s_mov_b32 s9, s10
14248 ; GFX900-NEXT: s_mov_b32 s10, s4
14249 ; GFX900-NEXT: s_mov_b32 s11, s4
14250 ; GFX900-NEXT: ;;#ASMSTART
14251 ; GFX900-NEXT: ; use s[8:11]
14252 ; GFX900-NEXT: ;;#ASMEND
14253 ; GFX900-NEXT: s_setpc_b64 s[30:31]
14255 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_6_0_0:
14257 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14258 ; GFX90A-NEXT: ;;#ASMSTART
14259 ; GFX90A-NEXT: ; def s[8:11]
14260 ; GFX90A-NEXT: ;;#ASMEND
14261 ; GFX90A-NEXT: ;;#ASMSTART
14262 ; GFX90A-NEXT: ; def s[4:7]
14263 ; GFX90A-NEXT: ;;#ASMEND
14264 ; GFX90A-NEXT: s_mov_b32 s8, s11
14265 ; GFX90A-NEXT: s_mov_b32 s9, s10
14266 ; GFX90A-NEXT: s_mov_b32 s10, s4
14267 ; GFX90A-NEXT: s_mov_b32 s11, s4
14268 ; GFX90A-NEXT: ;;#ASMSTART
14269 ; GFX90A-NEXT: ; use s[8:11]
14270 ; GFX90A-NEXT: ;;#ASMEND
14271 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
14273 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_6_0_0:
14275 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14276 ; GFX940-NEXT: ;;#ASMSTART
14277 ; GFX940-NEXT: ; def s[0:3]
14278 ; GFX940-NEXT: ;;#ASMEND
14279 ; GFX940-NEXT: ;;#ASMSTART
14280 ; GFX940-NEXT: ; def s[4:7]
14281 ; GFX940-NEXT: ;;#ASMEND
14282 ; GFX940-NEXT: s_mov_b32 s8, s7
14283 ; GFX940-NEXT: s_mov_b32 s9, s6
14284 ; GFX940-NEXT: s_mov_b32 s10, s0
14285 ; GFX940-NEXT: s_mov_b32 s11, s0
14286 ; GFX940-NEXT: ;;#ASMSTART
14287 ; GFX940-NEXT: ; use s[8:11]
14288 ; GFX940-NEXT: ;;#ASMEND
14289 ; GFX940-NEXT: s_setpc_b64 s[30:31]
14290 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
14291 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
14292 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 6, i32 0, i32 0>
14293 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
14297 define void @s_shuffle_v4p3_v4p3__7_7_0_0() {
14298 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_0_0:
14300 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14301 ; GFX900-NEXT: ;;#ASMSTART
14302 ; GFX900-NEXT: ; def s[8:11]
14303 ; GFX900-NEXT: ;;#ASMEND
14304 ; GFX900-NEXT: ;;#ASMSTART
14305 ; GFX900-NEXT: ; def s[4:7]
14306 ; GFX900-NEXT: ;;#ASMEND
14307 ; GFX900-NEXT: s_mov_b32 s8, s11
14308 ; GFX900-NEXT: s_mov_b32 s9, s11
14309 ; GFX900-NEXT: s_mov_b32 s10, s4
14310 ; GFX900-NEXT: s_mov_b32 s11, s4
14311 ; GFX900-NEXT: ;;#ASMSTART
14312 ; GFX900-NEXT: ; use s[8:11]
14313 ; GFX900-NEXT: ;;#ASMEND
14314 ; GFX900-NEXT: s_setpc_b64 s[30:31]
14316 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_0_0:
14318 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14319 ; GFX90A-NEXT: ;;#ASMSTART
14320 ; GFX90A-NEXT: ; def s[8:11]
14321 ; GFX90A-NEXT: ;;#ASMEND
14322 ; GFX90A-NEXT: ;;#ASMSTART
14323 ; GFX90A-NEXT: ; def s[4:7]
14324 ; GFX90A-NEXT: ;;#ASMEND
14325 ; GFX90A-NEXT: s_mov_b32 s8, s11
14326 ; GFX90A-NEXT: s_mov_b32 s9, s11
14327 ; GFX90A-NEXT: s_mov_b32 s10, s4
14328 ; GFX90A-NEXT: s_mov_b32 s11, s4
14329 ; GFX90A-NEXT: ;;#ASMSTART
14330 ; GFX90A-NEXT: ; use s[8:11]
14331 ; GFX90A-NEXT: ;;#ASMEND
14332 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
14334 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_0_0:
14336 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14337 ; GFX940-NEXT: ;;#ASMSTART
14338 ; GFX940-NEXT: ; def s[0:3]
14339 ; GFX940-NEXT: ;;#ASMEND
14340 ; GFX940-NEXT: ;;#ASMSTART
14341 ; GFX940-NEXT: ; def s[4:7]
14342 ; GFX940-NEXT: ;;#ASMEND
14343 ; GFX940-NEXT: s_mov_b32 s8, s7
14344 ; GFX940-NEXT: s_mov_b32 s9, s7
14345 ; GFX940-NEXT: s_mov_b32 s10, s0
14346 ; GFX940-NEXT: s_mov_b32 s11, s0
14347 ; GFX940-NEXT: ;;#ASMSTART
14348 ; GFX940-NEXT: ; use s[8:11]
14349 ; GFX940-NEXT: ;;#ASMEND
14350 ; GFX940-NEXT: s_setpc_b64 s[30:31]
14351 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
14352 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
14353 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 0, i32 0>
14354 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
14358 define void @s_shuffle_v4p3_v4p3__7_7_u_0() {
14359 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_u_0:
14361 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14362 ; GFX900-NEXT: ;;#ASMSTART
14363 ; GFX900-NEXT: ; def s[8:11]
14364 ; GFX900-NEXT: ;;#ASMEND
14365 ; GFX900-NEXT: ;;#ASMSTART
14366 ; GFX900-NEXT: ; def s[4:7]
14367 ; GFX900-NEXT: ;;#ASMEND
14368 ; GFX900-NEXT: s_mov_b32 s8, s11
14369 ; GFX900-NEXT: s_mov_b32 s9, s11
14370 ; GFX900-NEXT: s_mov_b32 s11, s4
14371 ; GFX900-NEXT: ;;#ASMSTART
14372 ; GFX900-NEXT: ; use s[8:11]
14373 ; GFX900-NEXT: ;;#ASMEND
14374 ; GFX900-NEXT: s_setpc_b64 s[30:31]
14376 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_u_0:
14378 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14379 ; GFX90A-NEXT: ;;#ASMSTART
14380 ; GFX90A-NEXT: ; def s[8:11]
14381 ; GFX90A-NEXT: ;;#ASMEND
14382 ; GFX90A-NEXT: ;;#ASMSTART
14383 ; GFX90A-NEXT: ; def s[4:7]
14384 ; GFX90A-NEXT: ;;#ASMEND
14385 ; GFX90A-NEXT: s_mov_b32 s8, s11
14386 ; GFX90A-NEXT: s_mov_b32 s9, s11
14387 ; GFX90A-NEXT: s_mov_b32 s11, s4
14388 ; GFX90A-NEXT: ;;#ASMSTART
14389 ; GFX90A-NEXT: ; use s[8:11]
14390 ; GFX90A-NEXT: ;;#ASMEND
14391 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
14393 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_u_0:
14395 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14396 ; GFX940-NEXT: ;;#ASMSTART
14397 ; GFX940-NEXT: ; def s[0:3]
14398 ; GFX940-NEXT: ;;#ASMEND
14399 ; GFX940-NEXT: ;;#ASMSTART
14400 ; GFX940-NEXT: ; def s[4:7]
14401 ; GFX940-NEXT: ;;#ASMEND
14402 ; GFX940-NEXT: s_mov_b32 s8, s7
14403 ; GFX940-NEXT: s_mov_b32 s9, s7
14404 ; GFX940-NEXT: s_mov_b32 s11, s0
14405 ; GFX940-NEXT: ;;#ASMSTART
14406 ; GFX940-NEXT: ; use s[8:11]
14407 ; GFX940-NEXT: ;;#ASMEND
14408 ; GFX940-NEXT: s_setpc_b64 s[30:31]
14409 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
14410 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
14411 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 poison, i32 0>
14412 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
14416 define void @s_shuffle_v4p3_v4p3__7_7_1_0() {
14417 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_1_0:
14419 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14420 ; GFX900-NEXT: ;;#ASMSTART
14421 ; GFX900-NEXT: ; def s[8:11]
14422 ; GFX900-NEXT: ;;#ASMEND
14423 ; GFX900-NEXT: ;;#ASMSTART
14424 ; GFX900-NEXT: ; def s[4:7]
14425 ; GFX900-NEXT: ;;#ASMEND
14426 ; GFX900-NEXT: s_mov_b32 s8, s11
14427 ; GFX900-NEXT: s_mov_b32 s9, s11
14428 ; GFX900-NEXT: s_mov_b32 s10, s5
14429 ; GFX900-NEXT: s_mov_b32 s11, s4
14430 ; GFX900-NEXT: ;;#ASMSTART
14431 ; GFX900-NEXT: ; use s[8:11]
14432 ; GFX900-NEXT: ;;#ASMEND
14433 ; GFX900-NEXT: s_setpc_b64 s[30:31]
14435 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_1_0:
14437 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14438 ; GFX90A-NEXT: ;;#ASMSTART
14439 ; GFX90A-NEXT: ; def s[8:11]
14440 ; GFX90A-NEXT: ;;#ASMEND
14441 ; GFX90A-NEXT: ;;#ASMSTART
14442 ; GFX90A-NEXT: ; def s[4:7]
14443 ; GFX90A-NEXT: ;;#ASMEND
14444 ; GFX90A-NEXT: s_mov_b32 s8, s11
14445 ; GFX90A-NEXT: s_mov_b32 s9, s11
14446 ; GFX90A-NEXT: s_mov_b32 s10, s5
14447 ; GFX90A-NEXT: s_mov_b32 s11, s4
14448 ; GFX90A-NEXT: ;;#ASMSTART
14449 ; GFX90A-NEXT: ; use s[8:11]
14450 ; GFX90A-NEXT: ;;#ASMEND
14451 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
14453 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_1_0:
14455 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14456 ; GFX940-NEXT: ;;#ASMSTART
14457 ; GFX940-NEXT: ; def s[0:3]
14458 ; GFX940-NEXT: ;;#ASMEND
14459 ; GFX940-NEXT: ;;#ASMSTART
14460 ; GFX940-NEXT: ; def s[4:7]
14461 ; GFX940-NEXT: ;;#ASMEND
14462 ; GFX940-NEXT: s_mov_b32 s8, s7
14463 ; GFX940-NEXT: s_mov_b32 s9, s7
14464 ; GFX940-NEXT: s_mov_b32 s10, s1
14465 ; GFX940-NEXT: s_mov_b32 s11, s0
14466 ; GFX940-NEXT: ;;#ASMSTART
14467 ; GFX940-NEXT: ; use s[8:11]
14468 ; GFX940-NEXT: ;;#ASMEND
14469 ; GFX940-NEXT: s_setpc_b64 s[30:31]
14470 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
14471 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
14472 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 1, i32 0>
14473 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
14477 define void @s_shuffle_v4p3_v4p3__7_7_2_0() {
14478 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_2_0:
14480 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14481 ; GFX900-NEXT: ;;#ASMSTART
14482 ; GFX900-NEXT: ; def s[8:11]
14483 ; GFX900-NEXT: ;;#ASMEND
14484 ; GFX900-NEXT: ;;#ASMSTART
14485 ; GFX900-NEXT: ; def s[4:7]
14486 ; GFX900-NEXT: ;;#ASMEND
14487 ; GFX900-NEXT: s_mov_b32 s8, s11
14488 ; GFX900-NEXT: s_mov_b32 s9, s11
14489 ; GFX900-NEXT: s_mov_b32 s10, s6
14490 ; GFX900-NEXT: s_mov_b32 s11, s4
14491 ; GFX900-NEXT: ;;#ASMSTART
14492 ; GFX900-NEXT: ; use s[8:11]
14493 ; GFX900-NEXT: ;;#ASMEND
14494 ; GFX900-NEXT: s_setpc_b64 s[30:31]
14496 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_2_0:
14498 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14499 ; GFX90A-NEXT: ;;#ASMSTART
14500 ; GFX90A-NEXT: ; def s[8:11]
14501 ; GFX90A-NEXT: ;;#ASMEND
14502 ; GFX90A-NEXT: ;;#ASMSTART
14503 ; GFX90A-NEXT: ; def s[4:7]
14504 ; GFX90A-NEXT: ;;#ASMEND
14505 ; GFX90A-NEXT: s_mov_b32 s8, s11
14506 ; GFX90A-NEXT: s_mov_b32 s9, s11
14507 ; GFX90A-NEXT: s_mov_b32 s10, s6
14508 ; GFX90A-NEXT: s_mov_b32 s11, s4
14509 ; GFX90A-NEXT: ;;#ASMSTART
14510 ; GFX90A-NEXT: ; use s[8:11]
14511 ; GFX90A-NEXT: ;;#ASMEND
14512 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
14514 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_2_0:
14516 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14517 ; GFX940-NEXT: ;;#ASMSTART
14518 ; GFX940-NEXT: ; def s[0:3]
14519 ; GFX940-NEXT: ;;#ASMEND
14520 ; GFX940-NEXT: ;;#ASMSTART
14521 ; GFX940-NEXT: ; def s[4:7]
14522 ; GFX940-NEXT: ;;#ASMEND
14523 ; GFX940-NEXT: s_mov_b32 s8, s7
14524 ; GFX940-NEXT: s_mov_b32 s9, s7
14525 ; GFX940-NEXT: s_mov_b32 s10, s2
14526 ; GFX940-NEXT: s_mov_b32 s11, s0
14527 ; GFX940-NEXT: ;;#ASMSTART
14528 ; GFX940-NEXT: ; use s[8:11]
14529 ; GFX940-NEXT: ;;#ASMEND
14530 ; GFX940-NEXT: s_setpc_b64 s[30:31]
14531 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
14532 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
14533 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 2, i32 0>
14534 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
14538 define void @s_shuffle_v4p3_v4p3__7_7_3_0() {
14539 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_3_0:
14541 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14542 ; GFX900-NEXT: ;;#ASMSTART
14543 ; GFX900-NEXT: ; def s[8:11]
14544 ; GFX900-NEXT: ;;#ASMEND
14545 ; GFX900-NEXT: ;;#ASMSTART
14546 ; GFX900-NEXT: ; def s[4:7]
14547 ; GFX900-NEXT: ;;#ASMEND
14548 ; GFX900-NEXT: s_mov_b32 s8, s11
14549 ; GFX900-NEXT: s_mov_b32 s9, s11
14550 ; GFX900-NEXT: s_mov_b32 s10, s7
14551 ; GFX900-NEXT: s_mov_b32 s11, s4
14552 ; GFX900-NEXT: ;;#ASMSTART
14553 ; GFX900-NEXT: ; use s[8:11]
14554 ; GFX900-NEXT: ;;#ASMEND
14555 ; GFX900-NEXT: s_setpc_b64 s[30:31]
14557 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_3_0:
14559 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14560 ; GFX90A-NEXT: ;;#ASMSTART
14561 ; GFX90A-NEXT: ; def s[8:11]
14562 ; GFX90A-NEXT: ;;#ASMEND
14563 ; GFX90A-NEXT: ;;#ASMSTART
14564 ; GFX90A-NEXT: ; def s[4:7]
14565 ; GFX90A-NEXT: ;;#ASMEND
14566 ; GFX90A-NEXT: s_mov_b32 s8, s11
14567 ; GFX90A-NEXT: s_mov_b32 s9, s11
14568 ; GFX90A-NEXT: s_mov_b32 s10, s7
14569 ; GFX90A-NEXT: s_mov_b32 s11, s4
14570 ; GFX90A-NEXT: ;;#ASMSTART
14571 ; GFX90A-NEXT: ; use s[8:11]
14572 ; GFX90A-NEXT: ;;#ASMEND
14573 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
14575 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_3_0:
14577 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14578 ; GFX940-NEXT: ;;#ASMSTART
14579 ; GFX940-NEXT: ; def s[0:3]
14580 ; GFX940-NEXT: ;;#ASMEND
14581 ; GFX940-NEXT: ;;#ASMSTART
14582 ; GFX940-NEXT: ; def s[4:7]
14583 ; GFX940-NEXT: ;;#ASMEND
14584 ; GFX940-NEXT: s_mov_b32 s8, s7
14585 ; GFX940-NEXT: s_mov_b32 s9, s7
14586 ; GFX940-NEXT: s_mov_b32 s10, s3
14587 ; GFX940-NEXT: s_mov_b32 s11, s0
14588 ; GFX940-NEXT: ;;#ASMSTART
14589 ; GFX940-NEXT: ; use s[8:11]
14590 ; GFX940-NEXT: ;;#ASMEND
14591 ; GFX940-NEXT: s_setpc_b64 s[30:31]
14592 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
14593 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
14594 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 3, i32 0>
14595 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
14599 define void @s_shuffle_v4p3_v4p3__7_7_4_0() {
14600 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_4_0:
14602 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14603 ; GFX900-NEXT: ;;#ASMSTART
14604 ; GFX900-NEXT: ; def s[4:7]
14605 ; GFX900-NEXT: ;;#ASMEND
14606 ; GFX900-NEXT: ;;#ASMSTART
14607 ; GFX900-NEXT: ; def s[12:15]
14608 ; GFX900-NEXT: ;;#ASMEND
14609 ; GFX900-NEXT: s_mov_b32 s8, s15
14610 ; GFX900-NEXT: s_mov_b32 s9, s15
14611 ; GFX900-NEXT: s_mov_b32 s10, s12
14612 ; GFX900-NEXT: s_mov_b32 s11, s4
14613 ; GFX900-NEXT: ;;#ASMSTART
14614 ; GFX900-NEXT: ; use s[8:11]
14615 ; GFX900-NEXT: ;;#ASMEND
14616 ; GFX900-NEXT: s_setpc_b64 s[30:31]
14618 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_4_0:
14620 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14621 ; GFX90A-NEXT: ;;#ASMSTART
14622 ; GFX90A-NEXT: ; def s[4:7]
14623 ; GFX90A-NEXT: ;;#ASMEND
14624 ; GFX90A-NEXT: ;;#ASMSTART
14625 ; GFX90A-NEXT: ; def s[12:15]
14626 ; GFX90A-NEXT: ;;#ASMEND
14627 ; GFX90A-NEXT: s_mov_b32 s8, s15
14628 ; GFX90A-NEXT: s_mov_b32 s9, s15
14629 ; GFX90A-NEXT: s_mov_b32 s10, s12
14630 ; GFX90A-NEXT: s_mov_b32 s11, s4
14631 ; GFX90A-NEXT: ;;#ASMSTART
14632 ; GFX90A-NEXT: ; use s[8:11]
14633 ; GFX90A-NEXT: ;;#ASMEND
14634 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
14636 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_4_0:
14638 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14639 ; GFX940-NEXT: ;;#ASMSTART
14640 ; GFX940-NEXT: ; def s[0:3]
14641 ; GFX940-NEXT: ;;#ASMEND
14642 ; GFX940-NEXT: ;;#ASMSTART
14643 ; GFX940-NEXT: ; def s[4:7]
14644 ; GFX940-NEXT: ;;#ASMEND
14645 ; GFX940-NEXT: s_mov_b32 s8, s7
14646 ; GFX940-NEXT: s_mov_b32 s9, s7
14647 ; GFX940-NEXT: s_mov_b32 s10, s4
14648 ; GFX940-NEXT: s_mov_b32 s11, s0
14649 ; GFX940-NEXT: ;;#ASMSTART
14650 ; GFX940-NEXT: ; use s[8:11]
14651 ; GFX940-NEXT: ;;#ASMEND
14652 ; GFX940-NEXT: s_setpc_b64 s[30:31]
14653 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
14654 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
14655 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 4, i32 0>
14656 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
14660 define void @s_shuffle_v4p3_v4p3__7_7_5_0() {
14661 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_5_0:
14663 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14664 ; GFX900-NEXT: ;;#ASMSTART
14665 ; GFX900-NEXT: ; def s[4:7]
14666 ; GFX900-NEXT: ;;#ASMEND
14667 ; GFX900-NEXT: ;;#ASMSTART
14668 ; GFX900-NEXT: ; def s[12:15]
14669 ; GFX900-NEXT: ;;#ASMEND
14670 ; GFX900-NEXT: s_mov_b32 s8, s15
14671 ; GFX900-NEXT: s_mov_b32 s9, s15
14672 ; GFX900-NEXT: s_mov_b32 s10, s13
14673 ; GFX900-NEXT: s_mov_b32 s11, s4
14674 ; GFX900-NEXT: ;;#ASMSTART
14675 ; GFX900-NEXT: ; use s[8:11]
14676 ; GFX900-NEXT: ;;#ASMEND
14677 ; GFX900-NEXT: s_setpc_b64 s[30:31]
14679 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_5_0:
14681 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14682 ; GFX90A-NEXT: ;;#ASMSTART
14683 ; GFX90A-NEXT: ; def s[4:7]
14684 ; GFX90A-NEXT: ;;#ASMEND
14685 ; GFX90A-NEXT: ;;#ASMSTART
14686 ; GFX90A-NEXT: ; def s[12:15]
14687 ; GFX90A-NEXT: ;;#ASMEND
14688 ; GFX90A-NEXT: s_mov_b32 s8, s15
14689 ; GFX90A-NEXT: s_mov_b32 s9, s15
14690 ; GFX90A-NEXT: s_mov_b32 s10, s13
14691 ; GFX90A-NEXT: s_mov_b32 s11, s4
14692 ; GFX90A-NEXT: ;;#ASMSTART
14693 ; GFX90A-NEXT: ; use s[8:11]
14694 ; GFX90A-NEXT: ;;#ASMEND
14695 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
14697 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_5_0:
14699 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14700 ; GFX940-NEXT: ;;#ASMSTART
14701 ; GFX940-NEXT: ; def s[0:3]
14702 ; GFX940-NEXT: ;;#ASMEND
14703 ; GFX940-NEXT: ;;#ASMSTART
14704 ; GFX940-NEXT: ; def s[4:7]
14705 ; GFX940-NEXT: ;;#ASMEND
14706 ; GFX940-NEXT: s_mov_b32 s8, s7
14707 ; GFX940-NEXT: s_mov_b32 s9, s7
14708 ; GFX940-NEXT: s_mov_b32 s10, s5
14709 ; GFX940-NEXT: s_mov_b32 s11, s0
14710 ; GFX940-NEXT: ;;#ASMSTART
14711 ; GFX940-NEXT: ; use s[8:11]
14712 ; GFX940-NEXT: ;;#ASMEND
14713 ; GFX940-NEXT: s_setpc_b64 s[30:31]
14714 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
14715 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
14716 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 5, i32 0>
14717 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
14721 define void @s_shuffle_v4p3_v4p3__7_7_6_0() {
14722 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_6_0:
14724 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14725 ; GFX900-NEXT: ;;#ASMSTART
14726 ; GFX900-NEXT: ; def s[8:11]
14727 ; GFX900-NEXT: ;;#ASMEND
14728 ; GFX900-NEXT: ;;#ASMSTART
14729 ; GFX900-NEXT: ; def s[4:7]
14730 ; GFX900-NEXT: ;;#ASMEND
14731 ; GFX900-NEXT: s_mov_b32 s8, s11
14732 ; GFX900-NEXT: s_mov_b32 s9, s11
14733 ; GFX900-NEXT: s_mov_b32 s11, s4
14734 ; GFX900-NEXT: ;;#ASMSTART
14735 ; GFX900-NEXT: ; use s[8:11]
14736 ; GFX900-NEXT: ;;#ASMEND
14737 ; GFX900-NEXT: s_setpc_b64 s[30:31]
14739 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_6_0:
14741 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14742 ; GFX90A-NEXT: ;;#ASMSTART
14743 ; GFX90A-NEXT: ; def s[8:11]
14744 ; GFX90A-NEXT: ;;#ASMEND
14745 ; GFX90A-NEXT: ;;#ASMSTART
14746 ; GFX90A-NEXT: ; def s[4:7]
14747 ; GFX90A-NEXT: ;;#ASMEND
14748 ; GFX90A-NEXT: s_mov_b32 s8, s11
14749 ; GFX90A-NEXT: s_mov_b32 s9, s11
14750 ; GFX90A-NEXT: s_mov_b32 s11, s4
14751 ; GFX90A-NEXT: ;;#ASMSTART
14752 ; GFX90A-NEXT: ; use s[8:11]
14753 ; GFX90A-NEXT: ;;#ASMEND
14754 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
14756 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_6_0:
14758 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14759 ; GFX940-NEXT: ;;#ASMSTART
14760 ; GFX940-NEXT: ; def s[8:11]
14761 ; GFX940-NEXT: ;;#ASMEND
14762 ; GFX940-NEXT: ;;#ASMSTART
14763 ; GFX940-NEXT: ; def s[0:3]
14764 ; GFX940-NEXT: ;;#ASMEND
14765 ; GFX940-NEXT: s_mov_b32 s8, s11
14766 ; GFX940-NEXT: s_mov_b32 s9, s11
14767 ; GFX940-NEXT: s_mov_b32 s11, s0
14768 ; GFX940-NEXT: ;;#ASMSTART
14769 ; GFX940-NEXT: ; use s[8:11]
14770 ; GFX940-NEXT: ;;#ASMEND
14771 ; GFX940-NEXT: s_setpc_b64 s[30:31]
14772 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
14773 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
14774 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 6, i32 0>
14775 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
14779 define void @s_shuffle_v4p3_v4p3__u_1_1_1() {
14780 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__u_1_1_1:
14782 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14783 ; GFX9-NEXT: ;;#ASMSTART
14784 ; GFX9-NEXT: ; def s[8:11]
14785 ; GFX9-NEXT: ;;#ASMEND
14786 ; GFX9-NEXT: s_mov_b32 s10, s9
14787 ; GFX9-NEXT: s_mov_b32 s11, s9
14788 ; GFX9-NEXT: ;;#ASMSTART
14789 ; GFX9-NEXT: ; use s[8:11]
14790 ; GFX9-NEXT: ;;#ASMEND
14791 ; GFX9-NEXT: s_setpc_b64 s[30:31]
14792 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
14793 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 poison, i32 1, i32 1, i32 1>
14794 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
14798 define void @s_shuffle_v4p3_v4p3__0_1_1_1() {
14799 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__0_1_1_1:
14801 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14802 ; GFX9-NEXT: ;;#ASMSTART
14803 ; GFX9-NEXT: ; def s[8:11]
14804 ; GFX9-NEXT: ;;#ASMEND
14805 ; GFX9-NEXT: s_mov_b32 s10, s9
14806 ; GFX9-NEXT: s_mov_b32 s11, s9
14807 ; GFX9-NEXT: ;;#ASMSTART
14808 ; GFX9-NEXT: ; use s[8:11]
14809 ; GFX9-NEXT: ;;#ASMEND
14810 ; GFX9-NEXT: s_setpc_b64 s[30:31]
14811 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
14812 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 0, i32 1, i32 1, i32 1>
14813 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
14817 define void @s_shuffle_v4p3_v4p3__1_1_1_1() {
14818 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__1_1_1_1:
14820 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14821 ; GFX9-NEXT: ;;#ASMSTART
14822 ; GFX9-NEXT: ; def s[8:11]
14823 ; GFX9-NEXT: ;;#ASMEND
14824 ; GFX9-NEXT: s_mov_b32 s8, s9
14825 ; GFX9-NEXT: s_mov_b32 s10, s9
14826 ; GFX9-NEXT: s_mov_b32 s11, s9
14827 ; GFX9-NEXT: ;;#ASMSTART
14828 ; GFX9-NEXT: ; use s[8:11]
14829 ; GFX9-NEXT: ;;#ASMEND
14830 ; GFX9-NEXT: s_setpc_b64 s[30:31]
14831 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
14832 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 1, i32 1, i32 1, i32 1>
14833 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
14837 define void @s_shuffle_v4p3_v4p3__2_1_1_1() {
14838 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__2_1_1_1:
14840 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14841 ; GFX9-NEXT: ;;#ASMSTART
14842 ; GFX9-NEXT: ; def s[8:11]
14843 ; GFX9-NEXT: ;;#ASMEND
14844 ; GFX9-NEXT: s_mov_b32 s8, s10
14845 ; GFX9-NEXT: s_mov_b32 s10, s9
14846 ; GFX9-NEXT: s_mov_b32 s11, s9
14847 ; GFX9-NEXT: ;;#ASMSTART
14848 ; GFX9-NEXT: ; use s[8:11]
14849 ; GFX9-NEXT: ;;#ASMEND
14850 ; GFX9-NEXT: s_setpc_b64 s[30:31]
14851 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
14852 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 2, i32 1, i32 1, i32 1>
14853 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
14857 define void @s_shuffle_v4p3_v4p3__3_1_1_1() {
14858 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__3_1_1_1:
14860 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14861 ; GFX9-NEXT: ;;#ASMSTART
14862 ; GFX9-NEXT: ; def s[8:11]
14863 ; GFX9-NEXT: ;;#ASMEND
14864 ; GFX9-NEXT: s_mov_b32 s8, s11
14865 ; GFX9-NEXT: s_mov_b32 s10, s9
14866 ; GFX9-NEXT: s_mov_b32 s11, s9
14867 ; GFX9-NEXT: ;;#ASMSTART
14868 ; GFX9-NEXT: ; use s[8:11]
14869 ; GFX9-NEXT: ;;#ASMEND
14870 ; GFX9-NEXT: s_setpc_b64 s[30:31]
14871 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
14872 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 3, i32 1, i32 1, i32 1>
14873 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
14877 define void @s_shuffle_v4p3_v4p3__4_1_1_1() {
14878 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__4_1_1_1:
14880 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14881 ; GFX9-NEXT: ;;#ASMSTART
14882 ; GFX9-NEXT: ; def s[8:11]
14883 ; GFX9-NEXT: ;;#ASMEND
14884 ; GFX9-NEXT: s_mov_b32 s10, s9
14885 ; GFX9-NEXT: s_mov_b32 s11, s9
14886 ; GFX9-NEXT: ;;#ASMSTART
14887 ; GFX9-NEXT: ; use s[8:11]
14888 ; GFX9-NEXT: ;;#ASMEND
14889 ; GFX9-NEXT: s_setpc_b64 s[30:31]
14890 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
14891 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 4, i32 1, i32 1, i32 1>
14892 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
14896 define void @s_shuffle_v4p3_v4p3__5_1_1_1() {
14897 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__5_1_1_1:
14899 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14900 ; GFX900-NEXT: ;;#ASMSTART
14901 ; GFX900-NEXT: ; def s[8:11]
14902 ; GFX900-NEXT: ;;#ASMEND
14903 ; GFX900-NEXT: ;;#ASMSTART
14904 ; GFX900-NEXT: ; def s[4:7]
14905 ; GFX900-NEXT: ;;#ASMEND
14906 ; GFX900-NEXT: s_mov_b32 s8, s5
14907 ; GFX900-NEXT: s_mov_b32 s10, s9
14908 ; GFX900-NEXT: s_mov_b32 s11, s9
14909 ; GFX900-NEXT: ;;#ASMSTART
14910 ; GFX900-NEXT: ; use s[8:11]
14911 ; GFX900-NEXT: ;;#ASMEND
14912 ; GFX900-NEXT: s_setpc_b64 s[30:31]
14914 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__5_1_1_1:
14916 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14917 ; GFX90A-NEXT: ;;#ASMSTART
14918 ; GFX90A-NEXT: ; def s[8:11]
14919 ; GFX90A-NEXT: ;;#ASMEND
14920 ; GFX90A-NEXT: ;;#ASMSTART
14921 ; GFX90A-NEXT: ; def s[4:7]
14922 ; GFX90A-NEXT: ;;#ASMEND
14923 ; GFX90A-NEXT: s_mov_b32 s8, s5
14924 ; GFX90A-NEXT: s_mov_b32 s10, s9
14925 ; GFX90A-NEXT: s_mov_b32 s11, s9
14926 ; GFX90A-NEXT: ;;#ASMSTART
14927 ; GFX90A-NEXT: ; use s[8:11]
14928 ; GFX90A-NEXT: ;;#ASMEND
14929 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
14931 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__5_1_1_1:
14933 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14934 ; GFX940-NEXT: ;;#ASMSTART
14935 ; GFX940-NEXT: ; def s[8:11]
14936 ; GFX940-NEXT: ;;#ASMEND
14937 ; GFX940-NEXT: ;;#ASMSTART
14938 ; GFX940-NEXT: ; def s[0:3]
14939 ; GFX940-NEXT: ;;#ASMEND
14940 ; GFX940-NEXT: s_mov_b32 s8, s1
14941 ; GFX940-NEXT: s_mov_b32 s10, s9
14942 ; GFX940-NEXT: s_mov_b32 s11, s9
14943 ; GFX940-NEXT: ;;#ASMSTART
14944 ; GFX940-NEXT: ; use s[8:11]
14945 ; GFX940-NEXT: ;;#ASMEND
14946 ; GFX940-NEXT: s_setpc_b64 s[30:31]
14947 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
14948 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
14949 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 5, i32 1, i32 1, i32 1>
14950 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
14954 define void @s_shuffle_v4p3_v4p3__6_1_1_1() {
14955 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__6_1_1_1:
14957 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14958 ; GFX900-NEXT: ;;#ASMSTART
14959 ; GFX900-NEXT: ; def s[8:11]
14960 ; GFX900-NEXT: ;;#ASMEND
14961 ; GFX900-NEXT: ;;#ASMSTART
14962 ; GFX900-NEXT: ; def s[4:7]
14963 ; GFX900-NEXT: ;;#ASMEND
14964 ; GFX900-NEXT: s_mov_b32 s8, s6
14965 ; GFX900-NEXT: s_mov_b32 s10, s9
14966 ; GFX900-NEXT: s_mov_b32 s11, s9
14967 ; GFX900-NEXT: ;;#ASMSTART
14968 ; GFX900-NEXT: ; use s[8:11]
14969 ; GFX900-NEXT: ;;#ASMEND
14970 ; GFX900-NEXT: s_setpc_b64 s[30:31]
14972 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__6_1_1_1:
14974 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14975 ; GFX90A-NEXT: ;;#ASMSTART
14976 ; GFX90A-NEXT: ; def s[8:11]
14977 ; GFX90A-NEXT: ;;#ASMEND
14978 ; GFX90A-NEXT: ;;#ASMSTART
14979 ; GFX90A-NEXT: ; def s[4:7]
14980 ; GFX90A-NEXT: ;;#ASMEND
14981 ; GFX90A-NEXT: s_mov_b32 s8, s6
14982 ; GFX90A-NEXT: s_mov_b32 s10, s9
14983 ; GFX90A-NEXT: s_mov_b32 s11, s9
14984 ; GFX90A-NEXT: ;;#ASMSTART
14985 ; GFX90A-NEXT: ; use s[8:11]
14986 ; GFX90A-NEXT: ;;#ASMEND
14987 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
14989 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__6_1_1_1:
14991 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
14992 ; GFX940-NEXT: ;;#ASMSTART
14993 ; GFX940-NEXT: ; def s[8:11]
14994 ; GFX940-NEXT: ;;#ASMEND
14995 ; GFX940-NEXT: ;;#ASMSTART
14996 ; GFX940-NEXT: ; def s[0:3]
14997 ; GFX940-NEXT: ;;#ASMEND
14998 ; GFX940-NEXT: s_mov_b32 s8, s2
14999 ; GFX940-NEXT: s_mov_b32 s10, s9
15000 ; GFX940-NEXT: s_mov_b32 s11, s9
15001 ; GFX940-NEXT: ;;#ASMSTART
15002 ; GFX940-NEXT: ; use s[8:11]
15003 ; GFX940-NEXT: ;;#ASMEND
15004 ; GFX940-NEXT: s_setpc_b64 s[30:31]
15005 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
15006 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
15007 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 6, i32 1, i32 1, i32 1>
15008 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
15012 define void @s_shuffle_v4p3_v4p3__7_1_1_1() {
15013 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_1_1_1:
15015 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15016 ; GFX900-NEXT: ;;#ASMSTART
15017 ; GFX900-NEXT: ; def s[8:11]
15018 ; GFX900-NEXT: ;;#ASMEND
15019 ; GFX900-NEXT: ;;#ASMSTART
15020 ; GFX900-NEXT: ; def s[4:7]
15021 ; GFX900-NEXT: ;;#ASMEND
15022 ; GFX900-NEXT: s_mov_b32 s8, s7
15023 ; GFX900-NEXT: s_mov_b32 s10, s9
15024 ; GFX900-NEXT: s_mov_b32 s11, s9
15025 ; GFX900-NEXT: ;;#ASMSTART
15026 ; GFX900-NEXT: ; use s[8:11]
15027 ; GFX900-NEXT: ;;#ASMEND
15028 ; GFX900-NEXT: s_setpc_b64 s[30:31]
15030 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_1_1_1:
15032 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15033 ; GFX90A-NEXT: ;;#ASMSTART
15034 ; GFX90A-NEXT: ; def s[8:11]
15035 ; GFX90A-NEXT: ;;#ASMEND
15036 ; GFX90A-NEXT: ;;#ASMSTART
15037 ; GFX90A-NEXT: ; def s[4:7]
15038 ; GFX90A-NEXT: ;;#ASMEND
15039 ; GFX90A-NEXT: s_mov_b32 s8, s7
15040 ; GFX90A-NEXT: s_mov_b32 s10, s9
15041 ; GFX90A-NEXT: s_mov_b32 s11, s9
15042 ; GFX90A-NEXT: ;;#ASMSTART
15043 ; GFX90A-NEXT: ; use s[8:11]
15044 ; GFX90A-NEXT: ;;#ASMEND
15045 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
15047 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_1_1_1:
15049 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15050 ; GFX940-NEXT: ;;#ASMSTART
15051 ; GFX940-NEXT: ; def s[8:11]
15052 ; GFX940-NEXT: ;;#ASMEND
15053 ; GFX940-NEXT: ;;#ASMSTART
15054 ; GFX940-NEXT: ; def s[0:3]
15055 ; GFX940-NEXT: ;;#ASMEND
15056 ; GFX940-NEXT: s_mov_b32 s8, s3
15057 ; GFX940-NEXT: s_mov_b32 s10, s9
15058 ; GFX940-NEXT: s_mov_b32 s11, s9
15059 ; GFX940-NEXT: ;;#ASMSTART
15060 ; GFX940-NEXT: ; use s[8:11]
15061 ; GFX940-NEXT: ;;#ASMEND
15062 ; GFX940-NEXT: s_setpc_b64 s[30:31]
15063 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
15064 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
15065 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 1, i32 1, i32 1>
15066 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
15070 define void @s_shuffle_v4p3_v4p3__7_u_1_1() {
15071 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_u_1_1:
15073 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15074 ; GFX900-NEXT: ;;#ASMSTART
15075 ; GFX900-NEXT: ; def s[8:11]
15076 ; GFX900-NEXT: ;;#ASMEND
15077 ; GFX900-NEXT: ;;#ASMSTART
15078 ; GFX900-NEXT: ; def s[4:7]
15079 ; GFX900-NEXT: ;;#ASMEND
15080 ; GFX900-NEXT: s_mov_b32 s8, s11
15081 ; GFX900-NEXT: s_mov_b32 s10, s5
15082 ; GFX900-NEXT: s_mov_b32 s11, s5
15083 ; GFX900-NEXT: ;;#ASMSTART
15084 ; GFX900-NEXT: ; use s[8:11]
15085 ; GFX900-NEXT: ;;#ASMEND
15086 ; GFX900-NEXT: s_setpc_b64 s[30:31]
15088 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_u_1_1:
15090 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15091 ; GFX90A-NEXT: ;;#ASMSTART
15092 ; GFX90A-NEXT: ; def s[8:11]
15093 ; GFX90A-NEXT: ;;#ASMEND
15094 ; GFX90A-NEXT: ;;#ASMSTART
15095 ; GFX90A-NEXT: ; def s[4:7]
15096 ; GFX90A-NEXT: ;;#ASMEND
15097 ; GFX90A-NEXT: s_mov_b32 s8, s11
15098 ; GFX90A-NEXT: s_mov_b32 s10, s5
15099 ; GFX90A-NEXT: s_mov_b32 s11, s5
15100 ; GFX90A-NEXT: ;;#ASMSTART
15101 ; GFX90A-NEXT: ; use s[8:11]
15102 ; GFX90A-NEXT: ;;#ASMEND
15103 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
15105 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_u_1_1:
15107 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15108 ; GFX940-NEXT: ;;#ASMSTART
15109 ; GFX940-NEXT: ; def s[0:3]
15110 ; GFX940-NEXT: ;;#ASMEND
15111 ; GFX940-NEXT: ;;#ASMSTART
15112 ; GFX940-NEXT: ; def s[4:7]
15113 ; GFX940-NEXT: ;;#ASMEND
15114 ; GFX940-NEXT: s_mov_b32 s8, s7
15115 ; GFX940-NEXT: s_mov_b32 s10, s1
15116 ; GFX940-NEXT: s_mov_b32 s11, s1
15117 ; GFX940-NEXT: ;;#ASMSTART
15118 ; GFX940-NEXT: ; use s[8:11]
15119 ; GFX940-NEXT: ;;#ASMEND
15120 ; GFX940-NEXT: s_setpc_b64 s[30:31]
15121 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
15122 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
15123 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 poison, i32 1, i32 1>
15124 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
15128 define void @s_shuffle_v4p3_v4p3__7_0_1_1() {
15129 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_0_1_1:
15131 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15132 ; GFX900-NEXT: ;;#ASMSTART
15133 ; GFX900-NEXT: ; def s[8:11]
15134 ; GFX900-NEXT: ;;#ASMEND
15135 ; GFX900-NEXT: ;;#ASMSTART
15136 ; GFX900-NEXT: ; def s[4:7]
15137 ; GFX900-NEXT: ;;#ASMEND
15138 ; GFX900-NEXT: s_mov_b32 s8, s11
15139 ; GFX900-NEXT: s_mov_b32 s9, s4
15140 ; GFX900-NEXT: s_mov_b32 s10, s5
15141 ; GFX900-NEXT: s_mov_b32 s11, s5
15142 ; GFX900-NEXT: ;;#ASMSTART
15143 ; GFX900-NEXT: ; use s[8:11]
15144 ; GFX900-NEXT: ;;#ASMEND
15145 ; GFX900-NEXT: s_setpc_b64 s[30:31]
15147 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_0_1_1:
15149 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15150 ; GFX90A-NEXT: ;;#ASMSTART
15151 ; GFX90A-NEXT: ; def s[8:11]
15152 ; GFX90A-NEXT: ;;#ASMEND
15153 ; GFX90A-NEXT: ;;#ASMSTART
15154 ; GFX90A-NEXT: ; def s[4:7]
15155 ; GFX90A-NEXT: ;;#ASMEND
15156 ; GFX90A-NEXT: s_mov_b32 s8, s11
15157 ; GFX90A-NEXT: s_mov_b32 s9, s4
15158 ; GFX90A-NEXT: s_mov_b32 s10, s5
15159 ; GFX90A-NEXT: s_mov_b32 s11, s5
15160 ; GFX90A-NEXT: ;;#ASMSTART
15161 ; GFX90A-NEXT: ; use s[8:11]
15162 ; GFX90A-NEXT: ;;#ASMEND
15163 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
15165 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_0_1_1:
15167 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15168 ; GFX940-NEXT: ;;#ASMSTART
15169 ; GFX940-NEXT: ; def s[0:3]
15170 ; GFX940-NEXT: ;;#ASMEND
15171 ; GFX940-NEXT: ;;#ASMSTART
15172 ; GFX940-NEXT: ; def s[4:7]
15173 ; GFX940-NEXT: ;;#ASMEND
15174 ; GFX940-NEXT: s_mov_b32 s8, s7
15175 ; GFX940-NEXT: s_mov_b32 s9, s0
15176 ; GFX940-NEXT: s_mov_b32 s10, s1
15177 ; GFX940-NEXT: s_mov_b32 s11, s1
15178 ; GFX940-NEXT: ;;#ASMSTART
15179 ; GFX940-NEXT: ; use s[8:11]
15180 ; GFX940-NEXT: ;;#ASMEND
15181 ; GFX940-NEXT: s_setpc_b64 s[30:31]
15182 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
15183 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
15184 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 0, i32 1, i32 1>
15185 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
15189 define void @s_shuffle_v4p3_v4p3__7_2_1_1() {
15190 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_2_1_1:
15192 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15193 ; GFX900-NEXT: ;;#ASMSTART
15194 ; GFX900-NEXT: ; def s[8:11]
15195 ; GFX900-NEXT: ;;#ASMEND
15196 ; GFX900-NEXT: ;;#ASMSTART
15197 ; GFX900-NEXT: ; def s[4:7]
15198 ; GFX900-NEXT: ;;#ASMEND
15199 ; GFX900-NEXT: s_mov_b32 s8, s11
15200 ; GFX900-NEXT: s_mov_b32 s9, s6
15201 ; GFX900-NEXT: s_mov_b32 s10, s5
15202 ; GFX900-NEXT: s_mov_b32 s11, s5
15203 ; GFX900-NEXT: ;;#ASMSTART
15204 ; GFX900-NEXT: ; use s[8:11]
15205 ; GFX900-NEXT: ;;#ASMEND
15206 ; GFX900-NEXT: s_setpc_b64 s[30:31]
15208 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_2_1_1:
15210 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15211 ; GFX90A-NEXT: ;;#ASMSTART
15212 ; GFX90A-NEXT: ; def s[8:11]
15213 ; GFX90A-NEXT: ;;#ASMEND
15214 ; GFX90A-NEXT: ;;#ASMSTART
15215 ; GFX90A-NEXT: ; def s[4:7]
15216 ; GFX90A-NEXT: ;;#ASMEND
15217 ; GFX90A-NEXT: s_mov_b32 s8, s11
15218 ; GFX90A-NEXT: s_mov_b32 s9, s6
15219 ; GFX90A-NEXT: s_mov_b32 s10, s5
15220 ; GFX90A-NEXT: s_mov_b32 s11, s5
15221 ; GFX90A-NEXT: ;;#ASMSTART
15222 ; GFX90A-NEXT: ; use s[8:11]
15223 ; GFX90A-NEXT: ;;#ASMEND
15224 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
15226 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_2_1_1:
15228 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15229 ; GFX940-NEXT: ;;#ASMSTART
15230 ; GFX940-NEXT: ; def s[0:3]
15231 ; GFX940-NEXT: ;;#ASMEND
15232 ; GFX940-NEXT: ;;#ASMSTART
15233 ; GFX940-NEXT: ; def s[4:7]
15234 ; GFX940-NEXT: ;;#ASMEND
15235 ; GFX940-NEXT: s_mov_b32 s8, s7
15236 ; GFX940-NEXT: s_mov_b32 s9, s2
15237 ; GFX940-NEXT: s_mov_b32 s10, s1
15238 ; GFX940-NEXT: s_mov_b32 s11, s1
15239 ; GFX940-NEXT: ;;#ASMSTART
15240 ; GFX940-NEXT: ; use s[8:11]
15241 ; GFX940-NEXT: ;;#ASMEND
15242 ; GFX940-NEXT: s_setpc_b64 s[30:31]
15243 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
15244 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
15245 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 2, i32 1, i32 1>
15246 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
15250 define void @s_shuffle_v4p3_v4p3__7_3_1_1() {
15251 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_3_1_1:
15253 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15254 ; GFX900-NEXT: ;;#ASMSTART
15255 ; GFX900-NEXT: ; def s[8:11]
15256 ; GFX900-NEXT: ;;#ASMEND
15257 ; GFX900-NEXT: ;;#ASMSTART
15258 ; GFX900-NEXT: ; def s[4:7]
15259 ; GFX900-NEXT: ;;#ASMEND
15260 ; GFX900-NEXT: s_mov_b32 s8, s11
15261 ; GFX900-NEXT: s_mov_b32 s9, s7
15262 ; GFX900-NEXT: s_mov_b32 s10, s5
15263 ; GFX900-NEXT: s_mov_b32 s11, s5
15264 ; GFX900-NEXT: ;;#ASMSTART
15265 ; GFX900-NEXT: ; use s[8:11]
15266 ; GFX900-NEXT: ;;#ASMEND
15267 ; GFX900-NEXT: s_setpc_b64 s[30:31]
15269 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_3_1_1:
15271 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15272 ; GFX90A-NEXT: ;;#ASMSTART
15273 ; GFX90A-NEXT: ; def s[8:11]
15274 ; GFX90A-NEXT: ;;#ASMEND
15275 ; GFX90A-NEXT: ;;#ASMSTART
15276 ; GFX90A-NEXT: ; def s[4:7]
15277 ; GFX90A-NEXT: ;;#ASMEND
15278 ; GFX90A-NEXT: s_mov_b32 s8, s11
15279 ; GFX90A-NEXT: s_mov_b32 s9, s7
15280 ; GFX90A-NEXT: s_mov_b32 s10, s5
15281 ; GFX90A-NEXT: s_mov_b32 s11, s5
15282 ; GFX90A-NEXT: ;;#ASMSTART
15283 ; GFX90A-NEXT: ; use s[8:11]
15284 ; GFX90A-NEXT: ;;#ASMEND
15285 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
15287 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_3_1_1:
15289 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15290 ; GFX940-NEXT: ;;#ASMSTART
15291 ; GFX940-NEXT: ; def s[0:3]
15292 ; GFX940-NEXT: ;;#ASMEND
15293 ; GFX940-NEXT: ;;#ASMSTART
15294 ; GFX940-NEXT: ; def s[4:7]
15295 ; GFX940-NEXT: ;;#ASMEND
15296 ; GFX940-NEXT: s_mov_b32 s8, s7
15297 ; GFX940-NEXT: s_mov_b32 s9, s3
15298 ; GFX940-NEXT: s_mov_b32 s10, s1
15299 ; GFX940-NEXT: s_mov_b32 s11, s1
15300 ; GFX940-NEXT: ;;#ASMSTART
15301 ; GFX940-NEXT: ; use s[8:11]
15302 ; GFX940-NEXT: ;;#ASMEND
15303 ; GFX940-NEXT: s_setpc_b64 s[30:31]
15304 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
15305 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
15306 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 3, i32 1, i32 1>
15307 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
15311 define void @s_shuffle_v4p3_v4p3__7_4_1_1() {
15312 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_4_1_1:
15314 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15315 ; GFX900-NEXT: ;;#ASMSTART
15316 ; GFX900-NEXT: ; def s[4:7]
15317 ; GFX900-NEXT: ;;#ASMEND
15318 ; GFX900-NEXT: ;;#ASMSTART
15319 ; GFX900-NEXT: ; def s[12:15]
15320 ; GFX900-NEXT: ;;#ASMEND
15321 ; GFX900-NEXT: s_mov_b32 s8, s15
15322 ; GFX900-NEXT: s_mov_b32 s9, s12
15323 ; GFX900-NEXT: s_mov_b32 s10, s5
15324 ; GFX900-NEXT: s_mov_b32 s11, s5
15325 ; GFX900-NEXT: ;;#ASMSTART
15326 ; GFX900-NEXT: ; use s[8:11]
15327 ; GFX900-NEXT: ;;#ASMEND
15328 ; GFX900-NEXT: s_setpc_b64 s[30:31]
15330 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_4_1_1:
15332 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15333 ; GFX90A-NEXT: ;;#ASMSTART
15334 ; GFX90A-NEXT: ; def s[4:7]
15335 ; GFX90A-NEXT: ;;#ASMEND
15336 ; GFX90A-NEXT: ;;#ASMSTART
15337 ; GFX90A-NEXT: ; def s[12:15]
15338 ; GFX90A-NEXT: ;;#ASMEND
15339 ; GFX90A-NEXT: s_mov_b32 s8, s15
15340 ; GFX90A-NEXT: s_mov_b32 s9, s12
15341 ; GFX90A-NEXT: s_mov_b32 s10, s5
15342 ; GFX90A-NEXT: s_mov_b32 s11, s5
15343 ; GFX90A-NEXT: ;;#ASMSTART
15344 ; GFX90A-NEXT: ; use s[8:11]
15345 ; GFX90A-NEXT: ;;#ASMEND
15346 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
15348 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_4_1_1:
15350 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15351 ; GFX940-NEXT: ;;#ASMSTART
15352 ; GFX940-NEXT: ; def s[0:3]
15353 ; GFX940-NEXT: ;;#ASMEND
15354 ; GFX940-NEXT: ;;#ASMSTART
15355 ; GFX940-NEXT: ; def s[4:7]
15356 ; GFX940-NEXT: ;;#ASMEND
15357 ; GFX940-NEXT: s_mov_b32 s8, s7
15358 ; GFX940-NEXT: s_mov_b32 s9, s4
15359 ; GFX940-NEXT: s_mov_b32 s10, s1
15360 ; GFX940-NEXT: s_mov_b32 s11, s1
15361 ; GFX940-NEXT: ;;#ASMSTART
15362 ; GFX940-NEXT: ; use s[8:11]
15363 ; GFX940-NEXT: ;;#ASMEND
15364 ; GFX940-NEXT: s_setpc_b64 s[30:31]
15365 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
15366 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
15367 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 4, i32 1, i32 1>
15368 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
15372 define void @s_shuffle_v4p3_v4p3__7_5_1_1() {
15373 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_5_1_1:
15375 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15376 ; GFX900-NEXT: ;;#ASMSTART
15377 ; GFX900-NEXT: ; def s[8:11]
15378 ; GFX900-NEXT: ;;#ASMEND
15379 ; GFX900-NEXT: ;;#ASMSTART
15380 ; GFX900-NEXT: ; def s[4:7]
15381 ; GFX900-NEXT: ;;#ASMEND
15382 ; GFX900-NEXT: s_mov_b32 s8, s11
15383 ; GFX900-NEXT: s_mov_b32 s10, s5
15384 ; GFX900-NEXT: s_mov_b32 s11, s5
15385 ; GFX900-NEXT: ;;#ASMSTART
15386 ; GFX900-NEXT: ; use s[8:11]
15387 ; GFX900-NEXT: ;;#ASMEND
15388 ; GFX900-NEXT: s_setpc_b64 s[30:31]
15390 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_5_1_1:
15392 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15393 ; GFX90A-NEXT: ;;#ASMSTART
15394 ; GFX90A-NEXT: ; def s[8:11]
15395 ; GFX90A-NEXT: ;;#ASMEND
15396 ; GFX90A-NEXT: ;;#ASMSTART
15397 ; GFX90A-NEXT: ; def s[4:7]
15398 ; GFX90A-NEXT: ;;#ASMEND
15399 ; GFX90A-NEXT: s_mov_b32 s8, s11
15400 ; GFX90A-NEXT: s_mov_b32 s10, s5
15401 ; GFX90A-NEXT: s_mov_b32 s11, s5
15402 ; GFX90A-NEXT: ;;#ASMSTART
15403 ; GFX90A-NEXT: ; use s[8:11]
15404 ; GFX90A-NEXT: ;;#ASMEND
15405 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
15407 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_5_1_1:
15409 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15410 ; GFX940-NEXT: ;;#ASMSTART
15411 ; GFX940-NEXT: ; def s[8:11]
15412 ; GFX940-NEXT: ;;#ASMEND
15413 ; GFX940-NEXT: ;;#ASMSTART
15414 ; GFX940-NEXT: ; def s[0:3]
15415 ; GFX940-NEXT: ;;#ASMEND
15416 ; GFX940-NEXT: s_mov_b32 s8, s11
15417 ; GFX940-NEXT: s_mov_b32 s10, s1
15418 ; GFX940-NEXT: s_mov_b32 s11, s1
15419 ; GFX940-NEXT: ;;#ASMSTART
15420 ; GFX940-NEXT: ; use s[8:11]
15421 ; GFX940-NEXT: ;;#ASMEND
15422 ; GFX940-NEXT: s_setpc_b64 s[30:31]
15423 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
15424 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
15425 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 5, i32 1, i32 1>
15426 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
15430 define void @s_shuffle_v4p3_v4p3__7_6_1_1() {
15431 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_6_1_1:
15433 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15434 ; GFX900-NEXT: ;;#ASMSTART
15435 ; GFX900-NEXT: ; def s[8:11]
15436 ; GFX900-NEXT: ;;#ASMEND
15437 ; GFX900-NEXT: ;;#ASMSTART
15438 ; GFX900-NEXT: ; def s[4:7]
15439 ; GFX900-NEXT: ;;#ASMEND
15440 ; GFX900-NEXT: s_mov_b32 s8, s11
15441 ; GFX900-NEXT: s_mov_b32 s9, s10
15442 ; GFX900-NEXT: s_mov_b32 s10, s5
15443 ; GFX900-NEXT: s_mov_b32 s11, s5
15444 ; GFX900-NEXT: ;;#ASMSTART
15445 ; GFX900-NEXT: ; use s[8:11]
15446 ; GFX900-NEXT: ;;#ASMEND
15447 ; GFX900-NEXT: s_setpc_b64 s[30:31]
15449 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_6_1_1:
15451 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15452 ; GFX90A-NEXT: ;;#ASMSTART
15453 ; GFX90A-NEXT: ; def s[8:11]
15454 ; GFX90A-NEXT: ;;#ASMEND
15455 ; GFX90A-NEXT: ;;#ASMSTART
15456 ; GFX90A-NEXT: ; def s[4:7]
15457 ; GFX90A-NEXT: ;;#ASMEND
15458 ; GFX90A-NEXT: s_mov_b32 s8, s11
15459 ; GFX90A-NEXT: s_mov_b32 s9, s10
15460 ; GFX90A-NEXT: s_mov_b32 s10, s5
15461 ; GFX90A-NEXT: s_mov_b32 s11, s5
15462 ; GFX90A-NEXT: ;;#ASMSTART
15463 ; GFX90A-NEXT: ; use s[8:11]
15464 ; GFX90A-NEXT: ;;#ASMEND
15465 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
15467 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_6_1_1:
15469 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15470 ; GFX940-NEXT: ;;#ASMSTART
15471 ; GFX940-NEXT: ; def s[0:3]
15472 ; GFX940-NEXT: ;;#ASMEND
15473 ; GFX940-NEXT: ;;#ASMSTART
15474 ; GFX940-NEXT: ; def s[4:7]
15475 ; GFX940-NEXT: ;;#ASMEND
15476 ; GFX940-NEXT: s_mov_b32 s8, s7
15477 ; GFX940-NEXT: s_mov_b32 s9, s6
15478 ; GFX940-NEXT: s_mov_b32 s10, s1
15479 ; GFX940-NEXT: s_mov_b32 s11, s1
15480 ; GFX940-NEXT: ;;#ASMSTART
15481 ; GFX940-NEXT: ; use s[8:11]
15482 ; GFX940-NEXT: ;;#ASMEND
15483 ; GFX940-NEXT: s_setpc_b64 s[30:31]
15484 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
15485 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
15486 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 6, i32 1, i32 1>
15487 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
15491 define void @s_shuffle_v4p3_v4p3__7_7_1_1() {
15492 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_1_1:
15494 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15495 ; GFX900-NEXT: ;;#ASMSTART
15496 ; GFX900-NEXT: ; def s[8:11]
15497 ; GFX900-NEXT: ;;#ASMEND
15498 ; GFX900-NEXT: ;;#ASMSTART
15499 ; GFX900-NEXT: ; def s[4:7]
15500 ; GFX900-NEXT: ;;#ASMEND
15501 ; GFX900-NEXT: s_mov_b32 s8, s11
15502 ; GFX900-NEXT: s_mov_b32 s9, s11
15503 ; GFX900-NEXT: s_mov_b32 s10, s5
15504 ; GFX900-NEXT: s_mov_b32 s11, s5
15505 ; GFX900-NEXT: ;;#ASMSTART
15506 ; GFX900-NEXT: ; use s[8:11]
15507 ; GFX900-NEXT: ;;#ASMEND
15508 ; GFX900-NEXT: s_setpc_b64 s[30:31]
15510 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_1_1:
15512 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15513 ; GFX90A-NEXT: ;;#ASMSTART
15514 ; GFX90A-NEXT: ; def s[8:11]
15515 ; GFX90A-NEXT: ;;#ASMEND
15516 ; GFX90A-NEXT: ;;#ASMSTART
15517 ; GFX90A-NEXT: ; def s[4:7]
15518 ; GFX90A-NEXT: ;;#ASMEND
15519 ; GFX90A-NEXT: s_mov_b32 s8, s11
15520 ; GFX90A-NEXT: s_mov_b32 s9, s11
15521 ; GFX90A-NEXT: s_mov_b32 s10, s5
15522 ; GFX90A-NEXT: s_mov_b32 s11, s5
15523 ; GFX90A-NEXT: ;;#ASMSTART
15524 ; GFX90A-NEXT: ; use s[8:11]
15525 ; GFX90A-NEXT: ;;#ASMEND
15526 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
15528 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_1_1:
15530 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15531 ; GFX940-NEXT: ;;#ASMSTART
15532 ; GFX940-NEXT: ; def s[0:3]
15533 ; GFX940-NEXT: ;;#ASMEND
15534 ; GFX940-NEXT: ;;#ASMSTART
15535 ; GFX940-NEXT: ; def s[4:7]
15536 ; GFX940-NEXT: ;;#ASMEND
15537 ; GFX940-NEXT: s_mov_b32 s8, s7
15538 ; GFX940-NEXT: s_mov_b32 s9, s7
15539 ; GFX940-NEXT: s_mov_b32 s10, s1
15540 ; GFX940-NEXT: s_mov_b32 s11, s1
15541 ; GFX940-NEXT: ;;#ASMSTART
15542 ; GFX940-NEXT: ; use s[8:11]
15543 ; GFX940-NEXT: ;;#ASMEND
15544 ; GFX940-NEXT: s_setpc_b64 s[30:31]
15545 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
15546 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
15547 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 1, i32 1>
15548 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
15552 define void @s_shuffle_v4p3_v4p3__7_7_u_1() {
15553 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_u_1:
15555 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15556 ; GFX900-NEXT: ;;#ASMSTART
15557 ; GFX900-NEXT: ; def s[8:11]
15558 ; GFX900-NEXT: ;;#ASMEND
15559 ; GFX900-NEXT: ;;#ASMSTART
15560 ; GFX900-NEXT: ; def s[4:7]
15561 ; GFX900-NEXT: ;;#ASMEND
15562 ; GFX900-NEXT: s_mov_b32 s8, s11
15563 ; GFX900-NEXT: s_mov_b32 s9, s11
15564 ; GFX900-NEXT: s_mov_b32 s11, s5
15565 ; GFX900-NEXT: ;;#ASMSTART
15566 ; GFX900-NEXT: ; use s[8:11]
15567 ; GFX900-NEXT: ;;#ASMEND
15568 ; GFX900-NEXT: s_setpc_b64 s[30:31]
15570 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_u_1:
15572 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15573 ; GFX90A-NEXT: ;;#ASMSTART
15574 ; GFX90A-NEXT: ; def s[8:11]
15575 ; GFX90A-NEXT: ;;#ASMEND
15576 ; GFX90A-NEXT: ;;#ASMSTART
15577 ; GFX90A-NEXT: ; def s[4:7]
15578 ; GFX90A-NEXT: ;;#ASMEND
15579 ; GFX90A-NEXT: s_mov_b32 s8, s11
15580 ; GFX90A-NEXT: s_mov_b32 s9, s11
15581 ; GFX90A-NEXT: s_mov_b32 s11, s5
15582 ; GFX90A-NEXT: ;;#ASMSTART
15583 ; GFX90A-NEXT: ; use s[8:11]
15584 ; GFX90A-NEXT: ;;#ASMEND
15585 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
15587 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_u_1:
15589 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15590 ; GFX940-NEXT: ;;#ASMSTART
15591 ; GFX940-NEXT: ; def s[0:3]
15592 ; GFX940-NEXT: ;;#ASMEND
15593 ; GFX940-NEXT: ;;#ASMSTART
15594 ; GFX940-NEXT: ; def s[4:7]
15595 ; GFX940-NEXT: ;;#ASMEND
15596 ; GFX940-NEXT: s_mov_b32 s8, s7
15597 ; GFX940-NEXT: s_mov_b32 s9, s7
15598 ; GFX940-NEXT: s_mov_b32 s11, s1
15599 ; GFX940-NEXT: ;;#ASMSTART
15600 ; GFX940-NEXT: ; use s[8:11]
15601 ; GFX940-NEXT: ;;#ASMEND
15602 ; GFX940-NEXT: s_setpc_b64 s[30:31]
15603 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
15604 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
15605 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 poison, i32 1>
15606 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
15610 define void @s_shuffle_v4p3_v4p3__7_7_0_1() {
15611 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_0_1:
15613 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15614 ; GFX900-NEXT: ;;#ASMSTART
15615 ; GFX900-NEXT: ; def s[8:11]
15616 ; GFX900-NEXT: ;;#ASMEND
15617 ; GFX900-NEXT: ;;#ASMSTART
15618 ; GFX900-NEXT: ; def s[4:7]
15619 ; GFX900-NEXT: ;;#ASMEND
15620 ; GFX900-NEXT: s_mov_b32 s8, s11
15621 ; GFX900-NEXT: s_mov_b32 s9, s11
15622 ; GFX900-NEXT: s_mov_b32 s10, s4
15623 ; GFX900-NEXT: s_mov_b32 s11, s5
15624 ; GFX900-NEXT: ;;#ASMSTART
15625 ; GFX900-NEXT: ; use s[8:11]
15626 ; GFX900-NEXT: ;;#ASMEND
15627 ; GFX900-NEXT: s_setpc_b64 s[30:31]
15629 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_0_1:
15631 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15632 ; GFX90A-NEXT: ;;#ASMSTART
15633 ; GFX90A-NEXT: ; def s[8:11]
15634 ; GFX90A-NEXT: ;;#ASMEND
15635 ; GFX90A-NEXT: ;;#ASMSTART
15636 ; GFX90A-NEXT: ; def s[4:7]
15637 ; GFX90A-NEXT: ;;#ASMEND
15638 ; GFX90A-NEXT: s_mov_b32 s8, s11
15639 ; GFX90A-NEXT: s_mov_b32 s9, s11
15640 ; GFX90A-NEXT: s_mov_b32 s10, s4
15641 ; GFX90A-NEXT: s_mov_b32 s11, s5
15642 ; GFX90A-NEXT: ;;#ASMSTART
15643 ; GFX90A-NEXT: ; use s[8:11]
15644 ; GFX90A-NEXT: ;;#ASMEND
15645 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
15647 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_0_1:
15649 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15650 ; GFX940-NEXT: ;;#ASMSTART
15651 ; GFX940-NEXT: ; def s[0:3]
15652 ; GFX940-NEXT: ;;#ASMEND
15653 ; GFX940-NEXT: ;;#ASMSTART
15654 ; GFX940-NEXT: ; def s[4:7]
15655 ; GFX940-NEXT: ;;#ASMEND
15656 ; GFX940-NEXT: s_mov_b32 s8, s7
15657 ; GFX940-NEXT: s_mov_b32 s9, s7
15658 ; GFX940-NEXT: s_mov_b32 s10, s0
15659 ; GFX940-NEXT: s_mov_b32 s11, s1
15660 ; GFX940-NEXT: ;;#ASMSTART
15661 ; GFX940-NEXT: ; use s[8:11]
15662 ; GFX940-NEXT: ;;#ASMEND
15663 ; GFX940-NEXT: s_setpc_b64 s[30:31]
15664 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
15665 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
15666 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 0, i32 1>
15667 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
15671 define void @s_shuffle_v4p3_v4p3__7_7_2_1() {
15672 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_2_1:
15674 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15675 ; GFX900-NEXT: ;;#ASMSTART
15676 ; GFX900-NEXT: ; def s[8:11]
15677 ; GFX900-NEXT: ;;#ASMEND
15678 ; GFX900-NEXT: ;;#ASMSTART
15679 ; GFX900-NEXT: ; def s[4:7]
15680 ; GFX900-NEXT: ;;#ASMEND
15681 ; GFX900-NEXT: s_mov_b32 s8, s11
15682 ; GFX900-NEXT: s_mov_b32 s9, s11
15683 ; GFX900-NEXT: s_mov_b32 s10, s6
15684 ; GFX900-NEXT: s_mov_b32 s11, s5
15685 ; GFX900-NEXT: ;;#ASMSTART
15686 ; GFX900-NEXT: ; use s[8:11]
15687 ; GFX900-NEXT: ;;#ASMEND
15688 ; GFX900-NEXT: s_setpc_b64 s[30:31]
15690 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_2_1:
15692 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15693 ; GFX90A-NEXT: ;;#ASMSTART
15694 ; GFX90A-NEXT: ; def s[8:11]
15695 ; GFX90A-NEXT: ;;#ASMEND
15696 ; GFX90A-NEXT: ;;#ASMSTART
15697 ; GFX90A-NEXT: ; def s[4:7]
15698 ; GFX90A-NEXT: ;;#ASMEND
15699 ; GFX90A-NEXT: s_mov_b32 s8, s11
15700 ; GFX90A-NEXT: s_mov_b32 s9, s11
15701 ; GFX90A-NEXT: s_mov_b32 s10, s6
15702 ; GFX90A-NEXT: s_mov_b32 s11, s5
15703 ; GFX90A-NEXT: ;;#ASMSTART
15704 ; GFX90A-NEXT: ; use s[8:11]
15705 ; GFX90A-NEXT: ;;#ASMEND
15706 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
15708 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_2_1:
15710 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15711 ; GFX940-NEXT: ;;#ASMSTART
15712 ; GFX940-NEXT: ; def s[0:3]
15713 ; GFX940-NEXT: ;;#ASMEND
15714 ; GFX940-NEXT: ;;#ASMSTART
15715 ; GFX940-NEXT: ; def s[4:7]
15716 ; GFX940-NEXT: ;;#ASMEND
15717 ; GFX940-NEXT: s_mov_b32 s8, s7
15718 ; GFX940-NEXT: s_mov_b32 s9, s7
15719 ; GFX940-NEXT: s_mov_b32 s10, s2
15720 ; GFX940-NEXT: s_mov_b32 s11, s1
15721 ; GFX940-NEXT: ;;#ASMSTART
15722 ; GFX940-NEXT: ; use s[8:11]
15723 ; GFX940-NEXT: ;;#ASMEND
15724 ; GFX940-NEXT: s_setpc_b64 s[30:31]
15725 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
15726 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
15727 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 2, i32 1>
15728 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
15732 define void @s_shuffle_v4p3_v4p3__7_7_3_1() {
15733 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_3_1:
15735 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15736 ; GFX900-NEXT: ;;#ASMSTART
15737 ; GFX900-NEXT: ; def s[8:11]
15738 ; GFX900-NEXT: ;;#ASMEND
15739 ; GFX900-NEXT: ;;#ASMSTART
15740 ; GFX900-NEXT: ; def s[4:7]
15741 ; GFX900-NEXT: ;;#ASMEND
15742 ; GFX900-NEXT: s_mov_b32 s8, s11
15743 ; GFX900-NEXT: s_mov_b32 s9, s11
15744 ; GFX900-NEXT: s_mov_b32 s10, s7
15745 ; GFX900-NEXT: s_mov_b32 s11, s5
15746 ; GFX900-NEXT: ;;#ASMSTART
15747 ; GFX900-NEXT: ; use s[8:11]
15748 ; GFX900-NEXT: ;;#ASMEND
15749 ; GFX900-NEXT: s_setpc_b64 s[30:31]
15751 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_3_1:
15753 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15754 ; GFX90A-NEXT: ;;#ASMSTART
15755 ; GFX90A-NEXT: ; def s[8:11]
15756 ; GFX90A-NEXT: ;;#ASMEND
15757 ; GFX90A-NEXT: ;;#ASMSTART
15758 ; GFX90A-NEXT: ; def s[4:7]
15759 ; GFX90A-NEXT: ;;#ASMEND
15760 ; GFX90A-NEXT: s_mov_b32 s8, s11
15761 ; GFX90A-NEXT: s_mov_b32 s9, s11
15762 ; GFX90A-NEXT: s_mov_b32 s10, s7
15763 ; GFX90A-NEXT: s_mov_b32 s11, s5
15764 ; GFX90A-NEXT: ;;#ASMSTART
15765 ; GFX90A-NEXT: ; use s[8:11]
15766 ; GFX90A-NEXT: ;;#ASMEND
15767 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
15769 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_3_1:
15771 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15772 ; GFX940-NEXT: ;;#ASMSTART
15773 ; GFX940-NEXT: ; def s[0:3]
15774 ; GFX940-NEXT: ;;#ASMEND
15775 ; GFX940-NEXT: ;;#ASMSTART
15776 ; GFX940-NEXT: ; def s[4:7]
15777 ; GFX940-NEXT: ;;#ASMEND
15778 ; GFX940-NEXT: s_mov_b32 s8, s7
15779 ; GFX940-NEXT: s_mov_b32 s9, s7
15780 ; GFX940-NEXT: s_mov_b32 s10, s3
15781 ; GFX940-NEXT: s_mov_b32 s11, s1
15782 ; GFX940-NEXT: ;;#ASMSTART
15783 ; GFX940-NEXT: ; use s[8:11]
15784 ; GFX940-NEXT: ;;#ASMEND
15785 ; GFX940-NEXT: s_setpc_b64 s[30:31]
15786 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
15787 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
15788 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 3, i32 1>
15789 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
15793 define void @s_shuffle_v4p3_v4p3__7_7_4_1() {
15794 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_4_1:
15796 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15797 ; GFX900-NEXT: ;;#ASMSTART
15798 ; GFX900-NEXT: ; def s[4:7]
15799 ; GFX900-NEXT: ;;#ASMEND
15800 ; GFX900-NEXT: ;;#ASMSTART
15801 ; GFX900-NEXT: ; def s[12:15]
15802 ; GFX900-NEXT: ;;#ASMEND
15803 ; GFX900-NEXT: s_mov_b32 s8, s15
15804 ; GFX900-NEXT: s_mov_b32 s9, s15
15805 ; GFX900-NEXT: s_mov_b32 s10, s12
15806 ; GFX900-NEXT: s_mov_b32 s11, s5
15807 ; GFX900-NEXT: ;;#ASMSTART
15808 ; GFX900-NEXT: ; use s[8:11]
15809 ; GFX900-NEXT: ;;#ASMEND
15810 ; GFX900-NEXT: s_setpc_b64 s[30:31]
15812 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_4_1:
15814 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15815 ; GFX90A-NEXT: ;;#ASMSTART
15816 ; GFX90A-NEXT: ; def s[4:7]
15817 ; GFX90A-NEXT: ;;#ASMEND
15818 ; GFX90A-NEXT: ;;#ASMSTART
15819 ; GFX90A-NEXT: ; def s[12:15]
15820 ; GFX90A-NEXT: ;;#ASMEND
15821 ; GFX90A-NEXT: s_mov_b32 s8, s15
15822 ; GFX90A-NEXT: s_mov_b32 s9, s15
15823 ; GFX90A-NEXT: s_mov_b32 s10, s12
15824 ; GFX90A-NEXT: s_mov_b32 s11, s5
15825 ; GFX90A-NEXT: ;;#ASMSTART
15826 ; GFX90A-NEXT: ; use s[8:11]
15827 ; GFX90A-NEXT: ;;#ASMEND
15828 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
15830 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_4_1:
15832 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15833 ; GFX940-NEXT: ;;#ASMSTART
15834 ; GFX940-NEXT: ; def s[0:3]
15835 ; GFX940-NEXT: ;;#ASMEND
15836 ; GFX940-NEXT: ;;#ASMSTART
15837 ; GFX940-NEXT: ; def s[4:7]
15838 ; GFX940-NEXT: ;;#ASMEND
15839 ; GFX940-NEXT: s_mov_b32 s8, s7
15840 ; GFX940-NEXT: s_mov_b32 s9, s7
15841 ; GFX940-NEXT: s_mov_b32 s10, s4
15842 ; GFX940-NEXT: s_mov_b32 s11, s1
15843 ; GFX940-NEXT: ;;#ASMSTART
15844 ; GFX940-NEXT: ; use s[8:11]
15845 ; GFX940-NEXT: ;;#ASMEND
15846 ; GFX940-NEXT: s_setpc_b64 s[30:31]
15847 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
15848 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
15849 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 4, i32 1>
15850 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
15854 define void @s_shuffle_v4p3_v4p3__7_7_5_1() {
15855 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_5_1:
15857 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15858 ; GFX900-NEXT: ;;#ASMSTART
15859 ; GFX900-NEXT: ; def s[4:7]
15860 ; GFX900-NEXT: ;;#ASMEND
15861 ; GFX900-NEXT: ;;#ASMSTART
15862 ; GFX900-NEXT: ; def s[12:15]
15863 ; GFX900-NEXT: ;;#ASMEND
15864 ; GFX900-NEXT: s_mov_b32 s8, s15
15865 ; GFX900-NEXT: s_mov_b32 s9, s15
15866 ; GFX900-NEXT: s_mov_b32 s10, s13
15867 ; GFX900-NEXT: s_mov_b32 s11, s5
15868 ; GFX900-NEXT: ;;#ASMSTART
15869 ; GFX900-NEXT: ; use s[8:11]
15870 ; GFX900-NEXT: ;;#ASMEND
15871 ; GFX900-NEXT: s_setpc_b64 s[30:31]
15873 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_5_1:
15875 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15876 ; GFX90A-NEXT: ;;#ASMSTART
15877 ; GFX90A-NEXT: ; def s[4:7]
15878 ; GFX90A-NEXT: ;;#ASMEND
15879 ; GFX90A-NEXT: ;;#ASMSTART
15880 ; GFX90A-NEXT: ; def s[12:15]
15881 ; GFX90A-NEXT: ;;#ASMEND
15882 ; GFX90A-NEXT: s_mov_b32 s8, s15
15883 ; GFX90A-NEXT: s_mov_b32 s9, s15
15884 ; GFX90A-NEXT: s_mov_b32 s10, s13
15885 ; GFX90A-NEXT: s_mov_b32 s11, s5
15886 ; GFX90A-NEXT: ;;#ASMSTART
15887 ; GFX90A-NEXT: ; use s[8:11]
15888 ; GFX90A-NEXT: ;;#ASMEND
15889 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
15891 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_5_1:
15893 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15894 ; GFX940-NEXT: ;;#ASMSTART
15895 ; GFX940-NEXT: ; def s[0:3]
15896 ; GFX940-NEXT: ;;#ASMEND
15897 ; GFX940-NEXT: ;;#ASMSTART
15898 ; GFX940-NEXT: ; def s[4:7]
15899 ; GFX940-NEXT: ;;#ASMEND
15900 ; GFX940-NEXT: s_mov_b32 s8, s7
15901 ; GFX940-NEXT: s_mov_b32 s9, s7
15902 ; GFX940-NEXT: s_mov_b32 s10, s5
15903 ; GFX940-NEXT: s_mov_b32 s11, s1
15904 ; GFX940-NEXT: ;;#ASMSTART
15905 ; GFX940-NEXT: ; use s[8:11]
15906 ; GFX940-NEXT: ;;#ASMEND
15907 ; GFX940-NEXT: s_setpc_b64 s[30:31]
15908 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
15909 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
15910 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 5, i32 1>
15911 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
15915 define void @s_shuffle_v4p3_v4p3__7_7_6_1() {
15916 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_6_1:
15918 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15919 ; GFX900-NEXT: ;;#ASMSTART
15920 ; GFX900-NEXT: ; def s[8:11]
15921 ; GFX900-NEXT: ;;#ASMEND
15922 ; GFX900-NEXT: ;;#ASMSTART
15923 ; GFX900-NEXT: ; def s[4:7]
15924 ; GFX900-NEXT: ;;#ASMEND
15925 ; GFX900-NEXT: s_mov_b32 s8, s11
15926 ; GFX900-NEXT: s_mov_b32 s9, s11
15927 ; GFX900-NEXT: s_mov_b32 s11, s5
15928 ; GFX900-NEXT: ;;#ASMSTART
15929 ; GFX900-NEXT: ; use s[8:11]
15930 ; GFX900-NEXT: ;;#ASMEND
15931 ; GFX900-NEXT: s_setpc_b64 s[30:31]
15933 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_6_1:
15935 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15936 ; GFX90A-NEXT: ;;#ASMSTART
15937 ; GFX90A-NEXT: ; def s[8:11]
15938 ; GFX90A-NEXT: ;;#ASMEND
15939 ; GFX90A-NEXT: ;;#ASMSTART
15940 ; GFX90A-NEXT: ; def s[4:7]
15941 ; GFX90A-NEXT: ;;#ASMEND
15942 ; GFX90A-NEXT: s_mov_b32 s8, s11
15943 ; GFX90A-NEXT: s_mov_b32 s9, s11
15944 ; GFX90A-NEXT: s_mov_b32 s11, s5
15945 ; GFX90A-NEXT: ;;#ASMSTART
15946 ; GFX90A-NEXT: ; use s[8:11]
15947 ; GFX90A-NEXT: ;;#ASMEND
15948 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
15950 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_6_1:
15952 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15953 ; GFX940-NEXT: ;;#ASMSTART
15954 ; GFX940-NEXT: ; def s[8:11]
15955 ; GFX940-NEXT: ;;#ASMEND
15956 ; GFX940-NEXT: ;;#ASMSTART
15957 ; GFX940-NEXT: ; def s[0:3]
15958 ; GFX940-NEXT: ;;#ASMEND
15959 ; GFX940-NEXT: s_mov_b32 s8, s11
15960 ; GFX940-NEXT: s_mov_b32 s9, s11
15961 ; GFX940-NEXT: s_mov_b32 s11, s1
15962 ; GFX940-NEXT: ;;#ASMSTART
15963 ; GFX940-NEXT: ; use s[8:11]
15964 ; GFX940-NEXT: ;;#ASMEND
15965 ; GFX940-NEXT: s_setpc_b64 s[30:31]
15966 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
15967 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
15968 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 6, i32 1>
15969 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
15973 define void @s_shuffle_v4p3_v4p3__u_2_2_2() {
15974 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__u_2_2_2:
15976 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15977 ; GFX9-NEXT: ;;#ASMSTART
15978 ; GFX9-NEXT: ; def s[8:11]
15979 ; GFX9-NEXT: ;;#ASMEND
15980 ; GFX9-NEXT: s_mov_b32 s9, s10
15981 ; GFX9-NEXT: s_mov_b32 s11, s10
15982 ; GFX9-NEXT: ;;#ASMSTART
15983 ; GFX9-NEXT: ; use s[8:11]
15984 ; GFX9-NEXT: ;;#ASMEND
15985 ; GFX9-NEXT: s_setpc_b64 s[30:31]
15986 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
15987 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 poison, i32 2, i32 2, i32 2>
15988 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
15992 define void @s_shuffle_v4p3_v4p3__0_2_2_2() {
15993 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__0_2_2_2:
15995 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15996 ; GFX9-NEXT: ;;#ASMSTART
15997 ; GFX9-NEXT: ; def s[8:11]
15998 ; GFX9-NEXT: ;;#ASMEND
15999 ; GFX9-NEXT: s_mov_b32 s9, s10
16000 ; GFX9-NEXT: s_mov_b32 s11, s10
16001 ; GFX9-NEXT: ;;#ASMSTART
16002 ; GFX9-NEXT: ; use s[8:11]
16003 ; GFX9-NEXT: ;;#ASMEND
16004 ; GFX9-NEXT: s_setpc_b64 s[30:31]
16005 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
16006 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 0, i32 2, i32 2, i32 2>
16007 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
16011 define void @s_shuffle_v4p3_v4p3__1_2_2_2() {
16012 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__1_2_2_2:
16014 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16015 ; GFX9-NEXT: ;;#ASMSTART
16016 ; GFX9-NEXT: ; def s[8:11]
16017 ; GFX9-NEXT: ;;#ASMEND
16018 ; GFX9-NEXT: s_mov_b32 s8, s9
16019 ; GFX9-NEXT: s_mov_b32 s9, s10
16020 ; GFX9-NEXT: s_mov_b32 s11, s10
16021 ; GFX9-NEXT: ;;#ASMSTART
16022 ; GFX9-NEXT: ; use s[8:11]
16023 ; GFX9-NEXT: ;;#ASMEND
16024 ; GFX9-NEXT: s_setpc_b64 s[30:31]
16025 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
16026 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 1, i32 2, i32 2, i32 2>
16027 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
16031 define void @s_shuffle_v4p3_v4p3__2_2_2_2() {
16032 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__2_2_2_2:
16034 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16035 ; GFX9-NEXT: ;;#ASMSTART
16036 ; GFX9-NEXT: ; def s[8:11]
16037 ; GFX9-NEXT: ;;#ASMEND
16038 ; GFX9-NEXT: s_mov_b32 s8, s10
16039 ; GFX9-NEXT: s_mov_b32 s9, s10
16040 ; GFX9-NEXT: s_mov_b32 s11, s10
16041 ; GFX9-NEXT: ;;#ASMSTART
16042 ; GFX9-NEXT: ; use s[8:11]
16043 ; GFX9-NEXT: ;;#ASMEND
16044 ; GFX9-NEXT: s_setpc_b64 s[30:31]
16045 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
16046 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 2, i32 2, i32 2, i32 2>
16047 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
16051 define void @s_shuffle_v4p3_v4p3__3_2_2_2() {
16052 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__3_2_2_2:
16054 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16055 ; GFX9-NEXT: ;;#ASMSTART
16056 ; GFX9-NEXT: ; def s[8:11]
16057 ; GFX9-NEXT: ;;#ASMEND
16058 ; GFX9-NEXT: s_mov_b32 s8, s11
16059 ; GFX9-NEXT: s_mov_b32 s9, s10
16060 ; GFX9-NEXT: s_mov_b32 s11, s10
16061 ; GFX9-NEXT: ;;#ASMSTART
16062 ; GFX9-NEXT: ; use s[8:11]
16063 ; GFX9-NEXT: ;;#ASMEND
16064 ; GFX9-NEXT: s_setpc_b64 s[30:31]
16065 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
16066 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 3, i32 2, i32 2, i32 2>
16067 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
16071 define void @s_shuffle_v4p3_v4p3__4_2_2_2() {
16072 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__4_2_2_2:
16074 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16075 ; GFX9-NEXT: ;;#ASMSTART
16076 ; GFX9-NEXT: ; def s[8:11]
16077 ; GFX9-NEXT: ;;#ASMEND
16078 ; GFX9-NEXT: s_mov_b32 s9, s10
16079 ; GFX9-NEXT: s_mov_b32 s11, s10
16080 ; GFX9-NEXT: ;;#ASMSTART
16081 ; GFX9-NEXT: ; use s[8:11]
16082 ; GFX9-NEXT: ;;#ASMEND
16083 ; GFX9-NEXT: s_setpc_b64 s[30:31]
16084 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
16085 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 4, i32 2, i32 2, i32 2>
16086 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
16090 define void @s_shuffle_v4p3_v4p3__5_2_2_2() {
16091 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__5_2_2_2:
16093 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16094 ; GFX900-NEXT: ;;#ASMSTART
16095 ; GFX900-NEXT: ; def s[8:11]
16096 ; GFX900-NEXT: ;;#ASMEND
16097 ; GFX900-NEXT: ;;#ASMSTART
16098 ; GFX900-NEXT: ; def s[4:7]
16099 ; GFX900-NEXT: ;;#ASMEND
16100 ; GFX900-NEXT: s_mov_b32 s8, s5
16101 ; GFX900-NEXT: s_mov_b32 s9, s10
16102 ; GFX900-NEXT: s_mov_b32 s11, s10
16103 ; GFX900-NEXT: ;;#ASMSTART
16104 ; GFX900-NEXT: ; use s[8:11]
16105 ; GFX900-NEXT: ;;#ASMEND
16106 ; GFX900-NEXT: s_setpc_b64 s[30:31]
16108 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__5_2_2_2:
16110 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16111 ; GFX90A-NEXT: ;;#ASMSTART
16112 ; GFX90A-NEXT: ; def s[8:11]
16113 ; GFX90A-NEXT: ;;#ASMEND
16114 ; GFX90A-NEXT: ;;#ASMSTART
16115 ; GFX90A-NEXT: ; def s[4:7]
16116 ; GFX90A-NEXT: ;;#ASMEND
16117 ; GFX90A-NEXT: s_mov_b32 s8, s5
16118 ; GFX90A-NEXT: s_mov_b32 s9, s10
16119 ; GFX90A-NEXT: s_mov_b32 s11, s10
16120 ; GFX90A-NEXT: ;;#ASMSTART
16121 ; GFX90A-NEXT: ; use s[8:11]
16122 ; GFX90A-NEXT: ;;#ASMEND
16123 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
16125 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__5_2_2_2:
16127 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16128 ; GFX940-NEXT: ;;#ASMSTART
16129 ; GFX940-NEXT: ; def s[8:11]
16130 ; GFX940-NEXT: ;;#ASMEND
16131 ; GFX940-NEXT: ;;#ASMSTART
16132 ; GFX940-NEXT: ; def s[0:3]
16133 ; GFX940-NEXT: ;;#ASMEND
16134 ; GFX940-NEXT: s_mov_b32 s8, s1
16135 ; GFX940-NEXT: s_mov_b32 s9, s10
16136 ; GFX940-NEXT: s_mov_b32 s11, s10
16137 ; GFX940-NEXT: ;;#ASMSTART
16138 ; GFX940-NEXT: ; use s[8:11]
16139 ; GFX940-NEXT: ;;#ASMEND
16140 ; GFX940-NEXT: s_setpc_b64 s[30:31]
16141 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
16142 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
16143 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 5, i32 2, i32 2, i32 2>
16144 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
16148 define void @s_shuffle_v4p3_v4p3__6_2_2_2() {
16149 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__6_2_2_2:
16151 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16152 ; GFX900-NEXT: ;;#ASMSTART
16153 ; GFX900-NEXT: ; def s[8:11]
16154 ; GFX900-NEXT: ;;#ASMEND
16155 ; GFX900-NEXT: ;;#ASMSTART
16156 ; GFX900-NEXT: ; def s[4:7]
16157 ; GFX900-NEXT: ;;#ASMEND
16158 ; GFX900-NEXT: s_mov_b32 s8, s6
16159 ; GFX900-NEXT: s_mov_b32 s9, s10
16160 ; GFX900-NEXT: s_mov_b32 s11, s10
16161 ; GFX900-NEXT: ;;#ASMSTART
16162 ; GFX900-NEXT: ; use s[8:11]
16163 ; GFX900-NEXT: ;;#ASMEND
16164 ; GFX900-NEXT: s_setpc_b64 s[30:31]
16166 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__6_2_2_2:
16168 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16169 ; GFX90A-NEXT: ;;#ASMSTART
16170 ; GFX90A-NEXT: ; def s[8:11]
16171 ; GFX90A-NEXT: ;;#ASMEND
16172 ; GFX90A-NEXT: ;;#ASMSTART
16173 ; GFX90A-NEXT: ; def s[4:7]
16174 ; GFX90A-NEXT: ;;#ASMEND
16175 ; GFX90A-NEXT: s_mov_b32 s8, s6
16176 ; GFX90A-NEXT: s_mov_b32 s9, s10
16177 ; GFX90A-NEXT: s_mov_b32 s11, s10
16178 ; GFX90A-NEXT: ;;#ASMSTART
16179 ; GFX90A-NEXT: ; use s[8:11]
16180 ; GFX90A-NEXT: ;;#ASMEND
16181 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
16183 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__6_2_2_2:
16185 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16186 ; GFX940-NEXT: ;;#ASMSTART
16187 ; GFX940-NEXT: ; def s[8:11]
16188 ; GFX940-NEXT: ;;#ASMEND
16189 ; GFX940-NEXT: ;;#ASMSTART
16190 ; GFX940-NEXT: ; def s[0:3]
16191 ; GFX940-NEXT: ;;#ASMEND
16192 ; GFX940-NEXT: s_mov_b32 s8, s2
16193 ; GFX940-NEXT: s_mov_b32 s9, s10
16194 ; GFX940-NEXT: s_mov_b32 s11, s10
16195 ; GFX940-NEXT: ;;#ASMSTART
16196 ; GFX940-NEXT: ; use s[8:11]
16197 ; GFX940-NEXT: ;;#ASMEND
16198 ; GFX940-NEXT: s_setpc_b64 s[30:31]
16199 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
16200 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
16201 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 6, i32 2, i32 2, i32 2>
16202 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
16206 define void @s_shuffle_v4p3_v4p3__7_2_2_2() {
16207 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_2_2_2:
16209 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16210 ; GFX900-NEXT: ;;#ASMSTART
16211 ; GFX900-NEXT: ; def s[8:11]
16212 ; GFX900-NEXT: ;;#ASMEND
16213 ; GFX900-NEXT: ;;#ASMSTART
16214 ; GFX900-NEXT: ; def s[4:7]
16215 ; GFX900-NEXT: ;;#ASMEND
16216 ; GFX900-NEXT: s_mov_b32 s8, s7
16217 ; GFX900-NEXT: s_mov_b32 s9, s10
16218 ; GFX900-NEXT: s_mov_b32 s11, s10
16219 ; GFX900-NEXT: ;;#ASMSTART
16220 ; GFX900-NEXT: ; use s[8:11]
16221 ; GFX900-NEXT: ;;#ASMEND
16222 ; GFX900-NEXT: s_setpc_b64 s[30:31]
16224 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_2_2_2:
16226 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16227 ; GFX90A-NEXT: ;;#ASMSTART
16228 ; GFX90A-NEXT: ; def s[8:11]
16229 ; GFX90A-NEXT: ;;#ASMEND
16230 ; GFX90A-NEXT: ;;#ASMSTART
16231 ; GFX90A-NEXT: ; def s[4:7]
16232 ; GFX90A-NEXT: ;;#ASMEND
16233 ; GFX90A-NEXT: s_mov_b32 s8, s7
16234 ; GFX90A-NEXT: s_mov_b32 s9, s10
16235 ; GFX90A-NEXT: s_mov_b32 s11, s10
16236 ; GFX90A-NEXT: ;;#ASMSTART
16237 ; GFX90A-NEXT: ; use s[8:11]
16238 ; GFX90A-NEXT: ;;#ASMEND
16239 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
16241 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_2_2_2:
16243 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16244 ; GFX940-NEXT: ;;#ASMSTART
16245 ; GFX940-NEXT: ; def s[8:11]
16246 ; GFX940-NEXT: ;;#ASMEND
16247 ; GFX940-NEXT: ;;#ASMSTART
16248 ; GFX940-NEXT: ; def s[0:3]
16249 ; GFX940-NEXT: ;;#ASMEND
16250 ; GFX940-NEXT: s_mov_b32 s8, s3
16251 ; GFX940-NEXT: s_mov_b32 s9, s10
16252 ; GFX940-NEXT: s_mov_b32 s11, s10
16253 ; GFX940-NEXT: ;;#ASMSTART
16254 ; GFX940-NEXT: ; use s[8:11]
16255 ; GFX940-NEXT: ;;#ASMEND
16256 ; GFX940-NEXT: s_setpc_b64 s[30:31]
16257 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
16258 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
16259 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 2, i32 2, i32 2>
16260 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
16264 define void @s_shuffle_v4p3_v4p3__7_u_2_2() {
16265 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_u_2_2:
16267 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16268 ; GFX900-NEXT: ;;#ASMSTART
16269 ; GFX900-NEXT: ; def s[8:11]
16270 ; GFX900-NEXT: ;;#ASMEND
16271 ; GFX900-NEXT: ;;#ASMSTART
16272 ; GFX900-NEXT: ; def s[4:7]
16273 ; GFX900-NEXT: ;;#ASMEND
16274 ; GFX900-NEXT: s_mov_b32 s8, s7
16275 ; GFX900-NEXT: s_mov_b32 s11, s10
16276 ; GFX900-NEXT: ;;#ASMSTART
16277 ; GFX900-NEXT: ; use s[8:11]
16278 ; GFX900-NEXT: ;;#ASMEND
16279 ; GFX900-NEXT: s_setpc_b64 s[30:31]
16281 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_u_2_2:
16283 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16284 ; GFX90A-NEXT: ;;#ASMSTART
16285 ; GFX90A-NEXT: ; def s[8:11]
16286 ; GFX90A-NEXT: ;;#ASMEND
16287 ; GFX90A-NEXT: ;;#ASMSTART
16288 ; GFX90A-NEXT: ; def s[4:7]
16289 ; GFX90A-NEXT: ;;#ASMEND
16290 ; GFX90A-NEXT: s_mov_b32 s8, s7
16291 ; GFX90A-NEXT: s_mov_b32 s11, s10
16292 ; GFX90A-NEXT: ;;#ASMSTART
16293 ; GFX90A-NEXT: ; use s[8:11]
16294 ; GFX90A-NEXT: ;;#ASMEND
16295 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
16297 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_u_2_2:
16299 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16300 ; GFX940-NEXT: ;;#ASMSTART
16301 ; GFX940-NEXT: ; def s[8:11]
16302 ; GFX940-NEXT: ;;#ASMEND
16303 ; GFX940-NEXT: ;;#ASMSTART
16304 ; GFX940-NEXT: ; def s[0:3]
16305 ; GFX940-NEXT: ;;#ASMEND
16306 ; GFX940-NEXT: s_mov_b32 s8, s3
16307 ; GFX940-NEXT: s_mov_b32 s11, s10
16308 ; GFX940-NEXT: ;;#ASMSTART
16309 ; GFX940-NEXT: ; use s[8:11]
16310 ; GFX940-NEXT: ;;#ASMEND
16311 ; GFX940-NEXT: s_setpc_b64 s[30:31]
16312 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
16313 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
16314 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 poison, i32 2, i32 2>
16315 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
16319 define void @s_shuffle_v4p3_v4p3__7_0_2_2() {
16320 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_0_2_2:
16322 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16323 ; GFX900-NEXT: ;;#ASMSTART
16324 ; GFX900-NEXT: ; def s[8:11]
16325 ; GFX900-NEXT: ;;#ASMEND
16326 ; GFX900-NEXT: ;;#ASMSTART
16327 ; GFX900-NEXT: ; def s[4:7]
16328 ; GFX900-NEXT: ;;#ASMEND
16329 ; GFX900-NEXT: s_mov_b32 s8, s11
16330 ; GFX900-NEXT: s_mov_b32 s9, s4
16331 ; GFX900-NEXT: s_mov_b32 s10, s6
16332 ; GFX900-NEXT: s_mov_b32 s11, s6
16333 ; GFX900-NEXT: ;;#ASMSTART
16334 ; GFX900-NEXT: ; use s[8:11]
16335 ; GFX900-NEXT: ;;#ASMEND
16336 ; GFX900-NEXT: s_setpc_b64 s[30:31]
16338 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_0_2_2:
16340 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16341 ; GFX90A-NEXT: ;;#ASMSTART
16342 ; GFX90A-NEXT: ; def s[8:11]
16343 ; GFX90A-NEXT: ;;#ASMEND
16344 ; GFX90A-NEXT: ;;#ASMSTART
16345 ; GFX90A-NEXT: ; def s[4:7]
16346 ; GFX90A-NEXT: ;;#ASMEND
16347 ; GFX90A-NEXT: s_mov_b32 s8, s11
16348 ; GFX90A-NEXT: s_mov_b32 s9, s4
16349 ; GFX90A-NEXT: s_mov_b32 s10, s6
16350 ; GFX90A-NEXT: s_mov_b32 s11, s6
16351 ; GFX90A-NEXT: ;;#ASMSTART
16352 ; GFX90A-NEXT: ; use s[8:11]
16353 ; GFX90A-NEXT: ;;#ASMEND
16354 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
16356 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_0_2_2:
16358 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16359 ; GFX940-NEXT: ;;#ASMSTART
16360 ; GFX940-NEXT: ; def s[0:3]
16361 ; GFX940-NEXT: ;;#ASMEND
16362 ; GFX940-NEXT: ;;#ASMSTART
16363 ; GFX940-NEXT: ; def s[4:7]
16364 ; GFX940-NEXT: ;;#ASMEND
16365 ; GFX940-NEXT: s_mov_b32 s8, s7
16366 ; GFX940-NEXT: s_mov_b32 s9, s0
16367 ; GFX940-NEXT: s_mov_b32 s10, s2
16368 ; GFX940-NEXT: s_mov_b32 s11, s2
16369 ; GFX940-NEXT: ;;#ASMSTART
16370 ; GFX940-NEXT: ; use s[8:11]
16371 ; GFX940-NEXT: ;;#ASMEND
16372 ; GFX940-NEXT: s_setpc_b64 s[30:31]
16373 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
16374 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
16375 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 0, i32 2, i32 2>
16376 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
16380 define void @s_shuffle_v4p3_v4p3__7_1_2_2() {
16381 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_1_2_2:
16383 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16384 ; GFX900-NEXT: ;;#ASMSTART
16385 ; GFX900-NEXT: ; def s[8:11]
16386 ; GFX900-NEXT: ;;#ASMEND
16387 ; GFX900-NEXT: ;;#ASMSTART
16388 ; GFX900-NEXT: ; def s[4:7]
16389 ; GFX900-NEXT: ;;#ASMEND
16390 ; GFX900-NEXT: s_mov_b32 s8, s7
16391 ; GFX900-NEXT: s_mov_b32 s11, s10
16392 ; GFX900-NEXT: ;;#ASMSTART
16393 ; GFX900-NEXT: ; use s[8:11]
16394 ; GFX900-NEXT: ;;#ASMEND
16395 ; GFX900-NEXT: s_setpc_b64 s[30:31]
16397 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_1_2_2:
16399 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16400 ; GFX90A-NEXT: ;;#ASMSTART
16401 ; GFX90A-NEXT: ; def s[8:11]
16402 ; GFX90A-NEXT: ;;#ASMEND
16403 ; GFX90A-NEXT: ;;#ASMSTART
16404 ; GFX90A-NEXT: ; def s[4:7]
16405 ; GFX90A-NEXT: ;;#ASMEND
16406 ; GFX90A-NEXT: s_mov_b32 s8, s7
16407 ; GFX90A-NEXT: s_mov_b32 s11, s10
16408 ; GFX90A-NEXT: ;;#ASMSTART
16409 ; GFX90A-NEXT: ; use s[8:11]
16410 ; GFX90A-NEXT: ;;#ASMEND
16411 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
16413 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_1_2_2:
16415 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16416 ; GFX940-NEXT: ;;#ASMSTART
16417 ; GFX940-NEXT: ; def s[8:11]
16418 ; GFX940-NEXT: ;;#ASMEND
16419 ; GFX940-NEXT: ;;#ASMSTART
16420 ; GFX940-NEXT: ; def s[0:3]
16421 ; GFX940-NEXT: ;;#ASMEND
16422 ; GFX940-NEXT: s_mov_b32 s8, s3
16423 ; GFX940-NEXT: s_mov_b32 s11, s10
16424 ; GFX940-NEXT: ;;#ASMSTART
16425 ; GFX940-NEXT: ; use s[8:11]
16426 ; GFX940-NEXT: ;;#ASMEND
16427 ; GFX940-NEXT: s_setpc_b64 s[30:31]
16428 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
16429 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
16430 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 1, i32 2, i32 2>
16431 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
16435 define void @s_shuffle_v4p3_v4p3__7_3_2_2() {
16436 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_3_2_2:
16438 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16439 ; GFX900-NEXT: ;;#ASMSTART
16440 ; GFX900-NEXT: ; def s[8:11]
16441 ; GFX900-NEXT: ;;#ASMEND
16442 ; GFX900-NEXT: ;;#ASMSTART
16443 ; GFX900-NEXT: ; def s[4:7]
16444 ; GFX900-NEXT: ;;#ASMEND
16445 ; GFX900-NEXT: s_mov_b32 s8, s7
16446 ; GFX900-NEXT: s_mov_b32 s9, s11
16447 ; GFX900-NEXT: s_mov_b32 s11, s10
16448 ; GFX900-NEXT: ;;#ASMSTART
16449 ; GFX900-NEXT: ; use s[8:11]
16450 ; GFX900-NEXT: ;;#ASMEND
16451 ; GFX900-NEXT: s_setpc_b64 s[30:31]
16453 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_3_2_2:
16455 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16456 ; GFX90A-NEXT: ;;#ASMSTART
16457 ; GFX90A-NEXT: ; def s[8:11]
16458 ; GFX90A-NEXT: ;;#ASMEND
16459 ; GFX90A-NEXT: ;;#ASMSTART
16460 ; GFX90A-NEXT: ; def s[4:7]
16461 ; GFX90A-NEXT: ;;#ASMEND
16462 ; GFX90A-NEXT: s_mov_b32 s8, s7
16463 ; GFX90A-NEXT: s_mov_b32 s9, s11
16464 ; GFX90A-NEXT: s_mov_b32 s11, s10
16465 ; GFX90A-NEXT: ;;#ASMSTART
16466 ; GFX90A-NEXT: ; use s[8:11]
16467 ; GFX90A-NEXT: ;;#ASMEND
16468 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
16470 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_3_2_2:
16472 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16473 ; GFX940-NEXT: ;;#ASMSTART
16474 ; GFX940-NEXT: ; def s[8:11]
16475 ; GFX940-NEXT: ;;#ASMEND
16476 ; GFX940-NEXT: ;;#ASMSTART
16477 ; GFX940-NEXT: ; def s[0:3]
16478 ; GFX940-NEXT: ;;#ASMEND
16479 ; GFX940-NEXT: s_mov_b32 s8, s3
16480 ; GFX940-NEXT: s_mov_b32 s9, s11
16481 ; GFX940-NEXT: s_mov_b32 s11, s10
16482 ; GFX940-NEXT: ;;#ASMSTART
16483 ; GFX940-NEXT: ; use s[8:11]
16484 ; GFX940-NEXT: ;;#ASMEND
16485 ; GFX940-NEXT: s_setpc_b64 s[30:31]
16486 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
16487 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
16488 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 3, i32 2, i32 2>
16489 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
16493 define void @s_shuffle_v4p3_v4p3__7_4_2_2() {
16494 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_4_2_2:
16496 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16497 ; GFX900-NEXT: ;;#ASMSTART
16498 ; GFX900-NEXT: ; def s[8:11]
16499 ; GFX900-NEXT: ;;#ASMEND
16500 ; GFX900-NEXT: ;;#ASMSTART
16501 ; GFX900-NEXT: ; def s[4:7]
16502 ; GFX900-NEXT: ;;#ASMEND
16503 ; GFX900-NEXT: s_mov_b32 s8, s7
16504 ; GFX900-NEXT: s_mov_b32 s9, s4
16505 ; GFX900-NEXT: s_mov_b32 s11, s10
16506 ; GFX900-NEXT: ;;#ASMSTART
16507 ; GFX900-NEXT: ; use s[8:11]
16508 ; GFX900-NEXT: ;;#ASMEND
16509 ; GFX900-NEXT: s_setpc_b64 s[30:31]
16511 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_4_2_2:
16513 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16514 ; GFX90A-NEXT: ;;#ASMSTART
16515 ; GFX90A-NEXT: ; def s[8:11]
16516 ; GFX90A-NEXT: ;;#ASMEND
16517 ; GFX90A-NEXT: ;;#ASMSTART
16518 ; GFX90A-NEXT: ; def s[4:7]
16519 ; GFX90A-NEXT: ;;#ASMEND
16520 ; GFX90A-NEXT: s_mov_b32 s8, s7
16521 ; GFX90A-NEXT: s_mov_b32 s9, s4
16522 ; GFX90A-NEXT: s_mov_b32 s11, s10
16523 ; GFX90A-NEXT: ;;#ASMSTART
16524 ; GFX90A-NEXT: ; use s[8:11]
16525 ; GFX90A-NEXT: ;;#ASMEND
16526 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
16528 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_4_2_2:
16530 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16531 ; GFX940-NEXT: ;;#ASMSTART
16532 ; GFX940-NEXT: ; def s[8:11]
16533 ; GFX940-NEXT: ;;#ASMEND
16534 ; GFX940-NEXT: ;;#ASMSTART
16535 ; GFX940-NEXT: ; def s[0:3]
16536 ; GFX940-NEXT: ;;#ASMEND
16537 ; GFX940-NEXT: s_mov_b32 s8, s3
16538 ; GFX940-NEXT: s_mov_b32 s9, s0
16539 ; GFX940-NEXT: s_mov_b32 s11, s10
16540 ; GFX940-NEXT: ;;#ASMSTART
16541 ; GFX940-NEXT: ; use s[8:11]
16542 ; GFX940-NEXT: ;;#ASMEND
16543 ; GFX940-NEXT: s_setpc_b64 s[30:31]
16544 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
16545 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
16546 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 4, i32 2, i32 2>
16547 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
16551 define void @s_shuffle_v4p3_v4p3__7_5_2_2() {
16552 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_5_2_2:
16554 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16555 ; GFX900-NEXT: ;;#ASMSTART
16556 ; GFX900-NEXT: ; def s[8:11]
16557 ; GFX900-NEXT: ;;#ASMEND
16558 ; GFX900-NEXT: ;;#ASMSTART
16559 ; GFX900-NEXT: ; def s[4:7]
16560 ; GFX900-NEXT: ;;#ASMEND
16561 ; GFX900-NEXT: s_mov_b32 s8, s11
16562 ; GFX900-NEXT: s_mov_b32 s10, s6
16563 ; GFX900-NEXT: s_mov_b32 s11, s6
16564 ; GFX900-NEXT: ;;#ASMSTART
16565 ; GFX900-NEXT: ; use s[8:11]
16566 ; GFX900-NEXT: ;;#ASMEND
16567 ; GFX900-NEXT: s_setpc_b64 s[30:31]
16569 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_5_2_2:
16571 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16572 ; GFX90A-NEXT: ;;#ASMSTART
16573 ; GFX90A-NEXT: ; def s[8:11]
16574 ; GFX90A-NEXT: ;;#ASMEND
16575 ; GFX90A-NEXT: ;;#ASMSTART
16576 ; GFX90A-NEXT: ; def s[4:7]
16577 ; GFX90A-NEXT: ;;#ASMEND
16578 ; GFX90A-NEXT: s_mov_b32 s8, s11
16579 ; GFX90A-NEXT: s_mov_b32 s10, s6
16580 ; GFX90A-NEXT: s_mov_b32 s11, s6
16581 ; GFX90A-NEXT: ;;#ASMSTART
16582 ; GFX90A-NEXT: ; use s[8:11]
16583 ; GFX90A-NEXT: ;;#ASMEND
16584 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
16586 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_5_2_2:
16588 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16589 ; GFX940-NEXT: ;;#ASMSTART
16590 ; GFX940-NEXT: ; def s[8:11]
16591 ; GFX940-NEXT: ;;#ASMEND
16592 ; GFX940-NEXT: ;;#ASMSTART
16593 ; GFX940-NEXT: ; def s[0:3]
16594 ; GFX940-NEXT: ;;#ASMEND
16595 ; GFX940-NEXT: s_mov_b32 s8, s11
16596 ; GFX940-NEXT: s_mov_b32 s10, s2
16597 ; GFX940-NEXT: s_mov_b32 s11, s2
16598 ; GFX940-NEXT: ;;#ASMSTART
16599 ; GFX940-NEXT: ; use s[8:11]
16600 ; GFX940-NEXT: ;;#ASMEND
16601 ; GFX940-NEXT: s_setpc_b64 s[30:31]
16602 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
16603 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
16604 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 5, i32 2, i32 2>
16605 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
16609 define void @s_shuffle_v4p3_v4p3__7_6_2_2() {
16610 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_6_2_2:
16612 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16613 ; GFX900-NEXT: ;;#ASMSTART
16614 ; GFX900-NEXT: ; def s[8:11]
16615 ; GFX900-NEXT: ;;#ASMEND
16616 ; GFX900-NEXT: ;;#ASMSTART
16617 ; GFX900-NEXT: ; def s[4:7]
16618 ; GFX900-NEXT: ;;#ASMEND
16619 ; GFX900-NEXT: s_mov_b32 s8, s7
16620 ; GFX900-NEXT: s_mov_b32 s9, s6
16621 ; GFX900-NEXT: s_mov_b32 s11, s10
16622 ; GFX900-NEXT: ;;#ASMSTART
16623 ; GFX900-NEXT: ; use s[8:11]
16624 ; GFX900-NEXT: ;;#ASMEND
16625 ; GFX900-NEXT: s_setpc_b64 s[30:31]
16627 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_6_2_2:
16629 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16630 ; GFX90A-NEXT: ;;#ASMSTART
16631 ; GFX90A-NEXT: ; def s[8:11]
16632 ; GFX90A-NEXT: ;;#ASMEND
16633 ; GFX90A-NEXT: ;;#ASMSTART
16634 ; GFX90A-NEXT: ; def s[4:7]
16635 ; GFX90A-NEXT: ;;#ASMEND
16636 ; GFX90A-NEXT: s_mov_b32 s8, s7
16637 ; GFX90A-NEXT: s_mov_b32 s9, s6
16638 ; GFX90A-NEXT: s_mov_b32 s11, s10
16639 ; GFX90A-NEXT: ;;#ASMSTART
16640 ; GFX90A-NEXT: ; use s[8:11]
16641 ; GFX90A-NEXT: ;;#ASMEND
16642 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
16644 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_6_2_2:
16646 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16647 ; GFX940-NEXT: ;;#ASMSTART
16648 ; GFX940-NEXT: ; def s[8:11]
16649 ; GFX940-NEXT: ;;#ASMEND
16650 ; GFX940-NEXT: ;;#ASMSTART
16651 ; GFX940-NEXT: ; def s[0:3]
16652 ; GFX940-NEXT: ;;#ASMEND
16653 ; GFX940-NEXT: s_mov_b32 s8, s3
16654 ; GFX940-NEXT: s_mov_b32 s9, s2
16655 ; GFX940-NEXT: s_mov_b32 s11, s10
16656 ; GFX940-NEXT: ;;#ASMSTART
16657 ; GFX940-NEXT: ; use s[8:11]
16658 ; GFX940-NEXT: ;;#ASMEND
16659 ; GFX940-NEXT: s_setpc_b64 s[30:31]
16660 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
16661 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
16662 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 6, i32 2, i32 2>
16663 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
16667 define void @s_shuffle_v4p3_v4p3__7_7_2_2() {
16668 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_2_2:
16670 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16671 ; GFX900-NEXT: ;;#ASMSTART
16672 ; GFX900-NEXT: ; def s[8:11]
16673 ; GFX900-NEXT: ;;#ASMEND
16674 ; GFX900-NEXT: ;;#ASMSTART
16675 ; GFX900-NEXT: ; def s[4:7]
16676 ; GFX900-NEXT: ;;#ASMEND
16677 ; GFX900-NEXT: s_mov_b32 s8, s7
16678 ; GFX900-NEXT: s_mov_b32 s9, s7
16679 ; GFX900-NEXT: s_mov_b32 s11, s10
16680 ; GFX900-NEXT: ;;#ASMSTART
16681 ; GFX900-NEXT: ; use s[8:11]
16682 ; GFX900-NEXT: ;;#ASMEND
16683 ; GFX900-NEXT: s_setpc_b64 s[30:31]
16685 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_2_2:
16687 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16688 ; GFX90A-NEXT: ;;#ASMSTART
16689 ; GFX90A-NEXT: ; def s[8:11]
16690 ; GFX90A-NEXT: ;;#ASMEND
16691 ; GFX90A-NEXT: ;;#ASMSTART
16692 ; GFX90A-NEXT: ; def s[4:7]
16693 ; GFX90A-NEXT: ;;#ASMEND
16694 ; GFX90A-NEXT: s_mov_b32 s8, s7
16695 ; GFX90A-NEXT: s_mov_b32 s9, s7
16696 ; GFX90A-NEXT: s_mov_b32 s11, s10
16697 ; GFX90A-NEXT: ;;#ASMSTART
16698 ; GFX90A-NEXT: ; use s[8:11]
16699 ; GFX90A-NEXT: ;;#ASMEND
16700 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
16702 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_2_2:
16704 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16705 ; GFX940-NEXT: ;;#ASMSTART
16706 ; GFX940-NEXT: ; def s[8:11]
16707 ; GFX940-NEXT: ;;#ASMEND
16708 ; GFX940-NEXT: ;;#ASMSTART
16709 ; GFX940-NEXT: ; def s[0:3]
16710 ; GFX940-NEXT: ;;#ASMEND
16711 ; GFX940-NEXT: s_mov_b32 s8, s3
16712 ; GFX940-NEXT: s_mov_b32 s9, s3
16713 ; GFX940-NEXT: s_mov_b32 s11, s10
16714 ; GFX940-NEXT: ;;#ASMSTART
16715 ; GFX940-NEXT: ; use s[8:11]
16716 ; GFX940-NEXT: ;;#ASMEND
16717 ; GFX940-NEXT: s_setpc_b64 s[30:31]
16718 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
16719 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
16720 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 2, i32 2>
16721 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
16725 define void @s_shuffle_v4p3_v4p3__7_7_u_2() {
16726 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_u_2:
16728 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16729 ; GFX900-NEXT: ;;#ASMSTART
16730 ; GFX900-NEXT: ; def s[8:11]
16731 ; GFX900-NEXT: ;;#ASMEND
16732 ; GFX900-NEXT: ;;#ASMSTART
16733 ; GFX900-NEXT: ; def s[4:7]
16734 ; GFX900-NEXT: ;;#ASMEND
16735 ; GFX900-NEXT: s_mov_b32 s8, s11
16736 ; GFX900-NEXT: s_mov_b32 s9, s11
16737 ; GFX900-NEXT: s_mov_b32 s11, s6
16738 ; GFX900-NEXT: ;;#ASMSTART
16739 ; GFX900-NEXT: ; use s[8:11]
16740 ; GFX900-NEXT: ;;#ASMEND
16741 ; GFX900-NEXT: s_setpc_b64 s[30:31]
16743 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_u_2:
16745 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16746 ; GFX90A-NEXT: ;;#ASMSTART
16747 ; GFX90A-NEXT: ; def s[8:11]
16748 ; GFX90A-NEXT: ;;#ASMEND
16749 ; GFX90A-NEXT: ;;#ASMSTART
16750 ; GFX90A-NEXT: ; def s[4:7]
16751 ; GFX90A-NEXT: ;;#ASMEND
16752 ; GFX90A-NEXT: s_mov_b32 s8, s11
16753 ; GFX90A-NEXT: s_mov_b32 s9, s11
16754 ; GFX90A-NEXT: s_mov_b32 s11, s6
16755 ; GFX90A-NEXT: ;;#ASMSTART
16756 ; GFX90A-NEXT: ; use s[8:11]
16757 ; GFX90A-NEXT: ;;#ASMEND
16758 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
16760 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_u_2:
16762 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16763 ; GFX940-NEXT: ;;#ASMSTART
16764 ; GFX940-NEXT: ; def s[0:3]
16765 ; GFX940-NEXT: ;;#ASMEND
16766 ; GFX940-NEXT: ;;#ASMSTART
16767 ; GFX940-NEXT: ; def s[4:7]
16768 ; GFX940-NEXT: ;;#ASMEND
16769 ; GFX940-NEXT: s_mov_b32 s8, s7
16770 ; GFX940-NEXT: s_mov_b32 s9, s7
16771 ; GFX940-NEXT: s_mov_b32 s11, s2
16772 ; GFX940-NEXT: ;;#ASMSTART
16773 ; GFX940-NEXT: ; use s[8:11]
16774 ; GFX940-NEXT: ;;#ASMEND
16775 ; GFX940-NEXT: s_setpc_b64 s[30:31]
16776 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
16777 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
16778 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 poison, i32 2>
16779 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
16783 define void @s_shuffle_v4p3_v4p3__7_7_0_2() {
16784 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_0_2:
16786 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16787 ; GFX900-NEXT: ;;#ASMSTART
16788 ; GFX900-NEXT: ; def s[8:11]
16789 ; GFX900-NEXT: ;;#ASMEND
16790 ; GFX900-NEXT: ;;#ASMSTART
16791 ; GFX900-NEXT: ; def s[4:7]
16792 ; GFX900-NEXT: ;;#ASMEND
16793 ; GFX900-NEXT: s_mov_b32 s8, s11
16794 ; GFX900-NEXT: s_mov_b32 s9, s11
16795 ; GFX900-NEXT: s_mov_b32 s10, s4
16796 ; GFX900-NEXT: s_mov_b32 s11, s6
16797 ; GFX900-NEXT: ;;#ASMSTART
16798 ; GFX900-NEXT: ; use s[8:11]
16799 ; GFX900-NEXT: ;;#ASMEND
16800 ; GFX900-NEXT: s_setpc_b64 s[30:31]
16802 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_0_2:
16804 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16805 ; GFX90A-NEXT: ;;#ASMSTART
16806 ; GFX90A-NEXT: ; def s[8:11]
16807 ; GFX90A-NEXT: ;;#ASMEND
16808 ; GFX90A-NEXT: ;;#ASMSTART
16809 ; GFX90A-NEXT: ; def s[4:7]
16810 ; GFX90A-NEXT: ;;#ASMEND
16811 ; GFX90A-NEXT: s_mov_b32 s8, s11
16812 ; GFX90A-NEXT: s_mov_b32 s9, s11
16813 ; GFX90A-NEXT: s_mov_b32 s10, s4
16814 ; GFX90A-NEXT: s_mov_b32 s11, s6
16815 ; GFX90A-NEXT: ;;#ASMSTART
16816 ; GFX90A-NEXT: ; use s[8:11]
16817 ; GFX90A-NEXT: ;;#ASMEND
16818 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
16820 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_0_2:
16822 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16823 ; GFX940-NEXT: ;;#ASMSTART
16824 ; GFX940-NEXT: ; def s[0:3]
16825 ; GFX940-NEXT: ;;#ASMEND
16826 ; GFX940-NEXT: ;;#ASMSTART
16827 ; GFX940-NEXT: ; def s[4:7]
16828 ; GFX940-NEXT: ;;#ASMEND
16829 ; GFX940-NEXT: s_mov_b32 s8, s7
16830 ; GFX940-NEXT: s_mov_b32 s9, s7
16831 ; GFX940-NEXT: s_mov_b32 s10, s0
16832 ; GFX940-NEXT: s_mov_b32 s11, s2
16833 ; GFX940-NEXT: ;;#ASMSTART
16834 ; GFX940-NEXT: ; use s[8:11]
16835 ; GFX940-NEXT: ;;#ASMEND
16836 ; GFX940-NEXT: s_setpc_b64 s[30:31]
16837 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
16838 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
16839 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 0, i32 2>
16840 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
16844 define void @s_shuffle_v4p3_v4p3__7_7_1_2() {
16845 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_1_2:
16847 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16848 ; GFX900-NEXT: ;;#ASMSTART
16849 ; GFX900-NEXT: ; def s[8:11]
16850 ; GFX900-NEXT: ;;#ASMEND
16851 ; GFX900-NEXT: ;;#ASMSTART
16852 ; GFX900-NEXT: ; def s[4:7]
16853 ; GFX900-NEXT: ;;#ASMEND
16854 ; GFX900-NEXT: s_mov_b32 s8, s11
16855 ; GFX900-NEXT: s_mov_b32 s9, s11
16856 ; GFX900-NEXT: s_mov_b32 s10, s5
16857 ; GFX900-NEXT: s_mov_b32 s11, s6
16858 ; GFX900-NEXT: ;;#ASMSTART
16859 ; GFX900-NEXT: ; use s[8:11]
16860 ; GFX900-NEXT: ;;#ASMEND
16861 ; GFX900-NEXT: s_setpc_b64 s[30:31]
16863 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_1_2:
16865 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16866 ; GFX90A-NEXT: ;;#ASMSTART
16867 ; GFX90A-NEXT: ; def s[8:11]
16868 ; GFX90A-NEXT: ;;#ASMEND
16869 ; GFX90A-NEXT: ;;#ASMSTART
16870 ; GFX90A-NEXT: ; def s[4:7]
16871 ; GFX90A-NEXT: ;;#ASMEND
16872 ; GFX90A-NEXT: s_mov_b32 s8, s11
16873 ; GFX90A-NEXT: s_mov_b32 s9, s11
16874 ; GFX90A-NEXT: s_mov_b32 s10, s5
16875 ; GFX90A-NEXT: s_mov_b32 s11, s6
16876 ; GFX90A-NEXT: ;;#ASMSTART
16877 ; GFX90A-NEXT: ; use s[8:11]
16878 ; GFX90A-NEXT: ;;#ASMEND
16879 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
16881 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_1_2:
16883 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16884 ; GFX940-NEXT: ;;#ASMSTART
16885 ; GFX940-NEXT: ; def s[0:3]
16886 ; GFX940-NEXT: ;;#ASMEND
16887 ; GFX940-NEXT: ;;#ASMSTART
16888 ; GFX940-NEXT: ; def s[4:7]
16889 ; GFX940-NEXT: ;;#ASMEND
16890 ; GFX940-NEXT: s_mov_b32 s8, s7
16891 ; GFX940-NEXT: s_mov_b32 s9, s7
16892 ; GFX940-NEXT: s_mov_b32 s10, s1
16893 ; GFX940-NEXT: s_mov_b32 s11, s2
16894 ; GFX940-NEXT: ;;#ASMSTART
16895 ; GFX940-NEXT: ; use s[8:11]
16896 ; GFX940-NEXT: ;;#ASMEND
16897 ; GFX940-NEXT: s_setpc_b64 s[30:31]
16898 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
16899 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
16900 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 1, i32 2>
16901 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
16905 define void @s_shuffle_v4p3_v4p3__7_7_3_2() {
16906 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_3_2:
16908 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16909 ; GFX900-NEXT: ;;#ASMSTART
16910 ; GFX900-NEXT: ; def s[8:11]
16911 ; GFX900-NEXT: ;;#ASMEND
16912 ; GFX900-NEXT: ;;#ASMSTART
16913 ; GFX900-NEXT: ; def s[4:7]
16914 ; GFX900-NEXT: ;;#ASMEND
16915 ; GFX900-NEXT: s_mov_b32 s8, s11
16916 ; GFX900-NEXT: s_mov_b32 s9, s11
16917 ; GFX900-NEXT: s_mov_b32 s10, s7
16918 ; GFX900-NEXT: s_mov_b32 s11, s6
16919 ; GFX900-NEXT: ;;#ASMSTART
16920 ; GFX900-NEXT: ; use s[8:11]
16921 ; GFX900-NEXT: ;;#ASMEND
16922 ; GFX900-NEXT: s_setpc_b64 s[30:31]
16924 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_3_2:
16926 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16927 ; GFX90A-NEXT: ;;#ASMSTART
16928 ; GFX90A-NEXT: ; def s[8:11]
16929 ; GFX90A-NEXT: ;;#ASMEND
16930 ; GFX90A-NEXT: ;;#ASMSTART
16931 ; GFX90A-NEXT: ; def s[4:7]
16932 ; GFX90A-NEXT: ;;#ASMEND
16933 ; GFX90A-NEXT: s_mov_b32 s8, s11
16934 ; GFX90A-NEXT: s_mov_b32 s9, s11
16935 ; GFX90A-NEXT: s_mov_b32 s10, s7
16936 ; GFX90A-NEXT: s_mov_b32 s11, s6
16937 ; GFX90A-NEXT: ;;#ASMSTART
16938 ; GFX90A-NEXT: ; use s[8:11]
16939 ; GFX90A-NEXT: ;;#ASMEND
16940 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
16942 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_3_2:
16944 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16945 ; GFX940-NEXT: ;;#ASMSTART
16946 ; GFX940-NEXT: ; def s[0:3]
16947 ; GFX940-NEXT: ;;#ASMEND
16948 ; GFX940-NEXT: ;;#ASMSTART
16949 ; GFX940-NEXT: ; def s[4:7]
16950 ; GFX940-NEXT: ;;#ASMEND
16951 ; GFX940-NEXT: s_mov_b32 s8, s7
16952 ; GFX940-NEXT: s_mov_b32 s9, s7
16953 ; GFX940-NEXT: s_mov_b32 s10, s3
16954 ; GFX940-NEXT: s_mov_b32 s11, s2
16955 ; GFX940-NEXT: ;;#ASMSTART
16956 ; GFX940-NEXT: ; use s[8:11]
16957 ; GFX940-NEXT: ;;#ASMEND
16958 ; GFX940-NEXT: s_setpc_b64 s[30:31]
16959 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
16960 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
16961 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 3, i32 2>
16962 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
16966 define void @s_shuffle_v4p3_v4p3__7_7_4_2() {
16967 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_4_2:
16969 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16970 ; GFX900-NEXT: ;;#ASMSTART
16971 ; GFX900-NEXT: ; def s[4:7]
16972 ; GFX900-NEXT: ;;#ASMEND
16973 ; GFX900-NEXT: ;;#ASMSTART
16974 ; GFX900-NEXT: ; def s[12:15]
16975 ; GFX900-NEXT: ;;#ASMEND
16976 ; GFX900-NEXT: s_mov_b32 s8, s15
16977 ; GFX900-NEXT: s_mov_b32 s9, s15
16978 ; GFX900-NEXT: s_mov_b32 s10, s12
16979 ; GFX900-NEXT: s_mov_b32 s11, s6
16980 ; GFX900-NEXT: ;;#ASMSTART
16981 ; GFX900-NEXT: ; use s[8:11]
16982 ; GFX900-NEXT: ;;#ASMEND
16983 ; GFX900-NEXT: s_setpc_b64 s[30:31]
16985 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_4_2:
16987 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
16988 ; GFX90A-NEXT: ;;#ASMSTART
16989 ; GFX90A-NEXT: ; def s[4:7]
16990 ; GFX90A-NEXT: ;;#ASMEND
16991 ; GFX90A-NEXT: ;;#ASMSTART
16992 ; GFX90A-NEXT: ; def s[12:15]
16993 ; GFX90A-NEXT: ;;#ASMEND
16994 ; GFX90A-NEXT: s_mov_b32 s8, s15
16995 ; GFX90A-NEXT: s_mov_b32 s9, s15
16996 ; GFX90A-NEXT: s_mov_b32 s10, s12
16997 ; GFX90A-NEXT: s_mov_b32 s11, s6
16998 ; GFX90A-NEXT: ;;#ASMSTART
16999 ; GFX90A-NEXT: ; use s[8:11]
17000 ; GFX90A-NEXT: ;;#ASMEND
17001 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
17003 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_4_2:
17005 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17006 ; GFX940-NEXT: ;;#ASMSTART
17007 ; GFX940-NEXT: ; def s[0:3]
17008 ; GFX940-NEXT: ;;#ASMEND
17009 ; GFX940-NEXT: ;;#ASMSTART
17010 ; GFX940-NEXT: ; def s[4:7]
17011 ; GFX940-NEXT: ;;#ASMEND
17012 ; GFX940-NEXT: s_mov_b32 s8, s7
17013 ; GFX940-NEXT: s_mov_b32 s9, s7
17014 ; GFX940-NEXT: s_mov_b32 s10, s4
17015 ; GFX940-NEXT: s_mov_b32 s11, s2
17016 ; GFX940-NEXT: ;;#ASMSTART
17017 ; GFX940-NEXT: ; use s[8:11]
17018 ; GFX940-NEXT: ;;#ASMEND
17019 ; GFX940-NEXT: s_setpc_b64 s[30:31]
17020 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
17021 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
17022 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 4, i32 2>
17023 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
17027 define void @s_shuffle_v4p3_v4p3__7_7_5_2() {
17028 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_5_2:
17030 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17031 ; GFX900-NEXT: ;;#ASMSTART
17032 ; GFX900-NEXT: ; def s[4:7]
17033 ; GFX900-NEXT: ;;#ASMEND
17034 ; GFX900-NEXT: ;;#ASMSTART
17035 ; GFX900-NEXT: ; def s[12:15]
17036 ; GFX900-NEXT: ;;#ASMEND
17037 ; GFX900-NEXT: s_mov_b32 s8, s15
17038 ; GFX900-NEXT: s_mov_b32 s9, s15
17039 ; GFX900-NEXT: s_mov_b32 s10, s13
17040 ; GFX900-NEXT: s_mov_b32 s11, s6
17041 ; GFX900-NEXT: ;;#ASMSTART
17042 ; GFX900-NEXT: ; use s[8:11]
17043 ; GFX900-NEXT: ;;#ASMEND
17044 ; GFX900-NEXT: s_setpc_b64 s[30:31]
17046 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_5_2:
17048 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17049 ; GFX90A-NEXT: ;;#ASMSTART
17050 ; GFX90A-NEXT: ; def s[4:7]
17051 ; GFX90A-NEXT: ;;#ASMEND
17052 ; GFX90A-NEXT: ;;#ASMSTART
17053 ; GFX90A-NEXT: ; def s[12:15]
17054 ; GFX90A-NEXT: ;;#ASMEND
17055 ; GFX90A-NEXT: s_mov_b32 s8, s15
17056 ; GFX90A-NEXT: s_mov_b32 s9, s15
17057 ; GFX90A-NEXT: s_mov_b32 s10, s13
17058 ; GFX90A-NEXT: s_mov_b32 s11, s6
17059 ; GFX90A-NEXT: ;;#ASMSTART
17060 ; GFX90A-NEXT: ; use s[8:11]
17061 ; GFX90A-NEXT: ;;#ASMEND
17062 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
17064 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_5_2:
17066 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17067 ; GFX940-NEXT: ;;#ASMSTART
17068 ; GFX940-NEXT: ; def s[0:3]
17069 ; GFX940-NEXT: ;;#ASMEND
17070 ; GFX940-NEXT: ;;#ASMSTART
17071 ; GFX940-NEXT: ; def s[4:7]
17072 ; GFX940-NEXT: ;;#ASMEND
17073 ; GFX940-NEXT: s_mov_b32 s8, s7
17074 ; GFX940-NEXT: s_mov_b32 s9, s7
17075 ; GFX940-NEXT: s_mov_b32 s10, s5
17076 ; GFX940-NEXT: s_mov_b32 s11, s2
17077 ; GFX940-NEXT: ;;#ASMSTART
17078 ; GFX940-NEXT: ; use s[8:11]
17079 ; GFX940-NEXT: ;;#ASMEND
17080 ; GFX940-NEXT: s_setpc_b64 s[30:31]
17081 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
17082 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
17083 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 5, i32 2>
17084 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
17088 define void @s_shuffle_v4p3_v4p3__7_7_6_2() {
17089 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_6_2:
17091 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17092 ; GFX900-NEXT: ;;#ASMSTART
17093 ; GFX900-NEXT: ; def s[8:11]
17094 ; GFX900-NEXT: ;;#ASMEND
17095 ; GFX900-NEXT: ;;#ASMSTART
17096 ; GFX900-NEXT: ; def s[4:7]
17097 ; GFX900-NEXT: ;;#ASMEND
17098 ; GFX900-NEXT: s_mov_b32 s8, s11
17099 ; GFX900-NEXT: s_mov_b32 s9, s11
17100 ; GFX900-NEXT: s_mov_b32 s11, s6
17101 ; GFX900-NEXT: ;;#ASMSTART
17102 ; GFX900-NEXT: ; use s[8:11]
17103 ; GFX900-NEXT: ;;#ASMEND
17104 ; GFX900-NEXT: s_setpc_b64 s[30:31]
17106 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_6_2:
17108 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17109 ; GFX90A-NEXT: ;;#ASMSTART
17110 ; GFX90A-NEXT: ; def s[8:11]
17111 ; GFX90A-NEXT: ;;#ASMEND
17112 ; GFX90A-NEXT: ;;#ASMSTART
17113 ; GFX90A-NEXT: ; def s[4:7]
17114 ; GFX90A-NEXT: ;;#ASMEND
17115 ; GFX90A-NEXT: s_mov_b32 s8, s11
17116 ; GFX90A-NEXT: s_mov_b32 s9, s11
17117 ; GFX90A-NEXT: s_mov_b32 s11, s6
17118 ; GFX90A-NEXT: ;;#ASMSTART
17119 ; GFX90A-NEXT: ; use s[8:11]
17120 ; GFX90A-NEXT: ;;#ASMEND
17121 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
17123 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_6_2:
17125 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17126 ; GFX940-NEXT: ;;#ASMSTART
17127 ; GFX940-NEXT: ; def s[8:11]
17128 ; GFX940-NEXT: ;;#ASMEND
17129 ; GFX940-NEXT: ;;#ASMSTART
17130 ; GFX940-NEXT: ; def s[0:3]
17131 ; GFX940-NEXT: ;;#ASMEND
17132 ; GFX940-NEXT: s_mov_b32 s8, s11
17133 ; GFX940-NEXT: s_mov_b32 s9, s11
17134 ; GFX940-NEXT: s_mov_b32 s11, s2
17135 ; GFX940-NEXT: ;;#ASMSTART
17136 ; GFX940-NEXT: ; use s[8:11]
17137 ; GFX940-NEXT: ;;#ASMEND
17138 ; GFX940-NEXT: s_setpc_b64 s[30:31]
17139 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
17140 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
17141 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 6, i32 2>
17142 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
17146 define void @s_shuffle_v4p3_v4p3__u_3_3_3() {
17147 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__u_3_3_3:
17149 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17150 ; GFX9-NEXT: ;;#ASMSTART
17151 ; GFX9-NEXT: ; def s[8:11]
17152 ; GFX9-NEXT: ;;#ASMEND
17153 ; GFX9-NEXT: s_mov_b32 s9, s11
17154 ; GFX9-NEXT: s_mov_b32 s10, s11
17155 ; GFX9-NEXT: ;;#ASMSTART
17156 ; GFX9-NEXT: ; use s[8:11]
17157 ; GFX9-NEXT: ;;#ASMEND
17158 ; GFX9-NEXT: s_setpc_b64 s[30:31]
17159 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
17160 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 poison, i32 3, i32 3, i32 3>
17161 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
17165 define void @s_shuffle_v4p3_v4p3__0_3_3_3() {
17166 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__0_3_3_3:
17168 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17169 ; GFX9-NEXT: ;;#ASMSTART
17170 ; GFX9-NEXT: ; def s[8:11]
17171 ; GFX9-NEXT: ;;#ASMEND
17172 ; GFX9-NEXT: s_mov_b32 s9, s11
17173 ; GFX9-NEXT: s_mov_b32 s10, s11
17174 ; GFX9-NEXT: ;;#ASMSTART
17175 ; GFX9-NEXT: ; use s[8:11]
17176 ; GFX9-NEXT: ;;#ASMEND
17177 ; GFX9-NEXT: s_setpc_b64 s[30:31]
17178 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
17179 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 0, i32 3, i32 3, i32 3>
17180 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
17184 define void @s_shuffle_v4p3_v4p3__1_3_3_3() {
17185 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__1_3_3_3:
17187 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17188 ; GFX9-NEXT: ;;#ASMSTART
17189 ; GFX9-NEXT: ; def s[8:11]
17190 ; GFX9-NEXT: ;;#ASMEND
17191 ; GFX9-NEXT: s_mov_b32 s8, s9
17192 ; GFX9-NEXT: s_mov_b32 s9, s11
17193 ; GFX9-NEXT: s_mov_b32 s10, s11
17194 ; GFX9-NEXT: ;;#ASMSTART
17195 ; GFX9-NEXT: ; use s[8:11]
17196 ; GFX9-NEXT: ;;#ASMEND
17197 ; GFX9-NEXT: s_setpc_b64 s[30:31]
17198 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
17199 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 1, i32 3, i32 3, i32 3>
17200 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
17204 define void @s_shuffle_v4p3_v4p3__2_3_3_3() {
17205 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__2_3_3_3:
17207 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17208 ; GFX9-NEXT: ;;#ASMSTART
17209 ; GFX9-NEXT: ; def s[8:11]
17210 ; GFX9-NEXT: ;;#ASMEND
17211 ; GFX9-NEXT: s_mov_b32 s8, s10
17212 ; GFX9-NEXT: s_mov_b32 s9, s11
17213 ; GFX9-NEXT: s_mov_b32 s10, s11
17214 ; GFX9-NEXT: ;;#ASMSTART
17215 ; GFX9-NEXT: ; use s[8:11]
17216 ; GFX9-NEXT: ;;#ASMEND
17217 ; GFX9-NEXT: s_setpc_b64 s[30:31]
17218 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
17219 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 2, i32 3, i32 3, i32 3>
17220 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
17224 define void @s_shuffle_v4p3_v4p3__3_3_3_3() {
17225 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__3_3_3_3:
17227 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17228 ; GFX9-NEXT: ;;#ASMSTART
17229 ; GFX9-NEXT: ; def s[8:11]
17230 ; GFX9-NEXT: ;;#ASMEND
17231 ; GFX9-NEXT: s_mov_b32 s8, s11
17232 ; GFX9-NEXT: s_mov_b32 s9, s11
17233 ; GFX9-NEXT: s_mov_b32 s10, s11
17234 ; GFX9-NEXT: ;;#ASMSTART
17235 ; GFX9-NEXT: ; use s[8:11]
17236 ; GFX9-NEXT: ;;#ASMEND
17237 ; GFX9-NEXT: s_setpc_b64 s[30:31]
17238 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
17239 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 3, i32 3, i32 3, i32 3>
17240 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
17244 define void @s_shuffle_v4p3_v4p3__4_3_3_3() {
17245 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__4_3_3_3:
17247 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17248 ; GFX9-NEXT: ;;#ASMSTART
17249 ; GFX9-NEXT: ; def s[8:11]
17250 ; GFX9-NEXT: ;;#ASMEND
17251 ; GFX9-NEXT: s_mov_b32 s9, s11
17252 ; GFX9-NEXT: s_mov_b32 s10, s11
17253 ; GFX9-NEXT: ;;#ASMSTART
17254 ; GFX9-NEXT: ; use s[8:11]
17255 ; GFX9-NEXT: ;;#ASMEND
17256 ; GFX9-NEXT: s_setpc_b64 s[30:31]
17257 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
17258 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 4, i32 3, i32 3, i32 3>
17259 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
17263 define void @s_shuffle_v4p3_v4p3__5_3_3_3() {
17264 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__5_3_3_3:
17266 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17267 ; GFX900-NEXT: ;;#ASMSTART
17268 ; GFX900-NEXT: ; def s[8:11]
17269 ; GFX900-NEXT: ;;#ASMEND
17270 ; GFX900-NEXT: ;;#ASMSTART
17271 ; GFX900-NEXT: ; def s[4:7]
17272 ; GFX900-NEXT: ;;#ASMEND
17273 ; GFX900-NEXT: s_mov_b32 s8, s5
17274 ; GFX900-NEXT: s_mov_b32 s9, s11
17275 ; GFX900-NEXT: s_mov_b32 s10, s11
17276 ; GFX900-NEXT: ;;#ASMSTART
17277 ; GFX900-NEXT: ; use s[8:11]
17278 ; GFX900-NEXT: ;;#ASMEND
17279 ; GFX900-NEXT: s_setpc_b64 s[30:31]
17281 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__5_3_3_3:
17283 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17284 ; GFX90A-NEXT: ;;#ASMSTART
17285 ; GFX90A-NEXT: ; def s[8:11]
17286 ; GFX90A-NEXT: ;;#ASMEND
17287 ; GFX90A-NEXT: ;;#ASMSTART
17288 ; GFX90A-NEXT: ; def s[4:7]
17289 ; GFX90A-NEXT: ;;#ASMEND
17290 ; GFX90A-NEXT: s_mov_b32 s8, s5
17291 ; GFX90A-NEXT: s_mov_b32 s9, s11
17292 ; GFX90A-NEXT: s_mov_b32 s10, s11
17293 ; GFX90A-NEXT: ;;#ASMSTART
17294 ; GFX90A-NEXT: ; use s[8:11]
17295 ; GFX90A-NEXT: ;;#ASMEND
17296 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
17298 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__5_3_3_3:
17300 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17301 ; GFX940-NEXT: ;;#ASMSTART
17302 ; GFX940-NEXT: ; def s[8:11]
17303 ; GFX940-NEXT: ;;#ASMEND
17304 ; GFX940-NEXT: ;;#ASMSTART
17305 ; GFX940-NEXT: ; def s[0:3]
17306 ; GFX940-NEXT: ;;#ASMEND
17307 ; GFX940-NEXT: s_mov_b32 s8, s1
17308 ; GFX940-NEXT: s_mov_b32 s9, s11
17309 ; GFX940-NEXT: s_mov_b32 s10, s11
17310 ; GFX940-NEXT: ;;#ASMSTART
17311 ; GFX940-NEXT: ; use s[8:11]
17312 ; GFX940-NEXT: ;;#ASMEND
17313 ; GFX940-NEXT: s_setpc_b64 s[30:31]
17314 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
17315 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
17316 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 5, i32 3, i32 3, i32 3>
17317 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
17321 define void @s_shuffle_v4p3_v4p3__6_3_3_3() {
17322 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__6_3_3_3:
17324 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17325 ; GFX900-NEXT: ;;#ASMSTART
17326 ; GFX900-NEXT: ; def s[8:11]
17327 ; GFX900-NEXT: ;;#ASMEND
17328 ; GFX900-NEXT: ;;#ASMSTART
17329 ; GFX900-NEXT: ; def s[4:7]
17330 ; GFX900-NEXT: ;;#ASMEND
17331 ; GFX900-NEXT: s_mov_b32 s8, s6
17332 ; GFX900-NEXT: s_mov_b32 s9, s11
17333 ; GFX900-NEXT: s_mov_b32 s10, s11
17334 ; GFX900-NEXT: ;;#ASMSTART
17335 ; GFX900-NEXT: ; use s[8:11]
17336 ; GFX900-NEXT: ;;#ASMEND
17337 ; GFX900-NEXT: s_setpc_b64 s[30:31]
17339 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__6_3_3_3:
17341 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17342 ; GFX90A-NEXT: ;;#ASMSTART
17343 ; GFX90A-NEXT: ; def s[8:11]
17344 ; GFX90A-NEXT: ;;#ASMEND
17345 ; GFX90A-NEXT: ;;#ASMSTART
17346 ; GFX90A-NEXT: ; def s[4:7]
17347 ; GFX90A-NEXT: ;;#ASMEND
17348 ; GFX90A-NEXT: s_mov_b32 s8, s6
17349 ; GFX90A-NEXT: s_mov_b32 s9, s11
17350 ; GFX90A-NEXT: s_mov_b32 s10, s11
17351 ; GFX90A-NEXT: ;;#ASMSTART
17352 ; GFX90A-NEXT: ; use s[8:11]
17353 ; GFX90A-NEXT: ;;#ASMEND
17354 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
17356 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__6_3_3_3:
17358 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17359 ; GFX940-NEXT: ;;#ASMSTART
17360 ; GFX940-NEXT: ; def s[8:11]
17361 ; GFX940-NEXT: ;;#ASMEND
17362 ; GFX940-NEXT: ;;#ASMSTART
17363 ; GFX940-NEXT: ; def s[0:3]
17364 ; GFX940-NEXT: ;;#ASMEND
17365 ; GFX940-NEXT: s_mov_b32 s8, s2
17366 ; GFX940-NEXT: s_mov_b32 s9, s11
17367 ; GFX940-NEXT: s_mov_b32 s10, s11
17368 ; GFX940-NEXT: ;;#ASMSTART
17369 ; GFX940-NEXT: ; use s[8:11]
17370 ; GFX940-NEXT: ;;#ASMEND
17371 ; GFX940-NEXT: s_setpc_b64 s[30:31]
17372 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
17373 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
17374 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 6, i32 3, i32 3, i32 3>
17375 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
17379 define void @s_shuffle_v4p3_v4p3__7_3_3_3() {
17380 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_3_3_3:
17382 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17383 ; GFX900-NEXT: ;;#ASMSTART
17384 ; GFX900-NEXT: ; def s[8:11]
17385 ; GFX900-NEXT: ;;#ASMEND
17386 ; GFX900-NEXT: ;;#ASMSTART
17387 ; GFX900-NEXT: ; def s[4:7]
17388 ; GFX900-NEXT: ;;#ASMEND
17389 ; GFX900-NEXT: s_mov_b32 s8, s7
17390 ; GFX900-NEXT: s_mov_b32 s9, s11
17391 ; GFX900-NEXT: s_mov_b32 s10, s11
17392 ; GFX900-NEXT: ;;#ASMSTART
17393 ; GFX900-NEXT: ; use s[8:11]
17394 ; GFX900-NEXT: ;;#ASMEND
17395 ; GFX900-NEXT: s_setpc_b64 s[30:31]
17397 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_3_3_3:
17399 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17400 ; GFX90A-NEXT: ;;#ASMSTART
17401 ; GFX90A-NEXT: ; def s[8:11]
17402 ; GFX90A-NEXT: ;;#ASMEND
17403 ; GFX90A-NEXT: ;;#ASMSTART
17404 ; GFX90A-NEXT: ; def s[4:7]
17405 ; GFX90A-NEXT: ;;#ASMEND
17406 ; GFX90A-NEXT: s_mov_b32 s8, s7
17407 ; GFX90A-NEXT: s_mov_b32 s9, s11
17408 ; GFX90A-NEXT: s_mov_b32 s10, s11
17409 ; GFX90A-NEXT: ;;#ASMSTART
17410 ; GFX90A-NEXT: ; use s[8:11]
17411 ; GFX90A-NEXT: ;;#ASMEND
17412 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
17414 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_3_3_3:
17416 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17417 ; GFX940-NEXT: ;;#ASMSTART
17418 ; GFX940-NEXT: ; def s[8:11]
17419 ; GFX940-NEXT: ;;#ASMEND
17420 ; GFX940-NEXT: ;;#ASMSTART
17421 ; GFX940-NEXT: ; def s[0:3]
17422 ; GFX940-NEXT: ;;#ASMEND
17423 ; GFX940-NEXT: s_mov_b32 s8, s3
17424 ; GFX940-NEXT: s_mov_b32 s9, s11
17425 ; GFX940-NEXT: s_mov_b32 s10, s11
17426 ; GFX940-NEXT: ;;#ASMSTART
17427 ; GFX940-NEXT: ; use s[8:11]
17428 ; GFX940-NEXT: ;;#ASMEND
17429 ; GFX940-NEXT: s_setpc_b64 s[30:31]
17430 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
17431 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
17432 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 3, i32 3, i32 3>
17433 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
17437 define void @s_shuffle_v4p3_v4p3__7_u_3_3() {
17438 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_u_3_3:
17440 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17441 ; GFX900-NEXT: ;;#ASMSTART
17442 ; GFX900-NEXT: ; def s[8:11]
17443 ; GFX900-NEXT: ;;#ASMEND
17444 ; GFX900-NEXT: ;;#ASMSTART
17445 ; GFX900-NEXT: ; def s[4:7]
17446 ; GFX900-NEXT: ;;#ASMEND
17447 ; GFX900-NEXT: s_mov_b32 s8, s7
17448 ; GFX900-NEXT: s_mov_b32 s10, s11
17449 ; GFX900-NEXT: ;;#ASMSTART
17450 ; GFX900-NEXT: ; use s[8:11]
17451 ; GFX900-NEXT: ;;#ASMEND
17452 ; GFX900-NEXT: s_setpc_b64 s[30:31]
17454 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_u_3_3:
17456 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17457 ; GFX90A-NEXT: ;;#ASMSTART
17458 ; GFX90A-NEXT: ; def s[8:11]
17459 ; GFX90A-NEXT: ;;#ASMEND
17460 ; GFX90A-NEXT: ;;#ASMSTART
17461 ; GFX90A-NEXT: ; def s[4:7]
17462 ; GFX90A-NEXT: ;;#ASMEND
17463 ; GFX90A-NEXT: s_mov_b32 s8, s7
17464 ; GFX90A-NEXT: s_mov_b32 s10, s11
17465 ; GFX90A-NEXT: ;;#ASMSTART
17466 ; GFX90A-NEXT: ; use s[8:11]
17467 ; GFX90A-NEXT: ;;#ASMEND
17468 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
17470 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_u_3_3:
17472 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17473 ; GFX940-NEXT: ;;#ASMSTART
17474 ; GFX940-NEXT: ; def s[8:11]
17475 ; GFX940-NEXT: ;;#ASMEND
17476 ; GFX940-NEXT: ;;#ASMSTART
17477 ; GFX940-NEXT: ; def s[0:3]
17478 ; GFX940-NEXT: ;;#ASMEND
17479 ; GFX940-NEXT: s_mov_b32 s8, s3
17480 ; GFX940-NEXT: s_mov_b32 s10, s11
17481 ; GFX940-NEXT: ;;#ASMSTART
17482 ; GFX940-NEXT: ; use s[8:11]
17483 ; GFX940-NEXT: ;;#ASMEND
17484 ; GFX940-NEXT: s_setpc_b64 s[30:31]
17485 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
17486 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
17487 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 poison, i32 3, i32 3>
17488 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
17492 define void @s_shuffle_v4p3_v4p3__7_0_3_3() {
17493 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_0_3_3:
17495 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17496 ; GFX900-NEXT: ;;#ASMSTART
17497 ; GFX900-NEXT: ; def s[8:11]
17498 ; GFX900-NEXT: ;;#ASMEND
17499 ; GFX900-NEXT: ;;#ASMSTART
17500 ; GFX900-NEXT: ; def s[4:7]
17501 ; GFX900-NEXT: ;;#ASMEND
17502 ; GFX900-NEXT: s_mov_b32 s8, s11
17503 ; GFX900-NEXT: s_mov_b32 s9, s4
17504 ; GFX900-NEXT: s_mov_b32 s10, s7
17505 ; GFX900-NEXT: s_mov_b32 s11, s7
17506 ; GFX900-NEXT: ;;#ASMSTART
17507 ; GFX900-NEXT: ; use s[8:11]
17508 ; GFX900-NEXT: ;;#ASMEND
17509 ; GFX900-NEXT: s_setpc_b64 s[30:31]
17511 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_0_3_3:
17513 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17514 ; GFX90A-NEXT: ;;#ASMSTART
17515 ; GFX90A-NEXT: ; def s[8:11]
17516 ; GFX90A-NEXT: ;;#ASMEND
17517 ; GFX90A-NEXT: ;;#ASMSTART
17518 ; GFX90A-NEXT: ; def s[4:7]
17519 ; GFX90A-NEXT: ;;#ASMEND
17520 ; GFX90A-NEXT: s_mov_b32 s8, s11
17521 ; GFX90A-NEXT: s_mov_b32 s9, s4
17522 ; GFX90A-NEXT: s_mov_b32 s10, s7
17523 ; GFX90A-NEXT: s_mov_b32 s11, s7
17524 ; GFX90A-NEXT: ;;#ASMSTART
17525 ; GFX90A-NEXT: ; use s[8:11]
17526 ; GFX90A-NEXT: ;;#ASMEND
17527 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
17529 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_0_3_3:
17531 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17532 ; GFX940-NEXT: ;;#ASMSTART
17533 ; GFX940-NEXT: ; def s[0:3]
17534 ; GFX940-NEXT: ;;#ASMEND
17535 ; GFX940-NEXT: ;;#ASMSTART
17536 ; GFX940-NEXT: ; def s[4:7]
17537 ; GFX940-NEXT: ;;#ASMEND
17538 ; GFX940-NEXT: s_mov_b32 s8, s7
17539 ; GFX940-NEXT: s_mov_b32 s9, s0
17540 ; GFX940-NEXT: s_mov_b32 s10, s3
17541 ; GFX940-NEXT: s_mov_b32 s11, s3
17542 ; GFX940-NEXT: ;;#ASMSTART
17543 ; GFX940-NEXT: ; use s[8:11]
17544 ; GFX940-NEXT: ;;#ASMEND
17545 ; GFX940-NEXT: s_setpc_b64 s[30:31]
17546 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
17547 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
17548 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 0, i32 3, i32 3>
17549 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
17553 define void @s_shuffle_v4p3_v4p3__7_1_3_3() {
17554 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_1_3_3:
17556 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17557 ; GFX900-NEXT: ;;#ASMSTART
17558 ; GFX900-NEXT: ; def s[8:11]
17559 ; GFX900-NEXT: ;;#ASMEND
17560 ; GFX900-NEXT: ;;#ASMSTART
17561 ; GFX900-NEXT: ; def s[4:7]
17562 ; GFX900-NEXT: ;;#ASMEND
17563 ; GFX900-NEXT: s_mov_b32 s8, s7
17564 ; GFX900-NEXT: s_mov_b32 s10, s11
17565 ; GFX900-NEXT: ;;#ASMSTART
17566 ; GFX900-NEXT: ; use s[8:11]
17567 ; GFX900-NEXT: ;;#ASMEND
17568 ; GFX900-NEXT: s_setpc_b64 s[30:31]
17570 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_1_3_3:
17572 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17573 ; GFX90A-NEXT: ;;#ASMSTART
17574 ; GFX90A-NEXT: ; def s[8:11]
17575 ; GFX90A-NEXT: ;;#ASMEND
17576 ; GFX90A-NEXT: ;;#ASMSTART
17577 ; GFX90A-NEXT: ; def s[4:7]
17578 ; GFX90A-NEXT: ;;#ASMEND
17579 ; GFX90A-NEXT: s_mov_b32 s8, s7
17580 ; GFX90A-NEXT: s_mov_b32 s10, s11
17581 ; GFX90A-NEXT: ;;#ASMSTART
17582 ; GFX90A-NEXT: ; use s[8:11]
17583 ; GFX90A-NEXT: ;;#ASMEND
17584 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
17586 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_1_3_3:
17588 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17589 ; GFX940-NEXT: ;;#ASMSTART
17590 ; GFX940-NEXT: ; def s[8:11]
17591 ; GFX940-NEXT: ;;#ASMEND
17592 ; GFX940-NEXT: ;;#ASMSTART
17593 ; GFX940-NEXT: ; def s[0:3]
17594 ; GFX940-NEXT: ;;#ASMEND
17595 ; GFX940-NEXT: s_mov_b32 s8, s3
17596 ; GFX940-NEXT: s_mov_b32 s10, s11
17597 ; GFX940-NEXT: ;;#ASMSTART
17598 ; GFX940-NEXT: ; use s[8:11]
17599 ; GFX940-NEXT: ;;#ASMEND
17600 ; GFX940-NEXT: s_setpc_b64 s[30:31]
17601 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
17602 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
17603 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 1, i32 3, i32 3>
17604 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
17608 define void @s_shuffle_v4p3_v4p3__7_2_3_3() {
17609 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_2_3_3:
17611 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17612 ; GFX900-NEXT: ;;#ASMSTART
17613 ; GFX900-NEXT: ; def s[8:11]
17614 ; GFX900-NEXT: ;;#ASMEND
17615 ; GFX900-NEXT: ;;#ASMSTART
17616 ; GFX900-NEXT: ; def s[4:7]
17617 ; GFX900-NEXT: ;;#ASMEND
17618 ; GFX900-NEXT: s_mov_b32 s8, s7
17619 ; GFX900-NEXT: s_mov_b32 s9, s10
17620 ; GFX900-NEXT: s_mov_b32 s10, s11
17621 ; GFX900-NEXT: ;;#ASMSTART
17622 ; GFX900-NEXT: ; use s[8:11]
17623 ; GFX900-NEXT: ;;#ASMEND
17624 ; GFX900-NEXT: s_setpc_b64 s[30:31]
17626 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_2_3_3:
17628 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17629 ; GFX90A-NEXT: ;;#ASMSTART
17630 ; GFX90A-NEXT: ; def s[8:11]
17631 ; GFX90A-NEXT: ;;#ASMEND
17632 ; GFX90A-NEXT: ;;#ASMSTART
17633 ; GFX90A-NEXT: ; def s[4:7]
17634 ; GFX90A-NEXT: ;;#ASMEND
17635 ; GFX90A-NEXT: s_mov_b32 s8, s7
17636 ; GFX90A-NEXT: s_mov_b32 s9, s10
17637 ; GFX90A-NEXT: s_mov_b32 s10, s11
17638 ; GFX90A-NEXT: ;;#ASMSTART
17639 ; GFX90A-NEXT: ; use s[8:11]
17640 ; GFX90A-NEXT: ;;#ASMEND
17641 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
17643 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_2_3_3:
17645 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17646 ; GFX940-NEXT: ;;#ASMSTART
17647 ; GFX940-NEXT: ; def s[8:11]
17648 ; GFX940-NEXT: ;;#ASMEND
17649 ; GFX940-NEXT: ;;#ASMSTART
17650 ; GFX940-NEXT: ; def s[0:3]
17651 ; GFX940-NEXT: ;;#ASMEND
17652 ; GFX940-NEXT: s_mov_b32 s8, s3
17653 ; GFX940-NEXT: s_mov_b32 s9, s10
17654 ; GFX940-NEXT: s_mov_b32 s10, s11
17655 ; GFX940-NEXT: ;;#ASMSTART
17656 ; GFX940-NEXT: ; use s[8:11]
17657 ; GFX940-NEXT: ;;#ASMEND
17658 ; GFX940-NEXT: s_setpc_b64 s[30:31]
17659 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
17660 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
17661 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 2, i32 3, i32 3>
17662 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
17666 define void @s_shuffle_v4p3_v4p3__7_4_3_3() {
17667 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_4_3_3:
17669 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17670 ; GFX900-NEXT: ;;#ASMSTART
17671 ; GFX900-NEXT: ; def s[8:11]
17672 ; GFX900-NEXT: ;;#ASMEND
17673 ; GFX900-NEXT: ;;#ASMSTART
17674 ; GFX900-NEXT: ; def s[4:7]
17675 ; GFX900-NEXT: ;;#ASMEND
17676 ; GFX900-NEXT: s_mov_b32 s8, s7
17677 ; GFX900-NEXT: s_mov_b32 s9, s4
17678 ; GFX900-NEXT: s_mov_b32 s10, s11
17679 ; GFX900-NEXT: ;;#ASMSTART
17680 ; GFX900-NEXT: ; use s[8:11]
17681 ; GFX900-NEXT: ;;#ASMEND
17682 ; GFX900-NEXT: s_setpc_b64 s[30:31]
17684 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_4_3_3:
17686 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17687 ; GFX90A-NEXT: ;;#ASMSTART
17688 ; GFX90A-NEXT: ; def s[8:11]
17689 ; GFX90A-NEXT: ;;#ASMEND
17690 ; GFX90A-NEXT: ;;#ASMSTART
17691 ; GFX90A-NEXT: ; def s[4:7]
17692 ; GFX90A-NEXT: ;;#ASMEND
17693 ; GFX90A-NEXT: s_mov_b32 s8, s7
17694 ; GFX90A-NEXT: s_mov_b32 s9, s4
17695 ; GFX90A-NEXT: s_mov_b32 s10, s11
17696 ; GFX90A-NEXT: ;;#ASMSTART
17697 ; GFX90A-NEXT: ; use s[8:11]
17698 ; GFX90A-NEXT: ;;#ASMEND
17699 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
17701 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_4_3_3:
17703 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17704 ; GFX940-NEXT: ;;#ASMSTART
17705 ; GFX940-NEXT: ; def s[8:11]
17706 ; GFX940-NEXT: ;;#ASMEND
17707 ; GFX940-NEXT: ;;#ASMSTART
17708 ; GFX940-NEXT: ; def s[0:3]
17709 ; GFX940-NEXT: ;;#ASMEND
17710 ; GFX940-NEXT: s_mov_b32 s8, s3
17711 ; GFX940-NEXT: s_mov_b32 s9, s0
17712 ; GFX940-NEXT: s_mov_b32 s10, s11
17713 ; GFX940-NEXT: ;;#ASMSTART
17714 ; GFX940-NEXT: ; use s[8:11]
17715 ; GFX940-NEXT: ;;#ASMEND
17716 ; GFX940-NEXT: s_setpc_b64 s[30:31]
17717 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
17718 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
17719 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 4, i32 3, i32 3>
17720 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
17724 define void @s_shuffle_v4p3_v4p3__7_5_3_3() {
17725 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_5_3_3:
17727 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17728 ; GFX900-NEXT: ;;#ASMSTART
17729 ; GFX900-NEXT: ; def s[8:11]
17730 ; GFX900-NEXT: ;;#ASMEND
17731 ; GFX900-NEXT: ;;#ASMSTART
17732 ; GFX900-NEXT: ; def s[4:7]
17733 ; GFX900-NEXT: ;;#ASMEND
17734 ; GFX900-NEXT: s_mov_b32 s8, s11
17735 ; GFX900-NEXT: s_mov_b32 s10, s7
17736 ; GFX900-NEXT: s_mov_b32 s11, s7
17737 ; GFX900-NEXT: ;;#ASMSTART
17738 ; GFX900-NEXT: ; use s[8:11]
17739 ; GFX900-NEXT: ;;#ASMEND
17740 ; GFX900-NEXT: s_setpc_b64 s[30:31]
17742 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_5_3_3:
17744 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17745 ; GFX90A-NEXT: ;;#ASMSTART
17746 ; GFX90A-NEXT: ; def s[8:11]
17747 ; GFX90A-NEXT: ;;#ASMEND
17748 ; GFX90A-NEXT: ;;#ASMSTART
17749 ; GFX90A-NEXT: ; def s[4:7]
17750 ; GFX90A-NEXT: ;;#ASMEND
17751 ; GFX90A-NEXT: s_mov_b32 s8, s11
17752 ; GFX90A-NEXT: s_mov_b32 s10, s7
17753 ; GFX90A-NEXT: s_mov_b32 s11, s7
17754 ; GFX90A-NEXT: ;;#ASMSTART
17755 ; GFX90A-NEXT: ; use s[8:11]
17756 ; GFX90A-NEXT: ;;#ASMEND
17757 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
17759 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_5_3_3:
17761 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17762 ; GFX940-NEXT: ;;#ASMSTART
17763 ; GFX940-NEXT: ; def s[8:11]
17764 ; GFX940-NEXT: ;;#ASMEND
17765 ; GFX940-NEXT: ;;#ASMSTART
17766 ; GFX940-NEXT: ; def s[0:3]
17767 ; GFX940-NEXT: ;;#ASMEND
17768 ; GFX940-NEXT: s_mov_b32 s8, s11
17769 ; GFX940-NEXT: s_mov_b32 s10, s3
17770 ; GFX940-NEXT: s_mov_b32 s11, s3
17771 ; GFX940-NEXT: ;;#ASMSTART
17772 ; GFX940-NEXT: ; use s[8:11]
17773 ; GFX940-NEXT: ;;#ASMEND
17774 ; GFX940-NEXT: s_setpc_b64 s[30:31]
17775 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
17776 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
17777 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 5, i32 3, i32 3>
17778 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
17782 define void @s_shuffle_v4p3_v4p3__7_6_3_3() {
17783 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_6_3_3:
17785 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17786 ; GFX900-NEXT: ;;#ASMSTART
17787 ; GFX900-NEXT: ; def s[8:11]
17788 ; GFX900-NEXT: ;;#ASMEND
17789 ; GFX900-NEXT: ;;#ASMSTART
17790 ; GFX900-NEXT: ; def s[4:7]
17791 ; GFX900-NEXT: ;;#ASMEND
17792 ; GFX900-NEXT: s_mov_b32 s8, s7
17793 ; GFX900-NEXT: s_mov_b32 s9, s6
17794 ; GFX900-NEXT: s_mov_b32 s10, s11
17795 ; GFX900-NEXT: ;;#ASMSTART
17796 ; GFX900-NEXT: ; use s[8:11]
17797 ; GFX900-NEXT: ;;#ASMEND
17798 ; GFX900-NEXT: s_setpc_b64 s[30:31]
17800 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_6_3_3:
17802 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17803 ; GFX90A-NEXT: ;;#ASMSTART
17804 ; GFX90A-NEXT: ; def s[8:11]
17805 ; GFX90A-NEXT: ;;#ASMEND
17806 ; GFX90A-NEXT: ;;#ASMSTART
17807 ; GFX90A-NEXT: ; def s[4:7]
17808 ; GFX90A-NEXT: ;;#ASMEND
17809 ; GFX90A-NEXT: s_mov_b32 s8, s7
17810 ; GFX90A-NEXT: s_mov_b32 s9, s6
17811 ; GFX90A-NEXT: s_mov_b32 s10, s11
17812 ; GFX90A-NEXT: ;;#ASMSTART
17813 ; GFX90A-NEXT: ; use s[8:11]
17814 ; GFX90A-NEXT: ;;#ASMEND
17815 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
17817 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_6_3_3:
17819 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17820 ; GFX940-NEXT: ;;#ASMSTART
17821 ; GFX940-NEXT: ; def s[8:11]
17822 ; GFX940-NEXT: ;;#ASMEND
17823 ; GFX940-NEXT: ;;#ASMSTART
17824 ; GFX940-NEXT: ; def s[0:3]
17825 ; GFX940-NEXT: ;;#ASMEND
17826 ; GFX940-NEXT: s_mov_b32 s8, s3
17827 ; GFX940-NEXT: s_mov_b32 s9, s2
17828 ; GFX940-NEXT: s_mov_b32 s10, s11
17829 ; GFX940-NEXT: ;;#ASMSTART
17830 ; GFX940-NEXT: ; use s[8:11]
17831 ; GFX940-NEXT: ;;#ASMEND
17832 ; GFX940-NEXT: s_setpc_b64 s[30:31]
17833 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
17834 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
17835 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 6, i32 3, i32 3>
17836 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
17840 define void @s_shuffle_v4p3_v4p3__7_7_3_3() {
17841 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_3_3:
17843 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17844 ; GFX900-NEXT: ;;#ASMSTART
17845 ; GFX900-NEXT: ; def s[8:11]
17846 ; GFX900-NEXT: ;;#ASMEND
17847 ; GFX900-NEXT: ;;#ASMSTART
17848 ; GFX900-NEXT: ; def s[4:7]
17849 ; GFX900-NEXT: ;;#ASMEND
17850 ; GFX900-NEXT: s_mov_b32 s8, s7
17851 ; GFX900-NEXT: s_mov_b32 s9, s7
17852 ; GFX900-NEXT: s_mov_b32 s10, s11
17853 ; GFX900-NEXT: ;;#ASMSTART
17854 ; GFX900-NEXT: ; use s[8:11]
17855 ; GFX900-NEXT: ;;#ASMEND
17856 ; GFX900-NEXT: s_setpc_b64 s[30:31]
17858 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_3_3:
17860 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17861 ; GFX90A-NEXT: ;;#ASMSTART
17862 ; GFX90A-NEXT: ; def s[8:11]
17863 ; GFX90A-NEXT: ;;#ASMEND
17864 ; GFX90A-NEXT: ;;#ASMSTART
17865 ; GFX90A-NEXT: ; def s[4:7]
17866 ; GFX90A-NEXT: ;;#ASMEND
17867 ; GFX90A-NEXT: s_mov_b32 s8, s7
17868 ; GFX90A-NEXT: s_mov_b32 s9, s7
17869 ; GFX90A-NEXT: s_mov_b32 s10, s11
17870 ; GFX90A-NEXT: ;;#ASMSTART
17871 ; GFX90A-NEXT: ; use s[8:11]
17872 ; GFX90A-NEXT: ;;#ASMEND
17873 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
17875 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_3_3:
17877 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17878 ; GFX940-NEXT: ;;#ASMSTART
17879 ; GFX940-NEXT: ; def s[8:11]
17880 ; GFX940-NEXT: ;;#ASMEND
17881 ; GFX940-NEXT: ;;#ASMSTART
17882 ; GFX940-NEXT: ; def s[0:3]
17883 ; GFX940-NEXT: ;;#ASMEND
17884 ; GFX940-NEXT: s_mov_b32 s8, s3
17885 ; GFX940-NEXT: s_mov_b32 s9, s3
17886 ; GFX940-NEXT: s_mov_b32 s10, s11
17887 ; GFX940-NEXT: ;;#ASMSTART
17888 ; GFX940-NEXT: ; use s[8:11]
17889 ; GFX940-NEXT: ;;#ASMEND
17890 ; GFX940-NEXT: s_setpc_b64 s[30:31]
17891 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
17892 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
17893 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 3, i32 3>
17894 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
17898 define void @s_shuffle_v4p3_v4p3__7_7_u_3() {
17899 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_u_3:
17901 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17902 ; GFX900-NEXT: ;;#ASMSTART
17903 ; GFX900-NEXT: ; def s[8:11]
17904 ; GFX900-NEXT: ;;#ASMEND
17905 ; GFX900-NEXT: ;;#ASMSTART
17906 ; GFX900-NEXT: ; def s[4:7]
17907 ; GFX900-NEXT: ;;#ASMEND
17908 ; GFX900-NEXT: s_mov_b32 s8, s7
17909 ; GFX900-NEXT: s_mov_b32 s9, s7
17910 ; GFX900-NEXT: ;;#ASMSTART
17911 ; GFX900-NEXT: ; use s[8:11]
17912 ; GFX900-NEXT: ;;#ASMEND
17913 ; GFX900-NEXT: s_setpc_b64 s[30:31]
17915 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_u_3:
17917 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17918 ; GFX90A-NEXT: ;;#ASMSTART
17919 ; GFX90A-NEXT: ; def s[8:11]
17920 ; GFX90A-NEXT: ;;#ASMEND
17921 ; GFX90A-NEXT: ;;#ASMSTART
17922 ; GFX90A-NEXT: ; def s[4:7]
17923 ; GFX90A-NEXT: ;;#ASMEND
17924 ; GFX90A-NEXT: s_mov_b32 s8, s7
17925 ; GFX90A-NEXT: s_mov_b32 s9, s7
17926 ; GFX90A-NEXT: ;;#ASMSTART
17927 ; GFX90A-NEXT: ; use s[8:11]
17928 ; GFX90A-NEXT: ;;#ASMEND
17929 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
17931 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_u_3:
17933 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17934 ; GFX940-NEXT: ;;#ASMSTART
17935 ; GFX940-NEXT: ; def s[8:11]
17936 ; GFX940-NEXT: ;;#ASMEND
17937 ; GFX940-NEXT: ;;#ASMSTART
17938 ; GFX940-NEXT: ; def s[0:3]
17939 ; GFX940-NEXT: ;;#ASMEND
17940 ; GFX940-NEXT: s_mov_b32 s8, s3
17941 ; GFX940-NEXT: s_mov_b32 s9, s3
17942 ; GFX940-NEXT: ;;#ASMSTART
17943 ; GFX940-NEXT: ; use s[8:11]
17944 ; GFX940-NEXT: ;;#ASMEND
17945 ; GFX940-NEXT: s_setpc_b64 s[30:31]
17946 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
17947 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
17948 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 poison, i32 3>
17949 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
17953 define void @s_shuffle_v4p3_v4p3__7_7_0_3() {
17954 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_0_3:
17956 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17957 ; GFX900-NEXT: ;;#ASMSTART
17958 ; GFX900-NEXT: ; def s[8:11]
17959 ; GFX900-NEXT: ;;#ASMEND
17960 ; GFX900-NEXT: ;;#ASMSTART
17961 ; GFX900-NEXT: ; def s[4:7]
17962 ; GFX900-NEXT: ;;#ASMEND
17963 ; GFX900-NEXT: s_mov_b32 s8, s11
17964 ; GFX900-NEXT: s_mov_b32 s9, s11
17965 ; GFX900-NEXT: s_mov_b32 s10, s4
17966 ; GFX900-NEXT: s_mov_b32 s11, s7
17967 ; GFX900-NEXT: ;;#ASMSTART
17968 ; GFX900-NEXT: ; use s[8:11]
17969 ; GFX900-NEXT: ;;#ASMEND
17970 ; GFX900-NEXT: s_setpc_b64 s[30:31]
17972 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_0_3:
17974 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17975 ; GFX90A-NEXT: ;;#ASMSTART
17976 ; GFX90A-NEXT: ; def s[8:11]
17977 ; GFX90A-NEXT: ;;#ASMEND
17978 ; GFX90A-NEXT: ;;#ASMSTART
17979 ; GFX90A-NEXT: ; def s[4:7]
17980 ; GFX90A-NEXT: ;;#ASMEND
17981 ; GFX90A-NEXT: s_mov_b32 s8, s11
17982 ; GFX90A-NEXT: s_mov_b32 s9, s11
17983 ; GFX90A-NEXT: s_mov_b32 s10, s4
17984 ; GFX90A-NEXT: s_mov_b32 s11, s7
17985 ; GFX90A-NEXT: ;;#ASMSTART
17986 ; GFX90A-NEXT: ; use s[8:11]
17987 ; GFX90A-NEXT: ;;#ASMEND
17988 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
17990 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_0_3:
17992 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17993 ; GFX940-NEXT: ;;#ASMSTART
17994 ; GFX940-NEXT: ; def s[0:3]
17995 ; GFX940-NEXT: ;;#ASMEND
17996 ; GFX940-NEXT: ;;#ASMSTART
17997 ; GFX940-NEXT: ; def s[4:7]
17998 ; GFX940-NEXT: ;;#ASMEND
17999 ; GFX940-NEXT: s_mov_b32 s8, s7
18000 ; GFX940-NEXT: s_mov_b32 s9, s7
18001 ; GFX940-NEXT: s_mov_b32 s10, s0
18002 ; GFX940-NEXT: s_mov_b32 s11, s3
18003 ; GFX940-NEXT: ;;#ASMSTART
18004 ; GFX940-NEXT: ; use s[8:11]
18005 ; GFX940-NEXT: ;;#ASMEND
18006 ; GFX940-NEXT: s_setpc_b64 s[30:31]
18007 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
18008 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
18009 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 0, i32 3>
18010 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
18014 define void @s_shuffle_v4p3_v4p3__7_7_1_3() {
18015 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_1_3:
18017 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18018 ; GFX900-NEXT: ;;#ASMSTART
18019 ; GFX900-NEXT: ; def s[8:11]
18020 ; GFX900-NEXT: ;;#ASMEND
18021 ; GFX900-NEXT: ;;#ASMSTART
18022 ; GFX900-NEXT: ; def s[4:7]
18023 ; GFX900-NEXT: ;;#ASMEND
18024 ; GFX900-NEXT: s_mov_b32 s8, s11
18025 ; GFX900-NEXT: s_mov_b32 s9, s11
18026 ; GFX900-NEXT: s_mov_b32 s10, s5
18027 ; GFX900-NEXT: s_mov_b32 s11, s7
18028 ; GFX900-NEXT: ;;#ASMSTART
18029 ; GFX900-NEXT: ; use s[8:11]
18030 ; GFX900-NEXT: ;;#ASMEND
18031 ; GFX900-NEXT: s_setpc_b64 s[30:31]
18033 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_1_3:
18035 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18036 ; GFX90A-NEXT: ;;#ASMSTART
18037 ; GFX90A-NEXT: ; def s[8:11]
18038 ; GFX90A-NEXT: ;;#ASMEND
18039 ; GFX90A-NEXT: ;;#ASMSTART
18040 ; GFX90A-NEXT: ; def s[4:7]
18041 ; GFX90A-NEXT: ;;#ASMEND
18042 ; GFX90A-NEXT: s_mov_b32 s8, s11
18043 ; GFX90A-NEXT: s_mov_b32 s9, s11
18044 ; GFX90A-NEXT: s_mov_b32 s10, s5
18045 ; GFX90A-NEXT: s_mov_b32 s11, s7
18046 ; GFX90A-NEXT: ;;#ASMSTART
18047 ; GFX90A-NEXT: ; use s[8:11]
18048 ; GFX90A-NEXT: ;;#ASMEND
18049 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
18051 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_1_3:
18053 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18054 ; GFX940-NEXT: ;;#ASMSTART
18055 ; GFX940-NEXT: ; def s[0:3]
18056 ; GFX940-NEXT: ;;#ASMEND
18057 ; GFX940-NEXT: ;;#ASMSTART
18058 ; GFX940-NEXT: ; def s[4:7]
18059 ; GFX940-NEXT: ;;#ASMEND
18060 ; GFX940-NEXT: s_mov_b32 s8, s7
18061 ; GFX940-NEXT: s_mov_b32 s9, s7
18062 ; GFX940-NEXT: s_mov_b32 s10, s1
18063 ; GFX940-NEXT: s_mov_b32 s11, s3
18064 ; GFX940-NEXT: ;;#ASMSTART
18065 ; GFX940-NEXT: ; use s[8:11]
18066 ; GFX940-NEXT: ;;#ASMEND
18067 ; GFX940-NEXT: s_setpc_b64 s[30:31]
18068 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
18069 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
18070 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 1, i32 3>
18071 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
18075 define void @s_shuffle_v4p3_v4p3__7_7_2_3() {
18076 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_2_3:
18078 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18079 ; GFX900-NEXT: ;;#ASMSTART
18080 ; GFX900-NEXT: ; def s[8:11]
18081 ; GFX900-NEXT: ;;#ASMEND
18082 ; GFX900-NEXT: ;;#ASMSTART
18083 ; GFX900-NEXT: ; def s[4:7]
18084 ; GFX900-NEXT: ;;#ASMEND
18085 ; GFX900-NEXT: s_mov_b32 s8, s7
18086 ; GFX900-NEXT: s_mov_b32 s9, s7
18087 ; GFX900-NEXT: ;;#ASMSTART
18088 ; GFX900-NEXT: ; use s[8:11]
18089 ; GFX900-NEXT: ;;#ASMEND
18090 ; GFX900-NEXT: s_setpc_b64 s[30:31]
18092 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_2_3:
18094 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18095 ; GFX90A-NEXT: ;;#ASMSTART
18096 ; GFX90A-NEXT: ; def s[8:11]
18097 ; GFX90A-NEXT: ;;#ASMEND
18098 ; GFX90A-NEXT: ;;#ASMSTART
18099 ; GFX90A-NEXT: ; def s[4:7]
18100 ; GFX90A-NEXT: ;;#ASMEND
18101 ; GFX90A-NEXT: s_mov_b32 s8, s7
18102 ; GFX90A-NEXT: s_mov_b32 s9, s7
18103 ; GFX90A-NEXT: ;;#ASMSTART
18104 ; GFX90A-NEXT: ; use s[8:11]
18105 ; GFX90A-NEXT: ;;#ASMEND
18106 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
18108 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_2_3:
18110 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18111 ; GFX940-NEXT: ;;#ASMSTART
18112 ; GFX940-NEXT: ; def s[8:11]
18113 ; GFX940-NEXT: ;;#ASMEND
18114 ; GFX940-NEXT: ;;#ASMSTART
18115 ; GFX940-NEXT: ; def s[0:3]
18116 ; GFX940-NEXT: ;;#ASMEND
18117 ; GFX940-NEXT: s_mov_b32 s8, s3
18118 ; GFX940-NEXT: s_mov_b32 s9, s3
18119 ; GFX940-NEXT: ;;#ASMSTART
18120 ; GFX940-NEXT: ; use s[8:11]
18121 ; GFX940-NEXT: ;;#ASMEND
18122 ; GFX940-NEXT: s_setpc_b64 s[30:31]
18123 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
18124 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
18125 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 2, i32 3>
18126 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
18130 define void @s_shuffle_v4p3_v4p3__7_7_4_3() {
18131 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_4_3:
18133 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18134 ; GFX900-NEXT: ;;#ASMSTART
18135 ; GFX900-NEXT: ; def s[8:11]
18136 ; GFX900-NEXT: ;;#ASMEND
18137 ; GFX900-NEXT: ;;#ASMSTART
18138 ; GFX900-NEXT: ; def s[4:7]
18139 ; GFX900-NEXT: ;;#ASMEND
18140 ; GFX900-NEXT: s_mov_b32 s8, s7
18141 ; GFX900-NEXT: s_mov_b32 s9, s7
18142 ; GFX900-NEXT: s_mov_b32 s10, s4
18143 ; GFX900-NEXT: ;;#ASMSTART
18144 ; GFX900-NEXT: ; use s[8:11]
18145 ; GFX900-NEXT: ;;#ASMEND
18146 ; GFX900-NEXT: s_setpc_b64 s[30:31]
18148 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_4_3:
18150 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18151 ; GFX90A-NEXT: ;;#ASMSTART
18152 ; GFX90A-NEXT: ; def s[8:11]
18153 ; GFX90A-NEXT: ;;#ASMEND
18154 ; GFX90A-NEXT: ;;#ASMSTART
18155 ; GFX90A-NEXT: ; def s[4:7]
18156 ; GFX90A-NEXT: ;;#ASMEND
18157 ; GFX90A-NEXT: s_mov_b32 s8, s7
18158 ; GFX90A-NEXT: s_mov_b32 s9, s7
18159 ; GFX90A-NEXT: s_mov_b32 s10, s4
18160 ; GFX90A-NEXT: ;;#ASMSTART
18161 ; GFX90A-NEXT: ; use s[8:11]
18162 ; GFX90A-NEXT: ;;#ASMEND
18163 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
18165 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_4_3:
18167 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18168 ; GFX940-NEXT: ;;#ASMSTART
18169 ; GFX940-NEXT: ; def s[8:11]
18170 ; GFX940-NEXT: ;;#ASMEND
18171 ; GFX940-NEXT: ;;#ASMSTART
18172 ; GFX940-NEXT: ; def s[0:3]
18173 ; GFX940-NEXT: ;;#ASMEND
18174 ; GFX940-NEXT: s_mov_b32 s8, s3
18175 ; GFX940-NEXT: s_mov_b32 s9, s3
18176 ; GFX940-NEXT: s_mov_b32 s10, s0
18177 ; GFX940-NEXT: ;;#ASMSTART
18178 ; GFX940-NEXT: ; use s[8:11]
18179 ; GFX940-NEXT: ;;#ASMEND
18180 ; GFX940-NEXT: s_setpc_b64 s[30:31]
18181 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
18182 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
18183 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 4, i32 3>
18184 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
18188 define void @s_shuffle_v4p3_v4p3__7_7_5_3() {
18189 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_5_3:
18191 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18192 ; GFX900-NEXT: ;;#ASMSTART
18193 ; GFX900-NEXT: ; def s[8:11]
18194 ; GFX900-NEXT: ;;#ASMEND
18195 ; GFX900-NEXT: ;;#ASMSTART
18196 ; GFX900-NEXT: ; def s[4:7]
18197 ; GFX900-NEXT: ;;#ASMEND
18198 ; GFX900-NEXT: s_mov_b32 s8, s7
18199 ; GFX900-NEXT: s_mov_b32 s9, s7
18200 ; GFX900-NEXT: s_mov_b32 s10, s5
18201 ; GFX900-NEXT: ;;#ASMSTART
18202 ; GFX900-NEXT: ; use s[8:11]
18203 ; GFX900-NEXT: ;;#ASMEND
18204 ; GFX900-NEXT: s_setpc_b64 s[30:31]
18206 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_5_3:
18208 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18209 ; GFX90A-NEXT: ;;#ASMSTART
18210 ; GFX90A-NEXT: ; def s[8:11]
18211 ; GFX90A-NEXT: ;;#ASMEND
18212 ; GFX90A-NEXT: ;;#ASMSTART
18213 ; GFX90A-NEXT: ; def s[4:7]
18214 ; GFX90A-NEXT: ;;#ASMEND
18215 ; GFX90A-NEXT: s_mov_b32 s8, s7
18216 ; GFX90A-NEXT: s_mov_b32 s9, s7
18217 ; GFX90A-NEXT: s_mov_b32 s10, s5
18218 ; GFX90A-NEXT: ;;#ASMSTART
18219 ; GFX90A-NEXT: ; use s[8:11]
18220 ; GFX90A-NEXT: ;;#ASMEND
18221 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
18223 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_5_3:
18225 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18226 ; GFX940-NEXT: ;;#ASMSTART
18227 ; GFX940-NEXT: ; def s[8:11]
18228 ; GFX940-NEXT: ;;#ASMEND
18229 ; GFX940-NEXT: ;;#ASMSTART
18230 ; GFX940-NEXT: ; def s[0:3]
18231 ; GFX940-NEXT: ;;#ASMEND
18232 ; GFX940-NEXT: s_mov_b32 s8, s3
18233 ; GFX940-NEXT: s_mov_b32 s9, s3
18234 ; GFX940-NEXT: s_mov_b32 s10, s1
18235 ; GFX940-NEXT: ;;#ASMSTART
18236 ; GFX940-NEXT: ; use s[8:11]
18237 ; GFX940-NEXT: ;;#ASMEND
18238 ; GFX940-NEXT: s_setpc_b64 s[30:31]
18239 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
18240 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
18241 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 5, i32 3>
18242 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
18246 define void @s_shuffle_v4p3_v4p3__7_7_6_3() {
18247 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_6_3:
18249 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18250 ; GFX900-NEXT: ;;#ASMSTART
18251 ; GFX900-NEXT: ; def s[8:11]
18252 ; GFX900-NEXT: ;;#ASMEND
18253 ; GFX900-NEXT: ;;#ASMSTART
18254 ; GFX900-NEXT: ; def s[4:7]
18255 ; GFX900-NEXT: ;;#ASMEND
18256 ; GFX900-NEXT: s_mov_b32 s8, s11
18257 ; GFX900-NEXT: s_mov_b32 s9, s11
18258 ; GFX900-NEXT: s_mov_b32 s11, s7
18259 ; GFX900-NEXT: ;;#ASMSTART
18260 ; GFX900-NEXT: ; use s[8:11]
18261 ; GFX900-NEXT: ;;#ASMEND
18262 ; GFX900-NEXT: s_setpc_b64 s[30:31]
18264 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_6_3:
18266 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18267 ; GFX90A-NEXT: ;;#ASMSTART
18268 ; GFX90A-NEXT: ; def s[8:11]
18269 ; GFX90A-NEXT: ;;#ASMEND
18270 ; GFX90A-NEXT: ;;#ASMSTART
18271 ; GFX90A-NEXT: ; def s[4:7]
18272 ; GFX90A-NEXT: ;;#ASMEND
18273 ; GFX90A-NEXT: s_mov_b32 s8, s11
18274 ; GFX90A-NEXT: s_mov_b32 s9, s11
18275 ; GFX90A-NEXT: s_mov_b32 s11, s7
18276 ; GFX90A-NEXT: ;;#ASMSTART
18277 ; GFX90A-NEXT: ; use s[8:11]
18278 ; GFX90A-NEXT: ;;#ASMEND
18279 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
18281 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_6_3:
18283 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18284 ; GFX940-NEXT: ;;#ASMSTART
18285 ; GFX940-NEXT: ; def s[8:11]
18286 ; GFX940-NEXT: ;;#ASMEND
18287 ; GFX940-NEXT: ;;#ASMSTART
18288 ; GFX940-NEXT: ; def s[0:3]
18289 ; GFX940-NEXT: ;;#ASMEND
18290 ; GFX940-NEXT: s_mov_b32 s8, s11
18291 ; GFX940-NEXT: s_mov_b32 s9, s11
18292 ; GFX940-NEXT: s_mov_b32 s11, s3
18293 ; GFX940-NEXT: ;;#ASMSTART
18294 ; GFX940-NEXT: ; use s[8:11]
18295 ; GFX940-NEXT: ;;#ASMEND
18296 ; GFX940-NEXT: s_setpc_b64 s[30:31]
18297 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
18298 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
18299 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 6, i32 3>
18300 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
18304 define void @s_shuffle_v4p3_v4p3__u_4_4_4() {
18305 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__u_4_4_4:
18307 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18308 ; GFX9-NEXT: ;;#ASMSTART
18309 ; GFX9-NEXT: ; use s[8:11]
18310 ; GFX9-NEXT: ;;#ASMEND
18311 ; GFX9-NEXT: s_setpc_b64 s[30:31]
18312 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
18313 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 poison, i32 4, i32 4, i32 4>
18314 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
18318 define void @s_shuffle_v4p3_v4p3__0_4_4_4() {
18319 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__0_4_4_4:
18321 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18322 ; GFX900-NEXT: ;;#ASMSTART
18323 ; GFX900-NEXT: ; def s[8:11]
18324 ; GFX900-NEXT: ;;#ASMEND
18325 ; GFX900-NEXT: ;;#ASMSTART
18326 ; GFX900-NEXT: ; use s[8:11]
18327 ; GFX900-NEXT: ;;#ASMEND
18328 ; GFX900-NEXT: s_setpc_b64 s[30:31]
18330 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__0_4_4_4:
18332 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18333 ; GFX90A-NEXT: ;;#ASMSTART
18334 ; GFX90A-NEXT: ; def s[8:11]
18335 ; GFX90A-NEXT: ;;#ASMEND
18336 ; GFX90A-NEXT: ;;#ASMSTART
18337 ; GFX90A-NEXT: ; use s[8:11]
18338 ; GFX90A-NEXT: ;;#ASMEND
18339 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
18341 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__0_4_4_4:
18343 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18344 ; GFX940-NEXT: ;;#ASMSTART
18345 ; GFX940-NEXT: ; def s[8:11]
18346 ; GFX940-NEXT: ;;#ASMEND
18347 ; GFX940-NEXT: s_nop 0
18348 ; GFX940-NEXT: ;;#ASMSTART
18349 ; GFX940-NEXT: ; use s[8:11]
18350 ; GFX940-NEXT: ;;#ASMEND
18351 ; GFX940-NEXT: s_setpc_b64 s[30:31]
18352 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
18353 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 0, i32 4, i32 4, i32 4>
18354 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
18358 define void @s_shuffle_v4p3_v4p3__1_4_4_4() {
18359 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__1_4_4_4:
18361 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18362 ; GFX900-NEXT: ;;#ASMSTART
18363 ; GFX900-NEXT: ; def s[4:7]
18364 ; GFX900-NEXT: ;;#ASMEND
18365 ; GFX900-NEXT: s_mov_b32 s8, s5
18366 ; GFX900-NEXT: ;;#ASMSTART
18367 ; GFX900-NEXT: ; use s[8:11]
18368 ; GFX900-NEXT: ;;#ASMEND
18369 ; GFX900-NEXT: s_setpc_b64 s[30:31]
18371 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__1_4_4_4:
18373 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18374 ; GFX90A-NEXT: ;;#ASMSTART
18375 ; GFX90A-NEXT: ; def s[4:7]
18376 ; GFX90A-NEXT: ;;#ASMEND
18377 ; GFX90A-NEXT: s_mov_b32 s8, s5
18378 ; GFX90A-NEXT: ;;#ASMSTART
18379 ; GFX90A-NEXT: ; use s[8:11]
18380 ; GFX90A-NEXT: ;;#ASMEND
18381 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
18383 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__1_4_4_4:
18385 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18386 ; GFX940-NEXT: ;;#ASMSTART
18387 ; GFX940-NEXT: ; def s[0:3]
18388 ; GFX940-NEXT: ;;#ASMEND
18389 ; GFX940-NEXT: s_mov_b32 s8, s1
18390 ; GFX940-NEXT: ;;#ASMSTART
18391 ; GFX940-NEXT: ; use s[8:11]
18392 ; GFX940-NEXT: ;;#ASMEND
18393 ; GFX940-NEXT: s_setpc_b64 s[30:31]
18394 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
18395 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 1, i32 4, i32 4, i32 4>
18396 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
18400 define void @s_shuffle_v4p3_v4p3__2_4_4_4() {
18401 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__2_4_4_4:
18403 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18404 ; GFX900-NEXT: ;;#ASMSTART
18405 ; GFX900-NEXT: ; def s[4:7]
18406 ; GFX900-NEXT: ;;#ASMEND
18407 ; GFX900-NEXT: s_mov_b32 s8, s6
18408 ; GFX900-NEXT: ;;#ASMSTART
18409 ; GFX900-NEXT: ; use s[8:11]
18410 ; GFX900-NEXT: ;;#ASMEND
18411 ; GFX900-NEXT: s_setpc_b64 s[30:31]
18413 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__2_4_4_4:
18415 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18416 ; GFX90A-NEXT: ;;#ASMSTART
18417 ; GFX90A-NEXT: ; def s[4:7]
18418 ; GFX90A-NEXT: ;;#ASMEND
18419 ; GFX90A-NEXT: s_mov_b32 s8, s6
18420 ; GFX90A-NEXT: ;;#ASMSTART
18421 ; GFX90A-NEXT: ; use s[8:11]
18422 ; GFX90A-NEXT: ;;#ASMEND
18423 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
18425 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__2_4_4_4:
18427 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18428 ; GFX940-NEXT: ;;#ASMSTART
18429 ; GFX940-NEXT: ; def s[0:3]
18430 ; GFX940-NEXT: ;;#ASMEND
18431 ; GFX940-NEXT: s_mov_b32 s8, s2
18432 ; GFX940-NEXT: ;;#ASMSTART
18433 ; GFX940-NEXT: ; use s[8:11]
18434 ; GFX940-NEXT: ;;#ASMEND
18435 ; GFX940-NEXT: s_setpc_b64 s[30:31]
18436 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
18437 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 2, i32 4, i32 4, i32 4>
18438 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
18442 define void @s_shuffle_v4p3_v4p3__3_4_4_4() {
18443 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__3_4_4_4:
18445 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18446 ; GFX900-NEXT: ;;#ASMSTART
18447 ; GFX900-NEXT: ; def s[4:7]
18448 ; GFX900-NEXT: ;;#ASMEND
18449 ; GFX900-NEXT: s_mov_b32 s8, s7
18450 ; GFX900-NEXT: ;;#ASMSTART
18451 ; GFX900-NEXT: ; use s[8:11]
18452 ; GFX900-NEXT: ;;#ASMEND
18453 ; GFX900-NEXT: s_setpc_b64 s[30:31]
18455 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__3_4_4_4:
18457 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18458 ; GFX90A-NEXT: ;;#ASMSTART
18459 ; GFX90A-NEXT: ; def s[4:7]
18460 ; GFX90A-NEXT: ;;#ASMEND
18461 ; GFX90A-NEXT: s_mov_b32 s8, s7
18462 ; GFX90A-NEXT: ;;#ASMSTART
18463 ; GFX90A-NEXT: ; use s[8:11]
18464 ; GFX90A-NEXT: ;;#ASMEND
18465 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
18467 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__3_4_4_4:
18469 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18470 ; GFX940-NEXT: ;;#ASMSTART
18471 ; GFX940-NEXT: ; def s[0:3]
18472 ; GFX940-NEXT: ;;#ASMEND
18473 ; GFX940-NEXT: s_mov_b32 s8, s3
18474 ; GFX940-NEXT: ;;#ASMSTART
18475 ; GFX940-NEXT: ; use s[8:11]
18476 ; GFX940-NEXT: ;;#ASMEND
18477 ; GFX940-NEXT: s_setpc_b64 s[30:31]
18478 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
18479 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 3, i32 4, i32 4, i32 4>
18480 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
18484 define void @s_shuffle_v4p3_v4p3__4_4_4_4() {
18485 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__4_4_4_4:
18487 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18488 ; GFX9-NEXT: ;;#ASMSTART
18489 ; GFX9-NEXT: ; use s[8:11]
18490 ; GFX9-NEXT: ;;#ASMEND
18491 ; GFX9-NEXT: s_setpc_b64 s[30:31]
18492 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
18493 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> poison, <4 x i32> <i32 4, i32 4, i32 4, i32 4>
18494 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
18498 define void @s_shuffle_v4p3_v4p3__5_4_4_4() {
18499 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__5_4_4_4:
18501 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18502 ; GFX900-NEXT: ;;#ASMSTART
18503 ; GFX900-NEXT: ; def s[4:7]
18504 ; GFX900-NEXT: ;;#ASMEND
18505 ; GFX900-NEXT: s_mov_b32 s8, s5
18506 ; GFX900-NEXT: s_mov_b32 s9, s4
18507 ; GFX900-NEXT: s_mov_b32 s10, s4
18508 ; GFX900-NEXT: s_mov_b32 s11, s4
18509 ; GFX900-NEXT: ;;#ASMSTART
18510 ; GFX900-NEXT: ; use s[8:11]
18511 ; GFX900-NEXT: ;;#ASMEND
18512 ; GFX900-NEXT: s_setpc_b64 s[30:31]
18514 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__5_4_4_4:
18516 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18517 ; GFX90A-NEXT: ;;#ASMSTART
18518 ; GFX90A-NEXT: ; def s[4:7]
18519 ; GFX90A-NEXT: ;;#ASMEND
18520 ; GFX90A-NEXT: s_mov_b32 s8, s5
18521 ; GFX90A-NEXT: s_mov_b32 s9, s4
18522 ; GFX90A-NEXT: s_mov_b32 s10, s4
18523 ; GFX90A-NEXT: s_mov_b32 s11, s4
18524 ; GFX90A-NEXT: ;;#ASMSTART
18525 ; GFX90A-NEXT: ; use s[8:11]
18526 ; GFX90A-NEXT: ;;#ASMEND
18527 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
18529 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__5_4_4_4:
18531 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18532 ; GFX940-NEXT: ;;#ASMSTART
18533 ; GFX940-NEXT: ; def s[0:3]
18534 ; GFX940-NEXT: ;;#ASMEND
18535 ; GFX940-NEXT: s_mov_b32 s8, s1
18536 ; GFX940-NEXT: s_mov_b32 s9, s0
18537 ; GFX940-NEXT: s_mov_b32 s10, s0
18538 ; GFX940-NEXT: s_mov_b32 s11, s0
18539 ; GFX940-NEXT: ;;#ASMSTART
18540 ; GFX940-NEXT: ; use s[8:11]
18541 ; GFX940-NEXT: ;;#ASMEND
18542 ; GFX940-NEXT: s_setpc_b64 s[30:31]
18543 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
18544 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
18545 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 5, i32 4, i32 4, i32 4>
18546 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
18550 define void @s_shuffle_v4p3_v4p3__6_4_4_4() {
18551 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__6_4_4_4:
18553 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18554 ; GFX900-NEXT: ;;#ASMSTART
18555 ; GFX900-NEXT: ; def s[4:7]
18556 ; GFX900-NEXT: ;;#ASMEND
18557 ; GFX900-NEXT: s_mov_b32 s8, s6
18558 ; GFX900-NEXT: s_mov_b32 s9, s4
18559 ; GFX900-NEXT: s_mov_b32 s10, s4
18560 ; GFX900-NEXT: s_mov_b32 s11, s4
18561 ; GFX900-NEXT: ;;#ASMSTART
18562 ; GFX900-NEXT: ; use s[8:11]
18563 ; GFX900-NEXT: ;;#ASMEND
18564 ; GFX900-NEXT: s_setpc_b64 s[30:31]
18566 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__6_4_4_4:
18568 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18569 ; GFX90A-NEXT: ;;#ASMSTART
18570 ; GFX90A-NEXT: ; def s[4:7]
18571 ; GFX90A-NEXT: ;;#ASMEND
18572 ; GFX90A-NEXT: s_mov_b32 s8, s6
18573 ; GFX90A-NEXT: s_mov_b32 s9, s4
18574 ; GFX90A-NEXT: s_mov_b32 s10, s4
18575 ; GFX90A-NEXT: s_mov_b32 s11, s4
18576 ; GFX90A-NEXT: ;;#ASMSTART
18577 ; GFX90A-NEXT: ; use s[8:11]
18578 ; GFX90A-NEXT: ;;#ASMEND
18579 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
18581 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__6_4_4_4:
18583 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18584 ; GFX940-NEXT: ;;#ASMSTART
18585 ; GFX940-NEXT: ; def s[0:3]
18586 ; GFX940-NEXT: ;;#ASMEND
18587 ; GFX940-NEXT: s_mov_b32 s8, s2
18588 ; GFX940-NEXT: s_mov_b32 s9, s0
18589 ; GFX940-NEXT: s_mov_b32 s10, s0
18590 ; GFX940-NEXT: s_mov_b32 s11, s0
18591 ; GFX940-NEXT: ;;#ASMSTART
18592 ; GFX940-NEXT: ; use s[8:11]
18593 ; GFX940-NEXT: ;;#ASMEND
18594 ; GFX940-NEXT: s_setpc_b64 s[30:31]
18595 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
18596 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
18597 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 6, i32 4, i32 4, i32 4>
18598 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
18602 define void @s_shuffle_v4p3_v4p3__7_4_4_4() {
18603 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_4_4_4:
18605 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18606 ; GFX900-NEXT: ;;#ASMSTART
18607 ; GFX900-NEXT: ; def s[4:7]
18608 ; GFX900-NEXT: ;;#ASMEND
18609 ; GFX900-NEXT: s_mov_b32 s8, s7
18610 ; GFX900-NEXT: s_mov_b32 s9, s4
18611 ; GFX900-NEXT: s_mov_b32 s10, s4
18612 ; GFX900-NEXT: s_mov_b32 s11, s4
18613 ; GFX900-NEXT: ;;#ASMSTART
18614 ; GFX900-NEXT: ; use s[8:11]
18615 ; GFX900-NEXT: ;;#ASMEND
18616 ; GFX900-NEXT: s_setpc_b64 s[30:31]
18618 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_4_4_4:
18620 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18621 ; GFX90A-NEXT: ;;#ASMSTART
18622 ; GFX90A-NEXT: ; def s[4:7]
18623 ; GFX90A-NEXT: ;;#ASMEND
18624 ; GFX90A-NEXT: s_mov_b32 s8, s7
18625 ; GFX90A-NEXT: s_mov_b32 s9, s4
18626 ; GFX90A-NEXT: s_mov_b32 s10, s4
18627 ; GFX90A-NEXT: s_mov_b32 s11, s4
18628 ; GFX90A-NEXT: ;;#ASMSTART
18629 ; GFX90A-NEXT: ; use s[8:11]
18630 ; GFX90A-NEXT: ;;#ASMEND
18631 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
18633 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_4_4_4:
18635 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18636 ; GFX940-NEXT: ;;#ASMSTART
18637 ; GFX940-NEXT: ; def s[0:3]
18638 ; GFX940-NEXT: ;;#ASMEND
18639 ; GFX940-NEXT: s_mov_b32 s8, s3
18640 ; GFX940-NEXT: s_mov_b32 s9, s0
18641 ; GFX940-NEXT: s_mov_b32 s10, s0
18642 ; GFX940-NEXT: s_mov_b32 s11, s0
18643 ; GFX940-NEXT: ;;#ASMSTART
18644 ; GFX940-NEXT: ; use s[8:11]
18645 ; GFX940-NEXT: ;;#ASMEND
18646 ; GFX940-NEXT: s_setpc_b64 s[30:31]
18647 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
18648 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
18649 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 4, i32 4, i32 4>
18650 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
18654 define void @s_shuffle_v4p3_v4p3__7_u_4_4() {
18655 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_u_4_4:
18657 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18658 ; GFX900-NEXT: ;;#ASMSTART
18659 ; GFX900-NEXT: ; def s[4:7]
18660 ; GFX900-NEXT: ;;#ASMEND
18661 ; GFX900-NEXT: s_mov_b32 s8, s7
18662 ; GFX900-NEXT: s_mov_b32 s10, s4
18663 ; GFX900-NEXT: s_mov_b32 s11, s4
18664 ; GFX900-NEXT: ;;#ASMSTART
18665 ; GFX900-NEXT: ; use s[8:11]
18666 ; GFX900-NEXT: ;;#ASMEND
18667 ; GFX900-NEXT: s_setpc_b64 s[30:31]
18669 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_u_4_4:
18671 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18672 ; GFX90A-NEXT: ;;#ASMSTART
18673 ; GFX90A-NEXT: ; def s[4:7]
18674 ; GFX90A-NEXT: ;;#ASMEND
18675 ; GFX90A-NEXT: s_mov_b32 s8, s7
18676 ; GFX90A-NEXT: s_mov_b32 s10, s4
18677 ; GFX90A-NEXT: s_mov_b32 s11, s4
18678 ; GFX90A-NEXT: ;;#ASMSTART
18679 ; GFX90A-NEXT: ; use s[8:11]
18680 ; GFX90A-NEXT: ;;#ASMEND
18681 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
18683 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_u_4_4:
18685 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18686 ; GFX940-NEXT: ;;#ASMSTART
18687 ; GFX940-NEXT: ; def s[0:3]
18688 ; GFX940-NEXT: ;;#ASMEND
18689 ; GFX940-NEXT: s_mov_b32 s8, s3
18690 ; GFX940-NEXT: s_mov_b32 s10, s0
18691 ; GFX940-NEXT: s_mov_b32 s11, s0
18692 ; GFX940-NEXT: ;;#ASMSTART
18693 ; GFX940-NEXT: ; use s[8:11]
18694 ; GFX940-NEXT: ;;#ASMEND
18695 ; GFX940-NEXT: s_setpc_b64 s[30:31]
18696 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
18697 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
18698 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 poison, i32 4, i32 4>
18699 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
18703 define void @s_shuffle_v4p3_v4p3__7_0_4_4() {
18704 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_0_4_4:
18706 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18707 ; GFX900-NEXT: ;;#ASMSTART
18708 ; GFX900-NEXT: ; def s[4:7]
18709 ; GFX900-NEXT: ;;#ASMEND
18710 ; GFX900-NEXT: ;;#ASMSTART
18711 ; GFX900-NEXT: ; def s[12:15]
18712 ; GFX900-NEXT: ;;#ASMEND
18713 ; GFX900-NEXT: s_mov_b32 s8, s15
18714 ; GFX900-NEXT: s_mov_b32 s9, s4
18715 ; GFX900-NEXT: s_mov_b32 s10, s12
18716 ; GFX900-NEXT: s_mov_b32 s11, s12
18717 ; GFX900-NEXT: ;;#ASMSTART
18718 ; GFX900-NEXT: ; use s[8:11]
18719 ; GFX900-NEXT: ;;#ASMEND
18720 ; GFX900-NEXT: s_setpc_b64 s[30:31]
18722 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_0_4_4:
18724 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18725 ; GFX90A-NEXT: ;;#ASMSTART
18726 ; GFX90A-NEXT: ; def s[4:7]
18727 ; GFX90A-NEXT: ;;#ASMEND
18728 ; GFX90A-NEXT: ;;#ASMSTART
18729 ; GFX90A-NEXT: ; def s[12:15]
18730 ; GFX90A-NEXT: ;;#ASMEND
18731 ; GFX90A-NEXT: s_mov_b32 s8, s15
18732 ; GFX90A-NEXT: s_mov_b32 s9, s4
18733 ; GFX90A-NEXT: s_mov_b32 s10, s12
18734 ; GFX90A-NEXT: s_mov_b32 s11, s12
18735 ; GFX90A-NEXT: ;;#ASMSTART
18736 ; GFX90A-NEXT: ; use s[8:11]
18737 ; GFX90A-NEXT: ;;#ASMEND
18738 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
18740 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_0_4_4:
18742 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18743 ; GFX940-NEXT: ;;#ASMSTART
18744 ; GFX940-NEXT: ; def s[0:3]
18745 ; GFX940-NEXT: ;;#ASMEND
18746 ; GFX940-NEXT: ;;#ASMSTART
18747 ; GFX940-NEXT: ; def s[4:7]
18748 ; GFX940-NEXT: ;;#ASMEND
18749 ; GFX940-NEXT: s_mov_b32 s8, s7
18750 ; GFX940-NEXT: s_mov_b32 s9, s0
18751 ; GFX940-NEXT: s_mov_b32 s10, s4
18752 ; GFX940-NEXT: s_mov_b32 s11, s4
18753 ; GFX940-NEXT: ;;#ASMSTART
18754 ; GFX940-NEXT: ; use s[8:11]
18755 ; GFX940-NEXT: ;;#ASMEND
18756 ; GFX940-NEXT: s_setpc_b64 s[30:31]
18757 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
18758 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
18759 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 0, i32 4, i32 4>
18760 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
18764 define void @s_shuffle_v4p3_v4p3__7_1_4_4() {
18765 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_1_4_4:
18767 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18768 ; GFX900-NEXT: ;;#ASMSTART
18769 ; GFX900-NEXT: ; def s[8:11]
18770 ; GFX900-NEXT: ;;#ASMEND
18771 ; GFX900-NEXT: ;;#ASMSTART
18772 ; GFX900-NEXT: ; def s[4:7]
18773 ; GFX900-NEXT: ;;#ASMEND
18774 ; GFX900-NEXT: s_mov_b32 s8, s7
18775 ; GFX900-NEXT: s_mov_b32 s10, s4
18776 ; GFX900-NEXT: s_mov_b32 s11, s4
18777 ; GFX900-NEXT: ;;#ASMSTART
18778 ; GFX900-NEXT: ; use s[8:11]
18779 ; GFX900-NEXT: ;;#ASMEND
18780 ; GFX900-NEXT: s_setpc_b64 s[30:31]
18782 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_1_4_4:
18784 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18785 ; GFX90A-NEXT: ;;#ASMSTART
18786 ; GFX90A-NEXT: ; def s[8:11]
18787 ; GFX90A-NEXT: ;;#ASMEND
18788 ; GFX90A-NEXT: ;;#ASMSTART
18789 ; GFX90A-NEXT: ; def s[4:7]
18790 ; GFX90A-NEXT: ;;#ASMEND
18791 ; GFX90A-NEXT: s_mov_b32 s8, s7
18792 ; GFX90A-NEXT: s_mov_b32 s10, s4
18793 ; GFX90A-NEXT: s_mov_b32 s11, s4
18794 ; GFX90A-NEXT: ;;#ASMSTART
18795 ; GFX90A-NEXT: ; use s[8:11]
18796 ; GFX90A-NEXT: ;;#ASMEND
18797 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
18799 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_1_4_4:
18801 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18802 ; GFX940-NEXT: ;;#ASMSTART
18803 ; GFX940-NEXT: ; def s[8:11]
18804 ; GFX940-NEXT: ;;#ASMEND
18805 ; GFX940-NEXT: ;;#ASMSTART
18806 ; GFX940-NEXT: ; def s[0:3]
18807 ; GFX940-NEXT: ;;#ASMEND
18808 ; GFX940-NEXT: s_mov_b32 s8, s3
18809 ; GFX940-NEXT: s_mov_b32 s10, s0
18810 ; GFX940-NEXT: s_mov_b32 s11, s0
18811 ; GFX940-NEXT: ;;#ASMSTART
18812 ; GFX940-NEXT: ; use s[8:11]
18813 ; GFX940-NEXT: ;;#ASMEND
18814 ; GFX940-NEXT: s_setpc_b64 s[30:31]
18815 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
18816 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
18817 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 1, i32 4, i32 4>
18818 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
18822 define void @s_shuffle_v4p3_v4p3__7_2_4_4() {
18823 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_2_4_4:
18825 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18826 ; GFX900-NEXT: ;;#ASMSTART
18827 ; GFX900-NEXT: ; def s[4:7]
18828 ; GFX900-NEXT: ;;#ASMEND
18829 ; GFX900-NEXT: ;;#ASMSTART
18830 ; GFX900-NEXT: ; def s[12:15]
18831 ; GFX900-NEXT: ;;#ASMEND
18832 ; GFX900-NEXT: s_mov_b32 s8, s15
18833 ; GFX900-NEXT: s_mov_b32 s9, s6
18834 ; GFX900-NEXT: s_mov_b32 s10, s12
18835 ; GFX900-NEXT: s_mov_b32 s11, s12
18836 ; GFX900-NEXT: ;;#ASMSTART
18837 ; GFX900-NEXT: ; use s[8:11]
18838 ; GFX900-NEXT: ;;#ASMEND
18839 ; GFX900-NEXT: s_setpc_b64 s[30:31]
18841 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_2_4_4:
18843 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18844 ; GFX90A-NEXT: ;;#ASMSTART
18845 ; GFX90A-NEXT: ; def s[4:7]
18846 ; GFX90A-NEXT: ;;#ASMEND
18847 ; GFX90A-NEXT: ;;#ASMSTART
18848 ; GFX90A-NEXT: ; def s[12:15]
18849 ; GFX90A-NEXT: ;;#ASMEND
18850 ; GFX90A-NEXT: s_mov_b32 s8, s15
18851 ; GFX90A-NEXT: s_mov_b32 s9, s6
18852 ; GFX90A-NEXT: s_mov_b32 s10, s12
18853 ; GFX90A-NEXT: s_mov_b32 s11, s12
18854 ; GFX90A-NEXT: ;;#ASMSTART
18855 ; GFX90A-NEXT: ; use s[8:11]
18856 ; GFX90A-NEXT: ;;#ASMEND
18857 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
18859 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_2_4_4:
18861 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18862 ; GFX940-NEXT: ;;#ASMSTART
18863 ; GFX940-NEXT: ; def s[0:3]
18864 ; GFX940-NEXT: ;;#ASMEND
18865 ; GFX940-NEXT: ;;#ASMSTART
18866 ; GFX940-NEXT: ; def s[4:7]
18867 ; GFX940-NEXT: ;;#ASMEND
18868 ; GFX940-NEXT: s_mov_b32 s8, s7
18869 ; GFX940-NEXT: s_mov_b32 s9, s2
18870 ; GFX940-NEXT: s_mov_b32 s10, s4
18871 ; GFX940-NEXT: s_mov_b32 s11, s4
18872 ; GFX940-NEXT: ;;#ASMSTART
18873 ; GFX940-NEXT: ; use s[8:11]
18874 ; GFX940-NEXT: ;;#ASMEND
18875 ; GFX940-NEXT: s_setpc_b64 s[30:31]
18876 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
18877 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
18878 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 2, i32 4, i32 4>
18879 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
18883 define void @s_shuffle_v4p3_v4p3__7_3_4_4() {
18884 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_3_4_4:
18886 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18887 ; GFX900-NEXT: ;;#ASMSTART
18888 ; GFX900-NEXT: ; def s[4:7]
18889 ; GFX900-NEXT: ;;#ASMEND
18890 ; GFX900-NEXT: ;;#ASMSTART
18891 ; GFX900-NEXT: ; def s[12:15]
18892 ; GFX900-NEXT: ;;#ASMEND
18893 ; GFX900-NEXT: s_mov_b32 s8, s15
18894 ; GFX900-NEXT: s_mov_b32 s9, s7
18895 ; GFX900-NEXT: s_mov_b32 s10, s12
18896 ; GFX900-NEXT: s_mov_b32 s11, s12
18897 ; GFX900-NEXT: ;;#ASMSTART
18898 ; GFX900-NEXT: ; use s[8:11]
18899 ; GFX900-NEXT: ;;#ASMEND
18900 ; GFX900-NEXT: s_setpc_b64 s[30:31]
18902 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_3_4_4:
18904 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18905 ; GFX90A-NEXT: ;;#ASMSTART
18906 ; GFX90A-NEXT: ; def s[4:7]
18907 ; GFX90A-NEXT: ;;#ASMEND
18908 ; GFX90A-NEXT: ;;#ASMSTART
18909 ; GFX90A-NEXT: ; def s[12:15]
18910 ; GFX90A-NEXT: ;;#ASMEND
18911 ; GFX90A-NEXT: s_mov_b32 s8, s15
18912 ; GFX90A-NEXT: s_mov_b32 s9, s7
18913 ; GFX90A-NEXT: s_mov_b32 s10, s12
18914 ; GFX90A-NEXT: s_mov_b32 s11, s12
18915 ; GFX90A-NEXT: ;;#ASMSTART
18916 ; GFX90A-NEXT: ; use s[8:11]
18917 ; GFX90A-NEXT: ;;#ASMEND
18918 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
18920 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_3_4_4:
18922 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18923 ; GFX940-NEXT: ;;#ASMSTART
18924 ; GFX940-NEXT: ; def s[0:3]
18925 ; GFX940-NEXT: ;;#ASMEND
18926 ; GFX940-NEXT: ;;#ASMSTART
18927 ; GFX940-NEXT: ; def s[4:7]
18928 ; GFX940-NEXT: ;;#ASMEND
18929 ; GFX940-NEXT: s_mov_b32 s8, s7
18930 ; GFX940-NEXT: s_mov_b32 s9, s3
18931 ; GFX940-NEXT: s_mov_b32 s10, s4
18932 ; GFX940-NEXT: s_mov_b32 s11, s4
18933 ; GFX940-NEXT: ;;#ASMSTART
18934 ; GFX940-NEXT: ; use s[8:11]
18935 ; GFX940-NEXT: ;;#ASMEND
18936 ; GFX940-NEXT: s_setpc_b64 s[30:31]
18937 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
18938 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
18939 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 3, i32 4, i32 4>
18940 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
18944 define void @s_shuffle_v4p3_v4p3__7_5_4_4() {
18945 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_5_4_4:
18947 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18948 ; GFX900-NEXT: ;;#ASMSTART
18949 ; GFX900-NEXT: ; def s[4:7]
18950 ; GFX900-NEXT: ;;#ASMEND
18951 ; GFX900-NEXT: s_mov_b32 s8, s7
18952 ; GFX900-NEXT: s_mov_b32 s9, s5
18953 ; GFX900-NEXT: s_mov_b32 s10, s4
18954 ; GFX900-NEXT: s_mov_b32 s11, s4
18955 ; GFX900-NEXT: ;;#ASMSTART
18956 ; GFX900-NEXT: ; use s[8:11]
18957 ; GFX900-NEXT: ;;#ASMEND
18958 ; GFX900-NEXT: s_setpc_b64 s[30:31]
18960 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_5_4_4:
18962 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18963 ; GFX90A-NEXT: ;;#ASMSTART
18964 ; GFX90A-NEXT: ; def s[4:7]
18965 ; GFX90A-NEXT: ;;#ASMEND
18966 ; GFX90A-NEXT: s_mov_b32 s8, s7
18967 ; GFX90A-NEXT: s_mov_b32 s9, s5
18968 ; GFX90A-NEXT: s_mov_b32 s10, s4
18969 ; GFX90A-NEXT: s_mov_b32 s11, s4
18970 ; GFX90A-NEXT: ;;#ASMSTART
18971 ; GFX90A-NEXT: ; use s[8:11]
18972 ; GFX90A-NEXT: ;;#ASMEND
18973 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
18975 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_5_4_4:
18977 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
18978 ; GFX940-NEXT: ;;#ASMSTART
18979 ; GFX940-NEXT: ; def s[0:3]
18980 ; GFX940-NEXT: ;;#ASMEND
18981 ; GFX940-NEXT: s_mov_b32 s8, s3
18982 ; GFX940-NEXT: s_mov_b32 s9, s1
18983 ; GFX940-NEXT: s_mov_b32 s10, s0
18984 ; GFX940-NEXT: s_mov_b32 s11, s0
18985 ; GFX940-NEXT: ;;#ASMSTART
18986 ; GFX940-NEXT: ; use s[8:11]
18987 ; GFX940-NEXT: ;;#ASMEND
18988 ; GFX940-NEXT: s_setpc_b64 s[30:31]
18989 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
18990 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
18991 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 5, i32 4, i32 4>
18992 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
18996 define void @s_shuffle_v4p3_v4p3__7_6_4_4() {
18997 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_6_4_4:
18999 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19000 ; GFX900-NEXT: ;;#ASMSTART
19001 ; GFX900-NEXT: ; def s[4:7]
19002 ; GFX900-NEXT: ;;#ASMEND
19003 ; GFX900-NEXT: s_mov_b32 s8, s7
19004 ; GFX900-NEXT: s_mov_b32 s9, s6
19005 ; GFX900-NEXT: s_mov_b32 s10, s4
19006 ; GFX900-NEXT: s_mov_b32 s11, s4
19007 ; GFX900-NEXT: ;;#ASMSTART
19008 ; GFX900-NEXT: ; use s[8:11]
19009 ; GFX900-NEXT: ;;#ASMEND
19010 ; GFX900-NEXT: s_setpc_b64 s[30:31]
19012 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_6_4_4:
19014 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19015 ; GFX90A-NEXT: ;;#ASMSTART
19016 ; GFX90A-NEXT: ; def s[4:7]
19017 ; GFX90A-NEXT: ;;#ASMEND
19018 ; GFX90A-NEXT: s_mov_b32 s8, s7
19019 ; GFX90A-NEXT: s_mov_b32 s9, s6
19020 ; GFX90A-NEXT: s_mov_b32 s10, s4
19021 ; GFX90A-NEXT: s_mov_b32 s11, s4
19022 ; GFX90A-NEXT: ;;#ASMSTART
19023 ; GFX90A-NEXT: ; use s[8:11]
19024 ; GFX90A-NEXT: ;;#ASMEND
19025 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
19027 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_6_4_4:
19029 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19030 ; GFX940-NEXT: ;;#ASMSTART
19031 ; GFX940-NEXT: ; def s[0:3]
19032 ; GFX940-NEXT: ;;#ASMEND
19033 ; GFX940-NEXT: s_mov_b32 s8, s3
19034 ; GFX940-NEXT: s_mov_b32 s9, s2
19035 ; GFX940-NEXT: s_mov_b32 s10, s0
19036 ; GFX940-NEXT: s_mov_b32 s11, s0
19037 ; GFX940-NEXT: ;;#ASMSTART
19038 ; GFX940-NEXT: ; use s[8:11]
19039 ; GFX940-NEXT: ;;#ASMEND
19040 ; GFX940-NEXT: s_setpc_b64 s[30:31]
19041 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
19042 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
19043 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 6, i32 4, i32 4>
19044 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
19048 define void @s_shuffle_v4p3_v4p3__7_7_4_4() {
19049 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_4_4:
19051 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19052 ; GFX900-NEXT: ;;#ASMSTART
19053 ; GFX900-NEXT: ; def s[4:7]
19054 ; GFX900-NEXT: ;;#ASMEND
19055 ; GFX900-NEXT: s_mov_b32 s8, s7
19056 ; GFX900-NEXT: s_mov_b32 s9, s7
19057 ; GFX900-NEXT: s_mov_b32 s10, s4
19058 ; GFX900-NEXT: s_mov_b32 s11, s4
19059 ; GFX900-NEXT: ;;#ASMSTART
19060 ; GFX900-NEXT: ; use s[8:11]
19061 ; GFX900-NEXT: ;;#ASMEND
19062 ; GFX900-NEXT: s_setpc_b64 s[30:31]
19064 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_4_4:
19066 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19067 ; GFX90A-NEXT: ;;#ASMSTART
19068 ; GFX90A-NEXT: ; def s[4:7]
19069 ; GFX90A-NEXT: ;;#ASMEND
19070 ; GFX90A-NEXT: s_mov_b32 s8, s7
19071 ; GFX90A-NEXT: s_mov_b32 s9, s7
19072 ; GFX90A-NEXT: s_mov_b32 s10, s4
19073 ; GFX90A-NEXT: s_mov_b32 s11, s4
19074 ; GFX90A-NEXT: ;;#ASMSTART
19075 ; GFX90A-NEXT: ; use s[8:11]
19076 ; GFX90A-NEXT: ;;#ASMEND
19077 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
19079 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_4_4:
19081 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19082 ; GFX940-NEXT: ;;#ASMSTART
19083 ; GFX940-NEXT: ; def s[0:3]
19084 ; GFX940-NEXT: ;;#ASMEND
19085 ; GFX940-NEXT: s_mov_b32 s8, s3
19086 ; GFX940-NEXT: s_mov_b32 s9, s3
19087 ; GFX940-NEXT: s_mov_b32 s10, s0
19088 ; GFX940-NEXT: s_mov_b32 s11, s0
19089 ; GFX940-NEXT: ;;#ASMSTART
19090 ; GFX940-NEXT: ; use s[8:11]
19091 ; GFX940-NEXT: ;;#ASMEND
19092 ; GFX940-NEXT: s_setpc_b64 s[30:31]
19093 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
19094 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
19095 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 4, i32 4>
19096 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
19100 define void @s_shuffle_v4p3_v4p3__7_7_u_4() {
19101 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_u_4:
19103 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19104 ; GFX900-NEXT: ;;#ASMSTART
19105 ; GFX900-NEXT: ; def s[4:7]
19106 ; GFX900-NEXT: ;;#ASMEND
19107 ; GFX900-NEXT: s_mov_b32 s8, s7
19108 ; GFX900-NEXT: s_mov_b32 s9, s7
19109 ; GFX900-NEXT: s_mov_b32 s11, s4
19110 ; GFX900-NEXT: ;;#ASMSTART
19111 ; GFX900-NEXT: ; use s[8:11]
19112 ; GFX900-NEXT: ;;#ASMEND
19113 ; GFX900-NEXT: s_setpc_b64 s[30:31]
19115 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_u_4:
19117 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19118 ; GFX90A-NEXT: ;;#ASMSTART
19119 ; GFX90A-NEXT: ; def s[4:7]
19120 ; GFX90A-NEXT: ;;#ASMEND
19121 ; GFX90A-NEXT: s_mov_b32 s8, s7
19122 ; GFX90A-NEXT: s_mov_b32 s9, s7
19123 ; GFX90A-NEXT: s_mov_b32 s11, s4
19124 ; GFX90A-NEXT: ;;#ASMSTART
19125 ; GFX90A-NEXT: ; use s[8:11]
19126 ; GFX90A-NEXT: ;;#ASMEND
19127 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
19129 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_u_4:
19131 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19132 ; GFX940-NEXT: ;;#ASMSTART
19133 ; GFX940-NEXT: ; def s[0:3]
19134 ; GFX940-NEXT: ;;#ASMEND
19135 ; GFX940-NEXT: s_mov_b32 s8, s3
19136 ; GFX940-NEXT: s_mov_b32 s9, s3
19137 ; GFX940-NEXT: s_mov_b32 s11, s0
19138 ; GFX940-NEXT: ;;#ASMSTART
19139 ; GFX940-NEXT: ; use s[8:11]
19140 ; GFX940-NEXT: ;;#ASMEND
19141 ; GFX940-NEXT: s_setpc_b64 s[30:31]
19142 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
19143 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
19144 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 poison, i32 4>
19145 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
19149 define void @s_shuffle_v4p3_v4p3__7_7_0_4() {
19150 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_0_4:
19152 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19153 ; GFX900-NEXT: ;;#ASMSTART
19154 ; GFX900-NEXT: ; def s[4:7]
19155 ; GFX900-NEXT: ;;#ASMEND
19156 ; GFX900-NEXT: ;;#ASMSTART
19157 ; GFX900-NEXT: ; def s[12:15]
19158 ; GFX900-NEXT: ;;#ASMEND
19159 ; GFX900-NEXT: s_mov_b32 s8, s15
19160 ; GFX900-NEXT: s_mov_b32 s9, s15
19161 ; GFX900-NEXT: s_mov_b32 s10, s4
19162 ; GFX900-NEXT: s_mov_b32 s11, s12
19163 ; GFX900-NEXT: ;;#ASMSTART
19164 ; GFX900-NEXT: ; use s[8:11]
19165 ; GFX900-NEXT: ;;#ASMEND
19166 ; GFX900-NEXT: s_setpc_b64 s[30:31]
19168 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_0_4:
19170 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19171 ; GFX90A-NEXT: ;;#ASMSTART
19172 ; GFX90A-NEXT: ; def s[4:7]
19173 ; GFX90A-NEXT: ;;#ASMEND
19174 ; GFX90A-NEXT: ;;#ASMSTART
19175 ; GFX90A-NEXT: ; def s[12:15]
19176 ; GFX90A-NEXT: ;;#ASMEND
19177 ; GFX90A-NEXT: s_mov_b32 s8, s15
19178 ; GFX90A-NEXT: s_mov_b32 s9, s15
19179 ; GFX90A-NEXT: s_mov_b32 s10, s4
19180 ; GFX90A-NEXT: s_mov_b32 s11, s12
19181 ; GFX90A-NEXT: ;;#ASMSTART
19182 ; GFX90A-NEXT: ; use s[8:11]
19183 ; GFX90A-NEXT: ;;#ASMEND
19184 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
19186 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_0_4:
19188 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19189 ; GFX940-NEXT: ;;#ASMSTART
19190 ; GFX940-NEXT: ; def s[0:3]
19191 ; GFX940-NEXT: ;;#ASMEND
19192 ; GFX940-NEXT: ;;#ASMSTART
19193 ; GFX940-NEXT: ; def s[4:7]
19194 ; GFX940-NEXT: ;;#ASMEND
19195 ; GFX940-NEXT: s_mov_b32 s8, s7
19196 ; GFX940-NEXT: s_mov_b32 s9, s7
19197 ; GFX940-NEXT: s_mov_b32 s10, s0
19198 ; GFX940-NEXT: s_mov_b32 s11, s4
19199 ; GFX940-NEXT: ;;#ASMSTART
19200 ; GFX940-NEXT: ; use s[8:11]
19201 ; GFX940-NEXT: ;;#ASMEND
19202 ; GFX940-NEXT: s_setpc_b64 s[30:31]
19203 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
19204 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
19205 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 0, i32 4>
19206 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
19210 define void @s_shuffle_v4p3_v4p3__7_7_1_4() {
19211 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_1_4:
19213 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19214 ; GFX900-NEXT: ;;#ASMSTART
19215 ; GFX900-NEXT: ; def s[4:7]
19216 ; GFX900-NEXT: ;;#ASMEND
19217 ; GFX900-NEXT: ;;#ASMSTART
19218 ; GFX900-NEXT: ; def s[12:15]
19219 ; GFX900-NEXT: ;;#ASMEND
19220 ; GFX900-NEXT: s_mov_b32 s8, s15
19221 ; GFX900-NEXT: s_mov_b32 s9, s15
19222 ; GFX900-NEXT: s_mov_b32 s10, s5
19223 ; GFX900-NEXT: s_mov_b32 s11, s12
19224 ; GFX900-NEXT: ;;#ASMSTART
19225 ; GFX900-NEXT: ; use s[8:11]
19226 ; GFX900-NEXT: ;;#ASMEND
19227 ; GFX900-NEXT: s_setpc_b64 s[30:31]
19229 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_1_4:
19231 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19232 ; GFX90A-NEXT: ;;#ASMSTART
19233 ; GFX90A-NEXT: ; def s[4:7]
19234 ; GFX90A-NEXT: ;;#ASMEND
19235 ; GFX90A-NEXT: ;;#ASMSTART
19236 ; GFX90A-NEXT: ; def s[12:15]
19237 ; GFX90A-NEXT: ;;#ASMEND
19238 ; GFX90A-NEXT: s_mov_b32 s8, s15
19239 ; GFX90A-NEXT: s_mov_b32 s9, s15
19240 ; GFX90A-NEXT: s_mov_b32 s10, s5
19241 ; GFX90A-NEXT: s_mov_b32 s11, s12
19242 ; GFX90A-NEXT: ;;#ASMSTART
19243 ; GFX90A-NEXT: ; use s[8:11]
19244 ; GFX90A-NEXT: ;;#ASMEND
19245 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
19247 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_1_4:
19249 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19250 ; GFX940-NEXT: ;;#ASMSTART
19251 ; GFX940-NEXT: ; def s[0:3]
19252 ; GFX940-NEXT: ;;#ASMEND
19253 ; GFX940-NEXT: ;;#ASMSTART
19254 ; GFX940-NEXT: ; def s[4:7]
19255 ; GFX940-NEXT: ;;#ASMEND
19256 ; GFX940-NEXT: s_mov_b32 s8, s7
19257 ; GFX940-NEXT: s_mov_b32 s9, s7
19258 ; GFX940-NEXT: s_mov_b32 s10, s1
19259 ; GFX940-NEXT: s_mov_b32 s11, s4
19260 ; GFX940-NEXT: ;;#ASMSTART
19261 ; GFX940-NEXT: ; use s[8:11]
19262 ; GFX940-NEXT: ;;#ASMEND
19263 ; GFX940-NEXT: s_setpc_b64 s[30:31]
19264 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
19265 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
19266 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 1, i32 4>
19267 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
19271 define void @s_shuffle_v4p3_v4p3__7_7_2_4() {
19272 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_2_4:
19274 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19275 ; GFX900-NEXT: ;;#ASMSTART
19276 ; GFX900-NEXT: ; def s[8:11]
19277 ; GFX900-NEXT: ;;#ASMEND
19278 ; GFX900-NEXT: ;;#ASMSTART
19279 ; GFX900-NEXT: ; def s[4:7]
19280 ; GFX900-NEXT: ;;#ASMEND
19281 ; GFX900-NEXT: s_mov_b32 s8, s7
19282 ; GFX900-NEXT: s_mov_b32 s9, s7
19283 ; GFX900-NEXT: s_mov_b32 s11, s4
19284 ; GFX900-NEXT: ;;#ASMSTART
19285 ; GFX900-NEXT: ; use s[8:11]
19286 ; GFX900-NEXT: ;;#ASMEND
19287 ; GFX900-NEXT: s_setpc_b64 s[30:31]
19289 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_2_4:
19291 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19292 ; GFX90A-NEXT: ;;#ASMSTART
19293 ; GFX90A-NEXT: ; def s[8:11]
19294 ; GFX90A-NEXT: ;;#ASMEND
19295 ; GFX90A-NEXT: ;;#ASMSTART
19296 ; GFX90A-NEXT: ; def s[4:7]
19297 ; GFX90A-NEXT: ;;#ASMEND
19298 ; GFX90A-NEXT: s_mov_b32 s8, s7
19299 ; GFX90A-NEXT: s_mov_b32 s9, s7
19300 ; GFX90A-NEXT: s_mov_b32 s11, s4
19301 ; GFX90A-NEXT: ;;#ASMSTART
19302 ; GFX90A-NEXT: ; use s[8:11]
19303 ; GFX90A-NEXT: ;;#ASMEND
19304 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
19306 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_2_4:
19308 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19309 ; GFX940-NEXT: ;;#ASMSTART
19310 ; GFX940-NEXT: ; def s[8:11]
19311 ; GFX940-NEXT: ;;#ASMEND
19312 ; GFX940-NEXT: ;;#ASMSTART
19313 ; GFX940-NEXT: ; def s[0:3]
19314 ; GFX940-NEXT: ;;#ASMEND
19315 ; GFX940-NEXT: s_mov_b32 s8, s3
19316 ; GFX940-NEXT: s_mov_b32 s9, s3
19317 ; GFX940-NEXT: s_mov_b32 s11, s0
19318 ; GFX940-NEXT: ;;#ASMSTART
19319 ; GFX940-NEXT: ; use s[8:11]
19320 ; GFX940-NEXT: ;;#ASMEND
19321 ; GFX940-NEXT: s_setpc_b64 s[30:31]
19322 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
19323 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
19324 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 2, i32 4>
19325 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
19329 define void @s_shuffle_v4p3_v4p3__7_7_3_4() {
19330 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_3_4:
19332 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19333 ; GFX900-NEXT: ;;#ASMSTART
19334 ; GFX900-NEXT: ; def s[4:7]
19335 ; GFX900-NEXT: ;;#ASMEND
19336 ; GFX900-NEXT: ;;#ASMSTART
19337 ; GFX900-NEXT: ; def s[12:15]
19338 ; GFX900-NEXT: ;;#ASMEND
19339 ; GFX900-NEXT: s_mov_b32 s8, s15
19340 ; GFX900-NEXT: s_mov_b32 s9, s15
19341 ; GFX900-NEXT: s_mov_b32 s10, s7
19342 ; GFX900-NEXT: s_mov_b32 s11, s12
19343 ; GFX900-NEXT: ;;#ASMSTART
19344 ; GFX900-NEXT: ; use s[8:11]
19345 ; GFX900-NEXT: ;;#ASMEND
19346 ; GFX900-NEXT: s_setpc_b64 s[30:31]
19348 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_3_4:
19350 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19351 ; GFX90A-NEXT: ;;#ASMSTART
19352 ; GFX90A-NEXT: ; def s[4:7]
19353 ; GFX90A-NEXT: ;;#ASMEND
19354 ; GFX90A-NEXT: ;;#ASMSTART
19355 ; GFX90A-NEXT: ; def s[12:15]
19356 ; GFX90A-NEXT: ;;#ASMEND
19357 ; GFX90A-NEXT: s_mov_b32 s8, s15
19358 ; GFX90A-NEXT: s_mov_b32 s9, s15
19359 ; GFX90A-NEXT: s_mov_b32 s10, s7
19360 ; GFX90A-NEXT: s_mov_b32 s11, s12
19361 ; GFX90A-NEXT: ;;#ASMSTART
19362 ; GFX90A-NEXT: ; use s[8:11]
19363 ; GFX90A-NEXT: ;;#ASMEND
19364 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
19366 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_3_4:
19368 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19369 ; GFX940-NEXT: ;;#ASMSTART
19370 ; GFX940-NEXT: ; def s[0:3]
19371 ; GFX940-NEXT: ;;#ASMEND
19372 ; GFX940-NEXT: ;;#ASMSTART
19373 ; GFX940-NEXT: ; def s[4:7]
19374 ; GFX940-NEXT: ;;#ASMEND
19375 ; GFX940-NEXT: s_mov_b32 s8, s7
19376 ; GFX940-NEXT: s_mov_b32 s9, s7
19377 ; GFX940-NEXT: s_mov_b32 s10, s3
19378 ; GFX940-NEXT: s_mov_b32 s11, s4
19379 ; GFX940-NEXT: ;;#ASMSTART
19380 ; GFX940-NEXT: ; use s[8:11]
19381 ; GFX940-NEXT: ;;#ASMEND
19382 ; GFX940-NEXT: s_setpc_b64 s[30:31]
19383 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
19384 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
19385 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 3, i32 4>
19386 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
19390 define void @s_shuffle_v4p3_v4p3__7_7_5_4() {
19391 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_5_4:
19393 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19394 ; GFX900-NEXT: ;;#ASMSTART
19395 ; GFX900-NEXT: ; def s[4:7]
19396 ; GFX900-NEXT: ;;#ASMEND
19397 ; GFX900-NEXT: s_mov_b32 s8, s7
19398 ; GFX900-NEXT: s_mov_b32 s9, s7
19399 ; GFX900-NEXT: s_mov_b32 s10, s5
19400 ; GFX900-NEXT: s_mov_b32 s11, s4
19401 ; GFX900-NEXT: ;;#ASMSTART
19402 ; GFX900-NEXT: ; use s[8:11]
19403 ; GFX900-NEXT: ;;#ASMEND
19404 ; GFX900-NEXT: s_setpc_b64 s[30:31]
19406 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_5_4:
19408 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19409 ; GFX90A-NEXT: ;;#ASMSTART
19410 ; GFX90A-NEXT: ; def s[4:7]
19411 ; GFX90A-NEXT: ;;#ASMEND
19412 ; GFX90A-NEXT: s_mov_b32 s8, s7
19413 ; GFX90A-NEXT: s_mov_b32 s9, s7
19414 ; GFX90A-NEXT: s_mov_b32 s10, s5
19415 ; GFX90A-NEXT: s_mov_b32 s11, s4
19416 ; GFX90A-NEXT: ;;#ASMSTART
19417 ; GFX90A-NEXT: ; use s[8:11]
19418 ; GFX90A-NEXT: ;;#ASMEND
19419 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
19421 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_5_4:
19423 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19424 ; GFX940-NEXT: ;;#ASMSTART
19425 ; GFX940-NEXT: ; def s[0:3]
19426 ; GFX940-NEXT: ;;#ASMEND
19427 ; GFX940-NEXT: s_mov_b32 s8, s3
19428 ; GFX940-NEXT: s_mov_b32 s9, s3
19429 ; GFX940-NEXT: s_mov_b32 s10, s1
19430 ; GFX940-NEXT: s_mov_b32 s11, s0
19431 ; GFX940-NEXT: ;;#ASMSTART
19432 ; GFX940-NEXT: ; use s[8:11]
19433 ; GFX940-NEXT: ;;#ASMEND
19434 ; GFX940-NEXT: s_setpc_b64 s[30:31]
19435 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
19436 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
19437 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 5, i32 4>
19438 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
19442 define void @s_shuffle_v4p3_v4p3__7_7_6_4() {
19443 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_6_4:
19445 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19446 ; GFX900-NEXT: ;;#ASMSTART
19447 ; GFX900-NEXT: ; def s[4:7]
19448 ; GFX900-NEXT: ;;#ASMEND
19449 ; GFX900-NEXT: s_mov_b32 s8, s7
19450 ; GFX900-NEXT: s_mov_b32 s9, s7
19451 ; GFX900-NEXT: s_mov_b32 s10, s6
19452 ; GFX900-NEXT: s_mov_b32 s11, s4
19453 ; GFX900-NEXT: ;;#ASMSTART
19454 ; GFX900-NEXT: ; use s[8:11]
19455 ; GFX900-NEXT: ;;#ASMEND
19456 ; GFX900-NEXT: s_setpc_b64 s[30:31]
19458 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_6_4:
19460 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19461 ; GFX90A-NEXT: ;;#ASMSTART
19462 ; GFX90A-NEXT: ; def s[4:7]
19463 ; GFX90A-NEXT: ;;#ASMEND
19464 ; GFX90A-NEXT: s_mov_b32 s8, s7
19465 ; GFX90A-NEXT: s_mov_b32 s9, s7
19466 ; GFX90A-NEXT: s_mov_b32 s10, s6
19467 ; GFX90A-NEXT: s_mov_b32 s11, s4
19468 ; GFX90A-NEXT: ;;#ASMSTART
19469 ; GFX90A-NEXT: ; use s[8:11]
19470 ; GFX90A-NEXT: ;;#ASMEND
19471 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
19473 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_6_4:
19475 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19476 ; GFX940-NEXT: ;;#ASMSTART
19477 ; GFX940-NEXT: ; def s[0:3]
19478 ; GFX940-NEXT: ;;#ASMEND
19479 ; GFX940-NEXT: s_mov_b32 s8, s3
19480 ; GFX940-NEXT: s_mov_b32 s9, s3
19481 ; GFX940-NEXT: s_mov_b32 s10, s2
19482 ; GFX940-NEXT: s_mov_b32 s11, s0
19483 ; GFX940-NEXT: ;;#ASMSTART
19484 ; GFX940-NEXT: ; use s[8:11]
19485 ; GFX940-NEXT: ;;#ASMEND
19486 ; GFX940-NEXT: s_setpc_b64 s[30:31]
19487 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
19488 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
19489 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 6, i32 4>
19490 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
19494 define void @s_shuffle_v4p3_v4p3__u_5_5_5() {
19495 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__u_5_5_5:
19497 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19498 ; GFX9-NEXT: ;;#ASMSTART
19499 ; GFX9-NEXT: ; def s[8:11]
19500 ; GFX9-NEXT: ;;#ASMEND
19501 ; GFX9-NEXT: s_mov_b32 s10, s9
19502 ; GFX9-NEXT: s_mov_b32 s11, s9
19503 ; GFX9-NEXT: ;;#ASMSTART
19504 ; GFX9-NEXT: ; use s[8:11]
19505 ; GFX9-NEXT: ;;#ASMEND
19506 ; GFX9-NEXT: s_setpc_b64 s[30:31]
19507 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
19508 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
19509 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 poison, i32 5, i32 5, i32 5>
19510 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
19514 define void @s_shuffle_v4p3_v4p3__0_5_5_5() {
19515 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__0_5_5_5:
19517 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19518 ; GFX900-NEXT: ;;#ASMSTART
19519 ; GFX900-NEXT: ; def s[8:11]
19520 ; GFX900-NEXT: ;;#ASMEND
19521 ; GFX900-NEXT: ;;#ASMSTART
19522 ; GFX900-NEXT: ; def s[4:7]
19523 ; GFX900-NEXT: ;;#ASMEND
19524 ; GFX900-NEXT: s_mov_b32 s9, s5
19525 ; GFX900-NEXT: s_mov_b32 s10, s5
19526 ; GFX900-NEXT: s_mov_b32 s11, s5
19527 ; GFX900-NEXT: ;;#ASMSTART
19528 ; GFX900-NEXT: ; use s[8:11]
19529 ; GFX900-NEXT: ;;#ASMEND
19530 ; GFX900-NEXT: s_setpc_b64 s[30:31]
19532 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__0_5_5_5:
19534 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19535 ; GFX90A-NEXT: ;;#ASMSTART
19536 ; GFX90A-NEXT: ; def s[8:11]
19537 ; GFX90A-NEXT: ;;#ASMEND
19538 ; GFX90A-NEXT: ;;#ASMSTART
19539 ; GFX90A-NEXT: ; def s[4:7]
19540 ; GFX90A-NEXT: ;;#ASMEND
19541 ; GFX90A-NEXT: s_mov_b32 s9, s5
19542 ; GFX90A-NEXT: s_mov_b32 s10, s5
19543 ; GFX90A-NEXT: s_mov_b32 s11, s5
19544 ; GFX90A-NEXT: ;;#ASMSTART
19545 ; GFX90A-NEXT: ; use s[8:11]
19546 ; GFX90A-NEXT: ;;#ASMEND
19547 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
19549 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__0_5_5_5:
19551 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19552 ; GFX940-NEXT: ;;#ASMSTART
19553 ; GFX940-NEXT: ; def s[8:11]
19554 ; GFX940-NEXT: ;;#ASMEND
19555 ; GFX940-NEXT: ;;#ASMSTART
19556 ; GFX940-NEXT: ; def s[0:3]
19557 ; GFX940-NEXT: ;;#ASMEND
19558 ; GFX940-NEXT: s_mov_b32 s9, s1
19559 ; GFX940-NEXT: s_mov_b32 s10, s1
19560 ; GFX940-NEXT: s_mov_b32 s11, s1
19561 ; GFX940-NEXT: ;;#ASMSTART
19562 ; GFX940-NEXT: ; use s[8:11]
19563 ; GFX940-NEXT: ;;#ASMEND
19564 ; GFX940-NEXT: s_setpc_b64 s[30:31]
19565 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
19566 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
19567 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 0, i32 5, i32 5, i32 5>
19568 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
19572 define void @s_shuffle_v4p3_v4p3__1_5_5_5() {
19573 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__1_5_5_5:
19575 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19576 ; GFX900-NEXT: ;;#ASMSTART
19577 ; GFX900-NEXT: ; def s[8:11]
19578 ; GFX900-NEXT: ;;#ASMEND
19579 ; GFX900-NEXT: ;;#ASMSTART
19580 ; GFX900-NEXT: ; def s[4:7]
19581 ; GFX900-NEXT: ;;#ASMEND
19582 ; GFX900-NEXT: s_mov_b32 s8, s5
19583 ; GFX900-NEXT: s_mov_b32 s10, s9
19584 ; GFX900-NEXT: s_mov_b32 s11, s9
19585 ; GFX900-NEXT: ;;#ASMSTART
19586 ; GFX900-NEXT: ; use s[8:11]
19587 ; GFX900-NEXT: ;;#ASMEND
19588 ; GFX900-NEXT: s_setpc_b64 s[30:31]
19590 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__1_5_5_5:
19592 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19593 ; GFX90A-NEXT: ;;#ASMSTART
19594 ; GFX90A-NEXT: ; def s[8:11]
19595 ; GFX90A-NEXT: ;;#ASMEND
19596 ; GFX90A-NEXT: ;;#ASMSTART
19597 ; GFX90A-NEXT: ; def s[4:7]
19598 ; GFX90A-NEXT: ;;#ASMEND
19599 ; GFX90A-NEXT: s_mov_b32 s8, s5
19600 ; GFX90A-NEXT: s_mov_b32 s10, s9
19601 ; GFX90A-NEXT: s_mov_b32 s11, s9
19602 ; GFX90A-NEXT: ;;#ASMSTART
19603 ; GFX90A-NEXT: ; use s[8:11]
19604 ; GFX90A-NEXT: ;;#ASMEND
19605 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
19607 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__1_5_5_5:
19609 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19610 ; GFX940-NEXT: ;;#ASMSTART
19611 ; GFX940-NEXT: ; def s[8:11]
19612 ; GFX940-NEXT: ;;#ASMEND
19613 ; GFX940-NEXT: ;;#ASMSTART
19614 ; GFX940-NEXT: ; def s[0:3]
19615 ; GFX940-NEXT: ;;#ASMEND
19616 ; GFX940-NEXT: s_mov_b32 s8, s1
19617 ; GFX940-NEXT: s_mov_b32 s10, s9
19618 ; GFX940-NEXT: s_mov_b32 s11, s9
19619 ; GFX940-NEXT: ;;#ASMSTART
19620 ; GFX940-NEXT: ; use s[8:11]
19621 ; GFX940-NEXT: ;;#ASMEND
19622 ; GFX940-NEXT: s_setpc_b64 s[30:31]
19623 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
19624 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
19625 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 1, i32 5, i32 5, i32 5>
19626 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
19630 define void @s_shuffle_v4p3_v4p3__2_5_5_5() {
19631 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__2_5_5_5:
19633 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19634 ; GFX900-NEXT: ;;#ASMSTART
19635 ; GFX900-NEXT: ; def s[8:11]
19636 ; GFX900-NEXT: ;;#ASMEND
19637 ; GFX900-NEXT: ;;#ASMSTART
19638 ; GFX900-NEXT: ; def s[4:7]
19639 ; GFX900-NEXT: ;;#ASMEND
19640 ; GFX900-NEXT: s_mov_b32 s8, s6
19641 ; GFX900-NEXT: s_mov_b32 s10, s9
19642 ; GFX900-NEXT: s_mov_b32 s11, s9
19643 ; GFX900-NEXT: ;;#ASMSTART
19644 ; GFX900-NEXT: ; use s[8:11]
19645 ; GFX900-NEXT: ;;#ASMEND
19646 ; GFX900-NEXT: s_setpc_b64 s[30:31]
19648 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__2_5_5_5:
19650 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19651 ; GFX90A-NEXT: ;;#ASMSTART
19652 ; GFX90A-NEXT: ; def s[8:11]
19653 ; GFX90A-NEXT: ;;#ASMEND
19654 ; GFX90A-NEXT: ;;#ASMSTART
19655 ; GFX90A-NEXT: ; def s[4:7]
19656 ; GFX90A-NEXT: ;;#ASMEND
19657 ; GFX90A-NEXT: s_mov_b32 s8, s6
19658 ; GFX90A-NEXT: s_mov_b32 s10, s9
19659 ; GFX90A-NEXT: s_mov_b32 s11, s9
19660 ; GFX90A-NEXT: ;;#ASMSTART
19661 ; GFX90A-NEXT: ; use s[8:11]
19662 ; GFX90A-NEXT: ;;#ASMEND
19663 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
19665 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__2_5_5_5:
19667 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19668 ; GFX940-NEXT: ;;#ASMSTART
19669 ; GFX940-NEXT: ; def s[8:11]
19670 ; GFX940-NEXT: ;;#ASMEND
19671 ; GFX940-NEXT: ;;#ASMSTART
19672 ; GFX940-NEXT: ; def s[0:3]
19673 ; GFX940-NEXT: ;;#ASMEND
19674 ; GFX940-NEXT: s_mov_b32 s8, s2
19675 ; GFX940-NEXT: s_mov_b32 s10, s9
19676 ; GFX940-NEXT: s_mov_b32 s11, s9
19677 ; GFX940-NEXT: ;;#ASMSTART
19678 ; GFX940-NEXT: ; use s[8:11]
19679 ; GFX940-NEXT: ;;#ASMEND
19680 ; GFX940-NEXT: s_setpc_b64 s[30:31]
19681 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
19682 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
19683 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 2, i32 5, i32 5, i32 5>
19684 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
19688 define void @s_shuffle_v4p3_v4p3__3_5_5_5() {
19689 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__3_5_5_5:
19691 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19692 ; GFX900-NEXT: ;;#ASMSTART
19693 ; GFX900-NEXT: ; def s[8:11]
19694 ; GFX900-NEXT: ;;#ASMEND
19695 ; GFX900-NEXT: ;;#ASMSTART
19696 ; GFX900-NEXT: ; def s[4:7]
19697 ; GFX900-NEXT: ;;#ASMEND
19698 ; GFX900-NEXT: s_mov_b32 s8, s7
19699 ; GFX900-NEXT: s_mov_b32 s10, s9
19700 ; GFX900-NEXT: s_mov_b32 s11, s9
19701 ; GFX900-NEXT: ;;#ASMSTART
19702 ; GFX900-NEXT: ; use s[8:11]
19703 ; GFX900-NEXT: ;;#ASMEND
19704 ; GFX900-NEXT: s_setpc_b64 s[30:31]
19706 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__3_5_5_5:
19708 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19709 ; GFX90A-NEXT: ;;#ASMSTART
19710 ; GFX90A-NEXT: ; def s[8:11]
19711 ; GFX90A-NEXT: ;;#ASMEND
19712 ; GFX90A-NEXT: ;;#ASMSTART
19713 ; GFX90A-NEXT: ; def s[4:7]
19714 ; GFX90A-NEXT: ;;#ASMEND
19715 ; GFX90A-NEXT: s_mov_b32 s8, s7
19716 ; GFX90A-NEXT: s_mov_b32 s10, s9
19717 ; GFX90A-NEXT: s_mov_b32 s11, s9
19718 ; GFX90A-NEXT: ;;#ASMSTART
19719 ; GFX90A-NEXT: ; use s[8:11]
19720 ; GFX90A-NEXT: ;;#ASMEND
19721 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
19723 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__3_5_5_5:
19725 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19726 ; GFX940-NEXT: ;;#ASMSTART
19727 ; GFX940-NEXT: ; def s[8:11]
19728 ; GFX940-NEXT: ;;#ASMEND
19729 ; GFX940-NEXT: ;;#ASMSTART
19730 ; GFX940-NEXT: ; def s[0:3]
19731 ; GFX940-NEXT: ;;#ASMEND
19732 ; GFX940-NEXT: s_mov_b32 s8, s3
19733 ; GFX940-NEXT: s_mov_b32 s10, s9
19734 ; GFX940-NEXT: s_mov_b32 s11, s9
19735 ; GFX940-NEXT: ;;#ASMSTART
19736 ; GFX940-NEXT: ; use s[8:11]
19737 ; GFX940-NEXT: ;;#ASMEND
19738 ; GFX940-NEXT: s_setpc_b64 s[30:31]
19739 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
19740 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
19741 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 3, i32 5, i32 5, i32 5>
19742 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
19746 define void @s_shuffle_v4p3_v4p3__4_5_5_5() {
19747 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__4_5_5_5:
19749 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19750 ; GFX9-NEXT: ;;#ASMSTART
19751 ; GFX9-NEXT: ; def s[8:11]
19752 ; GFX9-NEXT: ;;#ASMEND
19753 ; GFX9-NEXT: s_mov_b32 s10, s9
19754 ; GFX9-NEXT: s_mov_b32 s11, s9
19755 ; GFX9-NEXT: ;;#ASMSTART
19756 ; GFX9-NEXT: ; use s[8:11]
19757 ; GFX9-NEXT: ;;#ASMEND
19758 ; GFX9-NEXT: s_setpc_b64 s[30:31]
19759 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
19760 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
19761 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 4, i32 5, i32 5, i32 5>
19762 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
19766 define void @s_shuffle_v4p3_v4p3__5_5_5_5() {
19767 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__5_5_5_5:
19769 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19770 ; GFX9-NEXT: ;;#ASMSTART
19771 ; GFX9-NEXT: ; def s[8:11]
19772 ; GFX9-NEXT: ;;#ASMEND
19773 ; GFX9-NEXT: s_mov_b32 s8, s9
19774 ; GFX9-NEXT: s_mov_b32 s10, s9
19775 ; GFX9-NEXT: s_mov_b32 s11, s9
19776 ; GFX9-NEXT: ;;#ASMSTART
19777 ; GFX9-NEXT: ; use s[8:11]
19778 ; GFX9-NEXT: ;;#ASMEND
19779 ; GFX9-NEXT: s_setpc_b64 s[30:31]
19780 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
19781 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
19782 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 5, i32 5, i32 5, i32 5>
19783 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
19787 define void @s_shuffle_v4p3_v4p3__6_5_5_5() {
19788 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__6_5_5_5:
19790 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19791 ; GFX9-NEXT: ;;#ASMSTART
19792 ; GFX9-NEXT: ; def s[8:11]
19793 ; GFX9-NEXT: ;;#ASMEND
19794 ; GFX9-NEXT: s_mov_b32 s8, s10
19795 ; GFX9-NEXT: s_mov_b32 s10, s9
19796 ; GFX9-NEXT: s_mov_b32 s11, s9
19797 ; GFX9-NEXT: ;;#ASMSTART
19798 ; GFX9-NEXT: ; use s[8:11]
19799 ; GFX9-NEXT: ;;#ASMEND
19800 ; GFX9-NEXT: s_setpc_b64 s[30:31]
19801 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
19802 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
19803 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 6, i32 5, i32 5, i32 5>
19804 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
19808 define void @s_shuffle_v4p3_v4p3__7_5_5_5() {
19809 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__7_5_5_5:
19811 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19812 ; GFX9-NEXT: ;;#ASMSTART
19813 ; GFX9-NEXT: ; def s[8:11]
19814 ; GFX9-NEXT: ;;#ASMEND
19815 ; GFX9-NEXT: s_mov_b32 s8, s11
19816 ; GFX9-NEXT: s_mov_b32 s10, s9
19817 ; GFX9-NEXT: s_mov_b32 s11, s9
19818 ; GFX9-NEXT: ;;#ASMSTART
19819 ; GFX9-NEXT: ; use s[8:11]
19820 ; GFX9-NEXT: ;;#ASMEND
19821 ; GFX9-NEXT: s_setpc_b64 s[30:31]
19822 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
19823 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
19824 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 5, i32 5, i32 5>
19825 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
19829 define void @s_shuffle_v4p3_v4p3__7_u_5_5() {
19830 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_u_5_5:
19832 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19833 ; GFX900-NEXT: ;;#ASMSTART
19834 ; GFX900-NEXT: ; def s[4:7]
19835 ; GFX900-NEXT: ;;#ASMEND
19836 ; GFX900-NEXT: s_mov_b32 s8, s7
19837 ; GFX900-NEXT: s_mov_b32 s10, s5
19838 ; GFX900-NEXT: s_mov_b32 s11, s5
19839 ; GFX900-NEXT: ;;#ASMSTART
19840 ; GFX900-NEXT: ; use s[8:11]
19841 ; GFX900-NEXT: ;;#ASMEND
19842 ; GFX900-NEXT: s_setpc_b64 s[30:31]
19844 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_u_5_5:
19846 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19847 ; GFX90A-NEXT: ;;#ASMSTART
19848 ; GFX90A-NEXT: ; def s[4:7]
19849 ; GFX90A-NEXT: ;;#ASMEND
19850 ; GFX90A-NEXT: s_mov_b32 s8, s7
19851 ; GFX90A-NEXT: s_mov_b32 s10, s5
19852 ; GFX90A-NEXT: s_mov_b32 s11, s5
19853 ; GFX90A-NEXT: ;;#ASMSTART
19854 ; GFX90A-NEXT: ; use s[8:11]
19855 ; GFX90A-NEXT: ;;#ASMEND
19856 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
19858 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_u_5_5:
19860 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19861 ; GFX940-NEXT: ;;#ASMSTART
19862 ; GFX940-NEXT: ; def s[0:3]
19863 ; GFX940-NEXT: ;;#ASMEND
19864 ; GFX940-NEXT: s_mov_b32 s8, s3
19865 ; GFX940-NEXT: s_mov_b32 s10, s1
19866 ; GFX940-NEXT: s_mov_b32 s11, s1
19867 ; GFX940-NEXT: ;;#ASMSTART
19868 ; GFX940-NEXT: ; use s[8:11]
19869 ; GFX940-NEXT: ;;#ASMEND
19870 ; GFX940-NEXT: s_setpc_b64 s[30:31]
19871 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
19872 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
19873 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 poison, i32 5, i32 5>
19874 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
19878 define void @s_shuffle_v4p3_v4p3__7_0_5_5() {
19879 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_0_5_5:
19881 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19882 ; GFX900-NEXT: ;;#ASMSTART
19883 ; GFX900-NEXT: ; def s[4:7]
19884 ; GFX900-NEXT: ;;#ASMEND
19885 ; GFX900-NEXT: ;;#ASMSTART
19886 ; GFX900-NEXT: ; def s[12:15]
19887 ; GFX900-NEXT: ;;#ASMEND
19888 ; GFX900-NEXT: s_mov_b32 s8, s15
19889 ; GFX900-NEXT: s_mov_b32 s9, s4
19890 ; GFX900-NEXT: s_mov_b32 s10, s13
19891 ; GFX900-NEXT: s_mov_b32 s11, s13
19892 ; GFX900-NEXT: ;;#ASMSTART
19893 ; GFX900-NEXT: ; use s[8:11]
19894 ; GFX900-NEXT: ;;#ASMEND
19895 ; GFX900-NEXT: s_setpc_b64 s[30:31]
19897 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_0_5_5:
19899 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19900 ; GFX90A-NEXT: ;;#ASMSTART
19901 ; GFX90A-NEXT: ; def s[4:7]
19902 ; GFX90A-NEXT: ;;#ASMEND
19903 ; GFX90A-NEXT: ;;#ASMSTART
19904 ; GFX90A-NEXT: ; def s[12:15]
19905 ; GFX90A-NEXT: ;;#ASMEND
19906 ; GFX90A-NEXT: s_mov_b32 s8, s15
19907 ; GFX90A-NEXT: s_mov_b32 s9, s4
19908 ; GFX90A-NEXT: s_mov_b32 s10, s13
19909 ; GFX90A-NEXT: s_mov_b32 s11, s13
19910 ; GFX90A-NEXT: ;;#ASMSTART
19911 ; GFX90A-NEXT: ; use s[8:11]
19912 ; GFX90A-NEXT: ;;#ASMEND
19913 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
19915 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_0_5_5:
19917 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19918 ; GFX940-NEXT: ;;#ASMSTART
19919 ; GFX940-NEXT: ; def s[0:3]
19920 ; GFX940-NEXT: ;;#ASMEND
19921 ; GFX940-NEXT: ;;#ASMSTART
19922 ; GFX940-NEXT: ; def s[4:7]
19923 ; GFX940-NEXT: ;;#ASMEND
19924 ; GFX940-NEXT: s_mov_b32 s8, s7
19925 ; GFX940-NEXT: s_mov_b32 s9, s0
19926 ; GFX940-NEXT: s_mov_b32 s10, s5
19927 ; GFX940-NEXT: s_mov_b32 s11, s5
19928 ; GFX940-NEXT: ;;#ASMSTART
19929 ; GFX940-NEXT: ; use s[8:11]
19930 ; GFX940-NEXT: ;;#ASMEND
19931 ; GFX940-NEXT: s_setpc_b64 s[30:31]
19932 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
19933 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
19934 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 0, i32 5, i32 5>
19935 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
19939 define void @s_shuffle_v4p3_v4p3__7_1_5_5() {
19940 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_1_5_5:
19942 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19943 ; GFX900-NEXT: ;;#ASMSTART
19944 ; GFX900-NEXT: ; def s[8:11]
19945 ; GFX900-NEXT: ;;#ASMEND
19946 ; GFX900-NEXT: ;;#ASMSTART
19947 ; GFX900-NEXT: ; def s[4:7]
19948 ; GFX900-NEXT: ;;#ASMEND
19949 ; GFX900-NEXT: s_mov_b32 s8, s7
19950 ; GFX900-NEXT: s_mov_b32 s10, s5
19951 ; GFX900-NEXT: s_mov_b32 s11, s5
19952 ; GFX900-NEXT: ;;#ASMSTART
19953 ; GFX900-NEXT: ; use s[8:11]
19954 ; GFX900-NEXT: ;;#ASMEND
19955 ; GFX900-NEXT: s_setpc_b64 s[30:31]
19957 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_1_5_5:
19959 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19960 ; GFX90A-NEXT: ;;#ASMSTART
19961 ; GFX90A-NEXT: ; def s[8:11]
19962 ; GFX90A-NEXT: ;;#ASMEND
19963 ; GFX90A-NEXT: ;;#ASMSTART
19964 ; GFX90A-NEXT: ; def s[4:7]
19965 ; GFX90A-NEXT: ;;#ASMEND
19966 ; GFX90A-NEXT: s_mov_b32 s8, s7
19967 ; GFX90A-NEXT: s_mov_b32 s10, s5
19968 ; GFX90A-NEXT: s_mov_b32 s11, s5
19969 ; GFX90A-NEXT: ;;#ASMSTART
19970 ; GFX90A-NEXT: ; use s[8:11]
19971 ; GFX90A-NEXT: ;;#ASMEND
19972 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
19974 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_1_5_5:
19976 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
19977 ; GFX940-NEXT: ;;#ASMSTART
19978 ; GFX940-NEXT: ; def s[8:11]
19979 ; GFX940-NEXT: ;;#ASMEND
19980 ; GFX940-NEXT: ;;#ASMSTART
19981 ; GFX940-NEXT: ; def s[0:3]
19982 ; GFX940-NEXT: ;;#ASMEND
19983 ; GFX940-NEXT: s_mov_b32 s8, s3
19984 ; GFX940-NEXT: s_mov_b32 s10, s1
19985 ; GFX940-NEXT: s_mov_b32 s11, s1
19986 ; GFX940-NEXT: ;;#ASMSTART
19987 ; GFX940-NEXT: ; use s[8:11]
19988 ; GFX940-NEXT: ;;#ASMEND
19989 ; GFX940-NEXT: s_setpc_b64 s[30:31]
19990 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
19991 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
19992 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 1, i32 5, i32 5>
19993 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
19997 define void @s_shuffle_v4p3_v4p3__7_2_5_5() {
19998 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_2_5_5:
20000 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20001 ; GFX900-NEXT: ;;#ASMSTART
20002 ; GFX900-NEXT: ; def s[4:7]
20003 ; GFX900-NEXT: ;;#ASMEND
20004 ; GFX900-NEXT: ;;#ASMSTART
20005 ; GFX900-NEXT: ; def s[12:15]
20006 ; GFX900-NEXT: ;;#ASMEND
20007 ; GFX900-NEXT: s_mov_b32 s8, s15
20008 ; GFX900-NEXT: s_mov_b32 s9, s6
20009 ; GFX900-NEXT: s_mov_b32 s10, s13
20010 ; GFX900-NEXT: s_mov_b32 s11, s13
20011 ; GFX900-NEXT: ;;#ASMSTART
20012 ; GFX900-NEXT: ; use s[8:11]
20013 ; GFX900-NEXT: ;;#ASMEND
20014 ; GFX900-NEXT: s_setpc_b64 s[30:31]
20016 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_2_5_5:
20018 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20019 ; GFX90A-NEXT: ;;#ASMSTART
20020 ; GFX90A-NEXT: ; def s[4:7]
20021 ; GFX90A-NEXT: ;;#ASMEND
20022 ; GFX90A-NEXT: ;;#ASMSTART
20023 ; GFX90A-NEXT: ; def s[12:15]
20024 ; GFX90A-NEXT: ;;#ASMEND
20025 ; GFX90A-NEXT: s_mov_b32 s8, s15
20026 ; GFX90A-NEXT: s_mov_b32 s9, s6
20027 ; GFX90A-NEXT: s_mov_b32 s10, s13
20028 ; GFX90A-NEXT: s_mov_b32 s11, s13
20029 ; GFX90A-NEXT: ;;#ASMSTART
20030 ; GFX90A-NEXT: ; use s[8:11]
20031 ; GFX90A-NEXT: ;;#ASMEND
20032 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
20034 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_2_5_5:
20036 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20037 ; GFX940-NEXT: ;;#ASMSTART
20038 ; GFX940-NEXT: ; def s[0:3]
20039 ; GFX940-NEXT: ;;#ASMEND
20040 ; GFX940-NEXT: ;;#ASMSTART
20041 ; GFX940-NEXT: ; def s[4:7]
20042 ; GFX940-NEXT: ;;#ASMEND
20043 ; GFX940-NEXT: s_mov_b32 s8, s7
20044 ; GFX940-NEXT: s_mov_b32 s9, s2
20045 ; GFX940-NEXT: s_mov_b32 s10, s5
20046 ; GFX940-NEXT: s_mov_b32 s11, s5
20047 ; GFX940-NEXT: ;;#ASMSTART
20048 ; GFX940-NEXT: ; use s[8:11]
20049 ; GFX940-NEXT: ;;#ASMEND
20050 ; GFX940-NEXT: s_setpc_b64 s[30:31]
20051 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
20052 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
20053 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 2, i32 5, i32 5>
20054 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
20058 define void @s_shuffle_v4p3_v4p3__7_3_5_5() {
20059 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_3_5_5:
20061 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20062 ; GFX900-NEXT: ;;#ASMSTART
20063 ; GFX900-NEXT: ; def s[4:7]
20064 ; GFX900-NEXT: ;;#ASMEND
20065 ; GFX900-NEXT: ;;#ASMSTART
20066 ; GFX900-NEXT: ; def s[12:15]
20067 ; GFX900-NEXT: ;;#ASMEND
20068 ; GFX900-NEXT: s_mov_b32 s8, s15
20069 ; GFX900-NEXT: s_mov_b32 s9, s7
20070 ; GFX900-NEXT: s_mov_b32 s10, s13
20071 ; GFX900-NEXT: s_mov_b32 s11, s13
20072 ; GFX900-NEXT: ;;#ASMSTART
20073 ; GFX900-NEXT: ; use s[8:11]
20074 ; GFX900-NEXT: ;;#ASMEND
20075 ; GFX900-NEXT: s_setpc_b64 s[30:31]
20077 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_3_5_5:
20079 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20080 ; GFX90A-NEXT: ;;#ASMSTART
20081 ; GFX90A-NEXT: ; def s[4:7]
20082 ; GFX90A-NEXT: ;;#ASMEND
20083 ; GFX90A-NEXT: ;;#ASMSTART
20084 ; GFX90A-NEXT: ; def s[12:15]
20085 ; GFX90A-NEXT: ;;#ASMEND
20086 ; GFX90A-NEXT: s_mov_b32 s8, s15
20087 ; GFX90A-NEXT: s_mov_b32 s9, s7
20088 ; GFX90A-NEXT: s_mov_b32 s10, s13
20089 ; GFX90A-NEXT: s_mov_b32 s11, s13
20090 ; GFX90A-NEXT: ;;#ASMSTART
20091 ; GFX90A-NEXT: ; use s[8:11]
20092 ; GFX90A-NEXT: ;;#ASMEND
20093 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
20095 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_3_5_5:
20097 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20098 ; GFX940-NEXT: ;;#ASMSTART
20099 ; GFX940-NEXT: ; def s[0:3]
20100 ; GFX940-NEXT: ;;#ASMEND
20101 ; GFX940-NEXT: ;;#ASMSTART
20102 ; GFX940-NEXT: ; def s[4:7]
20103 ; GFX940-NEXT: ;;#ASMEND
20104 ; GFX940-NEXT: s_mov_b32 s8, s7
20105 ; GFX940-NEXT: s_mov_b32 s9, s3
20106 ; GFX940-NEXT: s_mov_b32 s10, s5
20107 ; GFX940-NEXT: s_mov_b32 s11, s5
20108 ; GFX940-NEXT: ;;#ASMSTART
20109 ; GFX940-NEXT: ; use s[8:11]
20110 ; GFX940-NEXT: ;;#ASMEND
20111 ; GFX940-NEXT: s_setpc_b64 s[30:31]
20112 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
20113 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
20114 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 3, i32 5, i32 5>
20115 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
20119 define void @s_shuffle_v4p3_v4p3__7_4_5_5() {
20120 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_4_5_5:
20122 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20123 ; GFX900-NEXT: ;;#ASMSTART
20124 ; GFX900-NEXT: ; def s[4:7]
20125 ; GFX900-NEXT: ;;#ASMEND
20126 ; GFX900-NEXT: s_mov_b32 s8, s7
20127 ; GFX900-NEXT: s_mov_b32 s9, s4
20128 ; GFX900-NEXT: s_mov_b32 s10, s5
20129 ; GFX900-NEXT: s_mov_b32 s11, s5
20130 ; GFX900-NEXT: ;;#ASMSTART
20131 ; GFX900-NEXT: ; use s[8:11]
20132 ; GFX900-NEXT: ;;#ASMEND
20133 ; GFX900-NEXT: s_setpc_b64 s[30:31]
20135 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_4_5_5:
20137 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20138 ; GFX90A-NEXT: ;;#ASMSTART
20139 ; GFX90A-NEXT: ; def s[4:7]
20140 ; GFX90A-NEXT: ;;#ASMEND
20141 ; GFX90A-NEXT: s_mov_b32 s8, s7
20142 ; GFX90A-NEXT: s_mov_b32 s9, s4
20143 ; GFX90A-NEXT: s_mov_b32 s10, s5
20144 ; GFX90A-NEXT: s_mov_b32 s11, s5
20145 ; GFX90A-NEXT: ;;#ASMSTART
20146 ; GFX90A-NEXT: ; use s[8:11]
20147 ; GFX90A-NEXT: ;;#ASMEND
20148 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
20150 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_4_5_5:
20152 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20153 ; GFX940-NEXT: ;;#ASMSTART
20154 ; GFX940-NEXT: ; def s[0:3]
20155 ; GFX940-NEXT: ;;#ASMEND
20156 ; GFX940-NEXT: s_mov_b32 s8, s3
20157 ; GFX940-NEXT: s_mov_b32 s9, s0
20158 ; GFX940-NEXT: s_mov_b32 s10, s1
20159 ; GFX940-NEXT: s_mov_b32 s11, s1
20160 ; GFX940-NEXT: ;;#ASMSTART
20161 ; GFX940-NEXT: ; use s[8:11]
20162 ; GFX940-NEXT: ;;#ASMEND
20163 ; GFX940-NEXT: s_setpc_b64 s[30:31]
20164 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
20165 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
20166 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 4, i32 5, i32 5>
20167 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
20171 define void @s_shuffle_v4p3_v4p3__7_6_5_5() {
20172 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_6_5_5:
20174 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20175 ; GFX900-NEXT: ;;#ASMSTART
20176 ; GFX900-NEXT: ; def s[4:7]
20177 ; GFX900-NEXT: ;;#ASMEND
20178 ; GFX900-NEXT: s_mov_b32 s8, s7
20179 ; GFX900-NEXT: s_mov_b32 s9, s6
20180 ; GFX900-NEXT: s_mov_b32 s10, s5
20181 ; GFX900-NEXT: s_mov_b32 s11, s5
20182 ; GFX900-NEXT: ;;#ASMSTART
20183 ; GFX900-NEXT: ; use s[8:11]
20184 ; GFX900-NEXT: ;;#ASMEND
20185 ; GFX900-NEXT: s_setpc_b64 s[30:31]
20187 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_6_5_5:
20189 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20190 ; GFX90A-NEXT: ;;#ASMSTART
20191 ; GFX90A-NEXT: ; def s[4:7]
20192 ; GFX90A-NEXT: ;;#ASMEND
20193 ; GFX90A-NEXT: s_mov_b32 s8, s7
20194 ; GFX90A-NEXT: s_mov_b32 s9, s6
20195 ; GFX90A-NEXT: s_mov_b32 s10, s5
20196 ; GFX90A-NEXT: s_mov_b32 s11, s5
20197 ; GFX90A-NEXT: ;;#ASMSTART
20198 ; GFX90A-NEXT: ; use s[8:11]
20199 ; GFX90A-NEXT: ;;#ASMEND
20200 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
20202 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_6_5_5:
20204 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20205 ; GFX940-NEXT: ;;#ASMSTART
20206 ; GFX940-NEXT: ; def s[0:3]
20207 ; GFX940-NEXT: ;;#ASMEND
20208 ; GFX940-NEXT: s_mov_b32 s8, s3
20209 ; GFX940-NEXT: s_mov_b32 s9, s2
20210 ; GFX940-NEXT: s_mov_b32 s10, s1
20211 ; GFX940-NEXT: s_mov_b32 s11, s1
20212 ; GFX940-NEXT: ;;#ASMSTART
20213 ; GFX940-NEXT: ; use s[8:11]
20214 ; GFX940-NEXT: ;;#ASMEND
20215 ; GFX940-NEXT: s_setpc_b64 s[30:31]
20216 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
20217 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
20218 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 6, i32 5, i32 5>
20219 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
20223 define void @s_shuffle_v4p3_v4p3__7_7_5_5() {
20224 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_5_5:
20226 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20227 ; GFX900-NEXT: ;;#ASMSTART
20228 ; GFX900-NEXT: ; def s[4:7]
20229 ; GFX900-NEXT: ;;#ASMEND
20230 ; GFX900-NEXT: s_mov_b32 s8, s7
20231 ; GFX900-NEXT: s_mov_b32 s9, s7
20232 ; GFX900-NEXT: s_mov_b32 s10, s5
20233 ; GFX900-NEXT: s_mov_b32 s11, s5
20234 ; GFX900-NEXT: ;;#ASMSTART
20235 ; GFX900-NEXT: ; use s[8:11]
20236 ; GFX900-NEXT: ;;#ASMEND
20237 ; GFX900-NEXT: s_setpc_b64 s[30:31]
20239 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_5_5:
20241 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20242 ; GFX90A-NEXT: ;;#ASMSTART
20243 ; GFX90A-NEXT: ; def s[4:7]
20244 ; GFX90A-NEXT: ;;#ASMEND
20245 ; GFX90A-NEXT: s_mov_b32 s8, s7
20246 ; GFX90A-NEXT: s_mov_b32 s9, s7
20247 ; GFX90A-NEXT: s_mov_b32 s10, s5
20248 ; GFX90A-NEXT: s_mov_b32 s11, s5
20249 ; GFX90A-NEXT: ;;#ASMSTART
20250 ; GFX90A-NEXT: ; use s[8:11]
20251 ; GFX90A-NEXT: ;;#ASMEND
20252 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
20254 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_5_5:
20256 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20257 ; GFX940-NEXT: ;;#ASMSTART
20258 ; GFX940-NEXT: ; def s[0:3]
20259 ; GFX940-NEXT: ;;#ASMEND
20260 ; GFX940-NEXT: s_mov_b32 s8, s3
20261 ; GFX940-NEXT: s_mov_b32 s9, s3
20262 ; GFX940-NEXT: s_mov_b32 s10, s1
20263 ; GFX940-NEXT: s_mov_b32 s11, s1
20264 ; GFX940-NEXT: ;;#ASMSTART
20265 ; GFX940-NEXT: ; use s[8:11]
20266 ; GFX940-NEXT: ;;#ASMEND
20267 ; GFX940-NEXT: s_setpc_b64 s[30:31]
20268 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
20269 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
20270 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 5, i32 5>
20271 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
20275 define void @s_shuffle_v4p3_v4p3__7_7_u_5() {
20276 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_u_5:
20278 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20279 ; GFX900-NEXT: ;;#ASMSTART
20280 ; GFX900-NEXT: ; def s[4:7]
20281 ; GFX900-NEXT: ;;#ASMEND
20282 ; GFX900-NEXT: s_mov_b32 s8, s7
20283 ; GFX900-NEXT: s_mov_b32 s9, s7
20284 ; GFX900-NEXT: s_mov_b32 s11, s5
20285 ; GFX900-NEXT: ;;#ASMSTART
20286 ; GFX900-NEXT: ; use s[8:11]
20287 ; GFX900-NEXT: ;;#ASMEND
20288 ; GFX900-NEXT: s_setpc_b64 s[30:31]
20290 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_u_5:
20292 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20293 ; GFX90A-NEXT: ;;#ASMSTART
20294 ; GFX90A-NEXT: ; def s[4:7]
20295 ; GFX90A-NEXT: ;;#ASMEND
20296 ; GFX90A-NEXT: s_mov_b32 s8, s7
20297 ; GFX90A-NEXT: s_mov_b32 s9, s7
20298 ; GFX90A-NEXT: s_mov_b32 s11, s5
20299 ; GFX90A-NEXT: ;;#ASMSTART
20300 ; GFX90A-NEXT: ; use s[8:11]
20301 ; GFX90A-NEXT: ;;#ASMEND
20302 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
20304 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_u_5:
20306 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20307 ; GFX940-NEXT: ;;#ASMSTART
20308 ; GFX940-NEXT: ; def s[0:3]
20309 ; GFX940-NEXT: ;;#ASMEND
20310 ; GFX940-NEXT: s_mov_b32 s8, s3
20311 ; GFX940-NEXT: s_mov_b32 s9, s3
20312 ; GFX940-NEXT: s_mov_b32 s11, s1
20313 ; GFX940-NEXT: ;;#ASMSTART
20314 ; GFX940-NEXT: ; use s[8:11]
20315 ; GFX940-NEXT: ;;#ASMEND
20316 ; GFX940-NEXT: s_setpc_b64 s[30:31]
20317 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
20318 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
20319 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 poison, i32 5>
20320 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
20324 define void @s_shuffle_v4p3_v4p3__7_7_0_5() {
20325 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_0_5:
20327 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20328 ; GFX900-NEXT: ;;#ASMSTART
20329 ; GFX900-NEXT: ; def s[4:7]
20330 ; GFX900-NEXT: ;;#ASMEND
20331 ; GFX900-NEXT: ;;#ASMSTART
20332 ; GFX900-NEXT: ; def s[12:15]
20333 ; GFX900-NEXT: ;;#ASMEND
20334 ; GFX900-NEXT: s_mov_b32 s8, s15
20335 ; GFX900-NEXT: s_mov_b32 s9, s15
20336 ; GFX900-NEXT: s_mov_b32 s10, s4
20337 ; GFX900-NEXT: s_mov_b32 s11, s13
20338 ; GFX900-NEXT: ;;#ASMSTART
20339 ; GFX900-NEXT: ; use s[8:11]
20340 ; GFX900-NEXT: ;;#ASMEND
20341 ; GFX900-NEXT: s_setpc_b64 s[30:31]
20343 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_0_5:
20345 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20346 ; GFX90A-NEXT: ;;#ASMSTART
20347 ; GFX90A-NEXT: ; def s[4:7]
20348 ; GFX90A-NEXT: ;;#ASMEND
20349 ; GFX90A-NEXT: ;;#ASMSTART
20350 ; GFX90A-NEXT: ; def s[12:15]
20351 ; GFX90A-NEXT: ;;#ASMEND
20352 ; GFX90A-NEXT: s_mov_b32 s8, s15
20353 ; GFX90A-NEXT: s_mov_b32 s9, s15
20354 ; GFX90A-NEXT: s_mov_b32 s10, s4
20355 ; GFX90A-NEXT: s_mov_b32 s11, s13
20356 ; GFX90A-NEXT: ;;#ASMSTART
20357 ; GFX90A-NEXT: ; use s[8:11]
20358 ; GFX90A-NEXT: ;;#ASMEND
20359 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
20361 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_0_5:
20363 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20364 ; GFX940-NEXT: ;;#ASMSTART
20365 ; GFX940-NEXT: ; def s[0:3]
20366 ; GFX940-NEXT: ;;#ASMEND
20367 ; GFX940-NEXT: ;;#ASMSTART
20368 ; GFX940-NEXT: ; def s[4:7]
20369 ; GFX940-NEXT: ;;#ASMEND
20370 ; GFX940-NEXT: s_mov_b32 s8, s7
20371 ; GFX940-NEXT: s_mov_b32 s9, s7
20372 ; GFX940-NEXT: s_mov_b32 s10, s0
20373 ; GFX940-NEXT: s_mov_b32 s11, s5
20374 ; GFX940-NEXT: ;;#ASMSTART
20375 ; GFX940-NEXT: ; use s[8:11]
20376 ; GFX940-NEXT: ;;#ASMEND
20377 ; GFX940-NEXT: s_setpc_b64 s[30:31]
20378 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
20379 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
20380 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 0, i32 5>
20381 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
20385 define void @s_shuffle_v4p3_v4p3__7_7_1_5() {
20386 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_1_5:
20388 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20389 ; GFX900-NEXT: ;;#ASMSTART
20390 ; GFX900-NEXT: ; def s[4:7]
20391 ; GFX900-NEXT: ;;#ASMEND
20392 ; GFX900-NEXT: ;;#ASMSTART
20393 ; GFX900-NEXT: ; def s[12:15]
20394 ; GFX900-NEXT: ;;#ASMEND
20395 ; GFX900-NEXT: s_mov_b32 s8, s15
20396 ; GFX900-NEXT: s_mov_b32 s9, s15
20397 ; GFX900-NEXT: s_mov_b32 s10, s5
20398 ; GFX900-NEXT: s_mov_b32 s11, s13
20399 ; GFX900-NEXT: ;;#ASMSTART
20400 ; GFX900-NEXT: ; use s[8:11]
20401 ; GFX900-NEXT: ;;#ASMEND
20402 ; GFX900-NEXT: s_setpc_b64 s[30:31]
20404 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_1_5:
20406 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20407 ; GFX90A-NEXT: ;;#ASMSTART
20408 ; GFX90A-NEXT: ; def s[4:7]
20409 ; GFX90A-NEXT: ;;#ASMEND
20410 ; GFX90A-NEXT: ;;#ASMSTART
20411 ; GFX90A-NEXT: ; def s[12:15]
20412 ; GFX90A-NEXT: ;;#ASMEND
20413 ; GFX90A-NEXT: s_mov_b32 s8, s15
20414 ; GFX90A-NEXT: s_mov_b32 s9, s15
20415 ; GFX90A-NEXT: s_mov_b32 s10, s5
20416 ; GFX90A-NEXT: s_mov_b32 s11, s13
20417 ; GFX90A-NEXT: ;;#ASMSTART
20418 ; GFX90A-NEXT: ; use s[8:11]
20419 ; GFX90A-NEXT: ;;#ASMEND
20420 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
20422 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_1_5:
20424 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20425 ; GFX940-NEXT: ;;#ASMSTART
20426 ; GFX940-NEXT: ; def s[0:3]
20427 ; GFX940-NEXT: ;;#ASMEND
20428 ; GFX940-NEXT: ;;#ASMSTART
20429 ; GFX940-NEXT: ; def s[4:7]
20430 ; GFX940-NEXT: ;;#ASMEND
20431 ; GFX940-NEXT: s_mov_b32 s8, s7
20432 ; GFX940-NEXT: s_mov_b32 s9, s7
20433 ; GFX940-NEXT: s_mov_b32 s10, s1
20434 ; GFX940-NEXT: s_mov_b32 s11, s5
20435 ; GFX940-NEXT: ;;#ASMSTART
20436 ; GFX940-NEXT: ; use s[8:11]
20437 ; GFX940-NEXT: ;;#ASMEND
20438 ; GFX940-NEXT: s_setpc_b64 s[30:31]
20439 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
20440 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
20441 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 1, i32 5>
20442 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
20446 define void @s_shuffle_v4p3_v4p3__7_7_2_5() {
20447 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_2_5:
20449 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20450 ; GFX900-NEXT: ;;#ASMSTART
20451 ; GFX900-NEXT: ; def s[8:11]
20452 ; GFX900-NEXT: ;;#ASMEND
20453 ; GFX900-NEXT: ;;#ASMSTART
20454 ; GFX900-NEXT: ; def s[4:7]
20455 ; GFX900-NEXT: ;;#ASMEND
20456 ; GFX900-NEXT: s_mov_b32 s8, s7
20457 ; GFX900-NEXT: s_mov_b32 s9, s7
20458 ; GFX900-NEXT: s_mov_b32 s11, s5
20459 ; GFX900-NEXT: ;;#ASMSTART
20460 ; GFX900-NEXT: ; use s[8:11]
20461 ; GFX900-NEXT: ;;#ASMEND
20462 ; GFX900-NEXT: s_setpc_b64 s[30:31]
20464 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_2_5:
20466 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20467 ; GFX90A-NEXT: ;;#ASMSTART
20468 ; GFX90A-NEXT: ; def s[8:11]
20469 ; GFX90A-NEXT: ;;#ASMEND
20470 ; GFX90A-NEXT: ;;#ASMSTART
20471 ; GFX90A-NEXT: ; def s[4:7]
20472 ; GFX90A-NEXT: ;;#ASMEND
20473 ; GFX90A-NEXT: s_mov_b32 s8, s7
20474 ; GFX90A-NEXT: s_mov_b32 s9, s7
20475 ; GFX90A-NEXT: s_mov_b32 s11, s5
20476 ; GFX90A-NEXT: ;;#ASMSTART
20477 ; GFX90A-NEXT: ; use s[8:11]
20478 ; GFX90A-NEXT: ;;#ASMEND
20479 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
20481 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_2_5:
20483 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20484 ; GFX940-NEXT: ;;#ASMSTART
20485 ; GFX940-NEXT: ; def s[8:11]
20486 ; GFX940-NEXT: ;;#ASMEND
20487 ; GFX940-NEXT: ;;#ASMSTART
20488 ; GFX940-NEXT: ; def s[0:3]
20489 ; GFX940-NEXT: ;;#ASMEND
20490 ; GFX940-NEXT: s_mov_b32 s8, s3
20491 ; GFX940-NEXT: s_mov_b32 s9, s3
20492 ; GFX940-NEXT: s_mov_b32 s11, s1
20493 ; GFX940-NEXT: ;;#ASMSTART
20494 ; GFX940-NEXT: ; use s[8:11]
20495 ; GFX940-NEXT: ;;#ASMEND
20496 ; GFX940-NEXT: s_setpc_b64 s[30:31]
20497 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
20498 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
20499 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 2, i32 5>
20500 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
20504 define void @s_shuffle_v4p3_v4p3__7_7_3_5() {
20505 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_3_5:
20507 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20508 ; GFX900-NEXT: ;;#ASMSTART
20509 ; GFX900-NEXT: ; def s[4:7]
20510 ; GFX900-NEXT: ;;#ASMEND
20511 ; GFX900-NEXT: ;;#ASMSTART
20512 ; GFX900-NEXT: ; def s[12:15]
20513 ; GFX900-NEXT: ;;#ASMEND
20514 ; GFX900-NEXT: s_mov_b32 s8, s15
20515 ; GFX900-NEXT: s_mov_b32 s9, s15
20516 ; GFX900-NEXT: s_mov_b32 s10, s7
20517 ; GFX900-NEXT: s_mov_b32 s11, s13
20518 ; GFX900-NEXT: ;;#ASMSTART
20519 ; GFX900-NEXT: ; use s[8:11]
20520 ; GFX900-NEXT: ;;#ASMEND
20521 ; GFX900-NEXT: s_setpc_b64 s[30:31]
20523 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_3_5:
20525 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20526 ; GFX90A-NEXT: ;;#ASMSTART
20527 ; GFX90A-NEXT: ; def s[4:7]
20528 ; GFX90A-NEXT: ;;#ASMEND
20529 ; GFX90A-NEXT: ;;#ASMSTART
20530 ; GFX90A-NEXT: ; def s[12:15]
20531 ; GFX90A-NEXT: ;;#ASMEND
20532 ; GFX90A-NEXT: s_mov_b32 s8, s15
20533 ; GFX90A-NEXT: s_mov_b32 s9, s15
20534 ; GFX90A-NEXT: s_mov_b32 s10, s7
20535 ; GFX90A-NEXT: s_mov_b32 s11, s13
20536 ; GFX90A-NEXT: ;;#ASMSTART
20537 ; GFX90A-NEXT: ; use s[8:11]
20538 ; GFX90A-NEXT: ;;#ASMEND
20539 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
20541 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_3_5:
20543 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20544 ; GFX940-NEXT: ;;#ASMSTART
20545 ; GFX940-NEXT: ; def s[0:3]
20546 ; GFX940-NEXT: ;;#ASMEND
20547 ; GFX940-NEXT: ;;#ASMSTART
20548 ; GFX940-NEXT: ; def s[4:7]
20549 ; GFX940-NEXT: ;;#ASMEND
20550 ; GFX940-NEXT: s_mov_b32 s8, s7
20551 ; GFX940-NEXT: s_mov_b32 s9, s7
20552 ; GFX940-NEXT: s_mov_b32 s10, s3
20553 ; GFX940-NEXT: s_mov_b32 s11, s5
20554 ; GFX940-NEXT: ;;#ASMSTART
20555 ; GFX940-NEXT: ; use s[8:11]
20556 ; GFX940-NEXT: ;;#ASMEND
20557 ; GFX940-NEXT: s_setpc_b64 s[30:31]
20558 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
20559 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
20560 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 3, i32 5>
20561 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
20565 define void @s_shuffle_v4p3_v4p3__7_7_4_5() {
20566 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_4_5:
20568 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20569 ; GFX900-NEXT: ;;#ASMSTART
20570 ; GFX900-NEXT: ; def s[4:7]
20571 ; GFX900-NEXT: ;;#ASMEND
20572 ; GFX900-NEXT: s_mov_b32 s8, s7
20573 ; GFX900-NEXT: s_mov_b32 s9, s7
20574 ; GFX900-NEXT: s_mov_b32 s10, s4
20575 ; GFX900-NEXT: s_mov_b32 s11, s5
20576 ; GFX900-NEXT: ;;#ASMSTART
20577 ; GFX900-NEXT: ; use s[8:11]
20578 ; GFX900-NEXT: ;;#ASMEND
20579 ; GFX900-NEXT: s_setpc_b64 s[30:31]
20581 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_4_5:
20583 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20584 ; GFX90A-NEXT: ;;#ASMSTART
20585 ; GFX90A-NEXT: ; def s[4:7]
20586 ; GFX90A-NEXT: ;;#ASMEND
20587 ; GFX90A-NEXT: s_mov_b32 s8, s7
20588 ; GFX90A-NEXT: s_mov_b32 s9, s7
20589 ; GFX90A-NEXT: s_mov_b32 s10, s4
20590 ; GFX90A-NEXT: s_mov_b32 s11, s5
20591 ; GFX90A-NEXT: ;;#ASMSTART
20592 ; GFX90A-NEXT: ; use s[8:11]
20593 ; GFX90A-NEXT: ;;#ASMEND
20594 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
20596 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_4_5:
20598 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20599 ; GFX940-NEXT: ;;#ASMSTART
20600 ; GFX940-NEXT: ; def s[0:3]
20601 ; GFX940-NEXT: ;;#ASMEND
20602 ; GFX940-NEXT: s_mov_b32 s8, s3
20603 ; GFX940-NEXT: s_mov_b32 s9, s3
20604 ; GFX940-NEXT: s_mov_b32 s10, s0
20605 ; GFX940-NEXT: s_mov_b32 s11, s1
20606 ; GFX940-NEXT: ;;#ASMSTART
20607 ; GFX940-NEXT: ; use s[8:11]
20608 ; GFX940-NEXT: ;;#ASMEND
20609 ; GFX940-NEXT: s_setpc_b64 s[30:31]
20610 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
20611 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
20612 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 4, i32 5>
20613 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
20617 define void @s_shuffle_v4p3_v4p3__7_7_6_5() {
20618 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_6_5:
20620 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20621 ; GFX900-NEXT: ;;#ASMSTART
20622 ; GFX900-NEXT: ; def s[4:7]
20623 ; GFX900-NEXT: ;;#ASMEND
20624 ; GFX900-NEXT: s_mov_b32 s8, s7
20625 ; GFX900-NEXT: s_mov_b32 s9, s7
20626 ; GFX900-NEXT: s_mov_b32 s10, s6
20627 ; GFX900-NEXT: s_mov_b32 s11, s5
20628 ; GFX900-NEXT: ;;#ASMSTART
20629 ; GFX900-NEXT: ; use s[8:11]
20630 ; GFX900-NEXT: ;;#ASMEND
20631 ; GFX900-NEXT: s_setpc_b64 s[30:31]
20633 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_6_5:
20635 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20636 ; GFX90A-NEXT: ;;#ASMSTART
20637 ; GFX90A-NEXT: ; def s[4:7]
20638 ; GFX90A-NEXT: ;;#ASMEND
20639 ; GFX90A-NEXT: s_mov_b32 s8, s7
20640 ; GFX90A-NEXT: s_mov_b32 s9, s7
20641 ; GFX90A-NEXT: s_mov_b32 s10, s6
20642 ; GFX90A-NEXT: s_mov_b32 s11, s5
20643 ; GFX90A-NEXT: ;;#ASMSTART
20644 ; GFX90A-NEXT: ; use s[8:11]
20645 ; GFX90A-NEXT: ;;#ASMEND
20646 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
20648 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_6_5:
20650 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20651 ; GFX940-NEXT: ;;#ASMSTART
20652 ; GFX940-NEXT: ; def s[0:3]
20653 ; GFX940-NEXT: ;;#ASMEND
20654 ; GFX940-NEXT: s_mov_b32 s8, s3
20655 ; GFX940-NEXT: s_mov_b32 s9, s3
20656 ; GFX940-NEXT: s_mov_b32 s10, s2
20657 ; GFX940-NEXT: s_mov_b32 s11, s1
20658 ; GFX940-NEXT: ;;#ASMSTART
20659 ; GFX940-NEXT: ; use s[8:11]
20660 ; GFX940-NEXT: ;;#ASMEND
20661 ; GFX940-NEXT: s_setpc_b64 s[30:31]
20662 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
20663 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
20664 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 6, i32 5>
20665 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
20669 define void @s_shuffle_v4p3_v4p3__u_6_6_6() {
20670 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__u_6_6_6:
20672 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20673 ; GFX9-NEXT: ;;#ASMSTART
20674 ; GFX9-NEXT: ; def s[8:11]
20675 ; GFX9-NEXT: ;;#ASMEND
20676 ; GFX9-NEXT: s_mov_b32 s9, s10
20677 ; GFX9-NEXT: s_mov_b32 s11, s10
20678 ; GFX9-NEXT: ;;#ASMSTART
20679 ; GFX9-NEXT: ; use s[8:11]
20680 ; GFX9-NEXT: ;;#ASMEND
20681 ; GFX9-NEXT: s_setpc_b64 s[30:31]
20682 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
20683 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
20684 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 poison, i32 6, i32 6, i32 6>
20685 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
20689 define void @s_shuffle_v4p3_v4p3__0_6_6_6() {
20690 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__0_6_6_6:
20692 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20693 ; GFX900-NEXT: ;;#ASMSTART
20694 ; GFX900-NEXT: ; def s[8:11]
20695 ; GFX900-NEXT: ;;#ASMEND
20696 ; GFX900-NEXT: ;;#ASMSTART
20697 ; GFX900-NEXT: ; def s[4:7]
20698 ; GFX900-NEXT: ;;#ASMEND
20699 ; GFX900-NEXT: s_mov_b32 s9, s6
20700 ; GFX900-NEXT: s_mov_b32 s10, s6
20701 ; GFX900-NEXT: s_mov_b32 s11, s6
20702 ; GFX900-NEXT: ;;#ASMSTART
20703 ; GFX900-NEXT: ; use s[8:11]
20704 ; GFX900-NEXT: ;;#ASMEND
20705 ; GFX900-NEXT: s_setpc_b64 s[30:31]
20707 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__0_6_6_6:
20709 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20710 ; GFX90A-NEXT: ;;#ASMSTART
20711 ; GFX90A-NEXT: ; def s[8:11]
20712 ; GFX90A-NEXT: ;;#ASMEND
20713 ; GFX90A-NEXT: ;;#ASMSTART
20714 ; GFX90A-NEXT: ; def s[4:7]
20715 ; GFX90A-NEXT: ;;#ASMEND
20716 ; GFX90A-NEXT: s_mov_b32 s9, s6
20717 ; GFX90A-NEXT: s_mov_b32 s10, s6
20718 ; GFX90A-NEXT: s_mov_b32 s11, s6
20719 ; GFX90A-NEXT: ;;#ASMSTART
20720 ; GFX90A-NEXT: ; use s[8:11]
20721 ; GFX90A-NEXT: ;;#ASMEND
20722 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
20724 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__0_6_6_6:
20726 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20727 ; GFX940-NEXT: ;;#ASMSTART
20728 ; GFX940-NEXT: ; def s[8:11]
20729 ; GFX940-NEXT: ;;#ASMEND
20730 ; GFX940-NEXT: ;;#ASMSTART
20731 ; GFX940-NEXT: ; def s[0:3]
20732 ; GFX940-NEXT: ;;#ASMEND
20733 ; GFX940-NEXT: s_mov_b32 s9, s2
20734 ; GFX940-NEXT: s_mov_b32 s10, s2
20735 ; GFX940-NEXT: s_mov_b32 s11, s2
20736 ; GFX940-NEXT: ;;#ASMSTART
20737 ; GFX940-NEXT: ; use s[8:11]
20738 ; GFX940-NEXT: ;;#ASMEND
20739 ; GFX940-NEXT: s_setpc_b64 s[30:31]
20740 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
20741 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
20742 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 0, i32 6, i32 6, i32 6>
20743 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
20747 define void @s_shuffle_v4p3_v4p3__1_6_6_6() {
20748 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__1_6_6_6:
20750 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20751 ; GFX900-NEXT: ;;#ASMSTART
20752 ; GFX900-NEXT: ; def s[8:11]
20753 ; GFX900-NEXT: ;;#ASMEND
20754 ; GFX900-NEXT: ;;#ASMSTART
20755 ; GFX900-NEXT: ; def s[4:7]
20756 ; GFX900-NEXT: ;;#ASMEND
20757 ; GFX900-NEXT: s_mov_b32 s8, s5
20758 ; GFX900-NEXT: s_mov_b32 s9, s10
20759 ; GFX900-NEXT: s_mov_b32 s11, s10
20760 ; GFX900-NEXT: ;;#ASMSTART
20761 ; GFX900-NEXT: ; use s[8:11]
20762 ; GFX900-NEXT: ;;#ASMEND
20763 ; GFX900-NEXT: s_setpc_b64 s[30:31]
20765 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__1_6_6_6:
20767 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20768 ; GFX90A-NEXT: ;;#ASMSTART
20769 ; GFX90A-NEXT: ; def s[8:11]
20770 ; GFX90A-NEXT: ;;#ASMEND
20771 ; GFX90A-NEXT: ;;#ASMSTART
20772 ; GFX90A-NEXT: ; def s[4:7]
20773 ; GFX90A-NEXT: ;;#ASMEND
20774 ; GFX90A-NEXT: s_mov_b32 s8, s5
20775 ; GFX90A-NEXT: s_mov_b32 s9, s10
20776 ; GFX90A-NEXT: s_mov_b32 s11, s10
20777 ; GFX90A-NEXT: ;;#ASMSTART
20778 ; GFX90A-NEXT: ; use s[8:11]
20779 ; GFX90A-NEXT: ;;#ASMEND
20780 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
20782 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__1_6_6_6:
20784 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20785 ; GFX940-NEXT: ;;#ASMSTART
20786 ; GFX940-NEXT: ; def s[8:11]
20787 ; GFX940-NEXT: ;;#ASMEND
20788 ; GFX940-NEXT: ;;#ASMSTART
20789 ; GFX940-NEXT: ; def s[0:3]
20790 ; GFX940-NEXT: ;;#ASMEND
20791 ; GFX940-NEXT: s_mov_b32 s8, s1
20792 ; GFX940-NEXT: s_mov_b32 s9, s10
20793 ; GFX940-NEXT: s_mov_b32 s11, s10
20794 ; GFX940-NEXT: ;;#ASMSTART
20795 ; GFX940-NEXT: ; use s[8:11]
20796 ; GFX940-NEXT: ;;#ASMEND
20797 ; GFX940-NEXT: s_setpc_b64 s[30:31]
20798 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
20799 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
20800 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 1, i32 6, i32 6, i32 6>
20801 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
20805 define void @s_shuffle_v4p3_v4p3__2_6_6_6() {
20806 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__2_6_6_6:
20808 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20809 ; GFX900-NEXT: ;;#ASMSTART
20810 ; GFX900-NEXT: ; def s[8:11]
20811 ; GFX900-NEXT: ;;#ASMEND
20812 ; GFX900-NEXT: ;;#ASMSTART
20813 ; GFX900-NEXT: ; def s[4:7]
20814 ; GFX900-NEXT: ;;#ASMEND
20815 ; GFX900-NEXT: s_mov_b32 s8, s6
20816 ; GFX900-NEXT: s_mov_b32 s9, s10
20817 ; GFX900-NEXT: s_mov_b32 s11, s10
20818 ; GFX900-NEXT: ;;#ASMSTART
20819 ; GFX900-NEXT: ; use s[8:11]
20820 ; GFX900-NEXT: ;;#ASMEND
20821 ; GFX900-NEXT: s_setpc_b64 s[30:31]
20823 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__2_6_6_6:
20825 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20826 ; GFX90A-NEXT: ;;#ASMSTART
20827 ; GFX90A-NEXT: ; def s[8:11]
20828 ; GFX90A-NEXT: ;;#ASMEND
20829 ; GFX90A-NEXT: ;;#ASMSTART
20830 ; GFX90A-NEXT: ; def s[4:7]
20831 ; GFX90A-NEXT: ;;#ASMEND
20832 ; GFX90A-NEXT: s_mov_b32 s8, s6
20833 ; GFX90A-NEXT: s_mov_b32 s9, s10
20834 ; GFX90A-NEXT: s_mov_b32 s11, s10
20835 ; GFX90A-NEXT: ;;#ASMSTART
20836 ; GFX90A-NEXT: ; use s[8:11]
20837 ; GFX90A-NEXT: ;;#ASMEND
20838 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
20840 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__2_6_6_6:
20842 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20843 ; GFX940-NEXT: ;;#ASMSTART
20844 ; GFX940-NEXT: ; def s[8:11]
20845 ; GFX940-NEXT: ;;#ASMEND
20846 ; GFX940-NEXT: ;;#ASMSTART
20847 ; GFX940-NEXT: ; def s[0:3]
20848 ; GFX940-NEXT: ;;#ASMEND
20849 ; GFX940-NEXT: s_mov_b32 s8, s2
20850 ; GFX940-NEXT: s_mov_b32 s9, s10
20851 ; GFX940-NEXT: s_mov_b32 s11, s10
20852 ; GFX940-NEXT: ;;#ASMSTART
20853 ; GFX940-NEXT: ; use s[8:11]
20854 ; GFX940-NEXT: ;;#ASMEND
20855 ; GFX940-NEXT: s_setpc_b64 s[30:31]
20856 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
20857 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
20858 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 2, i32 6, i32 6, i32 6>
20859 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
20863 define void @s_shuffle_v4p3_v4p3__3_6_6_6() {
20864 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__3_6_6_6:
20866 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20867 ; GFX900-NEXT: ;;#ASMSTART
20868 ; GFX900-NEXT: ; def s[8:11]
20869 ; GFX900-NEXT: ;;#ASMEND
20870 ; GFX900-NEXT: ;;#ASMSTART
20871 ; GFX900-NEXT: ; def s[4:7]
20872 ; GFX900-NEXT: ;;#ASMEND
20873 ; GFX900-NEXT: s_mov_b32 s8, s7
20874 ; GFX900-NEXT: s_mov_b32 s9, s10
20875 ; GFX900-NEXT: s_mov_b32 s11, s10
20876 ; GFX900-NEXT: ;;#ASMSTART
20877 ; GFX900-NEXT: ; use s[8:11]
20878 ; GFX900-NEXT: ;;#ASMEND
20879 ; GFX900-NEXT: s_setpc_b64 s[30:31]
20881 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__3_6_6_6:
20883 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20884 ; GFX90A-NEXT: ;;#ASMSTART
20885 ; GFX90A-NEXT: ; def s[8:11]
20886 ; GFX90A-NEXT: ;;#ASMEND
20887 ; GFX90A-NEXT: ;;#ASMSTART
20888 ; GFX90A-NEXT: ; def s[4:7]
20889 ; GFX90A-NEXT: ;;#ASMEND
20890 ; GFX90A-NEXT: s_mov_b32 s8, s7
20891 ; GFX90A-NEXT: s_mov_b32 s9, s10
20892 ; GFX90A-NEXT: s_mov_b32 s11, s10
20893 ; GFX90A-NEXT: ;;#ASMSTART
20894 ; GFX90A-NEXT: ; use s[8:11]
20895 ; GFX90A-NEXT: ;;#ASMEND
20896 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
20898 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__3_6_6_6:
20900 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20901 ; GFX940-NEXT: ;;#ASMSTART
20902 ; GFX940-NEXT: ; def s[8:11]
20903 ; GFX940-NEXT: ;;#ASMEND
20904 ; GFX940-NEXT: ;;#ASMSTART
20905 ; GFX940-NEXT: ; def s[0:3]
20906 ; GFX940-NEXT: ;;#ASMEND
20907 ; GFX940-NEXT: s_mov_b32 s8, s3
20908 ; GFX940-NEXT: s_mov_b32 s9, s10
20909 ; GFX940-NEXT: s_mov_b32 s11, s10
20910 ; GFX940-NEXT: ;;#ASMSTART
20911 ; GFX940-NEXT: ; use s[8:11]
20912 ; GFX940-NEXT: ;;#ASMEND
20913 ; GFX940-NEXT: s_setpc_b64 s[30:31]
20914 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
20915 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
20916 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 3, i32 6, i32 6, i32 6>
20917 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
20921 define void @s_shuffle_v4p3_v4p3__4_6_6_6() {
20922 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__4_6_6_6:
20924 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20925 ; GFX9-NEXT: ;;#ASMSTART
20926 ; GFX9-NEXT: ; def s[8:11]
20927 ; GFX9-NEXT: ;;#ASMEND
20928 ; GFX9-NEXT: s_mov_b32 s9, s10
20929 ; GFX9-NEXT: s_mov_b32 s11, s10
20930 ; GFX9-NEXT: ;;#ASMSTART
20931 ; GFX9-NEXT: ; use s[8:11]
20932 ; GFX9-NEXT: ;;#ASMEND
20933 ; GFX9-NEXT: s_setpc_b64 s[30:31]
20934 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
20935 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
20936 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 4, i32 6, i32 6, i32 6>
20937 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
20941 define void @s_shuffle_v4p3_v4p3__5_6_6_6() {
20942 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__5_6_6_6:
20944 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20945 ; GFX9-NEXT: ;;#ASMSTART
20946 ; GFX9-NEXT: ; def s[8:11]
20947 ; GFX9-NEXT: ;;#ASMEND
20948 ; GFX9-NEXT: s_mov_b32 s8, s9
20949 ; GFX9-NEXT: s_mov_b32 s9, s10
20950 ; GFX9-NEXT: s_mov_b32 s11, s10
20951 ; GFX9-NEXT: ;;#ASMSTART
20952 ; GFX9-NEXT: ; use s[8:11]
20953 ; GFX9-NEXT: ;;#ASMEND
20954 ; GFX9-NEXT: s_setpc_b64 s[30:31]
20955 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
20956 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
20957 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 5, i32 6, i32 6, i32 6>
20958 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
20962 define void @s_shuffle_v4p3_v4p3__6_6_6_6() {
20963 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__6_6_6_6:
20965 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20966 ; GFX9-NEXT: ;;#ASMSTART
20967 ; GFX9-NEXT: ; def s[8:11]
20968 ; GFX9-NEXT: ;;#ASMEND
20969 ; GFX9-NEXT: s_mov_b32 s8, s10
20970 ; GFX9-NEXT: s_mov_b32 s9, s10
20971 ; GFX9-NEXT: s_mov_b32 s11, s10
20972 ; GFX9-NEXT: ;;#ASMSTART
20973 ; GFX9-NEXT: ; use s[8:11]
20974 ; GFX9-NEXT: ;;#ASMEND
20975 ; GFX9-NEXT: s_setpc_b64 s[30:31]
20976 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
20977 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
20978 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 6, i32 6, i32 6, i32 6>
20979 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
20983 define void @s_shuffle_v4p3_v4p3__7_6_6_6() {
20984 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__7_6_6_6:
20986 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
20987 ; GFX9-NEXT: ;;#ASMSTART
20988 ; GFX9-NEXT: ; def s[8:11]
20989 ; GFX9-NEXT: ;;#ASMEND
20990 ; GFX9-NEXT: s_mov_b32 s8, s11
20991 ; GFX9-NEXT: s_mov_b32 s9, s10
20992 ; GFX9-NEXT: s_mov_b32 s11, s10
20993 ; GFX9-NEXT: ;;#ASMSTART
20994 ; GFX9-NEXT: ; use s[8:11]
20995 ; GFX9-NEXT: ;;#ASMEND
20996 ; GFX9-NEXT: s_setpc_b64 s[30:31]
20997 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
20998 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
20999 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 6, i32 6, i32 6>
21000 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
21004 define void @s_shuffle_v4p3_v4p3__7_u_6_6() {
21005 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__7_u_6_6:
21007 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21008 ; GFX9-NEXT: ;;#ASMSTART
21009 ; GFX9-NEXT: ; def s[8:11]
21010 ; GFX9-NEXT: ;;#ASMEND
21011 ; GFX9-NEXT: s_mov_b32 s8, s11
21012 ; GFX9-NEXT: s_mov_b32 s11, s10
21013 ; GFX9-NEXT: ;;#ASMSTART
21014 ; GFX9-NEXT: ; use s[8:11]
21015 ; GFX9-NEXT: ;;#ASMEND
21016 ; GFX9-NEXT: s_setpc_b64 s[30:31]
21017 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
21018 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
21019 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 poison, i32 6, i32 6>
21020 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
21024 define void @s_shuffle_v4p3_v4p3__7_0_6_6() {
21025 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_0_6_6:
21027 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21028 ; GFX900-NEXT: ;;#ASMSTART
21029 ; GFX900-NEXT: ; def s[8:11]
21030 ; GFX900-NEXT: ;;#ASMEND
21031 ; GFX900-NEXT: ;;#ASMSTART
21032 ; GFX900-NEXT: ; def s[4:7]
21033 ; GFX900-NEXT: ;;#ASMEND
21034 ; GFX900-NEXT: s_mov_b32 s8, s11
21035 ; GFX900-NEXT: s_mov_b32 s9, s4
21036 ; GFX900-NEXT: s_mov_b32 s11, s10
21037 ; GFX900-NEXT: ;;#ASMSTART
21038 ; GFX900-NEXT: ; use s[8:11]
21039 ; GFX900-NEXT: ;;#ASMEND
21040 ; GFX900-NEXT: s_setpc_b64 s[30:31]
21042 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_0_6_6:
21044 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21045 ; GFX90A-NEXT: ;;#ASMSTART
21046 ; GFX90A-NEXT: ; def s[8:11]
21047 ; GFX90A-NEXT: ;;#ASMEND
21048 ; GFX90A-NEXT: ;;#ASMSTART
21049 ; GFX90A-NEXT: ; def s[4:7]
21050 ; GFX90A-NEXT: ;;#ASMEND
21051 ; GFX90A-NEXT: s_mov_b32 s8, s11
21052 ; GFX90A-NEXT: s_mov_b32 s9, s4
21053 ; GFX90A-NEXT: s_mov_b32 s11, s10
21054 ; GFX90A-NEXT: ;;#ASMSTART
21055 ; GFX90A-NEXT: ; use s[8:11]
21056 ; GFX90A-NEXT: ;;#ASMEND
21057 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
21059 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_0_6_6:
21061 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21062 ; GFX940-NEXT: ;;#ASMSTART
21063 ; GFX940-NEXT: ; def s[8:11]
21064 ; GFX940-NEXT: ;;#ASMEND
21065 ; GFX940-NEXT: ;;#ASMSTART
21066 ; GFX940-NEXT: ; def s[0:3]
21067 ; GFX940-NEXT: ;;#ASMEND
21068 ; GFX940-NEXT: s_mov_b32 s8, s11
21069 ; GFX940-NEXT: s_mov_b32 s9, s0
21070 ; GFX940-NEXT: s_mov_b32 s11, s10
21071 ; GFX940-NEXT: ;;#ASMSTART
21072 ; GFX940-NEXT: ; use s[8:11]
21073 ; GFX940-NEXT: ;;#ASMEND
21074 ; GFX940-NEXT: s_setpc_b64 s[30:31]
21075 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
21076 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
21077 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 0, i32 6, i32 6>
21078 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
21082 define void @s_shuffle_v4p3_v4p3__7_1_6_6() {
21083 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_1_6_6:
21085 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21086 ; GFX900-NEXT: ;;#ASMSTART
21087 ; GFX900-NEXT: ; def s[8:11]
21088 ; GFX900-NEXT: ;;#ASMEND
21089 ; GFX900-NEXT: ;;#ASMSTART
21090 ; GFX900-NEXT: ; def s[4:7]
21091 ; GFX900-NEXT: ;;#ASMEND
21092 ; GFX900-NEXT: s_mov_b32 s8, s7
21093 ; GFX900-NEXT: s_mov_b32 s10, s6
21094 ; GFX900-NEXT: s_mov_b32 s11, s6
21095 ; GFX900-NEXT: ;;#ASMSTART
21096 ; GFX900-NEXT: ; use s[8:11]
21097 ; GFX900-NEXT: ;;#ASMEND
21098 ; GFX900-NEXT: s_setpc_b64 s[30:31]
21100 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_1_6_6:
21102 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21103 ; GFX90A-NEXT: ;;#ASMSTART
21104 ; GFX90A-NEXT: ; def s[8:11]
21105 ; GFX90A-NEXT: ;;#ASMEND
21106 ; GFX90A-NEXT: ;;#ASMSTART
21107 ; GFX90A-NEXT: ; def s[4:7]
21108 ; GFX90A-NEXT: ;;#ASMEND
21109 ; GFX90A-NEXT: s_mov_b32 s8, s7
21110 ; GFX90A-NEXT: s_mov_b32 s10, s6
21111 ; GFX90A-NEXT: s_mov_b32 s11, s6
21112 ; GFX90A-NEXT: ;;#ASMSTART
21113 ; GFX90A-NEXT: ; use s[8:11]
21114 ; GFX90A-NEXT: ;;#ASMEND
21115 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
21117 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_1_6_6:
21119 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21120 ; GFX940-NEXT: ;;#ASMSTART
21121 ; GFX940-NEXT: ; def s[8:11]
21122 ; GFX940-NEXT: ;;#ASMEND
21123 ; GFX940-NEXT: ;;#ASMSTART
21124 ; GFX940-NEXT: ; def s[0:3]
21125 ; GFX940-NEXT: ;;#ASMEND
21126 ; GFX940-NEXT: s_mov_b32 s8, s3
21127 ; GFX940-NEXT: s_mov_b32 s10, s2
21128 ; GFX940-NEXT: s_mov_b32 s11, s2
21129 ; GFX940-NEXT: ;;#ASMSTART
21130 ; GFX940-NEXT: ; use s[8:11]
21131 ; GFX940-NEXT: ;;#ASMEND
21132 ; GFX940-NEXT: s_setpc_b64 s[30:31]
21133 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
21134 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
21135 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 1, i32 6, i32 6>
21136 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
21140 define void @s_shuffle_v4p3_v4p3__7_2_6_6() {
21141 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_2_6_6:
21143 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21144 ; GFX900-NEXT: ;;#ASMSTART
21145 ; GFX900-NEXT: ; def s[8:11]
21146 ; GFX900-NEXT: ;;#ASMEND
21147 ; GFX900-NEXT: ;;#ASMSTART
21148 ; GFX900-NEXT: ; def s[4:7]
21149 ; GFX900-NEXT: ;;#ASMEND
21150 ; GFX900-NEXT: s_mov_b32 s8, s11
21151 ; GFX900-NEXT: s_mov_b32 s9, s6
21152 ; GFX900-NEXT: s_mov_b32 s11, s10
21153 ; GFX900-NEXT: ;;#ASMSTART
21154 ; GFX900-NEXT: ; use s[8:11]
21155 ; GFX900-NEXT: ;;#ASMEND
21156 ; GFX900-NEXT: s_setpc_b64 s[30:31]
21158 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_2_6_6:
21160 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21161 ; GFX90A-NEXT: ;;#ASMSTART
21162 ; GFX90A-NEXT: ; def s[8:11]
21163 ; GFX90A-NEXT: ;;#ASMEND
21164 ; GFX90A-NEXT: ;;#ASMSTART
21165 ; GFX90A-NEXT: ; def s[4:7]
21166 ; GFX90A-NEXT: ;;#ASMEND
21167 ; GFX90A-NEXT: s_mov_b32 s8, s11
21168 ; GFX90A-NEXT: s_mov_b32 s9, s6
21169 ; GFX90A-NEXT: s_mov_b32 s11, s10
21170 ; GFX90A-NEXT: ;;#ASMSTART
21171 ; GFX90A-NEXT: ; use s[8:11]
21172 ; GFX90A-NEXT: ;;#ASMEND
21173 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
21175 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_2_6_6:
21177 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21178 ; GFX940-NEXT: ;;#ASMSTART
21179 ; GFX940-NEXT: ; def s[8:11]
21180 ; GFX940-NEXT: ;;#ASMEND
21181 ; GFX940-NEXT: ;;#ASMSTART
21182 ; GFX940-NEXT: ; def s[0:3]
21183 ; GFX940-NEXT: ;;#ASMEND
21184 ; GFX940-NEXT: s_mov_b32 s8, s11
21185 ; GFX940-NEXT: s_mov_b32 s9, s2
21186 ; GFX940-NEXT: s_mov_b32 s11, s10
21187 ; GFX940-NEXT: ;;#ASMSTART
21188 ; GFX940-NEXT: ; use s[8:11]
21189 ; GFX940-NEXT: ;;#ASMEND
21190 ; GFX940-NEXT: s_setpc_b64 s[30:31]
21191 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
21192 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
21193 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 2, i32 6, i32 6>
21194 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
21198 define void @s_shuffle_v4p3_v4p3__7_3_6_6() {
21199 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_3_6_6:
21201 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21202 ; GFX900-NEXT: ;;#ASMSTART
21203 ; GFX900-NEXT: ; def s[8:11]
21204 ; GFX900-NEXT: ;;#ASMEND
21205 ; GFX900-NEXT: ;;#ASMSTART
21206 ; GFX900-NEXT: ; def s[4:7]
21207 ; GFX900-NEXT: ;;#ASMEND
21208 ; GFX900-NEXT: s_mov_b32 s8, s11
21209 ; GFX900-NEXT: s_mov_b32 s9, s7
21210 ; GFX900-NEXT: s_mov_b32 s11, s10
21211 ; GFX900-NEXT: ;;#ASMSTART
21212 ; GFX900-NEXT: ; use s[8:11]
21213 ; GFX900-NEXT: ;;#ASMEND
21214 ; GFX900-NEXT: s_setpc_b64 s[30:31]
21216 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_3_6_6:
21218 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21219 ; GFX90A-NEXT: ;;#ASMSTART
21220 ; GFX90A-NEXT: ; def s[8:11]
21221 ; GFX90A-NEXT: ;;#ASMEND
21222 ; GFX90A-NEXT: ;;#ASMSTART
21223 ; GFX90A-NEXT: ; def s[4:7]
21224 ; GFX90A-NEXT: ;;#ASMEND
21225 ; GFX90A-NEXT: s_mov_b32 s8, s11
21226 ; GFX90A-NEXT: s_mov_b32 s9, s7
21227 ; GFX90A-NEXT: s_mov_b32 s11, s10
21228 ; GFX90A-NEXT: ;;#ASMSTART
21229 ; GFX90A-NEXT: ; use s[8:11]
21230 ; GFX90A-NEXT: ;;#ASMEND
21231 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
21233 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_3_6_6:
21235 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21236 ; GFX940-NEXT: ;;#ASMSTART
21237 ; GFX940-NEXT: ; def s[8:11]
21238 ; GFX940-NEXT: ;;#ASMEND
21239 ; GFX940-NEXT: ;;#ASMSTART
21240 ; GFX940-NEXT: ; def s[0:3]
21241 ; GFX940-NEXT: ;;#ASMEND
21242 ; GFX940-NEXT: s_mov_b32 s8, s11
21243 ; GFX940-NEXT: s_mov_b32 s9, s3
21244 ; GFX940-NEXT: s_mov_b32 s11, s10
21245 ; GFX940-NEXT: ;;#ASMSTART
21246 ; GFX940-NEXT: ; use s[8:11]
21247 ; GFX940-NEXT: ;;#ASMEND
21248 ; GFX940-NEXT: s_setpc_b64 s[30:31]
21249 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
21250 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
21251 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 3, i32 6, i32 6>
21252 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
21256 define void @s_shuffle_v4p3_v4p3__7_4_6_6() {
21257 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_4_6_6:
21259 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21260 ; GFX900-NEXT: ;;#ASMSTART
21261 ; GFX900-NEXT: ; def s[4:7]
21262 ; GFX900-NEXT: ;;#ASMEND
21263 ; GFX900-NEXT: s_mov_b32 s8, s7
21264 ; GFX900-NEXT: s_mov_b32 s9, s4
21265 ; GFX900-NEXT: s_mov_b32 s10, s6
21266 ; GFX900-NEXT: s_mov_b32 s11, s6
21267 ; GFX900-NEXT: ;;#ASMSTART
21268 ; GFX900-NEXT: ; use s[8:11]
21269 ; GFX900-NEXT: ;;#ASMEND
21270 ; GFX900-NEXT: s_setpc_b64 s[30:31]
21272 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_4_6_6:
21274 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21275 ; GFX90A-NEXT: ;;#ASMSTART
21276 ; GFX90A-NEXT: ; def s[4:7]
21277 ; GFX90A-NEXT: ;;#ASMEND
21278 ; GFX90A-NEXT: s_mov_b32 s8, s7
21279 ; GFX90A-NEXT: s_mov_b32 s9, s4
21280 ; GFX90A-NEXT: s_mov_b32 s10, s6
21281 ; GFX90A-NEXT: s_mov_b32 s11, s6
21282 ; GFX90A-NEXT: ;;#ASMSTART
21283 ; GFX90A-NEXT: ; use s[8:11]
21284 ; GFX90A-NEXT: ;;#ASMEND
21285 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
21287 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_4_6_6:
21289 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21290 ; GFX940-NEXT: ;;#ASMSTART
21291 ; GFX940-NEXT: ; def s[0:3]
21292 ; GFX940-NEXT: ;;#ASMEND
21293 ; GFX940-NEXT: s_mov_b32 s8, s3
21294 ; GFX940-NEXT: s_mov_b32 s9, s0
21295 ; GFX940-NEXT: s_mov_b32 s10, s2
21296 ; GFX940-NEXT: s_mov_b32 s11, s2
21297 ; GFX940-NEXT: ;;#ASMSTART
21298 ; GFX940-NEXT: ; use s[8:11]
21299 ; GFX940-NEXT: ;;#ASMEND
21300 ; GFX940-NEXT: s_setpc_b64 s[30:31]
21301 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
21302 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
21303 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 4, i32 6, i32 6>
21304 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
21308 define void @s_shuffle_v4p3_v4p3__7_5_6_6() {
21309 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__7_5_6_6:
21311 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21312 ; GFX9-NEXT: ;;#ASMSTART
21313 ; GFX9-NEXT: ; def s[8:11]
21314 ; GFX9-NEXT: ;;#ASMEND
21315 ; GFX9-NEXT: s_mov_b32 s8, s11
21316 ; GFX9-NEXT: s_mov_b32 s11, s10
21317 ; GFX9-NEXT: ;;#ASMSTART
21318 ; GFX9-NEXT: ; use s[8:11]
21319 ; GFX9-NEXT: ;;#ASMEND
21320 ; GFX9-NEXT: s_setpc_b64 s[30:31]
21321 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
21322 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
21323 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 5, i32 6, i32 6>
21324 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
21328 define void @s_shuffle_v4p3_v4p3__7_7_6_6() {
21329 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__7_7_6_6:
21331 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21332 ; GFX9-NEXT: ;;#ASMSTART
21333 ; GFX9-NEXT: ; def s[8:11]
21334 ; GFX9-NEXT: ;;#ASMEND
21335 ; GFX9-NEXT: s_mov_b32 s8, s11
21336 ; GFX9-NEXT: s_mov_b32 s9, s11
21337 ; GFX9-NEXT: s_mov_b32 s11, s10
21338 ; GFX9-NEXT: ;;#ASMSTART
21339 ; GFX9-NEXT: ; use s[8:11]
21340 ; GFX9-NEXT: ;;#ASMEND
21341 ; GFX9-NEXT: s_setpc_b64 s[30:31]
21342 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
21343 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
21344 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 6, i32 6>
21345 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
21349 define void @s_shuffle_v4p3_v4p3__7_7_u_6() {
21350 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_u_6:
21352 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21353 ; GFX900-NEXT: ;;#ASMSTART
21354 ; GFX900-NEXT: ; def s[4:7]
21355 ; GFX900-NEXT: ;;#ASMEND
21356 ; GFX900-NEXT: s_mov_b32 s8, s7
21357 ; GFX900-NEXT: s_mov_b32 s9, s7
21358 ; GFX900-NEXT: s_mov_b32 s11, s6
21359 ; GFX900-NEXT: ;;#ASMSTART
21360 ; GFX900-NEXT: ; use s[8:11]
21361 ; GFX900-NEXT: ;;#ASMEND
21362 ; GFX900-NEXT: s_setpc_b64 s[30:31]
21364 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_u_6:
21366 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21367 ; GFX90A-NEXT: ;;#ASMSTART
21368 ; GFX90A-NEXT: ; def s[4:7]
21369 ; GFX90A-NEXT: ;;#ASMEND
21370 ; GFX90A-NEXT: s_mov_b32 s8, s7
21371 ; GFX90A-NEXT: s_mov_b32 s9, s7
21372 ; GFX90A-NEXT: s_mov_b32 s11, s6
21373 ; GFX90A-NEXT: ;;#ASMSTART
21374 ; GFX90A-NEXT: ; use s[8:11]
21375 ; GFX90A-NEXT: ;;#ASMEND
21376 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
21378 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_u_6:
21380 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21381 ; GFX940-NEXT: ;;#ASMSTART
21382 ; GFX940-NEXT: ; def s[0:3]
21383 ; GFX940-NEXT: ;;#ASMEND
21384 ; GFX940-NEXT: s_mov_b32 s8, s3
21385 ; GFX940-NEXT: s_mov_b32 s9, s3
21386 ; GFX940-NEXT: s_mov_b32 s11, s2
21387 ; GFX940-NEXT: ;;#ASMSTART
21388 ; GFX940-NEXT: ; use s[8:11]
21389 ; GFX940-NEXT: ;;#ASMEND
21390 ; GFX940-NEXT: s_setpc_b64 s[30:31]
21391 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
21392 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
21393 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 poison, i32 6>
21394 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
21398 define void @s_shuffle_v4p3_v4p3__7_7_0_6() {
21399 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_0_6:
21401 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21402 ; GFX900-NEXT: ;;#ASMSTART
21403 ; GFX900-NEXT: ; def s[4:7]
21404 ; GFX900-NEXT: ;;#ASMEND
21405 ; GFX900-NEXT: ;;#ASMSTART
21406 ; GFX900-NEXT: ; def s[12:15]
21407 ; GFX900-NEXT: ;;#ASMEND
21408 ; GFX900-NEXT: s_mov_b32 s8, s15
21409 ; GFX900-NEXT: s_mov_b32 s9, s15
21410 ; GFX900-NEXT: s_mov_b32 s10, s4
21411 ; GFX900-NEXT: s_mov_b32 s11, s14
21412 ; GFX900-NEXT: ;;#ASMSTART
21413 ; GFX900-NEXT: ; use s[8:11]
21414 ; GFX900-NEXT: ;;#ASMEND
21415 ; GFX900-NEXT: s_setpc_b64 s[30:31]
21417 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_0_6:
21419 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21420 ; GFX90A-NEXT: ;;#ASMSTART
21421 ; GFX90A-NEXT: ; def s[4:7]
21422 ; GFX90A-NEXT: ;;#ASMEND
21423 ; GFX90A-NEXT: ;;#ASMSTART
21424 ; GFX90A-NEXT: ; def s[12:15]
21425 ; GFX90A-NEXT: ;;#ASMEND
21426 ; GFX90A-NEXT: s_mov_b32 s8, s15
21427 ; GFX90A-NEXT: s_mov_b32 s9, s15
21428 ; GFX90A-NEXT: s_mov_b32 s10, s4
21429 ; GFX90A-NEXT: s_mov_b32 s11, s14
21430 ; GFX90A-NEXT: ;;#ASMSTART
21431 ; GFX90A-NEXT: ; use s[8:11]
21432 ; GFX90A-NEXT: ;;#ASMEND
21433 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
21435 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_0_6:
21437 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21438 ; GFX940-NEXT: ;;#ASMSTART
21439 ; GFX940-NEXT: ; def s[0:3]
21440 ; GFX940-NEXT: ;;#ASMEND
21441 ; GFX940-NEXT: ;;#ASMSTART
21442 ; GFX940-NEXT: ; def s[4:7]
21443 ; GFX940-NEXT: ;;#ASMEND
21444 ; GFX940-NEXT: s_mov_b32 s8, s7
21445 ; GFX940-NEXT: s_mov_b32 s9, s7
21446 ; GFX940-NEXT: s_mov_b32 s10, s0
21447 ; GFX940-NEXT: s_mov_b32 s11, s6
21448 ; GFX940-NEXT: ;;#ASMSTART
21449 ; GFX940-NEXT: ; use s[8:11]
21450 ; GFX940-NEXT: ;;#ASMEND
21451 ; GFX940-NEXT: s_setpc_b64 s[30:31]
21452 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
21453 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
21454 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 0, i32 6>
21455 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
21459 define void @s_shuffle_v4p3_v4p3__7_7_1_6() {
21460 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_1_6:
21462 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21463 ; GFX900-NEXT: ;;#ASMSTART
21464 ; GFX900-NEXT: ; def s[4:7]
21465 ; GFX900-NEXT: ;;#ASMEND
21466 ; GFX900-NEXT: ;;#ASMSTART
21467 ; GFX900-NEXT: ; def s[12:15]
21468 ; GFX900-NEXT: ;;#ASMEND
21469 ; GFX900-NEXT: s_mov_b32 s8, s15
21470 ; GFX900-NEXT: s_mov_b32 s9, s15
21471 ; GFX900-NEXT: s_mov_b32 s10, s5
21472 ; GFX900-NEXT: s_mov_b32 s11, s14
21473 ; GFX900-NEXT: ;;#ASMSTART
21474 ; GFX900-NEXT: ; use s[8:11]
21475 ; GFX900-NEXT: ;;#ASMEND
21476 ; GFX900-NEXT: s_setpc_b64 s[30:31]
21478 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_1_6:
21480 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21481 ; GFX90A-NEXT: ;;#ASMSTART
21482 ; GFX90A-NEXT: ; def s[4:7]
21483 ; GFX90A-NEXT: ;;#ASMEND
21484 ; GFX90A-NEXT: ;;#ASMSTART
21485 ; GFX90A-NEXT: ; def s[12:15]
21486 ; GFX90A-NEXT: ;;#ASMEND
21487 ; GFX90A-NEXT: s_mov_b32 s8, s15
21488 ; GFX90A-NEXT: s_mov_b32 s9, s15
21489 ; GFX90A-NEXT: s_mov_b32 s10, s5
21490 ; GFX90A-NEXT: s_mov_b32 s11, s14
21491 ; GFX90A-NEXT: ;;#ASMSTART
21492 ; GFX90A-NEXT: ; use s[8:11]
21493 ; GFX90A-NEXT: ;;#ASMEND
21494 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
21496 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_1_6:
21498 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21499 ; GFX940-NEXT: ;;#ASMSTART
21500 ; GFX940-NEXT: ; def s[0:3]
21501 ; GFX940-NEXT: ;;#ASMEND
21502 ; GFX940-NEXT: ;;#ASMSTART
21503 ; GFX940-NEXT: ; def s[4:7]
21504 ; GFX940-NEXT: ;;#ASMEND
21505 ; GFX940-NEXT: s_mov_b32 s8, s7
21506 ; GFX940-NEXT: s_mov_b32 s9, s7
21507 ; GFX940-NEXT: s_mov_b32 s10, s1
21508 ; GFX940-NEXT: s_mov_b32 s11, s6
21509 ; GFX940-NEXT: ;;#ASMSTART
21510 ; GFX940-NEXT: ; use s[8:11]
21511 ; GFX940-NEXT: ;;#ASMEND
21512 ; GFX940-NEXT: s_setpc_b64 s[30:31]
21513 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
21514 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
21515 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 1, i32 6>
21516 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
21520 define void @s_shuffle_v4p3_v4p3__7_7_2_6() {
21521 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_2_6:
21523 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21524 ; GFX900-NEXT: ;;#ASMSTART
21525 ; GFX900-NEXT: ; def s[8:11]
21526 ; GFX900-NEXT: ;;#ASMEND
21527 ; GFX900-NEXT: ;;#ASMSTART
21528 ; GFX900-NEXT: ; def s[4:7]
21529 ; GFX900-NEXT: ;;#ASMEND
21530 ; GFX900-NEXT: s_mov_b32 s8, s7
21531 ; GFX900-NEXT: s_mov_b32 s9, s7
21532 ; GFX900-NEXT: s_mov_b32 s11, s6
21533 ; GFX900-NEXT: ;;#ASMSTART
21534 ; GFX900-NEXT: ; use s[8:11]
21535 ; GFX900-NEXT: ;;#ASMEND
21536 ; GFX900-NEXT: s_setpc_b64 s[30:31]
21538 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_2_6:
21540 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21541 ; GFX90A-NEXT: ;;#ASMSTART
21542 ; GFX90A-NEXT: ; def s[8:11]
21543 ; GFX90A-NEXT: ;;#ASMEND
21544 ; GFX90A-NEXT: ;;#ASMSTART
21545 ; GFX90A-NEXT: ; def s[4:7]
21546 ; GFX90A-NEXT: ;;#ASMEND
21547 ; GFX90A-NEXT: s_mov_b32 s8, s7
21548 ; GFX90A-NEXT: s_mov_b32 s9, s7
21549 ; GFX90A-NEXT: s_mov_b32 s11, s6
21550 ; GFX90A-NEXT: ;;#ASMSTART
21551 ; GFX90A-NEXT: ; use s[8:11]
21552 ; GFX90A-NEXT: ;;#ASMEND
21553 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
21555 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_2_6:
21557 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21558 ; GFX940-NEXT: ;;#ASMSTART
21559 ; GFX940-NEXT: ; def s[8:11]
21560 ; GFX940-NEXT: ;;#ASMEND
21561 ; GFX940-NEXT: ;;#ASMSTART
21562 ; GFX940-NEXT: ; def s[0:3]
21563 ; GFX940-NEXT: ;;#ASMEND
21564 ; GFX940-NEXT: s_mov_b32 s8, s3
21565 ; GFX940-NEXT: s_mov_b32 s9, s3
21566 ; GFX940-NEXT: s_mov_b32 s11, s2
21567 ; GFX940-NEXT: ;;#ASMSTART
21568 ; GFX940-NEXT: ; use s[8:11]
21569 ; GFX940-NEXT: ;;#ASMEND
21570 ; GFX940-NEXT: s_setpc_b64 s[30:31]
21571 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
21572 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
21573 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 2, i32 6>
21574 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
21578 define void @s_shuffle_v4p3_v4p3__7_7_3_6() {
21579 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_3_6:
21581 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21582 ; GFX900-NEXT: ;;#ASMSTART
21583 ; GFX900-NEXT: ; def s[4:7]
21584 ; GFX900-NEXT: ;;#ASMEND
21585 ; GFX900-NEXT: ;;#ASMSTART
21586 ; GFX900-NEXT: ; def s[12:15]
21587 ; GFX900-NEXT: ;;#ASMEND
21588 ; GFX900-NEXT: s_mov_b32 s8, s15
21589 ; GFX900-NEXT: s_mov_b32 s9, s15
21590 ; GFX900-NEXT: s_mov_b32 s10, s7
21591 ; GFX900-NEXT: s_mov_b32 s11, s14
21592 ; GFX900-NEXT: ;;#ASMSTART
21593 ; GFX900-NEXT: ; use s[8:11]
21594 ; GFX900-NEXT: ;;#ASMEND
21595 ; GFX900-NEXT: s_setpc_b64 s[30:31]
21597 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_3_6:
21599 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21600 ; GFX90A-NEXT: ;;#ASMSTART
21601 ; GFX90A-NEXT: ; def s[4:7]
21602 ; GFX90A-NEXT: ;;#ASMEND
21603 ; GFX90A-NEXT: ;;#ASMSTART
21604 ; GFX90A-NEXT: ; def s[12:15]
21605 ; GFX90A-NEXT: ;;#ASMEND
21606 ; GFX90A-NEXT: s_mov_b32 s8, s15
21607 ; GFX90A-NEXT: s_mov_b32 s9, s15
21608 ; GFX90A-NEXT: s_mov_b32 s10, s7
21609 ; GFX90A-NEXT: s_mov_b32 s11, s14
21610 ; GFX90A-NEXT: ;;#ASMSTART
21611 ; GFX90A-NEXT: ; use s[8:11]
21612 ; GFX90A-NEXT: ;;#ASMEND
21613 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
21615 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_3_6:
21617 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21618 ; GFX940-NEXT: ;;#ASMSTART
21619 ; GFX940-NEXT: ; def s[0:3]
21620 ; GFX940-NEXT: ;;#ASMEND
21621 ; GFX940-NEXT: ;;#ASMSTART
21622 ; GFX940-NEXT: ; def s[4:7]
21623 ; GFX940-NEXT: ;;#ASMEND
21624 ; GFX940-NEXT: s_mov_b32 s8, s7
21625 ; GFX940-NEXT: s_mov_b32 s9, s7
21626 ; GFX940-NEXT: s_mov_b32 s10, s3
21627 ; GFX940-NEXT: s_mov_b32 s11, s6
21628 ; GFX940-NEXT: ;;#ASMSTART
21629 ; GFX940-NEXT: ; use s[8:11]
21630 ; GFX940-NEXT: ;;#ASMEND
21631 ; GFX940-NEXT: s_setpc_b64 s[30:31]
21632 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
21633 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
21634 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 3, i32 6>
21635 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
21639 define void @s_shuffle_v4p3_v4p3__7_7_4_6() {
21640 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_4_6:
21642 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21643 ; GFX900-NEXT: ;;#ASMSTART
21644 ; GFX900-NEXT: ; def s[4:7]
21645 ; GFX900-NEXT: ;;#ASMEND
21646 ; GFX900-NEXT: s_mov_b32 s8, s7
21647 ; GFX900-NEXT: s_mov_b32 s9, s7
21648 ; GFX900-NEXT: s_mov_b32 s10, s4
21649 ; GFX900-NEXT: s_mov_b32 s11, s6
21650 ; GFX900-NEXT: ;;#ASMSTART
21651 ; GFX900-NEXT: ; use s[8:11]
21652 ; GFX900-NEXT: ;;#ASMEND
21653 ; GFX900-NEXT: s_setpc_b64 s[30:31]
21655 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_4_6:
21657 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21658 ; GFX90A-NEXT: ;;#ASMSTART
21659 ; GFX90A-NEXT: ; def s[4:7]
21660 ; GFX90A-NEXT: ;;#ASMEND
21661 ; GFX90A-NEXT: s_mov_b32 s8, s7
21662 ; GFX90A-NEXT: s_mov_b32 s9, s7
21663 ; GFX90A-NEXT: s_mov_b32 s10, s4
21664 ; GFX90A-NEXT: s_mov_b32 s11, s6
21665 ; GFX90A-NEXT: ;;#ASMSTART
21666 ; GFX90A-NEXT: ; use s[8:11]
21667 ; GFX90A-NEXT: ;;#ASMEND
21668 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
21670 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_4_6:
21672 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21673 ; GFX940-NEXT: ;;#ASMSTART
21674 ; GFX940-NEXT: ; def s[0:3]
21675 ; GFX940-NEXT: ;;#ASMEND
21676 ; GFX940-NEXT: s_mov_b32 s8, s3
21677 ; GFX940-NEXT: s_mov_b32 s9, s3
21678 ; GFX940-NEXT: s_mov_b32 s10, s0
21679 ; GFX940-NEXT: s_mov_b32 s11, s2
21680 ; GFX940-NEXT: ;;#ASMSTART
21681 ; GFX940-NEXT: ; use s[8:11]
21682 ; GFX940-NEXT: ;;#ASMEND
21683 ; GFX940-NEXT: s_setpc_b64 s[30:31]
21684 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
21685 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
21686 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 4, i32 6>
21687 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
21691 define void @s_shuffle_v4p3_v4p3__7_7_5_6() {
21692 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_5_6:
21694 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21695 ; GFX900-NEXT: ;;#ASMSTART
21696 ; GFX900-NEXT: ; def s[4:7]
21697 ; GFX900-NEXT: ;;#ASMEND
21698 ; GFX900-NEXT: s_mov_b32 s8, s7
21699 ; GFX900-NEXT: s_mov_b32 s9, s7
21700 ; GFX900-NEXT: s_mov_b32 s10, s5
21701 ; GFX900-NEXT: s_mov_b32 s11, s6
21702 ; GFX900-NEXT: ;;#ASMSTART
21703 ; GFX900-NEXT: ; use s[8:11]
21704 ; GFX900-NEXT: ;;#ASMEND
21705 ; GFX900-NEXT: s_setpc_b64 s[30:31]
21707 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_5_6:
21709 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21710 ; GFX90A-NEXT: ;;#ASMSTART
21711 ; GFX90A-NEXT: ; def s[4:7]
21712 ; GFX90A-NEXT: ;;#ASMEND
21713 ; GFX90A-NEXT: s_mov_b32 s8, s7
21714 ; GFX90A-NEXT: s_mov_b32 s9, s7
21715 ; GFX90A-NEXT: s_mov_b32 s10, s5
21716 ; GFX90A-NEXT: s_mov_b32 s11, s6
21717 ; GFX90A-NEXT: ;;#ASMSTART
21718 ; GFX90A-NEXT: ; use s[8:11]
21719 ; GFX90A-NEXT: ;;#ASMEND
21720 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
21722 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_5_6:
21724 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21725 ; GFX940-NEXT: ;;#ASMSTART
21726 ; GFX940-NEXT: ; def s[0:3]
21727 ; GFX940-NEXT: ;;#ASMEND
21728 ; GFX940-NEXT: s_mov_b32 s8, s3
21729 ; GFX940-NEXT: s_mov_b32 s9, s3
21730 ; GFX940-NEXT: s_mov_b32 s10, s1
21731 ; GFX940-NEXT: s_mov_b32 s11, s2
21732 ; GFX940-NEXT: ;;#ASMSTART
21733 ; GFX940-NEXT: ; use s[8:11]
21734 ; GFX940-NEXT: ;;#ASMEND
21735 ; GFX940-NEXT: s_setpc_b64 s[30:31]
21736 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
21737 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
21738 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 5, i32 6>
21739 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
21743 define void @s_shuffle_v4p3_v4p3__u_7_7_7() {
21744 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__u_7_7_7:
21746 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21747 ; GFX9-NEXT: ;;#ASMSTART
21748 ; GFX9-NEXT: ; def s[8:11]
21749 ; GFX9-NEXT: ;;#ASMEND
21750 ; GFX9-NEXT: s_mov_b32 s9, s11
21751 ; GFX9-NEXT: s_mov_b32 s10, s11
21752 ; GFX9-NEXT: ;;#ASMSTART
21753 ; GFX9-NEXT: ; use s[8:11]
21754 ; GFX9-NEXT: ;;#ASMEND
21755 ; GFX9-NEXT: s_setpc_b64 s[30:31]
21756 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
21757 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
21758 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 poison, i32 7, i32 7, i32 7>
21759 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
21763 define void @s_shuffle_v4p3_v4p3__0_7_7_7() {
21764 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__0_7_7_7:
21766 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21767 ; GFX900-NEXT: ;;#ASMSTART
21768 ; GFX900-NEXT: ; def s[8:11]
21769 ; GFX900-NEXT: ;;#ASMEND
21770 ; GFX900-NEXT: ;;#ASMSTART
21771 ; GFX900-NEXT: ; def s[4:7]
21772 ; GFX900-NEXT: ;;#ASMEND
21773 ; GFX900-NEXT: s_mov_b32 s9, s7
21774 ; GFX900-NEXT: s_mov_b32 s10, s7
21775 ; GFX900-NEXT: s_mov_b32 s11, s7
21776 ; GFX900-NEXT: ;;#ASMSTART
21777 ; GFX900-NEXT: ; use s[8:11]
21778 ; GFX900-NEXT: ;;#ASMEND
21779 ; GFX900-NEXT: s_setpc_b64 s[30:31]
21781 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__0_7_7_7:
21783 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21784 ; GFX90A-NEXT: ;;#ASMSTART
21785 ; GFX90A-NEXT: ; def s[8:11]
21786 ; GFX90A-NEXT: ;;#ASMEND
21787 ; GFX90A-NEXT: ;;#ASMSTART
21788 ; GFX90A-NEXT: ; def s[4:7]
21789 ; GFX90A-NEXT: ;;#ASMEND
21790 ; GFX90A-NEXT: s_mov_b32 s9, s7
21791 ; GFX90A-NEXT: s_mov_b32 s10, s7
21792 ; GFX90A-NEXT: s_mov_b32 s11, s7
21793 ; GFX90A-NEXT: ;;#ASMSTART
21794 ; GFX90A-NEXT: ; use s[8:11]
21795 ; GFX90A-NEXT: ;;#ASMEND
21796 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
21798 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__0_7_7_7:
21800 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21801 ; GFX940-NEXT: ;;#ASMSTART
21802 ; GFX940-NEXT: ; def s[8:11]
21803 ; GFX940-NEXT: ;;#ASMEND
21804 ; GFX940-NEXT: ;;#ASMSTART
21805 ; GFX940-NEXT: ; def s[0:3]
21806 ; GFX940-NEXT: ;;#ASMEND
21807 ; GFX940-NEXT: s_mov_b32 s9, s3
21808 ; GFX940-NEXT: s_mov_b32 s10, s3
21809 ; GFX940-NEXT: s_mov_b32 s11, s3
21810 ; GFX940-NEXT: ;;#ASMSTART
21811 ; GFX940-NEXT: ; use s[8:11]
21812 ; GFX940-NEXT: ;;#ASMEND
21813 ; GFX940-NEXT: s_setpc_b64 s[30:31]
21814 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
21815 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
21816 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 0, i32 7, i32 7, i32 7>
21817 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
21821 define void @s_shuffle_v4p3_v4p3__1_7_7_7() {
21822 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__1_7_7_7:
21824 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21825 ; GFX900-NEXT: ;;#ASMSTART
21826 ; GFX900-NEXT: ; def s[8:11]
21827 ; GFX900-NEXT: ;;#ASMEND
21828 ; GFX900-NEXT: ;;#ASMSTART
21829 ; GFX900-NEXT: ; def s[4:7]
21830 ; GFX900-NEXT: ;;#ASMEND
21831 ; GFX900-NEXT: s_mov_b32 s8, s5
21832 ; GFX900-NEXT: s_mov_b32 s9, s11
21833 ; GFX900-NEXT: s_mov_b32 s10, s11
21834 ; GFX900-NEXT: ;;#ASMSTART
21835 ; GFX900-NEXT: ; use s[8:11]
21836 ; GFX900-NEXT: ;;#ASMEND
21837 ; GFX900-NEXT: s_setpc_b64 s[30:31]
21839 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__1_7_7_7:
21841 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21842 ; GFX90A-NEXT: ;;#ASMSTART
21843 ; GFX90A-NEXT: ; def s[8:11]
21844 ; GFX90A-NEXT: ;;#ASMEND
21845 ; GFX90A-NEXT: ;;#ASMSTART
21846 ; GFX90A-NEXT: ; def s[4:7]
21847 ; GFX90A-NEXT: ;;#ASMEND
21848 ; GFX90A-NEXT: s_mov_b32 s8, s5
21849 ; GFX90A-NEXT: s_mov_b32 s9, s11
21850 ; GFX90A-NEXT: s_mov_b32 s10, s11
21851 ; GFX90A-NEXT: ;;#ASMSTART
21852 ; GFX90A-NEXT: ; use s[8:11]
21853 ; GFX90A-NEXT: ;;#ASMEND
21854 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
21856 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__1_7_7_7:
21858 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21859 ; GFX940-NEXT: ;;#ASMSTART
21860 ; GFX940-NEXT: ; def s[8:11]
21861 ; GFX940-NEXT: ;;#ASMEND
21862 ; GFX940-NEXT: ;;#ASMSTART
21863 ; GFX940-NEXT: ; def s[0:3]
21864 ; GFX940-NEXT: ;;#ASMEND
21865 ; GFX940-NEXT: s_mov_b32 s8, s1
21866 ; GFX940-NEXT: s_mov_b32 s9, s11
21867 ; GFX940-NEXT: s_mov_b32 s10, s11
21868 ; GFX940-NEXT: ;;#ASMSTART
21869 ; GFX940-NEXT: ; use s[8:11]
21870 ; GFX940-NEXT: ;;#ASMEND
21871 ; GFX940-NEXT: s_setpc_b64 s[30:31]
21872 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
21873 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
21874 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 1, i32 7, i32 7, i32 7>
21875 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
21879 define void @s_shuffle_v4p3_v4p3__2_7_7_7() {
21880 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__2_7_7_7:
21882 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21883 ; GFX900-NEXT: ;;#ASMSTART
21884 ; GFX900-NEXT: ; def s[8:11]
21885 ; GFX900-NEXT: ;;#ASMEND
21886 ; GFX900-NEXT: ;;#ASMSTART
21887 ; GFX900-NEXT: ; def s[4:7]
21888 ; GFX900-NEXT: ;;#ASMEND
21889 ; GFX900-NEXT: s_mov_b32 s8, s6
21890 ; GFX900-NEXT: s_mov_b32 s9, s11
21891 ; GFX900-NEXT: s_mov_b32 s10, s11
21892 ; GFX900-NEXT: ;;#ASMSTART
21893 ; GFX900-NEXT: ; use s[8:11]
21894 ; GFX900-NEXT: ;;#ASMEND
21895 ; GFX900-NEXT: s_setpc_b64 s[30:31]
21897 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__2_7_7_7:
21899 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21900 ; GFX90A-NEXT: ;;#ASMSTART
21901 ; GFX90A-NEXT: ; def s[8:11]
21902 ; GFX90A-NEXT: ;;#ASMEND
21903 ; GFX90A-NEXT: ;;#ASMSTART
21904 ; GFX90A-NEXT: ; def s[4:7]
21905 ; GFX90A-NEXT: ;;#ASMEND
21906 ; GFX90A-NEXT: s_mov_b32 s8, s6
21907 ; GFX90A-NEXT: s_mov_b32 s9, s11
21908 ; GFX90A-NEXT: s_mov_b32 s10, s11
21909 ; GFX90A-NEXT: ;;#ASMSTART
21910 ; GFX90A-NEXT: ; use s[8:11]
21911 ; GFX90A-NEXT: ;;#ASMEND
21912 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
21914 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__2_7_7_7:
21916 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21917 ; GFX940-NEXT: ;;#ASMSTART
21918 ; GFX940-NEXT: ; def s[8:11]
21919 ; GFX940-NEXT: ;;#ASMEND
21920 ; GFX940-NEXT: ;;#ASMSTART
21921 ; GFX940-NEXT: ; def s[0:3]
21922 ; GFX940-NEXT: ;;#ASMEND
21923 ; GFX940-NEXT: s_mov_b32 s8, s2
21924 ; GFX940-NEXT: s_mov_b32 s9, s11
21925 ; GFX940-NEXT: s_mov_b32 s10, s11
21926 ; GFX940-NEXT: ;;#ASMSTART
21927 ; GFX940-NEXT: ; use s[8:11]
21928 ; GFX940-NEXT: ;;#ASMEND
21929 ; GFX940-NEXT: s_setpc_b64 s[30:31]
21930 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
21931 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
21932 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 2, i32 7, i32 7, i32 7>
21933 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
21937 define void @s_shuffle_v4p3_v4p3__3_7_7_7() {
21938 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__3_7_7_7:
21940 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21941 ; GFX900-NEXT: ;;#ASMSTART
21942 ; GFX900-NEXT: ; def s[8:11]
21943 ; GFX900-NEXT: ;;#ASMEND
21944 ; GFX900-NEXT: ;;#ASMSTART
21945 ; GFX900-NEXT: ; def s[4:7]
21946 ; GFX900-NEXT: ;;#ASMEND
21947 ; GFX900-NEXT: s_mov_b32 s8, s7
21948 ; GFX900-NEXT: s_mov_b32 s9, s11
21949 ; GFX900-NEXT: s_mov_b32 s10, s11
21950 ; GFX900-NEXT: ;;#ASMSTART
21951 ; GFX900-NEXT: ; use s[8:11]
21952 ; GFX900-NEXT: ;;#ASMEND
21953 ; GFX900-NEXT: s_setpc_b64 s[30:31]
21955 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__3_7_7_7:
21957 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21958 ; GFX90A-NEXT: ;;#ASMSTART
21959 ; GFX90A-NEXT: ; def s[8:11]
21960 ; GFX90A-NEXT: ;;#ASMEND
21961 ; GFX90A-NEXT: ;;#ASMSTART
21962 ; GFX90A-NEXT: ; def s[4:7]
21963 ; GFX90A-NEXT: ;;#ASMEND
21964 ; GFX90A-NEXT: s_mov_b32 s8, s7
21965 ; GFX90A-NEXT: s_mov_b32 s9, s11
21966 ; GFX90A-NEXT: s_mov_b32 s10, s11
21967 ; GFX90A-NEXT: ;;#ASMSTART
21968 ; GFX90A-NEXT: ; use s[8:11]
21969 ; GFX90A-NEXT: ;;#ASMEND
21970 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
21972 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__3_7_7_7:
21974 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21975 ; GFX940-NEXT: ;;#ASMSTART
21976 ; GFX940-NEXT: ; def s[8:11]
21977 ; GFX940-NEXT: ;;#ASMEND
21978 ; GFX940-NEXT: ;;#ASMSTART
21979 ; GFX940-NEXT: ; def s[0:3]
21980 ; GFX940-NEXT: ;;#ASMEND
21981 ; GFX940-NEXT: s_mov_b32 s8, s3
21982 ; GFX940-NEXT: s_mov_b32 s9, s11
21983 ; GFX940-NEXT: s_mov_b32 s10, s11
21984 ; GFX940-NEXT: ;;#ASMSTART
21985 ; GFX940-NEXT: ; use s[8:11]
21986 ; GFX940-NEXT: ;;#ASMEND
21987 ; GFX940-NEXT: s_setpc_b64 s[30:31]
21988 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
21989 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
21990 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 3, i32 7, i32 7, i32 7>
21991 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
21995 define void @s_shuffle_v4p3_v4p3__4_7_7_7() {
21996 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__4_7_7_7:
21998 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
21999 ; GFX9-NEXT: ;;#ASMSTART
22000 ; GFX9-NEXT: ; def s[8:11]
22001 ; GFX9-NEXT: ;;#ASMEND
22002 ; GFX9-NEXT: s_mov_b32 s9, s11
22003 ; GFX9-NEXT: s_mov_b32 s10, s11
22004 ; GFX9-NEXT: ;;#ASMSTART
22005 ; GFX9-NEXT: ; use s[8:11]
22006 ; GFX9-NEXT: ;;#ASMEND
22007 ; GFX9-NEXT: s_setpc_b64 s[30:31]
22008 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
22009 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
22010 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 4, i32 7, i32 7, i32 7>
22011 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
22015 define void @s_shuffle_v4p3_v4p3__5_7_7_7() {
22016 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__5_7_7_7:
22018 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
22019 ; GFX9-NEXT: ;;#ASMSTART
22020 ; GFX9-NEXT: ; def s[8:11]
22021 ; GFX9-NEXT: ;;#ASMEND
22022 ; GFX9-NEXT: s_mov_b32 s8, s9
22023 ; GFX9-NEXT: s_mov_b32 s9, s11
22024 ; GFX9-NEXT: s_mov_b32 s10, s11
22025 ; GFX9-NEXT: ;;#ASMSTART
22026 ; GFX9-NEXT: ; use s[8:11]
22027 ; GFX9-NEXT: ;;#ASMEND
22028 ; GFX9-NEXT: s_setpc_b64 s[30:31]
22029 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
22030 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
22031 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 5, i32 7, i32 7, i32 7>
22032 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
22036 define void @s_shuffle_v4p3_v4p3__6_7_7_7() {
22037 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__6_7_7_7:
22039 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
22040 ; GFX9-NEXT: ;;#ASMSTART
22041 ; GFX9-NEXT: ; def s[8:11]
22042 ; GFX9-NEXT: ;;#ASMEND
22043 ; GFX9-NEXT: s_mov_b32 s8, s10
22044 ; GFX9-NEXT: s_mov_b32 s9, s11
22045 ; GFX9-NEXT: s_mov_b32 s10, s11
22046 ; GFX9-NEXT: ;;#ASMSTART
22047 ; GFX9-NEXT: ; use s[8:11]
22048 ; GFX9-NEXT: ;;#ASMEND
22049 ; GFX9-NEXT: s_setpc_b64 s[30:31]
22050 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
22051 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
22052 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 6, i32 7, i32 7, i32 7>
22053 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
22057 define void @s_shuffle_v4p3_v4p3__7_u_7_7() {
22058 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__7_u_7_7:
22060 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
22061 ; GFX9-NEXT: ;;#ASMSTART
22062 ; GFX9-NEXT: ; def s[8:11]
22063 ; GFX9-NEXT: ;;#ASMEND
22064 ; GFX9-NEXT: s_mov_b32 s8, s11
22065 ; GFX9-NEXT: s_mov_b32 s10, s11
22066 ; GFX9-NEXT: ;;#ASMSTART
22067 ; GFX9-NEXT: ; use s[8:11]
22068 ; GFX9-NEXT: ;;#ASMEND
22069 ; GFX9-NEXT: s_setpc_b64 s[30:31]
22070 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
22071 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
22072 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 poison, i32 7, i32 7>
22073 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
22077 define void @s_shuffle_v4p3_v4p3__7_0_7_7() {
22078 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_0_7_7:
22080 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
22081 ; GFX900-NEXT: ;;#ASMSTART
22082 ; GFX900-NEXT: ; def s[8:11]
22083 ; GFX900-NEXT: ;;#ASMEND
22084 ; GFX900-NEXT: ;;#ASMSTART
22085 ; GFX900-NEXT: ; def s[4:7]
22086 ; GFX900-NEXT: ;;#ASMEND
22087 ; GFX900-NEXT: s_mov_b32 s8, s11
22088 ; GFX900-NEXT: s_mov_b32 s9, s4
22089 ; GFX900-NEXT: s_mov_b32 s10, s11
22090 ; GFX900-NEXT: ;;#ASMSTART
22091 ; GFX900-NEXT: ; use s[8:11]
22092 ; GFX900-NEXT: ;;#ASMEND
22093 ; GFX900-NEXT: s_setpc_b64 s[30:31]
22095 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_0_7_7:
22097 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
22098 ; GFX90A-NEXT: ;;#ASMSTART
22099 ; GFX90A-NEXT: ; def s[8:11]
22100 ; GFX90A-NEXT: ;;#ASMEND
22101 ; GFX90A-NEXT: ;;#ASMSTART
22102 ; GFX90A-NEXT: ; def s[4:7]
22103 ; GFX90A-NEXT: ;;#ASMEND
22104 ; GFX90A-NEXT: s_mov_b32 s8, s11
22105 ; GFX90A-NEXT: s_mov_b32 s9, s4
22106 ; GFX90A-NEXT: s_mov_b32 s10, s11
22107 ; GFX90A-NEXT: ;;#ASMSTART
22108 ; GFX90A-NEXT: ; use s[8:11]
22109 ; GFX90A-NEXT: ;;#ASMEND
22110 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
22112 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_0_7_7:
22114 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
22115 ; GFX940-NEXT: ;;#ASMSTART
22116 ; GFX940-NEXT: ; def s[8:11]
22117 ; GFX940-NEXT: ;;#ASMEND
22118 ; GFX940-NEXT: ;;#ASMSTART
22119 ; GFX940-NEXT: ; def s[0:3]
22120 ; GFX940-NEXT: ;;#ASMEND
22121 ; GFX940-NEXT: s_mov_b32 s8, s11
22122 ; GFX940-NEXT: s_mov_b32 s9, s0
22123 ; GFX940-NEXT: s_mov_b32 s10, s11
22124 ; GFX940-NEXT: ;;#ASMSTART
22125 ; GFX940-NEXT: ; use s[8:11]
22126 ; GFX940-NEXT: ;;#ASMEND
22127 ; GFX940-NEXT: s_setpc_b64 s[30:31]
22128 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
22129 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
22130 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 0, i32 7, i32 7>
22131 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
22135 define void @s_shuffle_v4p3_v4p3__7_1_7_7() {
22136 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_1_7_7:
22138 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
22139 ; GFX900-NEXT: ;;#ASMSTART
22140 ; GFX900-NEXT: ; def s[8:11]
22141 ; GFX900-NEXT: ;;#ASMEND
22142 ; GFX900-NEXT: ;;#ASMSTART
22143 ; GFX900-NEXT: ; def s[4:7]
22144 ; GFX900-NEXT: ;;#ASMEND
22145 ; GFX900-NEXT: s_mov_b32 s8, s7
22146 ; GFX900-NEXT: s_mov_b32 s10, s7
22147 ; GFX900-NEXT: s_mov_b32 s11, s7
22148 ; GFX900-NEXT: ;;#ASMSTART
22149 ; GFX900-NEXT: ; use s[8:11]
22150 ; GFX900-NEXT: ;;#ASMEND
22151 ; GFX900-NEXT: s_setpc_b64 s[30:31]
22153 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_1_7_7:
22155 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
22156 ; GFX90A-NEXT: ;;#ASMSTART
22157 ; GFX90A-NEXT: ; def s[8:11]
22158 ; GFX90A-NEXT: ;;#ASMEND
22159 ; GFX90A-NEXT: ;;#ASMSTART
22160 ; GFX90A-NEXT: ; def s[4:7]
22161 ; GFX90A-NEXT: ;;#ASMEND
22162 ; GFX90A-NEXT: s_mov_b32 s8, s7
22163 ; GFX90A-NEXT: s_mov_b32 s10, s7
22164 ; GFX90A-NEXT: s_mov_b32 s11, s7
22165 ; GFX90A-NEXT: ;;#ASMSTART
22166 ; GFX90A-NEXT: ; use s[8:11]
22167 ; GFX90A-NEXT: ;;#ASMEND
22168 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
22170 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_1_7_7:
22172 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
22173 ; GFX940-NEXT: ;;#ASMSTART
22174 ; GFX940-NEXT: ; def s[8:11]
22175 ; GFX940-NEXT: ;;#ASMEND
22176 ; GFX940-NEXT: ;;#ASMSTART
22177 ; GFX940-NEXT: ; def s[0:3]
22178 ; GFX940-NEXT: ;;#ASMEND
22179 ; GFX940-NEXT: s_mov_b32 s8, s3
22180 ; GFX940-NEXT: s_mov_b32 s10, s3
22181 ; GFX940-NEXT: s_mov_b32 s11, s3
22182 ; GFX940-NEXT: ;;#ASMSTART
22183 ; GFX940-NEXT: ; use s[8:11]
22184 ; GFX940-NEXT: ;;#ASMEND
22185 ; GFX940-NEXT: s_setpc_b64 s[30:31]
22186 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
22187 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
22188 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 1, i32 7, i32 7>
22189 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
22193 define void @s_shuffle_v4p3_v4p3__7_2_7_7() {
22194 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_2_7_7:
22196 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
22197 ; GFX900-NEXT: ;;#ASMSTART
22198 ; GFX900-NEXT: ; def s[8:11]
22199 ; GFX900-NEXT: ;;#ASMEND
22200 ; GFX900-NEXT: ;;#ASMSTART
22201 ; GFX900-NEXT: ; def s[4:7]
22202 ; GFX900-NEXT: ;;#ASMEND
22203 ; GFX900-NEXT: s_mov_b32 s8, s11
22204 ; GFX900-NEXT: s_mov_b32 s9, s6
22205 ; GFX900-NEXT: s_mov_b32 s10, s11
22206 ; GFX900-NEXT: ;;#ASMSTART
22207 ; GFX900-NEXT: ; use s[8:11]
22208 ; GFX900-NEXT: ;;#ASMEND
22209 ; GFX900-NEXT: s_setpc_b64 s[30:31]
22211 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_2_7_7:
22213 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
22214 ; GFX90A-NEXT: ;;#ASMSTART
22215 ; GFX90A-NEXT: ; def s[8:11]
22216 ; GFX90A-NEXT: ;;#ASMEND
22217 ; GFX90A-NEXT: ;;#ASMSTART
22218 ; GFX90A-NEXT: ; def s[4:7]
22219 ; GFX90A-NEXT: ;;#ASMEND
22220 ; GFX90A-NEXT: s_mov_b32 s8, s11
22221 ; GFX90A-NEXT: s_mov_b32 s9, s6
22222 ; GFX90A-NEXT: s_mov_b32 s10, s11
22223 ; GFX90A-NEXT: ;;#ASMSTART
22224 ; GFX90A-NEXT: ; use s[8:11]
22225 ; GFX90A-NEXT: ;;#ASMEND
22226 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
22228 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_2_7_7:
22230 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
22231 ; GFX940-NEXT: ;;#ASMSTART
22232 ; GFX940-NEXT: ; def s[8:11]
22233 ; GFX940-NEXT: ;;#ASMEND
22234 ; GFX940-NEXT: ;;#ASMSTART
22235 ; GFX940-NEXT: ; def s[0:3]
22236 ; GFX940-NEXT: ;;#ASMEND
22237 ; GFX940-NEXT: s_mov_b32 s8, s11
22238 ; GFX940-NEXT: s_mov_b32 s9, s2
22239 ; GFX940-NEXT: s_mov_b32 s10, s11
22240 ; GFX940-NEXT: ;;#ASMSTART
22241 ; GFX940-NEXT: ; use s[8:11]
22242 ; GFX940-NEXT: ;;#ASMEND
22243 ; GFX940-NEXT: s_setpc_b64 s[30:31]
22244 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
22245 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
22246 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 2, i32 7, i32 7>
22247 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
22251 define void @s_shuffle_v4p3_v4p3__7_3_7_7() {
22252 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_3_7_7:
22254 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
22255 ; GFX900-NEXT: ;;#ASMSTART
22256 ; GFX900-NEXT: ; def s[8:11]
22257 ; GFX900-NEXT: ;;#ASMEND
22258 ; GFX900-NEXT: ;;#ASMSTART
22259 ; GFX900-NEXT: ; def s[4:7]
22260 ; GFX900-NEXT: ;;#ASMEND
22261 ; GFX900-NEXT: s_mov_b32 s8, s11
22262 ; GFX900-NEXT: s_mov_b32 s9, s7
22263 ; GFX900-NEXT: s_mov_b32 s10, s11
22264 ; GFX900-NEXT: ;;#ASMSTART
22265 ; GFX900-NEXT: ; use s[8:11]
22266 ; GFX900-NEXT: ;;#ASMEND
22267 ; GFX900-NEXT: s_setpc_b64 s[30:31]
22269 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_3_7_7:
22271 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
22272 ; GFX90A-NEXT: ;;#ASMSTART
22273 ; GFX90A-NEXT: ; def s[8:11]
22274 ; GFX90A-NEXT: ;;#ASMEND
22275 ; GFX90A-NEXT: ;;#ASMSTART
22276 ; GFX90A-NEXT: ; def s[4:7]
22277 ; GFX90A-NEXT: ;;#ASMEND
22278 ; GFX90A-NEXT: s_mov_b32 s8, s11
22279 ; GFX90A-NEXT: s_mov_b32 s9, s7
22280 ; GFX90A-NEXT: s_mov_b32 s10, s11
22281 ; GFX90A-NEXT: ;;#ASMSTART
22282 ; GFX90A-NEXT: ; use s[8:11]
22283 ; GFX90A-NEXT: ;;#ASMEND
22284 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
22286 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_3_7_7:
22288 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
22289 ; GFX940-NEXT: ;;#ASMSTART
22290 ; GFX940-NEXT: ; def s[8:11]
22291 ; GFX940-NEXT: ;;#ASMEND
22292 ; GFX940-NEXT: ;;#ASMSTART
22293 ; GFX940-NEXT: ; def s[0:3]
22294 ; GFX940-NEXT: ;;#ASMEND
22295 ; GFX940-NEXT: s_mov_b32 s8, s11
22296 ; GFX940-NEXT: s_mov_b32 s9, s3
22297 ; GFX940-NEXT: s_mov_b32 s10, s11
22298 ; GFX940-NEXT: ;;#ASMSTART
22299 ; GFX940-NEXT: ; use s[8:11]
22300 ; GFX940-NEXT: ;;#ASMEND
22301 ; GFX940-NEXT: s_setpc_b64 s[30:31]
22302 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
22303 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
22304 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 3, i32 7, i32 7>
22305 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
22309 define void @s_shuffle_v4p3_v4p3__7_4_7_7() {
22310 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_4_7_7:
22312 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
22313 ; GFX900-NEXT: ;;#ASMSTART
22314 ; GFX900-NEXT: ; def s[4:7]
22315 ; GFX900-NEXT: ;;#ASMEND
22316 ; GFX900-NEXT: s_mov_b32 s8, s7
22317 ; GFX900-NEXT: s_mov_b32 s9, s4
22318 ; GFX900-NEXT: s_mov_b32 s10, s7
22319 ; GFX900-NEXT: s_mov_b32 s11, s7
22320 ; GFX900-NEXT: ;;#ASMSTART
22321 ; GFX900-NEXT: ; use s[8:11]
22322 ; GFX900-NEXT: ;;#ASMEND
22323 ; GFX900-NEXT: s_setpc_b64 s[30:31]
22325 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_4_7_7:
22327 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
22328 ; GFX90A-NEXT: ;;#ASMSTART
22329 ; GFX90A-NEXT: ; def s[4:7]
22330 ; GFX90A-NEXT: ;;#ASMEND
22331 ; GFX90A-NEXT: s_mov_b32 s8, s7
22332 ; GFX90A-NEXT: s_mov_b32 s9, s4
22333 ; GFX90A-NEXT: s_mov_b32 s10, s7
22334 ; GFX90A-NEXT: s_mov_b32 s11, s7
22335 ; GFX90A-NEXT: ;;#ASMSTART
22336 ; GFX90A-NEXT: ; use s[8:11]
22337 ; GFX90A-NEXT: ;;#ASMEND
22338 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
22340 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_4_7_7:
22342 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
22343 ; GFX940-NEXT: ;;#ASMSTART
22344 ; GFX940-NEXT: ; def s[0:3]
22345 ; GFX940-NEXT: ;;#ASMEND
22346 ; GFX940-NEXT: s_mov_b32 s8, s3
22347 ; GFX940-NEXT: s_mov_b32 s9, s0
22348 ; GFX940-NEXT: s_mov_b32 s10, s3
22349 ; GFX940-NEXT: s_mov_b32 s11, s3
22350 ; GFX940-NEXT: ;;#ASMSTART
22351 ; GFX940-NEXT: ; use s[8:11]
22352 ; GFX940-NEXT: ;;#ASMEND
22353 ; GFX940-NEXT: s_setpc_b64 s[30:31]
22354 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
22355 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
22356 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 4, i32 7, i32 7>
22357 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
22361 define void @s_shuffle_v4p3_v4p3__7_5_7_7() {
22362 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__7_5_7_7:
22364 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
22365 ; GFX9-NEXT: ;;#ASMSTART
22366 ; GFX9-NEXT: ; def s[8:11]
22367 ; GFX9-NEXT: ;;#ASMEND
22368 ; GFX9-NEXT: s_mov_b32 s8, s11
22369 ; GFX9-NEXT: s_mov_b32 s10, s11
22370 ; GFX9-NEXT: ;;#ASMSTART
22371 ; GFX9-NEXT: ; use s[8:11]
22372 ; GFX9-NEXT: ;;#ASMEND
22373 ; GFX9-NEXT: s_setpc_b64 s[30:31]
22374 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
22375 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
22376 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 5, i32 7, i32 7>
22377 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
22381 define void @s_shuffle_v4p3_v4p3__7_6_7_7() {
22382 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__7_6_7_7:
22384 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
22385 ; GFX9-NEXT: ;;#ASMSTART
22386 ; GFX9-NEXT: ; def s[8:11]
22387 ; GFX9-NEXT: ;;#ASMEND
22388 ; GFX9-NEXT: s_mov_b32 s8, s11
22389 ; GFX9-NEXT: s_mov_b32 s9, s10
22390 ; GFX9-NEXT: s_mov_b32 s10, s11
22391 ; GFX9-NEXT: ;;#ASMSTART
22392 ; GFX9-NEXT: ; use s[8:11]
22393 ; GFX9-NEXT: ;;#ASMEND
22394 ; GFX9-NEXT: s_setpc_b64 s[30:31]
22395 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
22396 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
22397 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 6, i32 7, i32 7>
22398 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
22402 define void @s_shuffle_v4p3_v4p3__7_7_u_7() {
22403 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__7_7_u_7:
22405 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
22406 ; GFX9-NEXT: ;;#ASMSTART
22407 ; GFX9-NEXT: ; def s[8:11]
22408 ; GFX9-NEXT: ;;#ASMEND
22409 ; GFX9-NEXT: s_mov_b32 s8, s11
22410 ; GFX9-NEXT: s_mov_b32 s9, s11
22411 ; GFX9-NEXT: ;;#ASMSTART
22412 ; GFX9-NEXT: ; use s[8:11]
22413 ; GFX9-NEXT: ;;#ASMEND
22414 ; GFX9-NEXT: s_setpc_b64 s[30:31]
22415 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
22416 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
22417 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 poison, i32 7>
22418 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
22422 define void @s_shuffle_v4p3_v4p3__7_7_0_7() {
22423 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_0_7:
22425 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
22426 ; GFX900-NEXT: ;;#ASMSTART
22427 ; GFX900-NEXT: ; def s[8:11]
22428 ; GFX900-NEXT: ;;#ASMEND
22429 ; GFX900-NEXT: ;;#ASMSTART
22430 ; GFX900-NEXT: ; def s[4:7]
22431 ; GFX900-NEXT: ;;#ASMEND
22432 ; GFX900-NEXT: s_mov_b32 s8, s11
22433 ; GFX900-NEXT: s_mov_b32 s9, s11
22434 ; GFX900-NEXT: s_mov_b32 s10, s4
22435 ; GFX900-NEXT: ;;#ASMSTART
22436 ; GFX900-NEXT: ; use s[8:11]
22437 ; GFX900-NEXT: ;;#ASMEND
22438 ; GFX900-NEXT: s_setpc_b64 s[30:31]
22440 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_0_7:
22442 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
22443 ; GFX90A-NEXT: ;;#ASMSTART
22444 ; GFX90A-NEXT: ; def s[8:11]
22445 ; GFX90A-NEXT: ;;#ASMEND
22446 ; GFX90A-NEXT: ;;#ASMSTART
22447 ; GFX90A-NEXT: ; def s[4:7]
22448 ; GFX90A-NEXT: ;;#ASMEND
22449 ; GFX90A-NEXT: s_mov_b32 s8, s11
22450 ; GFX90A-NEXT: s_mov_b32 s9, s11
22451 ; GFX90A-NEXT: s_mov_b32 s10, s4
22452 ; GFX90A-NEXT: ;;#ASMSTART
22453 ; GFX90A-NEXT: ; use s[8:11]
22454 ; GFX90A-NEXT: ;;#ASMEND
22455 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
22457 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_0_7:
22459 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
22460 ; GFX940-NEXT: ;;#ASMSTART
22461 ; GFX940-NEXT: ; def s[8:11]
22462 ; GFX940-NEXT: ;;#ASMEND
22463 ; GFX940-NEXT: ;;#ASMSTART
22464 ; GFX940-NEXT: ; def s[0:3]
22465 ; GFX940-NEXT: ;;#ASMEND
22466 ; GFX940-NEXT: s_mov_b32 s8, s11
22467 ; GFX940-NEXT: s_mov_b32 s9, s11
22468 ; GFX940-NEXT: s_mov_b32 s10, s0
22469 ; GFX940-NEXT: ;;#ASMSTART
22470 ; GFX940-NEXT: ; use s[8:11]
22471 ; GFX940-NEXT: ;;#ASMEND
22472 ; GFX940-NEXT: s_setpc_b64 s[30:31]
22473 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
22474 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
22475 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 0, i32 7>
22476 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
22480 define void @s_shuffle_v4p3_v4p3__7_7_1_7() {
22481 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_1_7:
22483 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
22484 ; GFX900-NEXT: ;;#ASMSTART
22485 ; GFX900-NEXT: ; def s[8:11]
22486 ; GFX900-NEXT: ;;#ASMEND
22487 ; GFX900-NEXT: ;;#ASMSTART
22488 ; GFX900-NEXT: ; def s[4:7]
22489 ; GFX900-NEXT: ;;#ASMEND
22490 ; GFX900-NEXT: s_mov_b32 s8, s11
22491 ; GFX900-NEXT: s_mov_b32 s9, s11
22492 ; GFX900-NEXT: s_mov_b32 s10, s5
22493 ; GFX900-NEXT: ;;#ASMSTART
22494 ; GFX900-NEXT: ; use s[8:11]
22495 ; GFX900-NEXT: ;;#ASMEND
22496 ; GFX900-NEXT: s_setpc_b64 s[30:31]
22498 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_1_7:
22500 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
22501 ; GFX90A-NEXT: ;;#ASMSTART
22502 ; GFX90A-NEXT: ; def s[8:11]
22503 ; GFX90A-NEXT: ;;#ASMEND
22504 ; GFX90A-NEXT: ;;#ASMSTART
22505 ; GFX90A-NEXT: ; def s[4:7]
22506 ; GFX90A-NEXT: ;;#ASMEND
22507 ; GFX90A-NEXT: s_mov_b32 s8, s11
22508 ; GFX90A-NEXT: s_mov_b32 s9, s11
22509 ; GFX90A-NEXT: s_mov_b32 s10, s5
22510 ; GFX90A-NEXT: ;;#ASMSTART
22511 ; GFX90A-NEXT: ; use s[8:11]
22512 ; GFX90A-NEXT: ;;#ASMEND
22513 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
22515 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_1_7:
22517 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
22518 ; GFX940-NEXT: ;;#ASMSTART
22519 ; GFX940-NEXT: ; def s[8:11]
22520 ; GFX940-NEXT: ;;#ASMEND
22521 ; GFX940-NEXT: ;;#ASMSTART
22522 ; GFX940-NEXT: ; def s[0:3]
22523 ; GFX940-NEXT: ;;#ASMEND
22524 ; GFX940-NEXT: s_mov_b32 s8, s11
22525 ; GFX940-NEXT: s_mov_b32 s9, s11
22526 ; GFX940-NEXT: s_mov_b32 s10, s1
22527 ; GFX940-NEXT: ;;#ASMSTART
22528 ; GFX940-NEXT: ; use s[8:11]
22529 ; GFX940-NEXT: ;;#ASMEND
22530 ; GFX940-NEXT: s_setpc_b64 s[30:31]
22531 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
22532 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
22533 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 1, i32 7>
22534 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
22538 define void @s_shuffle_v4p3_v4p3__7_7_2_7() {
22539 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_2_7:
22541 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
22542 ; GFX900-NEXT: ;;#ASMSTART
22543 ; GFX900-NEXT: ; def s[8:11]
22544 ; GFX900-NEXT: ;;#ASMEND
22545 ; GFX900-NEXT: ;;#ASMSTART
22546 ; GFX900-NEXT: ; def s[4:7]
22547 ; GFX900-NEXT: ;;#ASMEND
22548 ; GFX900-NEXT: s_mov_b32 s8, s7
22549 ; GFX900-NEXT: s_mov_b32 s9, s7
22550 ; GFX900-NEXT: s_mov_b32 s11, s7
22551 ; GFX900-NEXT: ;;#ASMSTART
22552 ; GFX900-NEXT: ; use s[8:11]
22553 ; GFX900-NEXT: ;;#ASMEND
22554 ; GFX900-NEXT: s_setpc_b64 s[30:31]
22556 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_2_7:
22558 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
22559 ; GFX90A-NEXT: ;;#ASMSTART
22560 ; GFX90A-NEXT: ; def s[8:11]
22561 ; GFX90A-NEXT: ;;#ASMEND
22562 ; GFX90A-NEXT: ;;#ASMSTART
22563 ; GFX90A-NEXT: ; def s[4:7]
22564 ; GFX90A-NEXT: ;;#ASMEND
22565 ; GFX90A-NEXT: s_mov_b32 s8, s7
22566 ; GFX90A-NEXT: s_mov_b32 s9, s7
22567 ; GFX90A-NEXT: s_mov_b32 s11, s7
22568 ; GFX90A-NEXT: ;;#ASMSTART
22569 ; GFX90A-NEXT: ; use s[8:11]
22570 ; GFX90A-NEXT: ;;#ASMEND
22571 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
22573 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_2_7:
22575 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
22576 ; GFX940-NEXT: ;;#ASMSTART
22577 ; GFX940-NEXT: ; def s[8:11]
22578 ; GFX940-NEXT: ;;#ASMEND
22579 ; GFX940-NEXT: ;;#ASMSTART
22580 ; GFX940-NEXT: ; def s[0:3]
22581 ; GFX940-NEXT: ;;#ASMEND
22582 ; GFX940-NEXT: s_mov_b32 s8, s3
22583 ; GFX940-NEXT: s_mov_b32 s9, s3
22584 ; GFX940-NEXT: s_mov_b32 s11, s3
22585 ; GFX940-NEXT: ;;#ASMSTART
22586 ; GFX940-NEXT: ; use s[8:11]
22587 ; GFX940-NEXT: ;;#ASMEND
22588 ; GFX940-NEXT: s_setpc_b64 s[30:31]
22589 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
22590 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
22591 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 2, i32 7>
22592 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
22596 define void @s_shuffle_v4p3_v4p3__7_7_3_7() {
22597 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_3_7:
22599 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
22600 ; GFX900-NEXT: ;;#ASMSTART
22601 ; GFX900-NEXT: ; def s[8:11]
22602 ; GFX900-NEXT: ;;#ASMEND
22603 ; GFX900-NEXT: ;;#ASMSTART
22604 ; GFX900-NEXT: ; def s[4:7]
22605 ; GFX900-NEXT: ;;#ASMEND
22606 ; GFX900-NEXT: s_mov_b32 s8, s11
22607 ; GFX900-NEXT: s_mov_b32 s9, s11
22608 ; GFX900-NEXT: s_mov_b32 s10, s7
22609 ; GFX900-NEXT: ;;#ASMSTART
22610 ; GFX900-NEXT: ; use s[8:11]
22611 ; GFX900-NEXT: ;;#ASMEND
22612 ; GFX900-NEXT: s_setpc_b64 s[30:31]
22614 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_3_7:
22616 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
22617 ; GFX90A-NEXT: ;;#ASMSTART
22618 ; GFX90A-NEXT: ; def s[8:11]
22619 ; GFX90A-NEXT: ;;#ASMEND
22620 ; GFX90A-NEXT: ;;#ASMSTART
22621 ; GFX90A-NEXT: ; def s[4:7]
22622 ; GFX90A-NEXT: ;;#ASMEND
22623 ; GFX90A-NEXT: s_mov_b32 s8, s11
22624 ; GFX90A-NEXT: s_mov_b32 s9, s11
22625 ; GFX90A-NEXT: s_mov_b32 s10, s7
22626 ; GFX90A-NEXT: ;;#ASMSTART
22627 ; GFX90A-NEXT: ; use s[8:11]
22628 ; GFX90A-NEXT: ;;#ASMEND
22629 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
22631 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_3_7:
22633 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
22634 ; GFX940-NEXT: ;;#ASMSTART
22635 ; GFX940-NEXT: ; def s[8:11]
22636 ; GFX940-NEXT: ;;#ASMEND
22637 ; GFX940-NEXT: ;;#ASMSTART
22638 ; GFX940-NEXT: ; def s[0:3]
22639 ; GFX940-NEXT: ;;#ASMEND
22640 ; GFX940-NEXT: s_mov_b32 s8, s11
22641 ; GFX940-NEXT: s_mov_b32 s9, s11
22642 ; GFX940-NEXT: s_mov_b32 s10, s3
22643 ; GFX940-NEXT: ;;#ASMSTART
22644 ; GFX940-NEXT: ; use s[8:11]
22645 ; GFX940-NEXT: ;;#ASMEND
22646 ; GFX940-NEXT: s_setpc_b64 s[30:31]
22647 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
22648 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
22649 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 3, i32 7>
22650 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
22654 define void @s_shuffle_v4p3_v4p3__7_7_4_7() {
22655 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_4_7:
22657 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
22658 ; GFX900-NEXT: ;;#ASMSTART
22659 ; GFX900-NEXT: ; def s[4:7]
22660 ; GFX900-NEXT: ;;#ASMEND
22661 ; GFX900-NEXT: s_mov_b32 s8, s7
22662 ; GFX900-NEXT: s_mov_b32 s9, s7
22663 ; GFX900-NEXT: s_mov_b32 s10, s4
22664 ; GFX900-NEXT: s_mov_b32 s11, s7
22665 ; GFX900-NEXT: ;;#ASMSTART
22666 ; GFX900-NEXT: ; use s[8:11]
22667 ; GFX900-NEXT: ;;#ASMEND
22668 ; GFX900-NEXT: s_setpc_b64 s[30:31]
22670 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_4_7:
22672 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
22673 ; GFX90A-NEXT: ;;#ASMSTART
22674 ; GFX90A-NEXT: ; def s[4:7]
22675 ; GFX90A-NEXT: ;;#ASMEND
22676 ; GFX90A-NEXT: s_mov_b32 s8, s7
22677 ; GFX90A-NEXT: s_mov_b32 s9, s7
22678 ; GFX90A-NEXT: s_mov_b32 s10, s4
22679 ; GFX90A-NEXT: s_mov_b32 s11, s7
22680 ; GFX90A-NEXT: ;;#ASMSTART
22681 ; GFX90A-NEXT: ; use s[8:11]
22682 ; GFX90A-NEXT: ;;#ASMEND
22683 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
22685 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_4_7:
22687 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
22688 ; GFX940-NEXT: ;;#ASMSTART
22689 ; GFX940-NEXT: ; def s[0:3]
22690 ; GFX940-NEXT: ;;#ASMEND
22691 ; GFX940-NEXT: s_mov_b32 s8, s3
22692 ; GFX940-NEXT: s_mov_b32 s9, s3
22693 ; GFX940-NEXT: s_mov_b32 s10, s0
22694 ; GFX940-NEXT: s_mov_b32 s11, s3
22695 ; GFX940-NEXT: ;;#ASMSTART
22696 ; GFX940-NEXT: ; use s[8:11]
22697 ; GFX940-NEXT: ;;#ASMEND
22698 ; GFX940-NEXT: s_setpc_b64 s[30:31]
22699 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
22700 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
22701 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 4, i32 7>
22702 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
22706 define void @s_shuffle_v4p3_v4p3__7_7_5_7() {
22707 ; GFX900-LABEL: s_shuffle_v4p3_v4p3__7_7_5_7:
22709 ; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
22710 ; GFX900-NEXT: ;;#ASMSTART
22711 ; GFX900-NEXT: ; def s[4:7]
22712 ; GFX900-NEXT: ;;#ASMEND
22713 ; GFX900-NEXT: s_mov_b32 s8, s7
22714 ; GFX900-NEXT: s_mov_b32 s9, s7
22715 ; GFX900-NEXT: s_mov_b32 s10, s5
22716 ; GFX900-NEXT: s_mov_b32 s11, s7
22717 ; GFX900-NEXT: ;;#ASMSTART
22718 ; GFX900-NEXT: ; use s[8:11]
22719 ; GFX900-NEXT: ;;#ASMEND
22720 ; GFX900-NEXT: s_setpc_b64 s[30:31]
22722 ; GFX90A-LABEL: s_shuffle_v4p3_v4p3__7_7_5_7:
22724 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
22725 ; GFX90A-NEXT: ;;#ASMSTART
22726 ; GFX90A-NEXT: ; def s[4:7]
22727 ; GFX90A-NEXT: ;;#ASMEND
22728 ; GFX90A-NEXT: s_mov_b32 s8, s7
22729 ; GFX90A-NEXT: s_mov_b32 s9, s7
22730 ; GFX90A-NEXT: s_mov_b32 s10, s5
22731 ; GFX90A-NEXT: s_mov_b32 s11, s7
22732 ; GFX90A-NEXT: ;;#ASMSTART
22733 ; GFX90A-NEXT: ; use s[8:11]
22734 ; GFX90A-NEXT: ;;#ASMEND
22735 ; GFX90A-NEXT: s_setpc_b64 s[30:31]
22737 ; GFX940-LABEL: s_shuffle_v4p3_v4p3__7_7_5_7:
22739 ; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
22740 ; GFX940-NEXT: ;;#ASMSTART
22741 ; GFX940-NEXT: ; def s[0:3]
22742 ; GFX940-NEXT: ;;#ASMEND
22743 ; GFX940-NEXT: s_mov_b32 s8, s3
22744 ; GFX940-NEXT: s_mov_b32 s9, s3
22745 ; GFX940-NEXT: s_mov_b32 s10, s1
22746 ; GFX940-NEXT: s_mov_b32 s11, s3
22747 ; GFX940-NEXT: ;;#ASMSTART
22748 ; GFX940-NEXT: ; use s[8:11]
22749 ; GFX940-NEXT: ;;#ASMEND
22750 ; GFX940-NEXT: s_setpc_b64 s[30:31]
22751 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
22752 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
22753 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 5, i32 7>
22754 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
22758 define void @s_shuffle_v4p3_v4p3__7_7_6_7() {
22759 ; GFX9-LABEL: s_shuffle_v4p3_v4p3__7_7_6_7:
22761 ; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
22762 ; GFX9-NEXT: ;;#ASMSTART
22763 ; GFX9-NEXT: ; def s[8:11]
22764 ; GFX9-NEXT: ;;#ASMEND
22765 ; GFX9-NEXT: s_mov_b32 s8, s11
22766 ; GFX9-NEXT: s_mov_b32 s9, s11
22767 ; GFX9-NEXT: ;;#ASMSTART
22768 ; GFX9-NEXT: ; use s[8:11]
22769 ; GFX9-NEXT: ;;#ASMEND
22770 ; GFX9-NEXT: s_setpc_b64 s[30:31]
22771 %vec0 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
22772 %vec1 = call <4 x ptr addrspace(3)> asm "; def $0", "=s"()
22773 %shuf = shufflevector <4 x ptr addrspace(3)> %vec0, <4 x ptr addrspace(3)> %vec1, <4 x i32> <i32 7, i32 7, i32 6, i32 7>
22774 call void asm sideeffect "; use $0", "{s[8:11]}"(<4 x ptr addrspace(3)> %shuf)
22777 ;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
22778 ; GFX90APLUS: {{.*}}