<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/54119>54119</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
amdgpu disassembler ignores opsel on vop3 instructions
</td>
</tr>
<tr>
<th>Labels</th>
<td>
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
DadSchoorse
</td>
</tr>
</table>
<pre>
```
Representation: Assembly (Final Assembly)
BB0:
s_mov_b32 s0, s3 ; be800303
s_movk_i32 s3, 0x8000 ; b0038000
s_load_dwordx8 s[8:15], s[2:3], 0xe0 ; f40c0201 fa0000e0
v_lshl_add_u32 v2, s0, 3, v0 ; d7460002 04010600
v_lshl_add_u32 v3, s4, 3, v1 ; d7460003 04050604
v_add_nc_u16 v0, v2, 4 ; d7030000 00010902
v_add_nc_u16 v0, v3, 4 ; d7034000 00010903
v_pack_b32_f16 v1, v0, 0xfd66 ; d7110001 0001ff00 0000fd66
s_waitcnt lgkmcnt(0) ; bf8cc07f
image_store v[0:1], v[2:3], s[8:15] dmask:0xf dim:SQ_RSRC_IMG_2D unorm glc d16 ; f0203f08 80020002
s_endpgm ; bf810000
```
This was created by radv+aco using llvm as the disassembler, and I think the second v_add_nc_u16 is using opsel to write to the high half of v0, but that's not visible in the resulting assembly.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJydVE1zmzAU_DVweVOPhLCBA4c4nnR66KFJ74xAAlQL5EECx_--T0AbJ9OmThkB-tx9q7dSacQlD3ZkLeQQkLtHeRqklb3jTpk-YHdwZ63sSn2BIEofVM_1754gypZFy3e_Jzh_qQM-tujMVJQsAkuC6B4sgw88AdtDKVNCGGFvMI-F8qDMg5JnnEI-gomIfsk1pjZcFOJsBvGcgg22-xSF0G2wPcxxY0eEHWxtk2f5V0LPUMekIhGhUHPkIfKKaiq0bXXBhShGlDBFM_68O7Oa6Z9KPIFI4h0CR0BiQsmOvEMwo9r4hYB-gIB5gi0SxNcEHruvipHuMNwZc1YR354CkWBSfdbwpSQj0fvw7D_g4yt4dg1_4tXRe7KoPQFdNn3Jai12u5vgKfXIM3xdLzzEL7621JkrV_UOdHPs8I9nB1my20SsRq3TqiJJ_YKqOt7IwjozSJjQlP640dWU0xuTvnIxiI7bI7ZQJAjVYe3pW_H49HhffPn6uYgOMPZm6KDRFQjcl9nFaGFWkxTwsETebdfqZC9OTXermj8o8zu42vbNBbR8v7fKwplbqAbJnRRQXmDgYgqiPa8MjFb1DWg9dYBzXCtRleXLtSQHr5_3Ar7giOqP87iVlcGuV_5CigXInKzU4AycB-Wkr_glrWpaaLmuwdSrScrR4RDHdCYWeuNgUlYhJah-XoJX56idh1yDuWwWPaHImchYxkOnnJY570RzGl9FDarBJEi7RmN6mMyJIbJ1w1j529iG46Dz1rmT9Rdt9IClUa4dy01lOmz4DVl_n06D-SErjPRBWTtKi5VtTGkWtnlWS76tWJoQyuOyzPAOYYSWiUxknGQRDzUvpbY5WgjNE6o8IpEvKU1YFicbJrYxl7GglLOtrKsgJrLjSm888cYMTTjkcwzl2Fgc1Mo6-zKIilGqlL_w-ehaM-QHLp6q1pjBynAOOZ_j_QlLsb2V">