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
3
4; Check lowering of some large extractelement that use the stack
5; instead of register indexing.
6
7define i32 @v_extract_v64i32_varidx(<64 x i32> 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 s6, s33
12; GCN-NEXT:    s_add_u32 s33, s32, 0x3fc0
13; GCN-NEXT:    s_and_b32 s33, s33, 0xffffc000
14; GCN-NEXT:    v_add_co_u32_e32 v12, vcc, 64, v0
15; GCN-NEXT:    buffer_store_dword v40, off, s[0:3], s33 offset:48 ; 4-byte Folded Spill
16; GCN-NEXT:    buffer_store_dword v41, off, s[0:3], s33 offset:44 ; 4-byte Folded Spill
17; GCN-NEXT:    buffer_store_dword v42, off, s[0:3], s33 offset:40 ; 4-byte Folded Spill
18; GCN-NEXT:    buffer_store_dword v43, off, s[0:3], s33 offset:36 ; 4-byte Folded Spill
19; GCN-NEXT:    buffer_store_dword v44, off, s[0:3], s33 offset:32 ; 4-byte Folded Spill
20; GCN-NEXT:    buffer_store_dword v45, off, s[0:3], s33 offset:28 ; 4-byte Folded Spill
21; GCN-NEXT:    buffer_store_dword v46, off, s[0:3], s33 offset:24 ; 4-byte Folded Spill
22; GCN-NEXT:    buffer_store_dword v47, off, s[0:3], s33 offset:20 ; 4-byte Folded Spill
23; GCN-NEXT:    buffer_store_dword v56, off, s[0:3], s33 offset:16 ; 4-byte Folded Spill
24; GCN-NEXT:    buffer_store_dword v57, off, s[0:3], s33 offset:12 ; 4-byte Folded Spill
25; GCN-NEXT:    buffer_store_dword v58, off, s[0:3], s33 offset:8 ; 4-byte Folded Spill
26; GCN-NEXT:    buffer_store_dword v59, off, s[0:3], s33 offset:4 ; 4-byte Folded Spill
27; GCN-NEXT:    buffer_store_dword v60, off, s[0:3], s33 ; 4-byte Folded Spill
28; GCN-NEXT:    v_addc_co_u32_e32 v13, vcc, 0, v1, vcc
29; GCN-NEXT:    global_load_dwordx4 v[4:7], v[12:13], off offset:16
30; GCN-NEXT:    global_load_dwordx4 v[8:11], v[12:13], off offset:32
31; GCN-NEXT:    global_load_dwordx4 v[12:15], v[12:13], off offset:48
32; GCN-NEXT:    s_mov_b32 s5, 0
33; GCN-NEXT:    s_movk_i32 s4, 0x80
34; GCN-NEXT:    v_mov_b32_e32 v17, s5
35; GCN-NEXT:    v_mov_b32_e32 v16, s4
36; GCN-NEXT:    s_movk_i32 s4, 0xc0
37; GCN-NEXT:    s_add_u32 s32, s32, 0x10000
38; GCN-NEXT:    s_sub_u32 s32, s32, 0x10000
39; GCN-NEXT:    s_waitcnt vmcnt(0)
40; GCN-NEXT:    buffer_store_dword v0, off, s[0:3], s33 offset:576 ; 4-byte Folded Spill
41; GCN-NEXT:    s_waitcnt vmcnt(0)
42; GCN-NEXT:    buffer_store_dword v1, off, s[0:3], s33 offset:580 ; 4-byte Folded Spill
43; GCN-NEXT:    buffer_store_dword v2, off, s[0:3], s33 offset:584 ; 4-byte Folded Spill
44; GCN-NEXT:    buffer_store_dword v3, off, s[0:3], s33 offset:588 ; 4-byte Folded Spill
45; GCN-NEXT:    buffer_store_dword v4, off, s[0:3], s33 offset:592 ; 4-byte Folded Spill
46; GCN-NEXT:    buffer_store_dword v5, off, s[0:3], s33 offset:596 ; 4-byte Folded Spill
47; GCN-NEXT:    buffer_store_dword v6, off, s[0:3], s33 offset:600 ; 4-byte Folded Spill
48; GCN-NEXT:    buffer_store_dword v7, off, s[0:3], s33 offset:604 ; 4-byte Folded Spill
49; GCN-NEXT:    buffer_store_dword v8, off, s[0:3], s33 offset:608 ; 4-byte Folded Spill
50; GCN-NEXT:    buffer_store_dword v9, off, s[0:3], s33 offset:612 ; 4-byte Folded Spill
51; GCN-NEXT:    buffer_store_dword v10, off, s[0:3], s33 offset:616 ; 4-byte Folded Spill
52; GCN-NEXT:    buffer_store_dword v11, off, s[0:3], s33 offset:620 ; 4-byte Folded Spill
53; GCN-NEXT:    buffer_store_dword v12, off, s[0:3], s33 offset:624 ; 4-byte Folded Spill
54; GCN-NEXT:    buffer_store_dword v13, off, s[0:3], s33 offset:628 ; 4-byte Folded Spill
55; GCN-NEXT:    buffer_store_dword v14, off, s[0:3], s33 offset:632 ; 4-byte Folded Spill
56; GCN-NEXT:    buffer_store_dword v15, off, s[0:3], s33 offset:636 ; 4-byte Folded Spill
57; GCN-NEXT:    v_lshrrev_b32_e64 v3, 6, s33
58; GCN-NEXT:    v_add_u32_e32 v3, 0x100, v3
59; GCN-NEXT:    v_add_u32_e32 v60, 16, v3
60; GCN-NEXT:    v_add_co_u32_e32 v52, vcc, v0, v16
61; GCN-NEXT:    v_addc_co_u32_e32 v53, vcc, v1, v17, vcc
62; GCN-NEXT:    v_mov_b32_e32 v17, s5
63; GCN-NEXT:    v_mov_b32_e32 v16, s4
64; GCN-NEXT:    v_add_co_u32_e32 v56, vcc, v0, v16
65; GCN-NEXT:    v_addc_co_u32_e32 v57, vcc, v1, v17, vcc
66; GCN-NEXT:    global_load_dwordx4 v[16:19], v[0:1], off
67; GCN-NEXT:    global_load_dwordx4 v[20:23], v[0:1], off offset:16
68; GCN-NEXT:    global_load_dwordx4 v[24:27], v[0:1], off offset:32
69; GCN-NEXT:    global_load_dwordx4 v[28:31], v[0:1], off offset:48
70; GCN-NEXT:    global_load_dwordx4 v[32:35], v[0:1], off offset:64
71; GCN-NEXT:    global_load_dwordx4 v[36:39], v[0:1], off offset:128
72; GCN-NEXT:    global_load_dwordx4 v[40:43], v[0:1], off offset:192
73; GCN-NEXT:    global_load_dwordx4 v[44:47], v[52:53], off offset:16
74; GCN-NEXT:    global_load_dwordx4 v[48:51], v[52:53], off offset:32
75; GCN-NEXT:    global_load_dwordx4 v[52:55], v[52:53], off offset:48
76; GCN-NEXT:    global_load_dwordx4 v[12:15], v[56:57], off offset:16
77; GCN-NEXT:    v_add_u32_e32 v0, 20, v3
78; GCN-NEXT:    s_waitcnt vmcnt(0)
79; GCN-NEXT:    buffer_store_dword v8, off, s[0:3], s33 offset:640 ; 4-byte Folded Spill
80; GCN-NEXT:    s_waitcnt vmcnt(0)
81; GCN-NEXT:    buffer_store_dword v9, off, s[0:3], s33 offset:644 ; 4-byte Folded Spill
82; GCN-NEXT:    buffer_store_dword v10, off, s[0:3], s33 offset:648 ; 4-byte Folded Spill
83; GCN-NEXT:    buffer_store_dword v11, off, s[0:3], s33 offset:652 ; 4-byte Folded Spill
84; GCN-NEXT:    buffer_store_dword v12, off, s[0:3], s33 offset:656 ; 4-byte Folded Spill
85; GCN-NEXT:    buffer_store_dword v13, off, s[0:3], s33 offset:660 ; 4-byte Folded Spill
86; GCN-NEXT:    buffer_store_dword v14, off, s[0:3], s33 offset:664 ; 4-byte Folded Spill
87; GCN-NEXT:    buffer_store_dword v15, off, s[0:3], s33 offset:668 ; 4-byte Folded Spill
88; GCN-NEXT:    buffer_store_dword v16, off, s[0:3], s33 offset:672 ; 4-byte Folded Spill
89; GCN-NEXT:    buffer_store_dword v17, off, s[0:3], s33 offset:676 ; 4-byte Folded Spill
90; GCN-NEXT:    buffer_store_dword v18, off, s[0:3], s33 offset:680 ; 4-byte Folded Spill
91; GCN-NEXT:    buffer_store_dword v19, off, s[0:3], s33 offset:684 ; 4-byte Folded Spill
92; GCN-NEXT:    buffer_store_dword v20, off, s[0:3], s33 offset:688 ; 4-byte Folded Spill
93; GCN-NEXT:    buffer_store_dword v21, off, s[0:3], s33 offset:692 ; 4-byte Folded Spill
94; GCN-NEXT:    buffer_store_dword v22, off, s[0:3], s33 offset:696 ; 4-byte Folded Spill
95; GCN-NEXT:    buffer_store_dword v23, off, s[0:3], s33 offset:700 ; 4-byte Folded Spill
96; GCN-NEXT:    global_load_dwordx4 v[12:15], v[56:57], off offset:32
97; GCN-NEXT:    s_waitcnt vmcnt(0)
98; GCN-NEXT:    buffer_store_dword v4, off, s[0:3], s33 offset:512 ; 4-byte Folded Spill
99; GCN-NEXT:    s_waitcnt vmcnt(0)
100; GCN-NEXT:    buffer_store_dword v5, off, s[0:3], s33 offset:516 ; 4-byte Folded Spill
101; GCN-NEXT:    buffer_store_dword v6, off, s[0:3], s33 offset:520 ; 4-byte Folded Spill
102; GCN-NEXT:    buffer_store_dword v7, off, s[0:3], s33 offset:524 ; 4-byte Folded Spill
103; GCN-NEXT:    buffer_store_dword v8, off, s[0:3], s33 offset:528 ; 4-byte Folded Spill
104; GCN-NEXT:    buffer_store_dword v9, off, s[0:3], s33 offset:532 ; 4-byte Folded Spill
105; GCN-NEXT:    buffer_store_dword v10, off, s[0:3], s33 offset:536 ; 4-byte Folded Spill
106; GCN-NEXT:    buffer_store_dword v11, off, s[0:3], s33 offset:540 ; 4-byte Folded Spill
107; GCN-NEXT:    buffer_store_dword v12, off, s[0:3], s33 offset:544 ; 4-byte Folded Spill
108; GCN-NEXT:    buffer_store_dword v13, off, s[0:3], s33 offset:548 ; 4-byte Folded Spill
109; GCN-NEXT:    buffer_store_dword v14, off, s[0:3], s33 offset:552 ; 4-byte Folded Spill
110; GCN-NEXT:    buffer_store_dword v15, off, s[0:3], s33 offset:556 ; 4-byte Folded Spill
111; GCN-NEXT:    buffer_store_dword v16, off, s[0:3], s33 offset:560 ; 4-byte Folded Spill
112; GCN-NEXT:    buffer_store_dword v17, off, s[0:3], s33 offset:564 ; 4-byte Folded Spill
113; GCN-NEXT:    buffer_store_dword v18, off, s[0:3], s33 offset:568 ; 4-byte Folded Spill
114; GCN-NEXT:    buffer_store_dword v19, off, s[0:3], s33 offset:572 ; 4-byte Folded Spill
115; GCN-NEXT:    global_load_dwordx4 v[56:59], v[56:57], off offset:48
116; GCN-NEXT:    buffer_store_dword v21, v0, s[0:3], 0 offen
117; GCN-NEXT:    v_add_u32_e32 v0, 24, v3
118; GCN-NEXT:    buffer_store_dword v22, v0, s[0:3], 0 offen
119; GCN-NEXT:    v_add_u32_e32 v0, 28, v3
120; GCN-NEXT:    buffer_store_dword v23, v0, s[0:3], 0 offen
121; GCN-NEXT:    v_add_u32_e32 v0, 32, v3
122; GCN-NEXT:    buffer_store_dword v24, v0, s[0:3], 0 offen
123; GCN-NEXT:    v_add_u32_e32 v0, 36, v3
124; GCN-NEXT:    buffer_store_dword v25, v0, s[0:3], 0 offen
125; GCN-NEXT:    v_add_u32_e32 v0, 40, v3
126; GCN-NEXT:    buffer_store_dword v26, v0, s[0:3], 0 offen
127; GCN-NEXT:    v_add_u32_e32 v0, 44, v3
128; GCN-NEXT:    buffer_store_dword v27, v0, s[0:3], 0 offen
129; GCN-NEXT:    v_add_u32_e32 v0, 48, v3
130; GCN-NEXT:    buffer_store_dword v28, v0, s[0:3], 0 offen
131; GCN-NEXT:    v_add_u32_e32 v0, 52, v3
132; GCN-NEXT:    buffer_store_dword v29, v0, s[0:3], 0 offen
133; GCN-NEXT:    v_add_u32_e32 v0, 56, v3
134; GCN-NEXT:    buffer_store_dword v30, v0, s[0:3], 0 offen
135; GCN-NEXT:    v_add_u32_e32 v0, 60, v3
136; GCN-NEXT:    buffer_store_dword v31, v0, s[0:3], 0 offen
137; GCN-NEXT:    v_add_u32_e32 v0, 64, v3
138; GCN-NEXT:    buffer_store_dword v32, v0, s[0:3], 0 offen
139; GCN-NEXT:    v_add_u32_e32 v0, 0x44, v3
140; GCN-NEXT:    buffer_store_dword v33, v0, s[0:3], 0 offen
141; GCN-NEXT:    v_add_u32_e32 v0, 0x48, v3
142; GCN-NEXT:    buffer_store_dword v34, v0, s[0:3], 0 offen
143; GCN-NEXT:    v_add_u32_e32 v0, 0x4c, v3
144; GCN-NEXT:    buffer_store_dword v35, v0, s[0:3], 0 offen
145; GCN-NEXT:    v_add_u32_e32 v0, 0x50, v3
146; GCN-NEXT:    buffer_store_dword v20, v60, s[0:3], 0 offen
147; GCN-NEXT:    buffer_store_dword v4, v0, s[0:3], 0 offen
148; GCN-NEXT:    v_add_u32_e32 v0, 0x54, v3
149; GCN-NEXT:    buffer_store_dword v5, v0, s[0:3], 0 offen
150; GCN-NEXT:    v_add_u32_e32 v0, 0x58, v3
151; GCN-NEXT:    buffer_store_dword v6, v0, s[0:3], 0 offen
152; GCN-NEXT:    v_add_u32_e32 v0, 0x5c, v3
153; GCN-NEXT:    buffer_store_dword v7, v0, s[0:3], 0 offen
154; GCN-NEXT:    v_add_u32_e32 v0, 0x60, v3
155; GCN-NEXT:    buffer_store_dword v8, v0, s[0:3], 0 offen
156; GCN-NEXT:    v_add_u32_e32 v0, 0x64, v3
157; GCN-NEXT:    buffer_store_dword v9, v0, s[0:3], 0 offen
158; GCN-NEXT:    v_add_u32_e32 v0, 0x68, v3
159; GCN-NEXT:    buffer_store_dword v10, v0, s[0:3], 0 offen
160; GCN-NEXT:    v_add_u32_e32 v0, 0x6c, v3
161; GCN-NEXT:    buffer_store_dword v11, v0, s[0:3], 0 offen
162; GCN-NEXT:    buffer_load_dword v20, off, s[0:3], s33 offset:576 ; 4-byte Folded Reload
163; GCN-NEXT:    buffer_load_dword v21, off, s[0:3], s33 offset:580 ; 4-byte Folded Reload
164; GCN-NEXT:    buffer_load_dword v22, off, s[0:3], s33 offset:584 ; 4-byte Folded Reload
165; GCN-NEXT:    buffer_load_dword v23, off, s[0:3], s33 offset:588 ; 4-byte Folded Reload
166; GCN-NEXT:    buffer_load_dword v24, off, s[0:3], s33 offset:592 ; 4-byte Folded Reload
167; GCN-NEXT:    buffer_load_dword v25, off, s[0:3], s33 offset:596 ; 4-byte Folded Reload
168; GCN-NEXT:    buffer_load_dword v26, off, s[0:3], s33 offset:600 ; 4-byte Folded Reload
169; GCN-NEXT:    buffer_load_dword v27, off, s[0:3], s33 offset:604 ; 4-byte Folded Reload
170; GCN-NEXT:    buffer_load_dword v28, off, s[0:3], s33 offset:608 ; 4-byte Folded Reload
171; GCN-NEXT:    buffer_load_dword v29, off, s[0:3], s33 offset:612 ; 4-byte Folded Reload
172; GCN-NEXT:    buffer_load_dword v30, off, s[0:3], s33 offset:616 ; 4-byte Folded Reload
173; GCN-NEXT:    buffer_load_dword v31, off, s[0:3], s33 offset:620 ; 4-byte Folded Reload
174; GCN-NEXT:    buffer_load_dword v32, off, s[0:3], s33 offset:624 ; 4-byte Folded Reload
175; GCN-NEXT:    buffer_load_dword v33, off, s[0:3], s33 offset:628 ; 4-byte Folded Reload
176; GCN-NEXT:    buffer_load_dword v34, off, s[0:3], s33 offset:632 ; 4-byte Folded Reload
177; GCN-NEXT:    buffer_load_dword v35, off, s[0:3], s33 offset:636 ; 4-byte Folded Reload
178; GCN-NEXT:    v_add_u32_e32 v0, 0x70, v3
179; GCN-NEXT:    s_waitcnt vmcnt(0)
180; GCN-NEXT:    v_mov_b32_e32 v12, v32
181; GCN-NEXT:    buffer_store_dword v12, v0, s[0:3], 0 offen
182; GCN-NEXT:    v_mov_b32_e32 v13, v33
183; GCN-NEXT:    v_add_u32_e32 v0, 0x74, v3
184; GCN-NEXT:    buffer_store_dword v13, v0, s[0:3], 0 offen
185; GCN-NEXT:    v_mov_b32_e32 v14, v34
186; GCN-NEXT:    v_add_u32_e32 v0, 0x78, v3
187; GCN-NEXT:    buffer_store_dword v14, v0, s[0:3], 0 offen
188; GCN-NEXT:    v_mov_b32_e32 v15, v35
189; GCN-NEXT:    v_add_u32_e32 v0, 0x7c, v3
190; GCN-NEXT:    buffer_store_dword v15, v0, s[0:3], 0 offen
191; GCN-NEXT:    v_add_u32_e32 v0, 0x80, v3
192; GCN-NEXT:    buffer_store_dword v36, v0, s[0:3], 0 offen
193; GCN-NEXT:    v_add_u32_e32 v0, 0x84, v3
194; GCN-NEXT:    buffer_store_dword v37, v0, s[0:3], 0 offen
195; GCN-NEXT:    v_add_u32_e32 v0, 0x88, v3
196; GCN-NEXT:    buffer_store_dword v38, v0, s[0:3], 0 offen
197; GCN-NEXT:    v_add_u32_e32 v0, 0x8c, v3
198; GCN-NEXT:    buffer_store_dword v39, v0, s[0:3], 0 offen
199; GCN-NEXT:    v_add_u32_e32 v0, 0x90, v3
200; GCN-NEXT:    buffer_store_dword v44, v0, s[0:3], 0 offen
201; GCN-NEXT:    v_add_u32_e32 v0, 0x94, v3
202; GCN-NEXT:    buffer_store_dword v45, v0, s[0:3], 0 offen
203; GCN-NEXT:    v_add_u32_e32 v0, 0x98, v3
204; GCN-NEXT:    buffer_store_dword v46, v0, s[0:3], 0 offen
205; GCN-NEXT:    v_add_u32_e32 v0, 0x9c, v3
206; GCN-NEXT:    buffer_store_dword v47, v0, s[0:3], 0 offen
207; GCN-NEXT:    v_add_u32_e32 v0, 0xa0, v3
208; GCN-NEXT:    buffer_store_dword v48, v0, s[0:3], 0 offen
209; GCN-NEXT:    v_add_u32_e32 v0, 0xa4, v3
210; GCN-NEXT:    buffer_store_dword v49, v0, s[0:3], 0 offen
211; GCN-NEXT:    v_add_u32_e32 v0, 0xa8, v3
212; GCN-NEXT:    buffer_store_dword v50, v0, s[0:3], 0 offen
213; GCN-NEXT:    v_add_u32_e32 v0, 0xac, v3
214; GCN-NEXT:    buffer_store_dword v51, v0, s[0:3], 0 offen
215; GCN-NEXT:    v_add_u32_e32 v0, 0xb0, v3
216; GCN-NEXT:    buffer_store_dword v52, v0, s[0:3], 0 offen
217; GCN-NEXT:    v_add_u32_e32 v0, 0xb4, v3
218; GCN-NEXT:    buffer_store_dword v53, v0, s[0:3], 0 offen
219; GCN-NEXT:    v_add_u32_e32 v0, 0xb8, v3
220; GCN-NEXT:    buffer_store_dword v54, v0, s[0:3], 0 offen
221; GCN-NEXT:    v_add_u32_e32 v0, 0xbc, v3
222; GCN-NEXT:    buffer_store_dword v55, v0, s[0:3], 0 offen
223; GCN-NEXT:    v_add_u32_e32 v0, 0xc0, v3
224; GCN-NEXT:    buffer_store_dword v40, v0, s[0:3], 0 offen
225; GCN-NEXT:    v_add_u32_e32 v0, 0xc4, v3
226; GCN-NEXT:    buffer_store_dword v41, v0, s[0:3], 0 offen
227; GCN-NEXT:    v_add_u32_e32 v0, 0xc8, v3
228; GCN-NEXT:    buffer_store_dword v42, v0, s[0:3], 0 offen
229; GCN-NEXT:    v_add_u32_e32 v0, 0xcc, v3
230; GCN-NEXT:    buffer_store_dword v43, v0, s[0:3], 0 offen
231; GCN-NEXT:    v_add_u32_e32 v0, 4, v3
232; GCN-NEXT:    buffer_store_dword v17, v0, s[0:3], 0 offen
233; GCN-NEXT:    v_add_u32_e32 v0, 8, v3
234; GCN-NEXT:    buffer_store_dword v18, v0, s[0:3], 0 offen
235; GCN-NEXT:    v_add_u32_e32 v0, 12, v3
236; GCN-NEXT:    buffer_store_dword v19, v0, s[0:3], 0 offen
237; GCN-NEXT:    buffer_store_dword v16, off, s[0:3], s33 offset:256
238; GCN-NEXT:    buffer_load_dword v4, off, s[0:3], s33 offset:640 ; 4-byte Folded Reload
239; GCN-NEXT:    buffer_load_dword v5, off, s[0:3], s33 offset:644 ; 4-byte Folded Reload
240; GCN-NEXT:    buffer_load_dword v6, off, s[0:3], s33 offset:648 ; 4-byte Folded Reload
241; GCN-NEXT:    buffer_load_dword v7, off, s[0:3], s33 offset:652 ; 4-byte Folded Reload
242; GCN-NEXT:    buffer_load_dword v8, off, s[0:3], s33 offset:656 ; 4-byte Folded Reload
243; GCN-NEXT:    buffer_load_dword v9, off, s[0:3], s33 offset:660 ; 4-byte Folded Reload
244; GCN-NEXT:    buffer_load_dword v10, off, s[0:3], s33 offset:664 ; 4-byte Folded Reload
245; GCN-NEXT:    buffer_load_dword v11, off, s[0:3], s33 offset:668 ; 4-byte Folded Reload
246; GCN-NEXT:    buffer_load_dword v12, off, s[0:3], s33 offset:672 ; 4-byte Folded Reload
247; GCN-NEXT:    buffer_load_dword v13, off, s[0:3], s33 offset:676 ; 4-byte Folded Reload
248; GCN-NEXT:    buffer_load_dword v14, off, s[0:3], s33 offset:680 ; 4-byte Folded Reload
249; GCN-NEXT:    buffer_load_dword v15, off, s[0:3], s33 offset:684 ; 4-byte Folded Reload
250; GCN-NEXT:    buffer_load_dword v16, off, s[0:3], s33 offset:688 ; 4-byte Folded Reload
251; GCN-NEXT:    buffer_load_dword v17, off, s[0:3], s33 offset:692 ; 4-byte Folded Reload
252; GCN-NEXT:    buffer_load_dword v18, off, s[0:3], s33 offset:696 ; 4-byte Folded Reload
253; GCN-NEXT:    buffer_load_dword v19, off, s[0:3], s33 offset:700 ; 4-byte Folded Reload
254; GCN-NEXT:    v_add_u32_e32 v0, 0xd0, v3
255; GCN-NEXT:    s_waitcnt vmcnt(0)
256; GCN-NEXT:    v_mov_b32_e32 v4, v8
257; GCN-NEXT:    buffer_store_dword v4, v0, s[0:3], 0 offen
258; GCN-NEXT:    v_mov_b32_e32 v5, v9
259; GCN-NEXT:    v_add_u32_e32 v0, 0xd4, v3
260; GCN-NEXT:    buffer_store_dword v5, v0, s[0:3], 0 offen
261; GCN-NEXT:    v_mov_b32_e32 v6, v10
262; GCN-NEXT:    v_add_u32_e32 v0, 0xd8, v3
263; GCN-NEXT:    buffer_store_dword v6, v0, s[0:3], 0 offen
264; GCN-NEXT:    v_mov_b32_e32 v7, v11
265; GCN-NEXT:    v_add_u32_e32 v0, 0xdc, v3
266; GCN-NEXT:    buffer_store_dword v7, v0, s[0:3], 0 offen
267; GCN-NEXT:    buffer_load_dword v4, off, s[0:3], s33 offset:512 ; 4-byte Folded Reload
268; GCN-NEXT:    buffer_load_dword v5, off, s[0:3], s33 offset:516 ; 4-byte Folded Reload
269; GCN-NEXT:    buffer_load_dword v6, off, s[0:3], s33 offset:520 ; 4-byte Folded Reload
270; GCN-NEXT:    buffer_load_dword v7, off, s[0:3], s33 offset:524 ; 4-byte Folded Reload
271; GCN-NEXT:    buffer_load_dword v8, off, s[0:3], s33 offset:528 ; 4-byte Folded Reload
272; GCN-NEXT:    buffer_load_dword v9, off, s[0:3], s33 offset:532 ; 4-byte Folded Reload
273; GCN-NEXT:    buffer_load_dword v10, off, s[0:3], s33 offset:536 ; 4-byte Folded Reload
274; GCN-NEXT:    buffer_load_dword v11, off, s[0:3], s33 offset:540 ; 4-byte Folded Reload
275; GCN-NEXT:    buffer_load_dword v12, off, s[0:3], s33 offset:544 ; 4-byte Folded Reload
276; GCN-NEXT:    buffer_load_dword v13, off, s[0:3], s33 offset:548 ; 4-byte Folded Reload
277; GCN-NEXT:    buffer_load_dword v14, off, s[0:3], s33 offset:552 ; 4-byte Folded Reload
278; GCN-NEXT:    buffer_load_dword v15, off, s[0:3], s33 offset:556 ; 4-byte Folded Reload
279; GCN-NEXT:    buffer_load_dword v16, off, s[0:3], s33 offset:560 ; 4-byte Folded Reload
280; GCN-NEXT:    buffer_load_dword v17, off, s[0:3], s33 offset:564 ; 4-byte Folded Reload
281; GCN-NEXT:    buffer_load_dword v18, off, s[0:3], s33 offset:568 ; 4-byte Folded Reload
282; GCN-NEXT:    buffer_load_dword v19, off, s[0:3], s33 offset:572 ; 4-byte Folded Reload
283; GCN-NEXT:    v_add_u32_e32 v0, 0xe0, v3
284; GCN-NEXT:    s_waitcnt vmcnt(0)
285; GCN-NEXT:    v_mov_b32_e32 v8, v12
286; GCN-NEXT:    buffer_store_dword v8, v0, s[0:3], 0 offen
287; GCN-NEXT:    v_mov_b32_e32 v9, v13
288; GCN-NEXT:    v_add_u32_e32 v0, 0xe4, v3
289; GCN-NEXT:    buffer_store_dword v9, v0, s[0:3], 0 offen
290; GCN-NEXT:    v_mov_b32_e32 v10, v14
291; GCN-NEXT:    v_add_u32_e32 v0, 0xe8, v3
292; GCN-NEXT:    buffer_store_dword v10, v0, s[0:3], 0 offen
293; GCN-NEXT:    v_mov_b32_e32 v11, v15
294; GCN-NEXT:    v_add_u32_e32 v0, 0xec, v3
295; GCN-NEXT:    buffer_store_dword v11, v0, s[0:3], 0 offen
296; GCN-NEXT:    v_add_u32_e32 v0, 0xf0, v3
297; GCN-NEXT:    buffer_store_dword v56, v0, s[0:3], 0 offen
298; GCN-NEXT:    v_add_u32_e32 v0, 0xf4, v3
299; GCN-NEXT:    buffer_store_dword v57, v0, s[0:3], 0 offen
300; GCN-NEXT:    v_add_u32_e32 v0, 0xf8, v3
301; GCN-NEXT:    buffer_store_dword v58, v0, s[0:3], 0 offen
302; GCN-NEXT:    v_add_u32_e32 v0, 0xfc, v3
303; GCN-NEXT:    buffer_store_dword v59, v0, s[0:3], 0 offen
304; GCN-NEXT:    v_and_b32_e32 v0, 63, v2
305; GCN-NEXT:    v_lshlrev_b32_e32 v0, 2, v0
306; GCN-NEXT:    v_add_u32_e32 v0, v3, v0
307; GCN-NEXT:    buffer_load_dword v0, v0, s[0:3], 0 offen
308; GCN-NEXT:    buffer_load_dword v60, off, s[0:3], s33 ; 4-byte Folded Reload
309; GCN-NEXT:    buffer_load_dword v59, off, s[0:3], s33 offset:4 ; 4-byte Folded Reload
310; GCN-NEXT:    buffer_load_dword v58, off, s[0:3], s33 offset:8 ; 4-byte Folded Reload
311; GCN-NEXT:    buffer_load_dword v57, off, s[0:3], s33 offset:12 ; 4-byte Folded Reload
312; GCN-NEXT:    buffer_load_dword v56, off, s[0:3], s33 offset:16 ; 4-byte Folded Reload
313; GCN-NEXT:    buffer_load_dword v47, off, s[0:3], s33 offset:20 ; 4-byte Folded Reload
314; GCN-NEXT:    buffer_load_dword v46, off, s[0:3], s33 offset:24 ; 4-byte Folded Reload
315; GCN-NEXT:    buffer_load_dword v45, off, s[0:3], s33 offset:28 ; 4-byte Folded Reload
316; GCN-NEXT:    buffer_load_dword v44, off, s[0:3], s33 offset:32 ; 4-byte Folded Reload
317; GCN-NEXT:    buffer_load_dword v43, off, s[0:3], s33 offset:36 ; 4-byte Folded Reload
318; GCN-NEXT:    buffer_load_dword v42, off, s[0:3], s33 offset:40 ; 4-byte Folded Reload
319; GCN-NEXT:    buffer_load_dword v41, off, s[0:3], s33 offset:44 ; 4-byte Folded Reload
320; GCN-NEXT:    buffer_load_dword v40, off, s[0:3], s33 offset:48 ; 4-byte Folded Reload
321; GCN-NEXT:    s_mov_b32 s33, s6
322; GCN-NEXT:    s_waitcnt vmcnt(0)
323; GCN-NEXT:    s_setpc_b64 s[30:31]
324  %vec = load <64 x i32>, <64 x i32> addrspace(1)* %ptr
325  %elt = extractelement <64 x i32> %vec, i32 %idx
326  ret i32 %elt
327}
328
329define i16 @v_extract_v128i16_varidx(<128 x i16> addrspace(1)* %ptr, i32 %idx) {
330; GCN-LABEL: v_extract_v128i16_varidx:
331; GCN:       ; %bb.0:
332; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
333; GCN-NEXT:    s_mov_b32 s6, s33
334; GCN-NEXT:    s_add_u32 s33, s32, 0x3fc0
335; GCN-NEXT:    s_and_b32 s33, s33, 0xffffc000
336; GCN-NEXT:    v_add_co_u32_e32 v12, vcc, 64, v0
337; GCN-NEXT:    buffer_store_dword v40, off, s[0:3], s33 offset:48 ; 4-byte Folded Spill
338; GCN-NEXT:    buffer_store_dword v41, off, s[0:3], s33 offset:44 ; 4-byte Folded Spill
339; GCN-NEXT:    buffer_store_dword v42, off, s[0:3], s33 offset:40 ; 4-byte Folded Spill
340; GCN-NEXT:    buffer_store_dword v43, off, s[0:3], s33 offset:36 ; 4-byte Folded Spill
341; GCN-NEXT:    buffer_store_dword v44, off, s[0:3], s33 offset:32 ; 4-byte Folded Spill
342; GCN-NEXT:    buffer_store_dword v45, off, s[0:3], s33 offset:28 ; 4-byte Folded Spill
343; GCN-NEXT:    buffer_store_dword v46, off, s[0:3], s33 offset:24 ; 4-byte Folded Spill
344; GCN-NEXT:    buffer_store_dword v47, off, s[0:3], s33 offset:20 ; 4-byte Folded Spill
345; GCN-NEXT:    buffer_store_dword v56, off, s[0:3], s33 offset:16 ; 4-byte Folded Spill
346; GCN-NEXT:    buffer_store_dword v57, off, s[0:3], s33 offset:12 ; 4-byte Folded Spill
347; GCN-NEXT:    buffer_store_dword v58, off, s[0:3], s33 offset:8 ; 4-byte Folded Spill
348; GCN-NEXT:    buffer_store_dword v59, off, s[0:3], s33 offset:4 ; 4-byte Folded Spill
349; GCN-NEXT:    buffer_store_dword v60, off, s[0:3], s33 ; 4-byte Folded Spill
350; GCN-NEXT:    v_addc_co_u32_e32 v13, vcc, 0, v1, vcc
351; GCN-NEXT:    global_load_dwordx4 v[4:7], v[12:13], off offset:16
352; GCN-NEXT:    global_load_dwordx4 v[8:11], v[12:13], off offset:32
353; GCN-NEXT:    global_load_dwordx4 v[12:15], v[12:13], off offset:48
354; GCN-NEXT:    s_mov_b32 s5, 0
355; GCN-NEXT:    s_movk_i32 s4, 0x80
356; GCN-NEXT:    v_mov_b32_e32 v17, s5
357; GCN-NEXT:    v_mov_b32_e32 v16, s4
358; GCN-NEXT:    s_movk_i32 s4, 0xc0
359; GCN-NEXT:    s_add_u32 s32, s32, 0x10000
360; GCN-NEXT:    s_sub_u32 s32, s32, 0x10000
361; GCN-NEXT:    s_waitcnt vmcnt(0)
362; GCN-NEXT:    buffer_store_dword v0, off, s[0:3], s33 offset:576 ; 4-byte Folded Spill
363; GCN-NEXT:    s_waitcnt vmcnt(0)
364; GCN-NEXT:    buffer_store_dword v1, off, s[0:3], s33 offset:580 ; 4-byte Folded Spill
365; GCN-NEXT:    buffer_store_dword v2, off, s[0:3], s33 offset:584 ; 4-byte Folded Spill
366; GCN-NEXT:    buffer_store_dword v3, off, s[0:3], s33 offset:588 ; 4-byte Folded Spill
367; GCN-NEXT:    buffer_store_dword v4, off, s[0:3], s33 offset:592 ; 4-byte Folded Spill
368; GCN-NEXT:    buffer_store_dword v5, off, s[0:3], s33 offset:596 ; 4-byte Folded Spill
369; GCN-NEXT:    buffer_store_dword v6, off, s[0:3], s33 offset:600 ; 4-byte Folded Spill
370; GCN-NEXT:    buffer_store_dword v7, off, s[0:3], s33 offset:604 ; 4-byte Folded Spill
371; GCN-NEXT:    buffer_store_dword v8, off, s[0:3], s33 offset:608 ; 4-byte Folded Spill
372; GCN-NEXT:    buffer_store_dword v9, off, s[0:3], s33 offset:612 ; 4-byte Folded Spill
373; GCN-NEXT:    buffer_store_dword v10, off, s[0:3], s33 offset:616 ; 4-byte Folded Spill
374; GCN-NEXT:    buffer_store_dword v11, off, s[0:3], s33 offset:620 ; 4-byte Folded Spill
375; GCN-NEXT:    buffer_store_dword v12, off, s[0:3], s33 offset:624 ; 4-byte Folded Spill
376; GCN-NEXT:    buffer_store_dword v13, off, s[0:3], s33 offset:628 ; 4-byte Folded Spill
377; GCN-NEXT:    buffer_store_dword v14, off, s[0:3], s33 offset:632 ; 4-byte Folded Spill
378; GCN-NEXT:    buffer_store_dword v15, off, s[0:3], s33 offset:636 ; 4-byte Folded Spill
379; GCN-NEXT:    v_lshrrev_b32_e64 v3, 6, s33
380; GCN-NEXT:    v_add_u32_e32 v3, 0x100, v3
381; GCN-NEXT:    v_add_u32_e32 v60, 16, v3
382; GCN-NEXT:    v_add_co_u32_e32 v52, vcc, v0, v16
383; GCN-NEXT:    v_addc_co_u32_e32 v53, vcc, v1, v17, vcc
384; GCN-NEXT:    v_mov_b32_e32 v17, s5
385; GCN-NEXT:    v_mov_b32_e32 v16, s4
386; GCN-NEXT:    v_add_co_u32_e32 v56, vcc, v0, v16
387; GCN-NEXT:    v_addc_co_u32_e32 v57, vcc, v1, v17, vcc
388; GCN-NEXT:    global_load_dwordx4 v[16:19], v[0:1], off
389; GCN-NEXT:    global_load_dwordx4 v[20:23], v[0:1], off offset:16
390; GCN-NEXT:    global_load_dwordx4 v[24:27], v[0:1], off offset:32
391; GCN-NEXT:    global_load_dwordx4 v[28:31], v[0:1], off offset:48
392; GCN-NEXT:    global_load_dwordx4 v[32:35], v[0:1], off offset:64
393; GCN-NEXT:    global_load_dwordx4 v[36:39], v[0:1], off offset:128
394; GCN-NEXT:    global_load_dwordx4 v[40:43], v[0:1], off offset:192
395; GCN-NEXT:    global_load_dwordx4 v[44:47], v[52:53], off offset:16
396; GCN-NEXT:    global_load_dwordx4 v[48:51], v[52:53], off offset:32
397; GCN-NEXT:    global_load_dwordx4 v[52:55], v[52:53], off offset:48
398; GCN-NEXT:    global_load_dwordx4 v[12:15], v[56:57], off offset:16
399; GCN-NEXT:    v_add_u32_e32 v0, 20, v3
400; GCN-NEXT:    v_add_u32_e32 v1, 0xd0, v3
401; GCN-NEXT:    s_waitcnt vmcnt(0)
402; GCN-NEXT:    buffer_store_dword v8, off, s[0:3], s33 offset:640 ; 4-byte Folded Spill
403; GCN-NEXT:    s_waitcnt vmcnt(0)
404; GCN-NEXT:    buffer_store_dword v9, off, s[0:3], s33 offset:644 ; 4-byte Folded Spill
405; GCN-NEXT:    buffer_store_dword v10, off, s[0:3], s33 offset:648 ; 4-byte Folded Spill
406; GCN-NEXT:    buffer_store_dword v11, off, s[0:3], s33 offset:652 ; 4-byte Folded Spill
407; GCN-NEXT:    buffer_store_dword v12, off, s[0:3], s33 offset:656 ; 4-byte Folded Spill
408; GCN-NEXT:    buffer_store_dword v13, off, s[0:3], s33 offset:660 ; 4-byte Folded Spill
409; GCN-NEXT:    buffer_store_dword v14, off, s[0:3], s33 offset:664 ; 4-byte Folded Spill
410; GCN-NEXT:    buffer_store_dword v15, off, s[0:3], s33 offset:668 ; 4-byte Folded Spill
411; GCN-NEXT:    buffer_store_dword v16, off, s[0:3], s33 offset:672 ; 4-byte Folded Spill
412; GCN-NEXT:    buffer_store_dword v17, off, s[0:3], s33 offset:676 ; 4-byte Folded Spill
413; GCN-NEXT:    buffer_store_dword v18, off, s[0:3], s33 offset:680 ; 4-byte Folded Spill
414; GCN-NEXT:    buffer_store_dword v19, off, s[0:3], s33 offset:684 ; 4-byte Folded Spill
415; GCN-NEXT:    buffer_store_dword v20, off, s[0:3], s33 offset:688 ; 4-byte Folded Spill
416; GCN-NEXT:    buffer_store_dword v21, off, s[0:3], s33 offset:692 ; 4-byte Folded Spill
417; GCN-NEXT:    buffer_store_dword v22, off, s[0:3], s33 offset:696 ; 4-byte Folded Spill
418; GCN-NEXT:    buffer_store_dword v23, off, s[0:3], s33 offset:700 ; 4-byte Folded Spill
419; GCN-NEXT:    global_load_dwordx4 v[12:15], v[56:57], off offset:32
420; GCN-NEXT:    s_waitcnt vmcnt(0)
421; GCN-NEXT:    buffer_store_dword v4, off, s[0:3], s33 offset:512 ; 4-byte Folded Spill
422; GCN-NEXT:    s_waitcnt vmcnt(0)
423; GCN-NEXT:    buffer_store_dword v5, off, s[0:3], s33 offset:516 ; 4-byte Folded Spill
424; GCN-NEXT:    buffer_store_dword v6, off, s[0:3], s33 offset:520 ; 4-byte Folded Spill
425; GCN-NEXT:    buffer_store_dword v7, off, s[0:3], s33 offset:524 ; 4-byte Folded Spill
426; GCN-NEXT:    buffer_store_dword v8, off, s[0:3], s33 offset:528 ; 4-byte Folded Spill
427; GCN-NEXT:    buffer_store_dword v9, off, s[0:3], s33 offset:532 ; 4-byte Folded Spill
428; GCN-NEXT:    buffer_store_dword v10, off, s[0:3], s33 offset:536 ; 4-byte Folded Spill
429; GCN-NEXT:    buffer_store_dword v11, off, s[0:3], s33 offset:540 ; 4-byte Folded Spill
430; GCN-NEXT:    buffer_store_dword v12, off, s[0:3], s33 offset:544 ; 4-byte Folded Spill
431; GCN-NEXT:    buffer_store_dword v13, off, s[0:3], s33 offset:548 ; 4-byte Folded Spill
432; GCN-NEXT:    buffer_store_dword v14, off, s[0:3], s33 offset:552 ; 4-byte Folded Spill
433; GCN-NEXT:    buffer_store_dword v15, off, s[0:3], s33 offset:556 ; 4-byte Folded Spill
434; GCN-NEXT:    buffer_store_dword v16, off, s[0:3], s33 offset:560 ; 4-byte Folded Spill
435; GCN-NEXT:    buffer_store_dword v17, off, s[0:3], s33 offset:564 ; 4-byte Folded Spill
436; GCN-NEXT:    buffer_store_dword v18, off, s[0:3], s33 offset:568 ; 4-byte Folded Spill
437; GCN-NEXT:    buffer_store_dword v19, off, s[0:3], s33 offset:572 ; 4-byte Folded Spill
438; GCN-NEXT:    global_load_dwordx4 v[56:59], v[56:57], off offset:48
439; GCN-NEXT:    buffer_store_dword v21, v0, s[0:3], 0 offen
440; GCN-NEXT:    v_add_u32_e32 v0, 24, v3
441; GCN-NEXT:    buffer_store_dword v22, v0, s[0:3], 0 offen
442; GCN-NEXT:    v_add_u32_e32 v0, 28, v3
443; GCN-NEXT:    buffer_store_dword v23, v0, s[0:3], 0 offen
444; GCN-NEXT:    v_add_u32_e32 v0, 32, v3
445; GCN-NEXT:    buffer_store_dword v24, v0, s[0:3], 0 offen
446; GCN-NEXT:    v_add_u32_e32 v0, 36, v3
447; GCN-NEXT:    buffer_store_dword v25, v0, s[0:3], 0 offen
448; GCN-NEXT:    v_add_u32_e32 v0, 40, v3
449; GCN-NEXT:    buffer_store_dword v26, v0, s[0:3], 0 offen
450; GCN-NEXT:    v_add_u32_e32 v0, 44, v3
451; GCN-NEXT:    buffer_store_dword v27, v0, s[0:3], 0 offen
452; GCN-NEXT:    v_add_u32_e32 v0, 48, v3
453; GCN-NEXT:    buffer_store_dword v28, v0, s[0:3], 0 offen
454; GCN-NEXT:    v_add_u32_e32 v0, 52, v3
455; GCN-NEXT:    buffer_store_dword v29, v0, s[0:3], 0 offen
456; GCN-NEXT:    v_add_u32_e32 v0, 56, v3
457; GCN-NEXT:    buffer_store_dword v30, v0, s[0:3], 0 offen
458; GCN-NEXT:    v_add_u32_e32 v0, 60, v3
459; GCN-NEXT:    buffer_store_dword v31, v0, s[0:3], 0 offen
460; GCN-NEXT:    v_add_u32_e32 v0, 64, v3
461; GCN-NEXT:    buffer_store_dword v32, v0, s[0:3], 0 offen
462; GCN-NEXT:    v_add_u32_e32 v0, 0x44, v3
463; GCN-NEXT:    buffer_store_dword v33, v0, s[0:3], 0 offen
464; GCN-NEXT:    v_add_u32_e32 v0, 0x48, v3
465; GCN-NEXT:    buffer_store_dword v34, v0, s[0:3], 0 offen
466; GCN-NEXT:    v_add_u32_e32 v0, 0x4c, v3
467; GCN-NEXT:    buffer_store_dword v35, v0, s[0:3], 0 offen
468; GCN-NEXT:    v_add_u32_e32 v0, 0x50, v3
469; GCN-NEXT:    buffer_store_dword v20, v60, s[0:3], 0 offen
470; GCN-NEXT:    buffer_store_dword v4, v0, s[0:3], 0 offen
471; GCN-NEXT:    v_add_u32_e32 v0, 0x54, v3
472; GCN-NEXT:    buffer_store_dword v5, v0, s[0:3], 0 offen
473; GCN-NEXT:    v_add_u32_e32 v0, 0x58, v3
474; GCN-NEXT:    buffer_store_dword v6, v0, s[0:3], 0 offen
475; GCN-NEXT:    v_add_u32_e32 v0, 0x5c, v3
476; GCN-NEXT:    buffer_store_dword v7, v0, s[0:3], 0 offen
477; GCN-NEXT:    v_add_u32_e32 v0, 0x60, v3
478; GCN-NEXT:    buffer_store_dword v8, v0, s[0:3], 0 offen
479; GCN-NEXT:    v_add_u32_e32 v0, 0x64, v3
480; GCN-NEXT:    buffer_store_dword v9, v0, s[0:3], 0 offen
481; GCN-NEXT:    v_add_u32_e32 v0, 0x68, v3
482; GCN-NEXT:    buffer_store_dword v10, v0, s[0:3], 0 offen
483; GCN-NEXT:    v_add_u32_e32 v0, 0x6c, v3
484; GCN-NEXT:    buffer_store_dword v11, v0, s[0:3], 0 offen
485; GCN-NEXT:    buffer_load_dword v20, off, s[0:3], s33 offset:576 ; 4-byte Folded Reload
486; GCN-NEXT:    buffer_load_dword v21, off, s[0:3], s33 offset:580 ; 4-byte Folded Reload
487; GCN-NEXT:    buffer_load_dword v22, off, s[0:3], s33 offset:584 ; 4-byte Folded Reload
488; GCN-NEXT:    buffer_load_dword v23, off, s[0:3], s33 offset:588 ; 4-byte Folded Reload
489; GCN-NEXT:    buffer_load_dword v24, off, s[0:3], s33 offset:592 ; 4-byte Folded Reload
490; GCN-NEXT:    buffer_load_dword v25, off, s[0:3], s33 offset:596 ; 4-byte Folded Reload
491; GCN-NEXT:    buffer_load_dword v26, off, s[0:3], s33 offset:600 ; 4-byte Folded Reload
492; GCN-NEXT:    buffer_load_dword v27, off, s[0:3], s33 offset:604 ; 4-byte Folded Reload
493; GCN-NEXT:    buffer_load_dword v28, off, s[0:3], s33 offset:608 ; 4-byte Folded Reload
494; GCN-NEXT:    buffer_load_dword v29, off, s[0:3], s33 offset:612 ; 4-byte Folded Reload
495; GCN-NEXT:    buffer_load_dword v30, off, s[0:3], s33 offset:616 ; 4-byte Folded Reload
496; GCN-NEXT:    buffer_load_dword v31, off, s[0:3], s33 offset:620 ; 4-byte Folded Reload
497; GCN-NEXT:    buffer_load_dword v32, off, s[0:3], s33 offset:624 ; 4-byte Folded Reload
498; GCN-NEXT:    buffer_load_dword v33, off, s[0:3], s33 offset:628 ; 4-byte Folded Reload
499; GCN-NEXT:    buffer_load_dword v34, off, s[0:3], s33 offset:632 ; 4-byte Folded Reload
500; GCN-NEXT:    buffer_load_dword v35, off, s[0:3], s33 offset:636 ; 4-byte Folded Reload
501; GCN-NEXT:    v_add_u32_e32 v0, 0x70, v3
502; GCN-NEXT:    s_waitcnt vmcnt(0)
503; GCN-NEXT:    v_mov_b32_e32 v12, v32
504; GCN-NEXT:    buffer_store_dword v12, v0, s[0:3], 0 offen
505; GCN-NEXT:    v_mov_b32_e32 v13, v33
506; GCN-NEXT:    v_add_u32_e32 v0, 0x74, v3
507; GCN-NEXT:    buffer_store_dword v13, v0, s[0:3], 0 offen
508; GCN-NEXT:    v_mov_b32_e32 v14, v34
509; GCN-NEXT:    v_add_u32_e32 v0, 0x78, v3
510; GCN-NEXT:    buffer_store_dword v14, v0, s[0:3], 0 offen
511; GCN-NEXT:    v_mov_b32_e32 v15, v35
512; GCN-NEXT:    v_add_u32_e32 v0, 0x7c, v3
513; GCN-NEXT:    buffer_store_dword v15, v0, s[0:3], 0 offen
514; GCN-NEXT:    v_add_u32_e32 v0, 0x80, v3
515; GCN-NEXT:    buffer_store_dword v36, v0, s[0:3], 0 offen
516; GCN-NEXT:    v_add_u32_e32 v0, 0x84, v3
517; GCN-NEXT:    buffer_store_dword v37, v0, s[0:3], 0 offen
518; GCN-NEXT:    v_add_u32_e32 v0, 0x88, v3
519; GCN-NEXT:    buffer_store_dword v38, v0, s[0:3], 0 offen
520; GCN-NEXT:    v_add_u32_e32 v0, 0x8c, v3
521; GCN-NEXT:    buffer_store_dword v39, v0, s[0:3], 0 offen
522; GCN-NEXT:    v_add_u32_e32 v0, 0x90, v3
523; GCN-NEXT:    buffer_store_dword v44, v0, s[0:3], 0 offen
524; GCN-NEXT:    v_add_u32_e32 v0, 0x94, v3
525; GCN-NEXT:    buffer_store_dword v45, v0, s[0:3], 0 offen
526; GCN-NEXT:    v_add_u32_e32 v0, 0x98, v3
527; GCN-NEXT:    buffer_store_dword v46, v0, s[0:3], 0 offen
528; GCN-NEXT:    v_add_u32_e32 v0, 0x9c, v3
529; GCN-NEXT:    buffer_store_dword v47, v0, s[0:3], 0 offen
530; GCN-NEXT:    v_add_u32_e32 v0, 0xa0, v3
531; GCN-NEXT:    buffer_store_dword v48, v0, s[0:3], 0 offen
532; GCN-NEXT:    v_add_u32_e32 v0, 0xa4, v3
533; GCN-NEXT:    buffer_store_dword v49, v0, s[0:3], 0 offen
534; GCN-NEXT:    v_add_u32_e32 v0, 0xa8, v3
535; GCN-NEXT:    buffer_store_dword v50, v0, s[0:3], 0 offen
536; GCN-NEXT:    v_add_u32_e32 v0, 0xac, v3
537; GCN-NEXT:    buffer_store_dword v51, v0, s[0:3], 0 offen
538; GCN-NEXT:    v_add_u32_e32 v0, 0xb0, v3
539; GCN-NEXT:    buffer_store_dword v52, v0, s[0:3], 0 offen
540; GCN-NEXT:    v_add_u32_e32 v0, 0xb4, v3
541; GCN-NEXT:    buffer_store_dword v53, v0, s[0:3], 0 offen
542; GCN-NEXT:    v_add_u32_e32 v0, 0xb8, v3
543; GCN-NEXT:    buffer_store_dword v54, v0, s[0:3], 0 offen
544; GCN-NEXT:    v_add_u32_e32 v0, 0xbc, v3
545; GCN-NEXT:    buffer_store_dword v55, v0, s[0:3], 0 offen
546; GCN-NEXT:    v_add_u32_e32 v0, 0xc0, v3
547; GCN-NEXT:    buffer_store_dword v40, v0, s[0:3], 0 offen
548; GCN-NEXT:    v_add_u32_e32 v0, 0xc4, v3
549; GCN-NEXT:    buffer_store_dword v41, v0, s[0:3], 0 offen
550; GCN-NEXT:    v_add_u32_e32 v0, 0xc8, v3
551; GCN-NEXT:    buffer_store_dword v42, v0, s[0:3], 0 offen
552; GCN-NEXT:    v_add_u32_e32 v0, 0xcc, v3
553; GCN-NEXT:    buffer_store_dword v43, v0, s[0:3], 0 offen
554; GCN-NEXT:    v_add_u32_e32 v0, 4, v3
555; GCN-NEXT:    buffer_store_dword v17, v0, s[0:3], 0 offen
556; GCN-NEXT:    v_add_u32_e32 v0, 8, v3
557; GCN-NEXT:    buffer_store_dword v18, v0, s[0:3], 0 offen
558; GCN-NEXT:    v_add_u32_e32 v0, 12, v3
559; GCN-NEXT:    buffer_store_dword v19, v0, s[0:3], 0 offen
560; GCN-NEXT:    buffer_store_dword v16, off, s[0:3], s33 offset:256
561; GCN-NEXT:    buffer_load_dword v4, off, s[0:3], s33 offset:640 ; 4-byte Folded Reload
562; GCN-NEXT:    buffer_load_dword v5, off, s[0:3], s33 offset:644 ; 4-byte Folded Reload
563; GCN-NEXT:    buffer_load_dword v6, off, s[0:3], s33 offset:648 ; 4-byte Folded Reload
564; GCN-NEXT:    buffer_load_dword v7, off, s[0:3], s33 offset:652 ; 4-byte Folded Reload
565; GCN-NEXT:    buffer_load_dword v8, off, s[0:3], s33 offset:656 ; 4-byte Folded Reload
566; GCN-NEXT:    buffer_load_dword v9, off, s[0:3], s33 offset:660 ; 4-byte Folded Reload
567; GCN-NEXT:    buffer_load_dword v10, off, s[0:3], s33 offset:664 ; 4-byte Folded Reload
568; GCN-NEXT:    buffer_load_dword v11, off, s[0:3], s33 offset:668 ; 4-byte Folded Reload
569; GCN-NEXT:    buffer_load_dword v12, off, s[0:3], s33 offset:672 ; 4-byte Folded Reload
570; GCN-NEXT:    buffer_load_dword v13, off, s[0:3], s33 offset:676 ; 4-byte Folded Reload
571; GCN-NEXT:    buffer_load_dword v14, off, s[0:3], s33 offset:680 ; 4-byte Folded Reload
572; GCN-NEXT:    buffer_load_dword v15, off, s[0:3], s33 offset:684 ; 4-byte Folded Reload
573; GCN-NEXT:    buffer_load_dword v16, off, s[0:3], s33 offset:688 ; 4-byte Folded Reload
574; GCN-NEXT:    buffer_load_dword v17, off, s[0:3], s33 offset:692 ; 4-byte Folded Reload
575; GCN-NEXT:    buffer_load_dword v18, off, s[0:3], s33 offset:696 ; 4-byte Folded Reload
576; GCN-NEXT:    buffer_load_dword v19, off, s[0:3], s33 offset:700 ; 4-byte Folded Reload
577; GCN-NEXT:    v_lshrrev_b32_e32 v0, 1, v2
578; GCN-NEXT:    v_and_b32_e32 v0, 63, v0
579; GCN-NEXT:    v_lshlrev_b32_e32 v0, 2, v0
580; GCN-NEXT:    v_add_u32_e32 v0, v3, v0
581; GCN-NEXT:    s_waitcnt vmcnt(0)
582; GCN-NEXT:    v_mov_b32_e32 v4, v8
583; GCN-NEXT:    buffer_store_dword v4, v1, s[0:3], 0 offen
584; GCN-NEXT:    v_mov_b32_e32 v5, v9
585; GCN-NEXT:    v_add_u32_e32 v1, 0xd4, v3
586; GCN-NEXT:    buffer_store_dword v5, v1, s[0:3], 0 offen
587; GCN-NEXT:    v_mov_b32_e32 v6, v10
588; GCN-NEXT:    v_add_u32_e32 v1, 0xd8, v3
589; GCN-NEXT:    buffer_store_dword v6, v1, s[0:3], 0 offen
590; GCN-NEXT:    v_mov_b32_e32 v7, v11
591; GCN-NEXT:    v_add_u32_e32 v1, 0xdc, v3
592; GCN-NEXT:    buffer_store_dword v7, v1, s[0:3], 0 offen
593; GCN-NEXT:    buffer_load_dword v4, off, s[0:3], s33 offset:512 ; 4-byte Folded Reload
594; GCN-NEXT:    buffer_load_dword v5, off, s[0:3], s33 offset:516 ; 4-byte Folded Reload
595; GCN-NEXT:    buffer_load_dword v6, off, s[0:3], s33 offset:520 ; 4-byte Folded Reload
596; GCN-NEXT:    buffer_load_dword v7, off, s[0:3], s33 offset:524 ; 4-byte Folded Reload
597; GCN-NEXT:    buffer_load_dword v8, off, s[0:3], s33 offset:528 ; 4-byte Folded Reload
598; GCN-NEXT:    buffer_load_dword v9, off, s[0:3], s33 offset:532 ; 4-byte Folded Reload
599; GCN-NEXT:    buffer_load_dword v10, off, s[0:3], s33 offset:536 ; 4-byte Folded Reload
600; GCN-NEXT:    buffer_load_dword v11, off, s[0:3], s33 offset:540 ; 4-byte Folded Reload
601; GCN-NEXT:    buffer_load_dword v12, off, s[0:3], s33 offset:544 ; 4-byte Folded Reload
602; GCN-NEXT:    buffer_load_dword v13, off, s[0:3], s33 offset:548 ; 4-byte Folded Reload
603; GCN-NEXT:    buffer_load_dword v14, off, s[0:3], s33 offset:552 ; 4-byte Folded Reload
604; GCN-NEXT:    buffer_load_dword v15, off, s[0:3], s33 offset:556 ; 4-byte Folded Reload
605; GCN-NEXT:    buffer_load_dword v16, off, s[0:3], s33 offset:560 ; 4-byte Folded Reload
606; GCN-NEXT:    buffer_load_dword v17, off, s[0:3], s33 offset:564 ; 4-byte Folded Reload
607; GCN-NEXT:    buffer_load_dword v18, off, s[0:3], s33 offset:568 ; 4-byte Folded Reload
608; GCN-NEXT:    buffer_load_dword v19, off, s[0:3], s33 offset:572 ; 4-byte Folded Reload
609; GCN-NEXT:    v_add_u32_e32 v1, 0xe0, v3
610; GCN-NEXT:    s_waitcnt vmcnt(0)
611; GCN-NEXT:    v_mov_b32_e32 v8, v12
612; GCN-NEXT:    buffer_store_dword v8, v1, s[0:3], 0 offen
613; GCN-NEXT:    v_mov_b32_e32 v9, v13
614; GCN-NEXT:    v_add_u32_e32 v1, 0xe4, v3
615; GCN-NEXT:    buffer_store_dword v9, v1, s[0:3], 0 offen
616; GCN-NEXT:    v_mov_b32_e32 v10, v14
617; GCN-NEXT:    v_add_u32_e32 v1, 0xe8, v3
618; GCN-NEXT:    buffer_store_dword v10, v1, s[0:3], 0 offen
619; GCN-NEXT:    v_mov_b32_e32 v11, v15
620; GCN-NEXT:    v_add_u32_e32 v1, 0xec, v3
621; GCN-NEXT:    buffer_store_dword v11, v1, s[0:3], 0 offen
622; GCN-NEXT:    v_add_u32_e32 v1, 0xf0, v3
623; GCN-NEXT:    buffer_store_dword v56, v1, s[0:3], 0 offen
624; GCN-NEXT:    v_add_u32_e32 v1, 0xf4, v3
625; GCN-NEXT:    buffer_store_dword v57, v1, s[0:3], 0 offen
626; GCN-NEXT:    v_add_u32_e32 v1, 0xf8, v3
627; GCN-NEXT:    buffer_store_dword v58, v1, s[0:3], 0 offen
628; GCN-NEXT:    v_add_u32_e32 v1, 0xfc, v3
629; GCN-NEXT:    buffer_store_dword v59, v1, s[0:3], 0 offen
630; GCN-NEXT:    buffer_load_dword v0, v0, s[0:3], 0 offen
631; GCN-NEXT:    buffer_load_dword v60, off, s[0:3], s33 ; 4-byte Folded Reload
632; GCN-NEXT:    buffer_load_dword v59, off, s[0:3], s33 offset:4 ; 4-byte Folded Reload
633; GCN-NEXT:    buffer_load_dword v58, off, s[0:3], s33 offset:8 ; 4-byte Folded Reload
634; GCN-NEXT:    buffer_load_dword v57, off, s[0:3], s33 offset:12 ; 4-byte Folded Reload
635; GCN-NEXT:    buffer_load_dword v56, off, s[0:3], s33 offset:16 ; 4-byte Folded Reload
636; GCN-NEXT:    buffer_load_dword v47, off, s[0:3], s33 offset:20 ; 4-byte Folded Reload
637; GCN-NEXT:    buffer_load_dword v46, off, s[0:3], s33 offset:24 ; 4-byte Folded Reload
638; GCN-NEXT:    buffer_load_dword v45, off, s[0:3], s33 offset:28 ; 4-byte Folded Reload
639; GCN-NEXT:    buffer_load_dword v44, off, s[0:3], s33 offset:32 ; 4-byte Folded Reload
640; GCN-NEXT:    buffer_load_dword v43, off, s[0:3], s33 offset:36 ; 4-byte Folded Reload
641; GCN-NEXT:    buffer_load_dword v42, off, s[0:3], s33 offset:40 ; 4-byte Folded Reload
642; GCN-NEXT:    buffer_load_dword v41, off, s[0:3], s33 offset:44 ; 4-byte Folded Reload
643; GCN-NEXT:    buffer_load_dword v40, off, s[0:3], s33 offset:48 ; 4-byte Folded Reload
644; GCN-NEXT:    v_and_b32_e32 v1, 1, v2
645; GCN-NEXT:    v_lshlrev_b32_e32 v1, 4, v1
646; GCN-NEXT:    s_mov_b32 s33, s6
647; GCN-NEXT:    s_waitcnt vmcnt(13)
648; GCN-NEXT:    v_lshrrev_b32_e32 v0, v1, v0
649; GCN-NEXT:    s_waitcnt vmcnt(0)
650; GCN-NEXT:    s_setpc_b64 s[30:31]
651  %vec = load <128 x i16>, <128 x i16> addrspace(1)* %ptr
652  %elt = extractelement <128 x i16> %vec, i32 %idx
653  ret i16 %elt
654}
655
656define i64 @v_extract_v32i64_varidx(<32 x i64> addrspace(1)* %ptr, i32 %idx) {
657; GCN-LABEL: v_extract_v32i64_varidx:
658; GCN:       ; %bb.0:
659; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
660; GCN-NEXT:    s_mov_b32 s6, s33
661; GCN-NEXT:    s_add_u32 s33, s32, 0x3fc0
662; GCN-NEXT:    s_and_b32 s33, s33, 0xffffc000
663; GCN-NEXT:    v_add_co_u32_e32 v3, vcc, 64, v0
664; GCN-NEXT:    buffer_store_dword v40, off, s[0:3], s33 offset:56 ; 4-byte Folded Spill
665; GCN-NEXT:    buffer_store_dword v41, off, s[0:3], s33 offset:52 ; 4-byte Folded Spill
666; GCN-NEXT:    buffer_store_dword v42, off, s[0:3], s33 offset:48 ; 4-byte Folded Spill
667; GCN-NEXT:    buffer_store_dword v43, off, s[0:3], s33 offset:44 ; 4-byte Folded Spill
668; GCN-NEXT:    buffer_store_dword v44, off, s[0:3], s33 offset:40 ; 4-byte Folded Spill
669; GCN-NEXT:    buffer_store_dword v45, off, s[0:3], s33 offset:36 ; 4-byte Folded Spill
670; GCN-NEXT:    buffer_store_dword v46, off, s[0:3], s33 offset:32 ; 4-byte Folded Spill
671; GCN-NEXT:    buffer_store_dword v47, off, s[0:3], s33 offset:28 ; 4-byte Folded Spill
672; GCN-NEXT:    buffer_store_dword v56, off, s[0:3], s33 offset:24 ; 4-byte Folded Spill
673; GCN-NEXT:    buffer_store_dword v57, off, s[0:3], s33 offset:20 ; 4-byte Folded Spill
674; GCN-NEXT:    buffer_store_dword v58, off, s[0:3], s33 offset:16 ; 4-byte Folded Spill
675; GCN-NEXT:    buffer_store_dword v59, off, s[0:3], s33 offset:12 ; 4-byte Folded Spill
676; GCN-NEXT:    buffer_store_dword v60, off, s[0:3], s33 offset:8 ; 4-byte Folded Spill
677; GCN-NEXT:    buffer_store_dword v61, off, s[0:3], s33 offset:4 ; 4-byte Folded Spill
678; GCN-NEXT:    buffer_store_dword v62, off, s[0:3], s33 ; 4-byte Folded Spill
679; GCN-NEXT:    buffer_store_dword v2, off, s[0:3], s33 offset:512 ; 4-byte Folded Spill
680; GCN-NEXT:    v_addc_co_u32_e32 v4, vcc, 0, v1, vcc
681; GCN-NEXT:    global_load_dwordx4 v[7:10], v[3:4], off offset:16
682; GCN-NEXT:    global_load_dwordx4 v[11:14], v[3:4], off offset:32
683; GCN-NEXT:    global_load_dwordx4 v[56:59], v[3:4], off offset:48
684; GCN-NEXT:    global_load_dwordx4 v[15:18], v[0:1], off
685; GCN-NEXT:    s_movk_i32 s4, 0x80
686; GCN-NEXT:    s_mov_b32 s5, 0
687; GCN-NEXT:    v_mov_b32_e32 v3, s4
688; GCN-NEXT:    v_mov_b32_e32 v4, s5
689; GCN-NEXT:    v_add_co_u32_e32 v3, vcc, v0, v3
690; GCN-NEXT:    s_movk_i32 s4, 0xc0
691; GCN-NEXT:    v_mov_b32_e32 v6, s5
692; GCN-NEXT:    v_addc_co_u32_e32 v4, vcc, v1, v4, vcc
693; GCN-NEXT:    v_mov_b32_e32 v5, s4
694; GCN-NEXT:    v_add_co_u32_e32 v60, vcc, v0, v5
695; GCN-NEXT:    v_addc_co_u32_e32 v61, vcc, v1, v6, vcc
696; GCN-NEXT:    v_lshrrev_b32_e64 v62, 6, s33
697; GCN-NEXT:    v_add_u32_e32 v62, 0x100, v62
698; GCN-NEXT:    v_add_u32_e32 v2, 16, v62
699; GCN-NEXT:    s_add_u32 s32, s32, 0x14000
700; GCN-NEXT:    s_sub_u32 s32, s32, 0x14000
701; GCN-NEXT:    s_waitcnt vmcnt(0)
702; GCN-NEXT:    buffer_store_dword v15, off, s[0:3], s33 offset:644 ; 4-byte Folded Spill
703; GCN-NEXT:    s_waitcnt vmcnt(0)
704; GCN-NEXT:    buffer_store_dword v16, off, s[0:3], s33 offset:648 ; 4-byte Folded Spill
705; GCN-NEXT:    buffer_store_dword v17, off, s[0:3], s33 offset:652 ; 4-byte Folded Spill
706; GCN-NEXT:    buffer_store_dword v18, off, s[0:3], s33 offset:656 ; 4-byte Folded Spill
707; GCN-NEXT:    buffer_store_dword v19, off, s[0:3], s33 offset:660 ; 4-byte Folded Spill
708; GCN-NEXT:    buffer_store_dword v20, off, s[0:3], s33 offset:664 ; 4-byte Folded Spill
709; GCN-NEXT:    buffer_store_dword v21, off, s[0:3], s33 offset:668 ; 4-byte Folded Spill
710; GCN-NEXT:    buffer_store_dword v22, off, s[0:3], s33 offset:672 ; 4-byte Folded Spill
711; GCN-NEXT:    buffer_store_dword v23, off, s[0:3], s33 offset:676 ; 4-byte Folded Spill
712; GCN-NEXT:    buffer_store_dword v24, off, s[0:3], s33 offset:680 ; 4-byte Folded Spill
713; GCN-NEXT:    buffer_store_dword v25, off, s[0:3], s33 offset:684 ; 4-byte Folded Spill
714; GCN-NEXT:    buffer_store_dword v26, off, s[0:3], s33 offset:688 ; 4-byte Folded Spill
715; GCN-NEXT:    buffer_store_dword v27, off, s[0:3], s33 offset:692 ; 4-byte Folded Spill
716; GCN-NEXT:    buffer_store_dword v28, off, s[0:3], s33 offset:696 ; 4-byte Folded Spill
717; GCN-NEXT:    buffer_store_dword v29, off, s[0:3], s33 offset:700 ; 4-byte Folded Spill
718; GCN-NEXT:    buffer_store_dword v30, off, s[0:3], s33 offset:704 ; 4-byte Folded Spill
719; GCN-NEXT:    global_load_dwordx4 v[20:23], v[0:1], off offset:16
720; GCN-NEXT:    global_load_dwordx4 v[24:27], v[0:1], off offset:32
721; GCN-NEXT:    global_load_dwordx4 v[28:31], v[0:1], off offset:48
722; GCN-NEXT:    global_load_dwordx4 v[32:35], v[0:1], off offset:64
723; GCN-NEXT:    global_load_dwordx4 v[36:39], v[0:1], off offset:128
724; GCN-NEXT:    global_load_dwordx4 v[40:43], v[0:1], off offset:192
725; GCN-NEXT:    global_load_dwordx4 v[44:47], v[3:4], off offset:16
726; GCN-NEXT:    global_load_dwordx4 v[48:51], v[3:4], off offset:32
727; GCN-NEXT:    global_load_dwordx4 v[52:55], v[3:4], off offset:48
728; GCN-NEXT:    global_load_dwordx4 v[15:18], v[60:61], off offset:16
729; GCN-NEXT:    v_add_u32_e32 v0, 20, v62
730; GCN-NEXT:    s_waitcnt vmcnt(0)
731; GCN-NEXT:    buffer_store_dword v11, off, s[0:3], s33 offset:708 ; 4-byte Folded Spill
732; GCN-NEXT:    s_waitcnt vmcnt(0)
733; GCN-NEXT:    buffer_store_dword v12, off, s[0:3], s33 offset:712 ; 4-byte Folded Spill
734; GCN-NEXT:    buffer_store_dword v13, off, s[0:3], s33 offset:716 ; 4-byte Folded Spill
735; GCN-NEXT:    buffer_store_dword v14, off, s[0:3], s33 offset:720 ; 4-byte Folded Spill
736; GCN-NEXT:    buffer_store_dword v15, off, s[0:3], s33 offset:724 ; 4-byte Folded Spill
737; GCN-NEXT:    buffer_store_dword v16, off, s[0:3], s33 offset:728 ; 4-byte Folded Spill
738; GCN-NEXT:    buffer_store_dword v17, off, s[0:3], s33 offset:732 ; 4-byte Folded Spill
739; GCN-NEXT:    buffer_store_dword v18, off, s[0:3], s33 offset:736 ; 4-byte Folded Spill
740; GCN-NEXT:    buffer_store_dword v19, off, s[0:3], s33 offset:740 ; 4-byte Folded Spill
741; GCN-NEXT:    buffer_store_dword v20, off, s[0:3], s33 offset:744 ; 4-byte Folded Spill
742; GCN-NEXT:    buffer_store_dword v21, off, s[0:3], s33 offset:748 ; 4-byte Folded Spill
743; GCN-NEXT:    buffer_store_dword v22, off, s[0:3], s33 offset:752 ; 4-byte Folded Spill
744; GCN-NEXT:    buffer_store_dword v23, off, s[0:3], s33 offset:756 ; 4-byte Folded Spill
745; GCN-NEXT:    buffer_store_dword v24, off, s[0:3], s33 offset:760 ; 4-byte Folded Spill
746; GCN-NEXT:    buffer_store_dword v25, off, s[0:3], s33 offset:764 ; 4-byte Folded Spill
747; GCN-NEXT:    buffer_store_dword v26, off, s[0:3], s33 offset:768 ; 4-byte Folded Spill
748; GCN-NEXT:    global_load_dwordx4 v[15:18], v[60:61], off offset:32
749; GCN-NEXT:    s_waitcnt vmcnt(0)
750; GCN-NEXT:    buffer_store_dword v7, off, s[0:3], s33 offset:580 ; 4-byte Folded Spill
751; GCN-NEXT:    s_waitcnt vmcnt(0)
752; GCN-NEXT:    buffer_store_dword v8, off, s[0:3], s33 offset:584 ; 4-byte Folded Spill
753; GCN-NEXT:    buffer_store_dword v9, off, s[0:3], s33 offset:588 ; 4-byte Folded Spill
754; GCN-NEXT:    buffer_store_dword v10, off, s[0:3], s33 offset:592 ; 4-byte Folded Spill
755; GCN-NEXT:    buffer_store_dword v11, off, s[0:3], s33 offset:596 ; 4-byte Folded Spill
756; GCN-NEXT:    buffer_store_dword v12, off, s[0:3], s33 offset:600 ; 4-byte Folded Spill
757; GCN-NEXT:    buffer_store_dword v13, off, s[0:3], s33 offset:604 ; 4-byte Folded Spill
758; GCN-NEXT:    buffer_store_dword v14, off, s[0:3], s33 offset:608 ; 4-byte Folded Spill
759; GCN-NEXT:    buffer_store_dword v15, off, s[0:3], s33 offset:612 ; 4-byte Folded Spill
760; GCN-NEXT:    buffer_store_dword v16, off, s[0:3], s33 offset:616 ; 4-byte Folded Spill
761; GCN-NEXT:    buffer_store_dword v17, off, s[0:3], s33 offset:620 ; 4-byte Folded Spill
762; GCN-NEXT:    buffer_store_dword v18, off, s[0:3], s33 offset:624 ; 4-byte Folded Spill
763; GCN-NEXT:    buffer_store_dword v19, off, s[0:3], s33 offset:628 ; 4-byte Folded Spill
764; GCN-NEXT:    buffer_store_dword v20, off, s[0:3], s33 offset:632 ; 4-byte Folded Spill
765; GCN-NEXT:    buffer_store_dword v21, off, s[0:3], s33 offset:636 ; 4-byte Folded Spill
766; GCN-NEXT:    buffer_store_dword v22, off, s[0:3], s33 offset:640 ; 4-byte Folded Spill
767; GCN-NEXT:    global_load_dwordx4 v[15:18], v[60:61], off offset:48
768; GCN-NEXT:    s_waitcnt vmcnt(0)
769; GCN-NEXT:    buffer_store_dword v3, off, s[0:3], s33 offset:516 ; 4-byte Folded Spill
770; GCN-NEXT:    s_waitcnt vmcnt(0)
771; GCN-NEXT:    buffer_store_dword v4, off, s[0:3], s33 offset:520 ; 4-byte Folded Spill
772; GCN-NEXT:    buffer_store_dword v5, off, s[0:3], s33 offset:524 ; 4-byte Folded Spill
773; GCN-NEXT:    buffer_store_dword v6, off, s[0:3], s33 offset:528 ; 4-byte Folded Spill
774; GCN-NEXT:    buffer_store_dword v7, off, s[0:3], s33 offset:532 ; 4-byte Folded Spill
775; GCN-NEXT:    buffer_store_dword v8, off, s[0:3], s33 offset:536 ; 4-byte Folded Spill
776; GCN-NEXT:    buffer_store_dword v9, off, s[0:3], s33 offset:540 ; 4-byte Folded Spill
777; GCN-NEXT:    buffer_store_dword v10, off, s[0:3], s33 offset:544 ; 4-byte Folded Spill
778; GCN-NEXT:    buffer_store_dword v11, off, s[0:3], s33 offset:548 ; 4-byte Folded Spill
779; GCN-NEXT:    buffer_store_dword v12, off, s[0:3], s33 offset:552 ; 4-byte Folded Spill
780; GCN-NEXT:    buffer_store_dword v13, off, s[0:3], s33 offset:556 ; 4-byte Folded Spill
781; GCN-NEXT:    buffer_store_dword v14, off, s[0:3], s33 offset:560 ; 4-byte Folded Spill
782; GCN-NEXT:    buffer_store_dword v15, off, s[0:3], s33 offset:564 ; 4-byte Folded Spill
783; GCN-NEXT:    buffer_store_dword v16, off, s[0:3], s33 offset:568 ; 4-byte Folded Spill
784; GCN-NEXT:    buffer_store_dword v17, off, s[0:3], s33 offset:572 ; 4-byte Folded Spill
785; GCN-NEXT:    buffer_store_dword v18, off, s[0:3], s33 offset:576 ; 4-byte Folded Spill
786; GCN-NEXT:    buffer_store_dword v20, v2, s[0:3], 0 offen
787; GCN-NEXT:    buffer_store_dword v21, v0, s[0:3], 0 offen
788; GCN-NEXT:    v_add_u32_e32 v0, 24, v62
789; GCN-NEXT:    buffer_store_dword v22, v0, s[0:3], 0 offen
790; GCN-NEXT:    v_add_u32_e32 v0, 28, v62
791; GCN-NEXT:    buffer_store_dword v23, v0, s[0:3], 0 offen
792; GCN-NEXT:    v_add_u32_e32 v0, 32, v62
793; GCN-NEXT:    buffer_store_dword v24, v0, s[0:3], 0 offen
794; GCN-NEXT:    v_add_u32_e32 v0, 36, v62
795; GCN-NEXT:    buffer_store_dword v25, v0, s[0:3], 0 offen
796; GCN-NEXT:    v_add_u32_e32 v0, 40, v62
797; GCN-NEXT:    buffer_store_dword v26, v0, s[0:3], 0 offen
798; GCN-NEXT:    v_add_u32_e32 v0, 44, v62
799; GCN-NEXT:    buffer_store_dword v27, v0, s[0:3], 0 offen
800; GCN-NEXT:    v_add_u32_e32 v0, 48, v62
801; GCN-NEXT:    buffer_store_dword v28, v0, s[0:3], 0 offen
802; GCN-NEXT:    v_add_u32_e32 v0, 52, v62
803; GCN-NEXT:    buffer_store_dword v29, v0, s[0:3], 0 offen
804; GCN-NEXT:    v_add_u32_e32 v0, 56, v62
805; GCN-NEXT:    buffer_store_dword v30, v0, s[0:3], 0 offen
806; GCN-NEXT:    v_add_u32_e32 v0, 60, v62
807; GCN-NEXT:    buffer_store_dword v31, v0, s[0:3], 0 offen
808; GCN-NEXT:    v_add_u32_e32 v0, 64, v62
809; GCN-NEXT:    buffer_store_dword v32, v0, s[0:3], 0 offen
810; GCN-NEXT:    v_add_u32_e32 v0, 0x44, v62
811; GCN-NEXT:    buffer_store_dword v33, v0, s[0:3], 0 offen
812; GCN-NEXT:    v_add_u32_e32 v0, 0x48, v62
813; GCN-NEXT:    buffer_store_dword v34, v0, s[0:3], 0 offen
814; GCN-NEXT:    v_add_u32_e32 v0, 0x4c, v62
815; GCN-NEXT:    buffer_store_dword v35, v0, s[0:3], 0 offen
816; GCN-NEXT:    v_add_u32_e32 v0, 0x50, v62
817; GCN-NEXT:    buffer_store_dword v7, v0, s[0:3], 0 offen
818; GCN-NEXT:    v_add_u32_e32 v0, 0x54, v62
819; GCN-NEXT:    buffer_store_dword v8, v0, s[0:3], 0 offen
820; GCN-NEXT:    v_add_u32_e32 v0, 0x58, v62
821; GCN-NEXT:    buffer_store_dword v9, v0, s[0:3], 0 offen
822; GCN-NEXT:    v_add_u32_e32 v0, 0x5c, v62
823; GCN-NEXT:    buffer_store_dword v10, v0, s[0:3], 0 offen
824; GCN-NEXT:    v_add_u32_e32 v0, 0x60, v62
825; GCN-NEXT:    buffer_store_dword v11, v0, s[0:3], 0 offen
826; GCN-NEXT:    v_add_u32_e32 v0, 0x64, v62
827; GCN-NEXT:    buffer_store_dword v12, v0, s[0:3], 0 offen
828; GCN-NEXT:    v_add_u32_e32 v0, 0x68, v62
829; GCN-NEXT:    buffer_store_dword v13, v0, s[0:3], 0 offen
830; GCN-NEXT:    v_add_u32_e32 v0, 0x6c, v62
831; GCN-NEXT:    buffer_store_dword v14, v0, s[0:3], 0 offen
832; GCN-NEXT:    v_add_u32_e32 v0, 0x70, v62
833; GCN-NEXT:    buffer_store_dword v56, v0, s[0:3], 0 offen
834; GCN-NEXT:    v_add_u32_e32 v0, 0x74, v62
835; GCN-NEXT:    buffer_store_dword v57, v0, s[0:3], 0 offen
836; GCN-NEXT:    v_add_u32_e32 v0, 0x78, v62
837; GCN-NEXT:    buffer_store_dword v58, v0, s[0:3], 0 offen
838; GCN-NEXT:    v_add_u32_e32 v0, 0x7c, v62
839; GCN-NEXT:    buffer_store_dword v59, v0, s[0:3], 0 offen
840; GCN-NEXT:    v_add_u32_e32 v0, 0x80, v62
841; GCN-NEXT:    buffer_store_dword v36, v0, s[0:3], 0 offen
842; GCN-NEXT:    v_add_u32_e32 v0, 0x84, v62
843; GCN-NEXT:    buffer_store_dword v37, v0, s[0:3], 0 offen
844; GCN-NEXT:    v_add_u32_e32 v0, 0x88, v62
845; GCN-NEXT:    buffer_store_dword v38, v0, s[0:3], 0 offen
846; GCN-NEXT:    v_add_u32_e32 v0, 0x8c, v62
847; GCN-NEXT:    buffer_store_dword v39, v0, s[0:3], 0 offen
848; GCN-NEXT:    v_add_u32_e32 v0, 0x90, v62
849; GCN-NEXT:    buffer_store_dword v44, v0, s[0:3], 0 offen
850; GCN-NEXT:    v_add_u32_e32 v0, 0x94, v62
851; GCN-NEXT:    buffer_store_dword v45, v0, s[0:3], 0 offen
852; GCN-NEXT:    v_add_u32_e32 v0, 0x98, v62
853; GCN-NEXT:    buffer_store_dword v46, v0, s[0:3], 0 offen
854; GCN-NEXT:    v_add_u32_e32 v0, 0x9c, v62
855; GCN-NEXT:    buffer_store_dword v47, v0, s[0:3], 0 offen
856; GCN-NEXT:    v_add_u32_e32 v0, 0xa0, v62
857; GCN-NEXT:    buffer_store_dword v48, v0, s[0:3], 0 offen
858; GCN-NEXT:    v_add_u32_e32 v0, 0xa4, v62
859; GCN-NEXT:    buffer_store_dword v49, v0, s[0:3], 0 offen
860; GCN-NEXT:    v_add_u32_e32 v0, 0xa8, v62
861; GCN-NEXT:    buffer_store_dword v50, v0, s[0:3], 0 offen
862; GCN-NEXT:    v_add_u32_e32 v0, 0xac, v62
863; GCN-NEXT:    buffer_store_dword v51, v0, s[0:3], 0 offen
864; GCN-NEXT:    v_add_u32_e32 v0, 0xb0, v62
865; GCN-NEXT:    buffer_store_dword v52, v0, s[0:3], 0 offen
866; GCN-NEXT:    v_add_u32_e32 v0, 0xb4, v62
867; GCN-NEXT:    buffer_store_dword v53, v0, s[0:3], 0 offen
868; GCN-NEXT:    v_add_u32_e32 v0, 0xb8, v62
869; GCN-NEXT:    buffer_store_dword v54, v0, s[0:3], 0 offen
870; GCN-NEXT:    v_add_u32_e32 v0, 0xbc, v62
871; GCN-NEXT:    buffer_store_dword v55, v0, s[0:3], 0 offen
872; GCN-NEXT:    v_add_u32_e32 v0, 0xc0, v62
873; GCN-NEXT:    buffer_store_dword v40, v0, s[0:3], 0 offen
874; GCN-NEXT:    v_add_u32_e32 v0, 0xc4, v62
875; GCN-NEXT:    buffer_store_dword v41, v0, s[0:3], 0 offen
876; GCN-NEXT:    v_add_u32_e32 v0, 0xc8, v62
877; GCN-NEXT:    buffer_store_dword v42, v0, s[0:3], 0 offen
878; GCN-NEXT:    v_add_u32_e32 v0, 0xcc, v62
879; GCN-NEXT:    buffer_store_dword v43, v0, s[0:3], 0 offen
880; GCN-NEXT:    buffer_load_dword v1, off, s[0:3], s33 offset:644 ; 4-byte Folded Reload
881; GCN-NEXT:    buffer_load_dword v2, off, s[0:3], s33 offset:648 ; 4-byte Folded Reload
882; GCN-NEXT:    buffer_load_dword v3, off, s[0:3], s33 offset:652 ; 4-byte Folded Reload
883; GCN-NEXT:    buffer_load_dword v4, off, s[0:3], s33 offset:656 ; 4-byte Folded Reload
884; GCN-NEXT:    buffer_load_dword v5, off, s[0:3], s33 offset:660 ; 4-byte Folded Reload
885; GCN-NEXT:    buffer_load_dword v6, off, s[0:3], s33 offset:664 ; 4-byte Folded Reload
886; GCN-NEXT:    buffer_load_dword v7, off, s[0:3], s33 offset:668 ; 4-byte Folded Reload
887; GCN-NEXT:    buffer_load_dword v8, off, s[0:3], s33 offset:672 ; 4-byte Folded Reload
888; GCN-NEXT:    buffer_load_dword v9, off, s[0:3], s33 offset:676 ; 4-byte Folded Reload
889; GCN-NEXT:    buffer_load_dword v10, off, s[0:3], s33 offset:680 ; 4-byte Folded Reload
890; GCN-NEXT:    buffer_load_dword v11, off, s[0:3], s33 offset:684 ; 4-byte Folded Reload
891; GCN-NEXT:    buffer_load_dword v12, off, s[0:3], s33 offset:688 ; 4-byte Folded Reload
892; GCN-NEXT:    buffer_load_dword v13, off, s[0:3], s33 offset:692 ; 4-byte Folded Reload
893; GCN-NEXT:    buffer_load_dword v14, off, s[0:3], s33 offset:696 ; 4-byte Folded Reload
894; GCN-NEXT:    buffer_load_dword v15, off, s[0:3], s33 offset:700 ; 4-byte Folded Reload
895; GCN-NEXT:    buffer_load_dword v16, off, s[0:3], s33 offset:704 ; 4-byte Folded Reload
896; GCN-NEXT:    v_add_u32_e32 v0, 4, v62
897; GCN-NEXT:    s_waitcnt vmcnt(0)
898; GCN-NEXT:    buffer_store_dword v2, v0, s[0:3], 0 offen
899; GCN-NEXT:    v_add_u32_e32 v0, 8, v62
900; GCN-NEXT:    buffer_store_dword v3, v0, s[0:3], 0 offen
901; GCN-NEXT:    v_add_u32_e32 v0, 12, v62
902; GCN-NEXT:    buffer_store_dword v4, v0, s[0:3], 0 offen
903; GCN-NEXT:    buffer_store_dword v1, off, s[0:3], s33 offset:256
904; GCN-NEXT:    buffer_load_dword v1, off, s[0:3], s33 offset:708 ; 4-byte Folded Reload
905; GCN-NEXT:    buffer_load_dword v2, off, s[0:3], s33 offset:712 ; 4-byte Folded Reload
906; GCN-NEXT:    buffer_load_dword v3, off, s[0:3], s33 offset:716 ; 4-byte Folded Reload
907; GCN-NEXT:    buffer_load_dword v4, off, s[0:3], s33 offset:720 ; 4-byte Folded Reload
908; GCN-NEXT:    buffer_load_dword v5, off, s[0:3], s33 offset:724 ; 4-byte Folded Reload
909; GCN-NEXT:    buffer_load_dword v6, off, s[0:3], s33 offset:728 ; 4-byte Folded Reload
910; GCN-NEXT:    buffer_load_dword v7, off, s[0:3], s33 offset:732 ; 4-byte Folded Reload
911; GCN-NEXT:    buffer_load_dword v8, off, s[0:3], s33 offset:736 ; 4-byte Folded Reload
912; GCN-NEXT:    buffer_load_dword v9, off, s[0:3], s33 offset:740 ; 4-byte Folded Reload
913; GCN-NEXT:    buffer_load_dword v10, off, s[0:3], s33 offset:744 ; 4-byte Folded Reload
914; GCN-NEXT:    buffer_load_dword v11, off, s[0:3], s33 offset:748 ; 4-byte Folded Reload
915; GCN-NEXT:    buffer_load_dword v12, off, s[0:3], s33 offset:752 ; 4-byte Folded Reload
916; GCN-NEXT:    buffer_load_dword v13, off, s[0:3], s33 offset:756 ; 4-byte Folded Reload
917; GCN-NEXT:    buffer_load_dword v14, off, s[0:3], s33 offset:760 ; 4-byte Folded Reload
918; GCN-NEXT:    buffer_load_dword v15, off, s[0:3], s33 offset:764 ; 4-byte Folded Reload
919; GCN-NEXT:    buffer_load_dword v16, off, s[0:3], s33 offset:768 ; 4-byte Folded Reload
920; GCN-NEXT:    v_add_u32_e32 v0, 0xd0, v62
921; GCN-NEXT:    s_waitcnt vmcnt(0)
922; GCN-NEXT:    v_mov_b32_e32 v4, v5
923; GCN-NEXT:    v_mov_b32_e32 v5, v6
924; GCN-NEXT:    buffer_store_dword v4, v0, s[0:3], 0 offen
925; GCN-NEXT:    v_add_u32_e32 v0, 0xd4, v62
926; GCN-NEXT:    v_mov_b32_e32 v6, v7
927; GCN-NEXT:    buffer_store_dword v5, v0, s[0:3], 0 offen
928; GCN-NEXT:    v_add_u32_e32 v0, 0xd8, v62
929; GCN-NEXT:    buffer_store_dword v6, v0, s[0:3], 0 offen
930; GCN-NEXT:    v_mov_b32_e32 v7, v8
931; GCN-NEXT:    v_add_u32_e32 v0, 0xdc, v62
932; GCN-NEXT:    buffer_store_dword v7, v0, s[0:3], 0 offen
933; GCN-NEXT:    buffer_load_dword v1, off, s[0:3], s33 offset:580 ; 4-byte Folded Reload
934; GCN-NEXT:    buffer_load_dword v2, off, s[0:3], s33 offset:584 ; 4-byte Folded Reload
935; GCN-NEXT:    buffer_load_dword v3, off, s[0:3], s33 offset:588 ; 4-byte Folded Reload
936; GCN-NEXT:    buffer_load_dword v4, off, s[0:3], s33 offset:592 ; 4-byte Folded Reload
937; GCN-NEXT:    buffer_load_dword v5, off, s[0:3], s33 offset:596 ; 4-byte Folded Reload
938; GCN-NEXT:    buffer_load_dword v6, off, s[0:3], s33 offset:600 ; 4-byte Folded Reload
939; GCN-NEXT:    buffer_load_dword v7, off, s[0:3], s33 offset:604 ; 4-byte Folded Reload
940; GCN-NEXT:    buffer_load_dword v8, off, s[0:3], s33 offset:608 ; 4-byte Folded Reload
941; GCN-NEXT:    buffer_load_dword v9, off, s[0:3], s33 offset:612 ; 4-byte Folded Reload
942; GCN-NEXT:    buffer_load_dword v10, off, s[0:3], s33 offset:616 ; 4-byte Folded Reload
943; GCN-NEXT:    buffer_load_dword v11, off, s[0:3], s33 offset:620 ; 4-byte Folded Reload
944; GCN-NEXT:    buffer_load_dword v12, off, s[0:3], s33 offset:624 ; 4-byte Folded Reload
945; GCN-NEXT:    buffer_load_dword v13, off, s[0:3], s33 offset:628 ; 4-byte Folded Reload
946; GCN-NEXT:    buffer_load_dword v14, off, s[0:3], s33 offset:632 ; 4-byte Folded Reload
947; GCN-NEXT:    buffer_load_dword v15, off, s[0:3], s33 offset:636 ; 4-byte Folded Reload
948; GCN-NEXT:    buffer_load_dword v16, off, s[0:3], s33 offset:640 ; 4-byte Folded Reload
949; GCN-NEXT:    v_add_u32_e32 v0, 0xe0, v62
950; GCN-NEXT:    s_waitcnt vmcnt(0)
951; GCN-NEXT:    v_mov_b32_e32 v8, v9
952; GCN-NEXT:    v_mov_b32_e32 v9, v10
953; GCN-NEXT:    buffer_store_dword v8, v0, s[0:3], 0 offen
954; GCN-NEXT:    v_add_u32_e32 v0, 0xe4, v62
955; GCN-NEXT:    v_mov_b32_e32 v10, v11
956; GCN-NEXT:    buffer_store_dword v9, v0, s[0:3], 0 offen
957; GCN-NEXT:    v_add_u32_e32 v0, 0xe8, v62
958; GCN-NEXT:    buffer_store_dword v10, v0, s[0:3], 0 offen
959; GCN-NEXT:    v_mov_b32_e32 v11, v12
960; GCN-NEXT:    v_add_u32_e32 v0, 0xec, v62
961; GCN-NEXT:    buffer_store_dword v11, v0, s[0:3], 0 offen
962; GCN-NEXT:    buffer_load_dword v1, off, s[0:3], s33 offset:516 ; 4-byte Folded Reload
963; GCN-NEXT:    buffer_load_dword v2, off, s[0:3], s33 offset:520 ; 4-byte Folded Reload
964; GCN-NEXT:    buffer_load_dword v3, off, s[0:3], s33 offset:524 ; 4-byte Folded Reload
965; GCN-NEXT:    buffer_load_dword v4, off, s[0:3], s33 offset:528 ; 4-byte Folded Reload
966; GCN-NEXT:    buffer_load_dword v5, off, s[0:3], s33 offset:532 ; 4-byte Folded Reload
967; GCN-NEXT:    buffer_load_dword v6, off, s[0:3], s33 offset:536 ; 4-byte Folded Reload
968; GCN-NEXT:    buffer_load_dword v7, off, s[0:3], s33 offset:540 ; 4-byte Folded Reload
969; GCN-NEXT:    buffer_load_dword v8, off, s[0:3], s33 offset:544 ; 4-byte Folded Reload
970; GCN-NEXT:    buffer_load_dword v9, off, s[0:3], s33 offset:548 ; 4-byte Folded Reload
971; GCN-NEXT:    buffer_load_dword v10, off, s[0:3], s33 offset:552 ; 4-byte Folded Reload
972; GCN-NEXT:    buffer_load_dword v11, off, s[0:3], s33 offset:556 ; 4-byte Folded Reload
973; GCN-NEXT:    buffer_load_dword v12, off, s[0:3], s33 offset:560 ; 4-byte Folded Reload
974; GCN-NEXT:    buffer_load_dword v13, off, s[0:3], s33 offset:564 ; 4-byte Folded Reload
975; GCN-NEXT:    buffer_load_dword v14, off, s[0:3], s33 offset:568 ; 4-byte Folded Reload
976; GCN-NEXT:    buffer_load_dword v15, off, s[0:3], s33 offset:572 ; 4-byte Folded Reload
977; GCN-NEXT:    buffer_load_dword v16, off, s[0:3], s33 offset:576 ; 4-byte Folded Reload
978; GCN-NEXT:    v_add_u32_e32 v0, 0xf0, v62
979; GCN-NEXT:    s_waitcnt vmcnt(0)
980; GCN-NEXT:    v_mov_b32_e32 v12, v13
981; GCN-NEXT:    v_mov_b32_e32 v13, v14
982; GCN-NEXT:    buffer_store_dword v12, v0, s[0:3], 0 offen
983; GCN-NEXT:    v_add_u32_e32 v0, 0xf4, v62
984; GCN-NEXT:    v_mov_b32_e32 v14, v15
985; GCN-NEXT:    buffer_store_dword v13, v0, s[0:3], 0 offen
986; GCN-NEXT:    v_add_u32_e32 v0, 0xf8, v62
987; GCN-NEXT:    buffer_store_dword v14, v0, s[0:3], 0 offen
988; GCN-NEXT:    v_mov_b32_e32 v15, v16
989; GCN-NEXT:    v_add_u32_e32 v0, 0xfc, v62
990; GCN-NEXT:    buffer_store_dword v15, v0, s[0:3], 0 offen
991; GCN-NEXT:    buffer_load_dword v0, off, s[0:3], s33 offset:512 ; 4-byte Folded Reload
992; GCN-NEXT:    s_waitcnt vmcnt(0)
993; GCN-NEXT:    v_and_b32_e32 v0, 31, v0
994; GCN-NEXT:    v_lshlrev_b32_e32 v0, 3, v0
995; GCN-NEXT:    v_add_u32_e32 v0, v62, v0
996; GCN-NEXT:    v_add_u32_e32 v1, 4, v0
997; GCN-NEXT:    buffer_load_dword v0, v0, s[0:3], 0 offen
998; GCN-NEXT:    buffer_load_dword v1, v1, s[0:3], 0 offen
999; GCN-NEXT:    buffer_load_dword v62, off, s[0:3], s33 ; 4-byte Folded Reload
1000; GCN-NEXT:    buffer_load_dword v61, off, s[0:3], s33 offset:4 ; 4-byte Folded Reload
1001; GCN-NEXT:    buffer_load_dword v60, off, s[0:3], s33 offset:8 ; 4-byte Folded Reload
1002; GCN-NEXT:    buffer_load_dword v59, off, s[0:3], s33 offset:12 ; 4-byte Folded Reload
1003; GCN-NEXT:    buffer_load_dword v58, off, s[0:3], s33 offset:16 ; 4-byte Folded Reload
1004; GCN-NEXT:    buffer_load_dword v57, off, s[0:3], s33 offset:20 ; 4-byte Folded Reload
1005; GCN-NEXT:    buffer_load_dword v56, off, s[0:3], s33 offset:24 ; 4-byte Folded Reload
1006; GCN-NEXT:    buffer_load_dword v47, off, s[0:3], s33 offset:28 ; 4-byte Folded Reload
1007; GCN-NEXT:    buffer_load_dword v46, off, s[0:3], s33 offset:32 ; 4-byte Folded Reload
1008; GCN-NEXT:    buffer_load_dword v45, off, s[0:3], s33 offset:36 ; 4-byte Folded Reload
1009; GCN-NEXT:    buffer_load_dword v44, off, s[0:3], s33 offset:40 ; 4-byte Folded Reload
1010; GCN-NEXT:    buffer_load_dword v43, off, s[0:3], s33 offset:44 ; 4-byte Folded Reload
1011; GCN-NEXT:    buffer_load_dword v42, off, s[0:3], s33 offset:48 ; 4-byte Folded Reload
1012; GCN-NEXT:    buffer_load_dword v41, off, s[0:3], s33 offset:52 ; 4-byte Folded Reload
1013; GCN-NEXT:    buffer_load_dword v40, off, s[0:3], s33 offset:56 ; 4-byte Folded Reload
1014; GCN-NEXT:    s_mov_b32 s33, s6
1015; GCN-NEXT:    s_waitcnt vmcnt(0)
1016; GCN-NEXT:    s_setpc_b64 s[30:31]
1017  %vec = load <32 x i64>, <32 x i64> addrspace(1)* %ptr
1018  %elt = extractelement <32 x i64> %vec, i32 %idx
1019  ret i64 %elt
1020}
1021