Skip to content

Assertion `(TLI.getTypeAction(*DAG.getContext(), Op.getValueType()) == TargetLowering::TypeLegal || Op.getOpcode() == ISD::TargetConstant || Op.getOpcode() == ISD::Register) && "Unexpected illegal type!"' failed. #95271

@dtcxzyw

Description

@dtcxzyw

Reproducer:

; llc test.ll
target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n32:64-S128"
target triple = "riscv64-unknown-linux-gnu"

define i32 @main(ptr %p) {
entry:
  %0 = load i32, ptr %p, align 4
  %dec.i = add i32 %0, 1
  %1 = tail call i32 @llvm.ctpop.i32(i32 %dec.i)
  ret i32 %1
}
llc: /home/dtcxzyw/llvm-project/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:970: void {anonymous}::SelectionDAGLegalize::LegalizeOp(llvm::SDNode*): Assertion `(TLI.getTypeAction(*DAG.getContext(), Op.getValueType()) == TargetLowering::TypeLegal || Op.getOpcode() == ISD::TargetConstant || Op.getOpcode() == ISD::Register) && "Unexpected illegal type!"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: llc reduced.ll
1.      Running pass 'Function Pass Manager' on module 'reduced.ll'.
2.      Running pass 'RISC-V DAG->DAG Pattern Instruction Selection' on function '@main'
 #0 0x00007f8c24dc8c08 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/dtcxzyw/llvm-install/bin/../lib/libLLVMSupport.so.19.0git+0x1c9c08)
 #1 0x00007f8c24dc5fbc SignalHandler(int) Signals.cpp:0:0
 #2 0x00007f8c2488ad60 (/lib/x86_64-linux-gnu/libc.so.6+0x38d60)
 #3 0x00007f8c2488ace1 raise (/lib/x86_64-linux-gnu/libc.so.6+0x38ce1)
 #4 0x00007f8c24874537 abort (/lib/x86_64-linux-gnu/libc.so.6+0x22537)
 #5 0x00007f8c2487440f (/lib/x86_64-linux-gnu/libc.so.6+0x2240f)
 #6 0x00007f8c24883662 (/lib/x86_64-linux-gnu/libc.so.6+0x31662)
 #7 0x00007f8c27499152 (anonymous namespace)::SelectionDAGLegalize::LegalizeOp(llvm::SDNode*) LegalizeDAG.cpp:0:0
 #8 0x00007f8c274a2c80 llvm::SelectionDAG::Legalize() (/home/dtcxzyw/llvm-install/bin/../lib/libLLVMSelectionDAG.so.19.0git+0x17fc80)
 #9 0x00007f8c2768a2a1 llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/home/dtcxzyw/llvm-install/bin/../lib/libLLVMSelectionDAG.so.19.0git+0x3672a1)
#10 0x00007f8c2768d51d llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/home/dtcxzyw/llvm-install/bin/../lib/libLLVMSelectionDAG.so.19.0git+0x36a51d)
#11 0x00007f8c2768ee88 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/home/dtcxzyw/llvm-install/bin/../lib/libLLVMSelectionDAG.so.19.0git+0x36be88)
#12 0x00007f8c2767f2ef llvm::SelectionDAGISelLegacy::runOnMachineFunction(llvm::MachineFunction&) (/home/dtcxzyw/llvm-install/bin/../lib/libLLVMSelectionDAG.so.19.0git+0x35c2ef)
#13 0x00007f8c26c4bbf7 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (.part.0) MachineFunctionPass.cpp:0:0
#14 0x00007f8c251b4d89 llvm::FPPassManager::runOnFunction(llvm::Function&) (/home/dtcxzyw/llvm-install/bin/../lib/libLLVMCore.so.19.0git+0x2bdd89)
#15 0x00007f8c251b4fc1 llvm::FPPassManager::runOnModule(llvm::Module&) (/home/dtcxzyw/llvm-install/bin/../lib/libLLVMCore.so.19.0git+0x2bdfc1)
#16 0x00007f8c251b5bbb llvm::legacy::PassManagerImpl::run(llvm::Module&) (/home/dtcxzyw/llvm-install/bin/../lib/libLLVMCore.so.19.0git+0x2bebbb)
#17 0x00005642d2c81759 compileModule(char**, llvm::LLVMContext&) llc.cpp:0:0
#18 0x00005642d2c77386 main (/home/dtcxzyw/llvm-install/bin/llc+0xf386)
#19 0x00007f8c24875d0a __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x23d0a)
#20 0x00005642d2c77e4a _start (/home/dtcxzyw/llvm-install/bin/llc+0xfe4a)
Aborted

cc @topperc @RKSimon

llvm version: 1a0e67d

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions