<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/59173>59173</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [AMDGPU][MC] Assembler triggers an assert when a mandatory literal value is -1
        </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>
    An example of failed test for GFX11:

    v_fmaak_f32 v5, v1, v2, -1

Expected output:

    v_fmaak_f32 v5, v1, v2, 0xffffffff      ; encoding: [0x01,0x05,0x0a,0x5a,0xff,0xff,0xff,0xff]

Actual result:

    an assert.

It turned out that code emitter uses a magic value to indicate an invalid literal and this value happens to be -1.
A fix is pending.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyVUk1v2zAM_TX2hUhgyXYSH3xwmrXYocAuA3YrJJmytcof0EeW_vvRjrv20MsIQU8SKfI9gnJq3-pmBLyJYbYIkwYtjMUWAvoAenLw9PiLsSRvkuySZNsOZNcXPQjx-qJzDtcy4Q9wZevOl33HPsd_u82oAmWdYphj-O9s2U1vBqsl-RlwVFNrxo6SQVKes1u2fCAo7yBWKO-g9ddQXj4TaVSIwoJDH-1XJMUIwnt0Yf_Z8z1AiG68q4PQiwDEDAEHEwI6iB49CBhEZxRchY0IYQIztkaJgEtSM9KzacEaiicCYqT-98Zv0b2YZxz98ksidXar3oA2N6Aoci6N2KdYs8Oh4vxUHau0rfO2yiuRBhMs1tSi5vny9OPnork8Pz8QQkNqBmmJZHCm69D5D43wp8dx5T22Ikzu7R-9OysqvGNpdLbuQ5j90i7-SKszoY9yr6aBLtZe32E3u-k3TQFdjfcRPR3Kih3ztK9ZfjywI9ccj4UumMSyUEq0hZKqLYs8S62QaP0iIuFcCvVKkqnipoivQ0IwqOVcXlJT84xzxnjOTgUvqr1sdZGdKllV8lChzpMiw4Emfb9Q20-uS129spSx8-S0xgf_4aSWmG5E3Bi0s8NJOrFVEzH0k6vfX9NVX72K-wv61QiF">