<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/82039>82039</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[AMDGPU][Disassembler] `getInlineImmVal16` can't tell BF16 and FP16 apart when it comes to inline literal
</td>
</tr>
<tr>
<th>Labels</th>
<td>
backend:AMDGPU
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
shiltian
</td>
</tr>
</table>
<pre>
Based on the spec, `242` is the encoding for inline literal `1.0`. However, when `getInlineImmVal16` sees `242`, it doesn't know whether the operand is BF16 or FP16. Currently it returns `1.0` in FP16 format. As a consequence, the encoded instruction and operand are not correct.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx0UruO2zAQ_BqqWZxAUU8XKuwzlFwR4Jqkp6i1xBxFOtzVGff3AeVLDARIxYKzM7Mzq4ns7BF7UZ9Efc70xkuIPS3WsdU-G8P00Z804QTBAy8IdEUj1DOIRqpKiUaCpf0DvQmT9TNcQgTrnfUIzjJG7RK4yKVoZA5fww3fMSaK24I-fc3ILzv-ZV1_aFc0iZUQ6SGS4JZhCkheqJbhzYdbIuAF4y4frhi1n5Kb01A0ECIMr0WTw_MWI3p2H4kgIm_R08MQWL_jkutVcw5HAg0meMJfG3qDSfnvejiB9cRxM2yDh6T3R1dHBB8YTIgRDefZ1JfToTzoDPuilV1R1K1qs6UvsMCxM7ozkzmUo6o7OV2qYrxgW43S1JntlVSVVEWjZFmrNu8usjNl2WE7Xg6VNqKSuGrrcufe1zzEObNEG_adkuUhc3pER3uhSo3avKGfRHk8fjt_ef0ulEo1xz6NPo3bTKKSzhLTg4wtu_0gPkfqs6hPZ0uaCNfRYRT1-b-1GX3vh9G5exEpnD1hfdWR76XblNOKBBz-OZVsi65fmK8kyqNQg1DDbHnZxtyEVaghufx8nq4x_ETDQg37_iTUsEfwOwAA__8wZegU">