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