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

    <tr>
        <th>Summary</th>
        <td>
            [RISCV] Crash in `selectVSSEG`: "Cannot select: 0x3266bfdfba80: nxv2i64 = zero_extend 0x3266bfdfbbd0:1"
        </td>
    </tr>

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

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

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

<pre>
    We have run internally into a crash in ISEL. I manually bisected things and it seems that the culprit is probably: https://github.com/llvm/llvm-project/commit/dc03ee3cbba65356de62f2f27fb1934b2731000d (@4vtomat FYI)

```
fatal error: error in backend: Cannot select: 0x3266bfdfba80: nxv2i64 = zero_extend 0x3266bfdfbbd0:1
```

Slightly redacted stack trace:

```
[...]
2.      Code generation
3.      Running pass 'Function Pass Manager' on module [...]
4.      Running pass 'RISC-V DAG->DAG Pattern Instruction Selection' on [...]
 #0 0x0000557c2b019558 llvm::sys::RunSignalHandlers() 
 #1 0x0000557c2afddba8 CrashRecoverySignalHandler(int) 
 #2 0x00007fc480024e80 __restore_rt 
 #3 0x0000557c292bd98c llvm::RISCVDAGToDAGISel::selectVSSEG(llvm::SDNode*, unsigned int, bool, bool) 
 #4 0x0000557c292c0958 llvm::RISCVDAGToDAGISel::Select(llvm::SDNode*) 
 #5 0x0000557c29dcb38c llvm::SelectionDAGISel::DoInstructionSelection() 
 #6 0x0000557c29dcab47 llvm::SelectionDAGISel::CodeGenAndEmitDAG() 
 #7 0x0000557c29dc9747 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) 
 #8 0x0000557c29dc7ca8 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) 
 #9 0x0000557c29dc6561 llvm::SelectionDAGISelLegacy::runOnMachineFunction(llvm::MachineFunction&) 
#10 0x0000557c29aa4bcf llvm::MachineFunctionPass::runOnFunction(llvm::Function&) 
#11 0x0000557c2ae23ac2 llvm::FPPassManager::runOnFunction(llvm::Function&) 
#12 0x0000557c2ae2a5a4 llvm::FPPassManager::runOnModule(llvm::Module&) 
#13 0x0000557c2ae24305 llvm::legacy::PassManagerImpl::run(llvm::Module&) 
#14 0x0000557c261919ce clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, std::__u::unique_ptr<llvm::raw_pwrite_stream, std::__u::default_delete<llvm::raw_pwrite_stream>>, clang::BackendConsumer*) 
#15 0x0000557c25e55774 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) 
#16 0x0000557c26cb1e59 clang::ParseAST(clang::Sema&, bool, bool) 
#17 0x0000557c26a15fda clang::FrontendAction::Execute() 
#18 0x0000557c2698c324 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) 
#19 0x0000557c25b2763f clang::ExecuteCompilerInvocation(clang::CompilerInstance*) 
#20 0x0000557c25b1cc56 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) 
#21 0x0000557c25b19966 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) 
#22 0x0000557c26b18ede void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::__u::optional<llvm::StringRef>>, std::__u::basic_string<char, std::__u::char_traits<char>, std::__u::allocator<char>>*, bool*) const::$_0>(long) 
#23 0x0000557c2afdd996 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) 
#24 0x0000557c26b186ba clang::driver::CC1Command::Execute(llvm::ArrayRef<std::__u::optional<llvm::StringRef>>, std::__u::basic_string<char, std::__u::char_traits<char>, std::__u::allocator<char>>*, bool*) const 
#25 0x0000557c26adae3d clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const 
#26 0x0000557c26adb0ef clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::__u::pair<int, clang::driver::Command const*>>&, bool) const 
#27 0x0000557c26af8450 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::__u::pair<int, clang::driver::Command const*>>&) 
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWF9v4joW_zTmxZoqcf4_8JCB0turmZ2qdGe1T8hxToJ3HIe1Habsp185gRIHaOeurrQvV0IQ7OPf7_j8dUy15rUEmKPoM4qWM9qZbavmDWdbKsysaMvD_B-At3QPWHUSc2lASSrEwT62mGKmqN5iLvHj-v7LHX7EDZVdL1BwDcxAic2Wy1pjKkvMDdYAjcZmSw02W8CsEzvFDeYa71Rb0EIcUJDjrTE7jYIckRUiq5qbbVfcsbZBZCXE_vTzaafafwEziKxY2zTcPpTMCwACVhQ0joIoLiEmFalIUhV-FoQFSQLf87wSI5Ki0Av3pm2owat_PiKSIW-JvPz4HXvHT_-3ooYKDEq1yirYP9h9F5T9AFnasQWVsrU7FFanIMfea0DiuKjKqqCpZ0fk657wOMQoWOL_gGo38GpAlmPJorSS_lUlhu-14PXWiANWUNLexNpQ9gMbRRlYo93eBYo-393doWg5_CV3yMsWbQm4BgmKGt7KYSawM8-dlFzWeEe1xogkq04yK4Kf7MBXKmkNCpEEtxI3bdkJwBOC8BrM8-N68ek7XuYPn1Bwv8wf8BM1NrDwo9RGdQPHujejVWggmCBjRAIPe6-e53lRlDBSeH4WRSnu4yPIUZDrgx4enju55rWk4jcqSwFKW9-TDJ-R_DESrcqyoCle2Nh-BtbuQR0cAERSLo0LQY4QScXC1PNICKmHNxsF2rQKNsqMZIMxXUaKMkvZSHFroO_L_OGlXeYPj2sQx_30Fvm-Xt8_IJKexdfLv7UlIJIjssCd7FO6xL2CC1y0rTj_jhUOXSWYlznWu6HE4JZb_GP8yMEvWRE4m3zzrwO_bEcxMAqBib_iCTYtwuRDbBvoDyBzWd433CzzhwvYZAKbJb8AO4zmQnymmrPPomU_tGOft7RhrdQGkdglTSekCaPph6Sqk9_kV8q2XMIJ3yG9mJuwZhPWOIr9d1i_QE3Z4U_gtsnm5G1GaViwCt9cbovNiPgq400qN7GBBJSREdXqyaKfKtn_SkImJDSi4S-QfO1Lpmu549CEIJgQhIEXjQjEyDkjqsdmd46WX6FxKkLsZ37GADNBZT0ss2nzeeh33zqz62wZGE0vOa1lqw1n-l7WXA4EizHCb0BLUGugim2_7awx9SgrHNFjtn4g9UJVDeYDoS9U1tdERuFuFJf1M1Tu8MlO-QTwaIT8GA7jJY_SqE7zPTxDtZDmySgULM7T--oYyysuYH3QBhoU3FsIbcphZrPphodO8n93sNlNIBT9udn9VNzARhsFtLm-uoSKdsJsShBg4AOE4P6oxeUmF63UXWN7Xu5Gi1PfI4iiJAnfWz8EQN9AXxSVWvTHjb9LPgmjfP2yaKWBV3MRoE7Zj1nhQ5SNKZ-o0pCvX1zANTT06PHr3dBCO6U_pn5UlXQMvVJWpzefD_nwCqwz4LQRi-VU9DhLWUBCN7SbHRegbKujcjizvaGdgiq9TT41i1PLo4IkcVA5eTsgn2n3LaOXLBdqTTxOPJfHZyyKMWP-pqHcLTC5UvRg0ylYsC1Vp6zLT1HmjJEF3re8vKDzJ3RZFsf4tJeF_9L7cHwOaagQ34GZ9lj6rnBP8t5iHIPtSne2Sji1PS78FEro1R2hVMfGsFH9jvvZISj6xLIijAphXxU2lbR6nY1eKr4_Jcdi4S_apqGynMbXVcte5nzbFzkqnGw_17a3LL9cWdizi60G3CrWG-66oJ3ZGEW50Se5W5hUCBtn9oXpTdDK5ucM7D0-GL5fgki48XqhVLSydl0RTA_pWRaPvOAc108V5O38TysQB8eS73vNYQ6nQRAXTnH4y4mDE0cmi9x6WlIIypsm6wsPvSisJzs6VWqy0Arc6vvviOZOQ7hUP56oX3hQ_VH1f28LfVv339viC9fm1oHkopZdumZHufXK8UXvV_d99N-7u580wyoNI-8WwXL07DSaKx3mltX-H7t_y-_TDcmsnAdlFmR0BnM_IVHsJYmXzbZzP8sgYUlSsKQq0yhL07SIizRO0jKkLKYzPiceCb3Mi72EpCS7g6yKSx_C1E_iioYhCj1oKBd3dot3rapnXOsO5r6XREE4E7QAoftLOEIk_MT9LCIERcuZmvdXXUVXaxR6gmujzzCGG9Hf3vVv6yhaDpcWmEuMYm98YRD390-IkD_3loqQWafE_A_f1_U71IisjibYz8l_AwAA__9EdiW9">