@@ -31,86 +31,6 @@ define i32 @v_extract_v64i32_varidx(ptr addrspace(1) %ptr, i32 %idx) {
31
31
; GFX12-NEXT: global_load_b32 v0, v[0:1], off
32
32
; GFX12-NEXT: s_waitcnt vmcnt(0)
33
33
; GFX12-NEXT: s_setpc_b64 s[30:31]
34
- ; GCN-GFX12-LABEL: v_extract_v64i32_varidx:
35
- ; GCN-GFX12: ; %bb.0:
36
- ; GCN-GFX12-NEXT: s_wait_loadcnt_dscnt 0x0
37
- ; GCN-GFX12-NEXT: s_wait_expcnt 0x0
38
- ; GCN-GFX12-NEXT: s_wait_storecnt 0x0
39
- ; GCN-GFX12-NEXT: s_wait_samplecnt 0x0
40
- ; GCN-GFX12-NEXT: s_wait_bvhcnt 0x0
41
- ; GCN-GFX12-NEXT: s_wait_kmcnt 0x0
42
- ; GCN-GFX12-NEXT: s_clause 0xf
43
- ; GCN-GFX12-NEXT: global_load_b128 v[3:6], v[0:1], off
44
- ; GCN-GFX12-NEXT: global_load_b128 v[7:10], v[0:1], off offset:16
45
- ; GCN-GFX12-NEXT: global_load_b128 v[11:14], v[0:1], off offset:32
46
- ; GCN-GFX12-NEXT: global_load_b128 v[15:18], v[0:1], off offset:48
47
- ; GCN-GFX12-NEXT: global_load_b128 v[19:22], v[0:1], off offset:64
48
- ; GCN-GFX12-NEXT: global_load_b128 v[23:26], v[0:1], off offset:80
49
- ; GCN-GFX12-NEXT: global_load_b128 v[27:30], v[0:1], off offset:96
50
- ; GCN-GFX12-NEXT: global_load_b128 v[31:34], v[0:1], off offset:112
51
- ; GCN-GFX12-NEXT: global_load_b128 v[35:38], v[0:1], off offset:128
52
- ; GCN-GFX12-NEXT: global_load_b128 v[48:51], v[0:1], off offset:144
53
- ; GCN-GFX12-NEXT: global_load_b128 v[52:55], v[0:1], off offset:160
54
- ; GCN-GFX12-NEXT: global_load_b128 v[64:67], v[0:1], off offset:176
55
- ; GCN-GFX12-NEXT: global_load_b128 v[68:71], v[0:1], off offset:192
56
- ; GCN-GFX12-NEXT: global_load_b128 v[80:83], v[0:1], off offset:208
57
- ; GCN-GFX12-NEXT: global_load_b128 v[84:87], v[0:1], off offset:224
58
- ; GCN-GFX12-NEXT: global_load_b128 v[96:99], v[0:1], off offset:240
59
- ; GCN-GFX12-NEXT: v_and_b32_e32 v0, 63, v2
60
- ; GCN-GFX12-NEXT: s_mov_b32 s0, s33
61
- ; GCN-GFX12-NEXT: s_add_co_i32 s33, s32, 0xff
62
- ; GCN-GFX12-NEXT: s_addk_co_i32 s32, 0x300
63
- ; GCN-GFX12-NEXT: s_and_b32 s33, s33, 0xffffff00
64
- ; GCN-GFX12-NEXT: v_lshlrev_b32_e32 v0, 2, v0
65
- ; GCN-GFX12-NEXT: s_addk_co_i32 s32, 0xfd00
66
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0xf
67
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[3:6], s33
68
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0xe
69
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[7:10], s33 offset:16
70
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0xd
71
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[11:14], s33 offset:32
72
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0xc
73
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[15:18], s33 offset:48
74
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0xb
75
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[19:22], s33 offset:64
76
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0xa
77
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[23:26], s33 offset:80
78
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0x9
79
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[27:30], s33 offset:96
80
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0x8
81
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[31:34], s33 offset:112
82
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0x7
83
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[35:38], s33 offset:128
84
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0x6
85
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[48:51], s33 offset:144
86
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0x5
87
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[52:55], s33 offset:160
88
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0x4
89
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[64:67], s33 offset:176
90
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0x3
91
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[68:71], s33 offset:192
92
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0x2
93
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[80:83], s33 offset:208
94
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0x1
95
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[84:87], s33 offset:224
96
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0x0
97
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[96:99], s33 offset:240
98
- ; GCN-GFX12-NEXT: scratch_load_b32 v0, v0, s33
99
- ; GCN-GFX12-NEXT: s_mov_b32 s33, s0
100
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0x0
101
- ; GCN-GFX12-NEXT: s_wait_storecnt 0x0
102
- ; GCN-GFX12-NEXT: s_setpc_b64 s[30:31]
103
- ; GCN-LABEL: v_extract_v64i32_varidx:
104
- ; GCN: ; %bb.0:
105
- ; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
106
- ; GCN-NEXT: v_and_b32_e32 v2, 63, v2
107
- ; GCN-NEXT: v_lshlrev_b32_e32 v2, 2, v2
108
- ; GCN-NEXT: v_ashrrev_i32_e32 v3, 31, v2
109
- ; GCN-NEXT: v_add_co_u32_e32 v0, vcc, v0, v2
110
- ; GCN-NEXT: v_addc_co_u32_e32 v1, vcc, v1, v3, vcc
111
- ; GCN-NEXT: global_load_dword v0, v[0:1], off
112
- ; GCN-NEXT: s_waitcnt vmcnt(0)
113
- ; GCN-NEXT: s_setpc_b64 s[30:31]
114
34
%vec = load <64 x i32 >, ptr addrspace (1 ) %ptr
115
35
%elt = extractelement <64 x i32 > %vec , i32 %idx
116
36
ret i32 %elt
@@ -142,124 +62,6 @@ define i16 @v_extract_v128i16_varidx(ptr addrspace(1) %ptr, i32 %idx) {
142
62
; GFX12-NEXT: global_load_u16 v0, v[0:1], off
143
63
; GFX12-NEXT: s_waitcnt vmcnt(0)
144
64
; GFX12-NEXT: s_setpc_b64 s[30:31]
145
- ; GCN-GFX12-LABEL: v_extract_v128i16_varidx:
146
- ; GCN-GFX12: ; %bb.0:
147
- ; GCN-GFX12-NEXT: s_wait_loadcnt_dscnt 0x0
148
- ; GCN-GFX12-NEXT: s_wait_expcnt 0x0
149
- ; GCN-GFX12-NEXT: s_wait_storecnt 0x0
150
- ; GCN-GFX12-NEXT: s_wait_samplecnt 0x0
151
- ; GCN-GFX12-NEXT: s_wait_bvhcnt 0x0
152
- ; GCN-GFX12-NEXT: s_wait_kmcnt 0x0
153
- ; GCN-GFX12-NEXT: s_mov_b32 s0, s33
154
- ; GCN-GFX12-NEXT: s_add_co_i32 s33, s32, 0xff
155
- ; GCN-GFX12-NEXT: s_addk_co_i32 s32, 0x400
156
- ; GCN-GFX12-NEXT: s_and_b32 s33, s33, 0xffffff00
157
- ; GCN-GFX12-NEXT: s_clause 0xf
158
- ; GCN-GFX12-NEXT: scratch_store_b32 off, v40, s33 offset:60
159
- ; GCN-GFX12-NEXT: scratch_store_b32 off, v41, s33 offset:56
160
- ; GCN-GFX12-NEXT: scratch_store_b32 off, v42, s33 offset:52
161
- ; GCN-GFX12-NEXT: scratch_store_b32 off, v43, s33 offset:48
162
- ; GCN-GFX12-NEXT: scratch_store_b32 off, v44, s33 offset:44
163
- ; GCN-GFX12-NEXT: scratch_store_b32 off, v45, s33 offset:40
164
- ; GCN-GFX12-NEXT: scratch_store_b32 off, v46, s33 offset:36
165
- ; GCN-GFX12-NEXT: scratch_store_b32 off, v47, s33 offset:32
166
- ; GCN-GFX12-NEXT: scratch_store_b32 off, v56, s33 offset:28
167
- ; GCN-GFX12-NEXT: scratch_store_b32 off, v57, s33 offset:24
168
- ; GCN-GFX12-NEXT: scratch_store_b32 off, v58, s33 offset:20
169
- ; GCN-GFX12-NEXT: scratch_store_b32 off, v59, s33 offset:16
170
- ; GCN-GFX12-NEXT: scratch_store_b32 off, v60, s33 offset:12
171
- ; GCN-GFX12-NEXT: scratch_store_b32 off, v61, s33 offset:8
172
- ; GCN-GFX12-NEXT: scratch_store_b32 off, v62, s33 offset:4
173
- ; GCN-GFX12-NEXT: scratch_store_b32 off, v63, s33
174
- ; GCN-GFX12-NEXT: s_clause 0xf
175
- ; GCN-GFX12-NEXT: global_load_b128 v[16:19], v[0:1], off
176
- ; GCN-GFX12-NEXT: global_load_b128 v[4:7], v[0:1], off offset:16
177
- ; GCN-GFX12-NEXT: global_load_b128 v[8:11], v[0:1], off offset:32
178
- ; GCN-GFX12-NEXT: global_load_b128 v[12:15], v[0:1], off offset:48
179
- ; GCN-GFX12-NEXT: global_load_b128 v[32:35], v[0:1], off offset:64
180
- ; GCN-GFX12-NEXT: global_load_b128 v[28:31], v[0:1], off offset:80
181
- ; GCN-GFX12-NEXT: global_load_b128 v[24:27], v[0:1], off offset:96
182
- ; GCN-GFX12-NEXT: global_load_b128 v[20:23], v[0:1], off offset:112
183
- ; GCN-GFX12-NEXT: global_load_b128 v[60:63], v[0:1], off offset:128
184
- ; GCN-GFX12-NEXT: global_load_b128 v[56:59], v[0:1], off offset:144
185
- ; GCN-GFX12-NEXT: global_load_b128 v[52:55], v[0:1], off offset:160
186
- ; GCN-GFX12-NEXT: global_load_b128 v[44:47], v[0:1], off offset:176
187
- ; GCN-GFX12-NEXT: global_load_b128 v[36:39], v[0:1], off offset:192
188
- ; GCN-GFX12-NEXT: global_load_b128 v[40:43], v[0:1], off offset:208
189
- ; GCN-GFX12-NEXT: global_load_b128 v[48:51], v[0:1], off offset:224
190
- ; GCN-GFX12-NEXT: global_load_b128 v[64:67], v[0:1], off offset:240
191
- ; GCN-GFX12-NEXT: v_bfe_u32 v0, v2, 1, 6
192
- ; GCN-GFX12-NEXT: v_and_b32_e32 v1, 1, v2
193
- ; GCN-GFX12-NEXT: s_addk_co_i32 s32, 0xfc00
194
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0xf
195
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[16:19], s33 offset:256
196
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0xe
197
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[4:7], s33 offset:272
198
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0xd
199
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[8:11], s33 offset:288
200
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0xc
201
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[12:15], s33 offset:304
202
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0xb
203
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[32:35], s33 offset:320
204
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0xa
205
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[28:31], s33 offset:336
206
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0x9
207
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[24:27], s33 offset:352
208
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0x8
209
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[20:23], s33 offset:368
210
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0x7
211
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[60:63], s33 offset:384
212
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0x6
213
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[56:59], s33 offset:400
214
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0x5
215
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[52:55], s33 offset:416
216
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0x4
217
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[44:47], s33 offset:432
218
- ; GCN-GFX12-NEXT: v_lshlrev_b32_e32 v0, 2, v0
219
- ; GCN-GFX12-NEXT: v_lshlrev_b32_e32 v1, 4, v1
220
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0x3
221
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[36:39], s33 offset:448
222
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0x2
223
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[40:43], s33 offset:464
224
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0x1
225
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[48:51], s33 offset:480
226
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0x0
227
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[64:67], s33 offset:496
228
- ; GCN-GFX12-NEXT: scratch_load_b32 v0, v0, s33 offset:256
229
- ; GCN-GFX12-NEXT: s_clause 0xf
230
- ; GCN-GFX12-NEXT: scratch_load_b32 v63, off, s33
231
- ; GCN-GFX12-NEXT: scratch_load_b32 v62, off, s33 offset:4
232
- ; GCN-GFX12-NEXT: scratch_load_b32 v61, off, s33 offset:8
233
- ; GCN-GFX12-NEXT: scratch_load_b32 v60, off, s33 offset:12
234
- ; GCN-GFX12-NEXT: scratch_load_b32 v59, off, s33 offset:16
235
- ; GCN-GFX12-NEXT: scratch_load_b32 v58, off, s33 offset:20
236
- ; GCN-GFX12-NEXT: scratch_load_b32 v57, off, s33 offset:24
237
- ; GCN-GFX12-NEXT: scratch_load_b32 v56, off, s33 offset:28
238
- ; GCN-GFX12-NEXT: scratch_load_b32 v47, off, s33 offset:32
239
- ; GCN-GFX12-NEXT: scratch_load_b32 v46, off, s33 offset:36
240
- ; GCN-GFX12-NEXT: scratch_load_b32 v45, off, s33 offset:40
241
- ; GCN-GFX12-NEXT: scratch_load_b32 v44, off, s33 offset:44
242
- ; GCN-GFX12-NEXT: scratch_load_b32 v43, off, s33 offset:48
243
- ; GCN-GFX12-NEXT: scratch_load_b32 v42, off, s33 offset:52
244
- ; GCN-GFX12-NEXT: scratch_load_b32 v41, off, s33 offset:56
245
- ; GCN-GFX12-NEXT: scratch_load_b32 v40, off, s33 offset:60
246
- ; GCN-GFX12-NEXT: s_mov_b32 s33, s0
247
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0x10
248
- ; GCN-GFX12-NEXT: v_lshrrev_b32_e32 v0, v1, v0
249
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0x0
250
- ; GCN-GFX12-NEXT: s_wait_storecnt 0x0
251
- ; GCN-GFX12-NEXT: s_setpc_b64 s[30:31]
252
- ; GCN-LABEL: v_extract_v128i16_varidx:
253
- ; GCN: ; %bb.0:
254
- ; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
255
- ; GCN-NEXT: v_and_b32_e32 v2, 0x7f, v2
256
- ; GCN-NEXT: v_lshlrev_b32_e32 v2, 1, v2
257
- ; GCN-NEXT: v_ashrrev_i32_e32 v3, 31, v2
258
- ; GCN-NEXT: v_add_co_u32_e32 v0, vcc, v0, v2
259
- ; GCN-NEXT: v_addc_co_u32_e32 v1, vcc, v1, v3, vcc
260
- ; GCN-NEXT: global_load_ushort v0, v[0:1], off
261
- ; GCN-NEXT: s_waitcnt vmcnt(0)
262
- ; GCN-NEXT: s_setpc_b64 s[30:31]
263
65
%vec = load <128 x i16 >, ptr addrspace (1 ) %ptr
264
66
%elt = extractelement <128 x i16 > %vec , i32 %idx
265
67
ret i16 %elt
@@ -291,86 +93,6 @@ define i64 @v_extract_v32i64_varidx(ptr addrspace(1) %ptr, i32 %idx) {
291
93
; GFX12-NEXT: global_load_b64 v[0:1], v[0:1], off
292
94
; GFX12-NEXT: s_waitcnt vmcnt(0)
293
95
; GFX12-NEXT: s_setpc_b64 s[30:31]
294
- ; GCN-GFX12-LABEL: v_extract_v32i64_varidx:
295
- ; GCN-GFX12: ; %bb.0:
296
- ; GCN-GFX12-NEXT: s_wait_loadcnt_dscnt 0x0
297
- ; GCN-GFX12-NEXT: s_wait_expcnt 0x0
298
- ; GCN-GFX12-NEXT: s_wait_storecnt 0x0
299
- ; GCN-GFX12-NEXT: s_wait_samplecnt 0x0
300
- ; GCN-GFX12-NEXT: s_wait_bvhcnt 0x0
301
- ; GCN-GFX12-NEXT: s_wait_kmcnt 0x0
302
- ; GCN-GFX12-NEXT: s_clause 0xf
303
- ; GCN-GFX12-NEXT: global_load_b128 v[3:6], v[0:1], off
304
- ; GCN-GFX12-NEXT: global_load_b128 v[7:10], v[0:1], off offset:16
305
- ; GCN-GFX12-NEXT: global_load_b128 v[11:14], v[0:1], off offset:32
306
- ; GCN-GFX12-NEXT: global_load_b128 v[15:18], v[0:1], off offset:48
307
- ; GCN-GFX12-NEXT: global_load_b128 v[19:22], v[0:1], off offset:64
308
- ; GCN-GFX12-NEXT: global_load_b128 v[23:26], v[0:1], off offset:80
309
- ; GCN-GFX12-NEXT: global_load_b128 v[27:30], v[0:1], off offset:96
310
- ; GCN-GFX12-NEXT: global_load_b128 v[31:34], v[0:1], off offset:112
311
- ; GCN-GFX12-NEXT: global_load_b128 v[35:38], v[0:1], off offset:128
312
- ; GCN-GFX12-NEXT: global_load_b128 v[48:51], v[0:1], off offset:144
313
- ; GCN-GFX12-NEXT: global_load_b128 v[52:55], v[0:1], off offset:160
314
- ; GCN-GFX12-NEXT: global_load_b128 v[64:67], v[0:1], off offset:176
315
- ; GCN-GFX12-NEXT: global_load_b128 v[68:71], v[0:1], off offset:192
316
- ; GCN-GFX12-NEXT: global_load_b128 v[80:83], v[0:1], off offset:208
317
- ; GCN-GFX12-NEXT: global_load_b128 v[84:87], v[0:1], off offset:224
318
- ; GCN-GFX12-NEXT: global_load_b128 v[96:99], v[0:1], off offset:240
319
- ; GCN-GFX12-NEXT: v_and_b32_e32 v0, 31, v2
320
- ; GCN-GFX12-NEXT: s_mov_b32 s0, s33
321
- ; GCN-GFX12-NEXT: s_add_co_i32 s33, s32, 0xff
322
- ; GCN-GFX12-NEXT: s_addk_co_i32 s32, 0x300
323
- ; GCN-GFX12-NEXT: s_and_b32 s33, s33, 0xffffff00
324
- ; GCN-GFX12-NEXT: v_lshlrev_b32_e32 v0, 3, v0
325
- ; GCN-GFX12-NEXT: s_addk_co_i32 s32, 0xfd00
326
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0xf
327
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[3:6], s33
328
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0xe
329
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[7:10], s33 offset:16
330
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0xd
331
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[11:14], s33 offset:32
332
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0xc
333
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[15:18], s33 offset:48
334
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0xb
335
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[19:22], s33 offset:64
336
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0xa
337
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[23:26], s33 offset:80
338
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0x9
339
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[27:30], s33 offset:96
340
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0x8
341
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[31:34], s33 offset:112
342
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0x7
343
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[35:38], s33 offset:128
344
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0x6
345
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[48:51], s33 offset:144
346
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0x5
347
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[52:55], s33 offset:160
348
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0x4
349
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[64:67], s33 offset:176
350
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0x3
351
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[68:71], s33 offset:192
352
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0x2
353
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[80:83], s33 offset:208
354
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0x1
355
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[84:87], s33 offset:224
356
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0x0
357
- ; GCN-GFX12-NEXT: scratch_store_b128 off, v[96:99], s33 offset:240
358
- ; GCN-GFX12-NEXT: scratch_load_b64 v[0:1], v0, s33
359
- ; GCN-GFX12-NEXT: s_mov_b32 s33, s0
360
- ; GCN-GFX12-NEXT: s_wait_loadcnt 0x0
361
- ; GCN-GFX12-NEXT: s_wait_storecnt 0x0
362
- ; GCN-GFX12-NEXT: s_setpc_b64 s[30:31]
363
- ; GCN-LABEL: v_extract_v32i64_varidx:
364
- ; GCN: ; %bb.0:
365
- ; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
366
- ; GCN-NEXT: v_and_b32_e32 v2, 31, v2
367
- ; GCN-NEXT: v_lshlrev_b32_e32 v2, 3, v2
368
- ; GCN-NEXT: v_ashrrev_i32_e32 v3, 31, v2
369
- ; GCN-NEXT: v_add_co_u32_e32 v0, vcc, v0, v2
370
- ; GCN-NEXT: v_addc_co_u32_e32 v1, vcc, v1, v3, vcc
371
- ; GCN-NEXT: global_load_dwordx2 v[0:1], v[0:1], off
372
- ; GCN-NEXT: s_waitcnt vmcnt(0)
373
- ; GCN-NEXT: s_setpc_b64 s[30:31]
374
96
%vec = load <32 x i64 >, ptr addrspace (1 ) %ptr
375
97
%elt = extractelement <32 x i64 > %vec , i32 %idx
376
98
ret i64 %elt
0 commit comments