<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">