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

    <tr>
        <th>Summary</th>
        <td>
            [AArch64] The multiplication instruction is missing
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            backend:AArch64,
            miscompilation
      </td>
    </tr>

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

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

<pre>
    I tried the following code:

```llvm
define i32 @shift_overflow(i32 %x) {
  %const = bitcast i32 2147483648 to i32
  %r = mul i32 %x, %const
  ret i32 %r
}
```

I expect to get a multiplication or alternative instruction on AArch64, but I can only get a `ret` instruction: https://llvm.godbolt.org/z/xcffaPT9s.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxcUs1u4zwMfBr6IjSQ6R_FBx_SBgGK7_It0PtCf7a1K1uBRKfpPv3CjtNmCxgWMCSHMwPKlFw_WdtC9QyIRyenH_8BIlTHTM40hNjesEwF89G-MorOGkaDZV3wPry7qWc6GAvFAfgR-P1f89vn_WW8QcZ2brLMFcig5GlwHf0MFxs7H94B9yuO1RWwYSCebzNsgXSYEjEojkw50jLRyoF5Kcp9UZd7RmFBHibi2j3Onn2xvnxS3RujpXs9bqrF8Zv8R0-vzF7PVtOyr7fE5LKB3Nk7LcmFiYXIpCcbJ0nuYpmbEsVZ30oTOxyiHupyUaJmYq9MywX3HxsZ1Dxagpo_DkJxYAPROS354gnwtAS664NRwdMuxB7w9AfwdNVdJ_9_a9IuM21hmqKRmW1zkTd1WaNosqHdV6KppbLI80orne-LolDCGFELW5muylyLHEteY8NFkefNrtvXhpeoOUqlRKWg5HaUzu9WESH2mUtptm0j8lJkXirr03ZJSurfdjJQHD59I-ALII4u6TCenV9D224ttgvlk5r7BCX3LlH6WkKO_Hqhd6rqyN4G-z3-x7xdYqNLyU19Nkff_hth72iY1U6Hcctze57OMfyymgBPq68EeLpZu7T4NwAA___KxPbk">