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

    <tr>
        <th>Summary</th>
        <td>
            AArch64 + global isel -- Assertion failed: (BitPosition < BitWidth && "BitPosition out of range")
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            backend:AArch64,
            globalisel,
            crash-on-valid
      </td>
    </tr>

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

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

<pre>
    getting a crash out of this IR:
```llvm
define i64 @f(i8 %_t) {
  %1 = shl i8 %_t, 14
  %2 = ashr i8 %1, 14
  %_sext = sext i8 %2 to i32
 %_zext = zext i32 %_sext to i64
  ret i64 %_zext
}
```

repro like so:
```
Johns-MacBook-Pro:tmp regehr$ llc -global-isel reduced.ll
Assertion failed: (BitPosition < BitWidth && "BitPosition out of range"), function setBit, file APInt.h, line 1309.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: llc -global-isel reduced.ll
1.      Running pass 'Function Pass Manager' on module 'reduced.ll'.
2.      Running pass 'AArch64PreLegalizerCombiner' on function '@f'
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
0  libLLVMSupport.dylib        0x0000000108a89854 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 56
1 libLLVMSupport.dylib        0x0000000108a886d8 llvm::sys::RunSignalHandlers() + 112
2  libLLVMSupport.dylib        0x0000000108a89ee0 SignalHandler(int) + 344
3  libsystem_platform.dylib    0x00000001876742a4 _sigtramp + 56
4  libsystem_pthread.dylib     0x0000000187645cec pthread_kill + 288
5  libsystem_c.dylib           0x000000018757e2c8 abort + 180
6 libsystem_c.dylib           0x000000018757d620 err + 0
7 libLLVMAArch64CodeGen.dylib 0x000000010216bc58 (anonymous namespace)::AArch64GenPreLegalizerCombinerHelper::tryCombineAll(llvm::GISelChangeObserver&, llvm::MachineInstr&, llvm::MachineIRBuilder&) const + 72288
8 libLLVMAArch64CodeGen.dylib 0x0000000102156850 (anonymous namespace)::AArch64PreLegalizerCombinerInfo::combine(llvm::GISelChangeObserver&, llvm::MachineInstr&, llvm::MachineIRBuilder&) const + 152
9 libLLVMGlobalISel.dylib     0x000000010b919cfc llvm::Combiner::combineMachineInstrs(llvm::MachineFunction&, llvm::GISelCSEInfo*) + 2260
10 libLLVMAArch64CodeGen.dylib 0x0000000102156504 (anonymous namespace)::AArch64PreLegalizerCombiner::runOnMachineFunction(llvm::MachineFunction&) + 908
11 libLLVMCodeGen.dylib        0x000000010929e3e0 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) + 616
12 libLLVMCore.dylib           0x000000010a3272ac llvm::FPPassManager::runOnFunction(llvm::Function&) + 704
13 libLLVMCore.dylib           0x000000010a32dfdc llvm::FPPassManager::runOnModule(llvm::Module&) + 60
14 libLLVMCore.dylib 0x000000010a327880 llvm::legacy::PassManagerImpl::run(llvm::Module&) + 764
15 llc                         0x0000000100c9d208 compileModule(char**, llvm::LLVMContext&) + 5672
16 llc 0x0000000100c9b594 main + 1128
17 dyld 0x000000018731be50 start + 2544
Abort trap: 6
Johns-MacBook-Pro:tmp regehr$ 
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy8V1tv67gR_jX0y8AGRd0f_GAnJ-ekSHCMZNGifQkoaSyxoUiDpLLr_fUFKfmWePectOgKQSxRw29mvrlwxK0VrUJcknRN0tsZH1ynzdJgi52ZVbrZL1t0TqgWONSG2w704EBvwXXCwv0TiVeE3hK6Ihkd_6R868elBrdCIYgsAZLQLWGFKICw9MURVgLJ16MY-LUISHwLtpNwkrmBKDkTYUGE285MMtEHkReLv7kRyd-MYgycBhGzSc6L_X4QCzciZqfNXjY7Yhp0o_3TpsnX_Pad09Nj-G9wZzRI8Ypg9Ud-xse_6U7Z-SOv11q_zjfGC7p-ByPzhCUgZQ3zVuqKy7mwKMFgM9TYLKQcIVbWonFCK9hyIbEhsXeuWAu30VaEFyS-gbVw_xCN64CwjLAMCGPnIlM4DVctEsYIKz2r20HV4bVFtxYhFlshEVabe-UWnX-WPrZRTMvFaM7m4cvq-QvYoeqFAw7V0ILBnTaB0865nfVksDvC7lrhuqFa1Lon7C4kzPgz3xn9b6wdYXfC2gEtYXfAVQNC1XJoEFyHUxpWvH51htc4qX92vH6FZuh3R8rpgtByY3RreA_ctEOPynkjfsxt5Lc-DUr5zN9xa4Gw_O5AysYvPHLFWzSE5aAV9LoZJHqpMyiWT8axa3Crlam7LNkYfMCWS_E7mhvdV0IdQY9RICwfKyh_7yz8KlznY2j3faUlKN6jRy9Q2cEg7PUAHX9DCPSOQl4TCOXfGdisfvkG2vhAB3ZRvQmjlacK3rgBktGHh78_vjz_83H9_eH-X1-eXvwWklEf1p0WaqwZX9Mn5gGkqPy-52HnU2DR7KWoYLrob3S8IlrwoizSJJjnt8cru7fjzcYI5YKnv_g4E1achAz_9UVbZ5D3Ia1vQKixq7A1pNkUxE8YUWRNcc2Ip0E9i1Zx-Y2rRqKxhBUHPVE09RT2KXcRKVxg-sZ4sj5Opu4TB1S7tw77l53kbqtNf0I-oRZ5lieMJ_BiResM73cXNCQXOK4zyJszAy9wkrTGGiahl1chZYBiRTFipedY9aWb77DSHFldAK98Bwh0FVPvyz6B0WSMAhoTEKb9-YHtqYJudINfUU1IZ2yzKKvq1B8CBVda7Xs92LFCdiGhyjHGE8xXVNdq8RvKHZpR0pn9tLzy5X2WkF_vn1HedL6Lfq8smjcf1pCYJ5lHXndC4b2y7o9fPq0HIZtpdwm1VnakL2fHKBQ_T0CaFSn9SQKueX-vtnoUqseVv9jrKJ1qrDz4_DW0ba_4ahLTqozKelufKTl21XM_zs2yF05Nbw7d_oPNo9PPXwI1bHWoW8YOZ3tEPxOflCb_Q3ymdjio7-qD3T_waTS7pFNSRcd2eWnuxyZWshJjpB_DeID35-OZYVctumJKFh0aNzuZYvBPOgTlMcsZPw_23cZrPxzOnzcip1P7jeJPGNFsm58x4jFMCZeRmZZOLByyKLmi_53rRXEeBYktr_fT4XnSf9_v5NGGP9edHybfKA0z0h9dZ2bQumwYLaDW_U5IPHpYd9yE6lhdVs_okHJ-mD4pTrN8qvMoC5ovNVRpmUDPhTqcu4eczaHZy-bizIijClMK1vHp3GHp4URdhbPIGe5nRMh-dhJ_N8DPmmXclHHJZ7iMsjylcRHTctYt4yJPWUlZkvsSiXNG67xMUhpvGcOs4TOxZJTFNIoppSyl5SKqeVOykibbrOYJpySh2HMhF56vhTbtLIzBy4zGeTSTvEJpw6caY37-RdWcukMY3m8IY-Nc68fa41IYmedazd-4FI1fTm9nZhlmwmpoLUmoFNbZk14nnMTlBB1oHGEhjMvzOfy_vj5mg5HL__5rITD1nwAAAP__7AFsOA">