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

    <tr>
        <th>Summary</th>
        <td>
            [AVR] Failed to select instruction for 'i8 @llvm.fshr.i8(i8, i8, i8)'
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            backend:AVR
      </td>
    </tr>

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

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

<pre>
    With the following code `a.ll`

```
define i8 @test(i8 %0) {
start:
  %1 = call i8 @llvm.fshr.i8(i8 %0, i8 %0, i8 1)
  ret i8 %1
}

declare i8 @llvm.fshr.i8(i8, i8, i8)
```

Build it with `llc a.ll -march=avr -mcpu=atmega328`, the following error rises
```
LLVM ERROR: Cannot select: 0x3e38b00: i8 = ROL 0x3e387f0
 0x3e387f0: i8,ch = CopyFromReg 0x3df6db0, Register:i8 %0
    0x3e38780: i8 = Register %0
In function: test
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: ./bin/llc a.ll -march=avr -mcpu=atmega328
1.      Running pass 'Function Pass Manager' on module 'a.ll'.
2.      Running pass 'AVR DAG->DAG Instruction Selection' on function '@test'
 #0 0x0000000001a0dc08 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (./bin/llc+0x1a0dc08)
 #1 0x0000000001a0b63c SignalHandler(int) Signals.cpp:0:0
 #2 0x00007f435a0f0cf0 __restore_rt (/lib64/libpthread.so.0+0x12cf0)
 #3 0x00007f4358e13aff raise (/lib64/libc.so.6+0x4eaff)
 #4 0x00007f4358de6ea5 abort (/lib64/libc.so.6+0x21ea5)
 #5 0x000000000066ae2f llvm::getDefaultPrecision(llvm::FloatStyle) (.cold.18) NativeFormatting.cpp:0:0
 #6 0x000000000182d114 llvm::SelectionDAGISel::CannotYetSelect(llvm::SDNode*) (./bin/llc+0x182d114)
 #7 0x00000000018311ba llvm::SelectionDAGISel::SelectCodeCommon(llvm::SDNode*, unsigned char const*, unsigned int) (./bin/llc+0x18311ba)
 #8 0x0000000000a2dc53 (anonymous namespace)::AVRDAGToDAGISel::Select(llvm::SDNode*) AVRISelDAGToDAG.cpp:0:0
 #9 0x000000000182b6cc llvm::SelectionDAGISel::DoInstructionSelection() (./bin/llc+0x182b6cc)
#10 0x000000000183588e llvm::SelectionDAGISel::CodeGenAndEmitDAG() (./bin/llc+0x183588e)
#11 0x000000000183852e llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (./bin/llc+0x183852e)
#12 0x000000000183a3ec llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (.part.1076) SelectionDAGISel.cpp:0:0
#13 0x0000000000eab07e llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (.part.78) MachineFunctionPass.cpp:0:0
#14 0x000000000134ebd9 llvm::FPPassManager::runOnFunction(llvm::Function&) (./bin/llc+0x134ebd9)
#15 0x000000000134ed21 llvm::FPPassManager::runOnModule(llvm::Module&) (./bin/llc+0x134ed21)
#16 0x000000000134f8bf llvm::legacy::PassManagerImpl::run(llvm::Module&) (./bin/llc+0x134f8bf)
#17 0x00000000006cd0c5 compileModule(char**, llvm::LLVMContext&) llc.cpp:0:0
#18 0x000000000067295a main (./bin/llc+0x67295a)
#19 0x00007f4358dffd85 __libc_start_main (/lib64/libc.so.6+0x3ad85)
#20 0x00000000006c4b6e _start (./bin/llc+0x6c4b6e)
Aborted (core dumped)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJycV11v2zoS_TX0C1GDoqyvBz8odpwt0N4GzkUX-xRQ5MjmliINkmqbf78gJSeS4yS9WzSyRI3OHJ4ZcjjMOXnQAGuU3aBsu2C9Pxq7bkC7oyQkWTRGPK3_Lf0R-yPg1ihlfkl9wNwIwCgnbKkUygkiW0Tq8ZqT8X98FNBKDViWGK2IB-cRLcMDzQiiFUbFzWDnPLMepSMIDgYJRukWc6bU-LlSP7tl6452KcspzAbPbxNEqzOOBT--TUZ-xXZKVwBXzMJbHgbE87W6OsXhetNLJbD0-FeQC-VEKY6DPvhTxyw_onTLflr8qeOnPtz7Dg4spWWAoZsLfcFaY7GVDtxVl1--fP-Kb_f7b3uU1njDtDYeO1DAg4aY_E4hLRtCwkOYWbrF-29fxvGiHVEmz9EO0Q0_RuONOT3trOn2cAhGos1FE2nu4SCdB4vS-qz5KDQ-o5Uzr6P9xPSzxm2vuZdGB8OYE_HF_Zfb-uEWu77ppMcMN_0BWzgZ67E3-Oj9yYUEoTtEdwfpj32z5KZDdBeiNv58Olnz36AC3UnnenCI7jDTAkvNVS8g6swtc0fcMP7DW8ZhObh_8Iz_wKLvTs9pSJaIVPfWHCzrMLOHvgPtAwm8RHTXSB29_lmYI2ASAPe91iHIJ-YcRrTYjWrg-zDwlWl2AItogY3GnRG9gmAVlxotRrL0GlD9fY-39d0nlN5u6zv8WTtv-wH6IeZGkHzAPUcgfPa8MIsxloimBJPf5PwvYURwUuKoc1qjtHZPbri5t1L7qNzfQUpEyxcjy349GuctsA7RPK4h7eOip-VMP0RvyO_RycvSRTRNLlg0ecrxgzxopv7FtFBBpnIEHYbdkp9C_Ej8ewaiI1DRrtKMkZbwluDHRwvOGwuP1gdOgYxs8tXwe_JHC0wsnVmSgSDlLZnRS6eoJSQpa1tsmXTwGo4HoDwCrYC17QxoNQMSkAPLMGvMNV4TIJoAy2ZA2VQwkucMaDsJ2wH8FlrWK39vgUsX82ESsZ0yzD_4JwXnMHGjxDIJUcF_MS9_ws7Yjnkv9eG60vksZCUVSbKaMHjOw2199_kB1DA6bGD_AT-8nnF62P5lBCBav505g5eZEMWcRpokDfuQxjC6MQI2pusutJnw2OBex8IpMD8yi7nRYfnM37yb6wOhGeNyFjpGBc_S8DXTRj91pndYsw7cKa6yauBUf99v67u_zZVZvK1h_X0fjM8fXg9jdRHGJuf8Q_22ZrLlTHac8r3QBeSXykrThFyELitL-DiDjIA70LUWt5302_rufa8RdOY1ufBaZvRjr8NordQNc5LfKMN_uPmCOm-zY4rk73EKLmec6AUnlsLHQbC9_qa_Mn6UGs7uZ5xevXsmdWLWLxNSxIFL9Nd5Eiims6wF1pBiKtuFr1DgJiyv0nuLVxHjeQXwOrHVTLt0BY2oJsR29-HTc63955Rex29wMYtfdslB0OQPOHyNNX8es3Hoff-CJjP_-YX_tmym1UDBgfGnsY6_MPncnV5S6Z-zCE5mLIp5TeKC8Axz052kguephn007k9xE31xGQ66G6M9_D6vHqX49YjPN9C8oFXGcMekvk51MJgxreZluG1FmeHHx1B0H2N_8niGe7Mkp0yU2RSUkovpr5oc8AD3BrFo8oxRh2MAiGDLjYV4QAXxuhdZiHUqqrRiC1gneZmVq1VO0sVxzXiVF5TntC1oJYqkBLJqhWCcFCxtK7aQa0poSnKyIjQhJF2WbVZRKIqUiapYlSu0ItAxqZaxPTL2sIhn63WekqpcKNaAcrGFpDQcqkGLoTYhSkNXadfxZN70BxdaLOm8e0Hy0qvYfwb7bIt3TCoQ4cA_tDNYTk6xrQmNRPGHvRotFr1V6_-_cYjz-18AAAD__xi3VKI">