Skip to content

Commit 58e278f

Browse files
committed
Add dst_sel test
1 parent 5a19bc0 commit 58e278f

File tree

1 file changed

+309
-0
lines changed

1 file changed

+309
-0
lines changed
Lines changed: 309 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,309 @@
1+
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 5
2+
# RUN: llc -mtriple=amdgcn -mcpu=gfx1030 -simplify-mir -run-pass=si-peephole-sdwa -o - %s | FileCheck %s
3+
4+
# Test the combination of SDWA selections in si-peephole-sdwa. In each
5+
# example, the SDWA destination selection specified on the first instruction
6+
# must be combined with the destination selection that the pass determines
7+
# for the operand, i.e. the second instruction. In the cases where
8+
# this is not possible, no conversion should occur.
9+
10+
---
11+
name: op_select_word_1_instr_select_dword
12+
tracksRegLiveness: true
13+
body: |
14+
bb.0:
15+
liveins: $vgpr0
16+
; CHECK-LABEL: name: op_select_word_1_instr_select_dword
17+
; CHECK: liveins: $vgpr0
18+
; CHECK-NEXT: {{ $}}
19+
; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
20+
; CHECK-NEXT: [[V_LSHRREV_B32_sdwa:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_sdwa 0, [[COPY]], 0, [[COPY]], 0, 5, 0, 0, 0, implicit $exec
21+
; CHECK-NEXT: [[V_LSHRREV_B32_sdwa1:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_sdwa 0, [[COPY]], 0, [[COPY]], 0, 2, 0, 6, 6, implicit $exec
22+
; CHECK-NEXT: S_ENDPGM 0
23+
%1:vgpr_32 = COPY $vgpr0
24+
%2:vgpr_32 = V_LSHRREV_B32_sdwa 0, %1, 0, %1, 0, 6, 0, 0, 0, implicit $exec
25+
%3:vgpr_32 = V_LSHLREV_B32_e32 16, %2, implicit $exec /* Select WORD_1 */
26+
%4:vgpr_32 = V_LSHRREV_B32_sdwa 0, %1, 0, %1, 0, 2, 0, 6, 6, implicit $exec
27+
28+
S_ENDPGM 0
29+
...
30+
31+
---
32+
name: op_select_word_1_instr_select_word_1
33+
tracksRegLiveness: true
34+
body: |
35+
bb.0:
36+
liveins: $vgpr0
37+
; CHECK-LABEL: name: op_select_word_1_instr_select_word_1
38+
; CHECK: liveins: $vgpr0
39+
; CHECK-NEXT: {{ $}}
40+
; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
41+
; CHECK-NEXT: [[V_LSHRREV_B32_sdwa:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_sdwa 0, [[COPY]], 0, [[COPY]], 0, 5, 0, 0, 0, implicit $exec
42+
; CHECK-NEXT: [[V_LSHRREV_B32_sdwa1:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_sdwa 0, [[COPY]], 0, [[COPY]], 0, 2, 0, 6, 6, implicit $exec
43+
; CHECK-NEXT: S_ENDPGM 0
44+
%1:vgpr_32 = COPY $vgpr0
45+
%2:vgpr_32 = V_LSHRREV_B32_sdwa 0, %1, 0, %1, 0, 5, 0, 0, 0, implicit $exec
46+
%3:vgpr_32 = V_LSHLREV_B32_e32 16, %2, implicit $exec /* Select WORD_1 */
47+
%4:vgpr_32 = V_LSHRREV_B32_sdwa 0, %1, 0, %1, 0, 2, 0, 6, 6, implicit $exec
48+
49+
S_ENDPGM 0
50+
...
51+
52+
---
53+
name: op_select_word_1_instr_select_word_0
54+
tracksRegLiveness: true
55+
body: |
56+
bb.0:
57+
liveins: $vgpr0
58+
; CHECK-LABEL: name: op_select_word_1_instr_select_word_0
59+
; CHECK: liveins: $vgpr0
60+
; CHECK-NEXT: {{ $}}
61+
; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
62+
; CHECK-NEXT: [[V_LSHRREV_B32_sdwa:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_sdwa 0, [[COPY]], 0, [[COPY]], 0, 5, 0, 0, 0, implicit $exec
63+
; CHECK-NEXT: [[V_LSHRREV_B32_sdwa1:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_sdwa 0, [[COPY]], 0, [[COPY]], 0, 2, 0, 6, 6, implicit $exec
64+
; CHECK-NEXT: S_ENDPGM 0
65+
%1:vgpr_32 = COPY $vgpr0
66+
%2:vgpr_32 = V_LSHRREV_B32_sdwa 0, %1, 0, %1, 0, 4, 0, 0, 0, implicit $exec
67+
%3:vgpr_32 = V_LSHLREV_B32_e32 16, %2, implicit $exec /* Select WORD_1 */
68+
%4:vgpr_32 = V_LSHRREV_B32_sdwa 0, %1, 0, %1, 0, 2, 0, 6, 6, implicit $exec
69+
70+
S_ENDPGM 0
71+
...
72+
73+
---
74+
name: op_select_word_1_instr_select_byte_3
75+
tracksRegLiveness: true
76+
body: |
77+
bb.0:
78+
liveins: $vgpr0
79+
; CHECK-LABEL: name: op_select_word_1_instr_select_byte_3
80+
; CHECK: liveins: $vgpr0
81+
; CHECK-NEXT: {{ $}}
82+
; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
83+
; CHECK-NEXT: [[V_LSHRREV_B32_sdwa:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_sdwa 0, [[COPY]], 0, [[COPY]], 0, 3, 0, 0, 0, implicit $exec
84+
; CHECK-NEXT: [[V_LSHLREV_B32_e32_:%[0-9]+]]:vgpr_32 = V_LSHLREV_B32_e32 16, [[V_LSHRREV_B32_sdwa]], implicit $exec
85+
; CHECK-NEXT: [[V_LSHRREV_B32_sdwa1:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_sdwa 0, [[COPY]], 0, [[COPY]], 0, 2, 0, 6, 6, implicit $exec
86+
; CHECK-NEXT: S_ENDPGM 0
87+
%1:vgpr_32 = COPY $vgpr0
88+
%2:vgpr_32 = V_LSHRREV_B32_sdwa 0, %1, 0, %1, 0, 3, 0, 0, 0, implicit $exec
89+
%3:vgpr_32 = V_LSHLREV_B32_e32 16, %2, implicit $exec /* Select WORD_1 */
90+
%4:vgpr_32 = V_LSHRREV_B32_sdwa 0, %1, 0, %1, 0, 2, 0, 6, 6, implicit $exec
91+
92+
S_ENDPGM 0
93+
...
94+
95+
---
96+
name: op_select_word_1_instr_select_byte_2
97+
tracksRegLiveness: true
98+
body: |
99+
bb.0:
100+
liveins: $vgpr0
101+
; CHECK-LABEL: name: op_select_word_1_instr_select_byte_2
102+
; CHECK: liveins: $vgpr0
103+
; CHECK-NEXT: {{ $}}
104+
; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
105+
; CHECK-NEXT: [[V_LSHRREV_B32_sdwa:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_sdwa 0, [[COPY]], 0, [[COPY]], 0, 2, 0, 0, 0, implicit $exec
106+
; CHECK-NEXT: [[V_LSHLREV_B32_e32_:%[0-9]+]]:vgpr_32 = V_LSHLREV_B32_e32 16, [[V_LSHRREV_B32_sdwa]], implicit $exec
107+
; CHECK-NEXT: [[V_LSHRREV_B32_sdwa1:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_sdwa 0, [[COPY]], 0, [[COPY]], 0, 2, 0, 6, 6, implicit $exec
108+
; CHECK-NEXT: S_ENDPGM 0
109+
%1:vgpr_32 = COPY $vgpr0
110+
%2:vgpr_32 = V_LSHRREV_B32_sdwa 0, %1, 0, %1, 0, 2, 0, 0, 0, implicit $exec
111+
%3:vgpr_32 = V_LSHLREV_B32_e32 16, %2, implicit $exec /* Select WORD_1 */
112+
%4:vgpr_32 = V_LSHRREV_B32_sdwa 0, %1, 0, %1, 0, 2, 0, 6, 6, implicit $exec
113+
114+
S_ENDPGM 0
115+
...
116+
117+
---
118+
name: op_select_word_1_instr_select_byte_1
119+
tracksRegLiveness: true
120+
body: |
121+
bb.0:
122+
liveins: $vgpr0
123+
; CHECK-LABEL: name: op_select_word_1_instr_select_byte_1
124+
; CHECK: liveins: $vgpr0
125+
; CHECK-NEXT: {{ $}}
126+
; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
127+
; CHECK-NEXT: [[V_LSHRREV_B32_sdwa:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_sdwa 0, [[COPY]], 0, [[COPY]], 0, 3, 0, 0, 0, implicit $exec
128+
; CHECK-NEXT: [[V_LSHRREV_B32_sdwa1:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_sdwa 0, [[COPY]], 0, [[COPY]], 0, 2, 0, 6, 6, implicit $exec
129+
; CHECK-NEXT: S_ENDPGM 0
130+
%1:vgpr_32 = COPY $vgpr0
131+
%2:vgpr_32 = V_LSHRREV_B32_sdwa 0, %1, 0, %1, 0, 1, 0, 0, 0, implicit $exec
132+
%3:vgpr_32 = V_LSHLREV_B32_e32 16, %2, implicit $exec /* Select WORD_1 */
133+
%4:vgpr_32 = V_LSHRREV_B32_sdwa 0, %1, 0, %1, 0, 2, 0, 6, 6, implicit $exec
134+
135+
S_ENDPGM 0
136+
...
137+
138+
---
139+
name: op_select_word_1_instr_select_byte_0
140+
tracksRegLiveness: true
141+
body: |
142+
bb.0:
143+
liveins: $vgpr0
144+
; CHECK-LABEL: name: op_select_word_1_instr_select_byte_0
145+
; CHECK: liveins: $vgpr0
146+
; CHECK-NEXT: {{ $}}
147+
; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
148+
; CHECK-NEXT: [[V_LSHRREV_B32_sdwa:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_sdwa 0, [[COPY]], 0, [[COPY]], 0, 2, 0, 0, 0, implicit $exec
149+
; CHECK-NEXT: [[V_LSHRREV_B32_sdwa1:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_sdwa 0, [[COPY]], 0, [[COPY]], 0, 2, 0, 6, 6, implicit $exec
150+
; CHECK-NEXT: S_ENDPGM 0
151+
%1:vgpr_32 = COPY $vgpr0
152+
%2:vgpr_32 = V_LSHRREV_B32_sdwa 0, %1, 0, %1, 0, 0, 0, 0, 0, implicit $exec
153+
%3:vgpr_32 = V_LSHLREV_B32_e32 16, %2, implicit $exec /* Select WORD_1 */
154+
%4:vgpr_32 = V_LSHRREV_B32_sdwa 0, %1, 0, %1, 0, 2, 0, 6, 6, implicit $exec
155+
156+
S_ENDPGM 0
157+
...
158+
159+
---
160+
name: op_select_byte_3_instr_select_dword
161+
tracksRegLiveness: true
162+
body: |
163+
bb.0:
164+
liveins: $vgpr0
165+
; CHECK-LABEL: name: op_select_byte_3_instr_select_dword
166+
; CHECK: liveins: $vgpr0
167+
; CHECK-NEXT: {{ $}}
168+
; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
169+
; CHECK-NEXT: [[V_LSHRREV_B32_sdwa:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_sdwa 0, [[COPY]], 0, [[COPY]], 0, 3, 0, 0, 0, implicit $exec
170+
; CHECK-NEXT: [[V_LSHRREV_B32_sdwa1:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_sdwa 0, [[COPY]], 0, [[COPY]], 0, 2, 0, 6, 6, implicit $exec
171+
; CHECK-NEXT: S_ENDPGM 0
172+
%1:vgpr_32 = COPY $vgpr0
173+
%2:vgpr_32 = V_LSHRREV_B32_sdwa 0, %1, 0, %1, 0, 6, 0, 0, 0, implicit $exec
174+
%3:vgpr_32 = V_LSHLREV_B32_e32 24, %2, implicit $exec /* Select BYTE_3 */
175+
%4:vgpr_32 = V_LSHRREV_B32_sdwa 0, %1, 0, %1, 0, 2, 0, 6, 6, implicit $exec
176+
177+
S_ENDPGM 0
178+
...
179+
180+
---
181+
name: op_select_byte_3_instr_select_word_1
182+
tracksRegLiveness: true
183+
body: |
184+
bb.0:
185+
liveins: $vgpr0
186+
; CHECK-LABEL: name: op_select_byte_3_instr_select_word_1
187+
; CHECK: liveins: $vgpr0
188+
; CHECK-NEXT: {{ $}}
189+
; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
190+
; CHECK-NEXT: [[V_LSHRREV_B32_sdwa:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_sdwa 0, [[COPY]], 0, [[COPY]], 0, 5, 0, 0, 0, implicit $exec
191+
; CHECK-NEXT: [[V_LSHLREV_B32_e32_:%[0-9]+]]:vgpr_32 = V_LSHLREV_B32_e32 24, [[V_LSHRREV_B32_sdwa]], implicit $exec
192+
; CHECK-NEXT: [[V_LSHRREV_B32_sdwa1:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_sdwa 0, [[COPY]], 0, [[COPY]], 0, 2, 0, 6, 6, implicit $exec
193+
; CHECK-NEXT: S_ENDPGM 0
194+
%1:vgpr_32 = COPY $vgpr0
195+
%2:vgpr_32 = V_LSHRREV_B32_sdwa 0, %1, 0, %1, 0, 5, 0, 0, 0, implicit $exec
196+
%3:vgpr_32 = V_LSHLREV_B32_e32 24, %2, implicit $exec /* Select BYTE_3 */
197+
%4:vgpr_32 = V_LSHRREV_B32_sdwa 0, %1, 0, %1, 0, 2, 0, 6, 6, implicit $exec
198+
199+
S_ENDPGM 0
200+
...
201+
202+
---
203+
name: op_select_byte_3_instr_select_word_0
204+
tracksRegLiveness: true
205+
body: |
206+
bb.0:
207+
liveins: $vgpr0
208+
; CHECK-LABEL: name: op_select_byte_3_instr_select_word_0
209+
; CHECK: liveins: $vgpr0
210+
; CHECK-NEXT: {{ $}}
211+
; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
212+
; CHECK-NEXT: [[V_LSHRREV_B32_sdwa:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_sdwa 0, [[COPY]], 0, [[COPY]], 0, 4, 0, 0, 0, implicit $exec
213+
; CHECK-NEXT: [[V_LSHLREV_B32_e32_:%[0-9]+]]:vgpr_32 = V_LSHLREV_B32_e32 24, [[V_LSHRREV_B32_sdwa]], implicit $exec
214+
; CHECK-NEXT: [[V_LSHRREV_B32_sdwa1:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_sdwa 0, [[COPY]], 0, [[COPY]], 0, 2, 0, 6, 6, implicit $exec
215+
; CHECK-NEXT: S_ENDPGM 0
216+
%1:vgpr_32 = COPY $vgpr0
217+
%2:vgpr_32 = V_LSHRREV_B32_sdwa 0, %1, 0, %1, 0, 4, 0, 0, 0, implicit $exec
218+
%3:vgpr_32 = V_LSHLREV_B32_e32 24, %2, implicit $exec /* Select BYTE_3 */
219+
%4:vgpr_32 = V_LSHRREV_B32_sdwa 0, %1, 0, %1, 0, 2, 0, 6, 6, implicit $exec
220+
221+
S_ENDPGM 0
222+
...
223+
224+
---
225+
name: op_select_byte_3_instr_select_byte_3
226+
tracksRegLiveness: true
227+
body: |
228+
bb.0:
229+
liveins: $vgpr0
230+
; CHECK-LABEL: name: op_select_byte_3_instr_select_byte_3
231+
; CHECK: liveins: $vgpr0
232+
; CHECK-NEXT: {{ $}}
233+
; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
234+
; CHECK-NEXT: [[V_LSHRREV_B32_sdwa:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_sdwa 0, [[COPY]], 0, [[COPY]], 0, 3, 0, 0, 0, implicit $exec
235+
; CHECK-NEXT: [[V_LSHRREV_B32_sdwa1:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_sdwa 0, [[COPY]], 0, [[COPY]], 0, 2, 0, 6, 6, implicit $exec
236+
; CHECK-NEXT: S_ENDPGM 0
237+
%1:vgpr_32 = COPY $vgpr0
238+
%2:vgpr_32 = V_LSHRREV_B32_sdwa 0, %1, 0, %1, 0, 3, 0, 0, 0, implicit $exec
239+
%3:vgpr_32 = V_LSHLREV_B32_e32 24, %2, implicit $exec /* Select BYTE_3 */
240+
%4:vgpr_32 = V_LSHRREV_B32_sdwa 0, %1, 0, %1, 0, 2, 0, 6, 6, implicit $exec
241+
242+
S_ENDPGM 0
243+
...
244+
245+
---
246+
name: op_select_byte_3_instr_select_byte_2
247+
tracksRegLiveness: true
248+
body: |
249+
bb.0:
250+
liveins: $vgpr0
251+
; CHECK-LABEL: name: op_select_byte_3_instr_select_byte_2
252+
; CHECK: liveins: $vgpr0
253+
; CHECK-NEXT: {{ $}}
254+
; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
255+
; CHECK-NEXT: [[V_LSHRREV_B32_sdwa:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_sdwa 0, [[COPY]], 0, [[COPY]], 0, 2, 0, 0, 0, implicit $exec
256+
; CHECK-NEXT: [[V_LSHLREV_B32_e32_:%[0-9]+]]:vgpr_32 = V_LSHLREV_B32_e32 24, [[V_LSHRREV_B32_sdwa]], implicit $exec
257+
; CHECK-NEXT: [[V_LSHRREV_B32_sdwa1:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_sdwa 0, [[COPY]], 0, [[COPY]], 0, 2, 0, 6, 6, implicit $exec
258+
; CHECK-NEXT: S_ENDPGM 0
259+
%1:vgpr_32 = COPY $vgpr0
260+
%2:vgpr_32 = V_LSHRREV_B32_sdwa 0, %1, 0, %1, 0, 2, 0, 0, 0, implicit $exec
261+
%3:vgpr_32 = V_LSHLREV_B32_e32 24, %2, implicit $exec /* Select BYTE_3 */
262+
%4:vgpr_32 = V_LSHRREV_B32_sdwa 0, %1, 0, %1, 0, 2, 0, 6, 6, implicit $exec
263+
264+
S_ENDPGM 0
265+
...
266+
267+
---
268+
name: op_select_byte_3_instr_select_byte_1
269+
tracksRegLiveness: true
270+
body: |
271+
bb.0:
272+
liveins: $vgpr0
273+
; CHECK-LABEL: name: op_select_byte_3_instr_select_byte_1
274+
; CHECK: liveins: $vgpr0
275+
; CHECK-NEXT: {{ $}}
276+
; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
277+
; CHECK-NEXT: [[V_LSHRREV_B32_sdwa:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_sdwa 0, [[COPY]], 0, [[COPY]], 0, 1, 0, 0, 0, implicit $exec
278+
; CHECK-NEXT: [[V_LSHLREV_B32_e32_:%[0-9]+]]:vgpr_32 = V_LSHLREV_B32_e32 24, [[V_LSHRREV_B32_sdwa]], implicit $exec
279+
; CHECK-NEXT: [[V_LSHRREV_B32_sdwa1:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_sdwa 0, [[COPY]], 0, [[COPY]], 0, 2, 0, 6, 6, implicit $exec
280+
; CHECK-NEXT: S_ENDPGM 0
281+
%1:vgpr_32 = COPY $vgpr0
282+
%2:vgpr_32 = V_LSHRREV_B32_sdwa 0, %1, 0, %1, 0, 1, 0, 0, 0, implicit $exec
283+
%3:vgpr_32 = V_LSHLREV_B32_e32 24, %2, implicit $exec /* Select BYTE_3 */
284+
%4:vgpr_32 = V_LSHRREV_B32_sdwa 0, %1, 0, %1, 0, 2, 0, 6, 6, implicit $exec
285+
286+
S_ENDPGM 0
287+
...
288+
289+
---
290+
name: op_select_byte_3_instr_select_byte_0
291+
tracksRegLiveness: true
292+
body: |
293+
bb.0:
294+
liveins: $vgpr0
295+
; CHECK-LABEL: name: op_select_byte_3_instr_select_byte_0
296+
; CHECK: liveins: $vgpr0
297+
; CHECK-NEXT: {{ $}}
298+
; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
299+
; CHECK-NEXT: [[V_LSHRREV_B32_sdwa:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_sdwa 0, [[COPY]], 0, [[COPY]], 0, 0, 0, 0, 0, implicit $exec
300+
; CHECK-NEXT: [[V_LSHLREV_B32_e32_:%[0-9]+]]:vgpr_32 = V_LSHLREV_B32_e32 24, [[V_LSHRREV_B32_sdwa]], implicit $exec
301+
; CHECK-NEXT: [[V_LSHRREV_B32_sdwa1:%[0-9]+]]:vgpr_32 = V_LSHRREV_B32_sdwa 0, [[COPY]], 0, [[COPY]], 0, 2, 0, 6, 6, implicit $exec
302+
; CHECK-NEXT: S_ENDPGM 0
303+
%1:vgpr_32 = COPY $vgpr0
304+
%2:vgpr_32 = V_LSHRREV_B32_sdwa 0, %1, 0, %1, 0, 0, 0, 0, 0, implicit $exec
305+
%3:vgpr_32 = V_LSHLREV_B32_e32 24, %2, implicit $exec /* Select BYTE_3 */
306+
%4:vgpr_32 = V_LSHRREV_B32_sdwa 0, %1, 0, %1, 0, 2, 0, 6, 6, implicit $exec
307+
308+
S_ENDPGM 0
309+
...

0 commit comments

Comments
 (0)