Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[NVPTX] crash during aggregate argument lowering #122182

Open
Artem-B opened this issue Jan 8, 2025 · 0 comments
Open

[NVPTX] crash during aggregate argument lowering #122182

Artem-B opened this issue Jan 8, 2025 · 0 comments
Assignees
Labels
backend:NVPTX crash Prefer [crash-on-valid] or [crash-on-invalid]

Comments

@Artem-B
Copy link
Member

Artem-B commented Jan 8, 2025

https://godbolt.org/z/hPdz1zMdb

%struct.8float = type <{ <2 x i8> }>

declare i32 @callee(%struct.8float %a)

define i32 @test(%struct.8float %data) {
  %1 = call i32 @callee(%struct.8float %data)
  ret i32 %1
}
llc: /root/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:7409: llvm::SDValue llvm::SelectionDAG::getNode(unsigned int, const llvm::SDLoc&, llvm::EVT, llvm::SDValue, llvm::SDValue, llvm::SDNodeFlags): Assertion `(!VT.isVector() || VT == N2.getValueType()) && "Vector shift amounts must be in the same as their first arg"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.	Program arguments: /opt/compiler-explorer/clang-assertions-trunk/bin/llc -o /app/output.s -x86-asm-syntax=intel -march=nvptx64 -mcpu=sm_20 --debug-counter=dagcombine=0 <source>
1.	Running pass 'Function Pass Manager' on module '<source>'.
2.	Running pass 'NVPTX DAG->DAG Pattern Instruction Selection' on function '@test'
 #0 0x0000000003c994f8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x3c994f8)
 #1 0x0000000003c96efc SignalHandler(int) Signals.cpp:0:0
 #2 0x00007b2752a42520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #3 0x00007b2752a969fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
 #4 0x00007b2752a42476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
 #5 0x00007b2752a287f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
 #6 0x00007b2752a2871b (/lib/x86_64-linux-gnu/libc.so.6+0x2871b)
 #7 0x00007b2752a39e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
 #8 0x0000000003a0c8e7 llvm::SelectionDAG::getNode(unsigned int, llvm::SDLoc const&, llvm::EVT, llvm::SDValue, llvm::SDValue, llvm::SDNodeFlags) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x3a0c8e7)
 #9 0x000000000195910d llvm::NVPTXTargetLowering::LowerCall(llvm::TargetLowering::CallLoweringInfo&, llvm::SmallVectorImpl<llvm::SDValue>&) const (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x195910d)
#10 0x0000000003971b99 llvm::TargetLowering::LowerCallTo(llvm::TargetLowering::CallLoweringInfo&) const (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x3971b99)
#11 0x000000000397ae0f llvm::SelectionDAGBuilder::lowerInvokable(llvm::TargetLowering::CallLoweringInfo&, llvm::BasicBlock const*) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x397ae0f)
#12 0x00000000039968b8 llvm::SelectionDAGBuilder::LowerCallTo(llvm::CallBase const&, llvm::SDValue, bool, bool, llvm::BasicBlock const*, llvm::TargetLowering::PtrAuthInfo const*) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x39968b8)
#13 0x00000000039ae6b8 llvm::SelectionDAGBuilder::visitCall(llvm::CallInst const&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x39ae6b8)
#14 0x00000000039c1eff llvm::SelectionDAGBuilder::visit(llvm::Instruction const&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x39c1eff)
#15 0x0000000003a50a0d llvm::SelectionDAGISel::SelectBasicBlock(llvm::ilist_iterator_w_bits<llvm::ilist_detail::node_options<llvm::Instruction, true, false, void, true, llvm::BasicBlock>, false, true>, llvm::ilist_iterator_w_bits<llvm::ilist_detail::node_options<llvm::Instruction, true, false, void, true, llvm::BasicBlock>, false, true>, bool&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x3a50a0d)
#16 0x0000000003a518b9 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x3a518b9)
#17 0x0000000003a52b60 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x3a52b60)
#18 0x00000000019a5493 llvm::NVPTXDAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x19a5493)
#19 0x0000000003a4350f llvm::SelectionDAGISelLegacy::runOnMachineFunction(llvm::MachineFunction&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x3a4350f)
#20 0x0000000002bd3c69 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (.part.0) MachineFunctionPass.cpp:0:0
#21 0x00000000031dbe1f llvm::FPPassManager::runOnFunction(llvm::Function&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x31dbe1f)
#22 0x00000000031dc1d1 llvm::FPPassManager::runOnModule(llvm::Module&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x31dc1d1)
#23 0x00000000031dca71 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x31dca71)
#24 0x000000000089e3e0 compileModule(char**, llvm::LLVMContext&) llc.cpp:0:0
#25 0x0000000000787dbe main (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x787dbe)
#26 0x00007b2752a29d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#27 0x00007b2752a29e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#28 0x0000000000894cb5 _start (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x894cb5)
Program terminated with signal: SIGSEGV
Compiler returned: 139
@Artem-B Artem-B self-assigned this Jan 8, 2025
@EugeneZelenko EugeneZelenko added the crash Prefer [crash-on-valid] or [crash-on-invalid] label Jan 8, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backend:NVPTX crash Prefer [crash-on-valid] or [crash-on-invalid]
Projects
None yet
Development

No branches or pull requests

2 participants