Interlocked Or resources int64 test failing: `Failed to store to aggregate`
- Dominant language
- LLVM
- Stars
- 40.5k
- Forks
- 18.7k
- PR merge metrics
- PR metrics pending
Description
The below error was seen on clang-vulkan
Full test output:
```
******************** TEST 'OffloadTest-clang-vk :: Feature/HLSLLib/InterlockedOr.resources.int64.test' FAILED ********************
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 177
c:\actions-runner\_work\offload-test-suite\offload-test-suite\install\bin\split-file.exe C:\actions-runner\_work\offload-test-suite\offload-test-suite\install\share\hlsl-test-suite\test\Feature\HLSLLib\InterlockedOr.resources.int64.test C:\actions-runner\_work\offload-test-suite\offload-test-suite\install\share\hlsl-test-suite\run\test\clang-vk\Feature\HLSLLib\Output\InterlockedOr.resources.int64.test.tmp
# executed command: 'c:\actions-runner\_work\offload-test-suite\offload-test-suite\install\bin\split-file.exe' 'C:\actions-runner\_work\offload-test-suite\offload-test-suite\install\share\hlsl-test-suite\test\Feature\HLSLLib\InterlockedOr.resources.int64.test' 'C:\actions-runner\_work\offload-test-suite\offload-test-suite\install\share\hlsl-test-suite\run\test\clang-vk\Feature\HLSLLib\Output\InterlockedOr.resources.int64.test.tmp'
# RUN: at line 178
c:\actions-runner\_work\offload-test-suite\offload-test-suite\install\bin\clang-dxc.exe -spirv -fspv-target-env=vulkan1.3 -fspv-extension=DXC --dxv-path=C:\actions-runner\_work\offload-test-suite\offload-test-suite\dxc-dist\bin -HV 202x -T cs_6_6 -Fo C:\actions-runner\_work\offload-test-suite\offload-test-suite\install\share\hlsl-test-suite\run\test\clang-vk\Feature\HLSLLib\Output\InterlockedOr.resources.int64.test.tmp.o C:\actions-runner\_work\offload-test-suite\offload-test-suite\install\share\hlsl-test-suite\run\test\clang-vk\Feature\HLSLLib\Output\InterlockedOr.resources.int64.test.tmp/source.hlsl
# executed command: 'c:\actions-runner\_work\offload-test-suite\offload-test-suite\install\bin\clang-dxc.exe' -spirv -fspv-target-env=vulkan1.3 -fspv-extension=DXC '--dxv-path=C:\actions-runner\_work\offload-test-suite\offload-test-suite\dxc-dist\bin' -HV 202x -T cs_6_6 -Fo 'C:\actions-runner\_work\offload-test-suite\offload-test-suite\install\share\hlsl-test-suite\run\test\clang-vk\Feature\HLSLLib\Output\InterlockedOr.resources.int64.test.tmp.o' 'C:\actions-runner\_work\offload-test-suite\offload-test-suite\install\share\hlsl-test-suite\run\test\clang-vk\Feature\HLSLLib\Output\InterlockedOr.resources.int64.test.tmp/source.hlsl'
# .---command stderr------------
# | Assertion failed: ResultOpt && "Failed to store to aggregate: " "Could not find compatible memory layout.", file C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\llvm\lib\Target\SPIRV\SPIRVLegalizePointerCast.cpp, line 520
# | PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace and dumped files.
# | Stack dump:
# | 0. Program arguments: C:\\actions-runner\\_work\\offload-test-suite\\offload-test-suite\\install\\bin\\clang-dxc.exe -cc1 -triple spirv1.6-unknown-vulkan1.3-compute -O3 -Wconversion -Wvector-conversion -Wmatrix-conversion -Wspir-compat -emit-obj -dumpdir a- -disable-free -clear-ast-before-backend -main-file-name source.hlsl -mrelocation-model static -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -debugger-tuning=gdb -fdebug-compilation-dir=C:\\actions-runner\\_work\\offload-test-suite\\offload-test-suite\\install\\share\\hlsl-test-suite\\run\\test\\clang-vk\\Feature\\HLSLLib -fcoverage-compilation-dir=C:\\actions-runner\\_work\\offload-test-suite\\offload-test-suite\\install\\share\\hlsl-test-suite\\run\\test\\clang-vk\\Feature\\HLSLLib -resource-dir C:\\actions-runner\\_work\\offload-test-suite\\offload-test-suite\\install\\lib\\clang\\24 -std=hlsl202x -ferror-limit 19 -O3 -finclude-default-header -fgnuc-version=4.2.1 -fskip-odr-check-in-gmf -vectorize-loops -vectorize-slp -mllvm -spirv-ext=+SPV_KHR_16bit_storage,+SPV_KHR_device_group,+SPV_KHR_fragment_shading_rate,+SPV_KHR_multiview,+SPV_KHR_post_depth_coverage,+SPV_KHR_non_semantic_info,+SPV_KHR_shader_draw_parameters,+SPV_KHR_ray_tracing,+SPV_KHR_shader_clock,+SPV_EXT_demote_to_helper_invocation,+SPV_EXT_descriptor_indexing,+SPV_EXT_fragment_fully_covered,+SPV_EXT_fragment_invocation_density,+SPV_EXT_fragment_shader_interlock,+SPV_EXT_mesh_shader,+SPV_EXT_shader_stencil_export,+SPV_EXT_shader_viewport_index_layer,+SPV_GOOGLE_hlsl_functionality1,+SPV_GOOGLE_user_type,+SPV_KHR_ray_query,+SPV_EXT_shader_image_int64,+SPV_KHR_fragment_shader_barycentric,+SPV_KHR_physical_storage_buffer,+SPV_KHR_vulkan_memory_model,+SPV_KHR_maximal_reconvergence,+SPV_KHR_float_controls,+SPV_NV_shader_subgroup_partitioned -o C:\\actions-runner\\_work\\offload-test-suite\\offload-test-suite\\install\\share\\hlsl-test-suite\\run\\test\\clang-vk\\Feature\\HLSLLib\\Output\\InterlockedOr.resources.int64.test.tmp.o -x hlsl C:\\actions-runner\\_work\\offload-test-suite\\offload-test-suite\\install\\share\\hlsl-test-suite\\run\\test\\clang-vk\\Feature\\HLSLLib\\Output\\InterlockedOr.resources.int64.test.tmp/source.hlsl
# | 1. parser at end of file
# | 2. Code generation
# | 3. Running pass 'Function Pass Manager' on module 'C:\actions-runner\_work\offload-test-suite\offload-test-suite\install\share\hlsl-test-suite\run\test\clang-vk\Feature\HLSLLib\Output\InterlockedOr.resources.int64.test.tmp/source.hlsl'.
# | 4. Running pass 'SPIRV legalize pointer cast pass' on function '@main'
# | Exception Code: 0xC000001D
# | #0 0x00007ff77e5ac656 llvm::SmallVectorTemplateBase::grow(unsigned __int64) C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\llvm\include\llvm\ADT\SmallVector.h:533:0
# | llvm/offload-test-suite#1 0x00007ffbb2bd2139 (C:\WINDOWS\System32\ucrtbase.dll+0xc2139)
# | llvm/offload-test-suite#2 0x00007ffbb2bb5261 (C:\WINDOWS\System32\ucrtbase.dll+0xa5261)
# | llvm/offload-test-suite#3 0x00007ffbb2bd3136 (C:\WINDOWS\System32\ucrtbase.dll+0xc3136)
# | llvm/offload-test-suite#4 0x00007ffbb2bd3311 (C:\WINDOWS\System32\ucrtbase.dll+0xc3311)
# | llvm/offload-test-suite#5 0x00007ff77e986176 std::_Uninitialized_chunked_merge_unchecked2 C:\Program Files\Microsoft Visual Studio\18\Community\VC\Tools\MSVC\14.51.36231\include\algorithm:9387:0
# | llvm/offload-test-suite#6 0x00007ff77e9843af std::default_delete::default_delete(struct std::default_delete const &) C:\Program Files\Microsoft Visual Studio\18\Community\VC\Tools\MSVC\14.51.36231\include\memory:3334:0
# | llvm/offload-test-suite#7 0x00007ff77e988c24 std::_Copy_backward_memmove(class llvm::TrackingStatistic **, class llvm::TrackingStatistic **, class llvm::TrackingStatistic **) C:\Program Files\Microsoft Visual Studio\18\Community\VC\Tools\MSVC\14.51.36231\include\xutility:5367:0
# | llvm/offload-test-suite#8 0x00007ff77e325e4a `dynamic initializer for 'VecFuncs_MASSV' C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\llvm\lib\Analysis\TargetLibraryInfo.cpp:0:0
# | llvm/offload-test-suite#9 0x00007ff77e32d00d `dynamic initializer for 'VecFuncs_SVML' C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\llvm\lib\Analysis\TargetLibraryInfo.cpp:0:0
# | llvm/offload-test-suite#10 0x00007ff77e3269dc `dynamic initializer for 'VecFuncs_MASSV' C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\llvm\lib\Analysis\TargetLibraryInfo.cpp:0:0
# | llvm/offload-test-suite#11 0x00007ff77e32656e `dynamic initializer for 'VecFuncs_MASSV' C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\llvm\lib\Analysis\TargetLibraryInfo.cpp:0:0
# | llvm/offload-test-suite#12 0x00007ff77f7c4319 `anonymous namespace'::X86SpeculativeLoadHardeningImpl::tracePredStateThroughIndirectBranches C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\llvm\lib\Target\X86\X86SpeculativeLoadHardening.cpp:1139:0
# | llvm/offload-test-suite#13 0x00007ff77f7c412f `anonymous namespace'::X86SpeculativeLoadHardeningImpl::tracePredStateThroughIndirectBranches C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\llvm\lib\Target\X86\X86SpeculativeLoadHardening.cpp:1127:0
# | llvm/offload-test-suite#14 0x00007ff77f7b17ca llvm::DenseMapBase,std::unique_ptr<(anonymous namespace)::InstrConverterBase,std::default_delete<(anonymous namespace)::InstrConverterBase> >,llvm::DenseMapInfo,void>,llvm::detail::DenseMapPair,std::unique_ptr<(anonymous namespace)::InstrConverterBase,std::default_delete<(anonymous namespace)::InstrConverterBase> > > >,std::pair,std::unique_ptr<(anonymous namespace)::InstrConverterBase,std::default_delete<(anonymous namespace)::InstrConverterBase> >,llvm::DenseMapInfo,void>,llvm::detail::DenseMapPair,std::unique_ptr<(anonymous namespace)::InstrConverterBase,std::default_delete<(anonymous namespace)::InstrConverterBase> > > >::lookupOrInsertIntoBucket > C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\llvm\include\llvm\ADT\DenseMap.h:631:0
# | llvm/offload-test-suite#15 0x00007ff77f7b0497 `anonymous namespace'::X86DomainReassignmentImpl::buildClosure C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\llvm\lib\Target\X86\X86DomainReassignment.cpp:549:0
# | llvm/offload-test-suite#16 0x00007ff77fe2e38e llvm::TargetSchedModel::computeOperandLatency(class llvm::MachineInstr const *, unsigned int, class llvm::MachineInstr const *, unsigned int) const C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\llvm\lib\CodeGen\TargetSchedule.cpp:234:0
# | llvm/offload-test-suite#17 0x00007ff782351627 `anonymous namespace'::BitcodeReader::parseUseLists C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\llvm\lib\Bitcode\Reader\BitcodeReader.cpp:3980:0
# | llvm/offload-test-suite#18 0x00007ff77fde5cf6 llvm::DILocation::getMergedLocation(class llvm::DILocation *, class llvm::DILocation *) C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\llvm\lib\IR\DebugInfoMetadata.cpp:282:0
# | llvm/offload-test-suite#19 0x00007ff77fd7dea1 `protected: void __cdecl llvm::DenseMapBase, struct llvm::detail::DenseSetEmpty, struct llvm::DenseMapInfo, void>, class llvm::detail::DenseSetPair>>, class llvm::AssertingVH, struct llvm::detail::DenseSetEmpty, struct llvm::DenseMapInfo, void>, class llvm::detail::DenseSetPair>>::moveFrom(class llvm::DenseMap, struct llvm::detail::DenseSetEmpty, struct llvm::DenseMapInfo, void>, class llvm::detail::DenseSetPair>> &)'::`1'::::operator()(unsigned int) const C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\llvm\include\llvm\ADT\DenseMap.h:530:0
# | llvm/offload-test-suite#20 0x00007ff77e71cc02 llvm::DenseMapBase, class llvm::DenseSet>, 0>, class llvm::BlockFrequency>, struct llvm::DenseMapInfo, struct llvm::detail::DenseMapPair, class llvm::DenseSet>, 0>, class llvm::BlockFrequency>>>, class llvm::BasicBlock *, struct std::pair, class llvm::DenseSet>, 0>, class llvm::BlockFrequency>, struct llvm::DenseMapInfo, struct llvm::detail::DenseMapPair, class llvm::DenseSet>, 0>, class llvm::BlockFrequency>>>::find(class llvm::BasicBlock const *) C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\llvm\include\llvm\ADT\DenseMap.h:223:0
# | llvm/offload-test-suite#21 0x00007ff77e7ca169 llvm::iterator_range *>::iterator_range *>(class llvm::detail::DenseSetPair *, class llvm::detail::DenseSetPair *) C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\llvm\include\llvm\ADT\iterator_range.h:52:0
# | llvm/offload-test-suite#22 0x00007ff77e0875c5 std::_Unfancy(struct std::_Container_proxy *) C:\Program Files\Microsoft Visual Studio\18\Community\VC\Tools\MSVC\14.51.36231\include\xmemory:69:0
# | llvm/offload-test-suite#23 0x00007ff77e083310 checkEnvVar,std::allocator > > C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\clang\tools\driver\driver.cpp:137:0
# | llvm/offload-test-suite#24 0x00007ff77e08248d clang_main(int, char **, struct llvm::ToolContext const &) C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\clang\tools\driver\driver.cpp:503:0
# | llvm/offload-test-suite#25 0x00007ff77e097cbc llvm::SmallVectorTemplateCommon>, void>::isReferenceToStorage(void const *) const C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\llvm\include\llvm\ADT\SmallVector.h:164:0
# | llvm/offload-test-suite#26 0x00007ff7848e3064 `anonymous namespace'::InclusionRewriter::Process C:\actions-runner\_work\offload-test-suite\offload-test-suite\llvm-project\clang\lib\Frontend\Rewrite\InclusionRewriter.cpp:527:0
# | llvm/offload-test-suite#27 0x00007ffbb46ae957 (C:\WINDOWS\System32\KERNEL32.DLL+0x2e957)
# | llvm/offload-test-suite#28 0x00007ffbb556ad6c (C:\WINDOWS\SYSTEM32\ntdll.dll+0xaad6c)
# | clang-dxc: error: clang frontend command failed due to signal (use -v to see invocation)
# | clang version 24.0.0git (https://github.com/llvm/llvm-project 33c7ef4a631db53440f569f048660474e0a46bd6)
# | Target: spirv1.6-unknown-vulkan1.3-compute
# | Thread model: posix
# | InstalledDir: C:\actions-runner\_work\offload-test-suite\offload-test-suite\install\bin
# | Build config: +assertions
# | clang-dxc: note: diagnostic msg:
# | ********************
# |
# | PLEASE ATTACH THE FOLLOWING CRASH REPRODUCER FILES TO THE BUG REPORT:
# | clang-dxc: note: diagnostic msg: C:\WINDOWS\SERVIC~1\NETWOR~1\AppData\Local\Temp\lit-tmp-30lroswx\source-14a8a9.hlsl
# | clang-dxc: note: diagnostic msg: C:\WINDOWS\SERVIC~1\NETWOR~1\AppData\Local\Temp\lit-tmp-30lroswx\source-14a8a9.sh
# | clang-dxc: note: diagnostic msg:
# |
# | ********************
# `-----------------------------
# error: command failed with exit status: 1
--
********************
```
Contributor guide
Research direction
Reproduce Feature/HLSLLib/InterlockedOr.resources.int64.test in the clang-vk configuration using the reported clang-dxc command. Then inspect llvm/lib/Target/SPIRV/SPIRVLegalizePointerCast.cpp around line 520 and the SPIRV legalize pointer cast pass. Done means the test compiles without the assertion and produces its object output.
Written by the indexing model from the issue text.
Assessment
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 38/100