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

    <tr>
        <th>Summary</th>
        <td>
            [DirectX] Assert in DXILValueEnumerator predictValueUseListOrder IDPair.first && "Unmapped value"
        </td>
    </tr>

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

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

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

<pre>
    ## Repro command
```bash
lldb -- .clang-dxc /DirectML/Product/Shaders/Generated/CumulativeOperationProduct_256_int64_native_8.hlsl -E CSMain -T cs_6_0   -O3 -D DXC_COMPILER=1 -D __SHADER_TARGET_MAJOR=6 -D __SHADER_TARGET_MINOR=0 -I /DirectML/Product/Shaders/ -Fo validation/CumulativeOperationProduct_256_int64_native_8.dat
```

## Assert location
https://github.com/llvm/llvm-project/blob/fadaf0c513c8054db04e5ae234a27232568fac28/llvm/lib/Target/DirectX/DXILWriter/DXILValueEnumerator.cpp#L277

## Crash stack
```gdb
* frame #4: 0x0000000103d030bc clang-dxc`predictValueUseListOrder(llvm::Value const*, llvm::Function const*, (anonymous namespace)::OrderMap&, std::__1::vector<llvm::UseListOrder, std::__1::allocator<llvm::UseListOrder>>&) (.cold.1) at DXILValueEnumerator.cpp:277:3 [opt]
    frame #5: 0x000000010203e52c clang-dxc`predictValueUseListOrder(V=0x000000013704fbd0, F=0x0000000137051278, OM=0x000000016fdf55e0, Stack=size=7) at DXILValueEnumerator.cpp:277:3 [opt]
    frame #6: 0x0000000102039b00 clang-dxc`llvm::dxil::ValueEnumerator::ValueEnumerator(llvm::Module const&, llvm::Type*) at DXILValueEnumerator.cpp:325:13 [opt]
    frame #7: 0x00000001020393d0 clang-dxc`llvm::dxil::ValueEnumerator::ValueEnumerator(this=0x000000016fdf5760, M=<unavailable>, PrefixType=<unavailable>) at DXILValueEnumerator.cpp:363:19 [opt]
    frame #8: 0x000000010203715c clang-dxc`llvm::dxil::DXILBitcodeWriter::DXILBitcodeWriter(this=0x000000016fdf5738, M=0x0000000137021780, Buffer=0x000000016fdf5a58, StrtabBuilder=<unavailable>, Stream=0x000000013712b1f0) at DXILBitcodeWriter.cpp:137:45 [opt]
    frame #9: 0x00000001020252b8 clang-dxc`llvm::dxil::BitcodeWriter::writeModule(llvm::Module const&) [inlined] llvm::dxil::DXILBitcodeWriter::DXILBitcodeWriter(this=0x000000016fdf5738, M=0x0000000137021780, Buffer=<unavailable>, StrtabBuilder=<unavailable>, Stream=<unavailable>) at DXILBitcodeWriter.cpp:139:49 [opt]
    frame #10: 0x00000001020252ac clang-dxc`llvm::dxil::BitcodeWriter::writeModule(this=0x000000016fdf5a70, M=0x0000000137021780) at DXILBitcodeWriter.cpp:435:21 [opt]
    frame #11: 0x0000000102025098 clang-dxc`llvm::dxil::WriteDXILToFile(M=0x0000000137021780, Out=0x000000016fdf5c10) at DXILBitcodeWriter.cpp:406:10 [opt]
    frame #12: 0x0000000102041724 clang-dxc`(anonymous namespace)::EmbedDXILPass::runOnModule(this=<unavailable>, M=0x0000000137021780) at DXILWriterPass.cpp:73:5 [opt]
    frame #13: 0x0000000100c103fc clang-dxc`llvm::legacy::PassManagerImpl::run(llvm::Module&) at LegacyPassManager.cpp:1521:27 [opt]
    frame #14: 0x0000000100c101c4 clang-dxc`llvm::legacy::PassManagerImpl::run(this=<unavailable>, M=0x0000000137021780) at LegacyPassManager.cpp:539:44 [opt]
    frame #15: 0x00000001017f8fb0 clang-dxc`clang::emitBackendOutput(clang::CompilerInstance&, clang::CodeGenOptions&, llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, std::__1::unique_ptr<llvm::raw_pwrite_stream, std::__1::default_delete<llvm::raw_pwrite_stream>>, clang::BackendConsumer*) at BackendUtil.cpp:1262:19 [opt]
    frame #16: 0x00000001017f8d18 clang-dxc`clang::emitBackendOutput(clang::CompilerInstance&, clang::CodeGenOptions&, llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, std::__1::unique_ptr<llvm::raw_pwrite_stream, std::__1::default_delete<llvm::raw_pwrite_stream>>, clang::BackendConsumer*) [inlined] (anonymous namespace)::EmitAssemblyHelper::emitAssembly(this=0x000000016fdf5f80, Action=<unavailable>, OS=llvm::raw_pwrite_stream @ 0x0000000137021420, BC=<unavailable>) at BackendUtil.cpp:1286:3 [opt]
    frame #17: 0x00000001017f89d4 clang-dxc`clang::emitBackendOutput(CI=0x000000013710a530, CGOpts=<unavailable>, TDesc=(Data = "e-m:e-p:32:32-i1:32-i8:8-i16:16-i32:32-i64:64-f16:16-f32:32-f64:64-n8:16:32:64", Length = 78), M=<unavailable>, Action=<unavailable>, VFS=<unavailable>, OS=<unavailable>, BC=0x0000000137021550) at BackendUtil.cpp:1451:13 [opt]
 frame #18: 0x0000000101a5a6ac clang-dxc`clang::BackendConsumer::HandleTranslationUnit(this=0x0000000137021550, C=0x000000013681ce00) at CodeGenAction.cpp:316:3 [opt]
    frame #19: 0x0000000102925f94 clang-dxc`clang::ParseAST(S=0x000000013783b800, PrintStats=<unavailable>, SkipFunctionBodies=<unavailable>) at ParseAST.cpp:184:13 [opt]
    frame #20: 0x0000000101e800fc clang-dxc`clang::FrontendAction::Execute(this=<unavailable>) at FrontendAction.cpp:1221:3 [opt]
    frame #21: 0x0000000101e1c7e8 clang-dxc`clang::CompilerInstance::ExecuteAction(this=0x000000013710a530, Act=0x000000013710aee0) at CompilerInstance.cpp:1057:33 [opt]
    frame #22: 0x0000000101ef8b64 clang-dxc`clang::ExecuteCompilerInvocation(Clang=0x000000013710a530) at ExecuteCompilerInvocation.cpp:300:25 [opt]
    frame #23: 0x0000000100009c50 clang-dxc`cc1_main(Argv=<unavailable>, Argv0=<unavailable>, MainAddr=0x00000001000054d4) at cc1_main.cpp:297:15 [opt]
    frame #24: 0x0000000100007424 clang-dxc`ExecuteCC1Tool(ArgV=<unavailable>, ToolContext=0x000000016fdfe8f8) at driver.cpp:223:12 [opt]
    frame #25: 0x0000000101ca719c clang-dxc`void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::__1::optional<llvm::StringRef>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*, bool*) const::$_0>(long) [inlined] llvm::function_ref<int (llvm::SmallVectorImpl<char const*>&)>::operator()(this=<unavailable>, params=<unavailable>) const at STLFunctionalExtras.h:69:12 [opt]
    frame #26: 0x0000000101ca7190 clang-dxc`void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::__1::optional<llvm::StringRef>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*, bool*) const::$_0>(long) [inlined] clang::driver::CC1Command::Execute(llvm::ArrayRef<std::__1::optional<llvm::StringRef>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*, bool*) const::$_0::operator()(this=0x000000016fdfa100) const at Job.cpp:436:34 [opt]
    frame #27: 0x0000000101ca718c clang-dxc`void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::__1::optional<llvm::StringRef>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*, bool*) const::$_0>(callable=6171894016) at STLFunctionalExtras.h:46:12 [opt]
    frame #28: 0x000000010136ee10 clang-dxc`llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) [inlined] llvm::function_ref<void ()>::operator()(this=<unavailable>) const at STLFunctionalExtras.h:69:12 [opt]
    frame #29: 0x000000010136ee08 clang-dxc`llvm::CrashRecoveryContext::RunSafely(this=<unavailable>, Fn=function_ref<void ()> @ 0x0000000102430ce0) at CrashRecoveryContext.cpp:427:3 [opt]
    frame #30: 0x0000000101ca6c24 clang-dxc`clang::driver::CC1Command::Execute(this=0x0000000137105330, Redirects=<unavailable>, ErrMsg=<unavailable>, ExecutionFailed=<unavailable>) const at Job.cpp:436:12 [opt]
    frame #31: 0x0000000101c7997c clang-dxc`clang::driver::Compilation::ExecuteCommand(this=0x0000000137021050, C=0x0000000137105330, FailingCommand=0x000000016fdfa648, LogOnly=false) const at Compilation.cpp:196:15 [opt]
    frame #32: 0x0000000101c79b44 clang-dxc`clang::driver::Compilation::ExecuteJobs(this=0x0000000137021050, Jobs=<unavailable>, FailingCommands=0x000000016fdfa840, LogOnly=false) const at Compilation.cpp:251:19 [opt]
    frame #33: 0x0000000101c8fb28 clang-dxc`clang::driver::Driver::ExecuteCompilation(this=0x000000016fdfa890, C=0x0000000137021050, FailingCommands=0x000000016fdfa840) at Driver.cpp:2226:5 [opt]
    frame #34: 0x00000001000069b0 clang-dxc`clang_main(Argc=<unavailable>, Argv=<unavailable>, ToolContext=0x000000016fdfe8f8) at driver.cpp:407:21 [opt]
    frame #35: 0x000000010001200c clang-dxc`main(argc=<unavailable>, argv=<unavailable>) at clang-driver.cpp:17:10 [opt]
    frame #36: 0x0000000183f4eb4c dyld`start + 6000
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsWktv4zgS_jXMRXDAh56HHBw77skgWQdxunduBkVRNrdpyUtRnmR-_YKUZVtPp3cGu3PoRiNRRFKs-qpY_D5KtCjEJuP8Dnj3wJvf0FJvc3WXUvVHnsmbOE8-7gAmABPnle9V7rB8t6NZAuAU-LD6H9NiC-BUyiR2JhPnlkmabSbJO3MAXsyF4kw_PwG8eFF5UjIN8GK1pQlXBcCLLzzjimqeALyYlbtSUi0OfLk3N0WeHYesseevRaZ9d53ZDuvwdisL6UwenNnqmYrMmbw5rFj7a-g4zmRJnMncmf82W8-Wzy-PTw-vgMyRubder36Zzh9e12_T1y8Pb-vn6a9L0-j3Nj7-wzZCZ_L4CV-cySJ3DlSKxNr-wx4lVF_Caq7h9Aj-tCi40o7MWfVsON1qvS8AmQK8AHixEXpbxrcs3wG8kPJQ_5rsVf4vbg2NZR4DvEhpQlPIPERYCD03iaHLPcoxcSkOMMGeH6aU4fDiOcKMe6Nqw_UJhd_M1W-PT_9UQnN1_OMblSV_yMqdcTZXt2y_B5g84SBoODNTtNg6habs-6XDmyS2faZOquiOOwATF5CpA99h9Q9BkkACY-acUgz4cK94Ipi2c38t-JMo9FIlxqbQOkCmgExtq8PyrNAATwGeOee2RZkxA2qjGeCQZnn2scvLwsnojhd7yjjAUTXGzvBM9wD7pnehk-r-eo2qiwNnOleAzM7zNI3rG0SlDfDYOPJg_ptZI2PjLctlcovMX1Q7QzEgUxMCMiUO8O7zvQbeHMCp4zhnpL0W0hgS7uFPI_3NLJPTaBJAN40TaLxctFs8hIPQtCyfG01-mqSex-2glc0NMi_EHxyQefDn_fO7_kUxhA3_zpAn70JeJM55uv6bl5n2nCelPKWa30y1t489twl2xR2CTTzQiD9Bjz8k-cv80VtRdKMT-DY6Jm6AzMqMHqiQNJbc5uTMeVE8Fe_Wyd4e17z2ifE6GvY67HodII9d9drMeS80yxN-LFgDtwc9J2HteSOZMQpCi8l9mabmse2B1AurhFaaxvelkHYR98O30orTXWsKhGOUwgvsGgYfkUM2H1xvGLmogxz2cBxeRa4Htd_NdZXm45lvAykyKTKeAG_u_J8jM4T5DwRmLKf742Jwd0cyGsG-wNDrKX01MP1w0QCOwTXqjWt3CYxGvEE93sDoeprZecy8b_lCWPOHA7osddcvhq5aD80egOCI9bhjvYsC7Dasv0IMHnYxT4wJL7QoqluqzJZZOyy9eXY1KpVD5tFHpwJTMUeWPSItlyBDkKRD6SX5hrKP6trM8kwzuuHqcbeXJ1961vxxtVPtPNkHXAytF4KHkd2mR0xtkz1jKmLunzP1v4Z7yBOvWtLuiCNtLoWCNEzj5t5srytD-U7oe8q-8yxZlnpfaoDDi-ZZvtsLydVjVmiaMX4kFY0eCf_Cs-XesNiiQzpWWols88rT5u06dNPW046mTFklYi6HPGZalYU48FeezjL9optE9ZAeM94s4dVHofnuiHSX6paZ-HfJ1_vWIxT9fb23dWxdVEW3d3TCU1pKvU645JpfecKRMvc5OcuzwpCQMyc7NnzVQtapi318hZagNrs0EU9Q-DPif_eINwnK1doutBHiu1h-_MLlvt53-cX9wY03rTavI8gDFWm5AmQ-4pkDXOi0SpaLK5ozG-EnfVkd-uOKCbUlhknqKHF_JKlnj202C6lHrL2zL8u9HizNb3NeMNOIwznV1AHERAfziUGGTyqNZH9MBDr-NuIgnAi7GJE_EacOvtlZfHeS1k1p3ZTWTVloW-rH-i7A2NjxxLON3trpjWiNRuXPeGy_LVajYe9tsVFtBdzz4HBYXQ_1KMdzUNsKClGP-i26ObJq7M1faJZI_qZoVkh7HPU1E7ov8c_mzpyWI36IGIe1I8d6VgFYq0F0LUE7mibCXhoNJugLVQWfrt4ADlctM0MShxBWElZkeqXpcGquvot9fWR0nyeCD_S0jtVz1uEJ3Su6Hrf1AOIhhOlggBYqz_S5eFd16p2zUo-TTWtdc_CpMliqNmZjm-UjjljAB7e7zn52aWW96_Rlz7laTJnutnF-zp_mDLUr0LPHQmO-tDk_4mkY-4NJdLT6POGhPpLF4azq1uuCNXNwcJ3y0EQfj_B53OHzEEbMa3FLhtY7KoxJU7U5DJYrtTnAQW5MRTZNkuaJhvnhuYl7dKeepz6DiwLL9Ees71B8CAO3JbBqkGboLc9l5cO3wX0iz-XMJPF7VxPyMA2PliZKHE4MHlsQER6xs8PgGQ1Q1FyEh1wkF0wpPZaEteIpIDPbCrDdMwwdMV0YlTKm7Ps6zQCZXSRVZd5xsczQ7PiOpbWYz3NNlaIfr3aeLlPKLSmkssGRzozwxI26I2NaCGaYhjCGzdiWDpxTm5a1VlSYKln1G3rm5ZF23dH0tRw0tgG2RKw6NbJDAHbX0HYKZZ5txs6RWqCLTDsNoFY7KuU3exRfCUNrw_mgvz5KP4Uo35-OQO1uP6of91TR3WB9tZOY5Fu9PdX7BZUP71rR4nZrSEZ0LQ07ssKmIfyZhn-LNPyJ3DhyY-upWakpqpjgacn8msenM0fLAkeOW3BHp5hVEv4s1v_rVWIQq-rf3EcBCiMXovpccKgGuv61GtgRLMTnHA296LKvll85yw9cfZyIgWl5LbMVTblV6J9NhM_vPH0Z9AN7yV-yW7TlkEUKDp29fw6pse1vYaTuKA6t4wqIXQLZmbT3WFCvenzldS7pyCRGfYYHafvnFm2vBPFIJUFeeWK_fBjE40Gp52Iz2GpnEXm2oELy5GoetEvgWOhJR5CxIIqCQdHYQMOKEdpRjzVEQ7Ie9sr6C7yMnyLbnKBu13zftS_unvLNMpMfJpWoLHgDgwvbakUX-Vc0BukIOhZEsfu5zBjA4tc8Lq4BYfsMrZQGFD37X-jCH8cCV0c9I-fSpK0WEQvTGA8K9Uss5hfXDd1Kh_R65UnUmxZnnD6HRfXGq6naLB0ei3yPuvSjvvcuF-qYjanjv1J1ujC48vK08w0OhAhD2FzFR8vpiOV00PJKtVdPu7TNHvWOvRltfz4TktTlscuc5EMmwIeFpspIr3vHhxBeftR1k9yRJCIRveF3KHADD0XYRzfbOx-jKPQYJyFPUxa5nksoDtMkjLjLMcE34s6-PPZQgLFJ3VsKMeVu5KdBAknMYuBCvqNC3ppN7TZXmxtRFCW_Qy50EbyRNOaysB82YhxX55gmr-vP1zDw5jfqzn4lF5ebArhQikIX58dpoaX9MrIe483rD_FE1vcdizP0hZTzOH-hQt2mQhUGJx9g3wEYf812dL_niXMwIwDGN6WSdz_8aZ_1uwB4cXT9cIf_EwAA__9qQFJ-">