<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/56091>56091</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[AMDGPU][MC][GFX11] Disassembly of v_cmpx*_e64_dpp cannot be reassembled
</td>
</tr>
<tr>
<th>Labels</th>
<td>
backend:AMDGPU,
mc
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
dpreobra
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
dpreobra
</td>
</tr>
</table>
<pre>
`e64_dpp` variants `v_cmp_*` and `v_cmpx_*` opcodes have different suffices when disassembled.
The following code
0x05,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x6f,0x01,0xff
0x00,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x6f,0x01,0xff
is disassembled as follows:
v_cmp_class_f16_e64_dpp s5, v1, v2 row_xmask:15 row_mask:0xf bank_mask:0xf
v_cmpx_class_f16_e64 v1, v2 row_xmask:15 row_mask:0xf bank_mask:0xf
This may look like a cosmetic issue, but only the first opcode can be reassembled, the second triggers an error.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJytUsmO2zAM_Rr7QjSQvCU5-JBOMHMq0EML9BZooWw1smVIcib5-8pL0sxcW8HQ42aSTyS38lYnFcGqOMlhiBJcmNOsDx6icjmJbjgl2WFysF4-bNe70Q7CSvTQsguC1Eqhwz6AH5XSItrfW-yj3TPvseMG5SYhx4QcfrQIyhpj33XfwJRjsS83xEOupEyylwhkhq2cQRYzKLb4Fo1kz5GEzlCpZ02pD6nJ8w_q_6Rebu0_8AXmV6I-yQ-fSS4PLEwMPylandY5TC7wE3240PnOwNn307Vj_hzT0HJWVy12AJz15yf9U4XrxxKwnn_JfR9jpNuxGxhrz2D0GYHFafoOgxagvR9xKsHHALY3NwjT2LXzYV0cEKwHjuDw8WBT_BTmUdi4ccHppkHn4_oBOmfdukCprHO5z_csDToYrJPy6-Hb8e37z6Q8Rvnby4Jvr78ojSIcHzO5gVXrs8Qlfjx57KS34VMz6ehM3YYwzMPLXuPX6NCOfCNsFxVjLnf4Mjj7G0WI6szbR6GsyJ6mbU3Ijiq6y_co822uil3J2J5TXpFqz4koUsM4Gj-RSLKMM3HGXsaKK6Ns2kGI0IlJLo-prjOSZaSiW7otaEk2KOiu2oksz0tVUCRJQbBj2mym1jbWNamr5y752PjoNNoH_9cZCeumR1w7kINDyx1bq7ExtNbVd2s686tncn8Ac_VMSA">