[clang][modules] Don't prevent translation of FW_Private includes when explicitly...
[llvm-project.git] / llvm / test / CodeGen / AMDGPU / GlobalISel / extractelement-stack-lower.ll
blob33a4d3c5494f7c969fcfbe6c936a9980cf8e863b
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc -global-isel -mtriple=amdgcn-mesa-mesa3d -mcpu=gfx900 -mattr=-xnack -verify-machineinstrs < %s | FileCheck -check-prefixes=GCN %s
4 ; Check lowering of some large extractelement that use the stack
5 ; instead of register indexing.
7 define i32 @v_extract_v64i32_varidx(ptr addrspace(1) %ptr, i32 %idx) {
8 ; GCN-LABEL: v_extract_v64i32_varidx:
9 ; GCN:       ; %bb.0:
10 ; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
11 ; GCN-NEXT:    s_mov_b32 s4, s33
12 ; GCN-NEXT:    s_add_i32 s33, s32, 0x3fc0
13 ; GCN-NEXT:    s_and_b32 s33, s33, 0xffffc000
14 ; GCN-NEXT:    buffer_store_dword v40, off, s[0:3], s33 offset:60 ; 4-byte Folded Spill
15 ; GCN-NEXT:    buffer_store_dword v41, off, s[0:3], s33 offset:56 ; 4-byte Folded Spill
16 ; GCN-NEXT:    buffer_store_dword v42, off, s[0:3], s33 offset:52 ; 4-byte Folded Spill
17 ; GCN-NEXT:    buffer_store_dword v43, off, s[0:3], s33 offset:48 ; 4-byte Folded Spill
18 ; GCN-NEXT:    buffer_store_dword v44, off, s[0:3], s33 offset:44 ; 4-byte Folded Spill
19 ; GCN-NEXT:    buffer_store_dword v45, off, s[0:3], s33 offset:40 ; 4-byte Folded Spill
20 ; GCN-NEXT:    buffer_store_dword v46, off, s[0:3], s33 offset:36 ; 4-byte Folded Spill
21 ; GCN-NEXT:    buffer_store_dword v47, off, s[0:3], s33 offset:32 ; 4-byte Folded Spill
22 ; GCN-NEXT:    buffer_store_dword v56, off, s[0:3], s33 offset:28 ; 4-byte Folded Spill
23 ; GCN-NEXT:    buffer_store_dword v57, off, s[0:3], s33 offset:24 ; 4-byte Folded Spill
24 ; GCN-NEXT:    buffer_store_dword v58, off, s[0:3], s33 offset:20 ; 4-byte Folded Spill
25 ; GCN-NEXT:    buffer_store_dword v59, off, s[0:3], s33 offset:16 ; 4-byte Folded Spill
26 ; GCN-NEXT:    buffer_store_dword v60, off, s[0:3], s33 offset:12 ; 4-byte Folded Spill
27 ; GCN-NEXT:    buffer_store_dword v61, off, s[0:3], s33 offset:8 ; 4-byte Folded Spill
28 ; GCN-NEXT:    buffer_store_dword v62, off, s[0:3], s33 offset:4 ; 4-byte Folded Spill
29 ; GCN-NEXT:    buffer_store_dword v63, off, s[0:3], s33 ; 4-byte Folded Spill
30 ; GCN-NEXT:    v_mov_b32_e32 v6, v2
31 ; GCN-NEXT:    global_load_dwordx4 v[2:5], v[0:1], off
32 ; GCN-NEXT:    global_load_dwordx4 v[16:19], v[0:1], off offset:16
33 ; GCN-NEXT:    global_load_dwordx4 v[56:59], v[0:1], off offset:32
34 ; GCN-NEXT:    global_load_dwordx4 v[48:51], v[0:1], off offset:48
35 ; GCN-NEXT:    global_load_dwordx4 v[20:23], v[0:1], off offset:64
36 ; GCN-NEXT:    global_load_dwordx4 v[44:47], v[0:1], off offset:80
37 ; GCN-NEXT:    global_load_dwordx4 v[40:43], v[0:1], off offset:96
38 ; GCN-NEXT:    global_load_dwordx4 v[60:63], v[0:1], off offset:112
39 ; GCN-NEXT:    global_load_dwordx4 v[36:39], v[0:1], off offset:128
40 ; GCN-NEXT:    global_load_dwordx4 v[32:35], v[0:1], off offset:144
41 ; GCN-NEXT:    global_load_dwordx4 v[28:31], v[0:1], off offset:160
42 ; GCN-NEXT:    global_load_dwordx4 v[52:55], v[0:1], off offset:176
43 ; GCN-NEXT:    global_load_dwordx4 v[24:27], v[0:1], off offset:192
44 ; GCN-NEXT:    global_load_dwordx4 v[7:10], v[0:1], off offset:208
45 ; GCN-NEXT:    s_add_i32 s32, s32, 0x10000
46 ; GCN-NEXT:    s_add_i32 s32, s32, 0xffff0000
47 ; GCN-NEXT:    s_waitcnt vmcnt(0)
48 ; GCN-NEXT:    buffer_store_dword v3, off, s[0:3], s33 offset:512 ; 4-byte Folded Spill
49 ; GCN-NEXT:    s_waitcnt vmcnt(0)
50 ; GCN-NEXT:    buffer_store_dword v4, off, s[0:3], s33 offset:516 ; 4-byte Folded Spill
51 ; GCN-NEXT:    buffer_store_dword v5, off, s[0:3], s33 offset:520 ; 4-byte Folded Spill
52 ; GCN-NEXT:    buffer_store_dword v6, off, s[0:3], s33 offset:524 ; 4-byte Folded Spill
53 ; GCN-NEXT:    buffer_store_dword v7, off, s[0:3], s33 offset:528 ; 4-byte Folded Spill
54 ; GCN-NEXT:    buffer_store_dword v8, off, s[0:3], s33 offset:532 ; 4-byte Folded Spill
55 ; GCN-NEXT:    buffer_store_dword v9, off, s[0:3], s33 offset:536 ; 4-byte Folded Spill
56 ; GCN-NEXT:    buffer_store_dword v10, off, s[0:3], s33 offset:540 ; 4-byte Folded Spill
57 ; GCN-NEXT:    buffer_store_dword v11, off, s[0:3], s33 offset:544 ; 4-byte Folded Spill
58 ; GCN-NEXT:    buffer_store_dword v12, off, s[0:3], s33 offset:548 ; 4-byte Folded Spill
59 ; GCN-NEXT:    buffer_store_dword v13, off, s[0:3], s33 offset:552 ; 4-byte Folded Spill
60 ; GCN-NEXT:    buffer_store_dword v14, off, s[0:3], s33 offset:556 ; 4-byte Folded Spill
61 ; GCN-NEXT:    buffer_store_dword v15, off, s[0:3], s33 offset:560 ; 4-byte Folded Spill
62 ; GCN-NEXT:    buffer_store_dword v16, off, s[0:3], s33 offset:564 ; 4-byte Folded Spill
63 ; GCN-NEXT:    buffer_store_dword v17, off, s[0:3], s33 offset:568 ; 4-byte Folded Spill
64 ; GCN-NEXT:    buffer_store_dword v18, off, s[0:3], s33 offset:572 ; 4-byte Folded Spill
65 ; GCN-NEXT:    global_load_dwordx4 v[8:11], v[0:1], off offset:224
66 ; GCN-NEXT:    global_load_dwordx4 v[12:15], v[0:1], off offset:240
67 ; GCN-NEXT:    v_lshrrev_b32_e64 v1, 6, s33
68 ; GCN-NEXT:    v_add_u32_e32 v1, 0x100, v1
69 ; GCN-NEXT:    buffer_store_dword v2, off, s[0:3], s33 offset:256
70 ; GCN-NEXT:    buffer_store_dword v3, off, s[0:3], s33 offset:260
71 ; GCN-NEXT:    buffer_store_dword v4, off, s[0:3], s33 offset:264
72 ; GCN-NEXT:    buffer_store_dword v5, off, s[0:3], s33 offset:268
73 ; GCN-NEXT:    buffer_store_dword v16, off, s[0:3], s33 offset:272
74 ; GCN-NEXT:    buffer_store_dword v17, off, s[0:3], s33 offset:276
75 ; GCN-NEXT:    buffer_store_dword v18, off, s[0:3], s33 offset:280
76 ; GCN-NEXT:    buffer_store_dword v19, off, s[0:3], s33 offset:284
77 ; GCN-NEXT:    buffer_store_dword v56, off, s[0:3], s33 offset:288
78 ; GCN-NEXT:    buffer_store_dword v57, off, s[0:3], s33 offset:292
79 ; GCN-NEXT:    buffer_store_dword v58, off, s[0:3], s33 offset:296
80 ; GCN-NEXT:    buffer_store_dword v59, off, s[0:3], s33 offset:300
81 ; GCN-NEXT:    buffer_store_dword v48, off, s[0:3], s33 offset:304
82 ; GCN-NEXT:    buffer_store_dword v49, off, s[0:3], s33 offset:308
83 ; GCN-NEXT:    buffer_store_dword v50, off, s[0:3], s33 offset:312
84 ; GCN-NEXT:    buffer_store_dword v51, off, s[0:3], s33 offset:316
85 ; GCN-NEXT:    buffer_store_dword v20, off, s[0:3], s33 offset:320
86 ; GCN-NEXT:    buffer_store_dword v21, off, s[0:3], s33 offset:324
87 ; GCN-NEXT:    buffer_store_dword v22, off, s[0:3], s33 offset:328
88 ; GCN-NEXT:    buffer_store_dword v23, off, s[0:3], s33 offset:332
89 ; GCN-NEXT:    buffer_store_dword v44, off, s[0:3], s33 offset:336
90 ; GCN-NEXT:    buffer_store_dword v45, off, s[0:3], s33 offset:340
91 ; GCN-NEXT:    buffer_store_dword v46, off, s[0:3], s33 offset:344
92 ; GCN-NEXT:    buffer_store_dword v47, off, s[0:3], s33 offset:348
93 ; GCN-NEXT:    buffer_store_dword v40, off, s[0:3], s33 offset:352
94 ; GCN-NEXT:    buffer_store_dword v41, off, s[0:3], s33 offset:356
95 ; GCN-NEXT:    buffer_store_dword v42, off, s[0:3], s33 offset:360
96 ; GCN-NEXT:    buffer_store_dword v43, off, s[0:3], s33 offset:364
97 ; GCN-NEXT:    buffer_store_dword v60, off, s[0:3], s33 offset:368
98 ; GCN-NEXT:    buffer_store_dword v61, off, s[0:3], s33 offset:372
99 ; GCN-NEXT:    buffer_store_dword v62, off, s[0:3], s33 offset:376
100 ; GCN-NEXT:    buffer_store_dword v63, off, s[0:3], s33 offset:380
101 ; GCN-NEXT:    buffer_store_dword v36, off, s[0:3], s33 offset:384
102 ; GCN-NEXT:    buffer_store_dword v37, off, s[0:3], s33 offset:388
103 ; GCN-NEXT:    buffer_store_dword v38, off, s[0:3], s33 offset:392
104 ; GCN-NEXT:    buffer_store_dword v39, off, s[0:3], s33 offset:396
105 ; GCN-NEXT:    buffer_store_dword v32, off, s[0:3], s33 offset:400
106 ; GCN-NEXT:    buffer_store_dword v33, off, s[0:3], s33 offset:404
107 ; GCN-NEXT:    buffer_store_dword v34, off, s[0:3], s33 offset:408
108 ; GCN-NEXT:    buffer_store_dword v35, off, s[0:3], s33 offset:412
109 ; GCN-NEXT:    buffer_store_dword v28, off, s[0:3], s33 offset:416
110 ; GCN-NEXT:    buffer_store_dword v29, off, s[0:3], s33 offset:420
111 ; GCN-NEXT:    buffer_store_dword v30, off, s[0:3], s33 offset:424
112 ; GCN-NEXT:    buffer_store_dword v31, off, s[0:3], s33 offset:428
113 ; GCN-NEXT:    buffer_store_dword v52, off, s[0:3], s33 offset:432
114 ; GCN-NEXT:    buffer_store_dword v53, off, s[0:3], s33 offset:436
115 ; GCN-NEXT:    buffer_store_dword v54, off, s[0:3], s33 offset:440
116 ; GCN-NEXT:    buffer_store_dword v55, off, s[0:3], s33 offset:444
117 ; GCN-NEXT:    buffer_store_dword v24, off, s[0:3], s33 offset:448
118 ; GCN-NEXT:    buffer_store_dword v25, off, s[0:3], s33 offset:452
119 ; GCN-NEXT:    buffer_store_dword v26, off, s[0:3], s33 offset:456
120 ; GCN-NEXT:    buffer_store_dword v27, off, s[0:3], s33 offset:460
121 ; GCN-NEXT:    buffer_load_dword v16, off, s[0:3], s33 offset:512 ; 4-byte Folded Reload
122 ; GCN-NEXT:    buffer_load_dword v17, off, s[0:3], s33 offset:516 ; 4-byte Folded Reload
123 ; GCN-NEXT:    buffer_load_dword v18, off, s[0:3], s33 offset:520 ; 4-byte Folded Reload
124 ; GCN-NEXT:    buffer_load_dword v19, off, s[0:3], s33 offset:524 ; 4-byte Folded Reload
125 ; GCN-NEXT:    buffer_load_dword v20, off, s[0:3], s33 offset:528 ; 4-byte Folded Reload
126 ; GCN-NEXT:    buffer_load_dword v21, off, s[0:3], s33 offset:532 ; 4-byte Folded Reload
127 ; GCN-NEXT:    buffer_load_dword v22, off, s[0:3], s33 offset:536 ; 4-byte Folded Reload
128 ; GCN-NEXT:    buffer_load_dword v23, off, s[0:3], s33 offset:540 ; 4-byte Folded Reload
129 ; GCN-NEXT:    buffer_load_dword v24, off, s[0:3], s33 offset:544 ; 4-byte Folded Reload
130 ; GCN-NEXT:    buffer_load_dword v25, off, s[0:3], s33 offset:548 ; 4-byte Folded Reload
131 ; GCN-NEXT:    buffer_load_dword v26, off, s[0:3], s33 offset:552 ; 4-byte Folded Reload
132 ; GCN-NEXT:    buffer_load_dword v27, off, s[0:3], s33 offset:556 ; 4-byte Folded Reload
133 ; GCN-NEXT:    buffer_load_dword v28, off, s[0:3], s33 offset:560 ; 4-byte Folded Reload
134 ; GCN-NEXT:    buffer_load_dword v29, off, s[0:3], s33 offset:564 ; 4-byte Folded Reload
135 ; GCN-NEXT:    buffer_load_dword v30, off, s[0:3], s33 offset:568 ; 4-byte Folded Reload
136 ; GCN-NEXT:    buffer_load_dword v31, off, s[0:3], s33 offset:572 ; 4-byte Folded Reload
137 ; GCN-NEXT:    v_and_b32_e32 v0, 63, v6
138 ; GCN-NEXT:    v_lshlrev_b32_e32 v0, 2, v0
139 ; GCN-NEXT:    v_add_u32_e32 v0, v1, v0
140 ; GCN-NEXT:    s_waitcnt vmcnt(0)
141 ; GCN-NEXT:    v_mov_b32_e32 v16, v20
142 ; GCN-NEXT:    v_mov_b32_e32 v17, v21
143 ; GCN-NEXT:    v_mov_b32_e32 v18, v22
144 ; GCN-NEXT:    v_mov_b32_e32 v19, v23
145 ; GCN-NEXT:    buffer_store_dword v16, off, s[0:3], s33 offset:464
146 ; GCN-NEXT:    buffer_store_dword v17, off, s[0:3], s33 offset:468
147 ; GCN-NEXT:    buffer_store_dword v18, off, s[0:3], s33 offset:472
148 ; GCN-NEXT:    buffer_store_dword v19, off, s[0:3], s33 offset:476
149 ; GCN-NEXT:    buffer_store_dword v8, off, s[0:3], s33 offset:480
150 ; GCN-NEXT:    buffer_store_dword v9, off, s[0:3], s33 offset:484
151 ; GCN-NEXT:    buffer_store_dword v10, off, s[0:3], s33 offset:488
152 ; GCN-NEXT:    buffer_store_dword v11, off, s[0:3], s33 offset:492
153 ; GCN-NEXT:    buffer_store_dword v12, off, s[0:3], s33 offset:496
154 ; GCN-NEXT:    buffer_store_dword v13, off, s[0:3], s33 offset:500
155 ; GCN-NEXT:    buffer_store_dword v14, off, s[0:3], s33 offset:504
156 ; GCN-NEXT:    buffer_store_dword v15, off, s[0:3], s33 offset:508
157 ; GCN-NEXT:    buffer_load_dword v0, v0, s[0:3], 0 offen
158 ; GCN-NEXT:    buffer_load_dword v63, off, s[0:3], s33 ; 4-byte Folded Reload
159 ; GCN-NEXT:    buffer_load_dword v62, off, s[0:3], s33 offset:4 ; 4-byte Folded Reload
160 ; GCN-NEXT:    buffer_load_dword v61, off, s[0:3], s33 offset:8 ; 4-byte Folded Reload
161 ; GCN-NEXT:    buffer_load_dword v60, off, s[0:3], s33 offset:12 ; 4-byte Folded Reload
162 ; GCN-NEXT:    buffer_load_dword v59, off, s[0:3], s33 offset:16 ; 4-byte Folded Reload
163 ; GCN-NEXT:    buffer_load_dword v58, off, s[0:3], s33 offset:20 ; 4-byte Folded Reload
164 ; GCN-NEXT:    buffer_load_dword v57, off, s[0:3], s33 offset:24 ; 4-byte Folded Reload
165 ; GCN-NEXT:    buffer_load_dword v56, off, s[0:3], s33 offset:28 ; 4-byte Folded Reload
166 ; GCN-NEXT:    buffer_load_dword v47, off, s[0:3], s33 offset:32 ; 4-byte Folded Reload
167 ; GCN-NEXT:    buffer_load_dword v46, off, s[0:3], s33 offset:36 ; 4-byte Folded Reload
168 ; GCN-NEXT:    buffer_load_dword v45, off, s[0:3], s33 offset:40 ; 4-byte Folded Reload
169 ; GCN-NEXT:    buffer_load_dword v44, off, s[0:3], s33 offset:44 ; 4-byte Folded Reload
170 ; GCN-NEXT:    buffer_load_dword v43, off, s[0:3], s33 offset:48 ; 4-byte Folded Reload
171 ; GCN-NEXT:    buffer_load_dword v42, off, s[0:3], s33 offset:52 ; 4-byte Folded Reload
172 ; GCN-NEXT:    buffer_load_dword v41, off, s[0:3], s33 offset:56 ; 4-byte Folded Reload
173 ; GCN-NEXT:    buffer_load_dword v40, off, s[0:3], s33 offset:60 ; 4-byte Folded Reload
174 ; GCN-NEXT:    s_mov_b32 s33, s4
175 ; GCN-NEXT:    s_waitcnt vmcnt(0)
176 ; GCN-NEXT:    s_setpc_b64 s[30:31]
177   %vec = load <64 x i32>, ptr addrspace(1) %ptr
178   %elt = extractelement <64 x i32> %vec, i32 %idx
179   ret i32 %elt
182 define i16 @v_extract_v128i16_varidx(ptr addrspace(1) %ptr, i32 %idx) {
183 ; GCN-LABEL: v_extract_v128i16_varidx:
184 ; GCN:       ; %bb.0:
185 ; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
186 ; GCN-NEXT:    s_mov_b32 s4, s33
187 ; GCN-NEXT:    s_add_i32 s33, s32, 0x3fc0
188 ; GCN-NEXT:    s_and_b32 s33, s33, 0xffffc000
189 ; GCN-NEXT:    buffer_store_dword v40, off, s[0:3], s33 offset:60 ; 4-byte Folded Spill
190 ; GCN-NEXT:    buffer_store_dword v41, off, s[0:3], s33 offset:56 ; 4-byte Folded Spill
191 ; GCN-NEXT:    buffer_store_dword v42, off, s[0:3], s33 offset:52 ; 4-byte Folded Spill
192 ; GCN-NEXT:    buffer_store_dword v43, off, s[0:3], s33 offset:48 ; 4-byte Folded Spill
193 ; GCN-NEXT:    buffer_store_dword v44, off, s[0:3], s33 offset:44 ; 4-byte Folded Spill
194 ; GCN-NEXT:    buffer_store_dword v45, off, s[0:3], s33 offset:40 ; 4-byte Folded Spill
195 ; GCN-NEXT:    buffer_store_dword v46, off, s[0:3], s33 offset:36 ; 4-byte Folded Spill
196 ; GCN-NEXT:    buffer_store_dword v47, off, s[0:3], s33 offset:32 ; 4-byte Folded Spill
197 ; GCN-NEXT:    buffer_store_dword v56, off, s[0:3], s33 offset:28 ; 4-byte Folded Spill
198 ; GCN-NEXT:    buffer_store_dword v57, off, s[0:3], s33 offset:24 ; 4-byte Folded Spill
199 ; GCN-NEXT:    buffer_store_dword v58, off, s[0:3], s33 offset:20 ; 4-byte Folded Spill
200 ; GCN-NEXT:    buffer_store_dword v59, off, s[0:3], s33 offset:16 ; 4-byte Folded Spill
201 ; GCN-NEXT:    buffer_store_dword v60, off, s[0:3], s33 offset:12 ; 4-byte Folded Spill
202 ; GCN-NEXT:    buffer_store_dword v61, off, s[0:3], s33 offset:8 ; 4-byte Folded Spill
203 ; GCN-NEXT:    buffer_store_dword v62, off, s[0:3], s33 offset:4 ; 4-byte Folded Spill
204 ; GCN-NEXT:    buffer_store_dword v63, off, s[0:3], s33 ; 4-byte Folded Spill
205 ; GCN-NEXT:    v_mov_b32_e32 v6, v2
206 ; GCN-NEXT:    global_load_dwordx4 v[2:5], v[0:1], off
207 ; GCN-NEXT:    global_load_dwordx4 v[16:19], v[0:1], off offset:16
208 ; GCN-NEXT:    global_load_dwordx4 v[56:59], v[0:1], off offset:32
209 ; GCN-NEXT:    global_load_dwordx4 v[48:51], v[0:1], off offset:48
210 ; GCN-NEXT:    global_load_dwordx4 v[20:23], v[0:1], off offset:64
211 ; GCN-NEXT:    global_load_dwordx4 v[44:47], v[0:1], off offset:80
212 ; GCN-NEXT:    global_load_dwordx4 v[40:43], v[0:1], off offset:96
213 ; GCN-NEXT:    global_load_dwordx4 v[60:63], v[0:1], off offset:112
214 ; GCN-NEXT:    global_load_dwordx4 v[36:39], v[0:1], off offset:128
215 ; GCN-NEXT:    global_load_dwordx4 v[32:35], v[0:1], off offset:144
216 ; GCN-NEXT:    global_load_dwordx4 v[28:31], v[0:1], off offset:160
217 ; GCN-NEXT:    global_load_dwordx4 v[52:55], v[0:1], off offset:176
218 ; GCN-NEXT:    global_load_dwordx4 v[24:27], v[0:1], off offset:192
219 ; GCN-NEXT:    global_load_dwordx4 v[7:10], v[0:1], off offset:208
220 ; GCN-NEXT:    s_add_i32 s32, s32, 0x10000
221 ; GCN-NEXT:    s_add_i32 s32, s32, 0xffff0000
222 ; GCN-NEXT:    s_waitcnt vmcnt(0)
223 ; GCN-NEXT:    buffer_store_dword v3, off, s[0:3], s33 offset:512 ; 4-byte Folded Spill
224 ; GCN-NEXT:    s_waitcnt vmcnt(0)
225 ; GCN-NEXT:    buffer_store_dword v4, off, s[0:3], s33 offset:516 ; 4-byte Folded Spill
226 ; GCN-NEXT:    buffer_store_dword v5, off, s[0:3], s33 offset:520 ; 4-byte Folded Spill
227 ; GCN-NEXT:    buffer_store_dword v6, off, s[0:3], s33 offset:524 ; 4-byte Folded Spill
228 ; GCN-NEXT:    buffer_store_dword v7, off, s[0:3], s33 offset:528 ; 4-byte Folded Spill
229 ; GCN-NEXT:    buffer_store_dword v8, off, s[0:3], s33 offset:532 ; 4-byte Folded Spill
230 ; GCN-NEXT:    buffer_store_dword v9, off, s[0:3], s33 offset:536 ; 4-byte Folded Spill
231 ; GCN-NEXT:    buffer_store_dword v10, off, s[0:3], s33 offset:540 ; 4-byte Folded Spill
232 ; GCN-NEXT:    buffer_store_dword v11, off, s[0:3], s33 offset:544 ; 4-byte Folded Spill
233 ; GCN-NEXT:    buffer_store_dword v12, off, s[0:3], s33 offset:548 ; 4-byte Folded Spill
234 ; GCN-NEXT:    buffer_store_dword v13, off, s[0:3], s33 offset:552 ; 4-byte Folded Spill
235 ; GCN-NEXT:    buffer_store_dword v14, off, s[0:3], s33 offset:556 ; 4-byte Folded Spill
236 ; GCN-NEXT:    buffer_store_dword v15, off, s[0:3], s33 offset:560 ; 4-byte Folded Spill
237 ; GCN-NEXT:    buffer_store_dword v16, off, s[0:3], s33 offset:564 ; 4-byte Folded Spill
238 ; GCN-NEXT:    buffer_store_dword v17, off, s[0:3], s33 offset:568 ; 4-byte Folded Spill
239 ; GCN-NEXT:    buffer_store_dword v18, off, s[0:3], s33 offset:572 ; 4-byte Folded Spill
240 ; GCN-NEXT:    global_load_dwordx4 v[8:11], v[0:1], off offset:224
241 ; GCN-NEXT:    global_load_dwordx4 v[12:15], v[0:1], off offset:240
242 ; GCN-NEXT:    v_lshrrev_b32_e64 v1, 6, s33
243 ; GCN-NEXT:    v_add_u32_e32 v1, 0x100, v1
244 ; GCN-NEXT:    buffer_store_dword v2, off, s[0:3], s33 offset:256
245 ; GCN-NEXT:    buffer_store_dword v3, off, s[0:3], s33 offset:260
246 ; GCN-NEXT:    buffer_store_dword v4, off, s[0:3], s33 offset:264
247 ; GCN-NEXT:    buffer_store_dword v5, off, s[0:3], s33 offset:268
248 ; GCN-NEXT:    buffer_store_dword v16, off, s[0:3], s33 offset:272
249 ; GCN-NEXT:    buffer_store_dword v17, off, s[0:3], s33 offset:276
250 ; GCN-NEXT:    buffer_store_dword v18, off, s[0:3], s33 offset:280
251 ; GCN-NEXT:    buffer_store_dword v19, off, s[0:3], s33 offset:284
252 ; GCN-NEXT:    buffer_store_dword v56, off, s[0:3], s33 offset:288
253 ; GCN-NEXT:    buffer_store_dword v57, off, s[0:3], s33 offset:292
254 ; GCN-NEXT:    buffer_store_dword v58, off, s[0:3], s33 offset:296
255 ; GCN-NEXT:    buffer_store_dword v59, off, s[0:3], s33 offset:300
256 ; GCN-NEXT:    buffer_store_dword v48, off, s[0:3], s33 offset:304
257 ; GCN-NEXT:    buffer_store_dword v49, off, s[0:3], s33 offset:308
258 ; GCN-NEXT:    buffer_store_dword v50, off, s[0:3], s33 offset:312
259 ; GCN-NEXT:    buffer_store_dword v51, off, s[0:3], s33 offset:316
260 ; GCN-NEXT:    buffer_store_dword v20, off, s[0:3], s33 offset:320
261 ; GCN-NEXT:    buffer_store_dword v21, off, s[0:3], s33 offset:324
262 ; GCN-NEXT:    buffer_store_dword v22, off, s[0:3], s33 offset:328
263 ; GCN-NEXT:    buffer_store_dword v23, off, s[0:3], s33 offset:332
264 ; GCN-NEXT:    buffer_store_dword v44, off, s[0:3], s33 offset:336
265 ; GCN-NEXT:    buffer_store_dword v45, off, s[0:3], s33 offset:340
266 ; GCN-NEXT:    buffer_store_dword v46, off, s[0:3], s33 offset:344
267 ; GCN-NEXT:    buffer_store_dword v47, off, s[0:3], s33 offset:348
268 ; GCN-NEXT:    buffer_store_dword v40, off, s[0:3], s33 offset:352
269 ; GCN-NEXT:    buffer_store_dword v41, off, s[0:3], s33 offset:356
270 ; GCN-NEXT:    buffer_store_dword v42, off, s[0:3], s33 offset:360
271 ; GCN-NEXT:    buffer_store_dword v43, off, s[0:3], s33 offset:364
272 ; GCN-NEXT:    buffer_store_dword v60, off, s[0:3], s33 offset:368
273 ; GCN-NEXT:    buffer_store_dword v61, off, s[0:3], s33 offset:372
274 ; GCN-NEXT:    buffer_store_dword v62, off, s[0:3], s33 offset:376
275 ; GCN-NEXT:    buffer_store_dword v63, off, s[0:3], s33 offset:380
276 ; GCN-NEXT:    buffer_store_dword v36, off, s[0:3], s33 offset:384
277 ; GCN-NEXT:    buffer_store_dword v37, off, s[0:3], s33 offset:388
278 ; GCN-NEXT:    buffer_store_dword v38, off, s[0:3], s33 offset:392
279 ; GCN-NEXT:    buffer_store_dword v39, off, s[0:3], s33 offset:396
280 ; GCN-NEXT:    buffer_store_dword v32, off, s[0:3], s33 offset:400
281 ; GCN-NEXT:    buffer_store_dword v33, off, s[0:3], s33 offset:404
282 ; GCN-NEXT:    buffer_store_dword v34, off, s[0:3], s33 offset:408
283 ; GCN-NEXT:    buffer_store_dword v35, off, s[0:3], s33 offset:412
284 ; GCN-NEXT:    buffer_store_dword v28, off, s[0:3], s33 offset:416
285 ; GCN-NEXT:    buffer_store_dword v29, off, s[0:3], s33 offset:420
286 ; GCN-NEXT:    buffer_store_dword v30, off, s[0:3], s33 offset:424
287 ; GCN-NEXT:    buffer_store_dword v31, off, s[0:3], s33 offset:428
288 ; GCN-NEXT:    buffer_store_dword v52, off, s[0:3], s33 offset:432
289 ; GCN-NEXT:    buffer_store_dword v53, off, s[0:3], s33 offset:436
290 ; GCN-NEXT:    buffer_store_dword v54, off, s[0:3], s33 offset:440
291 ; GCN-NEXT:    buffer_store_dword v55, off, s[0:3], s33 offset:444
292 ; GCN-NEXT:    buffer_store_dword v24, off, s[0:3], s33 offset:448
293 ; GCN-NEXT:    buffer_store_dword v25, off, s[0:3], s33 offset:452
294 ; GCN-NEXT:    buffer_store_dword v26, off, s[0:3], s33 offset:456
295 ; GCN-NEXT:    buffer_store_dword v27, off, s[0:3], s33 offset:460
296 ; GCN-NEXT:    buffer_load_dword v16, off, s[0:3], s33 offset:512 ; 4-byte Folded Reload
297 ; GCN-NEXT:    buffer_load_dword v17, off, s[0:3], s33 offset:516 ; 4-byte Folded Reload
298 ; GCN-NEXT:    buffer_load_dword v18, off, s[0:3], s33 offset:520 ; 4-byte Folded Reload
299 ; GCN-NEXT:    buffer_load_dword v19, off, s[0:3], s33 offset:524 ; 4-byte Folded Reload
300 ; GCN-NEXT:    buffer_load_dword v20, off, s[0:3], s33 offset:528 ; 4-byte Folded Reload
301 ; GCN-NEXT:    buffer_load_dword v21, off, s[0:3], s33 offset:532 ; 4-byte Folded Reload
302 ; GCN-NEXT:    buffer_load_dword v22, off, s[0:3], s33 offset:536 ; 4-byte Folded Reload
303 ; GCN-NEXT:    buffer_load_dword v23, off, s[0:3], s33 offset:540 ; 4-byte Folded Reload
304 ; GCN-NEXT:    buffer_load_dword v24, off, s[0:3], s33 offset:544 ; 4-byte Folded Reload
305 ; GCN-NEXT:    buffer_load_dword v25, off, s[0:3], s33 offset:548 ; 4-byte Folded Reload
306 ; GCN-NEXT:    buffer_load_dword v26, off, s[0:3], s33 offset:552 ; 4-byte Folded Reload
307 ; GCN-NEXT:    buffer_load_dword v27, off, s[0:3], s33 offset:556 ; 4-byte Folded Reload
308 ; GCN-NEXT:    buffer_load_dword v28, off, s[0:3], s33 offset:560 ; 4-byte Folded Reload
309 ; GCN-NEXT:    buffer_load_dword v29, off, s[0:3], s33 offset:564 ; 4-byte Folded Reload
310 ; GCN-NEXT:    buffer_load_dword v30, off, s[0:3], s33 offset:568 ; 4-byte Folded Reload
311 ; GCN-NEXT:    buffer_load_dword v31, off, s[0:3], s33 offset:572 ; 4-byte Folded Reload
312 ; GCN-NEXT:    v_bfe_u32 v0, v6, 1, 6
313 ; GCN-NEXT:    v_lshlrev_b32_e32 v0, 2, v0
314 ; GCN-NEXT:    v_add_u32_e32 v0, v1, v0
315 ; GCN-NEXT:    v_and_b32_e32 v1, 1, v6
316 ; GCN-NEXT:    v_lshlrev_b32_e32 v1, 4, v1
317 ; GCN-NEXT:    s_waitcnt vmcnt(0)
318 ; GCN-NEXT:    v_mov_b32_e32 v16, v20
319 ; GCN-NEXT:    v_mov_b32_e32 v17, v21
320 ; GCN-NEXT:    v_mov_b32_e32 v18, v22
321 ; GCN-NEXT:    v_mov_b32_e32 v19, v23
322 ; GCN-NEXT:    buffer_store_dword v16, off, s[0:3], s33 offset:464
323 ; GCN-NEXT:    buffer_store_dword v17, off, s[0:3], s33 offset:468
324 ; GCN-NEXT:    buffer_store_dword v18, off, s[0:3], s33 offset:472
325 ; GCN-NEXT:    buffer_store_dword v19, off, s[0:3], s33 offset:476
326 ; GCN-NEXT:    buffer_store_dword v8, off, s[0:3], s33 offset:480
327 ; GCN-NEXT:    buffer_store_dword v9, off, s[0:3], s33 offset:484
328 ; GCN-NEXT:    buffer_store_dword v10, off, s[0:3], s33 offset:488
329 ; GCN-NEXT:    buffer_store_dword v11, off, s[0:3], s33 offset:492
330 ; GCN-NEXT:    buffer_store_dword v12, off, s[0:3], s33 offset:496
331 ; GCN-NEXT:    buffer_store_dword v13, off, s[0:3], s33 offset:500
332 ; GCN-NEXT:    buffer_store_dword v14, off, s[0:3], s33 offset:504
333 ; GCN-NEXT:    buffer_store_dword v15, off, s[0:3], s33 offset:508
334 ; GCN-NEXT:    buffer_load_dword v0, v0, s[0:3], 0 offen
335 ; GCN-NEXT:    buffer_load_dword v63, off, s[0:3], s33 ; 4-byte Folded Reload
336 ; GCN-NEXT:    buffer_load_dword v62, off, s[0:3], s33 offset:4 ; 4-byte Folded Reload
337 ; GCN-NEXT:    buffer_load_dword v61, off, s[0:3], s33 offset:8 ; 4-byte Folded Reload
338 ; GCN-NEXT:    buffer_load_dword v60, off, s[0:3], s33 offset:12 ; 4-byte Folded Reload
339 ; GCN-NEXT:    buffer_load_dword v59, off, s[0:3], s33 offset:16 ; 4-byte Folded Reload
340 ; GCN-NEXT:    buffer_load_dword v58, off, s[0:3], s33 offset:20 ; 4-byte Folded Reload
341 ; GCN-NEXT:    buffer_load_dword v57, off, s[0:3], s33 offset:24 ; 4-byte Folded Reload
342 ; GCN-NEXT:    buffer_load_dword v56, off, s[0:3], s33 offset:28 ; 4-byte Folded Reload
343 ; GCN-NEXT:    buffer_load_dword v47, off, s[0:3], s33 offset:32 ; 4-byte Folded Reload
344 ; GCN-NEXT:    buffer_load_dword v46, off, s[0:3], s33 offset:36 ; 4-byte Folded Reload
345 ; GCN-NEXT:    buffer_load_dword v45, off, s[0:3], s33 offset:40 ; 4-byte Folded Reload
346 ; GCN-NEXT:    buffer_load_dword v44, off, s[0:3], s33 offset:44 ; 4-byte Folded Reload
347 ; GCN-NEXT:    buffer_load_dword v43, off, s[0:3], s33 offset:48 ; 4-byte Folded Reload
348 ; GCN-NEXT:    buffer_load_dword v42, off, s[0:3], s33 offset:52 ; 4-byte Folded Reload
349 ; GCN-NEXT:    buffer_load_dword v41, off, s[0:3], s33 offset:56 ; 4-byte Folded Reload
350 ; GCN-NEXT:    buffer_load_dword v40, off, s[0:3], s33 offset:60 ; 4-byte Folded Reload
351 ; GCN-NEXT:    s_mov_b32 s33, s4
352 ; GCN-NEXT:    s_waitcnt vmcnt(16)
353 ; GCN-NEXT:    v_lshrrev_b32_e32 v0, v1, v0
354 ; GCN-NEXT:    s_waitcnt vmcnt(0)
355 ; GCN-NEXT:    s_setpc_b64 s[30:31]
356   %vec = load <128 x i16>, ptr addrspace(1) %ptr
357   %elt = extractelement <128 x i16> %vec, i32 %idx
358   ret i16 %elt
361 define i64 @v_extract_v32i64_varidx(ptr addrspace(1) %ptr, i32 %idx) {
362 ; GCN-LABEL: v_extract_v32i64_varidx:
363 ; GCN:       ; %bb.0:
364 ; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
365 ; GCN-NEXT:    s_mov_b32 s4, s33
366 ; GCN-NEXT:    s_add_i32 s33, s32, 0x3fc0
367 ; GCN-NEXT:    s_and_b32 s33, s33, 0xffffc000
368 ; GCN-NEXT:    buffer_store_dword v40, off, s[0:3], s33 offset:60 ; 4-byte Folded Spill
369 ; GCN-NEXT:    buffer_store_dword v41, off, s[0:3], s33 offset:56 ; 4-byte Folded Spill
370 ; GCN-NEXT:    buffer_store_dword v42, off, s[0:3], s33 offset:52 ; 4-byte Folded Spill
371 ; GCN-NEXT:    buffer_store_dword v43, off, s[0:3], s33 offset:48 ; 4-byte Folded Spill
372 ; GCN-NEXT:    buffer_store_dword v44, off, s[0:3], s33 offset:44 ; 4-byte Folded Spill
373 ; GCN-NEXT:    buffer_store_dword v45, off, s[0:3], s33 offset:40 ; 4-byte Folded Spill
374 ; GCN-NEXT:    buffer_store_dword v46, off, s[0:3], s33 offset:36 ; 4-byte Folded Spill
375 ; GCN-NEXT:    buffer_store_dword v47, off, s[0:3], s33 offset:32 ; 4-byte Folded Spill
376 ; GCN-NEXT:    buffer_store_dword v56, off, s[0:3], s33 offset:28 ; 4-byte Folded Spill
377 ; GCN-NEXT:    buffer_store_dword v57, off, s[0:3], s33 offset:24 ; 4-byte Folded Spill
378 ; GCN-NEXT:    buffer_store_dword v58, off, s[0:3], s33 offset:20 ; 4-byte Folded Spill
379 ; GCN-NEXT:    buffer_store_dword v59, off, s[0:3], s33 offset:16 ; 4-byte Folded Spill
380 ; GCN-NEXT:    buffer_store_dword v60, off, s[0:3], s33 offset:12 ; 4-byte Folded Spill
381 ; GCN-NEXT:    buffer_store_dword v61, off, s[0:3], s33 offset:8 ; 4-byte Folded Spill
382 ; GCN-NEXT:    buffer_store_dword v62, off, s[0:3], s33 offset:4 ; 4-byte Folded Spill
383 ; GCN-NEXT:    buffer_store_dword v63, off, s[0:3], s33 ; 4-byte Folded Spill
384 ; GCN-NEXT:    v_mov_b32_e32 v6, v2
385 ; GCN-NEXT:    global_load_dwordx4 v[2:5], v[0:1], off
386 ; GCN-NEXT:    global_load_dwordx4 v[16:19], v[0:1], off offset:16
387 ; GCN-NEXT:    global_load_dwordx4 v[56:59], v[0:1], off offset:32
388 ; GCN-NEXT:    global_load_dwordx4 v[48:51], v[0:1], off offset:48
389 ; GCN-NEXT:    global_load_dwordx4 v[20:23], v[0:1], off offset:64
390 ; GCN-NEXT:    global_load_dwordx4 v[44:47], v[0:1], off offset:80
391 ; GCN-NEXT:    global_load_dwordx4 v[40:43], v[0:1], off offset:96
392 ; GCN-NEXT:    global_load_dwordx4 v[60:63], v[0:1], off offset:112
393 ; GCN-NEXT:    global_load_dwordx4 v[36:39], v[0:1], off offset:128
394 ; GCN-NEXT:    global_load_dwordx4 v[32:35], v[0:1], off offset:144
395 ; GCN-NEXT:    global_load_dwordx4 v[28:31], v[0:1], off offset:160
396 ; GCN-NEXT:    global_load_dwordx4 v[52:55], v[0:1], off offset:176
397 ; GCN-NEXT:    global_load_dwordx4 v[24:27], v[0:1], off offset:192
398 ; GCN-NEXT:    global_load_dwordx4 v[7:10], v[0:1], off offset:208
399 ; GCN-NEXT:    s_add_i32 s32, s32, 0x10000
400 ; GCN-NEXT:    s_add_i32 s32, s32, 0xffff0000
401 ; GCN-NEXT:    s_waitcnt vmcnt(0)
402 ; GCN-NEXT:    buffer_store_dword v3, off, s[0:3], s33 offset:512 ; 4-byte Folded Spill
403 ; GCN-NEXT:    s_waitcnt vmcnt(0)
404 ; GCN-NEXT:    buffer_store_dword v4, off, s[0:3], s33 offset:516 ; 4-byte Folded Spill
405 ; GCN-NEXT:    buffer_store_dword v5, off, s[0:3], s33 offset:520 ; 4-byte Folded Spill
406 ; GCN-NEXT:    buffer_store_dword v6, off, s[0:3], s33 offset:524 ; 4-byte Folded Spill
407 ; GCN-NEXT:    buffer_store_dword v7, off, s[0:3], s33 offset:528 ; 4-byte Folded Spill
408 ; GCN-NEXT:    buffer_store_dword v8, off, s[0:3], s33 offset:532 ; 4-byte Folded Spill
409 ; GCN-NEXT:    buffer_store_dword v9, off, s[0:3], s33 offset:536 ; 4-byte Folded Spill
410 ; GCN-NEXT:    buffer_store_dword v10, off, s[0:3], s33 offset:540 ; 4-byte Folded Spill
411 ; GCN-NEXT:    buffer_store_dword v11, off, s[0:3], s33 offset:544 ; 4-byte Folded Spill
412 ; GCN-NEXT:    buffer_store_dword v12, off, s[0:3], s33 offset:548 ; 4-byte Folded Spill
413 ; GCN-NEXT:    buffer_store_dword v13, off, s[0:3], s33 offset:552 ; 4-byte Folded Spill
414 ; GCN-NEXT:    buffer_store_dword v14, off, s[0:3], s33 offset:556 ; 4-byte Folded Spill
415 ; GCN-NEXT:    buffer_store_dword v15, off, s[0:3], s33 offset:560 ; 4-byte Folded Spill
416 ; GCN-NEXT:    buffer_store_dword v16, off, s[0:3], s33 offset:564 ; 4-byte Folded Spill
417 ; GCN-NEXT:    buffer_store_dword v17, off, s[0:3], s33 offset:568 ; 4-byte Folded Spill
418 ; GCN-NEXT:    buffer_store_dword v18, off, s[0:3], s33 offset:572 ; 4-byte Folded Spill
419 ; GCN-NEXT:    global_load_dwordx4 v[8:11], v[0:1], off offset:224
420 ; GCN-NEXT:    global_load_dwordx4 v[12:15], v[0:1], off offset:240
421 ; GCN-NEXT:    buffer_store_dword v2, off, s[0:3], s33 offset:256
422 ; GCN-NEXT:    buffer_store_dword v3, off, s[0:3], s33 offset:260
423 ; GCN-NEXT:    buffer_store_dword v4, off, s[0:3], s33 offset:264
424 ; GCN-NEXT:    buffer_store_dword v5, off, s[0:3], s33 offset:268
425 ; GCN-NEXT:    buffer_store_dword v16, off, s[0:3], s33 offset:272
426 ; GCN-NEXT:    buffer_store_dword v17, off, s[0:3], s33 offset:276
427 ; GCN-NEXT:    buffer_store_dword v18, off, s[0:3], s33 offset:280
428 ; GCN-NEXT:    buffer_store_dword v19, off, s[0:3], s33 offset:284
429 ; GCN-NEXT:    buffer_store_dword v56, off, s[0:3], s33 offset:288
430 ; GCN-NEXT:    buffer_store_dword v57, off, s[0:3], s33 offset:292
431 ; GCN-NEXT:    buffer_store_dword v58, off, s[0:3], s33 offset:296
432 ; GCN-NEXT:    buffer_store_dword v59, off, s[0:3], s33 offset:300
433 ; GCN-NEXT:    buffer_store_dword v48, off, s[0:3], s33 offset:304
434 ; GCN-NEXT:    buffer_store_dword v49, off, s[0:3], s33 offset:308
435 ; GCN-NEXT:    buffer_store_dword v50, off, s[0:3], s33 offset:312
436 ; GCN-NEXT:    buffer_store_dword v51, off, s[0:3], s33 offset:316
437 ; GCN-NEXT:    buffer_store_dword v20, off, s[0:3], s33 offset:320
438 ; GCN-NEXT:    buffer_store_dword v21, off, s[0:3], s33 offset:324
439 ; GCN-NEXT:    buffer_store_dword v22, off, s[0:3], s33 offset:328
440 ; GCN-NEXT:    buffer_store_dword v23, off, s[0:3], s33 offset:332
441 ; GCN-NEXT:    buffer_store_dword v44, off, s[0:3], s33 offset:336
442 ; GCN-NEXT:    buffer_store_dword v45, off, s[0:3], s33 offset:340
443 ; GCN-NEXT:    buffer_store_dword v46, off, s[0:3], s33 offset:344
444 ; GCN-NEXT:    buffer_store_dword v47, off, s[0:3], s33 offset:348
445 ; GCN-NEXT:    buffer_store_dword v40, off, s[0:3], s33 offset:352
446 ; GCN-NEXT:    buffer_store_dword v41, off, s[0:3], s33 offset:356
447 ; GCN-NEXT:    buffer_store_dword v42, off, s[0:3], s33 offset:360
448 ; GCN-NEXT:    buffer_store_dword v43, off, s[0:3], s33 offset:364
449 ; GCN-NEXT:    buffer_store_dword v60, off, s[0:3], s33 offset:368
450 ; GCN-NEXT:    buffer_store_dword v61, off, s[0:3], s33 offset:372
451 ; GCN-NEXT:    buffer_store_dword v62, off, s[0:3], s33 offset:376
452 ; GCN-NEXT:    buffer_store_dword v63, off, s[0:3], s33 offset:380
453 ; GCN-NEXT:    buffer_store_dword v36, off, s[0:3], s33 offset:384
454 ; GCN-NEXT:    buffer_store_dword v37, off, s[0:3], s33 offset:388
455 ; GCN-NEXT:    buffer_store_dword v38, off, s[0:3], s33 offset:392
456 ; GCN-NEXT:    buffer_store_dword v39, off, s[0:3], s33 offset:396
457 ; GCN-NEXT:    buffer_store_dword v32, off, s[0:3], s33 offset:400
458 ; GCN-NEXT:    buffer_store_dword v33, off, s[0:3], s33 offset:404
459 ; GCN-NEXT:    buffer_store_dword v34, off, s[0:3], s33 offset:408
460 ; GCN-NEXT:    buffer_store_dword v35, off, s[0:3], s33 offset:412
461 ; GCN-NEXT:    buffer_store_dword v28, off, s[0:3], s33 offset:416
462 ; GCN-NEXT:    buffer_store_dword v29, off, s[0:3], s33 offset:420
463 ; GCN-NEXT:    buffer_store_dword v30, off, s[0:3], s33 offset:424
464 ; GCN-NEXT:    buffer_store_dword v31, off, s[0:3], s33 offset:428
465 ; GCN-NEXT:    buffer_store_dword v52, off, s[0:3], s33 offset:432
466 ; GCN-NEXT:    buffer_store_dword v53, off, s[0:3], s33 offset:436
467 ; GCN-NEXT:    buffer_store_dword v54, off, s[0:3], s33 offset:440
468 ; GCN-NEXT:    buffer_store_dword v55, off, s[0:3], s33 offset:444
469 ; GCN-NEXT:    buffer_store_dword v24, off, s[0:3], s33 offset:448
470 ; GCN-NEXT:    buffer_store_dword v25, off, s[0:3], s33 offset:452
471 ; GCN-NEXT:    buffer_store_dword v26, off, s[0:3], s33 offset:456
472 ; GCN-NEXT:    buffer_store_dword v27, off, s[0:3], s33 offset:460
473 ; GCN-NEXT:    buffer_load_dword v16, off, s[0:3], s33 offset:512 ; 4-byte Folded Reload
474 ; GCN-NEXT:    buffer_load_dword v17, off, s[0:3], s33 offset:516 ; 4-byte Folded Reload
475 ; GCN-NEXT:    buffer_load_dword v18, off, s[0:3], s33 offset:520 ; 4-byte Folded Reload
476 ; GCN-NEXT:    buffer_load_dword v19, off, s[0:3], s33 offset:524 ; 4-byte Folded Reload
477 ; GCN-NEXT:    buffer_load_dword v20, off, s[0:3], s33 offset:528 ; 4-byte Folded Reload
478 ; GCN-NEXT:    buffer_load_dword v21, off, s[0:3], s33 offset:532 ; 4-byte Folded Reload
479 ; GCN-NEXT:    buffer_load_dword v22, off, s[0:3], s33 offset:536 ; 4-byte Folded Reload
480 ; GCN-NEXT:    buffer_load_dword v23, off, s[0:3], s33 offset:540 ; 4-byte Folded Reload
481 ; GCN-NEXT:    buffer_load_dword v24, off, s[0:3], s33 offset:544 ; 4-byte Folded Reload
482 ; GCN-NEXT:    buffer_load_dword v25, off, s[0:3], s33 offset:548 ; 4-byte Folded Reload
483 ; GCN-NEXT:    buffer_load_dword v26, off, s[0:3], s33 offset:552 ; 4-byte Folded Reload
484 ; GCN-NEXT:    buffer_load_dword v27, off, s[0:3], s33 offset:556 ; 4-byte Folded Reload
485 ; GCN-NEXT:    buffer_load_dword v28, off, s[0:3], s33 offset:560 ; 4-byte Folded Reload
486 ; GCN-NEXT:    buffer_load_dword v29, off, s[0:3], s33 offset:564 ; 4-byte Folded Reload
487 ; GCN-NEXT:    buffer_load_dword v30, off, s[0:3], s33 offset:568 ; 4-byte Folded Reload
488 ; GCN-NEXT:    buffer_load_dword v31, off, s[0:3], s33 offset:572 ; 4-byte Folded Reload
489 ; GCN-NEXT:    v_and_b32_e32 v0, 31, v6
490 ; GCN-NEXT:    v_lshrrev_b32_e64 v2, 6, s33
491 ; GCN-NEXT:    v_lshlrev_b32_e32 v0, 3, v0
492 ; GCN-NEXT:    v_add_u32_e32 v2, 0x100, v2
493 ; GCN-NEXT:    v_add_u32_e32 v1, v2, v0
494 ; GCN-NEXT:    s_waitcnt vmcnt(0)
495 ; GCN-NEXT:    v_mov_b32_e32 v16, v20
496 ; GCN-NEXT:    v_mov_b32_e32 v17, v21
497 ; GCN-NEXT:    v_mov_b32_e32 v18, v22
498 ; GCN-NEXT:    v_mov_b32_e32 v19, v23
499 ; GCN-NEXT:    buffer_store_dword v16, off, s[0:3], s33 offset:464
500 ; GCN-NEXT:    buffer_store_dword v17, off, s[0:3], s33 offset:468
501 ; GCN-NEXT:    buffer_store_dword v18, off, s[0:3], s33 offset:472
502 ; GCN-NEXT:    buffer_store_dword v19, off, s[0:3], s33 offset:476
503 ; GCN-NEXT:    buffer_store_dword v8, off, s[0:3], s33 offset:480
504 ; GCN-NEXT:    buffer_store_dword v9, off, s[0:3], s33 offset:484
505 ; GCN-NEXT:    buffer_store_dword v10, off, s[0:3], s33 offset:488
506 ; GCN-NEXT:    buffer_store_dword v11, off, s[0:3], s33 offset:492
507 ; GCN-NEXT:    buffer_store_dword v12, off, s[0:3], s33 offset:496
508 ; GCN-NEXT:    buffer_store_dword v13, off, s[0:3], s33 offset:500
509 ; GCN-NEXT:    buffer_store_dword v14, off, s[0:3], s33 offset:504
510 ; GCN-NEXT:    buffer_store_dword v15, off, s[0:3], s33 offset:508
511 ; GCN-NEXT:    buffer_load_dword v0, v1, s[0:3], 0 offen
512 ; GCN-NEXT:    buffer_load_dword v1, v1, s[0:3], 0 offen offset:4
513 ; GCN-NEXT:    buffer_load_dword v63, off, s[0:3], s33 ; 4-byte Folded Reload
514 ; GCN-NEXT:    buffer_load_dword v62, off, s[0:3], s33 offset:4 ; 4-byte Folded Reload
515 ; GCN-NEXT:    buffer_load_dword v61, off, s[0:3], s33 offset:8 ; 4-byte Folded Reload
516 ; GCN-NEXT:    buffer_load_dword v60, off, s[0:3], s33 offset:12 ; 4-byte Folded Reload
517 ; GCN-NEXT:    buffer_load_dword v59, off, s[0:3], s33 offset:16 ; 4-byte Folded Reload
518 ; GCN-NEXT:    buffer_load_dword v58, off, s[0:3], s33 offset:20 ; 4-byte Folded Reload
519 ; GCN-NEXT:    buffer_load_dword v57, off, s[0:3], s33 offset:24 ; 4-byte Folded Reload
520 ; GCN-NEXT:    buffer_load_dword v56, off, s[0:3], s33 offset:28 ; 4-byte Folded Reload
521 ; GCN-NEXT:    buffer_load_dword v47, off, s[0:3], s33 offset:32 ; 4-byte Folded Reload
522 ; GCN-NEXT:    buffer_load_dword v46, off, s[0:3], s33 offset:36 ; 4-byte Folded Reload
523 ; GCN-NEXT:    buffer_load_dword v45, off, s[0:3], s33 offset:40 ; 4-byte Folded Reload
524 ; GCN-NEXT:    buffer_load_dword v44, off, s[0:3], s33 offset:44 ; 4-byte Folded Reload
525 ; GCN-NEXT:    buffer_load_dword v43, off, s[0:3], s33 offset:48 ; 4-byte Folded Reload
526 ; GCN-NEXT:    buffer_load_dword v42, off, s[0:3], s33 offset:52 ; 4-byte Folded Reload
527 ; GCN-NEXT:    buffer_load_dword v41, off, s[0:3], s33 offset:56 ; 4-byte Folded Reload
528 ; GCN-NEXT:    buffer_load_dword v40, off, s[0:3], s33 offset:60 ; 4-byte Folded Reload
529 ; GCN-NEXT:    s_mov_b32 s33, s4
530 ; GCN-NEXT:    s_waitcnt vmcnt(0)
531 ; GCN-NEXT:    s_setpc_b64 s[30:31]
532   %vec = load <32 x i64>, ptr addrspace(1) %ptr
533   %elt = extractelement <32 x i64> %vec, i32 %idx
534   ret i64 %elt