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 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:56 ; 4-byte Folded Spill
15; GCN-NEXT:    buffer_store_dword v41, off, s[0:3], s33 offset:52 ; 4-byte Folded Spill
16; GCN-NEXT:    buffer_store_dword v42, off, s[0:3], s33 offset:48 ; 4-byte Folded Spill
17; GCN-NEXT:    buffer_store_dword v43, off, s[0:3], s33 offset:44 ; 4-byte Folded Spill
18; GCN-NEXT:    buffer_store_dword v44, off, s[0:3], s33 offset:40 ; 4-byte Folded Spill
19; GCN-NEXT:    buffer_store_dword v45, off, s[0:3], s33 offset:36 ; 4-byte Folded Spill
20; GCN-NEXT:    buffer_store_dword v46, off, s[0:3], s33 offset:32 ; 4-byte Folded Spill
21; GCN-NEXT:    buffer_store_dword v47, off, s[0:3], s33 offset:28 ; 4-byte Folded Spill
22; GCN-NEXT:    buffer_store_dword v56, off, s[0:3], s33 offset:24 ; 4-byte Folded Spill
23; GCN-NEXT:    buffer_store_dword v57, off, s[0:3], s33 offset:20 ; 4-byte Folded Spill
24; GCN-NEXT:    buffer_store_dword v58, off, s[0:3], s33 offset:16 ; 4-byte Folded Spill
25; GCN-NEXT:    buffer_store_dword v59, off, s[0:3], s33 offset:12 ; 4-byte Folded Spill
26; GCN-NEXT:    buffer_store_dword v60, off, s[0:3], s33 offset:8 ; 4-byte Folded Spill
27; GCN-NEXT:    buffer_store_dword v61, off, s[0:3], s33 offset:4 ; 4-byte Folded Spill
28; GCN-NEXT:    buffer_store_dword v62, off, s[0:3], s33 ; 4-byte Folded Spill
29; GCN-NEXT:    global_load_dwordx4 v[3:6], v[0:1], off
30; GCN-NEXT:    global_load_dwordx4 v[7:10], v[0:1], off offset:16
31; GCN-NEXT:    global_load_dwordx4 v[11:14], v[0:1], off offset:32
32; GCN-NEXT:    global_load_dwordx4 v[15:18], v[0:1], off offset:48
33; GCN-NEXT:    global_load_dwordx4 v[19:22], v[0:1], off offset:64
34; GCN-NEXT:    global_load_dwordx4 v[23:26], v[0:1], off offset:80
35; GCN-NEXT:    global_load_dwordx4 v[27:30], v[0:1], off offset:96
36; GCN-NEXT:    global_load_dwordx4 v[31:34], v[0:1], off offset:112
37; GCN-NEXT:    global_load_dwordx4 v[35:38], v[0:1], off offset:128
38; GCN-NEXT:    global_load_dwordx4 v[39:42], v[0:1], off offset:144
39; GCN-NEXT:    global_load_dwordx4 v[43:46], v[0:1], off offset:160
40; GCN-NEXT:    global_load_dwordx4 v[47:50], v[0:1], off offset:176
41; GCN-NEXT:    s_add_i32 s32, s32, 0x10000
42; GCN-NEXT:    s_add_i32 s32, s32, 0xffff0000
43; GCN-NEXT:    s_waitcnt vmcnt(0)
44; GCN-NEXT:    buffer_store_dword v35, off, s[0:3], s33 offset:640 ; 4-byte Folded Spill
45; GCN-NEXT:    s_waitcnt vmcnt(0)
46; GCN-NEXT:    buffer_store_dword v36, off, s[0:3], s33 offset:644 ; 4-byte Folded Spill
47; GCN-NEXT:    buffer_store_dword v37, off, s[0:3], s33 offset:648 ; 4-byte Folded Spill
48; GCN-NEXT:    buffer_store_dword v38, off, s[0:3], s33 offset:652 ; 4-byte Folded Spill
49; GCN-NEXT:    buffer_store_dword v39, off, s[0:3], s33 offset:656 ; 4-byte Folded Spill
50; GCN-NEXT:    buffer_store_dword v40, off, s[0:3], s33 offset:660 ; 4-byte Folded Spill
51; GCN-NEXT:    buffer_store_dword v41, off, s[0:3], s33 offset:664 ; 4-byte Folded Spill
52; GCN-NEXT:    buffer_store_dword v42, off, s[0:3], s33 offset:668 ; 4-byte Folded Spill
53; GCN-NEXT:    buffer_store_dword v43, off, s[0:3], s33 offset:672 ; 4-byte Folded Spill
54; GCN-NEXT:    buffer_store_dword v44, off, s[0:3], s33 offset:676 ; 4-byte Folded Spill
55; GCN-NEXT:    buffer_store_dword v45, off, s[0:3], s33 offset:680 ; 4-byte Folded Spill
56; GCN-NEXT:    buffer_store_dword v46, off, s[0:3], s33 offset:684 ; 4-byte Folded Spill
57; GCN-NEXT:    buffer_store_dword v47, off, s[0:3], s33 offset:688 ; 4-byte Folded Spill
58; GCN-NEXT:    buffer_store_dword v48, off, s[0:3], s33 offset:692 ; 4-byte Folded Spill
59; GCN-NEXT:    buffer_store_dword v49, off, s[0:3], s33 offset:696 ; 4-byte Folded Spill
60; GCN-NEXT:    buffer_store_dword v50, off, s[0:3], s33 offset:700 ; 4-byte Folded Spill
61; GCN-NEXT:    global_load_dwordx4 v[47:50], v[0:1], off offset:192
62; GCN-NEXT:    s_waitcnt vmcnt(0)
63; GCN-NEXT:    buffer_store_dword v47, off, s[0:3], s33 offset:576 ; 4-byte Folded Spill
64; GCN-NEXT:    s_waitcnt vmcnt(0)
65; GCN-NEXT:    buffer_store_dword v48, off, s[0:3], s33 offset:580 ; 4-byte Folded Spill
66; GCN-NEXT:    buffer_store_dword v49, off, s[0:3], s33 offset:584 ; 4-byte Folded Spill
67; GCN-NEXT:    buffer_store_dword v50, off, s[0:3], s33 offset:588 ; 4-byte Folded Spill
68; GCN-NEXT:    buffer_store_dword v51, off, s[0:3], s33 offset:592 ; 4-byte Folded Spill
69; GCN-NEXT:    buffer_store_dword v52, off, s[0:3], s33 offset:596 ; 4-byte Folded Spill
70; GCN-NEXT:    buffer_store_dword v53, off, s[0:3], s33 offset:600 ; 4-byte Folded Spill
71; GCN-NEXT:    buffer_store_dword v54, off, s[0:3], s33 offset:604 ; 4-byte Folded Spill
72; GCN-NEXT:    buffer_store_dword v55, off, s[0:3], s33 offset:608 ; 4-byte Folded Spill
73; GCN-NEXT:    buffer_store_dword v56, off, s[0:3], s33 offset:612 ; 4-byte Folded Spill
74; GCN-NEXT:    buffer_store_dword v57, off, s[0:3], s33 offset:616 ; 4-byte Folded Spill
75; GCN-NEXT:    buffer_store_dword v58, off, s[0:3], s33 offset:620 ; 4-byte Folded Spill
76; GCN-NEXT:    buffer_store_dword v59, off, s[0:3], s33 offset:624 ; 4-byte Folded Spill
77; GCN-NEXT:    buffer_store_dword v60, off, s[0:3], s33 offset:628 ; 4-byte Folded Spill
78; GCN-NEXT:    buffer_store_dword v61, off, s[0:3], s33 offset:632 ; 4-byte Folded Spill
79; GCN-NEXT:    buffer_store_dword v62, off, s[0:3], s33 offset:636 ; 4-byte Folded Spill
80; GCN-NEXT:    global_load_dwordx4 v[51:54], v[0:1], off offset:208
81; GCN-NEXT:    s_waitcnt vmcnt(0)
82; GCN-NEXT:    buffer_store_dword v47, off, s[0:3], s33 offset:512 ; 4-byte Folded Spill
83; GCN-NEXT:    s_waitcnt vmcnt(0)
84; GCN-NEXT:    buffer_store_dword v48, off, s[0:3], s33 offset:516 ; 4-byte Folded Spill
85; GCN-NEXT:    buffer_store_dword v49, off, s[0:3], s33 offset:520 ; 4-byte Folded Spill
86; GCN-NEXT:    buffer_store_dword v50, off, s[0:3], s33 offset:524 ; 4-byte Folded Spill
87; GCN-NEXT:    buffer_store_dword v51, off, s[0:3], s33 offset:528 ; 4-byte Folded Spill
88; GCN-NEXT:    buffer_store_dword v52, off, s[0:3], s33 offset:532 ; 4-byte Folded Spill
89; GCN-NEXT:    buffer_store_dword v53, off, s[0:3], s33 offset:536 ; 4-byte Folded Spill
90; GCN-NEXT:    buffer_store_dword v54, off, s[0:3], s33 offset:540 ; 4-byte Folded Spill
91; GCN-NEXT:    buffer_store_dword v55, off, s[0:3], s33 offset:544 ; 4-byte Folded Spill
92; GCN-NEXT:    buffer_store_dword v56, off, s[0:3], s33 offset:548 ; 4-byte Folded Spill
93; GCN-NEXT:    buffer_store_dword v57, off, s[0:3], s33 offset:552 ; 4-byte Folded Spill
94; GCN-NEXT:    buffer_store_dword v58, off, s[0:3], s33 offset:556 ; 4-byte Folded Spill
95; GCN-NEXT:    buffer_store_dword v59, off, s[0:3], s33 offset:560 ; 4-byte Folded Spill
96; GCN-NEXT:    buffer_store_dword v60, off, s[0:3], s33 offset:564 ; 4-byte Folded Spill
97; GCN-NEXT:    buffer_store_dword v61, off, s[0:3], s33 offset:568 ; 4-byte Folded Spill
98; GCN-NEXT:    buffer_store_dword v62, off, s[0:3], s33 offset:572 ; 4-byte Folded Spill
99; GCN-NEXT:    global_load_dwordx4 v[55:58], v[0:1], off offset:224
100; GCN-NEXT:    global_load_dwordx4 v[59:62], v[0:1], off offset:240
101; GCN-NEXT:    buffer_store_dword v3, off, s[0:3], s33 offset:256
102; GCN-NEXT:    buffer_store_dword v4, off, s[0:3], s33 offset:260
103; GCN-NEXT:    buffer_store_dword v5, off, s[0:3], s33 offset:264
104; GCN-NEXT:    buffer_store_dword v6, off, s[0:3], s33 offset:268
105; GCN-NEXT:    buffer_store_dword v7, off, s[0:3], s33 offset:272
106; GCN-NEXT:    buffer_store_dword v8, off, s[0:3], s33 offset:276
107; GCN-NEXT:    buffer_store_dword v9, off, s[0:3], s33 offset:280
108; GCN-NEXT:    buffer_store_dword v10, off, s[0:3], s33 offset:284
109; GCN-NEXT:    buffer_store_dword v11, off, s[0:3], s33 offset:288
110; GCN-NEXT:    buffer_store_dword v12, off, s[0:3], s33 offset:292
111; GCN-NEXT:    buffer_store_dword v13, off, s[0:3], s33 offset:296
112; GCN-NEXT:    buffer_store_dword v14, off, s[0:3], s33 offset:300
113; GCN-NEXT:    buffer_store_dword v15, off, s[0:3], s33 offset:304
114; GCN-NEXT:    buffer_store_dword v16, off, s[0:3], s33 offset:308
115; GCN-NEXT:    buffer_store_dword v17, off, s[0:3], s33 offset:312
116; GCN-NEXT:    buffer_store_dword v18, off, s[0:3], s33 offset:316
117; GCN-NEXT:    buffer_store_dword v19, off, s[0:3], s33 offset:320
118; GCN-NEXT:    buffer_store_dword v20, off, s[0:3], s33 offset:324
119; GCN-NEXT:    buffer_store_dword v21, off, s[0:3], s33 offset:328
120; GCN-NEXT:    buffer_store_dword v22, off, s[0:3], s33 offset:332
121; GCN-NEXT:    buffer_store_dword v23, off, s[0:3], s33 offset:336
122; GCN-NEXT:    buffer_store_dword v24, off, s[0:3], s33 offset:340
123; GCN-NEXT:    buffer_store_dword v25, off, s[0:3], s33 offset:344
124; GCN-NEXT:    buffer_store_dword v26, off, s[0:3], s33 offset:348
125; GCN-NEXT:    buffer_store_dword v27, off, s[0:3], s33 offset:352
126; GCN-NEXT:    buffer_store_dword v28, off, s[0:3], s33 offset:356
127; GCN-NEXT:    buffer_store_dword v29, off, s[0:3], s33 offset:360
128; GCN-NEXT:    buffer_store_dword v30, off, s[0:3], s33 offset:364
129; GCN-NEXT:    buffer_store_dword v31, off, s[0:3], s33 offset:368
130; GCN-NEXT:    buffer_store_dword v32, off, s[0:3], s33 offset:372
131; GCN-NEXT:    buffer_store_dword v33, off, s[0:3], s33 offset:376
132; GCN-NEXT:    buffer_store_dword v34, off, s[0:3], s33 offset:380
133; GCN-NEXT:    buffer_store_dword v35, off, s[0:3], s33 offset:384
134; GCN-NEXT:    buffer_store_dword v36, off, s[0:3], s33 offset:388
135; GCN-NEXT:    buffer_store_dword v37, off, s[0:3], s33 offset:392
136; GCN-NEXT:    buffer_store_dword v38, off, s[0:3], s33 offset:396
137; GCN-NEXT:    buffer_store_dword v39, off, s[0:3], s33 offset:400
138; GCN-NEXT:    buffer_store_dword v40, off, s[0:3], s33 offset:404
139; GCN-NEXT:    buffer_store_dword v41, off, s[0:3], s33 offset:408
140; GCN-NEXT:    buffer_store_dword v42, off, s[0:3], s33 offset:412
141; GCN-NEXT:    buffer_store_dword v43, off, s[0:3], s33 offset:416
142; GCN-NEXT:    buffer_store_dword v44, off, s[0:3], s33 offset:420
143; GCN-NEXT:    buffer_store_dword v45, off, s[0:3], s33 offset:424
144; GCN-NEXT:    buffer_store_dword v46, off, s[0:3], s33 offset:428
145; GCN-NEXT:    buffer_load_dword v3, off, s[0:3], s33 offset:640 ; 4-byte Folded Reload
146; GCN-NEXT:    buffer_load_dword v4, off, s[0:3], s33 offset:644 ; 4-byte Folded Reload
147; GCN-NEXT:    buffer_load_dword v5, off, s[0:3], s33 offset:648 ; 4-byte Folded Reload
148; GCN-NEXT:    buffer_load_dword v6, off, s[0:3], s33 offset:652 ; 4-byte Folded Reload
149; GCN-NEXT:    buffer_load_dword v7, off, s[0:3], s33 offset:656 ; 4-byte Folded Reload
150; GCN-NEXT:    buffer_load_dword v8, off, s[0:3], s33 offset:660 ; 4-byte Folded Reload
151; GCN-NEXT:    buffer_load_dword v9, off, s[0:3], s33 offset:664 ; 4-byte Folded Reload
152; GCN-NEXT:    buffer_load_dword v10, off, s[0:3], s33 offset:668 ; 4-byte Folded Reload
153; GCN-NEXT:    buffer_load_dword v11, off, s[0:3], s33 offset:672 ; 4-byte Folded Reload
154; GCN-NEXT:    buffer_load_dword v12, off, s[0:3], s33 offset:676 ; 4-byte Folded Reload
155; GCN-NEXT:    buffer_load_dword v13, off, s[0:3], s33 offset:680 ; 4-byte Folded Reload
156; GCN-NEXT:    buffer_load_dword v14, off, s[0:3], s33 offset:684 ; 4-byte Folded Reload
157; GCN-NEXT:    buffer_load_dword v15, off, s[0:3], s33 offset:688 ; 4-byte Folded Reload
158; GCN-NEXT:    buffer_load_dword v16, off, s[0:3], s33 offset:692 ; 4-byte Folded Reload
159; GCN-NEXT:    buffer_load_dword v17, off, s[0:3], s33 offset:696 ; 4-byte Folded Reload
160; GCN-NEXT:    buffer_load_dword v18, off, s[0:3], s33 offset:700 ; 4-byte Folded Reload
161; GCN-NEXT:    v_and_b32_e32 v0, 63, v2
162; GCN-NEXT:    v_lshrrev_b32_e64 v1, 6, s33
163; GCN-NEXT:    v_lshlrev_b32_e32 v0, 2, v0
164; GCN-NEXT:    v_add_u32_e32 v1, 0x100, v1
165; GCN-NEXT:    v_add_u32_e32 v0, v1, v0
166; GCN-NEXT:    s_waitcnt vmcnt(0)
167; GCN-NEXT:    v_mov_b32_e32 v12, v15
168; GCN-NEXT:    v_mov_b32_e32 v13, v16
169; GCN-NEXT:    v_mov_b32_e32 v14, v17
170; GCN-NEXT:    v_mov_b32_e32 v15, v18
171; GCN-NEXT:    buffer_store_dword v12, off, s[0:3], s33 offset:432
172; GCN-NEXT:    buffer_store_dword v13, off, s[0:3], s33 offset:436
173; GCN-NEXT:    buffer_store_dword v14, off, s[0:3], s33 offset:440
174; GCN-NEXT:    buffer_store_dword v15, off, s[0:3], s33 offset:444
175; GCN-NEXT:    buffer_load_dword v3, off, s[0:3], s33 offset:576 ; 4-byte Folded Reload
176; GCN-NEXT:    buffer_load_dword v4, off, s[0:3], s33 offset:580 ; 4-byte Folded Reload
177; GCN-NEXT:    buffer_load_dword v5, off, s[0:3], s33 offset:584 ; 4-byte Folded Reload
178; GCN-NEXT:    buffer_load_dword v6, off, s[0:3], s33 offset:588 ; 4-byte Folded Reload
179; GCN-NEXT:    buffer_load_dword v7, off, s[0:3], s33 offset:592 ; 4-byte Folded Reload
180; GCN-NEXT:    buffer_load_dword v8, off, s[0:3], s33 offset:596 ; 4-byte Folded Reload
181; GCN-NEXT:    buffer_load_dword v9, off, s[0:3], s33 offset:600 ; 4-byte Folded Reload
182; GCN-NEXT:    buffer_load_dword v10, off, s[0:3], s33 offset:604 ; 4-byte Folded Reload
183; GCN-NEXT:    buffer_load_dword v11, off, s[0:3], s33 offset:608 ; 4-byte Folded Reload
184; GCN-NEXT:    buffer_load_dword v12, off, s[0:3], s33 offset:612 ; 4-byte Folded Reload
185; GCN-NEXT:    buffer_load_dword v13, off, s[0:3], s33 offset:616 ; 4-byte Folded Reload
186; GCN-NEXT:    buffer_load_dword v14, off, s[0:3], s33 offset:620 ; 4-byte Folded Reload
187; GCN-NEXT:    buffer_load_dword v15, off, s[0:3], s33 offset:624 ; 4-byte Folded Reload
188; GCN-NEXT:    buffer_load_dword v16, off, s[0:3], s33 offset:628 ; 4-byte Folded Reload
189; GCN-NEXT:    buffer_load_dword v17, off, s[0:3], s33 offset:632 ; 4-byte Folded Reload
190; GCN-NEXT:    buffer_load_dword v18, off, s[0:3], s33 offset:636 ; 4-byte Folded Reload
191; GCN-NEXT:    s_waitcnt vmcnt(0)
192; GCN-NEXT:    buffer_store_dword v3, off, s[0:3], s33 offset:448
193; GCN-NEXT:    buffer_store_dword v4, off, s[0:3], s33 offset:452
194; GCN-NEXT:    buffer_store_dword v5, off, s[0:3], s33 offset:456
195; GCN-NEXT:    buffer_store_dword v6, off, s[0:3], s33 offset:460
196; GCN-NEXT:    buffer_load_dword v3, off, s[0:3], s33 offset:512 ; 4-byte Folded Reload
197; GCN-NEXT:    buffer_load_dword v4, off, s[0:3], s33 offset:516 ; 4-byte Folded Reload
198; GCN-NEXT:    buffer_load_dword v5, off, s[0:3], s33 offset:520 ; 4-byte Folded Reload
199; GCN-NEXT:    buffer_load_dword v6, off, s[0:3], s33 offset:524 ; 4-byte Folded Reload
200; GCN-NEXT:    buffer_load_dword v7, off, s[0:3], s33 offset:528 ; 4-byte Folded Reload
201; GCN-NEXT:    buffer_load_dword v8, off, s[0:3], s33 offset:532 ; 4-byte Folded Reload
202; GCN-NEXT:    buffer_load_dword v9, off, s[0:3], s33 offset:536 ; 4-byte Folded Reload
203; GCN-NEXT:    buffer_load_dword v10, off, s[0:3], s33 offset:540 ; 4-byte Folded Reload
204; GCN-NEXT:    buffer_load_dword v11, off, s[0:3], s33 offset:544 ; 4-byte Folded Reload
205; GCN-NEXT:    buffer_load_dword v12, off, s[0:3], s33 offset:548 ; 4-byte Folded Reload
206; GCN-NEXT:    buffer_load_dword v13, off, s[0:3], s33 offset:552 ; 4-byte Folded Reload
207; GCN-NEXT:    buffer_load_dword v14, off, s[0:3], s33 offset:556 ; 4-byte Folded Reload
208; GCN-NEXT:    buffer_load_dword v15, off, s[0:3], s33 offset:560 ; 4-byte Folded Reload
209; GCN-NEXT:    buffer_load_dword v16, off, s[0:3], s33 offset:564 ; 4-byte Folded Reload
210; GCN-NEXT:    buffer_load_dword v17, off, s[0:3], s33 offset:568 ; 4-byte Folded Reload
211; GCN-NEXT:    buffer_load_dword v18, off, s[0:3], s33 offset:572 ; 4-byte Folded Reload
212; GCN-NEXT:    s_waitcnt vmcnt(0)
213; GCN-NEXT:    v_mov_b32_e32 v4, v7
214; GCN-NEXT:    v_mov_b32_e32 v5, v8
215; GCN-NEXT:    v_mov_b32_e32 v6, v9
216; GCN-NEXT:    v_mov_b32_e32 v7, v10
217; GCN-NEXT:    buffer_store_dword v4, off, s[0:3], s33 offset:464
218; GCN-NEXT:    buffer_store_dword v5, off, s[0:3], s33 offset:468
219; GCN-NEXT:    buffer_store_dword v6, off, s[0:3], s33 offset:472
220; GCN-NEXT:    buffer_store_dword v7, off, s[0:3], s33 offset:476
221; GCN-NEXT:    buffer_store_dword v55, off, s[0:3], s33 offset:480
222; GCN-NEXT:    buffer_store_dword v56, off, s[0:3], s33 offset:484
223; GCN-NEXT:    buffer_store_dword v57, off, s[0:3], s33 offset:488
224; GCN-NEXT:    buffer_store_dword v58, off, s[0:3], s33 offset:492
225; GCN-NEXT:    buffer_store_dword v59, off, s[0:3], s33 offset:496
226; GCN-NEXT:    buffer_store_dword v60, off, s[0:3], s33 offset:500
227; GCN-NEXT:    buffer_store_dword v61, off, s[0:3], s33 offset:504
228; GCN-NEXT:    buffer_store_dword v62, off, s[0:3], s33 offset:508
229; GCN-NEXT:    buffer_load_dword v0, v0, s[0:3], 0 offen
230; GCN-NEXT:    buffer_load_dword v62, off, s[0:3], s33 ; 4-byte Folded Reload
231; GCN-NEXT:    buffer_load_dword v61, off, s[0:3], s33 offset:4 ; 4-byte Folded Reload
232; GCN-NEXT:    buffer_load_dword v60, off, s[0:3], s33 offset:8 ; 4-byte Folded Reload
233; GCN-NEXT:    buffer_load_dword v59, off, s[0:3], s33 offset:12 ; 4-byte Folded Reload
234; GCN-NEXT:    buffer_load_dword v58, off, s[0:3], s33 offset:16 ; 4-byte Folded Reload
235; GCN-NEXT:    buffer_load_dword v57, off, s[0:3], s33 offset:20 ; 4-byte Folded Reload
236; GCN-NEXT:    buffer_load_dword v56, off, s[0:3], s33 offset:24 ; 4-byte Folded Reload
237; GCN-NEXT:    buffer_load_dword v47, off, s[0:3], s33 offset:28 ; 4-byte Folded Reload
238; GCN-NEXT:    buffer_load_dword v46, off, s[0:3], s33 offset:32 ; 4-byte Folded Reload
239; GCN-NEXT:    buffer_load_dword v45, off, s[0:3], s33 offset:36 ; 4-byte Folded Reload
240; GCN-NEXT:    buffer_load_dword v44, off, s[0:3], s33 offset:40 ; 4-byte Folded Reload
241; GCN-NEXT:    buffer_load_dword v43, off, s[0:3], s33 offset:44 ; 4-byte Folded Reload
242; GCN-NEXT:    buffer_load_dword v42, off, s[0:3], s33 offset:48 ; 4-byte Folded Reload
243; GCN-NEXT:    buffer_load_dword v41, off, s[0:3], s33 offset:52 ; 4-byte Folded Reload
244; GCN-NEXT:    buffer_load_dword v40, off, s[0:3], s33 offset:56 ; 4-byte Folded Reload
245; GCN-NEXT:    s_mov_b32 s33, s4
246; GCN-NEXT:    s_waitcnt vmcnt(0)
247; GCN-NEXT:    s_setpc_b64 s[30:31]
248  %vec = load <64 x i32>, <64 x i32> addrspace(1)* %ptr
249  %elt = extractelement <64 x i32> %vec, i32 %idx
250  ret i32 %elt
251}
252
253define i16 @v_extract_v128i16_varidx(<128 x i16> addrspace(1)* %ptr, i32 %idx) {
254; GCN-LABEL: v_extract_v128i16_varidx:
255; GCN:       ; %bb.0:
256; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
257; GCN-NEXT:    s_mov_b32 s4, s33
258; GCN-NEXT:    s_add_i32 s33, s32, 0x3fc0
259; GCN-NEXT:    s_and_b32 s33, s33, 0xffffc000
260; GCN-NEXT:    buffer_store_dword v40, off, s[0:3], s33 offset:56 ; 4-byte Folded Spill
261; GCN-NEXT:    buffer_store_dword v41, off, s[0:3], s33 offset:52 ; 4-byte Folded Spill
262; GCN-NEXT:    buffer_store_dword v42, off, s[0:3], s33 offset:48 ; 4-byte Folded Spill
263; GCN-NEXT:    buffer_store_dword v43, off, s[0:3], s33 offset:44 ; 4-byte Folded Spill
264; GCN-NEXT:    buffer_store_dword v44, off, s[0:3], s33 offset:40 ; 4-byte Folded Spill
265; GCN-NEXT:    buffer_store_dword v45, off, s[0:3], s33 offset:36 ; 4-byte Folded Spill
266; GCN-NEXT:    buffer_store_dword v46, off, s[0:3], s33 offset:32 ; 4-byte Folded Spill
267; GCN-NEXT:    buffer_store_dword v47, off, s[0:3], s33 offset:28 ; 4-byte Folded Spill
268; GCN-NEXT:    buffer_store_dword v56, off, s[0:3], s33 offset:24 ; 4-byte Folded Spill
269; GCN-NEXT:    buffer_store_dword v57, off, s[0:3], s33 offset:20 ; 4-byte Folded Spill
270; GCN-NEXT:    buffer_store_dword v58, off, s[0:3], s33 offset:16 ; 4-byte Folded Spill
271; GCN-NEXT:    buffer_store_dword v59, off, s[0:3], s33 offset:12 ; 4-byte Folded Spill
272; GCN-NEXT:    buffer_store_dword v60, off, s[0:3], s33 offset:8 ; 4-byte Folded Spill
273; GCN-NEXT:    buffer_store_dword v61, off, s[0:3], s33 offset:4 ; 4-byte Folded Spill
274; GCN-NEXT:    buffer_store_dword v62, off, s[0:3], s33 ; 4-byte Folded Spill
275; GCN-NEXT:    global_load_dwordx4 v[3:6], v[0:1], off
276; GCN-NEXT:    global_load_dwordx4 v[7:10], v[0:1], off offset:16
277; GCN-NEXT:    global_load_dwordx4 v[11:14], v[0:1], off offset:32
278; GCN-NEXT:    global_load_dwordx4 v[15:18], v[0:1], off offset:48
279; GCN-NEXT:    global_load_dwordx4 v[19:22], v[0:1], off offset:64
280; GCN-NEXT:    global_load_dwordx4 v[23:26], v[0:1], off offset:80
281; GCN-NEXT:    global_load_dwordx4 v[27:30], v[0:1], off offset:96
282; GCN-NEXT:    global_load_dwordx4 v[31:34], v[0:1], off offset:112
283; GCN-NEXT:    global_load_dwordx4 v[35:38], v[0:1], off offset:128
284; GCN-NEXT:    global_load_dwordx4 v[39:42], v[0:1], off offset:144
285; GCN-NEXT:    global_load_dwordx4 v[43:46], v[0:1], off offset:160
286; GCN-NEXT:    global_load_dwordx4 v[47:50], v[0:1], off offset:176
287; GCN-NEXT:    s_add_i32 s32, s32, 0x10000
288; GCN-NEXT:    s_add_i32 s32, s32, 0xffff0000
289; GCN-NEXT:    s_waitcnt vmcnt(0)
290; GCN-NEXT:    buffer_store_dword v35, off, s[0:3], s33 offset:640 ; 4-byte Folded Spill
291; GCN-NEXT:    s_waitcnt vmcnt(0)
292; GCN-NEXT:    buffer_store_dword v36, off, s[0:3], s33 offset:644 ; 4-byte Folded Spill
293; GCN-NEXT:    buffer_store_dword v37, off, s[0:3], s33 offset:648 ; 4-byte Folded Spill
294; GCN-NEXT:    buffer_store_dword v38, off, s[0:3], s33 offset:652 ; 4-byte Folded Spill
295; GCN-NEXT:    buffer_store_dword v39, off, s[0:3], s33 offset:656 ; 4-byte Folded Spill
296; GCN-NEXT:    buffer_store_dword v40, off, s[0:3], s33 offset:660 ; 4-byte Folded Spill
297; GCN-NEXT:    buffer_store_dword v41, off, s[0:3], s33 offset:664 ; 4-byte Folded Spill
298; GCN-NEXT:    buffer_store_dword v42, off, s[0:3], s33 offset:668 ; 4-byte Folded Spill
299; GCN-NEXT:    buffer_store_dword v43, off, s[0:3], s33 offset:672 ; 4-byte Folded Spill
300; GCN-NEXT:    buffer_store_dword v44, off, s[0:3], s33 offset:676 ; 4-byte Folded Spill
301; GCN-NEXT:    buffer_store_dword v45, off, s[0:3], s33 offset:680 ; 4-byte Folded Spill
302; GCN-NEXT:    buffer_store_dword v46, off, s[0:3], s33 offset:684 ; 4-byte Folded Spill
303; GCN-NEXT:    buffer_store_dword v47, off, s[0:3], s33 offset:688 ; 4-byte Folded Spill
304; GCN-NEXT:    buffer_store_dword v48, off, s[0:3], s33 offset:692 ; 4-byte Folded Spill
305; GCN-NEXT:    buffer_store_dword v49, off, s[0:3], s33 offset:696 ; 4-byte Folded Spill
306; GCN-NEXT:    buffer_store_dword v50, off, s[0:3], s33 offset:700 ; 4-byte Folded Spill
307; GCN-NEXT:    global_load_dwordx4 v[47:50], v[0:1], off offset:192
308; GCN-NEXT:    s_waitcnt vmcnt(0)
309; GCN-NEXT:    buffer_store_dword v47, off, s[0:3], s33 offset:576 ; 4-byte Folded Spill
310; GCN-NEXT:    s_waitcnt vmcnt(0)
311; GCN-NEXT:    buffer_store_dword v48, off, s[0:3], s33 offset:580 ; 4-byte Folded Spill
312; GCN-NEXT:    buffer_store_dword v49, off, s[0:3], s33 offset:584 ; 4-byte Folded Spill
313; GCN-NEXT:    buffer_store_dword v50, off, s[0:3], s33 offset:588 ; 4-byte Folded Spill
314; GCN-NEXT:    buffer_store_dword v51, off, s[0:3], s33 offset:592 ; 4-byte Folded Spill
315; GCN-NEXT:    buffer_store_dword v52, off, s[0:3], s33 offset:596 ; 4-byte Folded Spill
316; GCN-NEXT:    buffer_store_dword v53, off, s[0:3], s33 offset:600 ; 4-byte Folded Spill
317; GCN-NEXT:    buffer_store_dword v54, off, s[0:3], s33 offset:604 ; 4-byte Folded Spill
318; GCN-NEXT:    buffer_store_dword v55, off, s[0:3], s33 offset:608 ; 4-byte Folded Spill
319; GCN-NEXT:    buffer_store_dword v56, off, s[0:3], s33 offset:612 ; 4-byte Folded Spill
320; GCN-NEXT:    buffer_store_dword v57, off, s[0:3], s33 offset:616 ; 4-byte Folded Spill
321; GCN-NEXT:    buffer_store_dword v58, off, s[0:3], s33 offset:620 ; 4-byte Folded Spill
322; GCN-NEXT:    buffer_store_dword v59, off, s[0:3], s33 offset:624 ; 4-byte Folded Spill
323; GCN-NEXT:    buffer_store_dword v60, off, s[0:3], s33 offset:628 ; 4-byte Folded Spill
324; GCN-NEXT:    buffer_store_dword v61, off, s[0:3], s33 offset:632 ; 4-byte Folded Spill
325; GCN-NEXT:    buffer_store_dword v62, off, s[0:3], s33 offset:636 ; 4-byte Folded Spill
326; GCN-NEXT:    global_load_dwordx4 v[51:54], v[0:1], off offset:208
327; GCN-NEXT:    s_waitcnt vmcnt(0)
328; GCN-NEXT:    buffer_store_dword v47, off, s[0:3], s33 offset:512 ; 4-byte Folded Spill
329; GCN-NEXT:    s_waitcnt vmcnt(0)
330; GCN-NEXT:    buffer_store_dword v48, off, s[0:3], s33 offset:516 ; 4-byte Folded Spill
331; GCN-NEXT:    buffer_store_dword v49, off, s[0:3], s33 offset:520 ; 4-byte Folded Spill
332; GCN-NEXT:    buffer_store_dword v50, off, s[0:3], s33 offset:524 ; 4-byte Folded Spill
333; GCN-NEXT:    buffer_store_dword v51, off, s[0:3], s33 offset:528 ; 4-byte Folded Spill
334; GCN-NEXT:    buffer_store_dword v52, off, s[0:3], s33 offset:532 ; 4-byte Folded Spill
335; GCN-NEXT:    buffer_store_dword v53, off, s[0:3], s33 offset:536 ; 4-byte Folded Spill
336; GCN-NEXT:    buffer_store_dword v54, off, s[0:3], s33 offset:540 ; 4-byte Folded Spill
337; GCN-NEXT:    buffer_store_dword v55, off, s[0:3], s33 offset:544 ; 4-byte Folded Spill
338; GCN-NEXT:    buffer_store_dword v56, off, s[0:3], s33 offset:548 ; 4-byte Folded Spill
339; GCN-NEXT:    buffer_store_dword v57, off, s[0:3], s33 offset:552 ; 4-byte Folded Spill
340; GCN-NEXT:    buffer_store_dword v58, off, s[0:3], s33 offset:556 ; 4-byte Folded Spill
341; GCN-NEXT:    buffer_store_dword v59, off, s[0:3], s33 offset:560 ; 4-byte Folded Spill
342; GCN-NEXT:    buffer_store_dword v60, off, s[0:3], s33 offset:564 ; 4-byte Folded Spill
343; GCN-NEXT:    buffer_store_dword v61, off, s[0:3], s33 offset:568 ; 4-byte Folded Spill
344; GCN-NEXT:    buffer_store_dword v62, off, s[0:3], s33 offset:572 ; 4-byte Folded Spill
345; GCN-NEXT:    global_load_dwordx4 v[55:58], v[0:1], off offset:224
346; GCN-NEXT:    global_load_dwordx4 v[59:62], v[0:1], off offset:240
347; GCN-NEXT:    buffer_store_dword v3, off, s[0:3], s33 offset:256
348; GCN-NEXT:    buffer_store_dword v4, off, s[0:3], s33 offset:260
349; GCN-NEXT:    buffer_store_dword v5, off, s[0:3], s33 offset:264
350; GCN-NEXT:    buffer_store_dword v6, off, s[0:3], s33 offset:268
351; GCN-NEXT:    buffer_store_dword v7, off, s[0:3], s33 offset:272
352; GCN-NEXT:    buffer_store_dword v8, off, s[0:3], s33 offset:276
353; GCN-NEXT:    buffer_store_dword v9, off, s[0:3], s33 offset:280
354; GCN-NEXT:    buffer_store_dword v10, off, s[0:3], s33 offset:284
355; GCN-NEXT:    buffer_store_dword v11, off, s[0:3], s33 offset:288
356; GCN-NEXT:    buffer_store_dword v12, off, s[0:3], s33 offset:292
357; GCN-NEXT:    buffer_store_dword v13, off, s[0:3], s33 offset:296
358; GCN-NEXT:    buffer_store_dword v14, off, s[0:3], s33 offset:300
359; GCN-NEXT:    buffer_store_dword v15, off, s[0:3], s33 offset:304
360; GCN-NEXT:    buffer_store_dword v16, off, s[0:3], s33 offset:308
361; GCN-NEXT:    buffer_store_dword v17, off, s[0:3], s33 offset:312
362; GCN-NEXT:    buffer_store_dword v18, off, s[0:3], s33 offset:316
363; GCN-NEXT:    buffer_store_dword v19, off, s[0:3], s33 offset:320
364; GCN-NEXT:    buffer_store_dword v20, off, s[0:3], s33 offset:324
365; GCN-NEXT:    buffer_store_dword v21, off, s[0:3], s33 offset:328
366; GCN-NEXT:    buffer_store_dword v22, off, s[0:3], s33 offset:332
367; GCN-NEXT:    buffer_store_dword v23, off, s[0:3], s33 offset:336
368; GCN-NEXT:    buffer_store_dword v24, off, s[0:3], s33 offset:340
369; GCN-NEXT:    buffer_store_dword v25, off, s[0:3], s33 offset:344
370; GCN-NEXT:    buffer_store_dword v26, off, s[0:3], s33 offset:348
371; GCN-NEXT:    buffer_store_dword v27, off, s[0:3], s33 offset:352
372; GCN-NEXT:    buffer_store_dword v28, off, s[0:3], s33 offset:356
373; GCN-NEXT:    buffer_store_dword v29, off, s[0:3], s33 offset:360
374; GCN-NEXT:    buffer_store_dword v30, off, s[0:3], s33 offset:364
375; GCN-NEXT:    buffer_store_dword v31, off, s[0:3], s33 offset:368
376; GCN-NEXT:    buffer_store_dword v32, off, s[0:3], s33 offset:372
377; GCN-NEXT:    buffer_store_dword v33, off, s[0:3], s33 offset:376
378; GCN-NEXT:    buffer_store_dword v34, off, s[0:3], s33 offset:380
379; GCN-NEXT:    buffer_store_dword v35, off, s[0:3], s33 offset:384
380; GCN-NEXT:    buffer_store_dword v36, off, s[0:3], s33 offset:388
381; GCN-NEXT:    buffer_store_dword v37, off, s[0:3], s33 offset:392
382; GCN-NEXT:    buffer_store_dword v38, off, s[0:3], s33 offset:396
383; GCN-NEXT:    buffer_store_dword v39, off, s[0:3], s33 offset:400
384; GCN-NEXT:    buffer_store_dword v40, off, s[0:3], s33 offset:404
385; GCN-NEXT:    buffer_store_dword v41, off, s[0:3], s33 offset:408
386; GCN-NEXT:    buffer_store_dword v42, off, s[0:3], s33 offset:412
387; GCN-NEXT:    buffer_store_dword v43, off, s[0:3], s33 offset:416
388; GCN-NEXT:    buffer_store_dword v44, off, s[0:3], s33 offset:420
389; GCN-NEXT:    buffer_store_dword v45, off, s[0:3], s33 offset:424
390; GCN-NEXT:    buffer_store_dword v46, off, s[0:3], s33 offset:428
391; GCN-NEXT:    buffer_load_dword v3, off, s[0:3], s33 offset:640 ; 4-byte Folded Reload
392; GCN-NEXT:    buffer_load_dword v4, off, s[0:3], s33 offset:644 ; 4-byte Folded Reload
393; GCN-NEXT:    buffer_load_dword v5, off, s[0:3], s33 offset:648 ; 4-byte Folded Reload
394; GCN-NEXT:    buffer_load_dword v6, off, s[0:3], s33 offset:652 ; 4-byte Folded Reload
395; GCN-NEXT:    buffer_load_dword v7, off, s[0:3], s33 offset:656 ; 4-byte Folded Reload
396; GCN-NEXT:    buffer_load_dword v8, off, s[0:3], s33 offset:660 ; 4-byte Folded Reload
397; GCN-NEXT:    buffer_load_dword v9, off, s[0:3], s33 offset:664 ; 4-byte Folded Reload
398; GCN-NEXT:    buffer_load_dword v10, off, s[0:3], s33 offset:668 ; 4-byte Folded Reload
399; GCN-NEXT:    buffer_load_dword v11, off, s[0:3], s33 offset:672 ; 4-byte Folded Reload
400; GCN-NEXT:    buffer_load_dword v12, off, s[0:3], s33 offset:676 ; 4-byte Folded Reload
401; GCN-NEXT:    buffer_load_dword v13, off, s[0:3], s33 offset:680 ; 4-byte Folded Reload
402; GCN-NEXT:    buffer_load_dword v14, off, s[0:3], s33 offset:684 ; 4-byte Folded Reload
403; GCN-NEXT:    buffer_load_dword v15, off, s[0:3], s33 offset:688 ; 4-byte Folded Reload
404; GCN-NEXT:    buffer_load_dword v16, off, s[0:3], s33 offset:692 ; 4-byte Folded Reload
405; GCN-NEXT:    buffer_load_dword v17, off, s[0:3], s33 offset:696 ; 4-byte Folded Reload
406; GCN-NEXT:    buffer_load_dword v18, off, s[0:3], s33 offset:700 ; 4-byte Folded Reload
407; GCN-NEXT:    v_bfe_u32 v0, v2, 1, 6
408; GCN-NEXT:    v_lshlrev_b32_e32 v0, 2, v0
409; GCN-NEXT:    v_and_b32_e32 v1, 1, v2
410; GCN-NEXT:    v_lshlrev_b32_e32 v1, 4, v1
411; GCN-NEXT:    s_waitcnt vmcnt(0)
412; GCN-NEXT:    v_mov_b32_e32 v12, v15
413; GCN-NEXT:    v_mov_b32_e32 v13, v16
414; GCN-NEXT:    v_mov_b32_e32 v14, v17
415; GCN-NEXT:    v_mov_b32_e32 v15, v18
416; GCN-NEXT:    buffer_store_dword v12, off, s[0:3], s33 offset:432
417; GCN-NEXT:    buffer_store_dword v13, off, s[0:3], s33 offset:436
418; GCN-NEXT:    buffer_store_dword v14, off, s[0:3], s33 offset:440
419; GCN-NEXT:    buffer_store_dword v15, off, s[0:3], s33 offset:444
420; GCN-NEXT:    buffer_load_dword v3, off, s[0:3], s33 offset:576 ; 4-byte Folded Reload
421; GCN-NEXT:    buffer_load_dword v4, off, s[0:3], s33 offset:580 ; 4-byte Folded Reload
422; GCN-NEXT:    buffer_load_dword v5, off, s[0:3], s33 offset:584 ; 4-byte Folded Reload
423; GCN-NEXT:    buffer_load_dword v6, off, s[0:3], s33 offset:588 ; 4-byte Folded Reload
424; GCN-NEXT:    buffer_load_dword v7, off, s[0:3], s33 offset:592 ; 4-byte Folded Reload
425; GCN-NEXT:    buffer_load_dword v8, off, s[0:3], s33 offset:596 ; 4-byte Folded Reload
426; GCN-NEXT:    buffer_load_dword v9, off, s[0:3], s33 offset:600 ; 4-byte Folded Reload
427; GCN-NEXT:    buffer_load_dword v10, off, s[0:3], s33 offset:604 ; 4-byte Folded Reload
428; GCN-NEXT:    buffer_load_dword v11, off, s[0:3], s33 offset:608 ; 4-byte Folded Reload
429; GCN-NEXT:    buffer_load_dword v12, off, s[0:3], s33 offset:612 ; 4-byte Folded Reload
430; GCN-NEXT:    buffer_load_dword v13, off, s[0:3], s33 offset:616 ; 4-byte Folded Reload
431; GCN-NEXT:    buffer_load_dword v14, off, s[0:3], s33 offset:620 ; 4-byte Folded Reload
432; GCN-NEXT:    buffer_load_dword v15, off, s[0:3], s33 offset:624 ; 4-byte Folded Reload
433; GCN-NEXT:    buffer_load_dword v16, off, s[0:3], s33 offset:628 ; 4-byte Folded Reload
434; GCN-NEXT:    buffer_load_dword v17, off, s[0:3], s33 offset:632 ; 4-byte Folded Reload
435; GCN-NEXT:    buffer_load_dword v18, off, s[0:3], s33 offset:636 ; 4-byte Folded Reload
436; GCN-NEXT:    s_waitcnt vmcnt(0)
437; GCN-NEXT:    buffer_store_dword v3, off, s[0:3], s33 offset:448
438; GCN-NEXT:    buffer_store_dword v4, off, s[0:3], s33 offset:452
439; GCN-NEXT:    buffer_store_dword v5, off, s[0:3], s33 offset:456
440; GCN-NEXT:    buffer_store_dword v6, off, s[0:3], s33 offset:460
441; GCN-NEXT:    buffer_load_dword v3, off, s[0:3], s33 offset:512 ; 4-byte Folded Reload
442; GCN-NEXT:    buffer_load_dword v4, off, s[0:3], s33 offset:516 ; 4-byte Folded Reload
443; GCN-NEXT:    buffer_load_dword v5, off, s[0:3], s33 offset:520 ; 4-byte Folded Reload
444; GCN-NEXT:    buffer_load_dword v6, off, s[0:3], s33 offset:524 ; 4-byte Folded Reload
445; GCN-NEXT:    buffer_load_dword v7, off, s[0:3], s33 offset:528 ; 4-byte Folded Reload
446; GCN-NEXT:    buffer_load_dword v8, off, s[0:3], s33 offset:532 ; 4-byte Folded Reload
447; GCN-NEXT:    buffer_load_dword v9, off, s[0:3], s33 offset:536 ; 4-byte Folded Reload
448; GCN-NEXT:    buffer_load_dword v10, off, s[0:3], s33 offset:540 ; 4-byte Folded Reload
449; GCN-NEXT:    buffer_load_dword v11, off, s[0:3], s33 offset:544 ; 4-byte Folded Reload
450; GCN-NEXT:    buffer_load_dword v12, off, s[0:3], s33 offset:548 ; 4-byte Folded Reload
451; GCN-NEXT:    buffer_load_dword v13, off, s[0:3], s33 offset:552 ; 4-byte Folded Reload
452; GCN-NEXT:    buffer_load_dword v14, off, s[0:3], s33 offset:556 ; 4-byte Folded Reload
453; GCN-NEXT:    buffer_load_dword v15, off, s[0:3], s33 offset:560 ; 4-byte Folded Reload
454; GCN-NEXT:    buffer_load_dword v16, off, s[0:3], s33 offset:564 ; 4-byte Folded Reload
455; GCN-NEXT:    buffer_load_dword v17, off, s[0:3], s33 offset:568 ; 4-byte Folded Reload
456; GCN-NEXT:    buffer_load_dword v18, off, s[0:3], s33 offset:572 ; 4-byte Folded Reload
457; GCN-NEXT:    s_waitcnt vmcnt(0)
458; GCN-NEXT:    v_mov_b32_e32 v4, v7
459; GCN-NEXT:    v_mov_b32_e32 v5, v8
460; GCN-NEXT:    v_mov_b32_e32 v6, v9
461; GCN-NEXT:    v_mov_b32_e32 v7, v10
462; GCN-NEXT:    buffer_store_dword v4, off, s[0:3], s33 offset:464
463; GCN-NEXT:    buffer_store_dword v5, off, s[0:3], s33 offset:468
464; GCN-NEXT:    buffer_store_dword v6, off, s[0:3], s33 offset:472
465; GCN-NEXT:    buffer_store_dword v7, off, s[0:3], s33 offset:476
466; GCN-NEXT:    buffer_store_dword v55, off, s[0:3], s33 offset:480
467; GCN-NEXT:    buffer_store_dword v56, off, s[0:3], s33 offset:484
468; GCN-NEXT:    buffer_store_dword v57, off, s[0:3], s33 offset:488
469; GCN-NEXT:    buffer_store_dword v58, off, s[0:3], s33 offset:492
470; GCN-NEXT:    buffer_store_dword v59, off, s[0:3], s33 offset:496
471; GCN-NEXT:    buffer_store_dword v60, off, s[0:3], s33 offset:500
472; GCN-NEXT:    buffer_store_dword v61, off, s[0:3], s33 offset:504
473; GCN-NEXT:    buffer_store_dword v62, off, s[0:3], s33 offset:508
474; GCN-NEXT:    v_lshrrev_b32_e64 v7, 6, s33
475; GCN-NEXT:    v_add_u32_e32 v7, 0x100, v7
476; GCN-NEXT:    v_add_u32_e32 v0, v7, v0
477; GCN-NEXT:    buffer_load_dword v0, v0, s[0:3], 0 offen
478; GCN-NEXT:    buffer_load_dword v62, off, s[0:3], s33 ; 4-byte Folded Reload
479; GCN-NEXT:    buffer_load_dword v61, off, s[0:3], s33 offset:4 ; 4-byte Folded Reload
480; GCN-NEXT:    buffer_load_dword v60, off, s[0:3], s33 offset:8 ; 4-byte Folded Reload
481; GCN-NEXT:    buffer_load_dword v59, off, s[0:3], s33 offset:12 ; 4-byte Folded Reload
482; GCN-NEXT:    buffer_load_dword v58, off, s[0:3], s33 offset:16 ; 4-byte Folded Reload
483; GCN-NEXT:    buffer_load_dword v57, off, s[0:3], s33 offset:20 ; 4-byte Folded Reload
484; GCN-NEXT:    buffer_load_dword v56, off, s[0:3], s33 offset:24 ; 4-byte Folded Reload
485; GCN-NEXT:    buffer_load_dword v47, off, s[0:3], s33 offset:28 ; 4-byte Folded Reload
486; GCN-NEXT:    buffer_load_dword v46, off, s[0:3], s33 offset:32 ; 4-byte Folded Reload
487; GCN-NEXT:    buffer_load_dword v45, off, s[0:3], s33 offset:36 ; 4-byte Folded Reload
488; GCN-NEXT:    buffer_load_dword v44, off, s[0:3], s33 offset:40 ; 4-byte Folded Reload
489; GCN-NEXT:    buffer_load_dword v43, off, s[0:3], s33 offset:44 ; 4-byte Folded Reload
490; GCN-NEXT:    buffer_load_dword v42, off, s[0:3], s33 offset:48 ; 4-byte Folded Reload
491; GCN-NEXT:    buffer_load_dword v41, off, s[0:3], s33 offset:52 ; 4-byte Folded Reload
492; GCN-NEXT:    buffer_load_dword v40, off, s[0:3], s33 offset:56 ; 4-byte Folded Reload
493; GCN-NEXT:    s_mov_b32 s33, s4
494; GCN-NEXT:    s_waitcnt vmcnt(15)
495; GCN-NEXT:    v_lshrrev_b32_e32 v0, v1, v0
496; GCN-NEXT:    s_waitcnt vmcnt(0)
497; GCN-NEXT:    s_setpc_b64 s[30:31]
498  %vec = load <128 x i16>, <128 x i16> addrspace(1)* %ptr
499  %elt = extractelement <128 x i16> %vec, i32 %idx
500  ret i16 %elt
501}
502
503define i64 @v_extract_v32i64_varidx(<32 x i64> addrspace(1)* %ptr, i32 %idx) {
504; GCN-LABEL: v_extract_v32i64_varidx:
505; GCN:       ; %bb.0:
506; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
507; GCN-NEXT:    s_mov_b32 s4, s33
508; GCN-NEXT:    s_add_i32 s33, s32, 0x3fc0
509; GCN-NEXT:    s_and_b32 s33, s33, 0xffffc000
510; GCN-NEXT:    buffer_store_dword v40, off, s[0:3], s33 offset:44 ; 4-byte Folded Spill
511; GCN-NEXT:    buffer_store_dword v41, off, s[0:3], s33 offset:40 ; 4-byte Folded Spill
512; GCN-NEXT:    buffer_store_dword v42, off, s[0:3], s33 offset:36 ; 4-byte Folded Spill
513; GCN-NEXT:    buffer_store_dword v43, off, s[0:3], s33 offset:32 ; 4-byte Folded Spill
514; GCN-NEXT:    buffer_store_dword v44, off, s[0:3], s33 offset:28 ; 4-byte Folded Spill
515; GCN-NEXT:    buffer_store_dword v45, off, s[0:3], s33 offset:24 ; 4-byte Folded Spill
516; GCN-NEXT:    buffer_store_dword v46, off, s[0:3], s33 offset:20 ; 4-byte Folded Spill
517; GCN-NEXT:    buffer_store_dword v47, off, s[0:3], s33 offset:16 ; 4-byte Folded Spill
518; GCN-NEXT:    buffer_store_dword v56, off, s[0:3], s33 offset:12 ; 4-byte Folded Spill
519; GCN-NEXT:    buffer_store_dword v57, off, s[0:3], s33 offset:8 ; 4-byte Folded Spill
520; GCN-NEXT:    buffer_store_dword v58, off, s[0:3], s33 offset:4 ; 4-byte Folded Spill
521; GCN-NEXT:    buffer_store_dword v59, off, s[0:3], s33 ; 4-byte Folded Spill
522; GCN-NEXT:    global_load_dwordx4 v[3:6], v[0:1], off
523; GCN-NEXT:    global_load_dwordx4 v[7:10], v[0:1], off offset:16
524; GCN-NEXT:    global_load_dwordx4 v[16:19], v[0:1], off offset:32
525; GCN-NEXT:    global_load_dwordx4 v[20:23], v[0:1], off offset:48
526; GCN-NEXT:    global_load_dwordx4 v[24:27], v[0:1], off offset:64
527; GCN-NEXT:    global_load_dwordx4 v[28:31], v[0:1], off offset:80
528; GCN-NEXT:    global_load_dwordx4 v[32:35], v[0:1], off offset:96
529; GCN-NEXT:    global_load_dwordx4 v[36:39], v[0:1], off offset:112
530; GCN-NEXT:    global_load_dwordx4 v[40:43], v[0:1], off offset:128
531; GCN-NEXT:    global_load_dwordx4 v[44:47], v[0:1], off offset:144
532; GCN-NEXT:    global_load_dwordx4 v[48:51], v[0:1], off offset:160
533; GCN-NEXT:    global_load_dwordx4 v[52:55], v[0:1], off offset:176
534; GCN-NEXT:    global_load_dwordx4 v[11:14], v[0:1], off offset:192
535; GCN-NEXT:    s_add_i32 s32, s32, 0x10000
536; GCN-NEXT:    s_add_i32 s32, s32, 0xffff0000
537; GCN-NEXT:    s_waitcnt vmcnt(0)
538; GCN-NEXT:    buffer_store_dword v11, off, s[0:3], s33 offset:576 ; 4-byte Folded Spill
539; GCN-NEXT:    s_waitcnt vmcnt(0)
540; GCN-NEXT:    buffer_store_dword v12, off, s[0:3], s33 offset:580 ; 4-byte Folded Spill
541; GCN-NEXT:    buffer_store_dword v13, off, s[0:3], s33 offset:584 ; 4-byte Folded Spill
542; GCN-NEXT:    buffer_store_dword v14, off, s[0:3], s33 offset:588 ; 4-byte Folded Spill
543; GCN-NEXT:    buffer_store_dword v15, off, s[0:3], s33 offset:592 ; 4-byte Folded Spill
544; GCN-NEXT:    buffer_store_dword v16, off, s[0:3], s33 offset:596 ; 4-byte Folded Spill
545; GCN-NEXT:    buffer_store_dword v17, off, s[0:3], s33 offset:600 ; 4-byte Folded Spill
546; GCN-NEXT:    buffer_store_dword v18, off, s[0:3], s33 offset:604 ; 4-byte Folded Spill
547; GCN-NEXT:    buffer_store_dword v19, off, s[0:3], s33 offset:608 ; 4-byte Folded Spill
548; GCN-NEXT:    buffer_store_dword v20, off, s[0:3], s33 offset:612 ; 4-byte Folded Spill
549; GCN-NEXT:    buffer_store_dword v21, off, s[0:3], s33 offset:616 ; 4-byte Folded Spill
550; GCN-NEXT:    buffer_store_dword v22, off, s[0:3], s33 offset:620 ; 4-byte Folded Spill
551; GCN-NEXT:    buffer_store_dword v23, off, s[0:3], s33 offset:624 ; 4-byte Folded Spill
552; GCN-NEXT:    buffer_store_dword v24, off, s[0:3], s33 offset:628 ; 4-byte Folded Spill
553; GCN-NEXT:    buffer_store_dword v25, off, s[0:3], s33 offset:632 ; 4-byte Folded Spill
554; GCN-NEXT:    buffer_store_dword v26, off, s[0:3], s33 offset:636 ; 4-byte Folded Spill
555; GCN-NEXT:    global_load_dwordx4 v[11:14], v[0:1], off offset:208
556; GCN-NEXT:    s_waitcnt vmcnt(0)
557; GCN-NEXT:    buffer_store_dword v7, off, s[0:3], s33 offset:512 ; 4-byte Folded Spill
558; GCN-NEXT:    s_waitcnt vmcnt(0)
559; GCN-NEXT:    buffer_store_dword v8, off, s[0:3], s33 offset:516 ; 4-byte Folded Spill
560; GCN-NEXT:    buffer_store_dword v9, off, s[0:3], s33 offset:520 ; 4-byte Folded Spill
561; GCN-NEXT:    buffer_store_dword v10, off, s[0:3], s33 offset:524 ; 4-byte Folded Spill
562; GCN-NEXT:    buffer_store_dword v11, off, s[0:3], s33 offset:528 ; 4-byte Folded Spill
563; GCN-NEXT:    buffer_store_dword v12, off, s[0:3], s33 offset:532 ; 4-byte Folded Spill
564; GCN-NEXT:    buffer_store_dword v13, off, s[0:3], s33 offset:536 ; 4-byte Folded Spill
565; GCN-NEXT:    buffer_store_dword v14, off, s[0:3], s33 offset:540 ; 4-byte Folded Spill
566; GCN-NEXT:    buffer_store_dword v15, off, s[0:3], s33 offset:544 ; 4-byte Folded Spill
567; GCN-NEXT:    buffer_store_dword v16, off, s[0:3], s33 offset:548 ; 4-byte Folded Spill
568; GCN-NEXT:    buffer_store_dword v17, off, s[0:3], s33 offset:552 ; 4-byte Folded Spill
569; GCN-NEXT:    buffer_store_dword v18, off, s[0:3], s33 offset:556 ; 4-byte Folded Spill
570; GCN-NEXT:    buffer_store_dword v19, off, s[0:3], s33 offset:560 ; 4-byte Folded Spill
571; GCN-NEXT:    buffer_store_dword v20, off, s[0:3], s33 offset:564 ; 4-byte Folded Spill
572; GCN-NEXT:    buffer_store_dword v21, off, s[0:3], s33 offset:568 ; 4-byte Folded Spill
573; GCN-NEXT:    buffer_store_dword v22, off, s[0:3], s33 offset:572 ; 4-byte Folded Spill
574; GCN-NEXT:    global_load_dwordx4 v[56:59], v[0:1], off offset:224
575; GCN-NEXT:    global_load_dwordx4 v[12:15], v[0:1], off offset:240
576; GCN-NEXT:    v_and_b32_e32 v0, 31, v2
577; GCN-NEXT:    v_lshrrev_b32_e64 v2, 6, s33
578; GCN-NEXT:    v_lshlrev_b32_e32 v0, 3, v0
579; GCN-NEXT:    v_add_u32_e32 v2, 0x100, v2
580; GCN-NEXT:    v_add_u32_e32 v1, v2, v0
581; GCN-NEXT:    buffer_store_dword v3, off, s[0:3], s33 offset:256
582; GCN-NEXT:    buffer_store_dword v4, off, s[0:3], s33 offset:260
583; GCN-NEXT:    buffer_store_dword v5, off, s[0:3], s33 offset:264
584; GCN-NEXT:    buffer_store_dword v6, off, s[0:3], s33 offset:268
585; GCN-NEXT:    buffer_store_dword v7, off, s[0:3], s33 offset:272
586; GCN-NEXT:    buffer_store_dword v8, off, s[0:3], s33 offset:276
587; GCN-NEXT:    buffer_store_dword v9, off, s[0:3], s33 offset:280
588; GCN-NEXT:    buffer_store_dword v10, off, s[0:3], s33 offset:284
589; GCN-NEXT:    buffer_store_dword v16, off, s[0:3], s33 offset:288
590; GCN-NEXT:    buffer_store_dword v17, off, s[0:3], s33 offset:292
591; GCN-NEXT:    buffer_store_dword v18, off, s[0:3], s33 offset:296
592; GCN-NEXT:    buffer_store_dword v19, off, s[0:3], s33 offset:300
593; GCN-NEXT:    buffer_store_dword v20, off, s[0:3], s33 offset:304
594; GCN-NEXT:    buffer_store_dword v21, off, s[0:3], s33 offset:308
595; GCN-NEXT:    buffer_store_dword v22, off, s[0:3], s33 offset:312
596; GCN-NEXT:    buffer_store_dword v23, off, s[0:3], s33 offset:316
597; GCN-NEXT:    buffer_store_dword v24, off, s[0:3], s33 offset:320
598; GCN-NEXT:    buffer_store_dword v25, off, s[0:3], s33 offset:324
599; GCN-NEXT:    buffer_store_dword v26, off, s[0:3], s33 offset:328
600; GCN-NEXT:    buffer_store_dword v27, off, s[0:3], s33 offset:332
601; GCN-NEXT:    buffer_store_dword v28, off, s[0:3], s33 offset:336
602; GCN-NEXT:    buffer_store_dword v29, off, s[0:3], s33 offset:340
603; GCN-NEXT:    buffer_store_dword v30, off, s[0:3], s33 offset:344
604; GCN-NEXT:    buffer_store_dword v31, off, s[0:3], s33 offset:348
605; GCN-NEXT:    buffer_store_dword v32, off, s[0:3], s33 offset:352
606; GCN-NEXT:    buffer_store_dword v33, off, s[0:3], s33 offset:356
607; GCN-NEXT:    buffer_store_dword v34, off, s[0:3], s33 offset:360
608; GCN-NEXT:    buffer_store_dword v35, off, s[0:3], s33 offset:364
609; GCN-NEXT:    buffer_store_dword v36, off, s[0:3], s33 offset:368
610; GCN-NEXT:    buffer_store_dword v37, off, s[0:3], s33 offset:372
611; GCN-NEXT:    buffer_store_dword v38, off, s[0:3], s33 offset:376
612; GCN-NEXT:    buffer_store_dword v39, off, s[0:3], s33 offset:380
613; GCN-NEXT:    buffer_store_dword v40, off, s[0:3], s33 offset:384
614; GCN-NEXT:    buffer_store_dword v41, off, s[0:3], s33 offset:388
615; GCN-NEXT:    buffer_store_dword v42, off, s[0:3], s33 offset:392
616; GCN-NEXT:    buffer_store_dword v43, off, s[0:3], s33 offset:396
617; GCN-NEXT:    buffer_store_dword v44, off, s[0:3], s33 offset:400
618; GCN-NEXT:    buffer_store_dword v45, off, s[0:3], s33 offset:404
619; GCN-NEXT:    buffer_store_dword v46, off, s[0:3], s33 offset:408
620; GCN-NEXT:    buffer_store_dword v47, off, s[0:3], s33 offset:412
621; GCN-NEXT:    buffer_store_dword v48, off, s[0:3], s33 offset:416
622; GCN-NEXT:    buffer_store_dword v49, off, s[0:3], s33 offset:420
623; GCN-NEXT:    buffer_store_dword v50, off, s[0:3], s33 offset:424
624; GCN-NEXT:    buffer_store_dword v51, off, s[0:3], s33 offset:428
625; GCN-NEXT:    buffer_store_dword v52, off, s[0:3], s33 offset:432
626; GCN-NEXT:    buffer_store_dword v53, off, s[0:3], s33 offset:436
627; GCN-NEXT:    buffer_store_dword v54, off, s[0:3], s33 offset:440
628; GCN-NEXT:    buffer_store_dword v55, off, s[0:3], s33 offset:444
629; GCN-NEXT:    buffer_load_dword v16, off, s[0:3], s33 offset:576 ; 4-byte Folded Reload
630; GCN-NEXT:    buffer_load_dword v17, off, s[0:3], s33 offset:580 ; 4-byte Folded Reload
631; GCN-NEXT:    buffer_load_dword v18, off, s[0:3], s33 offset:584 ; 4-byte Folded Reload
632; GCN-NEXT:    buffer_load_dword v19, off, s[0:3], s33 offset:588 ; 4-byte Folded Reload
633; GCN-NEXT:    buffer_load_dword v20, off, s[0:3], s33 offset:592 ; 4-byte Folded Reload
634; GCN-NEXT:    buffer_load_dword v21, off, s[0:3], s33 offset:596 ; 4-byte Folded Reload
635; GCN-NEXT:    buffer_load_dword v22, off, s[0:3], s33 offset:600 ; 4-byte Folded Reload
636; GCN-NEXT:    buffer_load_dword v23, off, s[0:3], s33 offset:604 ; 4-byte Folded Reload
637; GCN-NEXT:    buffer_load_dword v24, off, s[0:3], s33 offset:608 ; 4-byte Folded Reload
638; GCN-NEXT:    buffer_load_dword v25, off, s[0:3], s33 offset:612 ; 4-byte Folded Reload
639; GCN-NEXT:    buffer_load_dword v26, off, s[0:3], s33 offset:616 ; 4-byte Folded Reload
640; GCN-NEXT:    buffer_load_dword v27, off, s[0:3], s33 offset:620 ; 4-byte Folded Reload
641; GCN-NEXT:    buffer_load_dword v28, off, s[0:3], s33 offset:624 ; 4-byte Folded Reload
642; GCN-NEXT:    buffer_load_dword v29, off, s[0:3], s33 offset:628 ; 4-byte Folded Reload
643; GCN-NEXT:    buffer_load_dword v30, off, s[0:3], s33 offset:632 ; 4-byte Folded Reload
644; GCN-NEXT:    buffer_load_dword v31, off, s[0:3], s33 offset:636 ; 4-byte Folded Reload
645; GCN-NEXT:    s_waitcnt vmcnt(0)
646; GCN-NEXT:    v_mov_b32_e32 v3, v16
647; GCN-NEXT:    v_mov_b32_e32 v4, v17
648; GCN-NEXT:    v_mov_b32_e32 v5, v18
649; GCN-NEXT:    v_mov_b32_e32 v6, v19
650; GCN-NEXT:    buffer_store_dword v3, off, s[0:3], s33 offset:448
651; GCN-NEXT:    buffer_store_dword v4, off, s[0:3], s33 offset:452
652; GCN-NEXT:    buffer_store_dword v5, off, s[0:3], s33 offset:456
653; GCN-NEXT:    buffer_store_dword v6, off, s[0:3], s33 offset:460
654; GCN-NEXT:    buffer_load_dword v16, off, s[0:3], s33 offset:512 ; 4-byte Folded Reload
655; GCN-NEXT:    buffer_load_dword v17, off, s[0:3], s33 offset:516 ; 4-byte Folded Reload
656; GCN-NEXT:    buffer_load_dword v18, off, s[0:3], s33 offset:520 ; 4-byte Folded Reload
657; GCN-NEXT:    buffer_load_dword v19, off, s[0:3], s33 offset:524 ; 4-byte Folded Reload
658; GCN-NEXT:    buffer_load_dword v20, off, s[0:3], s33 offset:528 ; 4-byte Folded Reload
659; GCN-NEXT:    buffer_load_dword v21, off, s[0:3], s33 offset:532 ; 4-byte Folded Reload
660; GCN-NEXT:    buffer_load_dword v22, off, s[0:3], s33 offset:536 ; 4-byte Folded Reload
661; GCN-NEXT:    buffer_load_dword v23, off, s[0:3], s33 offset:540 ; 4-byte Folded Reload
662; GCN-NEXT:    buffer_load_dword v24, off, s[0:3], s33 offset:544 ; 4-byte Folded Reload
663; GCN-NEXT:    buffer_load_dword v25, off, s[0:3], s33 offset:548 ; 4-byte Folded Reload
664; GCN-NEXT:    buffer_load_dword v26, off, s[0:3], s33 offset:552 ; 4-byte Folded Reload
665; GCN-NEXT:    buffer_load_dword v27, off, s[0:3], s33 offset:556 ; 4-byte Folded Reload
666; GCN-NEXT:    buffer_load_dword v28, off, s[0:3], s33 offset:560 ; 4-byte Folded Reload
667; GCN-NEXT:    buffer_load_dword v29, off, s[0:3], s33 offset:564 ; 4-byte Folded Reload
668; GCN-NEXT:    buffer_load_dword v30, off, s[0:3], s33 offset:568 ; 4-byte Folded Reload
669; GCN-NEXT:    buffer_load_dword v31, off, s[0:3], s33 offset:572 ; 4-byte Folded Reload
670; GCN-NEXT:    s_waitcnt vmcnt(0)
671; GCN-NEXT:    v_mov_b32_e32 v4, v20
672; GCN-NEXT:    v_mov_b32_e32 v5, v21
673; GCN-NEXT:    v_mov_b32_e32 v6, v22
674; GCN-NEXT:    v_mov_b32_e32 v7, v23
675; GCN-NEXT:    buffer_store_dword v4, off, s[0:3], s33 offset:464
676; GCN-NEXT:    buffer_store_dword v5, off, s[0:3], s33 offset:468
677; GCN-NEXT:    buffer_store_dword v6, off, s[0:3], s33 offset:472
678; GCN-NEXT:    buffer_store_dword v7, off, s[0:3], s33 offset:476
679; GCN-NEXT:    buffer_store_dword v56, off, s[0:3], s33 offset:480
680; GCN-NEXT:    buffer_store_dword v57, off, s[0:3], s33 offset:484
681; GCN-NEXT:    buffer_store_dword v58, off, s[0:3], s33 offset:488
682; GCN-NEXT:    buffer_store_dword v59, off, s[0:3], s33 offset:492
683; GCN-NEXT:    buffer_store_dword v12, off, s[0:3], s33 offset:496
684; GCN-NEXT:    buffer_store_dword v13, off, s[0:3], s33 offset:500
685; GCN-NEXT:    buffer_store_dword v14, off, s[0:3], s33 offset:504
686; GCN-NEXT:    buffer_store_dword v15, off, s[0:3], s33 offset:508
687; GCN-NEXT:    buffer_load_dword v0, v1, s[0:3], 0 offen
688; GCN-NEXT:    buffer_load_dword v1, v1, s[0:3], 0 offen offset:4
689; GCN-NEXT:    buffer_load_dword v59, off, s[0:3], s33 ; 4-byte Folded Reload
690; GCN-NEXT:    buffer_load_dword v58, off, s[0:3], s33 offset:4 ; 4-byte Folded Reload
691; GCN-NEXT:    buffer_load_dword v57, off, s[0:3], s33 offset:8 ; 4-byte Folded Reload
692; GCN-NEXT:    buffer_load_dword v56, off, s[0:3], s33 offset:12 ; 4-byte Folded Reload
693; GCN-NEXT:    buffer_load_dword v47, off, s[0:3], s33 offset:16 ; 4-byte Folded Reload
694; GCN-NEXT:    buffer_load_dword v46, off, s[0:3], s33 offset:20 ; 4-byte Folded Reload
695; GCN-NEXT:    buffer_load_dword v45, off, s[0:3], s33 offset:24 ; 4-byte Folded Reload
696; GCN-NEXT:    buffer_load_dword v44, off, s[0:3], s33 offset:28 ; 4-byte Folded Reload
697; GCN-NEXT:    buffer_load_dword v43, off, s[0:3], s33 offset:32 ; 4-byte Folded Reload
698; GCN-NEXT:    buffer_load_dword v42, off, s[0:3], s33 offset:36 ; 4-byte Folded Reload
699; GCN-NEXT:    buffer_load_dword v41, off, s[0:3], s33 offset:40 ; 4-byte Folded Reload
700; GCN-NEXT:    buffer_load_dword v40, off, s[0:3], s33 offset:44 ; 4-byte Folded Reload
701; GCN-NEXT:    s_mov_b32 s33, s4
702; GCN-NEXT:    s_waitcnt vmcnt(0)
703; GCN-NEXT:    s_setpc_b64 s[30:31]
704  %vec = load <32 x i64>, <32 x i64> addrspace(1)* %ptr
705  %elt = extractelement <32 x i64> %vec, i32 %idx
706  ret i64 %elt
707}
708