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

    <tr>
        <th>Summary</th>
        <td>
            Assertion `Val == MO.getImm() && "Add/sub immediate out of range!"' with high stack alignment on arm64 windows
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

    <tr>
      <th>Reporter</th>
      <td>
          efriedma-quic
      </td>
    </tr>
</table>

<pre>
    Testcase:

```
void g(void*);
void f() { _Alignas(8192) int x[1 << 26]; g(x); }
```

llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.cpp:1206: void llvm::AArch64InstPrinter::printAddSubImm(const llvm::MCInst *, unsigned int, const llvm::MCSubtargetInfo &, llvm::raw_ostream &): Assertion `Val == MO.getImm() && "Add/sub immediate out of range!"' failed.

Looks like an invalid ADDXri instruction.

CC @mstorsjo 
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy0U01vpDgQ_TXFpZSWKQMNBw50I6RIG-1KiVZ7iww24ATsXtuks_9-ZTqjZJS5joQs6uM9v3pyCe_1ZJSqIT9B3iZiC7N1tRqdVnIVd_9uekh6K_-rn5QPg_AKeAOsBfbjLNjHt4dvVkucgMr4A9QAVcBPX2ojUAlUIRxP-NwsejLCA5VlWlFMaxPwHfJTisDPwM9IBeQt8NNO-n6jQzi2v7z9di7L2wrULboH6p6Em1QA6prGDXORAXUP51uyVX74LNwbH_5y2gTlDsPlArxJiRXAG9x176S8Ad5877_lLzFopHzc-vt1BSoHa3z4Anw4RwzurpxxM7vzMo4c4-_dj1sfdqH3ZrQIVMS2zwYnrs_WB6fEeitWUWzjvXJBW4NQsL_FgsBb4C0-_HmITLuw3f-IKBCIGimBOr_1qNdVSS2CQrsFtCM6YSYFlAIR0BFHoRclD1-9_sPaV4-LflUoDGrzJhYtsWnbf5xGbXxw2xDV_AQ6nxEytvpgnX-xmMiay4pXIlF1WpRlXlV5kSVzzVg2lGXZiyIXVFGfU8XSYRTHksmUqTTRNTHi7Mhy4lSw7EDpcSzLtK_SlPJx4JAxtQq9HKJtB-umRHu_qbrgR5Ymi-jV4venT2TUFfdiHDZvE1dHzF2_TR4ytmgf_CdL0GFR9e_0-qrDjLOeZvRBDK8o4qqsygS0BoVbiwyv2kh79cnmlnoO4eLju6AOqJt0mLf-MNh9Dz7WIU5zcfZFDXEd9lE9ULdb8X8AAAD__8YXNKc">