<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/138046>138046</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[DirectX] Unhandled instruction - pointer escaped? UNREACHABLE executed DXILResourceAccess.cpp:235
</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>
## Run line
```bash
./../DirectML/Product/Shaders/Generated/GemmWaveSM_6_0_float_32.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/
```
## IR causing crash
```llvm
%17 = tail call noundef nonnull align 4 dereferenceable(4) ptr @llvm.dx.resource.getpointer.p0.tdx.RawBuffer_f32_1_0t(target("dx.RawBuffer", float, 1, 0) %10, i32 %elt.min14)
```
## IR with more context
```llvm
if.then: ; preds = %entry
%Parameters.cb82 = load target("dx.CBuffer", target("dx.Layout", %__cblayout_Parameters, 112, 0, 8, 16, 24, 32, 36, 40, 44, 48, 52, 56, 64, 72, 80, 88, 96, 100, 104, 108)), ptr @Parameters.cb, align 4
%8 = call { i32, i32, i32, i32 } @llvm.dx.resource.load.cbufferrow.4.i32.i32.i32.i32.tdx.CBuffer_tdx.Layout_s___cblayout_Parameterss_112_0_8_16_24_32_36_40_44_48_52_56_64_72_80_88_96_100_104_108tt(target("dx.CBuffer", target("dx.Layout", %__cblayout_Parameters, 112, 0, 8, 16, 24, 32, 36, 40, 44, 48, 52, 56, 64, 72, 80, 88, 96, 100, 104, 108)) %Parameters.cb82, i32 6)
%9 = extractvalue { i32, i32, i32, i32 } %8, 2
%elt.min = tail call i32 @llvm.umin.i32(i32 %add2, i32 %9)
%10 = load target("dx.RawBuffer", float, 1, 0), ptr @_ZL4matA.0, align 4, !tbaa !5
%11 = call { <1 x float>, i1 } @llvm.dx.resource.load.rawbuffer.v1f32.tdx.RawBuffer_f32_1_0t(target("dx.RawBuffer", float, 1, 0) %10, i32 %elt.min, i32 0)
%12 = extractvalue { <1 x float>, i1 } %11, 0
%vecins = shufflevector <1 x float> %12, <1 x float> poison, <4 x i32> <i32 0, i32 poison, i32 poison, i32 poison>
%add5 = add i32 %add2, %3
%elt.min6 = tail call i32 @llvm.umin.i32(i32 %add5, i32 %9)
%13 = call { float, i1 } @llvm.dx.resource.load.rawbuffer.f32.tdx.RawBuffer_f32_1_0t(target("dx.RawBuffer", float, 1, 0) %10, i32 %elt.min6, i32 0)
%14 = extractvalue { float, i1 } %13, 0
%vecins8 = insertelement <4 x float> %vecins, float %14, i64 1
%add9 = add i32 %add5, %3
%elt.min10 = tail call i32 @llvm.umin.i32(i32 %add9, i32 %9)
%15 = call { float, i1 } @llvm.dx.resource.load.rawbuffer.f32.tdx.RawBuffer_f32_1_0t(target("dx.RawBuffer", float, 1, 0) %10, i32 %elt.min10, i32 0)
%16 = extractvalue { float, i1 } %15, 0
%vecins12 = insertelement <4 x float> %vecins8, float %16, i64 2
%add13 = add i32 %add9, %3
%elt.min14 = tail call i32 @llvm.umin.i32(i32 %add13, i32 %9)
%17 = tail call noundef nonnull align 4 dereferenceable(4) ptr @llvm.dx.resource.getpointer.p0.tdx.RawBuffer_f32_1_0t(target("dx.RawBuffer", float, 1, 0) %10, i32 %elt.min14)
br label %if.end49.sink.split
```
## Crash stack
```gdb
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
* frame #0: 0x00000001842b4388 libsystem_kernel.dylib`__pthread_kill + 8
frame #1: 0x00000001842ed88c libsystem_pthread.dylib`pthread_kill + 296
frame #2: 0x00000001841f6c60 libsystem_c.dylib`abort + 124
frame #3: 0x00000001030d8b14 clang-dxc`llvm::llvm_unreachable_internal(msg="Unhandled instruction - pointer escaped?", file="/Users/farzonlotfi/Projects/llvm-project/llvm/lib/Target/DirectX/DXILResourceAccess.cpp", line=235) at ErrorHandling.cpp:214:3
frame #4: 0x0000000100110af0 clang-dxc`replaceAccess(II=0x0000000127051240, RTI=0x000000011c556730) at DXILResourceAccess.cpp:235:7
frame #5: 0x0000000100110468 clang-dxc`transformResourcePointers(F=0x0000000126678d18, DRTM=0x000000011c5100d0) at DXILResourceAccess.cpp:256:5
frame #6: 0x00000001001133f0 clang-dxc`(anonymous namespace)::DXILResourceAccessLegacy::runOnFunction(this=0x000000011c510090, F=0x0000000126678d18) at DXILResourceAccess.cpp:285:12
frame #7: 0x0000000101f65b00 clang-dxc`llvm::FPPassManager::runOnFunction(this=0x000000011c53b890, F=0x0000000126678d18) at LegacyPassManager.cpp:1406:27
frame #8: 0x0000000101f6c694 clang-dxc`llvm::FPPassManager::runOnModule(this=0x000000011c53b890, M=0x000000012660f490) at LegacyPassManager.cpp:1452:16
frame #9: 0x0000000101f663c0 clang-dxc`(anonymous namespace)::MPPassManager::runOnModule(this=0x000000011c5130a0, M=0x000000012660f490) at LegacyPassManager.cpp:1521:27
frame #10: 0x0000000101f65f34 clang-dxc`llvm::legacy::PassManagerImpl::run(this=0x000000011d05ee00, M=0x000000012660f490) at LegacyPassManager.cpp:539:44
frame #11: 0x0000000101f6ca9c clang-dxc`llvm::legacy::PassManager::run(this=0x000000016fdf48f8, M=0x000000012660f490) at LegacyPassManager.cpp:1648:14
frame #12: 0x0000000103b63834 clang-dxc`(anonymous namespace)::EmitAssemblyHelper::RunCodegenPipeline(this=0x000000016fdf4d70, Action=Backend_EmitAssembly, OS=llvm::raw_pwrite_stream @ 0x000000012660f160, DwoOS=nullptr) at BackendUtil.cpp:1261:19
frame #13: 0x0000000103b53e64 clang-dxc`(anonymous namespace)::EmitAssemblyHelper::emitAssembly(this=0x000000016fdf4d70, Action=Backend_EmitAssembly, OS=llvm::raw_pwrite_stream @ 0x000000012660f160, BC=0x000000012660f310) at BackendUtil.cpp:1285:3
frame #14: 0x0000000103b53380 clang-dxc`clang::emitBackendOutput(CI=0x0000000127023690, CGOpts=0x000000012782be18, 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=0x000000012660f490, Action=Backend_EmitAssembly, VFS=IntrusiveRefCntPtr<llvm::vfs::FileSystem> @ 0x000000016fdf5078, OS=nullptr, BC=0x000000012660f310) at BackendUtil.cpp:1450:13
frame #15: 0x00000001042d0120 clang-dxc`clang::BackendConsumer::HandleTranslationUnit(this=0x000000012660f310, C=0x000000012681cc00) at CodeGenAction.cpp:316:3
frame #16: 0x0000000106b07f30 clang-dxc`clang::ParseAST(S=0x000000012683de00, PrintStats=false, SkipFunctionBodies=false) at ParseAST.cpp:184:13
frame #17: 0x0000000104e4c3d8 clang-dxc`clang::ASTFrontendAction::ExecuteAction(this=0x0000000127026d80) at FrontendAction.cpp:1343:3
frame #18: 0x00000001042d5b94 clang-dxc`clang::CodeGenAction::ExecuteAction(this=0x0000000127026d80) at CodeGenAction.cpp:1111:30
frame #19: 0x0000000104e4bc50 clang-dxc`clang::FrontendAction::Execute(this=0x0000000127026d80) at FrontendAction.cpp:1225:3
frame #20: 0x0000000104d6244c clang-dxc`clang::CompilerInstance::ExecuteAction(this=0x0000000127023690, Act=0x0000000127026d80) at CompilerInstance.cpp:1058:33
frame #21: 0x0000000104f8e5c8 clang-dxc`clang::ExecuteCompilerInvocation(Clang=0x0000000127023690) at ExecuteCompilerInvocation.cpp:300:25
frame #22: 0x00000001000131c0 clang-dxc`cc1_main(Argv=ArrayRef<const char *> @ 0x000000016fdf5fc8, Argv0="/Users/farzonlotfi/Projects/llvm_debug_build/bin/clang-20", MainAddr=0x0000000100002fd0) at cc1_main.cpp:294:15
frame #23: 0x0000000100004978 clang-dxc`ExecuteCC1Tool(ArgV=0x000000016fdf97b8, ToolContext=0x000000016fdfe768) at driver.cpp:223:12
frame #24: 0x0000000100011b38 clang-dxc`clang_main(int, char**, llvm::ToolContext const&)::$_0::operator()(this=0x000000016fdfa2f8, ArgV=0x000000016fdf97b8) const at driver.cpp:369:16
frame #25: 0x0000000100011b08 clang-dxc`int llvm::function_ref<int (llvm::SmallVectorImpl<char const*>&)>::callback_fn<clang_main(int, char**, llvm::ToolContext const&)::$_0>(callable=6171894520, params=0x000000016fdf97b8) at STLFunctionalExtras.h:46:12
frame #26: 0x0000000104a6a7a0 clang-dxc`llvm::function_ref<int (llvm::SmallVectorImpl<char const*>&)>::operator()(this=0x000000016fdfa980, params=0x000000016fdf97b8) const at STLFunctionalExtras.h:69:12
frame #27: 0x0000000104a6a760 clang-dxc`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=0x000000016fdf9718) const at Job.cpp:435:34
frame #28: 0x0000000104a6a72c 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=6171891480) at STLFunctionalExtras.h:46:12
frame #29: 0x00000001011724c4 clang-dxc`llvm::function_ref<void ()>::operator()(this=0x000000016fdf96b8) const at STLFunctionalExtras.h:69:12
frame #30: 0x00000001030c2bf0 clang-dxc`llvm::CrashRecoveryContext::RunSafely(this=0x000000016fdf9758, Fn=function_ref<void ()> @ 0x000000016fdf96b8) at CrashRecoveryContext.cpp:426:3
frame #31: 0x0000000104a66c50 clang-dxc`clang::driver::CC1Command::Execute(this=0x00000001270238e0, Redirects=ArrayRef<std::__1::optional<llvm::StringRef> > @ 0x000000016fdf97a0, ErrMsg="", ExecutionFailed=0x000000016fdf9caf) const at Job.cpp:435:12
frame #32: 0x00000001049fc55c clang-dxc`clang::driver::Compilation::ExecuteCommand(this=0x0000000127022430, C=0x00000001270238e0, FailingCommand=0x000000016fdf9dc8, LogOnly=false) const at Compilation.cpp:196:15
frame #33: 0x00000001049fc7e8 clang-dxc`clang::driver::Compilation::ExecuteJobs(this=0x0000000127022430, Jobs=0x00000001270224b0, FailingCommands=0x000000016fdfa658, LogOnly=false) const at Compilation.cpp:251:19
frame #34: 0x0000000104a1ae2c clang-dxc`clang::driver::Driver::ExecuteCompilation(this=0x000000016fdfa6a8, C=0x0000000127022430, FailingCommands=0x000000016fdfa658) at Driver.cpp:2225:5
frame #35: 0x00000001000040f4 clang-dxc`clang_main(Argc=15, Argv=0x000000016fdfeea8, ToolContext=0x000000016fdfe768) at driver.cpp:407:21
frame #36: 0x000000010003e94c clang-dxc`main(argc=15, argv=0x000000016fdfeea8) at clang-driver.cpp:17:10
frame #37: 0x0000000183f4eb4c dyld`start + 6000
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsWttu4zjSfhrlRojBk2TpIheKHXdnkEyCOD3_4L8RKJKyuS1TXopOJ_v0C1KSDzqknczsLmaxjbQti1Sx6quPxSpStKrkSglx5QXXXjC_oDuzLvVVTvU_SlVcZCV_u_IQ9hD2n3bKL6QSHki8ENR_Ga3WHkgmHlpM7MdcasHM_Z2HFo-65DtmPLRYrikXuvLQ4otQQlMjuLvebP6PvojlfRqmIM2LkpoUo8m6qAoPId9D6PKmuZgt76lU7d3n5oJV9sn27gNur-bNxfz3WTp7uH-8vbt58vAcdtvTdPk1md88pc_J05eb5_Q--eXBdgx_2vH2V9dxP_ZtczE5F4hjDO11jfDtk8_orpJq5TNdI7vvVRQvG9czgFPfw3PfUFn4jBaFr8qd4iL3VanUrih8WsiV8onPhRa50EIxQbNCeCgiHor9rdG-R5zACX-daFGVO83EZCXMtpTKCD3Zgonhr5Mn-uN6l-dCpzlGKUyB8VBkqF4Je-EhdNzHQ8hDM9_50V5A-wHsgFZnYH9JbFEKRGEmG6mg1aYLxDEWP6RZ-5tSC5-VyohXM4CHzCdmLZSHE__sfx6-9rda8MrhaBVSRr95IPHtj0eq6UYYoasJyyLk-hQl5X7H8NmJ2Z3GO_pW7kzT5qEgTVlWuHvpQb5DCaIGp5kfuRuh_UTEfmLXht0d4roQd5-4noFrDVxr6O5P3Z2oFub6xK4VAlB_kforssDbv1lLhhOj7f2GQy0okYPBsc2bXltHNv48_fK96XyQWxbACcscYrr8MSETidHJf3OANDV7BNMqHYSuSiFEKUijFIYpIilGKQ5TAlJCUhKlAUqDMA1JOkVpBNIoSuMwhQCkEJAUgsgMEPmv788B9rZ-Ceup5nwZO1-KV6MpMy-02IkzfIoCNz5qhTRzuBOJXPfG_buNVBMnJmrmPeUcHYWB-EgnCEbn2c8DzBGP0_-_Ixtqkgk4JrHzGTQZpfY72A8KT1nt4Rn0X5sB8I1TFb5PaU1_1KSevMC8YfG_Nmq2d8AxemjYpe8YZK2vh2pkvAgmVR0Rq_UuzwvxIpgpdVdIPZ6DtNOwLWVVqqaF-K-OQ_YBPGsUrjU_9Bv9hW9atSjngVOKcu53eOShAHf4GH6UkMEAIa2F-JQae_-cT4h_Dx3CQT6QYT70rLCGDrCgjvZSVUIbUYiNUKb16TEN6s57feuRnfiQ-LBBknIeDzgwGHFgEwg-4MF4LKQEfxEXHu6d-DA834fBgA-bmHCmE6NTL4atF9HBi82UOHVjPOZG8lE31kQc8uN_Wbrr-5n2C5qJwjbKfCIUJ_Gkkur7pNoW0oymxDNbE_iVoez7cZ8Vz1yfxDdrLSj3PYSdNn_fCUsal-NOWbmZ0O22EJMNleqy7uqhqe1YmXLra0Grsl7QbUlIC395-yW5fnpuHJH4uU0trHRg023wCup_MCIoIziK_EJm1VtlxCb9LrQSxYS_FTLzQpCm23rA9Lu00xFd-5ET6x-Ewp5QwaOIHQltZOyl9mSiOOxKRV2pMA9ZCI6ksr08mpXaOEEQka4gfCoIYMCjDBKfFVStLvkra2sSnHg4sVfpTmlB2dqSMXVEU7TwULSpVh62peU3taaKF4LbWWr0jhlZKv_Sb2jpi4rRreAeXrRkk4WoH_XQ4ltVl5JNqV6aXNbF5t8EM7bB6nC5rX83P-2XzDy0eG5Y3dSpv9ur32_vnprJkTAmqmrCtttmZFf34znCgWU4Nf6N1qX-atWXauU64gRB4uEEd5EjHeQAhIDm4AQ5LbYFbcf1UHR7a8vr_TNoCgKI6pT56fm0DbIgCKcYNIqNmIETqztOpl3tggHtSBidaGc0VVVe6k0r-LH2kNV0capoGE4jDl04nT8933c1hQDwn2sahB5Ogq6mYV9TjDs4eiiiqlRvm3JX-YpuRLWlTNjA42jZH_JOrCh7q1v1Tj2oxU45HtrQt5bVgAGxc8OY3T8xLbJ4Q9S1bdqxDeZhkAEwMrsWj4-0qu6poiuhz9cdZ9EZuteIHA3QqA4JsB5APQZFfd1ZGI9FhjHd70u-c4vWu5rfdzUHOYnBTzUPbBiEveAY9zUPMfsQo-4_Yw7EgP4BcwIEBx0BwQCLcjwao4-ofzTK7WZb7A0ZNICDQAjweQMCBzzpLTEQDjCJxuxj-r-re5jznER59HnwQxI5SvWUR90FMgtx1AH_J2S62UiTVJXYZMXbV1FsW2OedmpWcrES6lFuhVuLxmzjU-eXpI4DeH5N2XeheHos2nZ4WHp4fsBS0x_p9oeWRqSV0YJubMrod9CBoZM9_1G6p23yuTW6AawZ6JuRRQsVCq1DYdyDqpdLZAEW4Z8ClTix8z8H0vWszy47QcfBcitDL3mA3ezBYoWj0xjlrg_2N9Ifdma7s5n7rJdMIBzW8XT25WFrqk5zhDJRL-HPc1Exl3FFc2pok0sjcWkREZdWcZdhYnQpYfNtp0d0KWHoZsul3HcIrSkhuczbprxtytsmFdVxuhEbkib9uhNqZdZu-GnU7HiNTd8z_Prbwjr2Vhm9q-SLeBL5TJlHoz08O3j7Ja-aFUsWYulyZVcynrjc0ikA02jPlv2k-AQFSGADOOxzoJujEcQBRKMcaETPSlXtNu3EcLmqeLaZXEEtPt-UNEMz5KDnzO9aEEHGQGuBDUlfhKrRbmzAtfN6FnRztzAD0xyPWvBIdSWS5bOHomVXBcybtedRS2WWhjr-5rSohL27_C63bR50XXIpjlqd2q3sFvWIDIPeTcmIIAzzaEzlZPm80KUyQvGWfy5OvQq2MyIZzcvsbAx51IJ6KqPVERM8CGs39SKIB1kn9TrS8cRjn9NvyOkQupUbg55-3QSLCJKxYNTt7wD4aegQGoyrqJsrER4iQtg4dJutLIS-VZWhiokPoNfG2oSZ95E9HaE1AATWy7hvQTdbInkkAjZK0EbXwzAvJaON3rO626Didbk79nA77wFwhVtPyW5WBADEsJNiMwbTjTvfjhK9evHwPNGavj2J3MMzVqrK-GxNte-hZCQC58xFYPs0-NgGQcpFtlul2U4W3EOLzGqxqJVDoFl97qlUCef6BCD7gfJ9Mdva0NZ5sYsqfTy6qQ8AgMTTU6e1YM_gc1kWNSq_9bKYeJrVa3RZFrPmfLjbR0zDtqzjWr7ss1jk9OiXoai3VwEgzPAAp1qHSeV2_6x_rHvs38w_LKJHyvnOkx4K9zmch0gK6styKzQ1pXb7jPFY4kZR3vp5DI-4HqZnMQ7jwRIQ9fY_rMXg1GKpzJFNebO6pNoR1DZ6KDq0Lze0KH5zh0d1LTVz7G3MT9xBVA3CTf0Ao0WRUfY9zZXt_CfDe-OhyI7g9oTxPIRTGMUkQC4mbammmz7QLZbU-Mvnu3Y5pcXNq9G0mqxt-RYOM6i70hMa0ikd28n407E8k0hxdI75eyqNgVCTqg9CL3ewIISj617N1GahmcFZudlQxbvr3wGVo_BYmaZfmsIWgVrNk2R2abRUK_fITXMS2n8yo5VktrSRVrFZTbqhjrYlNZpKm3rV_cZk0qKwK0Wpjzravo7ImQtvyR7qT4aFeApP3fVLmTXTnrj9Teyq9YN7emmTdQ86XftfSsnHJ71rbbR6Zxr_z72j7h0MS5Ds06GPxp3eXh6cIsLG9r7OcOeZ3Av_WKjoniUBDBjK8rF46Y7AngQrX4R-26_6zR7RkuZifNcjntavsCxsZfyu_QMZVmumzVMHVGhnGxqs_rpHW3a-he-UAefNl-FcOxL1IYng7mCnOk0mPzGd_BFApvUO7o3W9-15VpMu1irKUi2oLATvO4LR_N1wNcCSbhpN4pwFwWi1coKgy9lpr6JqYR1BEhE8tAVwhLE1T6rV3j1dM3mdlN-VqwdVvB1X4XvLj3Rry504HEyce-ePFoGpGK12zkHglzKrfma-69NvzAYQGEgzwuATEKBgeNu0d5BIKKQCnUWC-dH1SS1HxyrXWn8aDXOghec8BOozsdMCxCXefTf303FAQD6wo3FUMTIPz-t3QJrysVMECfrpQomAqTvY7enZO4wEWMSd7YNGQ3qsIR3XsK4j6-ePdXA7UbC3udI9M4xwTkRGmM_fCu6FoDK0Oc0PAQDHL0xc8CvMYxzTC3EFpyQEAYohvlhfBVHAszDPBOAZmEKBUB7nOIpoTLhgQX4hrxBAASDYMgAGeDKlLBKCTMMAQyhg5BEgNlQWE_e6SalXF7KqduIK4giQ8MK99lG5d-0RyuptSsvO9hAeecH8Ql-5k_tst6o8AgpZmeogzkhTuJf122eCuX_-ewT-t1-fbpLZ1-T67sYX9Tzg7x6ZX-x0cbU2Zus2g9HCQ4uVNOtdNmHl5uitgtN3DZzRlYcWjd0vV-ifAQAA__9X6cQY">