Issue 185144
Summary [HLSL][SPIRV] Assert being triggered during CBuffer Array Dynamic Index Lowering
Labels
Assignees
Reporter joaosaffran
    HLSL Offload Tests found bug on test Feature/CBuffer/array-dynamic-index.test. After investigation we belived that such was caused by: https://github.com/llvm/llvm-project/pull/180745. 

Build where the issue was found: https://github.com/llvm/offload-test-suite/actions/runs/22771619489/job/66053904612

Stack trace:

```

# .---command stderr------------
# | Unimplemented implicit down-cast from load.
# | UNREACHABLE executed at E:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\llvm\lib\Target\SPIRV\SPIRVLegalizePointerCast.cpp:275!
# | PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
# | Stack dump:
# | 0.	Program arguments: e:\\actions-runner\\_work\\offload-test-suite\\offload-test-suite\\llvm-project\\build\\bin\\clang-dxc.exe -spirv -fspv-target-env=vulkan1.3 -fspv-extension=DXC --dxv-path=E:/actions-runner/_work/offload-test-suite/offload-test-suite/DXC/build/bin -fvk-use-dx-layout -T cs_6_5 -Fo E:\\actions-runner\\_work\\offload-test-suite\\offload-test-suite\\llvm-project\\build\\tools\\OffloadTest\\test\\clang-vk\\Feature\\CBuffer\\Output\\array-dynamic-index.test.tmp.o E:\\actions-runner\\_work\\offload-test-suite\\offload-test-suite\\llvm-project\\build\\tools\\OffloadTest\\test\\clang-vk\\Feature\\CBuffer\\Output\\array-dynamic-index.test.tmp/source.hlsl
# | 1.	<eof> parser at end of file
# | 2.	Code generation
# | 3.	Running pass 'Function Pass Manager' on module 'E:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\tools\OffloadTest\test\clang-vk\Feature\CBuffer\Output\array-dynamic-index.test.tmp/source.hlsl'.
# | 4.	Running pass 'SPIRV legalize bitcast pass' on function '@main'
# | Exception Code: 0xC000001D
# |  #0 0x00007ff7ac213f26 HandleAbort E:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\llvm\lib\Support\Windows\Signals.inc:371:0
# |  #1 0x00007ffaeeb31989 (C:\WINDOWS\System32\ucrtbase.dll+0xc1989)
# | #2 0x00007ffaeeb14ab1 (C:\WINDOWS\System32\ucrtbase.dll+0xa4ab1)
# |  #3 0x00007ff7ac25e705 llvm::llvm_unreachable_internal(char const *, char const *, unsigned int) E:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\llvm\lib\Support\ErrorHandling.cpp:244:0
# |  #4 0x00007ff7ac5d1983 `anonymous namespace'::SPIRVLegalizePointerCast::transformLoad E:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\llvm\lib\Target\SPIRV\SPIRVLegalizePointerCast.cpp:275:0
# |  #5 0x00007ff7ac5d1983 `anonymous namespace'::SPIRVLegalizePointerCast::legalizePointerCast E:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\llvm\lib\Target\SPIRV\SPIRVLegalizePointerCast.cpp:435:0
# |  #6 0x00007ff7ac5d1983 `anonymous namespace'::SPIRVLegalizePointerCast::runOnFunction E:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\llvm\lib\Target\SPIRV\SPIRVLegalizePointerCast.cpp:491:0
# |  #7 0x00007ff7abf8a222 llvm::FPPassManager::runOnFunction(class llvm::Function &) E:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\llvm\lib\IR\LegacyPassManager.cpp:1398:0
# |  #8 0x00007ff7abf917dd llvm::FPPassManager::runOnModule(class llvm::Module &) E:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\llvm\lib\IR\LegacyPassManager.cpp:1444:0
# |  #9 0x00007ff7abf8aa9f `anonymous namespace'::MPPassManager::runOnModule E:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\llvm\lib\IR\LegacyPassManager.cpp:1513:0
# | #10 0x00007ff7abf8a6ae llvm::legacy::PassManagerImpl::run(class llvm::Module &) E:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\llvm\lib\IR\LegacyPassManager.cpp:531:0
# | #11 0x00007ff7ad39754f `anonymous namespace'::EmitAssemblyHelper::RunCodegenPipeline E:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\clang\lib\CodeGen\BackendUtil.cpp:1278:0
# | #12 0x00007ff7ad38e2d8 std::unique_ptr<llvm::ToolOutputFile,std::default_delete<llvm::ToolOutputFile> >::operator bool C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.44.35207\include\memory:3461:0
# | #13 0x00007ff7ad38e2d8 `anonymous namespace'::EmitAssemblyHelper::emitAssembly E:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\clang\lib\CodeGen\BackendUtil.cpp:1303:0
# | #14 0x00007ff7ad38cf5c std::unique_ptr<llvm::TargetMachine,std::default_delete<llvm::TargetMachine> >::operator bool C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.44.35207\include\memory:3461:0
# | #15 0x00007ff7ad38cf5c clang::emitBackendOutput(class clang::CompilerInstance &, class clang::CodeGenOptions &, class llvm::StringRef, class llvm::Module *, enum clang::BackendAction, class llvm::IntrusiveRefCntPtr<class llvm::vfs::FileSystem>, class std::unique_ptr<class llvm::raw_pwrite_stream, struct std::default_delete<class llvm::raw_pwrite_stream>>, class clang::BackendConsumer *) E:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\clang\lib\CodeGen\BackendUtil.cpp:1479:0
# | #16 0x00007ff7ad997dee std::unique_ptr<llvm::ToolOutputFile,std::default_delete<llvm::ToolOutputFile> >::operator bool C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.44.35207\include\memory:3461:0
# | #17 0x00007ff7ad997dee llvm::LLVMRemarkFileHandle::operator bool E:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\llvm\include\llvm\IR\LLVMRemarkStreamer.h:124:0
# | #18 0x00007ff7ad997dee clang::BackendConsumer::HandleTranslationUnit(class clang::ASTContext &) E:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\clang\lib\CodeGen\CodeGenAction.cpp:316:0
# | #19 0x00007ff7afbfd697 clang::ParseAST(class clang::Sema &, bool, bool) E:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\clang\lib\Parse\ParseAST.cpp:183:0
# | #20 0x00007ff7ad9518b6 clang::HLSLFrontendAction::ExecuteAction(void) E:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\clang\lib\Frontend\FrontendActions.cpp:1330:0
# | #21 0x00007ff7ad8e1571 clang::FrontendAction::Execute(void) E:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\clang\lib\Frontend\FrontendAction.cpp:1327:0
# | #22 0x00007ff7ac3794eb llvm::Error::getPtr E:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\llvm\include\llvm\Support\Error.h:277:0
# | #23 0x00007ff7ac3794eb llvm::Error::operator bool E:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\llvm\include\llvm\Support\Error.h:241:0
# | #24 0x00007ff7ac3794eb clang::CompilerInstance::ExecuteAction(class clang::FrontendAction &) E:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\clang\lib\Frontend\CompilerInstance.cpp:1002:0
# | #25 0x00007ff7ac4337d9 clang::ExecuteCompilerInvocation(class clang::CompilerInstance *) E:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\clang\lib\FrontendTool\ExecuteCompilerInvocation.cpp:312:0
# | #26 0x00007ff7abcf7629 cc1_main(class llvm::ArrayRef<char const *>, char const *, void *) E:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\clang\tools\driver\cc1_main.cpp:302:0
# | #27 0x00007ff7abcf32d0 ExecuteCC1Tool E:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\clang\tools\driver\driver.cpp:229:0
# | #28 0x00007ff7abcf6d98 clang_main::<lambda_0>::operator() E:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\clang\tools\driver\driver.cpp:379:0
# | #29 0x00007ff7abcf6d98 llvm::function_ref<int (llvm::SmallVectorImpl<const char *> &)>::callback_fn<`lambda at E:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\clang\tools\driver\driver.cpp:377:32'> E:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\llvm\include\llvm\ADT\STLFunctionalExtras.h:46:0
# | #30 0x00007ff7ad6a09ed clang::driver::CC1Command::Execute::<lambda_1>::operator() E:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\clang\lib\Driver\Job.cpp:442:0
# | #31 0x00007ff7ad6a09ed llvm::function_ref<void ()>::callback_fn<`lambda at E:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\clang\lib\Driver\Job.cpp:442:22'> E:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\llvm\include\llvm\ADT\STLFunctionalExtras.h:46:0
# | #32 0x00007ff7ac20e625 llvm::CrashRecoveryContext::RunSafely(class llvm::function_ref<(void)>) E:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\llvm\lib\Support\CrashRecoveryContext.cpp:237:0
# | #33 0x00007ff7ad69fcdb clang::driver::CC1Command::Execute(class llvm::ArrayRef<class std::optional<class llvm::StringRef>>, class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char>> *, bool *) const E:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\clang\lib\Driver\Job.cpp:442:0
# | #34 0x00007ff7ac35d7c2 clang::driver::Compilation::ExecuteCommand(class clang::driver::Command const &, class clang::driver::Command const *&, bool) const E:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\clang\lib\Driver\Compilation.cpp:196:0
# | #35 0x00007ff7ac35da4d clang::driver::Compilation::ExecuteJobs(class clang::driver::JobList const &, class llvm::SmallVectorImpl<struct std::pair<int, class clang::driver::Command const *>> &, bool) const E:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\clang\lib\Driver\Compilation.cpp:246:0
# | #36 0x00007ff7ac336adc llvm::SmallVectorBase<unsigned int>::empty E:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\llvm\include\llvm\ADT\SmallVector.h:83:0
# | #37 0x00007ff7ac336adc clang::driver::Driver::ExecuteCompilation(class clang::driver::Compilation &, class llvm::SmallVectorImpl<struct std::pair<int, class clang::driver::Command const *>> &) E:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\clang\lib\Driver\Driver.cpp:2330:0
# | #38 0x00007ff7abcf26bc clang_main(int, char **, struct llvm::ToolContext const &) E:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\clang\tools\driver\driver.cpp:419:0
# | #39 0x00007ff7abd0802c main E:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\tools\clang\tools\driver\clang-driver.cpp:17:0
# | #40 0x00007ff7b22c4034 invoke_main D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:78:0
# | #41 0x00007ff7b22c4034 __scrt_common_main_seh D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288:0
# | #42 0x00007ffaefdde8d7 (C:\WINDOWS\System32\KERNEL32.DLL+0x2e8d7)
# | #43 0x00007ffaf18cc53c (C:\WINDOWS\SYSTEM32\ntdll.dll+0x8c53c)
# | clang-dxc: error: clang frontend command failed due to signal (use -v to see invocation)
# | clang version 23.0.0git (https://github.com/llvm/llvm-project ad6d87da32f9d124ead257af45310348e092767c)
# | Target: spirv1.6-unknown-vulkan1.3-compute
# | Thread model: posix
# | InstalledDir: E:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\build\bin
# | Build config: +assertions
# | clang-dxc: note: diagnostic msg: 
# | ********************
# | 
# | PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
# | Preprocessed source(s) and associated run script(s) are located at:
# | clang-dxc: note: diagnostic msg: C:\WINDOWS\SERVIC~1\NETWOR~1\AppData\Local\Temp\lit-tmp-h4x2wxty\source-5bf42e.hlsl
# | clang-dxc: note: diagnostic msg: C:\WINDOWS\SERVIC~1\NETWOR~1\AppData\Local\Temp\lit-tmp-h4x2wxty\source-5bf42e.sh
# | clang-dxc: note: diagnostic msg: 
# | 
# | ********************
# `-----------------------------
# error: command failed with exit status: 1
``` 
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to