<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/59892>59892</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Assertion failed: (BitSize == 64 && "All 32-bit immediates can be expanded with a" "MOVZ/MOVK pair"), function expandMOVImm, file AArch64ExpandImm.cpp, line 344.
</td>
</tr>
<tr>
<th>Labels</th>
<td>
backend:AArch64,
llvm:codegen,
crash-on-valid
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
regehr
</td>
</tr>
</table>
<pre>
this valid but non-canonical code kills the AArch64 backend:
```llvm
target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
target triple = "aarch64-linux-gnu"
define i53 @f(i53 %0, i53 %1) {
%3 = mul nsw i53 533765955107380, 533765955107382
ret i53 %3
}
```
https://gcc.godbolt.org/z/YKvzvKxj4
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxcU81uszoQfRqzsYjMGBNYsKBfLlJVVV1UqnTvztgTcGtMhE368_RXdpr2ayUYzJkZzujMQXpvRofYEnFDxCGTW5iWtV1xxGnNhkW_t2Eynp6lNZoOW6BucbmSbnFGSUvVopG-GGs9DRPSrlvVVJV0kOoFnSa8I-xA2DVW7HJZe54vUJDriIFqGaSV78sWKOEHSgAwnwnvMDc14V28OeSmqAjvUohvVUl4V5W5KSAWFFDnjsMFe4wYwA-SsJqTxSuBlGnU3Bq3veWj277KL1Hj0TikRnBKSnYkUKcjCEbgD_08FwQaSvY3lxYaIZ4I5s1S519TneB8X4lGiILteZ3af0JwbV8xXL_MP2fZH35p9_eMUwgnH0WGnkA_KrUbFz0sNuyWdSTQfxDo_707f5zv3p7LTLdcN7yRGbZFtefA67qpsqllshGNOEKj9yg4DgWXolAM93XFlEKdmRYYcFawhpW8FNWOlUJrzY-i4WzAsiElw1kau4uLjdyZ8X7DVjR1A5mVA1qfHAbw7YxPr0TZ4Q8BSKbgXXTUiO4LVqv0U764PFkwwuKQrW2szodt9KRk1vjgv7mDCRbbzntcg1kcPUpjMTJSAvWNCY_mI7kg7qkqKYGKQBUt0VlLOeSDCdTMM2ojA3qqpKMDUnw7SadR01cTJioJQGy5f3j6j0B___B0R0_SrGnsJq74uDmV6C-N9w9Pt_OcEsZ-_Sj_pNztPO_U6RSTNnqOl-Uu21bb_tqvCdM27NQyE-iTWpdHflqXZ1SBQJ9k9wT6pPz_AQAA___U9x2L">