lavapipe: new CTS crash (llvm wtf)
Ran CTS the other day and got a ton of these LLVM crashes:
$ LD_PRELOAD=/usr/lib64/libasan.so.8 ASAN_OPTIONS=detect_leaks=0,alloc_dealloc_mismatch=0,halt_on_error=0 ./deqp-vk -n dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_double_constant
Writing test log into TestResults.qpa
dEQP Core git-7bbdc916a41493523c9f28d8bce725ca9a2fdc6b (0x7bbdc916) starting..
target implementation = 'Surfaceless'
Test case 'dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_double_constant'..
AddressSanitizer:DEADLYSIGNAL
=================================================================
==1044624==ERROR: AddressSanitizer: SEGV on unknown address (pc 0x7fffef82ca80 bp 0x0003ffffffe0 sp 0x7fffeadfad40 T1)
==1044624==The signal is caused by a READ memory access.
==1044624==Hint: this fault was caused by a dereference of a high value address (see register values below). Disassemble the provided pc to learn which register was used.
#0 0x7fffef82ca80 in llvm::DAGTypeLegalizer::SplitVecRes_VECTOR_SHUFFLE(llvm::ShuffleVectorSDNode*, llvm::SDValue&, llvm::SDValue&)::$_1::operator()(llvm::SmallVectorImpl<int>&) const (/lib64/libLLVM-15.so+0x142ca80)
#1 0x7fffef8291f5 in llvm::DAGTypeLegalizer::SplitVecRes_VECTOR_SHUFFLE(llvm::ShuffleVectorSDNode*, llvm::SDValue&, llvm::SDValue&) (/lib64/libLLVM-15.so+0x14291f5)
#2 0x7fffef822412 in llvm::DAGTypeLegalizer::SplitVectorResult(llvm::SDNode*, unsigned int) (/lib64/libLLVM-15.so+0x1422412)
#3 0x7fffef809135 in llvm::SelectionDAG::LegalizeTypes() (/lib64/libLLVM-15.so+0x1409135)
#4 0x7fffef918c31 in llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/lib64/libLLVM-15.so+0x1518c31)
#5 0x7fffef9181df in llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/lib64/libLLVM-15.so+0x15181df)
#6 0x7fffef915622 in llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/lib64/libLLVM-15.so+0x1515622)
#7 0x7ffff1d776fb in (anonymous namespace)::X86DAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) [clone .llvm.8434510325948528213] (/lib64/libLLVM-15.so+0x39776fb)
#8 0x7fffef43b612 in llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/lib64/libLLVM-15.so+0x103b612)
#9 0x7fffef1bb9c0 in llvm::FPPassManager::runOnFunction(llvm::Function&) (/lib64/libLLVM-15.so+0xdbb9c0)
#10 0x7fffef1c2822 in llvm::FPPassManager::runOnModule(llvm::Module&) (/lib64/libLLVM-15.so+0xdc2822)
#11 0x7fffef1bc147 in llvm::legacy::PassManagerImpl::run(llvm::Module&) (/lib64/libLLVM-15.so+0xdbc147)
#12 0x7ffff0d2ed92 in llvm::MCJIT::emitObject(llvm::Module*) (/lib64/libLLVM-15.so+0x292ed92)
#13 0x7ffff0d2efbc in llvm::MCJIT::generateCodeForModule(llvm::Module*) (/lib64/libLLVM-15.so+0x292efbc)
#14 0x7ffff0d2fc1d in llvm::MCJIT::finalizeObject() (/lib64/libLLVM-15.so+0x292fc1d)
#15 0x7ffff0cce066 in LLVMGetPointerToGlobal (/lib64/libLLVM-15.so+0x28ce066)
#16 0x7fffed89f3dc in gallivm_jit_function ../src/gallium/auxiliary/gallivm/lp_bld_init.c:722
#17 0x7fffed96005b in generate_variant ../src/gallium/drivers/llvmpipe/lp_state_cs.c:834
#18 0x7fffed9603d6 in llvmpipe_update_cs ../src/gallium/drivers/llvmpipe/lp_state_cs.c:928
#19 0x7fffed961931 in llvmpipe_cs_update_derived ../src/gallium/drivers/llvmpipe/lp_state_cs.c:1334
#20 0x7fffed961c55 in llvmpipe_launch_grid ../src/gallium/drivers/llvmpipe/lp_state_cs.c:1416
#21 0x7fffed482a34 in handle_dispatch ../src/gallium/frontends/lavapipe/lvp_execute.c:2660
#22 0x7fffed489050 in lvp_execute_cmd_buffer ../src/gallium/frontends/lavapipe/lvp_execute.c:4076
#23 0x7fffed48997d in lvp_execute_cmds ../src/gallium/frontends/lavapipe/lvp_execute.c:4340
#24 0x7fffed470ce5 in lvp_queue_submit ../src/gallium/frontends/lavapipe/lvp_device.c:1521
#25 0x7fffed552a3a in vk_queue_submit_final ../src/vulkan/runtime/vk_queue.c:377
#26 0x7fffed552eb8 in vk_queue_submit_thread_func ../src/vulkan/runtime/vk_queue.c:490
#27 0x7fffed5333f1 in impl_thrd_routine ../src/c11/impl/threads_posix.c:67
#28 0x7ffff72ae14c in start_thread (/lib64/libc.so.6+0x8b14c)
#29 0x7ffff732f9ff in clone3 (/lib64/libc.so.6+0x10c9ff)
affects:
dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_double_constant,Crash
dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_double_constant_requiredsubgroupsize,Crash
dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_dvec2_constant,Crash
dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_dvec2_constant_requiredsubgroupsize,Crash
dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_dvec3_constant,Crash
dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_dvec3_constant_requiredsubgroupsize,Crash
dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_dvec4_constant,Crash
dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_dvec4_constant_requiredsubgroupsize,Crash
dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i64vec2_constant,Crash
dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i64vec2_constant_requiredsubgroupsize,Crash
dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i64vec3_constant,Crash
dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i64vec3_constant_requiredsubgroupsize,Crash
dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i64vec4_constant,Crash
dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_i64vec4_constant_requiredsubgroupsize,Crash
dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_int64_t_constant,Crash
dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_int64_t_constant_requiredsubgroupsize,Crash
dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u64vec2_constant,Crash
dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u64vec2_constant_requiredsubgroupsize,Crash
dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u64vec3_constant,Crash
dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u64vec3_constant_requiredsubgroupsize,Crash
dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u64vec4_constant,Crash
dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_u64vec4_constant_requiredsubgroupsize,Crash
dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uint64_t_constant,Crash
dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup_uint64_t_constant_requiredsubgroupsize,Crash
dEQP-VK.subgroups.shuffle.graphics.subgroupshuffleup_double_constant,Crash
dEQP-VK.subgroups.shuffle.graphics.subgroupshuffleup_dvec2_constant,Crash
dEQP-VK.subgroups.shuffle.graphics.subgroupshuffleup_dvec3_constant,Crash
dEQP-VK.subgroups.shuffle.graphics.subgroupshuffleup_dvec4_constant,Crash
dEQP-VK.subgroups.shuffle.graphics.subgroupshuffleup_i64vec2_constant,Crash
dEQP-VK.subgroups.shuffle.graphics.subgroupshuffleup_i64vec3_constant,Crash
dEQP-VK.subgroups.shuffle.graphics.subgroupshuffleup_i64vec4_constant,Crash
dEQP-VK.subgroups.shuffle.graphics.subgroupshuffleup_int64_t_constant,Crash
dEQP-VK.subgroups.shuffle.graphics.subgroupshuffleup_u64vec2_constant,Crash
dEQP-VK.subgroups.shuffle.graphics.subgroupshuffleup_u64vec3_constant,Crash
dEQP-VK.subgroups.shuffle.graphics.subgroupshuffleup_u64vec4_constant,Crash
dEQP-VK.subgroups.shuffle.graphics.subgroupshuffleup_uint64_t_constant,Crash
Edited by Mike Blumenkrantz