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

    <tr>
        <th>Summary</th>
        <td>
            I meet a problem when use mlir-cpu-runner show Unknown type!
        </td>
    </tr>

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

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

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

<pre>
    Here is my code.
```
func.func @main() {
  %c1 = arith.constant 1 : index 
  %c10 = arith.constant 10 : index 
  %c100 = arith.constant 100 : index 
  %cst0 = arith.constant 0 : i32
  %cst1 = arith.constant 1 : i32
  %cst2 = arith.constant 2 : i32
  %mem = memref.alloc() : memref<100xi32>
  %mem_cast = memref.cast %mem : memref<100xi32> to memref<*xi32>
  gpu.host_register %mem_cast : memref<*xi32>
  gpu.launch blocks(%bx, %by, %bz) in (%grid_x = %c1, %grid_y = %c1, %grid_z = %c1) 
             threads(%tx, %ty, %tz) in (%block_x = %c100, %block_y = %c1, %block_z = %c1) {
      memref.store %cst0, %mem[%tx] : memref<100xi32>
      gpu.terminator
  }
  call @printMemrefI32(%mem_cast) : (memref<*xi32>) -> ()  
  %t0, %r0 = async.execute() -> !async.value<memref<100xi32>> {
   %b0 = gpu.alloc() : memref<100xi32>
    gpu.memcpy %b0, %mem : memref<100xi32>, memref<100xi32>
    async.yield %b0 : memref<100xi32>
  }
  return 
}
func.func private @printMemrefI32(%ptr : memref<*xi32>)
```
I encounter the problem when input
```
mlir-opt async-execute.mlir -gpu-kernel-outlining \
                -pass-pipeline='gpu.module(strip-debuginfo,convert-gpu-to-nvvm,gpu-to-cubin)' \
                -gpu-async-region -gpu-to-llvm -async-to-async-runtime -async-runtime-ref-counting \
    -convert-async-to-llvm -convert-func-to-llvm | \
mlir-cpu-runner -entry-point-result=void -shared-libs=${MLIR_RUNNER_UTILS} -shared-libs=${MLIR_CUDA_RUNTIME} \
        -shared-libs=${MLIR_ASYNC_RUNTIME}
```
It shows 
```
Unknown type!
UNREACHABLE executed at /home/sen/buddy4/llvm/llvm/lib/CodeGen/ValueTypes.cpp:545!
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: ./mlir-cpu-runner -entry-point-result=void -shared-libs=../lib/libmlir_runner_utils.so -shared-libs=../lib/libmlir_cuda_runtime.so -shared-libs=../lib/libmlir_async_runtime.so
1.      Running pass 'Function Pass Manager' on module 'LLVMDialectModule'.
2.      Running pass 'X86 DAG->DAG Instruction Selection' on function '@async_execute_fn'
 #0 0x000055a19609c154 PrintStackTraceSignalHandler(void*) Signals.cpp:0:0
 #1 0x000055a19609933b SignalHandler(int) Signals.cpp:0:0
 #2 0x00007efebd051a00 (/usr/lib/libc.so.6+0x38a00)
 #3 0x00007efebd0a149c (/usr/lib/libc.so.6+0x8849c)
 #4 0x00007efebd051958 raise (/usr/lib/libc.so.6+0x38958)
 #5 0x00007efebd03b53d abort (/usr/lib/libc.so.6+0x2253d)
 #6 0x000055a1960b658a (./mlir-cpu-runner+0x41658a)
 #7 0x000055a196fd6853 (./mlir-cpu-runner+0x1336853)
 #8 0x000055a196fd68d9 llvm::EVT::getEVT(llvm::Type*, bool) (./mlir-cpu-runner+0x13368d9)
 #9 0x000055a196d8e9ef llvm::ComputeValueVTs(llvm::TargetLowering const&, llvm::DataLayout const&, llvm::Type*, llvm::SmallVectorImpl<llvm::EVT>&, llvm::SmallVectorImpl<unsigned long>*, unsigned long) (./mlir-cpu-runner+0x10ee9ef)
#10 0x000055a196b92c9b llvm::SelectionDAGBuilder::visitTargetIntrinsic(llvm::CallInst const&, unsigned int) (./mlir-cpu-runner+0xef2c9b)
#11 0x000055a196badf83 llvm::SelectionDAGBuilder::visitIntrinsicCall(llvm::CallInst const&, unsigned int) (./mlir-cpu-runner+0xf0df83)
#12 0x000055a196bb771a llvm::SelectionDAGBuilder::visit(llvm::Instruction const&) (./mlir-cpu-runner+0xf1771a)
#13 0x000055a196c30257 llvm::SelectionDAGISel::SelectBasicBlock(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, true, false, void>, false, true>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, true, false, void>, false, true>, bool&) (./mlir-cpu-runner+0xf90257)
#14 0x000055a196c31294 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (./mlir-cpu-runner+0xf91294)
#15 0x000055a196c32d90 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (./mlir-cpu-runner+0xf92d90)
#16 0x000055a196211425 (anonymous namespace)::X86DAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) X86ISelDAGToDAG.cpp:0:0
#17 0x000055a196e52996 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (./mlir-cpu-runner+0x11b2996)
#18 0x000055a1983a1fe3 llvm::FPPassManager::runOnFunction(llvm::Function&) (./mlir-cpu-runner+0x2701fe3)
#19 0x000055a1983a22f1 llvm::FPPassManager::runOnModule(llvm::Module&) (./mlir-cpu-runner+0x27022f1)
#20 0x000055a1983a2787 llvm::legacy::PassManagerImpl::run(llvm::Module&) (./mlir-cpu-runner+0x2702787)
#21 0x000055a19679e81c llvm::orc::SimpleCompiler::operator()(llvm::Module&) (./mlir-cpu-runner+0xafe81c)
#22 0x000055a1967c9a7b llvm::orc::IRCompileLayer::emit(std::unique_ptr<llvm::orc::MaterializationResponsibility, std::default_delete<llvm::orc::MaterializationResponsibility>>, llvm::orc::ThreadSafeModule) (./mlir-cpu-runner+0xb29a7b)
#23 0x000055a196802404 llvm::orc::IRTransformLayer::emit(std::unique_ptr<llvm::orc::MaterializationResponsibility, std::default_delete<llvm::orc::MaterializationResponsibility>>, llvm::orc::ThreadSafeModule) (./mlir-cpu-runner+0xb62404)
#24 0x000055a196802404 llvm::orc::IRTransformLayer::emit(std::unique_ptr<llvm::orc::MaterializationResponsibility, std::default_delete<llvm::orc::MaterializationResponsibility>>, llvm::orc::ThreadSafeModule) (./mlir-cpu-runner+0xb62404)
#25 0x000055a1967ce005 llvm::orc::BasicIRLayerMaterializationUnit::materialize(std::unique_ptr<llvm::orc::MaterializationResponsibility, std::default_delete<llvm::orc::MaterializationResponsibility>>) (./mlir-cpu-runner+0xb2e005)
#26 0x000055a1967b8eda llvm::orc::MaterializationTask::run() (./mlir-cpu-runner+0xb18eda)
#27 0x000055a19679eff9 void llvm::detail::UniqueFunctionBase<void, std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task>>>::CallImpl<void (*)(std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task>>)>(void*, std::unique_ptr<llvm::orc::Task, std::default_delete<llvm::orc::Task>>&) (./mlir-cpu-runner+0xafeff9)
#28 0x000055a1967b922f llvm::orc::ExecutionSession::dispatchOutstandingMUs() (./mlir-cpu-runner+0xb1922f)
#29 0x000055a1967becc0 llvm::orc::ExecutionSession::OL_completeLookup(std::unique_ptr<llvm::orc::InProgressLookupState, std::default_delete<llvm::orc::InProgressLookupState>>, std::shared_ptr<llvm::orc::AsynchronousSymbolQuery>, std::function<void (llvm::DenseMap<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>>, llvm::DenseMapInfo<llvm::orc::JITDylib*, void>, llvm::detail::DenseMapPair<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>>>> const&)>) (./mlir-cpu-runner+0xb1ecc0)
#30 0x000055a1967bfd21 llvm::orc::InProgressFullLookupState::complete(std::unique_ptr<llvm::orc::InProgressLookupState, std::default_delete<llvm::orc::InProgressLookupState>>) (./mlir-cpu-runner+0xb1fd21)
#31 0x000055a1967ab4dc llvm::orc::ExecutionSession::OL_applyQueryPhase1(std::unique_ptr<llvm::orc::InProgressLookupState, std::default_delete<llvm::orc::InProgressLookupState>>, llvm::Error) (./mlir-cpu-runner+0xb0b4dc)
#32 0x000055a1967b97d4 llvm::orc::ExecutionSession::lookup(llvm::orc::LookupKind, std::vector<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags>, std::allocator<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags>>> const&, llvm::orc::SymbolLookupSet, llvm::orc::SymbolState, llvm::unique_function<void (llvm::Expected<llvm::DenseMap<llvm::orc::SymbolStringPtr, llvm::JITEvaluatedSymbol, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>, llvm::detail::DenseMapPair<llvm::orc::SymbolStringPtr, llvm::JITEvaluatedSymbol>>>)>, std::function<void (llvm::DenseMap<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>>, llvm::DenseMapInfo<llvm::orc::JITDylib*, void>, llvm::detail::DenseMapPair<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>>>> const&)>) (./mlir-cpu-runner+0xb197d4)
#33 0x000055a1967b9b7f llvm::orc::ExecutionSession::lookup(std::vector<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags>, std::allocator<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags>>> const&, llvm::orc::SymbolLookupSet, llvm::orc::LookupKind, llvm::orc::SymbolState, std::function<void (llvm::DenseMap<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>>, llvm::DenseMapInfo<llvm::orc::JITDylib*, void>, llvm::detail::DenseMapPair<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr, void>>>> const&)>) (./mlir-cpu-runner+0xb19b7f)
#34 0x000055a1967ba135 llvm::orc::ExecutionSession::lookup(std::vector<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags>, std::allocator<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags>>> const&, llvm::orc::SymbolStringPtr, llvm::orc::SymbolState) (./mlir-cpu-runner+0xb1a135)
#35 0x000055a1967d7de9 llvm::orc::LLJIT::lookupLinkerMangled(llvm::orc::JITDylib&, llvm::orc::SymbolStringPtr) (./mlir-cpu-runner+0xb37de9)
#36 0x000055a1966cf1fb mlir::ExecutionEngine::lookup(llvm::StringRef) const (./mlir-cpu-runner+0xa2f1fb)
#37 0x000055a1966cfb24 mlir::ExecutionEngine::lookupPacked(llvm::StringRef) const (./mlir-cpu-runner+0xa2fb24)
#38 0x000055a1965a493a compileAndExecute((anonymous namespace)::Options&, mlir::ModuleOp, llvm::StringRef, (anonymous namespace)::CompileAndExecuteConfig, void**) JitRunner.cpp:0:0
#39 0x000055a1965a4fd1 compileAndExecuteVoidFunction((anonymous namespace)::Options&, mlir::ModuleOp, llvm::StringRef, (anonymous namespace)::CompileAndExecuteConfig) JitRunner.cpp:0:0
#40 0x000055a1965a901b mlir::JitRunnerMain(int, char**, mlir::DialectRegistry const&, mlir::JitRunnerConfig) (./mlir-cpu-runner+0x90901b)
#41 0x000055a1960090fc main (./mlir-cpu-runner+0x3690fc)
#42 0x00007efebd03c290 (/usr/lib/libc.so.6+0x23290)
#43 0x00007efebd03c34a __libc_start_main (/usr/lib/libc.so.6+0x2334a)
#44 0x000055a1960854f5 _start /build/glibc/src/glibc/csu/../sysdeps/x86_64/start.S:117:0
[1]    19484 done                           ./mlir-opt async-execute.mlir -gpu-kernel-outlining  -gpu-async-region      | 
       19485 IOT instruction (core dumped)  ./mlir-cpu-runner -entry-point-result=void   

```
but when i add the **opt-flag**,it run successfully. if it is really a bug and it is easy to fix, i would like to fix it.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztW1tzozoS_jXOi8oursY85MFxnDM-m8xk42Rq98klQNjaYGBBJPH8-u0WFyOCL5mdPTVVG1cuWLS6P_UdWfaSYHf5hWWM8Jxsd8RPAjYaaNcDbToYa9WPfBsWsT_CP2RgaVvK44ExGRguGThXJQEhA8P2dTIwrwnNuNiM_CTOBY0FwcEp4XHA3ohCrPVSawfJD9AfmpCL3gkVuWmotMegd2mNPlqjh3bLtpIU_mcsHNEoSvxac0BcDg_MGSziDWeac3Xyyqe5aHMo39eMezkQkeyHB8a0w3idFqNNkotVxtY8FyzriJqemhxRcIMN8WApz7lcjO29DYwZ8vF29cUPXCOPSUmwzniwepMLkaasqOTwrn_4R3vYbQzbeolNxmhQQRA1BFFDECoEibeNQdNqrPLOexjleBfH3uHxVZklFwkEUeV01XS4NbCvSmj29Sl74wu1CwbZ8pgCv8YTnOv60gcHwgBMMx6LO8lsAVzk-moT1r4Fo32GhLtDdJLKC9sB0yDPqrjJdxD07I35hWAVfTVXL--90KhgwL9vXUjX0hXqs2SLq_xAIJRqAQI_3ZVc9vo9OBcojrIs4e84i4IG2fFw3BshY6LI4kpxzfg-QYJxXqhgh-yUiuxglBlub_JdEBb7SRFjsIoNAwmJF8HqXzcsBgdPC9E7bRvxbJikolztsDLkCIfJEJQ6fGZZzKJhUoiIxzxek4E9qzhpgMQdpjTPhylPGdwHO18PDEcaIwmKCD0iFxlPhwHzijWPwwTUDtnwhWVCshfJMH552cJo9c4vPCwcLrB5JwpJSpyYl5KY1Cyi6GVLqlvwtqIBZfAtI-pbmBoOpaKUxaDBhzWwhlHJtx5GyzWjA2e2ny216AMWEBKDAYYsFtlumCZgWhCYF5EAzbwkPCDDfEMzFgwj7uVSWxZEwN3t4mH18PT16_xh9fS4uF2CyxyhnD1dT5H8cXE3R8q2ng7Pmi7_-XXWmtbvRoLkm-Q1J713n-LnOHmNidilYFq9Gvz6MJ_Ovkyvbuek8p-AUKxAN5tkC3Q3OQOL3nhFEOwsuED9tf5xD_7OoKv4Q5J9x3zxCALykZ-mEAW2ZTey7m_n0-Wc5IW35eCzBJwKYi1NMoEVbSNECoueAhf4WUPlLTyovVtV5hBC41_MhyR4w_O8YFAcbgiNA4gSPyoCJsPHz2gO9Yv6zyKjft3wLAUMkKDYIq5ySBuVefk-S9YZ3ULBXxdbMD_iICNg_fO-MRo16oG_yGdV8lgVgkf5KE_OmOEXAV1Vvn_eDOn9rSnlOvVqnQ-AACMHwx5M7NxAUAiMxXscuKMxXbMMgxeGyhyAVLe33--uOY1A7XdVYnAqnRoHGP9jMibX0z-wmMA_soAOKitKUUuGjOCqkhPWGOA9ZNRyAZUrrkKkqoJ8YJga0d40eNk21d2x5vq6bYHxwBjSuI9o7SVfxzT6Aj4R4VomaBzIwFiIylu1a2ryt-Gtd3i7pumRLjOQdJKRUTFyWMi8QLN1ig0sloabIs_aFvPBQKPxwLjS3swJxXbF3bMxVTZUt1z_JJvJBKgUNlYXjWtPSEZ5zs7ABLQKM1tlZnq2CdnCwwg-xcwwgFZhNlYV7o3tCUU2PXEnOVg6UigsHIVFGIwntnmMhW6aSKLwmLzjEbhEZhzIEuZ0_v2xvFgzgdfGZH_vUWbSKTYjXpJEstc5ITxwFeGuIjyYMJeFLeGzZAu1n8ms-v0xV4VDsmLiNnllGUaefEoZGGMEsye6poLe0h00AAcIWkvYDy630L59hyhNssU2jaCF6ehj_o7P-ylFnEOUQDWJkngtp0gp6vAJjWkMFbLvmiBK1RTguYbvem0cdXaBtHNV8CgAVvLGC8-5KHW2gBzOAYav6HMGC8A8pSiqQVsF_hGwLEQoClY1pXg0CCfm2VgblAjslyINNQSiIDVUpJ7j6PRspAq4dqrf4zuOR0dxCh5TweObmmE7B_As4E179IqCzq7wyU7BxSN4Fl5x6LDlo1fbpctbAROUV5xiaGhW0FiDhFwhba0OlQ7XDP-HUAzkhSw25eNJMyaJyrHfDE6ZtE6ax0XtK-axOubRDdc60zzTKNpbSM1oTTdyrt-4KFcBZneAGYGrnQQGLL_Fd9TfwDNQjUEB9u7eaWQoWEGmVjtD1y3DRhY0TuLdNilyEtMty1PoYHCelAtdFAB9TH4FWuCFPGp-71sXBKnWU2YbrjsmBzlj09jC1AvmfJ3puofiFKUptXliUj1k7QR6c48Q6rb1lyExHA0FKUjcDhLDCPUzkNT9cts81dAZKFBIG4WhdVE4k3ZajNia-rvyuoWnLMgVpp_GAqIULGpxc1w20f0WliTzq5jjIJ5hJ8OjWjdJWuU9uUH0U5BoiAIVRGoRc3yXOl4fosVDhQY6oxoR28o6lougfF_E_N8FW6VCzc0NjzsKqRueifgPik71AJELSYt7kLzL_cmGU8BCCo-JkNAjJtjPcJN7bWr5aGY-yi3SJWijVtxRrUGIgVIUramldqIZlmb1aw0er-I8TLLt_6HexqgWRW_Wp95-Sm92J0oZXPZJkl3C4kHqrIP3KQblSaJtc4P95to8EZaoBUVNar_geBMW0D41dYQ_0vy5netPCdaRryLY6eb1MHRlI9mS3m5On6Su6-oKVkMtlZsuLT2esojE_VHFl4ud1z_Ns1H5ACoxSxVMyyLzl4HB_m3e3nr6CxVxTuEEiyomn3R8zYXGo8_X5nJXDqy8ZHmOrVQJkEPXKvzNt0Lg56QBj9d3T_k5vodyFCBuBwjzfe18IN9uV36CzYZgt0nyXKQfsfkilpvAwK-cuxRUsA8bop9Lk1AbXuU-7mE0U9wF3WRJDA8Gy93WS6K_FyzbddnUe6ctb2_t_bA4Z3c07Zfw5-Lxeic36jqbP3Lakon-aSWYJW5NrO8B_fupIHGBHxWdO71-Ru2WnNPMOktoPez2Z6qa4z3lB9T-Oyql_KS19Uh8RjnRMXDakdXZOXe8MDD03m6lceCbIooUJ8bbdXz9ZpF1Qhu4WEUbnWcX6llB77PLwTxD0zTayZC830DF038zfbT9b55l-KB1XEUaakBRkdGtCU7Q2972qyiq82_PjBLv33isdggvcvMYFtuMpB-P03cUpbCbiK7zbvKURxTo_15mN4B755Y5oDIl5JljVI3D7CkqnztaD-ZvKaiYBcryjheJo4kNljvH8yEAJigJf2Hi-y-S-EdBN2m2Sq2f9fWzvp7sXCEbKunS7KZLz_lACx29a1c_s-HpbKgWktPp8jOsP8P6RFhD1CphbXXCmupm72bVZ1ifH9YHDN4ftScMhvZQDNbZXQycgLm9ueMWFtK20i2Pn3GjMV5H0CL1Nq575Zy9wOPwTUSnwFd3_cZ-qIcewbkdN5vHa3lg80CvXSJ4kEcnSqMc3REyUIyCw-ni8AzrPBz31H_uKPDDaECYgkbdn7Kp5ZqU-OVnONM4mLcOMB_9PPVb9RF6ab_9csqt7G9p50jLHvbs1Ce1sy6YWRKHfN3kJAwneQTtTy4e5Fp7P4DtnAeClYaB_n6l34Fl6zPO32_Vp9ZpaZ11upre9vNm9l35RRR5pmVG_A3NalW2V1IdTnyQ33fIdkoa6mG6R3nEDV0NMbXd0OqcEASC0Cf4VZljfMwxkil8OgcETd9wTx8QxN1RZUvHMrtsTIuS1QqnrXJBM7GqsZ1gDPMUxmrR0ya2FdqkZEnkUWAeBXhEF_ngAeHMb73z8wL-ypOp-S4PWIondN8m49UYTw9LJqMlWEPXnZZL2Fc6foUCXrprTSwSJDEjh1-Nsj90-J28P4MuX_I0ePvbJ4jBJotvj4S3TjOBIn38EgieIMYM55KPHhGuv4zRezzbK0R13p_QIJDnmEtfhzUOQ6izjedzQUAWyQvfh24jLKJoNyI8JDDOc5IxqPm76ni1PBkthxmsG49Zh1x-j4aT16SIAhLxZ1YNA-Hogl3q47Gtj23Ldi-CSzNwTZdeCC4idrkgW8bw4Lby9YQiZ6SrAzyFTjrnzS-KLLr8-UPe9sQw7YvNpTUxNccNJ57l6ePAMpmlG5pl2yz0Hd80xhcR9ViUX8pv5hgxeyWSBVyDg13wS0MzDB2CRndsx3RHvs20sWYEXmibEPLjgaUxCJtohDhGSba-yC4lJNBmDjfxbFa-v0lzeeqOSXHAnxZik8AMHhdvEfhwtGMUGooLieFSruE_pSDM9g">