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

    <tr>
        <th>Summary</th>
        <td>
            [codegen] LLVM codegen crashes when the input contains a non presplit coroutine
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            llvm:codegen
      </td>
    </tr>

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

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

<pre>
    I have commit df9ba13579e298fcb57aa59c5c187ce6729881d6 checked out.

Repro steps:

`presplit-coro.ll`:

```llvm
define dso_local void @f0() presplitcoroutine {
entry:
  %__promise = alloca i32, align 1
  %0 = bitcast ptr %__promise to ptr
  %1 = call token @llvm.coro.id(i32 16, ptr %0, ptr null, ptr null)
  %2 = call i1 @llvm.coro.alloc(token %1)
  unreachable
}
```


```
$ bin/llc -o /dev/null ~/src/tests/presplit-coro.ll
```

Expectation:

`llc` should exit with an error

Actual:

`llc` crashes with a stacktrace:

```
Unknown type!
UNREACHABLE executed at /usr/local/google/home/ayzhao/src/llvm-project/llvm/lib/CodeGen/ValueTypes.cpp:590!
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 -o /dev/null /usr/local/google/home/ayzhao/src/tests/presplit-coro.ll
1.      Running pass 'Function Pass Manager' on module '/usr/local/google/home/ayzhao/src/tests/presplit-coro.ll'.
2. Running pass 'X86 DAG->DAG Instruction Selection' on function '@f0'
 #0 0x0000561b957c89b1 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /usr/local/google/home/ayzhao/src/llvm-project/llvm/lib/Support/Unix/Signals.inc:723:11
 #1 0x0000561b957c8eab PrintStackTraceSignalHandler(void*) /usr/local/google/home/ayzhao/src/llvm-project/llvm/lib/Support/Unix/Signals.inc:798:1
 #2 0x0000561b957c6ea6 llvm::sys::RunSignalHandlers() /usr/local/google/home/ayzhao/src/llvm-project/llvm/lib/Support/Signals.cpp:105:5
 #3 0x0000561b957c9645 SignalHandler(int) /usr/local/google/home/ayzhao/src/llvm-project/llvm/lib/Support/Unix/Signals.inc:413:1
 #4 0x00007f5b3545a510 (/lib/x86_64-linux-gnu/libc.so.6+0x3c510)
 #5 0x00007f5b354a816c __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
 #6 0x00007f5b3545a472 raise ./signal/../sysdeps/posix/raise.c:27:6
 #7 0x00007f5b354444b2 abort ./stdlib/abort.c:81:7
 #8 0x0000561b956f1030 llvm::install_out_of_memory_new_handler() /usr/local/google/home/ayzhao/src/llvm-project/llvm/lib/Support/ErrorHandling.cpp:194:0
 #9 0x0000561b945ee64c llvm::MVT::getVT(llvm::Type*, bool) /usr/local/google/home/ayzhao/src/llvm-project/llvm/lib/CodeGen/ValueTypes.cpp:592:12
#10 0x0000561b945edb45 llvm::EVT::getEVT(llvm::Type*, bool) /usr/local/google/home/ayzhao/src/llvm-project/llvm/lib/CodeGen/ValueTypes.cpp:631:12
#11 0x0000561b9349c8fc llvm::TargetLoweringBase::getValueType(llvm::DataLayout const&, llvm::Type*, bool) const /usr/local/google/home/ayzhao/src/llvm-project/llvm/include/llvm/CodeGen/TargetLowering.h:1649:12
#12 0x0000561b93de2e79 llvm::ComputeValueVTs(llvm::TargetLowering const&, llvm::DataLayout const&, llvm::Type*, llvm::SmallVectorImpl<llvm::EVT>&, llvm::SmallVectorImpl<llvm::EVT>*, llvm::SmallVectorImpl<llvm::TypeSize>*, llvm::TypeSize) /usr/local/google/home/ayzhao/src/llvm-project/llvm/lib/CodeGen/Analysis.cpp:118:26
#13 0x0000561b9459f931 llvm::ComputeValueVTs(llvm::TargetLowering const&, llvm::DataLayout const&, llvm::Type*, llvm::SmallVectorImpl<llvm::EVT>&, llvm::SmallVectorImpl<llvm::TypeSize>*, llvm::TypeSize) /usr/local/google/home/ayzhao/src/llvm-project/llvm/include/llvm/CodeGen/Analysis.h:82:1
#14 0x0000561b9541ea88 llvm::SelectionDAGBuilder::visitTargetIntrinsic(llvm::CallInst const&, unsigned int) /usr/local/google/home/ayzhao/src/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:5221:7
#15 0x0000561b95421128 llvm::SelectionDAGBuilder::visitIntrinsicCall(llvm::CallInst const&, unsigned int) /usr/local/google/home/ayzhao/src/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:6249:5
#16 0x0000561b954040a0 llvm::SelectionDAGBuilder::visitCall(llvm::CallInst const&) /usr/local/google/home/ayzhao/src/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:8958:9
#17 0x0000561b953f9436 llvm::SelectionDAGBuilder::visit(unsigned int, llvm::User const&) /usr/local/google/home/ayzhao/src/llvm-project/llvm/include/llvm/IR/Instruction.def:209:1
#18 0x0000561b953f8608 llvm::SelectionDAGBuilder::visit(llvm::Instruction const&) /usr/local/google/home/ayzhao/src/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:1334:8
#19 0x0000561b9551740b llvm::SelectionDAGISel::SelectBasicBlock(llvm::ilist_iterator_w_bits<llvm::ilist_detail::node_options<llvm::Instruction, true, false, void, true>, false, true>, llvm::ilist_iterator_w_bits<llvm::ilist_detail::node_options<llvm::Instruction, true, false, void, true>, false, true>, bool&) /usr/local/google/home/ayzhao/src/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:726:7
#20 0x0000561b95516ecb llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) /usr/local/google/home/ayzhao/src/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1755:11
#21 0x0000561b95513ea1 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) /usr/local/google/home/ayzhao/src/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:516:3
#22 0x0000561b9365788a (anonymous namespace)::X86DAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) /usr/local/google/home/ayzhao/src/llvm-project/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:192:7
#23 0x0000561b940e45e6 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) /usr/local/google/home/ayzhao/src/llvm-project/llvm/lib/CodeGen/MachineFunctionPass.cpp:93:8
#24 0x0000561b94903cba llvm::FPPassManager::runOnFunction(llvm::Function&) /usr/local/google/home/ayzhao/src/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1445:23
#25 0x0000561b94908b52 llvm::FPPassManager::runOnModule(llvm::Module&) /usr/local/google/home/ayzhao/src/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1491:16
#26 0x0000561b949045cb (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&) /usr/local/google/home/ayzhao/src/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1560:23
#27 0x0000561b9490413f llvm::legacy::PassManagerImpl::run(llvm::Module&) /usr/local/google/home/ayzhao/src/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:542:16
#28 0x0000561b94908e31 llvm::legacy::PassManager::run(llvm::Module&) /usr/local/google/home/ayzhao/src/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1687:3
#29 0x0000561b93104656 compileModule(char**, llvm::LLVMContext&) /usr/local/google/home/ayzhao/src/llvm-project/llvm/tools/llc/llc.cpp:741:9
#30 0x0000561b931027f5 main /usr/local/google/home/ayzhao/src/llvm-project/llvm/tools/llc/llc.cpp:408:13
#31 0x00007f5b354456ca __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:74:3
#32 0x00007f5b35445785 call_init ./csu/../csu/libc-start.c:128:20
#33 0x00007f5b35445785 __libc_start_main ./csu/../csu/libc-start.c:347:5
#34 0x0000561b93101f61 _start (bin/llc+0x2b6ef61)
[1]    4072066 IOT instruction  bin/llc -o /dev/null ~/src/tests/presplit-coro.ll
```

This also crashes on Clang if we disable LLVM passes with `-Xclang -disable-llvm-passes`: https://godbolt.org/z/3546hTfnj
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzcWltv3KoW_jXkBWUE2PjykIfJZbojpWdXTVr1bYQxnmGXAcvgJrMfzm8_AnvGlyTd6VHT5pyqmviCF9_3rQWLG7NWbrQQZ4CeA3p5wlq3Nc0ZU0z_vWUGnxSm3J9dwy37JiA3u510sKzyguGIprkgeVbxgqaM0ZxTjrOUiyQleZbhMoF8K_hXUULTugVAlwAtu9-Pom4MtE7UFkTL8RuQoLoRtlbSnXLTmIVSIEGPC3X_lfq26x6VopJawNKatTKcKfjNyBKCGFUIkAyQHB7Mequt84VBet59LLRr9sc6IASErtd1Y3bSCgiiS8iUNwplRAC5gEzJjYZ4VBqFUoV0nFkHa9dMTTjjn43K41CeM6WgM1-F9kA9l0WgLEtAMhkRiBNfXW8OHa51q9T0Oh-ZJoNpiad2AwtAsr5KQvHo01Y3gvEtK5ToRU4vZ2pPXPDkKxLDQmpAVkpxeGogIKtSfANk5XHCfwOysg0HZOWEdRaQ1SNXP1_h1UMtuGNOGv04GpTiIEHQbk2rSigepIP30m0h01A0jWnGxZfctUw9a4M3zG6F7b-H1jH-1TWMi-disLv9pL9qc6-h29cCkD42Pv3r49Xy4o_l-c0VFA-Ct06UkDkvS2sbL5MPVUBWG2M2SgCy2pqd_8P2vu0d5fIuPK0b85fgrr_1f2QByOrClOKd8Jp_ZqoVd_ta2AWvaxAtaY6OUD7cXC1vr6BtC9-AGSzaDWxEbRrno3PrXNcSycqjkW7bFgtudqPKphCkta3wHoRMl1BqrtpSQLcVnX6wOKjWN_tbLyMs2119lBEtYPj3oTGbhu0gazbtTmjncXwvin5UvO_HGu5RfGy1lnoDa2YtBCRdtZr7WIMf_IP3TLONaABJodFwZ8pWCV_qp2EhaS8UWTyC8iVL4OXy3SmIri6X7-C1tq5pO3C3Qolw1SOrDqg9tq7vS_sGDkiEIHpACCGa4CKnKc_yAsPg32gJoqXd2-7iQyO1Cx67C4FPsqFQw-7XxrpGsB0goXuS2vnu9WfG9G1b-8gEZPVJywf_QG40U3YhNQfRMiURiJYYD8zwnJlgBZzR6Gz8wXSpvCcznyAAWf5q7HnmsQ_QyQx6IljylFM-tnrCwPZp7XWwH0B3HQlG1HcnA-hoBjpPYgrnAv_6wIhxNBU37nGmFS0iGlNGMYJBuN7gQ5ask_hUSd0-nG50273gC2sWCSDn6CHiFKMhTQIS0alNluGEw_W6dttGsHL9VSq1lrtaCd-ZhXwFF77vqp0nPy62CJhjHxXJYD-ZY45TAhvmxxHejg2MAVktwt3eln4QRVa1sUGRUDJYJimIliPD6dRwHMcFgazwKSCYcmWnSXgULGTYYxssZBO3JxVGERrFqtTWMaXWpnVrU613Ymea_VqL-_X2GBSvFxFXPtGH6JN6cwjc3KuLBgb5mEFMhUhiPmLw_vNdd7ER7vPdpOO7C4l96Xu8whj1s3l8N40TT4UcxlgRRjMWZRHTEYurEYurN0MjifCMxqTXjuKcZ9XYGXes2Qh3Y-5FI_XmnFkx-OZgfMLtkjl2w_amdZAbbV2foL5LPhT8SRL0w6DhwaDGlMti65VI4nwmyCQXRKUgIs1H8C_Mrm6dCOQ_39mpXycVPMP_RwQaHt7umFKfBXemud7VCkQXs1C7emTnJZ_8QC0e1q38Wzz13fHdq0XyUjO1t_KYDLHP4CQZ3BZNm2Ne5RH-v3Pbr_XBd5rS0R2-EWVkSPjeFfEkQ8VYsCwbEzyMly-X785bqUrRdC--SStd54xr7RqpreQTR10wpfzIe-KBVoe1k_I1xsAD4THo2W3P4ZAoCBklbC8HncpBMCYvl-MohOf-PydGQkL3SgcxkqkYKEYMvViMl2jw2zlnOfV9Uz5wTiecoyqPo-TFnAHJpk4dt_lPVjSvwP1Rw7_-6H-GOe-iFJXvf1E-bfnZjGmWoJeH-sSz4wn2G3IujiI_mM0GypPBLKU4jVHxDOXrW6HGT8-ZlfxcGf51Ql0qad1aOtEwZ5r1_bqQzk7SQFeiFI7J3qA2pVib2lc0LTrS0YeOa1rh_1ZM2XDRTcD7Fz6rjN6Nnr1tdN048vfEh3dqHxwpSSY9P0Gz2EgEf2lsLJUawmM6XDmuiv3WdjHijVNKR2tBnjmeMY8Ew__IvGn1n_o941upxYHkhPmjd7-dOsXe5dFAfDp7SGiaZQwCkjFt9H5nWgs12wlbhyW9vKP1JUsul-_uzFsToxuKAbL6kiXdr4d3gHqc3ZNp0E8H4kjEVIyz3Qz2B2btiPCTTH-Jv5_A1TPMo0mPTybD2zhHES_YiODqg__2sFj9-6iFnH0jNozvR4AOXotj32TJKHLpjFZWUPICWu_DOvw0MvtHv5pSHtY2hjkhSWaUYsqLf2qM7988Txq2YseuS-c8cVSNXKeCpX5bYbDXzS57gm-AGI3JzH_ZPCTFZE7_DK-3xAknWTpNEJPxYoRRnNAEcrOrpRLHGONb1oQJ_myOf3Pz-f2F0U48_Ny874xRttvr634PI5oYT6Yy092rCCOSVhTumNSvDCRGYcdm0PG423RYSKcJZ3C9VrLga-tY49acKbUO2BaArLhtH6_X9_sBT30UVjbSeOK84z7RsdI0o2Gbfy21dPN6uktv_DQYD8v5mISVKzQYjZ4yOmHyFIknjUdxOpluR_HMX7hKMOys-o7wuMMbtllIkYgqGc4jAHqOAb2EEMIYpQQlCbz-8w7K0dTs1U4a3G2lhUxZczwLYDS8UExvoKzgvYCltKxQAvomEXZpD8cFQIJOv_BQ8rQvdNoFWyjUHWSZb7absjDKLUyzAWT1NyCriMbJ9q7Sf52UZ1GZRzk7EWc4xShKSZKgk-0ZpQSXFFe44jnKC0bKnBHMkoREMctKfCLPCCIxinDkwxWhRSUqhDkuaFrlGUMpiJHYMakW4XSIaTYnYUf_LKOY4hPFCqFsOBFESN8FcFOKjR-uEEAvT5qzwKtoNxbEyM-67GDKSafCeaLDN_Sy06q_H85YbIUOhwakrrvFTcektpBBbfTxwA48ntg5aRt19t-fVQjk_hMAAP__3zlh6w">