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

    <tr>
        <th>Summary</th>
        <td>
            [AMDGPU][MC][GFX10] v_mul_lo_i32 should be disabled
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            backend:AMDGPU,
            mc
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          dpreobra
      </td>
    </tr>
</table>

<pre>
    v_mul_lo_i32 is only supported on GFX7.

GFX8 SPG and public GCN3 ISA description state explicitly that it is no longer supported: "Removed Instructions: ... V_MUL_LO_I32 (it’s functionally identical to V_MUL_LO_U32)."

LLVM AMDGPU assembler supports v_mul_lo_i32 as an alias for v_mul_lo_u32 on GFX8 and GFX9. It is fine.

However v_mul_lo_i32 is defined as a real GFX10 instruction with an opcode different from v_mul_lo_u32. This looks like a bug because this instruction is not defined in any GFX10 documents. sp3 does not support v_mul_lo_i32 on GFX10 either.


</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxdUt1vmzAQ_2vMy2mImJDAAw9Zs2aRkq1a12pvkcFH8Gow8ke6_vc7SNY0k5B95s73-_BVRr6Vp0MX9EGbg0o5KAem12_gwjAY61HSETb3v5YxS9YsWZ1X-pHD48MGRC9hCJVWNWzuvqWwfVyBRFdbNXhFN50XHgH_DFShPPX1rfCg_IjTG9CmP6K9grF0BYzzH9iZE0Fve-dtqMdObkzFcQzPh_3T7rD7ftgSW8Zz5dkXzvKEFYWDJvRTtdAEpST2XtVCgzfXa08pZ7yICeWjoN3ueQ-r_Xrz8ATCOewqfeXl4MYi4Ug2CK0oaIy9JgMlz27lkzEUFDFsJ7GN6vHGwq_mFU9o4X_3JY6lckIBi8Se2swSUFcv4FX5duRghtpIBKmaBi2Jhcaa7oZPDD9baqqNeaFVvSA1rcIRKqxFcEjPQdmPrad38e8sFAnt3y4UpKlDRzAuBjekdMRz8cWmWylnI-gWElm0N9ojWaaySAsReRoKLFn2-ew9y9YU7-_O-3SfwtvGrjVBS1JAup2gd5JRsLpsvR_GIWH8nr4jgYYqrk1HB61P_7ZPgzW_sfZ0VM4FdBRk83y5jNqyqZYLTHIp54tFmuT1cjYTfL7MGlnMGiqKtKhQu5EtTU8l6hfsx4m9UKeB4nfj9Hb1GGfrSJU84TyZz_ismCdZEjdpmmWiSRYN5oSWs3mCnVA6HqnFxh4jW04s6YkcJbVyZPZ7kgZTHXuc_Br7i-BbY0s5WDSVFdGkqJzk_AXWREB1">